/**
 * The Longevity Lounge - Custom Styles
 * Additional styles for page templates and components
 *
 * @package LongevityLounge
 * @since 1.0.0
 */

/* ============================================
   SERVICE DETAIL SECTION
   ============================================ */
.service-detail {
    padding: var(--spacing-xl) 0;
}

.service-detail--alt {
    background-color: var(--color-cream);
}

.service-detail--featured {
    background-color: var(--color-gold);
    color: var(--color-white);
}

.service-detail--featured .section-title,
.service-detail--featured .section-subtitle {
    color: var(--color-white);
}

.service-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-lg);
    align-items: center;
}

.service-detail-grid--reverse {
    direction: rtl;
}

.service-detail-grid--reverse > * {
    direction: ltr;
}

.service-detail-content {
    padding-right: var(--spacing-lg);
}

.service-detail-grid--reverse .service-detail-content {
    padding-right: 0;
    padding-left: var(--spacing-lg);
}

.service-detail-image {
    position: relative;
    overflow: hidden;
}

.service-detail-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
    transition: transform 0.6s ease;
}

.service-detail:hover .service-detail-image img {
    transform: scale(1.02);
}

.service-meta {
    margin: var(--spacing-md) 0;
    padding: var(--spacing-sm) 0;
    border-top: 1px solid var(--color-grey-light);
    border-bottom: 1px solid var(--color-grey-light);
}

.service-duration {
    font-size: 1rem;
    color: var(--color-gold);
}

.service-includes h4 {
    margin-bottom: var(--spacing-sm);
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.check-list {
    list-style: none;
    padding: 0;
}

.check-list li {
    position: relative;
    padding-left: 1.75rem;
    margin-bottom: 0.75rem;
    line-height: 1.6;
}

.check-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 12px;
    height: 6px;
    border-left: 2px solid var(--color-gold);
    border-bottom: 2px solid var(--color-gold);
    transform: rotate(-45deg);
}

.text-muted {
    color: var(--color-grey);
}

.lead-text {
    font-size: 1.25rem;
    line-height: 1.8;
    color: var(--color-grey-dark);
}

/* Reset Section Styling */
.reset-features {
    max-width: 1000px;
    margin: 0 auto;
}

.reset-includes h4 {
    text-align: center;
    margin-bottom: var(--spacing-md);
}

.reset-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-md);
}

/* ============================================
   PROGRAM SECTION
   ============================================ */
.program-section {
    padding: var(--spacing-xl) 0;
}

.program-section--alt {
    background-color: var(--color-cream);
}

.program-section--featured {
    background: linear-gradient(135deg, var(--color-gold) 0%, var(--color-gold-dark) 100%);
    color: var(--color-white);
}

.program-section--featured .section-title {
    color: var(--color-white);
}

.program-header {
    margin-bottom: var(--spacing-lg);
}

.program-accordion {
    max-width: 900px;
    margin: 0 auto;
}

.protocol-phases {
    display: grid;
    gap: var(--spacing-lg);
}

.protocol-phase h4 {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--color-gold);
    margin-bottom: var(--spacing-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.protocol-phase ul {
    list-style: none;
    padding: 0;
}

.protocol-phase li {
    margin-bottom: 0.75rem;
    padding-left: 1rem;
    border-left: 2px solid var(--color-gold-light);
    text-align: justify;
}

/* ============================================
   BIOTEK SECTION
   ============================================ */
.biotek-protocol {
    padding: var(--spacing-xl) 0;
}

.biotek-protocol--alt {
    background-color: var(--color-cream);
}

.biotek-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-lg);
    align-items: center;
}

.biotek-grid--reverse {
    direction: rtl;
}

.biotek-grid--reverse > * {
    direction: ltr;
}

.biotek-content {
    padding-right: var(--spacing-lg);
}

.biotek-grid--reverse .biotek-content {
    padding-right: 0;
    padding-left: var(--spacing-lg);
}

.protocol-number {
    display: block;
    font-family: var(--font-heading);
    font-size: 3rem;
    font-weight: 300;
    color: var(--color-gold);
    opacity: 0.5;
    line-height: 1;
    margin-bottom: var(--spacing-xs);
}

.protocol-category {
    display: block;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: var(--spacing-sm);
}

.protocol-name {
    font-family: var(--font-accent);
    font-size: 1.25rem;
    font-style: italic;
    color: var(--color-grey-dark);
    margin-bottom: var(--spacing-sm);
}

.protocol-tagline {
    font-family: var(--font-accent);
    font-size: 1.125rem;
    font-style: italic;
    color: var(--color-gold);
    margin-bottom: var(--spacing-sm);
}

.protocol-result {
    margin-top: var(--spacing-sm);
}

.protocol-badge {
    display: inline-block;
    padding: 0.5rem 1rem;
    background-color: var(--color-cream);
    font-size: 0.75rem;
    color: var(--color-grey-dark);
    margin-bottom: var(--spacing-sm);
}

.biotek-image {
    position: relative;
    overflow: hidden;
}

.biotek-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

/* Biotek staggered reveal: image, title, name, tagline, description, result */
.biotek-grid[data-animate="biotekReveal"],
.biotek-grid--reverse[data-animate="biotekReveal"] {
    opacity: 1;
}

.biotek-grid[data-animate="biotekReveal"] .biotek-image,
.biotek-grid[data-animate="biotekReveal"] .protocol-number,
.biotek-grid[data-animate="biotekReveal"] .protocol-category,
.biotek-grid[data-animate="biotekReveal"] .section-title,
.biotek-grid[data-animate="biotekReveal"] .protocol-name,
.biotek-grid[data-animate="biotekReveal"] .protocol-tagline,
.biotek-grid[data-animate="biotekReveal"] .biotek-content > p:not(.protocol-tagline):not(.protocol-result),
.biotek-grid[data-animate="biotekReveal"] .protocol-result {
    opacity: 0;
    transform: translateY(40px);
}

.biotek-grid[data-animate="biotekReveal"].animated .biotek-image {
    animation: flyInUp 1s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0s;
}

.biotek-grid[data-animate="biotekReveal"].animated .protocol-number,
.biotek-grid[data-animate="biotekReveal"].animated .protocol-category {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.3s;
}

.biotek-grid[data-animate="biotekReveal"].animated .section-title {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.5s;
}

.biotek-grid[data-animate="biotekReveal"].animated .protocol-name {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.7s;
}

.biotek-grid[data-animate="biotekReveal"].animated .protocol-tagline {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.9s;
}

.biotek-grid[data-animate="biotekReveal"].animated .biotek-content > p:not(.protocol-tagline):not(.protocol-result) {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 1.1s;
}

.biotek-grid[data-animate="biotekReveal"].animated .protocol-result {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 1.3s;
}

/* ============================================
   ABOUT SECTION
   ============================================ */
.about-section {
    padding: var(--spacing-xl) 0;
}

.about-section--alt {
    background-color: var(--color-cream);
}

.about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
}

.about-grid--reverse {
    direction: rtl;
}

.about-grid--reverse > * {
    direction: ltr;
}

.about-content {
    padding-right: 0;
}

.about-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}

.about-grid--reverse .about-content {
    padding-left: 0;
}

.about-content p {
    text-align: justify;
}

/* About grid staggered reveal: image, subtitle, title, paragraphs */
.about-grid[data-animate="aboutReveal"] {
    opacity: 1;
}

.about-grid[data-animate="aboutReveal"] .about-image,
.about-grid[data-animate="aboutReveal"] .section-subtitle,
.about-grid[data-animate="aboutReveal"] .section-title,
.about-grid[data-animate="aboutReveal"] .about-content > p {
    opacity: 0;
    transform: translateY(40px);
}

.about-grid[data-animate="aboutReveal"].animated .about-image {
    animation: flyInUp 1s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0s;
}

.about-grid[data-animate="aboutReveal"].animated .section-title {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.3s;
}

.about-grid[data-animate="aboutReveal"].animated .section-subtitle {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.5s;
}

.about-grid[data-animate="aboutReveal"].animated .about-content > p {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.7s;
}

/* Approach card text justify */
.approach-card p {
    text-align: justify;
}

/* Approach Grid */
.approach-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-md);
    margin-top: var(--spacing-lg);
}

.approach-card {
    text-align: center;
    padding: var(--spacing-md) var(--spacing-lg);
    background-color: var(--color-white);
    border: 1px solid var(--color-grey-light);
    transition: var(--transition-normal);
}

.approach-card:hover {
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    transform: translateY(-5px);
}

.approach-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-cream);
    border-radius: 50%;
    color: var(--color-gold);
}

.approach-card h3 {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--color-dark);
    letter-spacing: 0.02em;
    margin-bottom: var(--spacing-xs);
}

.approach-tagline {
    font-family: var(--font-accent);
    font-size: 1.3rem;
    font-style: italic;
    color: var(--color-gold);
    font-weight: 500;
    margin-bottom: var(--spacing-sm);
}

/* Team Section Enhanced */
.team-card-details {
    margin-top: var(--spacing-sm);
    text-align: left;
    font-size: 0.875rem;
}

.team-card-details ul {
    margin-top: 0.5rem;
    padding-left: 1rem;
}

.team-card-details li {
    margin-bottom: 0.25rem;
    color: var(--color-grey-dark);
}

/* ============================================
   CTA SECTION
   ============================================ */
.cta-section {
    background-color: var(--color-cream);
    padding: var(--spacing-xl) 0;
}

.cta-section .section-title {
    margin-bottom: var(--spacing-sm);
}

.cta-section .section-description {
    margin-bottom: var(--spacing-md);
}

/* ============================================
   BREADCRUMBS
   ============================================ */
.breadcrumbs {
    padding: var(--spacing-sm) 0;
    font-size: 0.875rem;
}

.breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.breadcrumbs li:not(:last-child)::after {
    content: '/';
    margin-left: 0.5rem;
    color: var(--color-grey);
}

.breadcrumbs a {
    color: var(--color-grey-dark);
}

.breadcrumbs a:hover {
    color: var(--color-gold);
}

.breadcrumbs li:last-child {
    color: var(--color-gold);
}

/* ============================================
   POSTS GRID (Blog)
   ============================================ */
.posts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-md);
}

.post-card {
    background-color: var(--color-white);
    border: 1px solid var(--color-grey-light);
    overflow: hidden;
    transition: var(--transition-normal);
}

.post-card:hover {
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
}

.post-card-image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.post-card-content {
    padding: var(--spacing-md);
}

.post-card-title {
    font-size: 1.25rem;
    margin-bottom: var(--spacing-sm);
}

.post-card-title a:hover {
    color: var(--color-gold);
}

.post-card-excerpt {
    font-size: 0.875rem;
    color: var(--color-grey-dark);
    margin-bottom: var(--spacing-sm);
}

/* Pagination */
.pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: var(--spacing-lg);
}

.pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-grey-light);
    transition: var(--transition-normal);
}

.pagination .page-numbers:hover,
.pagination .page-numbers.current {
    background-color: var(--color-gold);
    border-color: var(--color-gold);
    color: var(--color-white);
}

/* ============================================
   UTILITY CLASSES
   ============================================ */
.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: var(--spacing-xs); }
.mb-2 { margin-bottom: var(--spacing-sm); }
.mb-3 { margin-bottom: var(--spacing-md); }
.mb-4 { margin-bottom: var(--spacing-lg); }

.mt-0 { margin-top: 0; }
.mt-1 { margin-top: var(--spacing-xs); }
.mt-2 { margin-top: var(--spacing-sm); }
.mt-3 { margin-top: var(--spacing-md); }
.mt-4 { margin-top: var(--spacing-lg); }

/* ============================================
   RESPONSIVE STYLES
   ============================================ */
@media (max-width: 1200px) {
    .approach-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media (max-width: 992px) {
    .service-detail-grid,
    .service-detail-grid--reverse,
    .biotek-grid,
    .biotek-grid--reverse,
    .about-grid,
    .about-grid--reverse {
        grid-template-columns: 1fr;
        direction: ltr;
        gap: var(--spacing-sm);
    }

    .service-detail-content,
    .biotek-content,
    .about-content,
    .service-detail-grid--reverse .service-detail-content,
    .biotek-grid--reverse .biotek-content,
    .about-grid--reverse .about-content {
        padding-right: 0;
        padding-left: 0;
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .service-detail-image,
    .biotek-image,
    .about-image {
        order: -1;
        margin-bottom: 0;
    }

    .service-detail-image img,
    .biotek-image img,
    .about-image img,
    .about-grid--reverse .about-image img {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .about-content p,
    .service-detail-content p {
        text-align: justify;
    }

    .posts-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Diagnostic accordion: stack icon below text on mobile */
    .diagnostic-parallax .accordion-header {
        flex-direction: column;
        align-items: center;
        padding: var(--spacing-md);
    }

    .diagnostic-parallax .accordion-icon {
        margin-top: 0.75rem;
    }
}

@media (max-width: 768px) {
    .approach-grid {
        grid-template-columns: 1fr;
    }

    .reset-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .posts-grid {
        grid-template-columns: 1fr;
    }

    .protocol-number {
        font-size: 2rem;
    }
}

/* ============================================
   DIAGNOSTIC SECTION (Parallax)
   ============================================ */
.diagnostic-parallax {
    position: relative;
    overflow: hidden;
    min-height: 400px;
    padding: var(--spacing-xl) 0;
}

.diagnostic-parallax .parallax-bg {
    position: absolute;
    top: -20%;
    left: 0;
    width: 100%;
    height: 140%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}

.diagnostic-parallax .parallax-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.65) 100%);
    z-index: 1;
}

.diagnostic-accordion {
    max-width: 900px;
    margin: 0 auto;
}

/* Accordion header on parallax: white text, semi-transparent */
.diagnostic-parallax .accordion-header {
    background-color: rgba(0, 0, 0, 0.35);
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    padding: var(--spacing-lg);
    align-items: flex-start;
    gap: 1rem;
    transition: background-color 0.3s ease;
}

.diagnostic-parallax .accordion-header:hover {
    background-color: rgba(0, 0, 0, 0.45);
}

.diagnostic-parallax .accordion-item {
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 4px;
    overflow: hidden;
}

.diagnostic-header-content {
    flex: 1;
}

.diagnostic-header-content .accordion-title {
    font-size: 1.5rem;
    font-weight: 300;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}

.diagnostic-parallax .accordion-title {
    color: var(--color-white);
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.diagnostic-brief {
    font-size: 0.95rem;
    line-height: 1.7;
    margin: 0;
    text-align: justify;
}

.diagnostic-parallax .diagnostic-brief {
    color: rgba(255, 255, 255, 0.85);
}

.diagnostic-parallax .accordion-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
}

.diagnostic-parallax .accordion-icon::before,
.diagnostic-parallax .accordion-icon::after {
    background-color: var(--color-white);
}

.diagnostic-parallax .accordion-icon::before {
    height: 3px;
}

.diagnostic-parallax .accordion-icon::after {
    width: 3px;
}

/* Accordion content on parallax */
.diagnostic-parallax .accordion-content {
    background-color: rgba(0, 0, 0, 0.45);
}

.diagnostic-parallax .accordion-content-inner {
    color: rgba(255, 255, 255, 0.9);
    padding: var(--spacing-lg);
}

.diagnostic-parallax .accordion-content-inner p {
    color: rgba(255, 255, 255, 0.9);
    text-align: justify;
}

.diagnostic-meta {
    margin: var(--spacing-md) 0;
    padding: var(--spacing-sm);
}

.diagnostic-parallax .diagnostic-meta {
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    color: var(--color-white);
    padding: var(--spacing-md);
}

.diagnostic-meta p {
    margin-bottom: 0.5rem;
}

.diagnostic-meta p:last-child {
    margin-bottom: 0;
}

.diagnostic-includes {
    margin-top: var(--spacing-md);
}

.diagnostic-includes h4 {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
    color: var(--color-gold);
}

.diagnostic-parallax .check-list li::before {
    color: var(--color-gold);
}

.diagnostic-parallax .check-list li {
    color: rgba(255, 255, 255, 0.9);
}

.genetic-tests,
.environmental-tests {
    margin-bottom: var(--spacing-md);
}

.genetic-tests h4,
.environmental-tests h4 {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
    color: var(--color-gold);
}

.genetic-tests ul,
.environmental-tests ul {
    list-style: none;
    padding: 0;
}

.genetic-tests li,
.environmental-tests li {
    margin-bottom: 0.75rem;
    padding-left: 1rem;
    border-left: 2px solid var(--color-gold);
}

.diagnostic-parallax .genetic-tests li,
.diagnostic-parallax .environmental-tests li {
    color: rgba(255, 255, 255, 0.9);
}

@media (max-width: 768px) {
    .diagnostic-parallax {
        min-height: 300px;
    }
}

/* ============================================
   LONGEVITY TECHNOLOGIES
   ============================================ */
.ltech-parallax {
    position: relative;
    overflow: hidden;
    min-height: 550px;
    padding: var(--spacing-xl) 0;
    display: flex;
    align-items: center;
}

.ltech-parallax .parallax-bg {
    position: absolute;
    top: -20%;
    left: 0;
    width: 100%;
    height: 140%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}

.ltech-parallax .parallax-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.45) 50%, rgba(0, 0, 0, 0.55) 100%);
    z-index: 1;
}

.ltech-card {
    max-width: 650px;
    padding: var(--spacing-lg);
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 6px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.ltech-number {
    display: inline-block;
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 300;
    letter-spacing: 0.2em;
    color: rgba(255, 255, 255, 0.5);
    margin-bottom: 0.5rem;
}

.ltech-category {
    display: block;
    font-size: 2.25rem;
    font-weight: 900;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: var(--spacing-sm);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

.ltech-title {
    font-family: var(--font-heading);
    font-size: 2.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-white);
    margin-bottom: 0.25rem;
}

.ltech-subtitle {
    font-size: 1.1rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: var(--spacing-md);
}

.ltech-tagline {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-style: italic;
    font-weight: 400;
    color: var(--color-gold-light);
    margin-bottom: var(--spacing-sm);
    text-shadow:
        0 1px 4px rgba(0, 0, 0, 0.6),
        0 4px 12px rgba(0, 0, 0, 0.4),
        0 8px 24px rgba(0, 0, 0, 0.3);
}

.ltech-desc {
    font-size: 0.95rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
    text-align: justify;
}

/* Alternate card alignment */
.ltech-parallax:nth-child(even) .ltech-card {
    margin-left: auto;
}

@media (max-width: 768px) {
    .ltech-parallax {
        min-height: 450px;
    }

    .ltech-card {
        max-width: 100%;
    }

    .ltech-title {
        font-size: 1.35rem;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .ltech-category {
        font-size: 1.5rem;
        letter-spacing: 0.15em;
    }
}

@media (max-width: 480px) {
    .ltech-title {
        font-size: 1.2rem;
    }

    .ltech-category {
        font-size: 1.25rem;
    }

    .ltech-card {
        padding: var(--spacing-md);
    }
}

/* ============================================
   ENERGY MEDICINE
   ============================================ */
.emed-section {
    padding: var(--spacing-xl) 0;
}

.emed-section--alt {
    background-color: var(--color-cream);
}

.emed-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
}

.emed-grid--reverse {
    direction: rtl;
}

.emed-grid--reverse > * {
    direction: ltr;
}

.emed-image img {
    width: 85%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
    display: block;
    margin-left: auto;
    margin-right: 0;
}

.emed-grid--reverse .emed-image img {
    margin-left: 0;
    margin-right: auto;
}

.emed-content {
    width: 85%;
    padding: var(--spacing-md) 0;
    margin-left: 0;
    margin-right: auto;
}

.emed-grid--reverse .emed-content {
    margin-left: auto;
    margin-right: 0;
}

.emed-title {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-dark);
    margin-bottom: 0.25rem;
}

.emed-subtitle {
    font-size: 1.1rem;
    font-weight: 500;
    color: var(--color-gold);
    margin-bottom: var(--spacing-md);
    letter-spacing: 0.03em;
}

.emed-desc {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--color-grey-dark);
    text-align: justify;
    margin-bottom: var(--spacing-md);
}

.emed-duration {
    font-size: 0.9rem;
    color: var(--color-grey-dark);
}

.emed-duration span {
    display: inline-block;
    padding: 0.4rem 1rem;
    border: 1px solid var(--color-gold);
    border-radius: 3px;
    color: var(--color-gold);
    font-weight: 600;
    letter-spacing: 0.05em;
}

/* Energy medicine staggered reveal: image, title, subtitle, description, duration */
.emed-grid[data-animate="emedReveal"] {
    opacity: 1;
}

.emed-grid[data-animate="emedReveal"] .emed-image,
.emed-grid[data-animate="emedReveal"] .emed-title,
.emed-grid[data-animate="emedReveal"] .emed-subtitle,
.emed-grid[data-animate="emedReveal"] .emed-desc,
.emed-grid[data-animate="emedReveal"] .emed-duration {
    opacity: 0;
    transform: translateY(40px);
}

.emed-grid[data-animate="emedReveal"].animated .emed-image {
    animation: flyInUp 1s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0s;
}

.emed-grid[data-animate="emedReveal"].animated .emed-title {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.3s;
}

.emed-grid[data-animate="emedReveal"].animated .emed-subtitle {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.5s;
}

.emed-grid[data-animate="emedReveal"].animated .emed-desc {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.7s;
}

.emed-grid[data-animate="emedReveal"].animated .emed-duration {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.9s;
}

@media (max-width: 992px) {
    .emed-grid,
    .emed-grid--reverse {
        grid-template-columns: 1fr;
        direction: ltr;
        gap: var(--spacing-sm);
    }

    .emed-image {
        order: -1;
    }

    .emed-image img,
    .emed-grid--reverse .emed-image img {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .emed-content,
    .emed-grid--reverse .emed-content {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding: 0;
    }

    .emed-section {
        padding: var(--spacing-md) 0;
    }

    .emed-title {
        font-size: 1.5rem;
    }
}

/* ============================================
   CONTACT US
   ============================================ */
.contact-section {
    padding: var(--spacing-xl) 0;
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: start;
}

.contact-logo {
    display: block;
    max-width: 420px;
    height: auto;
    margin: 0 auto var(--spacing-lg);
}

.contact-intro-title {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 300;
    letter-spacing: 0.06em;
    color: var(--color-dark);
    margin-bottom: var(--spacing-md);
}

.contact-intro-desc {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--color-grey-dark);
    margin-bottom: var(--spacing-md);
}

.contact-intro-note {
    font-size: 0.95rem;
    font-style: italic;
    color: var(--color-gold);
    margin-bottom: var(--spacing-lg);
}

.contact-wa-btn {
    display: inline-flex;
    align-items: center;
}

.btn-outline-gold {
    border: 2px solid var(--color-gold);
    color: var(--color-gold);
    background: transparent;
    padding: 0.75rem 1.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border-radius: 3px;
    transition: all 0.3s ease;
}

.btn-outline-gold:hover {
    background-color: var(--color-gold);
    color: var(--color-white);
}

/* Form */
.contact-form-wrap {
    background: var(--color-cream);
    padding: var(--spacing-lg);
    border-radius: 6px;
}

.contact-form .form-row--half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.contact-form .form-group {
    margin-bottom: 1.5rem;
}

.contact-form label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-dark);
    margin-bottom: 0.5rem;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 1px solid #d4c4a8;
    border-radius: 3px;
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--color-dark);
    background: var(--color-white);
    transition: border-color 0.3s ease;
}

.contact-form input:focus,
.contact-form textarea:focus {
    outline: none;
    border-color: var(--color-gold);
}

.contact-form textarea {
    resize: vertical;
    min-height: 150px;
}

.contact-submit-btn {
    width: 100%;
}

/* Success message */
.contact-success {
    text-align: center;
    padding: var(--spacing-xl) var(--spacing-lg);
}

.contact-success h3 {
    font-family: var(--font-heading);
    font-size: 1.75rem;
    font-weight: 300;
    color: var(--color-dark);
    margin-bottom: var(--spacing-sm);
}

.contact-success p {
    font-size: 1rem;
    color: var(--color-grey-dark);
    line-height: 1.7;
}

@media (max-width: 992px) {
    .contact-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }

    .contact-form .form-row--half {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

/* ============================================
   HERO TRANSITION SECTION
   ============================================ */
.hero-transition {
    background: linear-gradient(180deg, #d4c4a8 0%, #e2d6c3 50%, var(--color-cream) 100%);
    padding: var(--spacing-xl) 0 var(--spacing-lg);
    text-align: center;
}

.hero-transition-content {
    max-width: 900px;
    margin: 0 auto;
}

.hero-transition-title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3.5vw, 2.25rem);
    font-weight: 300;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #5a3e1b;
    margin-bottom: var(--spacing-xs);
    white-space: nowrap;
}

@media (max-width: 768px) {
    .hero-transition-title {
        white-space: normal;
    }
}

.hero-transition-tagline {
    font-family: var(--font-accent);
    font-size: clamp(1.125rem, 2.5vw, 1.5rem);
    font-style: italic;
    color: #6b4c25;
    letter-spacing: 0.02em;
    margin-bottom: var(--spacing-md);
}

.hero-transition-divider {
    width: 60px;
    height: 1px;
    background-color: #8b6b3e;
    margin: 0 auto var(--spacing-md);
}

.hero-transition-headline {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 300;
    line-height: 1.3;
    color: #2a1f0e;
    margin-bottom: 0.5rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.hero-transition-headline-accent {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 600;
    font-style: italic;
    line-height: 1.3;
    color: var(--color-gold);
    margin-bottom: var(--spacing-md);
    letter-spacing: 0.04em;
}

/* Keep legacy class for backwards compat */
.hero-transition-quote {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3.5vw, 2.25rem);
    font-weight: 500;
    line-height: 1.5;
    color: #2a1f0e;
    margin-bottom: var(--spacing-md);
    letter-spacing: 0.08em;
}

.hero-transition-description {
    font-size: 1rem;
    line-height: 1.9;
    color: #3d2e18;
    font-weight: 400;
    margin: 0;
}

/* Transition section staggered animations */
.hero-transition [data-animate="fadeInUp"] {
    opacity: 0;
    transform: translateY(30px);
}

.hero-transition [data-animate="fadeInUp"].animated {
    animation: heroFadeInUp 0.8s ease forwards;
}

.hero-transition .hero-transition-content > :nth-child(1).animated { animation-delay: 0.1s; }
.hero-transition .hero-transition-content > :nth-child(2).animated { animation-delay: 0.3s; }
.hero-transition .hero-transition-content > :nth-child(3).animated { animation-delay: 0.5s; }
.hero-transition .hero-transition-content > :nth-child(4).animated { animation-delay: 0.7s; }
.hero-transition .hero-transition-content > :nth-child(5).animated { animation-delay: 0.9s; }

@keyframes heroFadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* ============================================
   FLOATING HAMBURGER (when header is hidden)
   ============================================ */
.hamburger-floating {
    position: fixed;
    top: 25px;
    right: 30px;
    z-index: 1001;
    background: none;
    border: none;
    padding: 0;
}

@media (max-width: 768px) {
    .hamburger-floating {
        top: 15px;
        right: 15px;
    }
}

/* ============================================
   ORIGINS & PRECISION - PARALLAX FEATURED
   ============================================ */
.service-detail--featured {
    position: relative;
    overflow: hidden;
    min-height: 600px;
    padding: var(--spacing-xl) 0;
}

.service-detail--featured .parallax-bg {
    position: absolute;
    top: -20%;
    left: 0;
    width: 100%;
    height: 140%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}

.service-detail--featured .parallax-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.65) 50%, rgba(0, 0, 0, 0.7) 100%);
    z-index: 1;
}

.service-detail--featured .check-list li::before {
    border-left-color: var(--color-white);
    border-bottom-color: var(--color-white);
}

.service-detail--featured .service-meta {
    border-color: rgba(255, 255, 255, 0.3);
}

/* Consultations page: square images */
.service-detail-image img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

/* teamReveal animations for service-detail grids */
.service-detail-grid[data-animate="teamReveal"] .service-detail-content,
.service-detail-grid[data-animate="teamReveal"] .service-detail-image,
.service-detail-grid--reverse[data-animate="teamReveal"] .service-detail-content,
.service-detail-grid--reverse[data-animate="teamReveal"] .service-detail-image {
    opacity: 0;
    transform: translateY(150px);
}

.service-detail-grid[data-animate="teamReveal"].animated .service-detail-image,
.service-detail-grid--reverse[data-animate="teamReveal"].animated .service-detail-image {
    animation: flyInUp 1.4s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0s;
}

.service-detail-grid[data-animate="teamReveal"].animated .service-detail-content,
.service-detail-grid--reverse[data-animate="teamReveal"].animated .service-detail-content {
    animation: flyInUp 1.4s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.3s;
}

.service-detail-grid[data-animate="teamReveal"],
.service-detail-grid--reverse[data-animate="teamReveal"] {
    opacity: 1;
}

/* Scroll-triggered animations for service sections */
.service-detail-grid[data-animate],
.service-detail-grid--reverse[data-animate] {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.service-detail-grid[data-animate].animated,
.service-detail-grid--reverse[data-animate].animated {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered children animation within service grids */
.service-detail-grid.animated .service-detail-content {
    animation: slideInLeft 0.7s ease 0.2s both;
}

.service-detail-grid.animated .service-detail-image {
    animation: slideInRight 0.7s ease 0.4s both;
}

.service-detail-grid--reverse.animated .service-detail-content {
    animation: slideInRight 0.7s ease 0.2s both;
}

.service-detail-grid--reverse.animated .service-detail-image {
    animation: slideInLeft 0.7s ease 0.4s both;
}

/* Reset section responsive for parallax featured */
@media (max-width: 768px) {
    .service-detail--featured {
        min-height: auto;
    }

    .service-detail--featured .parallax-bg {
        background-attachment: scroll;
    }

    .service-detail--featured .reset-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================
   ESSENTIAL SERIES (with images)
   ============================================ */
.essential-program-section {
    padding: var(--spacing-xl) 0;
}

.essential-program-section--alt {
    background-color: var(--color-cream);
}

.essential-program-section--featured {
    background: linear-gradient(135deg, var(--color-gold) 0%, var(--color-gold-dark, #8b6b3e) 100%);
    color: var(--color-white);
}

.essential-program-section--featured .section-title {
    color: var(--color-white);
}

.essential-program-section--featured .essential-content p {
    color: rgba(255, 255, 255, 0.9);
}

.essential-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
    margin-bottom: var(--spacing-lg);
}

.essential-grid--reverse {
    direction: rtl;
}

.essential-grid--reverse > * {
    direction: ltr;
}

.essential-image img {
    width: 70%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
    display: block;
    margin-left: auto;
    margin-right: 0;
}

.essential-grid--reverse .essential-image img {
    margin-left: 0;
    margin-right: auto;
}

.essential-content {
    width: 70%;
    margin-left: 0;
    margin-right: auto;
}

.essential-grid--reverse .essential-content {
    margin-left: auto;
    margin-right: 0;
}

.essential-content p {
    text-align: justify;
}

.essential-content .section-title {
    margin-bottom: var(--spacing-sm);
}

.essential-details {
    max-width: 900px;
    margin: 0 auto;
}

/* Prominent accordion style for Essential Series */
.essential-details .accordion {
    border: 2px solid var(--color-gold);
    border-radius: 4px;
    overflow: hidden;
}

.essential-details .accordion-item {
    border-bottom: none;
}

.essential-details .accordion-header {
    background-color: var(--color-gold);
    color: var(--color-white);
    padding: var(--spacing-sm) var(--spacing-md);
    transition: background-color 0.3s ease;
}

.essential-details .accordion-header:hover {
    background-color: var(--color-gold-dark, #8b6b3e);
    color: var(--color-white);
}

.essential-details .accordion-title {
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-white);
}

.essential-details .accordion-icon::before,
.essential-details .accordion-icon::after {
    background-color: var(--color-white);
}

.essential-details .accordion-content-inner {
    padding: var(--spacing-md);
    text-align: justify;
}

/* Featured section accordion override */
.essential-program-section--featured .essential-details .accordion {
    border-color: var(--color-white);
}

.essential-program-section--featured .essential-details .accordion-header {
    background-color: rgba(255, 255, 255, 0.2);
}

.essential-program-section--featured .essential-details .accordion-header:hover {
    background-color: rgba(255, 255, 255, 0.3);
}

/* Essential grid animations: staggered reveal — image, title, subtitle, description */
.essential-grid[data-animate="essentialReveal"] {
    opacity: 1;
}

.essential-grid[data-animate="essentialReveal"] .essential-image,
.essential-grid[data-animate="essentialReveal"] .section-title,
.essential-grid[data-animate="essentialReveal"] .section-subtitle,
.essential-grid[data-animate="essentialReveal"] .essential-content > p:not(.section-subtitle) {
    opacity: 0;
    transform: translateY(40px);
}

.essential-grid[data-animate="essentialReveal"].animated .essential-image {
    animation: flyInUp 1s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0s;
}

.essential-grid[data-animate="essentialReveal"].animated .section-title {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.3s;
}

.essential-grid[data-animate="essentialReveal"].animated .section-subtitle {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.5s;
}

.essential-grid[data-animate="essentialReveal"].animated .essential-content > p:not(.section-subtitle) {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.7s;
}

/* GAMECHANGER Parallax Section */
.essential-parallax {
    position: relative;
    overflow: hidden;
    min-height: 650px;
    padding: var(--spacing-xl) 0;
    display: flex;
    align-items: center;
}

.essential-parallax .parallax-bg {
    position: absolute;
    top: -20%;
    left: 0;
    width: 100%;
    height: 140%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}

.essential-parallax .parallax-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.65) 100%);
    z-index: 1;
}

.essential-parallax .section-subtitle {
    color: var(--color-gold);
    font-weight: 500;
}

/* Parallax accordion: white/transparent style */
.essential-parallax .essential-details .accordion {
    border-color: rgba(255, 255, 255, 0.4);
}

.essential-parallax .essential-details .accordion-header {
    background-color: rgba(255, 255, 255, 0.15);
}

.essential-parallax .essential-details .accordion-header:hover {
    background-color: rgba(255, 255, 255, 0.25);
}

.essential-parallax .essential-details .accordion-title {
    color: var(--color-white);
}

.essential-parallax .essential-details .accordion-content {
    background-color: rgba(0, 0, 0, 0.4);
    color: var(--color-white);
}

.essential-parallax .essential-details .accordion-content-inner {
    color: var(--color-white);
}

.essential-parallax .protocol-phase h4 {
    color: var(--color-gold);
}

.essential-parallax .protocol-phase li {
    color: rgba(255, 255, 255, 0.9);
}

/* Consistent font sizing in essential accordion */
.essential-details .accordion-content-inner,
.essential-details .protocol-phase li,
.essential-parallax .protocol-phase li {
    font-size: 0.95rem;
    line-height: 1.7;
}

.essential-details .protocol-phase h4,
.essential-parallax .protocol-phase h4 {
    font-size: 1.1rem;
}

/* Responsive */
@media (max-width: 992px) {
    .essential-grid,
    .essential-grid--reverse {
        grid-template-columns: 1fr;
        direction: ltr;
        gap: var(--spacing-md);
    }

    .essential-image {
        order: -1;
    }

    .essential-parallax {
        min-height: 500px;
    }

    .essential-content,
    .essential-image img {
        width: 100%;
    }
}

/* ============================================
   IMMERSION SERIES
   ============================================ */
.immersion-section {
    padding: var(--spacing-lg) 0;
}

.immersion-section--alt {
    background-color: var(--color-cream);
}

.immersion-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
    margin-bottom: var(--spacing-md);
}

.immersion-grid--reverse {
    direction: rtl;
}

.immersion-grid--reverse > * {
    direction: ltr;
}

.immersion-image img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}

.immersion-content p {
    text-align: justify;
    margin-bottom: var(--spacing-sm);
}

.immersion-content .section-title {
    margin-bottom: var(--spacing-md);
}

.immersion-who {
    margin-top: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    background-color: var(--color-cream);
    border-left: 3px solid var(--color-gold);
    font-size: 0.95rem;
    line-height: 1.7;
}

.immersion-section--alt .immersion-who {
    background-color: var(--color-white);
}

.immersion-details {
    max-width: 900px;
    margin: 0 auto;
}

/* Tier table */
.immersion-tiers {
    width: 100%;
}

.tier-header-row {
    display: grid;
    grid-template-columns: 1fr 80px 80px 80px;
    gap: 0.5rem;
    padding: var(--spacing-sm) 0;
    border-bottom: 2px solid var(--color-gold);
    font-weight: 700;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-gold);
}

.tier-col {
    text-align: center;
}

.tier-group {
    margin-top: var(--spacing-sm);
}

.tier-group-title {
    font-size: 1.25rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-gold);
    font-weight: 700;
    margin-bottom: var(--spacing-xs);
    padding-top: var(--spacing-sm);
    border-bottom: 1px solid var(--color-gold);
    padding-bottom: var(--spacing-xs);
}

.tier-row {
    display: grid;
    grid-template-columns: 1fr 80px 80px 80px;
    gap: 0.5rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--color-grey-light);
    font-size: 1rem;
    align-items: center;
    line-height: 1.5;
}

.tier-row .tier-label {
    font-weight: 500;
    color: var(--color-dark, #2a1f0e);
}

.tier-row .tier-col {
    text-align: center;
    font-weight: 500;
}

/* Immersion accordion — prominent style */
.immersion-details .accordion {
    border: 2px solid var(--color-gold);
    border-radius: 4px;
    overflow: hidden;
}

.immersion-details .accordion-item {
    border-bottom: none;
}

.immersion-details .accordion-header {
    background-color: var(--color-gold);
    color: var(--color-white);
    padding: var(--spacing-sm) var(--spacing-md);
    transition: background-color 0.3s ease;
}

.immersion-details .accordion-header:hover {
    background-color: var(--color-gold-dark, #8b6b3e);
    color: var(--color-white);
}

.immersion-details .accordion-title {
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-white);
}

.immersion-details .accordion-icon::before,
.immersion-details .accordion-icon::after {
    background-color: var(--color-white);
}

.immersion-details .accordion-content-inner {
    padding: var(--spacing-md);
    font-size: 1rem;
    text-align: justify;
}

/* Consistent font sizes inside immersion accordion */
.immersion-details .tier-row,
.immersion-details .tier-row .tier-label,
.immersion-details .tier-row .tier-col,
.immersion-details .tier-header-row {
    font-size: 1rem;
}

.immersion-details .tier-group-title {
    font-size: 1.15rem;
}

/* Immersion animations: staggered reveal — image, title, description, who */
.immersion-grid[data-animate="immersionReveal"] {
    opacity: 1;
}

.immersion-grid[data-animate="immersionReveal"] .immersion-image,
.immersion-grid[data-animate="immersionReveal"] .section-title,
.immersion-grid[data-animate="immersionReveal"] .immersion-content > p,
.immersion-grid[data-animate="immersionReveal"] .immersion-who {
    opacity: 0;
    transform: translateY(40px);
}

.immersion-grid[data-animate="immersionReveal"].animated .immersion-image {
    animation: flyInUp 1s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0s;
}

.immersion-grid[data-animate="immersionReveal"].animated .section-title {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.3s;
}

.immersion-grid[data-animate="immersionReveal"].animated .immersion-content > p {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.5s;
}

.immersion-grid[data-animate="immersionReveal"].animated .immersion-who {
    animation: flyInUp 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    animation-delay: 0.9s;
}

/* Responsive */
@media (max-width: 992px) {
    .immersion-grid,
    .immersion-grid--reverse {
        grid-template-columns: 1fr;
        direction: ltr;
        gap: var(--spacing-sm);
    }

    .immersion-image {
        order: -1;
        margin-bottom: var(--spacing-md);
    }
}

@media (max-width: 768px) {
    .tier-header-row,
    .tier-row {
        grid-template-columns: 1fr 60px 60px 60px;
        font-size: 0.8rem;
    }

    .tier-label {
        font-size: 0.8rem;
    }
}

/* ============================================
   GLOBAL MOBILE RESPONSIVENESS
   ============================================ */
@media (max-width: 480px) {
    /* Prevent text overflow globally */
    .section-title,
    .page-hero-title,
    .page-hero-subtitle {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .page-hero-subtitle {
        font-size: 1.1rem;
    }

    /* Tier tables: tighter on very small screens */
    .tier-header-row,
    .tier-row {
        grid-template-columns: 1fr 50px 50px 50px;
        font-size: 0.75rem;
        gap: 0.25rem;
    }

    .tier-label {
        font-size: 0.75rem;
    }

    .tier-row .tier-col {
        font-size: 0.85rem;
    }

    /* Accordion content: slightly smaller on small phones */
    .accordion-content-inner {
        padding: var(--spacing-sm);
    }

    .protocol-phase li {
        font-size: 0.9rem;
    }
}

/* ============================================
   PRINT STYLES
   ============================================ */
@media print {
    .site-header,
    .site-footer,
    .whatsapp-btn,
    .nav-overlay,
    .carousel-nav {
        display: none !important;
    }

    .hero {
        height: auto;
        min-height: auto;
    }

    .parallax-section {
        height: auto;
    }

    .parallax-bg {
        position: relative;
        background-attachment: scroll;
    }

    a[href]::after {
        content: " (" attr(href) ")";
        font-size: 0.8em;
        color: var(--color-grey);
    }
}
