:root {
    --cream:             #FAF8F2;
    --warm-white:        #F3EDE3;
    --parchment:         #EAE0CF;
    --sand:              #D9CAAF;
    --eucalyptus-pale:   #EBF2EE;
    --eucalyptus-light:  #C4D9CE;
    --eucalyptus:        #8FAA9C;
    --eucalyptus-mid:    #6A9080;
    --eucalyptus-dark:   #4D7063;
    --terracotta-light:  #DEB896;
    --terracotta:        #C49272;
    --terracotta-dark:   #9E7050;
    --gold:              #C8A96E;
    --brown-dark:        #2C1F14;
    --brown-medium:      #5C4030;
    --text-primary:      #1E1610;
    --text-secondary:    #5C4838;
    --text-muted:        #9A7E6E;
    --border-subtle:     rgba(100,80,60,0.10);
    --border-default:    rgba(100,80,60,0.16);
    --font-serif: 'Playfair Display', 'Book Antiqua', Georgia, serif;
    --font-sans:  'DM Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --ease-calm:   cubic-bezier(0.25,0.46,0.45,0.94);
    --dur-slow:    0.8s;
    --dur-med:     0.5s;
    --dur-fast:    0.3s;
    --section-v:   clamp(4rem,8vw,7.5rem);
    --container:   clamp(1.5rem,5vw,4rem);
    --max-w:       1200px;
    }

    /* BASE RESET */
    *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
    html { scroll-behavior:smooth; font-size:16px; }
    body {
        background: var(--cream);
        color: var(--text-primary);
        font-family: var(--font-sans);
        line-height: 1.75;
        overflow-x: hidden;
        -webkit-font-smoothing: antialiased;
    }
    img { display:block; max-width:100%; }
    a { text-decoration:none; color:inherit; }
    button { cursor:pointer; border:none; background:none; font:inherit; }
    :focus-visible { outline: 2px solid var(--eucalyptus-mid); outline-offset:3px; border-radius:2px; }
    .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

    /* UTILITIES */
    .container { width:100%; max-width:var(--max-w); margin-inline:auto; padding-inline:var(--container); }
    .section    { padding-block: var(--section-v); }

    /* Reveal on scroll */
    .reveal { opacity:0; transform:translateY(22px); transition: opacity var(--dur-slow) var(--ease-calm), transform var(--dur-slow) var(--ease-calm); }
    .reveal.is-visible   { opacity:1; transform:translateY(0); }
    .reveal-d1           { transition-delay:.14s; }
    .reveal-d2           { transition-delay:.28s; }
    .reveal-d3           { transition-delay:.42s; }
    .reveal-d4           { transition-delay:.56s; }

    /* Section header */
    .section-header      { text-align:center; margin-bottom:clamp(2.5rem,5vw,4rem); }
    .eyebrow             { display:inline-block; font-size:.6875rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:var(--eucalyptus-dark); margin-bottom:1rem; padding-bottom:.875rem; border-bottom:1px solid var(--eucalyptus); }
    .section-title       { font-family:var(--font-serif); font-size:clamp(1.9rem,3.8vw,3rem); font-weight:400; line-height:1.2; color:var(--text-primary); max-width:560px; margin-inline:auto; margin-bottom:1rem; }
    .section-subtitle    { font-size:1rem; font-weight:300; color:var(--text-muted); max-width:460px; margin-inline:auto; line-height:1.85; }

    /* COMPONENT: Navigation */
    .nav {
        position: fixed;
        inset-inline: 0;
        top: 0;
        z-index: 100;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1.5rem var(--container);
        transition: background var(--dur-med) var(--ease-calm), 
                    padding    var(--dur-med) var(--ease-calm),
                    border-color var(--dur-med);
    }
    .nav--scrolled {
        background: rgba(250,248,242,.94);
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
        padding-block: 1rem;
        border-bottom: 1px solid var(--border-subtle);
    }
    .nav-logo {
        font-family: var(--font-serif);
        font-size: 1.3rem;
        font-weight: 400;
        letter-spacing: .04em;
        color: var(--cream);
        transition: color var(--dur-med);
    }
    .nav--scrolled .nav-logo { color: var(--text-primary); }
    .nav-links { display:flex; gap:2.5rem; list-style:none; }
    .nav-links a {
        font-size: .875rem;
        font-weight: 400;
        letter-spacing: .07em;
        text-transform: uppercase;
        color: rgba(250,248,242,.82);
        transition: color var(--dur-fast);
    }
    .nav--scrolled .nav-links a { color: var(--text-secondary); }
    .nav-links a:hover { color: var(--eucalyptus-dark); }
    .nav-reserve {
        font-size: .8125rem;
        font-weight: 500;
        letter-spacing: .09em;
        text-transform: uppercase;
        color: var(--cream);
        border: 1px solid rgba(250,248,242,.45);
        padding: .6rem 1.5rem;
        border-radius: 2px;
        transition: all var(--dur-med) var(--ease-calm);
    }
    .nav--scrolled .nav-reserve { color: var(--eucalyptus-dark); border-color: var(--eucalyptus); }
    .nav-reserve:hover { background:var(--eucalyptus-dark) !important; border-color:var(--eucalyptus-dark) !important; color:var(--cream) !important; }
    .nav-burger { display:none; flex-direction:column; gap:5px; padding:4px; }
    .nav-burger span { display:block; width:22px; height:1.5px; background:var(--cream); transition:background var(--dur-med); }
    .nav--scrolled .nav-burger span { background:var(--text-primary); }
    @media (max-width:768px) { .nav-links, .nav-reserve { display:none; } .nav-burger { display:flex; } }

    /* Mobile menu overlay */
    .mobile-overlay {
        display: none;
        position: fixed;
        inset: 0;
        z-index: 200;
        background: var(--cream);
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2rem;
    }
    .mobile-overlay.is-open { display:flex; animation: fadeIn .35s var(--ease-calm) both; }
    .mobile-overlay-close { position:absolute; top:1.5rem; right:var(--container); font-size:1.375rem; color:var(--text-primary); padding:.5rem; }
    .mobile-overlay a { font-family:var(--font-serif); font-size:2rem; font-weight:400; color:var(--text-primary); transition:color var(--dur-fast); }
    .mobile-overlay a:hover { color:var(--eucalyptus-dark); }
    @keyframes fadeIn { from { opacity:0; } to { opacity:1; } }

    /* COMPONENT: Hero */
    .hero {
        position: relative;
        height: 100svh;
        min-height: 600px;
        display: flex;
        align-items: center;
        overflow: hidden;
    }
    .hero-bg {
        position: absolute;
        inset: -15% 0;
        background: url('https://images.unsplash.com/photo-1540555700478-4be289fbecef?auto=format&fit=crop&w=1920&q=90') center/cover no-repeat;
        will-change: transform;
    }
    .hero-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgba(20,14,8,.58) 0%, rgba(20,14,8,.32) 55%, rgba(60,90,78,.22) 100%);
    }
    .hero-content {
        position: relative;
        z-index: 1;
        width: 100%;
        padding-inline: var(--container);
        max-width: var(--max-w);
        margin-inline: auto;
    }
    .hero-eyebrow {
        font-size: .75rem;
        font-weight: 400;
        letter-spacing: .2em;
        text-transform: uppercase;
        color: var(--eucalyptus-light);
        margin-bottom: 1.5rem;
        opacity:0; animation: slideUp 1s var(--ease-calm) .3s both;
    }
    .hero-title {
        font-family: var(--font-serif);
        font-size: clamp(2.8rem,7vw,5.5rem);
        font-weight: 400;
        line-height: 1.1;
        color: var(--cream);
        max-width: 680px;
        margin-bottom: 1.75rem;
        opacity:0; animation: slideUp 1s var(--ease-calm) .5s both;
    }
    .hero-title em { font-style:italic; color:var(--eucalyptus-light); }
    .hero-sub {
        font-size: 1rem;
        font-weight: 300;
        color: rgba(250,248,242,.75);
        max-width: 400px;
        line-height: 1.85;
        margin-bottom: 2.75rem;
        opacity:0; animation: slideUp 1s var(--ease-calm) .7s both;
    }
    .hero-cta {
        display: inline-flex;
        align-items: center;
        gap: .75rem;
        background: var(--eucalyptus-dark);
        color: var(--cream);
        font-size: .8125rem;
        font-weight: 500;
        letter-spacing: .11em;
        text-transform: uppercase;
        padding: 1rem 2.5rem;
        border-radius: 2px;
        transition: background var(--dur-med) var(--ease-calm), transform var(--dur-med) var(--ease-calm);
        opacity:0; animation: slideUp 1s var(--ease-calm) .9s both;
    }
    .hero-cta:hover { background:var(--terracotta-dark); transform:translateY(-2px); }
    .hero-cta svg { transition:transform var(--dur-med) var(--ease-calm); }
    .hero-cta:hover svg { transform:translateX(4px); }
    
    @keyframes lineFlow { 0% { top:-100%; } 60% { top:200%; } 100% { top:200%; } }
    @keyframes slideUp  { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }

    /* COMPONENT: Stats Strip */
    .stats-strip {
        background: var(--eucalyptus-dark);
        padding: 1.875rem var(--container);
    }
    .stats-inner {
        max-width: var(--max-w);
        margin-inline: auto;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0;
        flex-wrap: wrap;
    }
    .stat-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: .2rem;
        padding: .75rem 2.5rem;
        flex: 1;
        min-width: 140px;
    }
    .stat-number {
        font-family: var(--font-serif);
        font-size: 2rem;
        font-weight: 400;
        color: var(--cream);
        line-height: 1;
    }
    .stat-label {
        font-size: .7rem;
        letter-spacing: .14em;
        text-transform: uppercase;
        color: var(--eucalyptus-light);
    }
    .stat-divider { width:1px; height:40px; background:rgba(196,217,206,.2); }
    @media (max-width:560px) { .stat-divider { display:none; } .stat-item { padding:.5rem 1.25rem; } }

    /* COMPONENT: Services Carousel */
    .services { overflow: hidden; }
    .carousel-wrapper {
        display: flex;
        gap: 1.5rem;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 1rem var(--container) 2.5rem;
        cursor: grab;
    }
    .carousel-wrapper::-webkit-scrollbar { display:none; }
    .carousel-wrapper.is-dragging       { cursor:grabbing; scroll-snap-type:none; }

    .service-card {
        flex: 0 0 clamp(280px,38vw,420px);
        scroll-snap-align: start;
        background: var(--warm-white);
        border: 1px solid var(--border-default);
        border-radius: 3px;
        overflow: hidden;
        position: relative;
        transition: transform var(--dur-slow) var(--ease-calm), box-shadow var(--dur-slow) var(--ease-calm);
    }
    .service-card:hover { transform:translateY(-6px); box-shadow:0 24px 64px rgba(30,22,12,.12); }
    .service-card-img-wrap { overflow:hidden; height:280px; }
    .service-card-img { width:100%; height:100%; object-fit:cover; transition:transform var(--dur-slow) var(--ease-calm); }
    .service-card:hover .service-card-img { transform:scale(1.05); }
    .service-card-price {
        position: absolute;
        top: 1.125rem;
        right: 1.125rem;
        background: var(--cream);
        color: var(--text-primary);
        font-family: var(--font-serif);
        font-size: .875rem;
        padding: .3rem .875rem;
        border-radius: 1px;
    }
    .service-card-body { padding: 1.625rem 1.75rem 1.875rem; }
    .service-card-cat  { font-size:.6875rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--eucalyptus-dark); margin-bottom:.5rem; }
    .service-card-name { font-family:var(--font-serif); font-size:1.375rem; font-weight:500; color:var(--text-primary); margin-bottom:.625rem; line-height:1.3; }
    .service-card-desc { font-size:.9rem; font-weight:300; color:var(--text-muted); line-height:1.8; margin-bottom:1.375rem; }
    .service-card-cta  { display:inline-flex; align-items:center; gap:.5rem; font-size:.8125rem; font-weight:500; letter-spacing:.05em; color:var(--eucalyptus-dark); border-bottom:1px solid var(--eucalyptus); padding-bottom:2px; transition:all var(--dur-fast); }
    .service-card-cta:hover { color:var(--terracotta); border-color:var(--terracotta); }
    .service-card-cta svg { transition:transform var(--dur-fast); }
    .service-card-cta:hover svg { transform:translateX(4px); }

    /* Carousel nav */
    .carousel-nav { display:flex; align-items:center; justify-content:center; gap:1rem; }
    .carousel-btn {
        width:44px; height:44px;
        border-radius:50%;
        border:1px solid var(--parchment);
        display:flex; align-items:center; justify-content:center;
        color:var(--text-secondary);
        transition:all var(--dur-fast);
    }
    .carousel-btn:hover { background:var(--eucalyptus-dark); border-color:var(--eucalyptus-dark); color:var(--cream); }
    .carousel-btn:disabled { opacity:.35; pointer-events:none; }
    .carousel-dots { display:flex; gap:6px; }
    .carousel-dot {
        width:5px; height:5px;
        border-radius:99px;
        background:var(--parchment);
        border:none;
        transition:all var(--dur-med);
    }
    .carousel-dot.is-active { width:18px; background:var(--eucalyptus-dark); }

    /* COMPONENT: Philosophy */
    .philosophy { background:var(--eucalyptus-pale); padding-block:var(--section-v); }
    .philosophy-inner { max-width:720px; margin-inline:auto; text-align:center; padding-inline:var(--container); }
    .philosophy-rule { width:56px; height:1px; background:var(--eucalyptus); margin:0 auto 2rem; }
    .philosophy-title {
        font-family: var(--font-serif);
        font-size: clamp(1.8rem,4vw,2.75rem);
        font-weight: 400;
        line-height: 1.3;
        color: var(--text-primary);
        margin-bottom: 1.875rem;
    }
    .philosophy-title em { font-style:italic; color:var(--eucalyptus-dark); }
    .philosophy-body { font-size:1.0625rem; font-weight:300; color:var(--text-secondary); line-height:2; margin-bottom:1.25rem; }
    .philosophy-values { display:flex; gap:2rem; justify-content:center; flex-wrap:wrap; margin-top:2.5rem; }
    .philosophy-value { display:flex; flex-direction:column; align-items:center; gap:.625rem; }
    .philosophy-icon {
        width:50px; height:50px;
        border-radius:50%;
        background:white;
        border:1px solid var(--eucalyptus-light);
        display:flex; align-items:center; justify-content:center;
        color:var(--eucalyptus-dark);
        transition:all var(--dur-med) var(--ease-calm);
    }
    .philosophy-icon:hover { background:var(--eucalyptus-dark); color:var(--cream); transform:scale(1.08); }
    .philosophy-value-label { font-size:.7rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--text-secondary); }

    /* : Gallery Grid */
    .gallery-grid {
        display: grid;
        grid-template-columns: repeat(12, 1fr);
        gap: 1rem;
        max-width: var(--max-w);
        margin-inline: auto;
    }
    .gallery-item { overflow:hidden; border-radius:3px; position:relative; background:var(--parchment); }
    .gallery-item:nth-child(1) { grid-column:span 7; grid-row:span 2; min-height:480px; }
    .gallery-item:nth-child(2) { grid-column:span 5; min-height:230px; }
    .gallery-item:nth-child(3) { grid-column:span 5; min-height:230px; }
    .gallery-item:nth-child(4) { grid-column:span 4; min-height:220px; }
    .gallery-item:nth-child(5) { grid-column:span 4; min-height:220px; }
    .gallery-item:nth-child(6) { grid-column:span 4; min-height:220px; }
    .gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform var(--dur-slow) var(--ease-calm); }
    .gallery-item:hover img { transform:scale(1.06); }
    .gallery-item::after {
        content:'';
        position:absolute;
        inset:0;
        background:rgba(20,14,8,0);
        transition:background var(--dur-med);
    }
    .gallery-item:hover::after { background:rgba(20,14,8,.2); }
    @media (max-width:768px) {
        .gallery-grid { grid-template-columns:1fr 1fr; }
        .gallery-item:nth-child(n)  { grid-column:span 1; grid-row:span 1; min-height:180px; }
        .gallery-item:nth-child(1)  { grid-column:span 2; min-height:260px; }
    }

    /* COMPONENT: Testimonials */
    .testimonials { background:var(--warm-white); }
    .testimonials-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.5rem; max-width:var(--max-w); margin-inline:auto; }
    .testimonial {
        background:var(--cream);
        border:1px solid var(--border-default);
        border-radius:3px;
        padding:2.125rem 2rem;
        position:relative;
        transition:transform var(--dur-slow) var(--ease-calm), box-shadow var(--dur-slow) var(--ease-calm);
    }
    .testimonial:hover { transform:translateY(-4px); box-shadow:0 16px 48px rgba(30,22,12,.09); }
    .testimonial-mark {
        font-family: var(--font-serif);
        font-size: 5rem;
        line-height: 1;
        color: var(--eucalyptus-light);
        position: absolute;
        top: 1rem;
        left: 1.625rem;
        pointer-events: none;
        user-select: none;
    }
    .testimonial-stars { display:flex; gap:3px; margin-bottom:1.25rem; color:var(--gold); font-size:.875rem; }
    .testimonial-text  { font-family:var(--font-serif); font-size:1.0625rem; font-style:italic; font-weight:400; color:var(--text-secondary); line-height:1.8; margin-bottom:1.625rem; margin-top:1.375rem; }
    .testimonial-author { display:flex; align-items:center; gap:.875rem; }
    .testimonial-avatar { width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid var(--eucalyptus-light); flex-shrink:0; }
    .testimonial-name   { font-weight:500; font-size:.9rem; color:var(--text-primary); }
    .testimonial-role   { font-size:.75rem; color:var(--text-muted); letter-spacing:.04em; }

    /* COMPONENT: Booking Form */
    .booking-card {
        background: var(--warm-white);
        border: 1px solid var(--border-default);
        border-radius: 4px;
        padding: clamp(1.875rem,5vw,3.25rem);
        max-width: 680px;
        margin-inline: auto;
        margin-top: 2.5rem;
    }
    .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; margin-bottom:1.25rem; }
    @media (max-width:580px) { .form-grid { grid-template-columns:1fr; } .form-col-2 { grid-column:span 1 !important; } }
    .form-col-2 { grid-column:span 2; }
    .form-group { display:flex; flex-direction:column; gap:.5rem; }
    .form-label { font-size:.6875rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--text-secondary); }
    .form-input, .form-select, .form-textarea {
        width:100%;
        background:var(--cream);
        border:1px solid var(--parchment);
        border-radius:2px;
        padding:.875rem 1rem;
        font-family:var(--font-sans);
        font-size:.9375rem;
        font-weight:300;
        color:var(--text-primary);
        outline:none;
        transition:border-color var(--dur-fast), box-shadow var(--dur-fast);
    }
    .form-input:focus, .form-select:focus, .form-textarea:focus {
        border-color: var(--eucalyptus);
        box-shadow: 0 0 0 3px rgba(143,170,156,.18);
    }
    .form-input[aria-invalid="true"] { border-color:var(--terracotta); }
    .form-select { appearance:none; cursor:pointer; }
    .form-select-wrap { position:relative; }
    .form-select-arrow { position:absolute; right:1rem; top:50%; transform:translateY(-50%); pointer-events:none; color:var(--text-muted); }
    .form-textarea { resize:vertical; min-height:108px; }
    .form-hint { font-size:.75rem; color:var(--text-muted); }
    .form-submit {
        width:100%;
        background:var(--eucalyptus-dark);
        color:var(--cream);
        padding:1.125rem 2rem;
        font-size:.8125rem;
        font-weight:500;
        letter-spacing:.12em;
        text-transform:uppercase;
        border-radius:2px;
        margin-top:.375rem;
        display:flex; align-items:center; justify-content:center; gap:.75rem;
        transition:background var(--dur-med) var(--ease-calm), transform var(--dur-fast);
    }
    .form-submit:hover  { background:var(--terracotta-dark); transform:translateY(-1px); }
    .form-submit:active { transform:translateY(0); }
    .form-note { text-align:center; font-size:.8rem; color:var(--text-muted); margin-top:1.125rem; display:flex; align-items:center; justify-content:center; gap:.375rem; }
    .form-success { display:none; text-align:center; padding:2rem 1rem; }
    .form-success.is-visible { display:block; animation:fadeIn .5s var(--ease-calm) both; }
    .success-icon {
        width:60px; height:60px;
        border-radius:50%;
        background:var(--eucalyptus-pale);
        display:flex; align-items:center; justify-content:center;
        color:var(--eucalyptus-dark);
        margin:0 auto 1.375rem;
    }
    .success-title { font-family:var(--font-serif); font-size:1.6rem; color:var(--text-primary); margin-bottom:.75rem; }
    .success-body  { font-size:.9rem; font-weight:300; color:var(--text-muted); max-width:380px; margin-inline:auto; }

    /* COMPONENT: Footer */
    footer {
        background: var(--brown-dark);
        padding: 4rem var(--container) 2rem;
    }
    .footer-top {
        max-width: var(--max-w);
        margin-inline: auto;
        display: grid;
        grid-template-columns: 1.6fr 1fr 1fr 1fr;
        gap: 3rem;
        padding-bottom: 2.75rem;
        border-bottom: 1px solid rgba(250,248,242,.07);
        margin-bottom: 2rem;
    }
    @media (max-width:860px) { .footer-top { grid-template-columns:1fr 1fr; gap:2rem; } }
    @media (max-width:480px) { .footer-top { grid-template-columns:1fr; } }
    .footer-logo    { font-family:var(--font-serif); font-size:1.375rem; font-weight:400; color:var(--cream); letter-spacing:.04em; margin-bottom:.875rem; }
    .footer-tagline { font-size:.875rem; font-weight:300; line-height:1.8; color:rgba(250,248,242,.48); max-width:230px; }
    .footer-col-h   { font-size:.625rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--eucalyptus-light); margin-bottom:1.125rem; }
    .footer-links   { list-style:none; display:flex; flex-direction:column; gap:.5rem; }
    .footer-links a { font-size:.875rem; font-weight:300; color:rgba(250,248,242,.5); transition:color var(--dur-fast); }
    .footer-links a:hover { color:var(--eucalyptus-light); }
    .footer-bottom  { max-width:var(--max-w); margin-inline:auto; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
    .footer-copy    { font-size:.8rem; color:rgba(250,248,242,.28); }
    .footer-social  { display:flex; gap:.875rem; }
    .footer-social a {
        width:36px; height:36px;
        border-radius:50%;
        border:1px solid rgba(250,248,242,.14);
        display:flex; align-items:center; justify-content:center;
        color:rgba(250,248,242,.44);
        transition:all var(--dur-fast);
    }
    .footer-social a:hover { border-color:var(--eucalyptus-light); color:var(--eucalyptus-light); }

    /* COMPONENT: Floating Action Button — WhatsApp */
    .fab-whatsapp {
        position: fixed;
        bottom: 2rem;
        right: 2rem;
        z-index: 999;
        width: 56px;
        height: 56px;
        border-radius: 50%;
        background: linear-gradient(135deg, #25D366 0%, #1fa855 100%);
        color: white;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: 0 4px 24px rgba(37, 211, 102, 0.32);
        transition: all var(--dur-med) var(--ease-calm);
        animation: fabPulse 2.5s ease-in-out infinite;
    }
    
    .fab-whatsapp:hover {
        transform: scale(1.12);
        box-shadow: 0 8px 36px rgba(37, 211, 102, 0.48);
        animation: none;
    }
    
    .fab-whatsapp:active {
        transform: scale(0.96);
    }

    @keyframes fabPulse {
        0%, 100% {
            box-shadow: 0 4px 24px rgba(37, 211, 102, 0.32), 
                        0 0 0 0 rgba(37, 211, 102, 0.7);
        }
        50% {
            box-shadow: 0 4px 24px rgba(37, 211, 102, 0.32),
                        0 0 0 12px rgba(37, 211, 102, 0);
        }
    }

    @media (max-width: 640px) {
        .fab-whatsapp {
            width: 48px;
            height: 48px;
            bottom: 1.5rem;
            right: 1.5rem;
        }
        .fab-whatsapp svg {
            width: 20px;
            height: 20px;
        }
    }
