/* MMCare of Florida — redesign concept. Palette (v4): bright tropical emerald + teal lagoon, gold metallic foil. */
:root{
  /* Emerald is the primary gem; sapphire + amethyst are small secondary accents; gold metallic foil for highlights */
  --emerald-950:#04261C; --emerald-900:#063A2B; --emerald-800:#0A5240; --emerald-750:#0B6B4F; --emerald-700:#0D7A5B; --emerald-600:#0F8A66; --emerald-500:#12A37A; --emerald-300:#5FD3AE; --emerald-100:#E3F6EF;
  --sapphire-700:#0F2F80; --sapphire-500:#1E4FBF; --sapphire-100:#E6ECFA;
  --amethyst-700:#5A2E91; --amethyst-500:#8A5CC9; --amethyst-100:#F1EAFB;
  --gold-600:#B8902F; --gold-500:#D4AF37; --gold-300:#EBD08A; --champagne:#F5E9CC;
  --ivory:#FBF8F1; --ink:#0B1F18; --muted:#3F5A50; --white:#fff; --on-dark:#CFE3DA;
  --foil:linear-gradient(110deg,#B8902F 0%,#F5E9CC 22%,#D4AF37 40%,#FFF4D2 52%,#B8902F 70%,#EBD08A 100%);
  --gem:linear-gradient(135deg,var(--emerald-950) 0%,var(--emerald-900) 38%,var(--emerald-800) 72%,#0B3A3F 100%);
  --radius:18px; --shadow:0 18px 50px -20px rgba(4,38,28,.5);
  --serif:"Playfair Display",Georgia,serif; --sans:"Montserrat",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
html,body{overflow-x:clip}
body{font-family:var(--sans);color:var(--ink);background:var(--ivory);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{max-width:100%;display:block}
:where(img[height]){height:auto}
a{color:var(--emerald-750)}
h1,h2,h3{font-family:var(--serif);line-height:1.15;color:var(--emerald-900)}
h2{font-size:clamp(2rem,3.4vw,3rem);margin-bottom:.6em}
h3{font-size:1.35rem;margin-bottom:.4em}
.container{width:min(1180px,92vw);margin-inline:auto}
.eyebrow{display:inline-block;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;margin-bottom:1rem;background:var(--foil);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite}
.foil-text{background:var(--foil);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite}
@keyframes shimmer{to{background-position:200% center}}
.gold-rule{width:72px;height:3px;border:0;background:var(--foil);background-size:200% auto;animation:shimmer 5s linear infinite;margin:1rem 0 1.5rem;border-radius:3px}
.center{text-align:center}.center .gold-rule{margin-inline:auto}
section{padding:clamp(4.5rem,9vw,7.5rem) 0;position:relative}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:.6rem 1rem;z-index:999}.skip:focus{left:1rem}

/* Buttons */
.btn{--bg:var(--emerald-700);display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 1.6rem;border-radius:999px;font-weight:700;font-size:.95rem;text-decoration:none;letter-spacing:.02em;transition:transform .25s ease,box-shadow .25s ease,background-position .6s ease;position:relative;isolation:isolate;cursor:pointer;border:0}
.btn-gold{background:var(--foil);background-size:220% auto;color:var(--emerald-950);box-shadow:0 10px 30px -10px rgba(212,175,55,.7)}
.btn-gold:hover{background-position:right center;transform:translateY(-2px);box-shadow:0 16px 36px -10px rgba(212,175,55,.85)}
.btn-ghost{color:#fff;border:1.5px solid rgba(245,233,204,.7);background:rgba(255,255,255,.06);backdrop-filter:blur(6px)}
.btn-ghost:hover{background:rgba(255,255,255,.16);transform:translateY(-2px)}
.btn-deep{background:var(--emerald-800);color:#fff;box-shadow:inset 0 0 0 1.5px rgba(235,208,138,.55)}.btn-deep:hover{background:var(--emerald-900);transform:translateY(-2px)}
.btn-sapphire{background:var(--sapphire-700);color:#fff}.btn-sapphire:hover{background:var(--sapphire-500);transform:translateY(-2px)}
.btn-emerald{background:var(--emerald-700);color:#fff}.btn-emerald:hover{background:var(--emerald-800);transform:translateY(-2px)}
.btn svg{width:18px;height:18px}
:focus-visible{outline:3px solid var(--emerald-800);outline-offset:3px}
.hero :focus-visible,.gem-band :focus-visible,.contact :focus-visible,.page-hero :focus-visible,footer :focus-visible,.site-header :focus-visible,.lightbox :focus-visible,.mobile-cta :focus-visible,.ribbon :focus-visible{outline-color:var(--gold-300)}

/* Header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;transition:background .35s ease,box-shadow .35s ease,padding .35s ease;padding:1.1rem 0}
.site-header.scrolled,.site-header.solid{background:rgba(4,38,28,.92);backdrop-filter:blur(12px);box-shadow:0 10px 30px -15px rgba(0,0,0,.5);padding:.6rem 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#fff}
.brand img{height:44px;width:44px;border-radius:50%;background:#fff;padding:3px;object-fit:contain}
.brand span{font-family:var(--serif);font-size:1.15rem;line-height:1.1}
.brand small{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-300)}
.nav-links{display:flex;align-items:center;gap:1.6rem;list-style:none}
.nav-links a{color:#fff;text-decoration:none;font-size:.88rem;font-weight:600;position:relative;padding:.3rem 0}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:100%;background:var(--foil);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.nav-links a:not(.btn):hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-links .btn{padding:.6rem 1.15rem;color:var(--emerald-950)}
.menu-toggle{display:none;background:none;border:0;width:44px;height:44px;position:relative;cursor:pointer}
.menu-toggle span{position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:transform .3s,opacity .3s}
.menu-toggle span:nth-child(1){top:15px}.menu-toggle span:nth-child(2){top:21px}.menu-toggle span:nth-child(3){top:27px}
.menu-open .menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-open .menu-toggle span:nth-child(2){opacity:0}
.menu-open .menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Hero */
.hero{min-height:100svh;display:grid;place-items:center;color:#fff;overflow:hidden;padding:8rem 0 5rem;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:kenburns 26s ease-in-out infinite alternate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:
 radial-gradient(1100px 560px at 88% 8%,rgba(212,175,55,.22),transparent 60%),
 radial-gradient(900px 500px at 0% 100%,rgba(18,163,122,.5),transparent 60%),
 radial-gradient(700px 420px at 100% 100%,rgba(90,46,145,.28),transparent 65%),
 linear-gradient(120deg,rgba(4,38,28,.95) 0%,rgba(6,58,43,.85) 45%,rgba(10,82,64,.62) 100%);
 background-size:140% 140%;animation:gemshift 18s ease-in-out infinite alternate}
@keyframes gemshift{0%{background-position:0% 0%}100%{background-position:100% 100%}}
@keyframes kenburns{0%{transform:scale(1.08) translate(0,0)}100%{transform:scale(1.2) translate(-2%,-2%)}}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:3rem;align-items:center}
.hero h1{color:#fff;font-size:clamp(2.6rem,6.2vw,5rem);font-weight:700;letter-spacing:-.01em}
.hero h1 em{font-style:italic}
.hero .lede{font-size:clamp(1.05rem,1.6vw,1.3rem);color:#E6F4EE;margin:1.2rem 0 .6rem;max-width:36ch}
.hero .quote{font-family:var(--serif);font-style:italic;color:var(--champagne);font-size:1.2rem;margin-bottom:2rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.9rem}
.award-card{justify-self:center;position:relative;width:min(340px,80vw);aspect-ratio:1;display:grid;place-items:center;animation:float 7s ease-in-out infinite}
.award-card::before{content:"";position:absolute;inset:-6%;border-radius:50%;background:conic-gradient(from 0deg,var(--gold-500),var(--emerald-500),var(--emerald-300),var(--amethyst-500),var(--gold-500));filter:blur(28px);opacity:.55;animation:spin 14s linear infinite}
.award-card img{position:relative;width:88%;filter:drop-shadow(0 20px 40px rgba(0,0,0,.45))}
.award-card figcaption{position:absolute;bottom:-1.8rem;left:0;right:0;text-align:center;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-300)}
@keyframes float{50%{transform:translateY(-14px)}}
@keyframes spin{to{transform:rotate(360deg)}}
.scroll-cue{position:absolute;bottom:1.6rem;left:50%;translate:-50% 0;width:26px;height:42px;border:2px solid rgba(255,255,255,.6);border-radius:14px}
.scroll-cue::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--gold-300);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{60%{transform:translateY(12px);opacity:0}100%{opacity:0}}

/* Disclaimer ribbon */
.ribbon{background:var(--emerald-950);color:var(--on-dark);font-size:.82rem;text-align:center;padding:1rem 0;border-top:1px solid rgba(212,175,55,.35);border-bottom:1px solid rgba(212,175,55,.35)}

/* Quick links */
.quick{background:var(--ivory);margin-top:-1px}
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2.5rem}
.qcard{--accent:var(--emerald-750);position:relative;display:flex;gap:1rem;align-items:flex-start;padding:1.6rem;border-radius:var(--radius);background:#fff;text-decoration:none;color:var(--ink);box-shadow:0 2px 0 rgba(4,38,28,.04),0 10px 30px -18px rgba(4,38,28,.38);overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.qcard::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:linear-gradient(135deg,var(--accent),transparent 40%,var(--gold-500));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;transition:opacity .35s}
.qcard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.qcard:hover::before{opacity:1}
.qcard .ico{flex:none;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,#fff);color:var(--accent)}
.qcard .ico svg{width:26px;height:26px}
.qcard h3{font-size:1.15rem;margin-bottom:.2rem}
.qcard p{font-size:.9rem;color:var(--muted)}
.qcard .ext{font-size:.72rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:.5rem;display:block}
.qcard.emerald{--accent:var(--emerald-600)}.qcard.sapphire{--accent:var(--sapphire-500)}.qcard.amethyst{--accent:var(--amethyst-500)}.qcard.gold{--accent:var(--gold-600)}

/* Split sections */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split.reverse .split-media{order:2}
.split-media{position:relative;border-radius:24px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3}
.split-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.split-media:hover img{transform:scale(1.05)}
.split-media::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(212,175,55,.45)}
.split p{color:var(--muted);margin-bottom:1rem}
.tint-sapphire{background:linear-gradient(180deg,var(--emerald-100),var(--ivory))}
.tint-amethyst{background:linear-gradient(180deg,var(--amethyst-100),var(--ivory))}
.tint-emerald{background:linear-gradient(180deg,var(--emerald-100),var(--ivory))}

/* Pricing / services */
.services{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:1.5rem 0 2rem}
.service{background:#fff;border-radius:14px;padding:1.1rem 1.2rem;border-left:4px solid var(--emerald-600);box-shadow:0 8px 24px -18px rgba(4,38,28,.45);transition:transform .3s}
.service:nth-child(2){border-color:var(--gold-500)}.service:nth-child(3){border-color:var(--amethyst-500)}.service:nth-child(4){border-color:var(--sapphire-500)}
.service:hover{transform:translateY(-4px)}
.service h3{font-size:1.05rem;font-family:var(--sans);font-weight:700}
.service p{font-size:.9rem;margin:0}

/* Dark gem band */
.gem-band{background:var(--gem);background-size:200% 200%;animation:gemshift 20s ease-in-out infinite alternate;color:#E6F4EE;overflow:hidden}
.gem-band h2,.gem-band h3{color:#fff}
.gem-band p{color:var(--on-dark)}
.parallax-bg{position:absolute;inset:-15% 0;z-index:0;background-size:cover;background-position:center;opacity:.16;will-change:transform}
.gem-band .container{position:relative;z-index:1}

/* Locations */
.loc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2.5rem}
.loc{background:rgba(255,255,255,.08);border:1px solid rgba(235,208,138,.35);border-radius:var(--radius);padding:1.8rem;backdrop-filter:blur(8px);transition:transform .35s,background .35s}
.loc:hover{transform:translateY(-6px);background:rgba(255,255,255,.13)}
.loc h3{font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;font-size:.95rem;color:var(--gold-300)}
.loc address{font-style:normal;font-size:1.25rem;color:#fff;margin:.4rem 0 1.2rem;font-family:var(--serif)}
.loc .row{display:flex;flex-wrap:wrap;gap:.6rem}
.loc iframe{width:100%;height:220px;border:0;border-radius:12px;margin-top:1.2rem;filter:saturate(.85)}
.legal-note{text-align:center;font-size:.85rem;margin-top:2rem;color:var(--champagne)}

/* Moments slideshow (Ken Burns) */
.moments{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.kb{position:relative;aspect-ratio:4/3;border-radius:24px;overflow:hidden;box-shadow:var(--shadow);background:var(--emerald-950)}
.kb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease;transform:scale(1.04)}
.kb img.on{opacity:1;animation:kenburns 9s ease-out forwards}
.kb::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(212,175,55,.5);pointer-events:none}
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1.5rem 0 2rem}
.mini-grid img{aspect-ratio:1;object-fit:cover;border-radius:10px;transition:transform .35s,filter .35s;filter:saturate(.9)}
.mini-grid a:hover img{transform:scale(1.05);filter:saturate(1.15)}

/* ECS teaser cards */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.5rem}
.icard{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 30px -20px rgba(4,38,28,.5);transition:transform .4s,box-shadow .4s;display:flex;flex-direction:column}
.icard:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.icard img{aspect-ratio:16/10;object-fit:cover;width:100%}
.icard .body{padding:1.3rem 1.4rem 1.6rem}
.icard p{font-size:.92rem;color:var(--muted)}
.chip{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .6rem;border-radius:999px;background:var(--emerald-100);color:var(--emerald-800);margin-bottom:.6rem}
.chip.em{background:#F6EDD3;color:#6B5310}.chip.am{background:var(--amethyst-100);color:var(--amethyst-700)}.chip.sa{background:var(--sapphire-100);color:var(--sapphire-700)}

/* Partners marquee */
.partners{background:#fff}
.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);margin-top:2.5rem}
.marquee-track{display:flex;gap:3.5rem;width:max-content;animation:marquee 32s linear infinite;align-items:center}
.marquee:hover .marquee-track{animation-play-state:paused}
.partner{height:96px;display:grid;place-items:center;filter:grayscale(.35);opacity:.9;transition:filter .3s,opacity .3s,transform .3s}
.partner:hover{filter:none;opacity:1;transform:scale(1.06)}
.partner img{max-height:96px;max-width:200px;object-fit:contain}
@keyframes marquee{to{transform:translateX(-50%)}}
.todo{display:inline-block;font-size:.72rem;background:#FFF3C4;color:#7A5B00;border:1px dashed #C9A227;border-radius:6px;padding:.15rem .45rem;font-weight:600}

/* Contact */
.contact{background:var(--gem);background-size:200% 200%;animation:gemshift 20s ease-in-out infinite alternate;color:#fff}
.contact h2{color:#fff}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:start}
.contact-list{list-style:none;display:grid;gap:1rem;margin:1.5rem 0}
.contact-list a{display:flex;align-items:center;gap:1rem;color:#fff;text-decoration:none;padding:1rem 1.2rem;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(235,208,138,.25);transition:background .3s,transform .3s}
.contact-list a:hover{background:rgba(255,255,255,.15);transform:translateX(6px)}
.contact-list svg{width:24px;height:24px;color:var(--gold-300);flex:none}
.contact-list small{display:block;color:var(--champagne);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}
.socials{display:flex;gap:.8rem;flex-wrap:wrap}
.socials a{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(235,208,138,.35);transition:transform .3s,background .3s}
.socials a:hover{transform:translateY(-4px) rotate(-6deg);background:var(--gold-500);color:var(--emerald-950)}
.socials svg{width:22px;height:22px}
.cta-panel{background:rgba(255,255,255,.08);border:1px solid rgba(235,208,138,.4);border-radius:24px;padding:2rem;backdrop-filter:blur(8px)}
.cta-panel p{color:var(--on-dark);margin-bottom:1.4rem}

footer{background:var(--emerald-950);color:#B5D0C4;border-top:1px solid rgba(212,175,55,.35);font-size:.85rem;padding:2.5rem 0}
.foot{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center}
footer a{color:var(--gold-300);text-decoration:none}footer a:hover{text-decoration:underline}
footer nav{display:flex;flex-wrap:wrap;gap:1.2rem}
.fineprint{margin-top:1.2rem;font-size:.75rem;color:#9CBDAF;max-width:90ch}

/* Sticky mobile CTA */
.mobile-cta{display:none}

/* Page hero (sub pages) */
.page-hero{padding:9rem 0 4.5rem;color:#fff;background:var(--gem);background-size:200% 200%;animation:gemshift 18s ease-in-out infinite alternate;overflow:hidden;position:relative}
.page-hero h1{color:#fff;font-size:clamp(2.4rem,5vw,4rem)}
.page-hero .parallax-bg{opacity:.12}
.page-hero p{color:var(--on-dark);max-width:60ch;margin-top:1rem}

/* Gallery page */
.filters{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:2.2rem}
.filters button{font:600 .88rem var(--sans);padding:.6rem 1.2rem;border-radius:999px;border:1.5px solid var(--emerald-800);background:transparent;color:var(--emerald-800);cursor:pointer;transition:all .25s}
.filters button[aria-pressed=true],.filters button:hover{background:var(--emerald-800);color:#fff;box-shadow:inset 0 0 0 1.5px var(--gold-300)}
.masonry{columns:3 320px;column-gap:1.1rem}
.tile{break-inside:avoid;margin-bottom:1.1rem;position:relative;border-radius:16px;overflow:hidden;cursor:zoom-in;box-shadow:0 12px 30px -20px rgba(4,38,28,.6);transition:opacity .45s,transform .45s}
.tile button{all:unset;display:block;cursor:zoom-in;width:100%}
.tile img{width:100%;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.tile figcaption{position:absolute;inset:auto 0 0 0;padding:2.2rem 1rem .9rem;color:#fff;font-size:.88rem;font-weight:600;background:linear-gradient(transparent,rgba(4,38,28,.9));transform:translateY(100%);transition:transform .45s}
.tile:hover img,.tile:focus-within img{transform:scale(1.06)}
.tile:hover figcaption,.tile:focus-within figcaption{transform:none}
.tile.hide{display:none}
.lightbox{position:fixed;inset:0;z-index:300;background:radial-gradient(1200px 800px at 50% 40%,rgba(10,82,64,.55),transparent 70%),rgba(3,24,18,.96);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .35s}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox figure{max-width:92vw;max-height:86vh;text-align:center}
.lightbox img{max-width:92vw;max-height:78vh;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6);transition:opacity .3s,transform .4s}
.lightbox img.swap{opacity:0;transform:scale(.97)}
.lightbox figcaption{color:var(--champagne);margin-top:1rem;font-size:.95rem}
.lb-btn{position:absolute;background:rgba(255,255,255,.1);border:1px solid rgba(235,208,138,.4);color:#fff;width:52px;height:52px;border-radius:50%;cursor:pointer;font-size:1.5rem;display:grid;place-items:center;transition:background .25s}
.lb-btn:hover{background:var(--gold-500);color:var(--emerald-950)}
.lb-prev{left:2vw;top:50%;translate:0 -50%}.lb-next{right:2vw;top:50%;translate:0 -50%}.lb-close{right:2vw;top:2vh}
.lb-count{position:absolute;top:2.6vh;left:2vw;color:var(--on-dark);font-size:.85rem;letter-spacing:.1em}

/* Learn page */
.toc{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}
.toc a{color:#fff;text-decoration:none;font-size:.85rem;padding:.45rem .9rem;border-radius:999px;border:1px solid rgba(235,208,138,.45);transition:background .25s}
.toc a:hover{background:rgba(255,255,255,.15)}
.prose{max-width:75ch}
.prose ul{margin:0 0 1rem 1.2rem;color:var(--muted)}.prose li{margin-bottom:.45rem}
.prose strong{color:var(--emerald-900)}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem}
.trio .tcard{background:#fff;border-radius:16px;padding:1.4rem;box-shadow:0 10px 30px -20px rgba(4,38,28,.5);border-top:4px solid var(--emerald-600)}
.trio .tcard:nth-child(2){border-color:var(--gold-500)}.trio .tcard:nth-child(3){border-color:var(--amethyst-500)}
.trio img{height:110px;object-fit:contain;margin:0 auto 1rem;border-radius:8px}
.trio p{font-size:.9rem;color:var(--muted)}
.note{background:var(--amethyst-100);border-left:4px solid var(--amethyst-500);padding:1rem 1.2rem;border-radius:10px;font-size:.92rem;margin-top:1rem}

/* Reveal animations */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.reveal.left{transform:translateX(-40px)}.reveal.right{transform:translateX(40px)}.reveal.zoom{transform:scale(.94)}
.reveal.in{opacity:1;transform:none}
.stagger>*{transition-delay:calc(var(--i,0)*90ms)}

/* Page transition veil */
.veil{position:fixed;inset:0;z-index:500;background:var(--gem);pointer-events:none;opacity:0;transition:opacity .45s ease}
.veil.on{opacity:1}
body.loading .veil{opacity:1}

/* Responsive */
@media (max-width:980px){
  .hero-grid,.split,.moments,.contact-grid{grid-template-columns:1fr}
  .split.reverse .split-media{order:0}
  .award-card{width:min(260px,70vw);margin-top:1rem}
  .quick-grid,.cards3,.trio{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .menu-toggle{display:block}
  .nav-links{position:fixed;inset:0 0 0 auto;width:min(320px,84vw);flex-direction:column;align-items:flex-start;justify-content:center;gap:1.4rem;padding:2rem;background:linear-gradient(160deg,var(--emerald-950),var(--emerald-800));transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.8,.2,1),visibility .45s;visibility:hidden}
  .menu-open .nav-links{transform:none;visibility:visible;box-shadow:-20px 0 60px rgba(0,0,0,.4)}
  .nav-links a{font-size:1.15rem}
  .menu-toggle{z-index:2}
}
@media (max-width:640px){
  .reveal.left,.reveal.right{transform:translateY(30px)}
  body{font-size:16px}
  .quick-grid,.cards3,.trio,.loc-grid,.services{grid-template-columns:1fr}
  .hero{padding-top:7rem;min-height:auto}
  .hero-ctas .btn{flex:1 1 100%;justify-content:center}
  .mobile-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:90;gap:.5rem;padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(4,38,28,.95);backdrop-filter:blur(10px);border-top:1px solid rgba(212,175,55,.4)}
  .mobile-cta a{flex:1;justify-content:center;padding:.8rem 1rem}
  footer{padding-bottom:6rem}
  .scroll-cue{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  .hero-media video{display:none}
}

/* Office hours */
.hours-row{display:flex;gap:.9rem;align-items:flex-start;color:inherit}
.hours-row svg{width:22px;height:22px;flex:none;margin-top:.15rem;color:var(--gold,#C9A227)}
.hours-row small{display:block}
.cta-hours{margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid rgba(201,162,39,.4)}
.hours{display:grid;grid-template-columns:auto auto;gap:.35rem 1.2rem;margin:.6rem 0 0;font-size:.9rem;color:#fff}
.hours dt{font-weight:600;color:var(--champagne,#F3E5B5)}.hours dd{margin:0;text-align:right}
.foot-hours{margin:1rem 0 0;font-size:.85rem;color:var(--champagne,#F3E5B5)}
.loc-hours{margin:1.6rem auto 0;color:var(--champagne,#F3E5B5);font-size:.95rem}

/* Sharp imagery */
img{image-rendering:auto}
.tile img{aspect-ratio:4/3;object-fit:cover;height:auto}
.lightbox img{width:auto;height:auto;object-fit:contain;background:var(--emerald-950)}

/* ==========================================================================
   v4 "Bright tropical": vivid emerald + tropical teal/turquoise lagoon,
   sunny mint/aqua/ivory light sections, gold foil accents.
   Deep teal (#04363B / #05535A / #0B6E6E) only where white text needs contrast.
   Gold-only glitter layer below is unchanged in colour.
   ========================================================================== */
:root{
  --em-vivid:#10C98F; --em-500:#00B37A; --em-deep:#00785A;
  --teal-300:#5EEAD4; --teal-400:#2DD4BF; --teal-500:#19C3C3; --teal-600:#00A6A6;
  --teal-700:#0B6E6E; --teal-800:#086466; --teal-900:#05535A; --teal-950:#04363B;
  --mint-50:#F1FCF8; --mint-100:#E3FAF1; --aqua-50:#EFFCFC; --aqua-100:#E0F8F8;
  --ink:#08302F; --muted:#2E5E5E; --on-dark:#CFEDE6;
  --emerald-950:#04363B; --emerald-900:#05535A; --emerald-800:#0B6E6E; --emerald-750:#0B6E6E; --emerald-700:#00785A; --emerald-600:#00A67A; --emerald-500:#10C98F; --emerald-300:#5EEAD4; --emerald-100:var(--mint-100);
  --lagoon:linear-gradient(110deg,#10C98F 0%,#2DD4BF 45%,#19C3C3 70%,#5EEAD4 100%);
  /* Deep lagoon: the only dark surfaces (white text >= 5.2:1 everywhere) */
  --deep-lagoon:linear-gradient(125deg,#04434A 0%,#05535A 35%,#086466 65%,#065E55 100%);
  --deep-lagoon-r:linear-gradient(125deg,#065E55 0%,#086466 35%,#05535A 65%,#04434A 100%);
  --gem:var(--deep-lagoon);
  --foil:linear-gradient(110deg,#B8902F 0%,#F5E9CC 18%,#D4AF37 34%,#FFF8E1 46%,#D4AF37 56%,#B8902F 72%,#EBD08A 100%);
  --shadow:0 18px 50px -20px rgba(5,83,90,.45);
}
body{background:var(--ivory);color:var(--ink)}
h1,h2,h3{color:var(--teal-900)}
h2{background:linear-gradient(100deg,var(--teal-900) 0%,var(--teal-700) 55%,var(--em-deep) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.gem-band h2,.contact h2,.hero h1,.page-hero h1{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#fff}
a{color:var(--teal-700)}
.prose strong{color:var(--teal-900)}
:focus-visible{outline-color:var(--teal-700)}

/* Hero: deep teal behind the text (left), opening to luminous emerald/turquoise light on the right */
.hero::before{background:
 radial-gradient(900px 520px at 90% 6%,rgba(255,226,140,.26),transparent 60%),
 radial-gradient(800px 520px at 100% 100%,rgba(45,212,191,.40),transparent 62%),
 radial-gradient(700px 460px at 62% 110%,rgba(16,201,143,.38),transparent 62%),
 linear-gradient(110deg,rgba(4,54,59,.93) 0%,rgba(5,83,90,.86) 38%,rgba(11,110,110,.66) 66%,rgba(0,166,166,.42) 100%);
 background-size:140% 140%}
.page-hero{background:
 radial-gradient(700px 380px at 92% 0%,rgba(45,212,191,.22),transparent 65%),
 radial-gradient(600px 360px at 0% 100%,rgba(16,201,143,.18),transparent 65%),
 var(--deep-lagoon);background-size:100% 100%,100% 100%,200% 200%}
.page-hero .parallax-bg{opacity:.14}
.gem-band,.gem-band.band-sapphire{background:
 radial-gradient(640px 340px at 100% 0%,rgba(45,212,191,.16),transparent 65%),
 radial-gradient(640px 340px at 0% 100%,rgba(16,201,143,.15),transparent 65%),
 var(--deep-lagoon);background-size:100% 100%,100% 100%,200% 200%}
.gem-band.band-sapphire{background:
 radial-gradient(640px 340px at 0% 0%,rgba(16,201,143,.15),transparent 65%),
 radial-gradient(640px 340px at 100% 100%,rgba(45,212,191,.16),transparent 65%),
 var(--deep-lagoon-r);background-size:100% 100%,100% 100%,200% 200%}
.gem-band .parallax-bg{opacity:.14}
.contact{background:
 radial-gradient(700px 380px at 100% 0%,rgba(45,212,191,.16),transparent 65%),
 radial-gradient(700px 380px at 0% 100%,rgba(16,201,143,.15),transparent 65%),
 var(--deep-lagoon-r);background-size:100% 100%,100% 100%,200% 200%}
/* Luminous lagoon edge on every dark band */
.gem-band::after,.contact::after,.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--lagoon);background-size:200% auto;animation:shimmer 8s linear infinite;z-index:1;pointer-events:none}
.veil{background:var(--deep-lagoon)}
.ribbon{background:linear-gradient(90deg,#04434A,#05535A 50%,#065E55);color:var(--on-dark);border-top:0;border-bottom:0;box-shadow:inset 0 3px 0 0 #2DD4BF,inset 0 -1px 0 rgba(212,175,55,.45)}
footer{background:linear-gradient(90deg,#04363B 0%,#05535A 55%,#065E55 100%);color:#C6E6DF;border-top:4px solid transparent;border-image:var(--lagoon) 1}
.fineprint{color:#A9D4CB}
.site-header.scrolled,.site-header.solid{background:linear-gradient(90deg,rgba(4,54,59,.94),rgba(5,83,90,.94) 60%,rgba(6,94,85,.94));box-shadow:0 1px 0 rgba(45,212,191,.55),0 10px 30px -15px rgba(0,0,0,.4)}
@media (max-width:820px){.nav-links{background:linear-gradient(160deg,#04363B,#05535A 50%,#065E55)}}
@media (max-width:640px){.mobile-cta{background:linear-gradient(90deg,rgba(4,54,59,.96),rgba(6,94,85,.96));border-top:2px solid #2DD4BF}}
.lightbox{background:radial-gradient(900px 700px at 30% 40%,rgba(16,201,143,.22),transparent 70%),radial-gradient(900px 700px at 70% 60%,rgba(45,212,191,.2),transparent 70%),rgba(3,38,42,.96)}
.lightbox img{background:var(--teal-950)}
.kb{background:var(--teal-950)}

/* Light, sunny bands: mint / aqua tints with soft sun-glow */
.quick{background:radial-gradient(900px 420px at 85% 0%,rgba(94,234,212,.22),transparent 65%),radial-gradient(800px 400px at 0% 100%,rgba(16,201,143,.14),transparent 65%),var(--ivory)}
.tint-emerald{background:radial-gradient(800px 380px at 100% 0%,rgba(16,201,143,.16),transparent 65%),linear-gradient(180deg,var(--mint-100),var(--ivory))}
.tint-sapphire{background:radial-gradient(800px 380px at 0% 0%,rgba(45,212,191,.18),transparent 65%),linear-gradient(180deg,var(--aqua-100),var(--ivory))}
.partners{background:linear-gradient(180deg,#fff,var(--aqua-50))}
.tint-emerald::before,.tint-sapphire::before,.quick::before,.partners::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--lagoon);opacity:.85}

/* Buttons + chips */
.btn-deep{background:linear-gradient(110deg,var(--teal-900),var(--teal-700));background-size:200% auto;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(235,208,138,.6)}
.btn-deep:hover{background:linear-gradient(110deg,var(--teal-950),var(--teal-900));transform:translateY(-2px)}
.btn-emerald{background:var(--lagoon);background-size:200% auto;color:var(--teal-950);box-shadow:0 10px 26px -12px rgba(16,201,143,.8)}
.btn-emerald:hover{background:var(--lagoon);background-size:200% auto;background-position:right center;color:var(--teal-950)}
.btn-sapphire{background:var(--teal-700);color:#fff}.btn-sapphire:hover{background:var(--teal-900)}
.nav-links .btn{color:#04363B}
.btn-gold{color:#04363B}
.chip{background:linear-gradient(90deg,#D9F7EE,#D6F5F5);color:var(--teal-900)}
.chip.sa{background:var(--aqua-100);color:var(--teal-900)}
.chip.am{background:#DDF6EC;color:#005F56}
.qcard{--accent:var(--em-500);box-shadow:0 2px 0 rgba(5,83,90,.04),0 10px 30px -18px rgba(5,83,90,.38)}
.qcard.emerald{--accent:var(--em-500)}.qcard:nth-child(even){--accent:var(--teal-600)}.qcard.amethyst{--accent:var(--teal-500)}.qcard.gold{--accent:var(--gold-600)}
.qcard .ico{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,#fff),color-mix(in srgb,var(--teal-300) 22%,#fff));color:color-mix(in srgb,var(--accent) 70%,#05535A)}
.service{border-left-color:var(--em-500);box-shadow:0 8px 24px -18px rgba(5,83,90,.45)}
.service:nth-child(2){border-color:var(--gold-500)}.service:nth-child(3){border-color:var(--teal-500)}.service:nth-child(4){border-color:var(--teal-400)}
.trio .tcard{border-top-color:var(--em-500)}.trio .tcard:nth-child(3){border-color:var(--teal-500)}
.note{background:var(--aqua-100);border-left-color:var(--teal-500)}
.icard,.tile{box-shadow:0 12px 30px -20px rgba(5,83,90,.5)}
.filters button{border-color:var(--teal-700);color:var(--teal-900);background:#fff}
.filters button[aria-pressed=true],.filters button:hover{background:var(--lagoon);background-size:200% auto;color:var(--teal-950);border-color:transparent;box-shadow:inset 0 0 0 1.5px var(--gold-300),0 8px 20px -10px rgba(16,201,143,.7)}
.award-card::before{background:conic-gradient(from 0deg,var(--gold-500),var(--em-vivid),var(--teal-400),var(--teal-300),var(--gold-500));opacity:.6}
.tile figcaption{background:linear-gradient(transparent,rgba(4,54,59,.92))}
.tile:hover,.tile:focus-within{box-shadow:0 18px 40px -18px rgba(5,83,90,.7),0 0 24px -6px rgba(212,175,55,.6)}
.loc{background:rgba(255,255,255,.08);border-color:rgba(235,208,138,.45)}
.contact-list a{background:rgba(255,255,255,.08)}

/* Gold sparks need a touch of definition to read on light/bright backgrounds */
.spark{filter:drop-shadow(0 0 1.5px rgba(150,110,20,.85)) drop-shadow(0 0 4px rgba(212,175,55,.6))}

/* ---------- Glitter / glint layer (gold only) ---------- */
/* Light sweep across foil text */
.eyebrow,.foil-text{background:linear-gradient(100deg,transparent 40%,rgba(255,255,255,.95) 50%,transparent 60%) no-repeat,var(--foil);background-size:250% 100%,200% auto;-webkit-background-clip:text;background-clip:text;animation:glintText 5.5s ease-in-out infinite,shimmer 6s linear infinite}
@keyframes glintText{0%,55%{background-position:160% 0,0 center}100%{background-position:-60% 0,200% center}}

/* Sparkling gold dividers */
.gold-rule{position:relative;overflow:visible;height:3px;width:96px;background:radial-gradient(circle,#fff 0 1.2px,transparent 2.2px) 0 50%/22px 3px repeat-x,var(--foil);background-size:22px 3px,200% auto;box-shadow:0 0 10px rgba(212,175,55,.55);animation:shimmer 5s linear infinite,rulePulse 2.8s ease-in-out infinite}
.gold-rule::after{content:"";position:absolute;top:50%;left:0;width:14px;height:14px;margin:-7px 0 0 -7px;background:radial-gradient(circle,#fff 0 1.5px,rgba(255,244,210,.9) 2.5px,transparent 4px),conic-gradient(from 45deg,transparent 0 20%,rgba(255,240,200,.95) 25%,transparent 30% 45%,rgba(255,240,200,.95) 50%,transparent 55% 70%,rgba(255,240,200,.95) 75%,transparent 80%);-webkit-mask:radial-gradient(circle,#000 0 30%,transparent 72%);mask:radial-gradient(circle,#000 0 30%,transparent 72%);animation:ruleStar 3.2s ease-in-out infinite;pointer-events:none}
@keyframes rulePulse{50%{box-shadow:0 0 16px rgba(235,208,138,.9)}}
@keyframes ruleStar{0%{left:0;opacity:0;transform:scale(.4) rotate(0)}15%{opacity:1;transform:scale(1.2) rotate(45deg)}85%{opacity:1}100%{left:100%;opacity:0;transform:scale(.5) rotate(180deg)}}

/* Glint sweep across gold buttons */
.btn-gold{overflow:hidden}
.btn-gold::after{content:"";position:absolute;inset:-2px;z-index:-1;border-radius:inherit;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.85) 48%,rgba(255,250,230,.4) 52%,transparent 62%) no-repeat;background-size:250% 100%;background-position:160% 0;animation:btnGlint 4.2s ease-in-out infinite;pointer-events:none;mix-blend-mode:soft-light}
.btn-gold{z-index:0}
.btn-gold>*{position:relative}
@keyframes btnGlint{0%,62%{background-position:160% 0}100%{background-position:-60% 0}}
.btn-gold:hover::after{animation-duration:1.1s}

/* Award badge: glint sweep + twinkles */
.award-card::after{content:"";position:absolute;inset:0;-webkit-mask:url("../assets/img/award-badge.png") center/88% auto no-repeat;mask:url("../assets/img/award-badge.png") center/88% auto no-repeat;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.55) 48%,rgba(255,244,210,.25) 53%,transparent 62%) no-repeat;background-size:260% 100%;background-position:160% 0;mix-blend-mode:overlay;animation:btnGlint 5s ease-in-out infinite 1s}

/* Sparkle canvas layer (injected by JS) */
.sparkle-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.hero>.sparkle-canvas{z-index:-1}
.contact>.container,.page-hero>.container{position:relative;z-index:1}

/* Hover sparkle burst on buttons */
.spark{position:fixed;width:var(--s,6px);height:var(--s,6px);margin:calc(var(--s,6px)/-2);pointer-events:none;z-index:400;background:radial-gradient(circle,#fff 0 18%,var(--c,#EBD08A) 30%,transparent 70%);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:sparkFly .75s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes sparkFly{0%{transform:translate(0,0) scale(.2) rotate(0);opacity:1}70%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(1) rotate(160deg);opacity:0}}

/* Shimmering gold borders on gallery tiles + photo frames */
@property --ang{syntax:"<angle>";inherits:false;initial-value:0deg}
.tile::after,.split-media::before,.kb::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;pointer-events:none;z-index:3;background:conic-gradient(from var(--ang),#B8902F,#FFF8E1 8%,#D4AF37 16%,rgba(212,175,55,.25) 30%,#EBD08A 50%,#FFFFFF 56%,#D4AF37 62%,rgba(212,175,55,.25) 80%,#B8902F);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s}
.tile:hover::after,.tile:focus-within::after{opacity:1;animation:spinAng 2.4s linear infinite}
.split-media:hover::before,.kb:hover::before{opacity:.9;animation:spinAng 3s linear infinite}
.split-media::before,.kb::before{z-index:2}
@keyframes spinAng{to{--ang:360deg}}
.tile:hover,.tile:focus-within{box-shadow:0 18px 40px -18px rgba(5,83,90,.7),0 0 24px -6px rgba(212,175,55,.6)}

@media (prefers-reduced-motion:reduce){
  .sparkle-canvas,.spark,.gold-rule::after{display:none!important}
  .btn-gold::after,.award-card::after{display:none}
  .tile:hover::after,.tile:focus-within::after{opacity:1}
}

/* v4: on narrow screens the hero text spans the full width, so keep the overlay deep teal behind it (AA for white text) and let the lagoon glow sit at the bottom */
@media (max-width:980px){
  .hero::before{background:
   radial-gradient(600px 360px at 100% 100%,rgba(45,212,191,.32),transparent 62%),
   radial-gradient(520px 320px at 0% 100%,rgba(16,201,143,.30),transparent 62%),
   linear-gradient(180deg,rgba(4,54,59,.92) 0%,rgba(5,83,90,.86) 55%,rgba(11,110,110,.72) 100%);
   background-size:140% 140%}
}
/* v4: eyebrows on light sections use a deeper antique-gold foil so the small caps text keeps AA contrast */
section:not(.hero):not(.gem-band):not(.contact):not(.page-hero) .eyebrow{background:linear-gradient(100deg,transparent 40%,rgba(255,240,190,.9) 50%,transparent 60%) no-repeat,linear-gradient(110deg,#7A5B0B 0%,#8A6A12 30%,#6B5310 55%,#8A6A12 80%,#7A5B0B 100%);background-size:250% 100%,200% auto;-webkit-background-clip:text;background-clip:text;color:transparent}

/* ==========================================================================
   PALETTE MOCKUP OVERRIDE: Black Onyx & Gold  (colours only; layout/content/motion unchanged;
   canvas sparkles in js/main.js remain gold)
   ========================================================================== */
:root{
 --ivory:#FBF9F4; --ink:#111111; --muted:#45413A; --on-dark:#E2DED3;
 --emerald-950:#050505; --emerald-900:#0E0E10; --emerald-800:#18181B; --emerald-750:#0B6B4F; --emerald-700:#0B6B4F; --emerald-600:#D4AF37; --emerald-500:#D4AF37; --emerald-300:#EBD08A; --emerald-100:#F3EFE6;
 --teal-950:#050505; --teal-900:#0B0B0B; --teal-800:#18181B; --teal-700:#0B6B4F; --teal-600:#0F8A66; --teal-500:#0F8A66; --teal-400:#3A3A40; --teal-300:#EBD08A;
 --em-500:#D4AF37; --em-vivid:#D4AF37; --em-deep:#4A3B12;
 --mint-50:#F3EFE6; --mint-100:#F3EFE6; --aqua-50:#F7F4EC; --aqua-100:#F7F4EC;
 --sapphire-700:#0B6B4F; --sapphire-500:#3A3A40; --sapphire-100:#F7F4EC; --amethyst-700:#0B6B4F; --amethyst-500:#0F8A66; --amethyst-100:#F7F4EC;
 --gold-600:#B8902F; --gold-500:#D4AF37; --gold-300:#F0D27A; --champagne:#F5E9CC; --gold:#D4AF37;
 --foil:linear-gradient(110deg,#B8902F 0%,#F5E9CC 18%,#D4AF37 34%,#FFF8E1 46%,#D4AF37 56%,#B8902F 72%,#EBD08A 100%);
 --lagoon:linear-gradient(110deg,#B8902F 0%,#FFF4D2 30%,#D4AF37 55%,#0F8A66 85%,#B8902F 100%);
 --deep-lagoon:linear-gradient(125deg,#050505 0%,#0E0E10 35%,#18181B 65%,#0A1F18 100%);
 --deep-lagoon-r:linear-gradient(125deg,#0A1F18 0%,#18181B 35%,#0E0E10 65%,#050505 100%);
 --gem:var(--deep-lagoon);
 --shadow:0 18px 50px -20px rgba(14,14,16,.45);
}
body{background:var(--ivory);color:var(--ink)}
h1,h2,h3{color:#0B0B0B}
h2{background:linear-gradient(100deg,#0B0B0B 0%,#4A3B12 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.gem-band h2,.contact h2,.hero h1,.page-hero h1{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#fff}
a{color:#0B6B4F}.prose strong{color:#0B0B0B}:focus-visible{outline-color:#0B6B4F}
.hero .lede{color:#E2DED3}

.hero::before{background:
 radial-gradient(900px 520px at 90% 6%,rgba(212,175,55,.26),transparent 60%),
 radial-gradient(800px 520px at 100% 100%,rgba(212,175,55,.42),transparent 62%),
 radial-gradient(700px 460px at 62% 110%,rgba(15,138,102,.38),transparent 62%),
 linear-gradient(110deg,rgba(5,5,5,.94) 0%,rgba(14,14,16,.88) 38%,rgba(24,24,27,.70) 66%,rgba(10,31,24,.48) 100%);
 background-size:140% 140%}
@media (max-width:980px){.hero::before{background:
 radial-gradient(600px 360px at 100% 100%,rgba(212,175,55,.32),transparent 62%),
 radial-gradient(520px 320px at 0% 100%,rgba(15,138,102,.30),transparent 62%),
 linear-gradient(180deg,rgba(5,5,5,.93) 0%,rgba(14,14,16,.88) 55%,rgba(24,24,27,.78) 100%);background-size:140% 140%}}
.page-hero{background:radial-gradient(700px 380px at 92% 0%,rgba(212,175,55,.24),transparent 65%),radial-gradient(600px 360px at 0% 100%,rgba(15,138,102,.20),transparent 65%),var(--deep-lagoon);background-size:100% 100%,100% 100%,200% 200%}
.gem-band,.gem-band.band-sapphire{background:radial-gradient(640px 340px at 100% 0%,rgba(212,175,55,.18),transparent 65%),radial-gradient(640px 340px at 0% 100%,rgba(15,138,102,.16),transparent 65%),var(--deep-lagoon);background-size:100% 100%,100% 100%,200% 200%;color:#E2DED3}
.gem-band.band-sapphire{background:radial-gradient(640px 340px at 0% 0%,rgba(15,138,102,.16),transparent 65%),radial-gradient(640px 340px at 100% 100%,rgba(212,175,55,.18),transparent 65%),var(--deep-lagoon-r);background-size:100% 100%,100% 100%,200% 200%}
.contact{background:radial-gradient(700px 380px at 100% 0%,rgba(212,175,55,.18),transparent 65%),radial-gradient(700px 380px at 0% 100%,rgba(15,138,102,.16),transparent 65%),var(--deep-lagoon-r);background-size:100% 100%,100% 100%,200% 200%}
.veil{background:var(--deep-lagoon)}
.ribbon{background:linear-gradient(90deg,#050505,#0E0E10 50%,#18181B);color:#E2DED3;box-shadow:inset 0 3px 0 0 #D4AF37,inset 0 -1px 0 rgba(212,175,55,.45)}
footer{background:linear-gradient(90deg,#050505 0%,#0E0E10 55%,#18181B 100%);color:#D6D1C4;border-image:var(--lagoon) 1}
.fineprint{color:#B5AFA0}
.site-header.scrolled,.site-header.solid{background:linear-gradient(90deg,rgba(5,5,5,.94),rgba(14,14,16,.94) 60%,rgba(24,24,27,.94));box-shadow:0 1px 0 rgba(212,175,55,.55),0 10px 30px -15px rgba(0,0,0,.4)}
@media (max-width:820px){.nav-links{background:linear-gradient(160deg,#050505,#0E0E10 50%,#18181B)}}
@media (max-width:640px){.mobile-cta{background:linear-gradient(90deg,rgba(5,5,5,.96),rgba(24,24,27,.96));border-top:2px solid #D4AF37}}
.lightbox{background:radial-gradient(900px 700px at 30% 40%,rgba(212,175,55,.22),transparent 70%),radial-gradient(900px 700px at 70% 60%,rgba(15,138,102,.2),transparent 70%),rgba(5,5,5,.96)}
.lightbox img,.kb{background:#050505}

.quick{background:radial-gradient(900px 420px at 85% 0%,rgba(212,175,55,.14),transparent 65%),radial-gradient(800px 400px at 0% 100%,rgba(15,138,102,.10),transparent 65%),var(--ivory)}
.tint-emerald{background:radial-gradient(800px 380px at 100% 0%,rgba(15,138,102,.14),transparent 65%),linear-gradient(180deg,#F3EFE6,var(--ivory))}
.tint-sapphire{background:radial-gradient(800px 380px at 0% 0%,rgba(212,175,55,.14),transparent 65%),linear-gradient(180deg,#F7F4EC,var(--ivory))}
.partners{background:linear-gradient(180deg,#fff,#F7F4EC)}

.btn-deep{background:linear-gradient(110deg,#0E0E10,#18181B);background-size:200% auto;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(212,175,55,.65)}
.btn-deep:hover{background:linear-gradient(110deg,#050505,#0E0E10)}
.btn-emerald,.btn-emerald:hover{background:linear-gradient(110deg,#0B6B4F 0%,#08573F 100%);background-size:200% auto;color:#FFFFFF;box-shadow:0 10px 26px -12px rgba(212,175,55,.8)}
.btn-emerald:hover{background-position:right center}
.btn-sapphire{background:#0B6B4F;color:#fff}.btn-sapphire:hover{background:#0B0B0B}
.nav-links .btn,.btn-gold{color:#0B0B0B}
.btn-gold{box-shadow:0 10px 30px -10px rgba(212,175,55,.7)}
.lb-btn:hover,.socials a:hover{background:#D4AF37;color:#0B0B0B}
.chip{background:#F3EFE6;color:#0B0B0B}.chip.sa{background:#F7F4EC;color:#0B6B4F}.chip.am{background:#F3EFE6;color:#4A3B12}.chip.em{background:#F6EDD3;color:#6B5310}
.qcard{--accent:#D4AF37;box-shadow:0 2px 0 rgba(14,14,16,.04),0 10px 30px -18px rgba(14,14,16,.38)}
.qcard.emerald{--accent:#D4AF37}.qcard:nth-child(even){--accent:#0F8A66}.qcard.amethyst{--accent:#3A3A40}.qcard.gold{--accent:#B8902F}
.qcard .ico{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,#fff),color-mix(in srgb,#EBD08A 22%,#fff));color:color-mix(in srgb,var(--accent) 70%,#0B0B0B)}
.service{border-left-color:#D4AF37;box-shadow:0 8px 24px -18px rgba(14,14,16,.45)}
.service:nth-child(2){border-color:#D4AF37}.service:nth-child(3){border-color:#0F8A66}.service:nth-child(4){border-color:#3A3A40}
.trio .tcard{border-top-color:#D4AF37}.trio .tcard:nth-child(3){border-color:#0F8A66}
.note{background:#F7F4EC;border-left-color:#0F8A66}
.icard,.tile{box-shadow:0 12px 30px -20px rgba(14,14,16,.5)}
.filters button{border-color:#0B6B4F;color:#0B0B0B;background:#fff}
.filters button[aria-pressed=true],.filters button:hover{background:linear-gradient(110deg,#0E0E10,#18181B);color:#fff;border-color:transparent;box-shadow:inset 0 0 0 1.5px #F0D27A,0 8px 20px -10px rgba(212,175,55,.7)}
.award-card::before{background:conic-gradient(from 0deg,#D4AF37,#D4AF37,#0F8A66,#3A3A40,#D4AF37);opacity:.6}
.tile figcaption{background:linear-gradient(transparent,rgba(5,5,5,.92))}
.tile:hover,.tile:focus-within{box-shadow:0 18px 40px -18px rgba(14,14,16,.7),0 0 24px -6px rgba(212,175,55,.6)}
.loc{border-color:rgba(212,175,55,.45)}
.split-media::after,.kb::after{box-shadow:inset 0 0 0 1px rgba(212,175,55,.5)}
.toc a,.contact-list a,.socials a,.cta-panel,.lb-btn{border-color:rgba(212,175,55,.4)}
.btn-ghost{border-color:rgba(212,175,55,.75)}
section:not(.hero):not(.gem-band):not(.contact):not(.page-hero) .eyebrow{background:linear-gradient(100deg,transparent 40%,rgba(255,240,220,.9) 50%,transparent 60%) no-repeat,linear-gradient(110deg,#6E520A 0%,#7A5C0E 30%,#5F470B 55%,#7A5C0E 80%,#6E520A 100%);background-size:250% 100%,200% auto;-webkit-background-clip:text;background-clip:text;color:transparent}
/* onyx: leftover tropical shadow tint */
.trio .tcard{box-shadow:0 10px 30px -20px rgba(14,14,16,.5)}

/* ==========================================================================
   GREENERY POPS (v green1): leaf sidebar strips, greenery ribbon, peeking leaves.
   Decorative only (aria-hidden), lazy-loaded, never over text.
   ========================================================================== */
.has-green{overflow:hidden}
.has-green>.container{position:relative;z-index:1}

/* a) Slim parallax leaf strips in the side gutters (desktop only) */
.leaf-strip{display:none}
@media (min-width:1336px){
  .leaf-strip{--sw:clamp(48px,calc((100vw - 1180px)/2 - 34px),168px);display:block;position:absolute;top:11%;bottom:11%;width:var(--sw);z-index:0;overflow:hidden;pointer-events:none;
    box-shadow:0 24px 50px -24px rgba(0,0,0,.55)}
  .leaf-left{left:0;border-radius:0 999px 999px 0}
  .leaf-right{right:0;border-radius:999px 0 0 999px}
  .leaf-drift{position:absolute;left:0;right:0;top:-14%;height:128%;will-change:transform}
  .leaf-drift picture,.leaf-drift img{width:100%;height:100%;object-fit:cover;filter:saturate(1.25) contrast(1.05)}
  /* onyx veil + gold hairline on the inner edge */
  .leaf-strip::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(5,5,5,.55),transparent 22%,transparent 78%,rgba(5,5,5,.6))}
  .leaf-strip::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;padding:1.5px;background:var(--foil);background-size:200% auto;animation:shimmer 7s linear infinite;
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.9}
  /* scroll reveal: unfurl top-to-bottom */
  .leaf-strip.g-reveal{opacity:1;transform:none;clip-path:inset(0 0 100% 0 round 0);transition:clip-path 1.6s cubic-bezier(.2,.8,.2,1)}
  .leaf-strip.g-reveal.in{clip-path:inset(0 0 0 0)}
}

/* b) Greenery ribbon: auto-scrolling leaf photos in thin gold frames */
.greenery-ribbon{position:relative;padding:2.2rem 0;overflow:hidden;
  background:radial-gradient(600px 160px at 50% 0%,rgba(212,175,55,.16),transparent 70%),linear-gradient(90deg,#050505,#0E0E10 50%,#0A1F18);
  border-top:1px solid rgba(212,175,55,.45);border-bottom:1px solid rgba(212,175,55,.45)}
.greenery-ribbon>.sparkle-canvas{z-index:2}
.gr-viewport{position:relative;z-index:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.gr-track{display:flex;gap:1.4rem;width:max-content;list-style:none;padding:.5rem 0;animation:grScroll 55s linear infinite}
.greenery-ribbon:hover .gr-track,.gr-track:focus-within{animation-play-state:paused}
.gr-item{flex:none;width:clamp(170px,19vw,270px);aspect-ratio:3/2;border-radius:14px;padding:2px;position:relative;
  background:var(--foil);background-size:200% auto;animation:shimmer 6s linear infinite;box-shadow:0 14px 30px -16px rgba(0,0,0,.8),0 0 18px -8px rgba(212,175,55,.55);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.gr-item:nth-child(even){transform:translateY(8px)}
.gr-item picture,.gr-item img{width:100%;height:100%;border-radius:12px;object-fit:cover;display:block}
.gr-item img{filter:saturate(1.2);transition:filter .45s,transform .8s}
.gr-item:hover{transform:translateY(-6px) scale(1.04);box-shadow:0 22px 40px -16px rgba(0,0,0,.85),0 0 26px -4px rgba(212,175,55,.8)}
.gr-item:hover img{filter:saturate(1.4) brightness(1.06)}
@keyframes grScroll{to{transform:translateX(calc(-50% - .7rem))}}
@media (max-width:640px){.greenery-ribbon{padding:1.4rem 0}.gr-track{gap:.9rem;animation-duration:42s}@keyframes grScroll{to{transform:translateX(calc(-50% - .45rem))}}}

/* c) Cut-out leaves peeking from section corners (gentle sway) */
.leaf-peek{position:absolute;z-index:0;pointer-events:none;width:clamp(96px,15vw,240px)}
.leaf-peek picture,.leaf-peek img{width:100%;height:auto;display:block}
.leaf-peek img{filter:drop-shadow(0 14px 18px rgba(0,0,0,.28)) saturate(1.2);transform-origin:12% 95%;animation:leafSway 7s ease-in-out infinite}
.leaf-peek.flip picture{transform:scaleX(-1)}
.leaf-peek.peek-tr{top:2.4rem;right:-2.6rem}
.leaf-peek.peek-bl{bottom:-1.6rem;left:-2.4rem}
.leaf-peek.g-reveal{opacity:0;transform:translate(30px,-30px) rotate(12deg);transition:opacity 1.2s ease,transform 1.4s cubic-bezier(.2,.8,.2,1)}
.leaf-peek.peek-bl.g-reveal{transform:translate(-30px,30px) rotate(-12deg)}
.leaf-peek.g-reveal.in{opacity:.95;transform:none}
@keyframes leafSway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3.5deg)}}
/* keep the peeks small and inside the empty section padding on tablets/phones */
@media (max-width:980px){.leaf-peek{width:clamp(80px,16vw,130px)}.leaf-peek.peek-tr{top:.6rem;right:-1.6rem}.leaf-peek.peek-bl{bottom:-1.4rem;left:-1.6rem}}
@media (max-width:640px){.leaf-peek{width:84px}.leaf-peek.peek-tr{top:0}.leaf-peek.g-reveal.in{opacity:.85}}

@media (prefers-reduced-motion:reduce){
  .gr-track{animation:none!important}
  .gr-viewport{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
  .leaf-strip.g-reveal,.leaf-peek.g-reveal{clip-path:none;opacity:1;transform:none}
  .leaf-peek img{animation:none!important;transform:none}
}
