:root{
  --green:#1d3b2e; --green-deep:#122419; --sage:#a9c4ae; --cream:#f5ecd6;
  --ivory:#faf3e3; --paper:#f7efdd; --gold:#d9a52b; --gold-deep:#8a6517; --mustard:#efbd45;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:'EB Garamond',serif; color:var(--green); background:var(--green); line-height:1.6; overflow-x:hidden; }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
section{ position:relative; }

.en{ display:none; }
body.lang-en .es{ display:none; }
body.lang-en .en{ display:revert; }

.wrap{ width:min(1180px,90%); margin:0 auto; }
.num{ font-family:'Oswald',sans-serif; font-weight:600; font-size:13px; letter-spacing:4px; color:var(--gold-deep); }
.khead{ font-family:'Lilita One',sans-serif; font-size:clamp(32px,5.4vw,58px); line-height:.94; letter-spacing:.5px; }
.pf-it{ font-family:'Playfair Display',serif; font-style:italic; }

/* accessibility: skip link */
.skip-link{ position:absolute; left:12px; top:-60px; z-index:100; background:var(--gold); color:var(--green-deep);
  font-family:'Oswald',sans-serif; font-weight:600; font-size:13px; letter-spacing:1px; padding:10px 16px;
  border-radius:6px; transition:top .2s ease; }
.skip-link:focus{ top:12px; }

/* decorative fixed gold frame */
.pageframe{ position:fixed; inset:11px; border:1.6px solid var(--gold); border-radius:3px; z-index:45; pointer-events:none; }
.pageframe::before{ content:""; position:absolute; inset:3px; border:.7px solid rgba(217,165,43,.55); }
@media(max-width:640px){ .pageframe{ inset:7px; } }

/* ===== NAV ===== */
header.nav{ position:sticky; top:0; z-index:50; background:rgba(18,36,25,.94); backdrop-filter:blur(7px);
  border-bottom:1px solid rgba(217,165,43,.45); }
.nav .wrap{ display:flex; align-items:center; gap:16px; padding:11px 0; }
.nav .brand{ display:flex; align-items:center; gap:10px; }
.nav .brand img{ width:34px; height:34px; object-fit:contain; }
.nav .brand b{ font-family:'Lilita One',sans-serif; font-size:25px; letter-spacing:1.5px; color:var(--cream); }
.nav nav{ margin-left:auto; display:flex; gap:24px; }
.nav nav a{ font-family:'Oswald',sans-serif; font-weight:500; font-size:12.5px; letter-spacing:2px; text-transform:uppercase; color:var(--cream); opacity:.9; }
.nav nav a:hover{ color:var(--gold); }
.nav .tools{ display:flex; align-items:center; gap:11px; }
.langbtn{ font-family:'Oswald',sans-serif; font-weight:600; font-size:12px; letter-spacing:1px; color:var(--cream);
  border:1px solid rgba(217,165,43,.6); border-radius:20px; padding:5px 11px; background:transparent; cursor:pointer; }
.langbtn b{ color:var(--gold); }
.ig{ font-family:'Oswald',sans-serif; font-weight:700; font-size:12px; letter-spacing:1px; color:var(--green);
  background:var(--gold); border-radius:20px; padding:6px 13px; }

/* mobile nav toggle */
.navtoggle{ display:none; width:34px; height:34px; border:1px solid rgba(217,165,43,.6); border-radius:8px;
  background:transparent; cursor:pointer; align-items:center; justify-content:center; }
.navtoggle span, .navtoggle span::before, .navtoggle span::after{ content:""; display:block; width:16px; height:2px; background:var(--gold); position:relative; transition:transform .2s ease, opacity .2s ease; }
.navtoggle span::before{ position:absolute; top:-5px; }
.navtoggle span::after{ position:absolute; top:5px; }
.navtoggle[aria-expanded="true"] span{ background:transparent; }
.navtoggle[aria-expanded="true"] span::before{ transform:rotate(45deg); top:0; }
.navtoggle[aria-expanded="true"] span::after{ transform:rotate(-45deg); top:0; }

@media(max-width:860px){
  .navtoggle{ display:flex; order:3; }
  .nav .wrap{ flex-wrap:wrap; }
  .nav nav{ order:4; margin-left:0; width:100%; flex-direction:column; gap:0; max-height:0; overflow:hidden; transition:max-height .25s ease; }
  .nav nav.open{ max-height:320px; }
  .nav nav a{ padding:13px 0; border-top:1px solid rgba(217,165,43,.18); }
}

/* ===== HERO ===== */
.hero{ min-height:92vh; display:flex; align-items:center; color:var(--cream); overflow:hidden; }
.hero .bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero::after{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(105deg, rgba(18,36,25,.96) 0%, rgba(18,36,25,.82) 42%, rgba(18,36,25,.42) 100%); }
.hero .wrap{ position:relative; z-index:3; padding:74px 0; }
.hero .est{ display:inline-flex; align-items:center; gap:9px; font-family:'Oswald',sans-serif; font-weight:600; font-size:11px; letter-spacing:4px; text-transform:uppercase; color:var(--gold); }
.hero .est::before,.hero .est::after{ content:"✦"; font-size:9px; }
.hero h1{ font-family:'Lilita One',sans-serif; font-size:clamp(78px,17vw,190px); line-height:.82; letter-spacing:2px; margin:10px 0 2px; }
.hero .claim{ font-family:'Oswald',sans-serif; font-weight:500; letter-spacing:7px; text-transform:uppercase; font-size:clamp(12px,2vw,17px); color:var(--cream); }
.hero .tag{ font-family:'Playfair Display',serif; font-style:italic; font-weight:500; font-size:clamp(21px,3.6vw,34px); margin:26px 0 10px; max-width:16ch; color:var(--cream); }
.hero .sub{ max-width:46ch; font-size:clamp(15px,2vw,18px); color:rgba(245,236,214,.88); }
.hero .cta{ display:flex; flex-wrap:wrap; gap:13px; margin-top:28px; }
.btn{ font-family:'Oswald',sans-serif; font-weight:600; font-size:13px; letter-spacing:2px; text-transform:uppercase; padding:13px 26px; border-radius:30px; transition:transform .2s; }
.btn.gold{ background:var(--gold); color:var(--green-deep); }
.btn.ghost{ border:1.5px solid var(--gold); color:var(--cream); }
.btn:hover{ transform:translateY(-2px); }

/* ===== MARQUEE ===== */
.marquee{ background:var(--gold); color:var(--green-deep); overflow:hidden; white-space:nowrap; border-top:2px solid var(--green-deep); border-bottom:2px solid var(--green-deep); }
.marquee .track{ display:inline-block; padding:13px 0; font-family:'Lilita One',sans-serif; font-size:22px; letter-spacing:1px; animation:scroll 26s linear infinite; }
.marquee.alt{ background:var(--green); color:var(--gold); border-color:var(--gold); }
.marquee span{ margin:0 6px; }
.marquee .s{ opacity:.6; }
@keyframes scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ===== ABOUT ===== */
.about{ background:var(--paper); padding:88px 0; }
.about::before{ content:""; position:absolute; right:-5%; top:50%; transform:translateY(-50%);
  width:min(64vh,600px); height:min(64vh,600px);
  background:url('img/logo_green.png') no-repeat center/contain; opacity:.07; pointer-events:none; z-index:0; }
.about .wrap{ position:relative; z-index:2; display:grid; grid-template-columns:1.1fr .9fr; gap:52px; align-items:center; }
.about .quote{ font-family:'Playfair Display',serif; font-style:italic; font-weight:600; font-size:clamp(26px,4vw,44px); line-height:1.18; color:var(--green); margin:14px 0 22px; }
.about .quote b{ color:var(--gold-deep); font-style:italic; }
.about p{ font-size:clamp(16px,2.1vw,18.5px); margin-top:12px; color:#33473c; }
.about .ph{ position:relative; border-radius:6px; overflow:hidden; border:1.6px solid var(--gold); padding:6px; background:#fff; box-shadow:0 22px 44px rgba(18,36,25,.2); }
.about .ph::after{ content:""; position:absolute; inset:12px; border:.8px solid rgba(217,165,43,.6); z-index:2; pointer-events:none; }
.about .ph img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:3px; }
@media(max-width:820px){ .about .wrap{ grid-template-columns:1fr; gap:30px; } .about .ph img{ aspect-ratio:16/11; } }

/* ===== DUALITY ===== */
.duo{ display:grid; grid-template-columns:1fr 1fr; min-height:60vh; }
.duo .side{ position:relative; display:flex; align-items:flex-end; overflow:hidden; min-height:52vh; }
.duo .side img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:transform .7s ease; }
.duo .side:hover img{ transform:scale(1.05); }
.duo .side .ov{ position:relative; z-index:2; padding:42px 40px; width:100%; }
.duo .healthy::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(29,59,46,.9), rgba(29,59,46,.25)); }
.duo .cheat::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(180,120,10,.86), rgba(180,120,10,.18)); }
.duo .side .lbl{ font-family:'Oswald',sans-serif; font-weight:600; font-size:12px; letter-spacing:5px; text-transform:uppercase; color:var(--gold); }
.duo .cheat .lbl{ color:var(--green-deep); }
.duo .side h3{ font-family:'Lilita One',sans-serif; font-size:clamp(40px,6vw,68px); color:var(--cream); line-height:.9; margin-top:6px; }
.duo .cheat h3{ color:var(--green-deep); }
.duo .side p{ font-family:'Playfair Display',serif; font-style:italic; font-size:18px; color:rgba(245,236,214,.92); margin-top:8px; max-width:26ch; }
.duo .cheat p{ color:rgba(18,36,25,.82); }
.duo .amp{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:5;
  width:72px; height:72px; border-radius:50%; background:var(--cream); border:2px solid var(--gold);
  display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-style:italic; font-size:36px; color:var(--green); }
@media(max-width:720px){ .duo{ grid-template-columns:1fr; } .duo .amp{ display:none; } }

/* ===== SPECIALTIES ===== */
.specs{ background:var(--green); color:var(--cream); padding:88px 0; }
.specs .head{ text-align:center; margin-bottom:44px; }
.specs .head .num{ color:var(--gold); }
.specs .head h2{ color:var(--cream); margin-top:6px; }
.specs .head .lead{ font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(17px,2.3vw,22px); color:var(--gold); margin-top:8px; }
.cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.card{ position:relative; background:rgba(245,236,214,.04); border:1px solid rgba(217,165,43,.4); border-radius:8px; overflow:hidden; }
.card .im{ aspect-ratio:4/5; overflow:hidden; }
.card .im img{ width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.card:hover .im img{ transform:scale(1.07); }
.card .tag{ position:absolute; top:11px; left:11px; z-index:3; font-family:'Oswald',sans-serif; font-weight:600; font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:var(--green-deep); background:var(--gold); padding:4px 9px; border-radius:20px; }
.card .tx{ padding:15px 16px 18px; }
.card .tx h3{ font-family:'Playfair Display',serif; font-weight:700; font-size:20px; }
.card .tx p{ font-size:14.5px; color:rgba(245,236,214,.72); margin-top:3px; }
@media(max-width:900px){ .cards{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:470px){ .cards{ grid-template-columns:1fr; } }

/* ===== GALLERY ===== */
.gallery{ background:var(--paper); padding:84px 0; }
.gallery .head{ text-align:center; margin-bottom:36px; }
.gallery .head h2{ color:var(--green); }
.mosaic{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:196px; gap:12px; }
.mosaic figure{ overflow:hidden; border-radius:6px; border:1.4px solid var(--gold); }
.mosaic img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.mosaic figure:hover img{ transform:scale(1.07); }
.mosaic .big{ grid-column:span 2; grid-row:span 2; }
.mosaic .tall{ grid-row:span 2; }
@media(max-width:800px){ .mosaic{ grid-template-columns:repeat(2,1fr); grid-auto-rows:148px; } .mosaic .big{ grid-column:span 2; } }

/* ===== SOCIAL PROOF ===== */
.proof{ background:var(--green-deep); color:var(--cream); padding:46px 0; text-align:center; border-top:1px solid rgba(217,165,43,.3); }
.proof .stats{ display:flex; justify-content:center; flex-wrap:wrap; gap:34px; }
.proof .st b{ display:block; font-family:'Lilita One',sans-serif; font-size:40px; color:var(--gold); line-height:1; }
.proof .st span{ font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:rgba(245,236,214,.75); }

/* ===== LOCATION ===== */
.loc{ background:var(--green); color:var(--cream); padding:84px 0; }
.loc .grid{ display:grid; grid-template-columns:1fr 1.12fr; gap:44px; align-items:stretch; }
.loc .info .num{ color:var(--gold); }
.loc .info h2{ color:var(--cream); margin-top:6px; }
.loc .bigaddr{ font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(22px,3vw,30px); color:var(--gold); margin:16px 0 6px; }
.loc .row{ display:flex; gap:12px; margin-top:16px; align-items:flex-start; }
.loc .row .k{ font-family:'Oswald',sans-serif; font-weight:600; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); min-width:92px; padding-top:3px; }
.loc .row .v{ font-size:17px; }
.loc .map{ position:relative; border-radius:6px; overflow:hidden; min-height:360px; border:1.6px solid var(--gold); padding:6px; background:#fff; }
.loc .map iframe{ width:100%; height:100%; min-height:348px; border:0; border-radius:3px; filter:grayscale(.15) contrast(1.05); }
@media(max-width:800px){ .loc .grid{ grid-template-columns:1fr; } }

/* ===== BRAND MICRO-ELEMENTS ===== */
.btn{ display:inline-flex; align-items:center; gap:9px; }
.btn::after{ content:"→"; font-size:15px; transition:transform .2s ease; }
.btn:hover::after{ transform:translateX(4px); }
.btn.gold{ box-shadow:0 10px 24px rgba(217,165,43,.28); }
.btn.gold:hover{ background:var(--cream); color:var(--green-deep); }
.btn.ghost:hover{ background:var(--gold); color:var(--green-deep); border-color:var(--gold); }

.nav nav a{ position:relative; }
.nav nav a::after{ content:""; position:absolute; left:0; bottom:-5px; width:0; height:2px; background:var(--gold); transition:width .25s ease; }
.nav nav a:hover::after{ width:100%; }

/* rotating brand seal */
.seal{ position:absolute; z-index:5; }
.seal svg{ width:100%; height:100%; animation:spin 20s linear infinite; }
.seal svg text{ fill:var(--gold); font-family:'Oswald',sans-serif; font-weight:600; font-size:8.6px; letter-spacing:2.4px; }
.seal .seal-g{ position:absolute; left:31%; top:31%; width:38%; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.hero .seal{ right:5%; bottom:10%; width:132px; height:132px; }
@media(max-width:760px){ .hero .seal{ width:94px; height:94px; right:5%; bottom:6%; } }

/* scroll cue */
.scrollcue{ position:absolute; left:50%; bottom:22px; transform:translateX(-50%); z-index:4; text-align:center;
  font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); }
.scrollcue .arrow{ display:block; margin:7px auto 0; width:1.5px; height:26px; background:linear-gradient(var(--gold),transparent); animation:pulse 1.8s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:.35; transform:scaleY(.7); } 50%{ opacity:1; transform:scaleY(1); } }
@media(max-width:760px){ .scrollcue{ display:none; } }

/* ===== BRAND · the G ===== */
.ghost-g{ position:absolute; pointer-events:none; }
.hero .ghost-g{ right:-9%; top:54%; transform:translateY(-50%); width:min(84vh,780px); opacity:.13; z-index:2; }
.specs::before{ content:""; position:absolute; left:-6%; bottom:-8%; width:440px; height:440px;
  background:url('img/logo_gold.png') no-repeat center/contain; opacity:.05; z-index:0; pointer-events:none; }
.specs .wrap{ position:relative; z-index:2; }
.brandband{ background:var(--green); text-align:center; padding:66px 0 74px; border-top:1px solid rgba(217,165,43,.25); overflow:hidden; }
.brandband .bigG{ width:clamp(150px,25vw,290px); margin:0 auto 20px; filter:drop-shadow(0 12px 26px rgba(0,0,0,.35)); animation:floatG 6s ease-in-out infinite; }
@keyframes floatG{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }
.brandband .bb-claim{ font-family:'Oswald',sans-serif; font-weight:500; letter-spacing:7px; text-transform:uppercase; font-size:clamp(12px,2vw,16px); color:var(--gold); }
.brandband .bb-tag{ font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(19px,2.7vw,26px); color:var(--cream); margin-top:10px; }
footer.ft .footG{ width:104px; margin:0 auto 16px; }

/* ===== FOOTER ===== */
footer.ft{ background:var(--green-deep); color:var(--cream); padding:60px 0 40px; text-align:center; border-top:1px solid rgba(217,165,43,.4); }
footer.ft .big{ font-family:'Lilita One',sans-serif; font-size:clamp(70px,15vw,150px); letter-spacing:3px; color:var(--cream); line-height:.9; }
footer.ft .fx{ font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(17px,2.4vw,22px); color:var(--gold); margin-top:4px; }
footer.ft .meta{ font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:rgba(245,236,214,.7); margin-top:22px; line-height:2; }
footer.ft a{ color:var(--gold); }
