:root{
  --cream:#F4EADC; --cream-lt:#FBF5EC; --cream-dk:#ECDFCD;
  --terracota:#B96A43; --terracota-deep:#A8552E;
  --rosa:#D8A39B; --rosa-deep:#B06E63;
  --salvia:#928E5D; --salvia-deep:#6E7A4E;
  --dourado:#B0894F; --dourado-br:#C9A24B; --dourado-deep:#946A30;
  --verde:#2F3B33; --verde-soft:#3C4B40;
  --ink:#3A352C; --muted:#5E564A;
  --radius:14px;
  --maxw:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Hanken Grotesk',sans-serif;
  color:var(--ink); background:var(--cream);
  font-size:17px; line-height:1.7; font-weight:400;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{font-family:'Fraunces',serif; font-weight:400; line-height:1.12; letter-spacing:-0.01em}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px}
.eyebrow{font-size:13px; letter-spacing:.22em; text-transform:uppercase; font-weight:600; color:var(--terracota-deep)}
.eyebrow.gold{color:var(--dourado)}

/* placeholder photos */
.ph{
  position:relative; border-radius:var(--radius); overflow:hidden;
  display:flex; align-items:center; justify-content:center; text-align:center;
  background:var(--cream-dk);
  border:none;
}
.ph span{font-size:12.5px; color:var(--muted); letter-spacing:.04em; padding:14px; max-width:80%}
.ph img{width:100%; height:100%; object-fit:cover}

/* buttons */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Hanken Grotesk',sans-serif; font-weight:600; font-size:15.5px;
  padding:15px 30px; border-radius:999px; cursor:pointer; border:1.5px solid transparent;
  transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}
.btn-primary{background:var(--terracota-deep); color:var(--cream-lt)}
.btn-primary:hover{background:#8F4724; transform:translateY(-2px)}
.btn-ghost{background:transparent; color:var(--verde); border-color:rgba(47,59,51,.3)}
.btn-ghost:hover{border-color:var(--verde); background:rgba(47,59,51,.04)}
.btn-gold{background:var(--dourado-deep); color:#fff}
.btn-gold:hover{background:#7E5A28; transform:translateY(-2px)}
.btn-wa{background:#1f7a52; color:#fff}
.btn-wa:hover{background:#176140; transform:translateY(-2px)}

/* nav */
nav{position:sticky; top:0; z-index:50; background:rgba(251,245,236,.85); backdrop-filter:blur(10px);}
.nav-in{max-width:var(--maxw); margin:0 auto; padding:14px 28px; display:flex; align-items:center; justify-content:space-between}
.brand{display:flex; align-items:center; gap:12px}
.brand-logo{height:40px; width:auto; display:block}
.brand .nm{line-height:1.1}
.brand .nm b{font-family:'Fraunces',serif; font-weight:500; font-size:18px; display:block}
.brand .nm small{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.nav-links{display:flex; align-items:center; gap:28px; font-size:14.5px; font-weight:500}
.nav-links a{color:var(--verde-soft); transition:color .2s} .nav-links a:hover{color:var(--terracota-deep)}
.nav-cta{padding:10px 22px; font-size:14px}
.nav-links a.nav-cta, .nav-links a.nav-cta:hover{color:var(--cream-lt)}
.nav-cta .lbl-short{display:none}
@media(max-width:780px){.nav-links a:not(.nav-cta){display:none} .nav-cta{padding:9px 18px; font-size:13.5px} .nav-cta .lbl-full{display:none} .nav-cta .lbl-short{display:inline}}

/* reveal */
.rv{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease}
.rv.in{opacity:1; transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}

/* hero */
.hero{position:relative; overflow:hidden; padding:78px 0 90px; background:linear-gradient(180deg,var(--cream-lt) 0%,var(--cream) 100%)}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:54px; align-items:center}
.hero h1{font-size:clamp(48px,7vw,82px); color:var(--verde); margin:18px 0 8px}
.hero .lead{font-size:20px; color:var(--ink); max-width:30ch; margin:14px 0 30px}
.hero .actions{display:flex; gap:14px; flex-wrap:wrap}
.hero-photo{position:relative; aspect-ratio:4/5; border-radius:20px}
.hero-grid>*{position:relative; z-index:1}
@media(max-width:880px){.hero-grid{grid-template-columns:1fr; gap:34px}.hero{padding:54px 0 64px}.enso{width:200px;right:-40px;top:-30px}}

/* generic section */
section{padding:84px 0}
.sec-head{max-width:40ch}
.sec-head h2{font-size:clamp(32px,4.4vw,46px); color:var(--verde); margin:12px 0}
.sec-head p{color:var(--muted); font-size:18px}

/* what-is on deep green */
.deep{background:#556B57; color:var(--cream-lt)}
.deep h2{color:var(--cream-lt)} .deep .eyebrow{color:var(--dourado-br)}
.deep .muted{color:rgba(244,245,236,.7)}
.whatis{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center}
.whatis .ph{background:#3C4B40; border-color:rgba(201,162,75,.3); aspect-ratio:1/1}
.whatis .ph span{color:rgba(244,245,236,.6)}
.whatis .ph::before{color:var(--dourado-br)}
.whatis p{font-size:18px; margin-bottom:18px; color:rgba(244,245,236,.92)}
.whatis .eyebrow{display:inline-block; margin-bottom:18px}
.whatis h2{margin-bottom:28px}
@media(max-width:840px){.whatis{grid-template-columns:1fr; gap:34px}}

/* two-col identify */
.identify{display:grid; grid-template-columns:1fr 1fr; gap:48px}
.idcard{background:var(--cream-lt); border:1px solid rgba(168,85,46,.14); border-radius:var(--radius); padding:34px 32px}
.idcard.aspire{background:#556B57; color:#fff; border-color:transparent}
.idcard h3{font-size:24px; margin-bottom:18px}
.idcard.aspire h3{color:#fff}
.idlist{list-style:none; display:flex; flex-direction:column; gap:14px}
.idlist li{display:flex; gap:12px; align-items:flex-start; font-size:16.5px}
.idlist li::before{content:"—"; color:var(--terracota); font-weight:600; flex:none}
.idcard.aspire .idlist li::before{content:"✦"; color:var(--dourado-br)}
@media(max-width:760px){.identify{grid-template-columns:1fr; gap:22px}}

/* how it works */
.how{background:var(--cream-lt)}
.how-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:18px; margin-top:42px}
.fact{background:var(--cream); border:1px solid rgba(168,85,46,.14); border-radius:var(--radius); padding:26px 24px}
.fact .k{font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--salvia-deep); font-weight:600}
.fact .v{font-family:'Fraunces',serif; font-size:21px; color:var(--verde); margin-top:8px; line-height:1.25}
.fact .note{font-size:13.5px; color:var(--muted); margin-top:6px}

/* about */
.about-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:54px; align-items:center}
.about .ph{aspect-ratio:4/5; background:var(--rosa); border-color:rgba(176,110,99,.4)}
.about .ph span{color:#7a463e}
.about h2{font-size:clamp(30px,4vw,42px); color:var(--verde)}
.about .role{font-family:'Hanken Grotesk',sans-serif; font-weight:600; letter-spacing:.04em; color:var(--terracota-deep); margin:6px 0 20px; font-size:15px}
.about p{font-size:17.5px; margin-bottom:16px}
.crp{display:inline-block; margin-top:14px; font-size:14px; color:var(--muted); border-top:1px solid rgba(168,85,46,.2); padding-top:14px}
@media(max-width:840px){.about-grid{grid-template-columns:1fr; gap:32px}}

/* secondary service */
.other{background:var(--cream-dk)}
.other-card{display:grid; grid-template-columns:1fr 1.4fr; gap:36px; align-items:center; background:var(--cream-lt); border-radius:var(--radius); padding:36px; border:1px solid rgba(168,85,46,.12)}
.other-card .ph{aspect-ratio:3/2; background:var(--cream-dk)}
.other-card h3{font-size:26px; color:var(--verde); margin-bottom:10px}
.other-card p{font-size:16px; color:var(--ink); margin-bottom:18px}
@media(max-width:720px){.other-card{grid-template-columns:1fr; gap:22px}}

/* final CTA */
.final{background:var(--verde); color:var(--cream-lt); text-align:center; padding:96px 0}
.final h2{font-size:clamp(34px,5vw,54px); color:var(--cream-lt); max-width:18ch; margin:14px auto 18px}
.final p{color:rgba(244,245,236,.78); max-width:46ch; margin:0 auto 32px; font-size:18px}
.final .actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap}
.scarcity{display:inline-block; font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--dourado-br); border:1px solid rgba(201,162,75,.4); border-radius:999px; padding:7px 18px; margin-bottom:8px}
.final .ig-note{margin:20px auto 0; font-size:15px; color:rgba(244,245,236,.7)}
.final .ig-note a{color:var(--dourado-br); border-bottom:1px solid rgba(201,162,75,.4); transition:color .2s, border-color .2s}
.final .ig-note a:hover{color:var(--cream-lt); border-color:var(--cream-lt)}

/* mid cta */
.midcta{background:var(--terracota); color:var(--cream-lt); text-align:center; padding:50px 0}
.midcta h3{font-family:'Fraunces',serif; font-weight:400; font-size:clamp(24px,3.4vw,33px); color:var(--cream-lt); margin-bottom:20px; line-height:1.15}
.btn-light{background:var(--cream-lt); color:var(--terracota-deep)} .btn-light:hover{transform:translateY(-2px); background:#fff}

/* location */
.loc{background:var(--cream-dk)}
.loc-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center}
.loc address{font-style:normal; font-size:18px; line-height:1.8; color:var(--ink); margin:10px 0 22px}
.loc .ph{aspect-ratio:16/10; background:transparent}
.loc-note{font-size:16.5px; color:var(--ink); margin:4px 0 18px; max-width:44ch}
.loc-actions{display:flex; gap:12px; flex-wrap:wrap; align-items:center}
.ig-btn svg{width:18px; height:18px}
@media(max-width:760px){.loc-grid{grid-template-columns:1fr; gap:26px}}

/* faq */
.faq-list{margin-top:38px; border-top:1px solid rgba(168,85,46,.16)}
.faq-item{border-bottom:1px solid rgba(168,85,46,.16)}
.faq-item summary{list-style:none; cursor:pointer; padding:22px 4px; display:flex; justify-content:space-between; gap:18px; align-items:center; font-family:'Fraunces',serif; font-size:20px; color:var(--verde)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+"; color:var(--terracota); font-size:24px; font-family:'Hanken Grotesk',sans-serif; flex:none}
.faq-item[open] summary::after{content:"–"}
.faq-item p{padding:0 4px 24px; color:var(--ink); font-size:16.5px; max-width:62ch}

/* evidence / why */
.why{background:var(--cream-lt)}
.why .lead2{font-size:18.5px; max-width:62ch; color:var(--ink); margin-top:8px}
.evidence{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:38px}
.ev{background:var(--cream); border:1px solid rgba(168,85,46,.14); border-left:3px solid var(--salvia); border-radius:0; padding:24px 26px}
.ev p{font-family:'Fraunces',serif; font-size:19px; line-height:1.35; color:var(--verde)}
.ev cite{display:block; margin-top:12px; font-style:normal; font-size:13px; letter-spacing:.04em; color:var(--salvia-deep); font-weight:600}
@media(max-width:760px){.evidence{grid-template-columns:1fr; gap:14px}}

/* footer */
footer{background:#556B57; color:rgba(244,245,236,.95); padding:48px 0 38px; font-size:14px}
.foot-grid{display:flex; justify-content:space-between; gap:30px; flex-wrap:wrap; align-items:flex-start}
.foot-grid b{font-family:'Fraunces',serif; font-weight:500; color:var(--cream-lt); font-size:18px}
.foot-links{display:flex; gap:22px} .foot-links a:hover{color:#fff; text-decoration:underline}
.legal{margin-top:28px; padding-top:20px; border-top:1px solid rgba(244,245,236,.2); font-size:12.5px; color:rgba(244,245,236,.9); line-height:1.6}
.tag{background:rgba(244,245,236,.08); display:inline-block; padding:2px 9px; border-radius:6px; color:var(--dourado-br); font-size:11px; letter-spacing:.06em}

/* ===== brand hub (Fase 2) ===== */
.hub-hero{padding:84px 0 68px}
.hub-hero h1{font-size:clamp(40px,6vw,68px);color:var(--verde);margin:16px 0 8px;max-width:16ch}
.hub-hero .lead{max-width:50ch;font-size:20px;color:var(--ink);margin:14px 0 30px}
.method-sec{background:var(--cream-lt)}
.method-sec .sec-head{max-width:48ch}
.method-sec p{font-size:18px;color:var(--ink);margin-bottom:16px;max-width:66ch}
.method-sec .crp{display:inline-block;margin-top:10px;font-size:14px;color:var(--muted);border-top:1px solid rgba(168,85,46,.2);padding-top:14px}
.doors{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:8px}
.door{display:flex;flex-direction:column;background:var(--cream-lt);border:1px solid rgba(168,85,46,.14);border-radius:var(--radius);padding:38px 34px;transition:transform .25s ease,box-shadow .25s ease}
.door:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(58,53,44,.10)}
.door .door-tag{font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:12.5px;color:var(--terracota-deep)}
.door.indiv .door-tag{color:var(--salvia-deep)}
.door h3{font-size:27px;color:var(--verde);margin:12px 0 6px}
.door p{font-size:16.5px;color:var(--ink);margin:8px 0 26px;flex:1}
.door .btn{align-self:flex-start}
@media(max-width:760px){.doors{grid-template-columns:1fr;gap:18px}.hub-hero{padding:54px 0 50px}}