:root{
  --onyx:#121212; --onyx2:#1A1815; --onyx3:#24201A;
  --gold:#A48645; --goldl:#D9BE7A; --goldd:#7E6530;
  --ivory:#F4EFE6; --sand:#E6DCCD; --camel:#9C7B63; --cameld:#7A5E49;
  --line-d:#3A352D; --line-l:#D5CBBB;
  --txt-d:#CFC8BC; --txt-l:#3A352D;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Poppins', system-ui, sans-serif;
  --wrap:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{background:var(--onyx);color:var(--ivory);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.kicker{font-family:var(--sans);font-weight:400;font-size:13px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.light .kicker{color:var(--goldd)}
.h1,.h2,.h3{font-family:var(--serif);font-weight:300;line-height:1.02;letter-spacing:-.005em}
.h1 em,.h2 em,.h3 em{font-style:italic;font-weight:400;color:var(--goldl)}
.light .h2 em,.light .h3 em{color:var(--gold)}
.h1{font-size:clamp(46px,5.4vw,84px)}
.h2{font-size:clamp(40px,5vw,72px)}
.h3{font-size:clamp(28px,2.6vw,36px);line-height:1.1}
.lead{font-size:clamp(17px,1.4vw,19px);line-height:1.75;color:var(--txt-d)}
.light .lead{color:var(--txt-l)}
.rule{width:80px;height:1px;background:var(--gold)}
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.22em;text-transform:uppercase;padding:18px 30px;border-radius:60px;transition:.35s ease;cursor:pointer;border:1px solid transparent}
.btn-gold{background:var(--gold);color:var(--onyx)}
.btn-gold:hover{background:var(--goldl)}
.btn-line{border-color:rgba(217,190,122,.5);color:var(--ivory)}
.btn-line:hover{border-color:var(--goldl);color:var(--goldl)}
.btn-dark{background:var(--onyx);color:var(--ivory)}
.btn-dark:hover{background:#2A251E}
.btn .arr{transition:transform .35s}
.btn:hover .arr{transform:translateX(4px)}
section{position:relative}
.light{background:var(--ivory);color:var(--onyx)}
.sand{background:var(--sand);color:var(--onyx)}
.mono{fill:currentColor}

/* NAV */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;transition:.4s ease}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:88px}
.nav.scrolled{background:rgba(18,18,18,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(58,53,45,.7)}
.nav.scrolled .wrap{height:72px}
.brand{display:flex;align-items:center;gap:14px;color:var(--goldl)}
.brand svg{width:42px;height:42px}
.brand .bn{font-family:'Italiana',serif;font-size:19px;letter-spacing:.2em;color:var(--ivory);line-height:1}
.brand .bd{font-size:9px;letter-spacing:.34em;color:var(--gold);margin-top:6px;text-transform:uppercase}
.menu{display:flex;gap:34px;align-items:center}
.menu a{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#D8D1C4;position:relative;padding:6px 0}
.menu a:not(.btn)::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--goldl);transition:.35s}
.menu a:not(.btn):hover::after{width:100%}
.menu .btn{padding:13px 22px;color:var(--onyx)}
.burger{display:none;background:none;border:0;color:var(--ivory);width:40px;height:40px;cursor:pointer}
.burger span{display:block;height:1px;background:currentColor;margin:7px 6px;transition:.3s}

/* HERO */
.hero{min-height:680px;height:100vh;height:100svh;display:flex;align-items:center;overflow:hidden;background:radial-gradient(ellipse at 68% 45%,#302919 0%,#1A1815 38%,#121212 70%)}
.hero-mono{position:absolute;left:-8vw;top:50%;width:min(92vh,980px);height:min(92vh,980px);transform:translateY(-48%);color:var(--gold);opacity:.4;will-change:transform}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:40px;width:100%;height:100%;padding-top:96px}
.hero-copy{align-self:center;padding-top:20px}
.hero-copy .kicker{margin-bottom:28px}
.hero-copy .lead{max-width:470px;margin:26px 0 36px}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px}
.hero-img{position:relative;align-self:end;justify-self:center;height:100%;max-height:860px;display:flex;align-items:flex-end;justify-content:center}
.halo{position:absolute;left:50%;top:6%;width:130%;aspect-ratio:1;transform:translateX(-50%);background:radial-gradient(circle,rgba(217,190,122,.55) 0%,rgba(164,134,69,.16) 34%,rgba(18,18,18,0) 66%);pointer-events:none}
.hero-img img{position:relative;height:100%;width:auto;max-width:none;object-fit:contain;-webkit-mask-image:linear-gradient(180deg,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,#000 78%,transparent 100%)}
.scroll-cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);font-size:10px;letter-spacing:.34em;color:#8C8578;display:flex;flex-direction:column;align-items:center;gap:10px}
.scroll-cue i{display:block;width:1px;height:38px;background:linear-gradient(var(--gold),transparent);animation:cue 2.2s infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* MARQUEE */
.marquee{border-block:1px solid var(--line-d);overflow:hidden;background:var(--onyx)}
.marquee .track{display:flex;width:max-content;animation:mq 38s linear infinite}
.marquee span{font-family:var(--serif);font-style:italic;font-size:30px;color:var(--goldl);padding:22px 34px;white-space:nowrap;display:flex;align-items:center;gap:68px}
.marquee span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ABOUT */
.about{padding:150px 0}
.about .wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:96px;align-items:center}
.arch{position:relative;border-radius:260px 260px 4px 4px;overflow:hidden;aspect-ratio:3/4.1;background:var(--sand)}
.arch img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.arch-wrap{position:relative}
.seal{position:absolute;right:-54px;bottom:60px;width:150px;height:150px;border-radius:50%;background:var(--ivory);display:grid;place-items:center;animation:spin 40s linear infinite}
.seal svg{width:138px;height:138px}
@keyframes spin{to{transform:rotate(360deg)}}
.about .quote{font-family:var(--serif);font-weight:300;font-size:clamp(30px,3.2vw,46px);line-height:1.12;margin:26px 0 34px}
.about .quote em{font-style:italic;color:var(--gold)}
.about .lead+.lead{margin-top:18px}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-top:1px solid var(--line-l)}
.pillars div{padding:22px 18px 0 0}
.pillars b{display:block;font-family:var(--serif);font-style:italic;font-weight:400;font-size:26px;color:var(--gold)}
.pillars small{font-size:13px;line-height:1.6;color:#5A5347;display:block;margin-top:6px}

/* SERVICES */
.services{padding:140px 0 150px}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:70px}
.sec-head .lead{max-width:420px}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.card{background:var(--onyx);padding:44px 32px 40px;min-height:360px;display:flex;flex-direction:column;transition:.45s ease;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;inset:auto -30% -60% -30%;height:80%;background:radial-gradient(ellipse at 50% 100%,rgba(217,190,122,.22),transparent 60%);opacity:0;transition:.45s}
.card:hover{background:#17150F}
.card:hover::before{opacity:1}
.card .n{font-family:var(--serif);font-style:italic;font-size:54px;color:var(--gold);line-height:1}
.card .ic{width:44px;height:44px;margin:34px 0 26px;color:var(--goldl)}
.card h3{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.08}
.card p{font-size:14.5px;line-height:1.7;color:#A9A294;margin-top:14px}
.card .more{margin-top:auto;padding-top:26px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--goldl);display:flex;gap:10px;align-items:center}

/* PHRASE BAND */
.band{min-height:86vh;display:flex;align-items:flex-end;overflow:hidden}
.band-img{position:absolute;inset:0;background-size:cover;background-position:50% 18%;background-attachment:fixed}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,18,18,.92) 0%,rgba(18,18,18,.55) 45%,rgba(18,18,18,.05) 75%),linear-gradient(0deg,rgba(18,18,18,.85),transparent 45%)}
.band .wrap{position:relative;z-index:2;padding-bottom:110px;width:100%}
.band .h2{max-width:640px;margin-top:22px}
.frame{position:absolute;inset:36px;border:1px solid rgba(217,190,122,.35);z-index:2;pointer-events:none}

/* MENTORING */
.mentor{padding:150px 0;overflow:hidden}
.mentor .wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.mentor-img{position:relative;aspect-ratio:4/5}
.mentor-img .bg-mono{position:absolute;left:-28%;top:-12%;width:150%;height:124%;color:var(--gold);opacity:.3}
.mentor-img .ph{position:absolute;inset:0;border-radius:4px;overflow:hidden}
.mentor-img .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.mentor-img .tag{position:absolute;left:-28px;bottom:48px;background:var(--onyx);color:var(--ivory);padding:22px 26px;border-radius:4px;max-width:260px}
.mentor-img .tag b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:24px;color:var(--goldl);display:block}
.mentor-img .tag span{font-size:12px;line-height:1.6;color:#A9A294}
.vee{margin:44px 0 46px;border-top:1px solid var(--line-l)}
.vee>div{display:grid;grid-template-columns:70px 1fr;gap:10px;padding:24px 0;border-bottom:1px solid var(--line-l)}
.vee b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:40px;color:var(--gold);line-height:1}
.vee h4{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.1}
.vee p{font-size:14.5px;line-height:1.65;color:#5A5347;margin-top:6px}

/* PROCESS */
.process{padding:140px 0}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:34px;height:1px;background:linear-gradient(90deg,var(--gold),rgba(164,134,69,.1))}
.step{position:relative;padding-top:0}
.step .dot{width:68px;height:68px;border-radius:50%;border:1px solid var(--gold);background:var(--onyx);display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:28px;color:var(--goldl);position:relative}
.step h4{font-family:var(--serif);font-weight:400;font-size:30px;margin:30px 0 10px}
.step p{font-size:14.5px;line-height:1.7;color:#A9A294}

/* CONTENT GRID */
.content{padding:140px 0}
.grid-ig{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-ig a{position:relative;overflow:hidden;border-radius:4px;aspect-ratio:4/5;background:#ddd}
.grid-ig img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.grid-ig a::after{content:"Ver publicación";position:absolute;inset:0;display:grid;place-items:center;background:rgba(18,18,18,.55);color:var(--ivory);font-size:11px;letter-spacing:.26em;text-transform:uppercase;opacity:0;transition:.4s}
.grid-ig a:hover img{transform:scale(1.05)}
.grid-ig a:hover::after{opacity:1}

/* CONTACT */
.contact{padding:140px 0;overflow:hidden;background:radial-gradient(ellipse at 20% 60%,#2A241B 0%,#121212 60%)}
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.contact-img{position:relative;height:620px}
.contact-img .cm{position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 9%);mask-image:linear-gradient(90deg,transparent 0%,#000 9%)}
.contact-img img{position:absolute;bottom:-140px;left:50%;transform:translateX(-50%);width:min(100%,620px);-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent 92%);mask-image:linear-gradient(180deg,#000 70%,transparent 92%)}
.contact-img .halo{top:0;width:100%}
form{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--goldl)}
input,select,textarea{font:inherit;font-size:15px;color:var(--ivory);background:transparent;border:0;border-bottom:1px solid #4A443B;padding:12px 0;outline:none;transition:.3s;border-radius:0}
select option{color:#121212}
textarea{resize:vertical;min-height:90px}
input:focus,select:focus,textarea:focus{border-color:var(--goldl)}
input::placeholder,textarea::placeholder{color:#6F695E}
.form-foot{grid-column:1/-1;display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:14px}
.form-foot small{font-size:12px;color:#8C8578;max-width:300px;line-height:1.5}
.sent{display:none;grid-column:1/-1;font-family:var(--serif);font-style:italic;font-size:26px;color:var(--goldl)}

/* FOOTER */
footer{background:#0D0D0D;padding:90px 0 40px;border-top:1px solid var(--line-d)}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:60px}
.foot .big{display:flex;align-items:center;gap:22px;color:var(--gold)}
.foot .big svg{width:84px;height:84px}
.foot .big .bn{white-space:nowrap;font-family:'Italiana',serif;font-size:26px;letter-spacing:.18em;color:var(--ivory)}
.foot .big .bd{font-size:10px;letter-spacing:.34em;color:var(--gold);margin-top:8px}
.foot h5{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:400;margin-bottom:20px}
.foot ul{list-style:none;display:grid;gap:12px}
.foot li a,.foot li{font-size:14px;color:#A9A294}
.foot li a:hover{color:var(--goldl)}
.legal{margin-top:70px;padding-top:26px;border-top:1px solid #24211C;display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;font-size:11.5px;line-height:1.7;color:#6F695E}
.legal p{max-width:720px}

/* REVEAL */
.rv{opacity:0;transform:translateY(34px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.12s}.d2{transition-delay:.24s}.d3{transition-delay:.36s}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}.marquee .track,.seal,.scroll-cue i{animation:none}.band-img{background-attachment:scroll}}

/* RESPONSIVE */
@media (max-height:940px){.scroll-cue{display:none}}
@media (max-width:1080px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr);row-gap:56px}
  .steps::before{display:none}
  .about .wrap,.mentor .wrap{gap:56px}
}
@media (max-width:860px){
  .wrap{padding:0 22px}
  .menu{position:fixed;inset:0;background:rgba(18,18,18,.97);flex-direction:column;justify-content:center;gap:30px;opacity:0;pointer-events:none;transition:.4s}
  .menu a{font-size:15px}
  .nav.open .menu{opacity:1;pointer-events:auto}
  .burger{display:block;position:relative;z-index:2}
  .nav.open .burger span:first-child{transform:translateY(4px) rotate(45deg)}
  .nav.open .burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .brand .bd{display:none}
  .hero{height:auto}
  .hero .wrap{grid-template-columns:1fr;padding-top:110px;gap:0;height:auto}
  .hero-copy{padding-top:0}
  .hero-img{height:auto;width:min(88%,420px);margin-top:10px}
  .hero-img img{width:100%;height:auto}
  .hero-mono{left:-30vw;width:130vw;height:130vw;top:34%}
  .scroll-cue{display:none}
  .about,.services,.mentor,.process,.content,.contact{padding:96px 0}
  .about .wrap,.mentor .wrap,.contact .wrap{grid-template-columns:1fr}
  .seal{right:-8px;width:120px;height:120px;bottom:30px}
  .seal svg{width:110px;height:110px}
  .sec-head{flex-direction:column;align-items:flex-start;margin-bottom:44px}
  .cards{grid-template-columns:1fr}
  .card{min-height:0}
  .band{min-height:72vh}
  .band-img{background-attachment:scroll;background-position:62% 18%}
  .band .wrap{padding-bottom:80px}
  .frame{inset:16px}
  .mentor-img{order:-1}
  .mentor-img .tag{left:12px;bottom:12px}
  .steps{grid-template-columns:1fr}
  .grid-ig{grid-template-columns:repeat(2,1fr);gap:10px}
  .contact-img{height:380px;order:2}
  .contact-img img{bottom:-80px;width:min(90%,420px)}
  form{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr;gap:44px}
  .pillars{grid-template-columns:1fr}
  .foot .big{gap:14px}
  .foot .big svg{width:56px;height:56px}
  .foot .big .bn{font-size:19px;letter-spacing:.12em}
  .foot .big .bd{font-size:8px;letter-spacing:.24em}
  .pillars div{padding:18px 0;border-bottom:1px solid var(--line-l)}
  .marquee span{font-size:24px;padding:16px 22px;gap:44px}
}

/* NAV intermedio (tablets / laptops pequeñas) */
.menu a,.brand .bn{white-space:nowrap}
@media (max-width:1180px){.brand .bd{display:none}.menu{gap:24px}}
@media (max-width:1024px){
  .menu{position:fixed;inset:0;background:rgba(18,18,18,.97);flex-direction:column;justify-content:center;gap:30px;opacity:0;pointer-events:none;transition:.4s}
  .menu a{font-size:15px}
  .nav.open .menu{opacity:1;pointer-events:auto}
  .burger{display:block;position:relative;z-index:2}
  .nav.open .burger span:first-child{transform:translateY(4px) rotate(45deg)}
  .nav.open .burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
}

/* PRESENCE MAP */
.presence{padding:140px 0;background:radial-gradient(ellipse at 70% 40%,#241F17 0%,#151412 50%,#121212 80%);overflow:hidden}
.presence .wrap{display:grid;grid-template-columns:.82fr 1.5fr;gap:60px;align-items:center}
.pres-stat{display:flex;align-items:center;gap:18px;margin:34px 0 30px;padding:20px 0;border-block:1px solid var(--line-d)}
.pres-stat b{font-family:var(--serif);font-weight:300;font-style:italic;font-size:88px;line-height:.9;color:var(--goldl)}
.pres-stat span{font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:#A9A294;line-height:1.7}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.chip{font:inherit;font-size:12.5px;color:#CFC8BC;background:transparent;border:1px solid #3A352D;border-radius:40px;padding:7px 14px;cursor:pointer;transition:.25s}
.chip:hover,.chip:focus-visible,.chip.hl{border-color:var(--goldl);color:var(--onyx);background:var(--goldl);outline:none}
.pres-map{position:relative}
.usmap{width:100%;height:auto;display:block;overflow:visible}
.usmap .st{fill:#221F1A;transition:fill .35s ease,opacity .35s ease,filter .35s ease}
.usmap .st.on{fill:url(#goldg);cursor:pointer;opacity:0}
.presence .pres-map.in .st.on{opacity:1}
.usmap .bd{fill:none;stroke:#121212;stroke-width:1;stroke-linejoin:round;pointer-events:none}
.usmap .lbl text{font-family:var(--sans);font-size:10.5px;font-weight:500;letter-spacing:.06em;fill:#1A1712;text-anchor:middle;dominant-baseline:middle;pointer-events:none;opacity:0;transition:opacity .6s ease .6s}
.presence .pres-map.in .lbl text{opacity:.85}
.usmap.hovering .st.on:not(.hl){opacity:.45}
.usmap .st.on.hl{fill:#F1DFA8;filter:drop-shadow(0 0 14px rgba(217,190,122,.75))}
.usmap .st:not(.on):hover{fill:#2A2620}
.map-tip{position:absolute;left:0;top:0;pointer-events:none;opacity:0;transform:translate(-50%,-120%) scale(.96);transition:opacity .2s,transform .2s;background:rgba(18,18,18,.94);border:1px solid rgba(217,190,122,.55);border-radius:10px;padding:12px 16px;min-width:190px;box-shadow:0 12px 30px rgba(0,0,0,.45);z-index:3}
.map-tip.show{opacity:1;transform:translate(-50%,-120%) scale(1)}
.map-tip b{display:block;font-family:var(--serif);font-weight:400;font-size:24px;color:var(--ivory);line-height:1.1}
.map-tip span{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--goldl);margin-top:6px}
.map-tip span::before{content:"";width:7px;height:7px;border-radius:50%;background:#7BD88F;box-shadow:0 0 0 3px rgba(123,216,143,.2)}
.usmap .st{outline:none}.usmap .st:focus-visible{stroke:var(--goldl);stroke-width:2}
.map-tip span,.map-tip small{white-space:nowrap}
.map-tip small{display:block;font-size:11px;color:#8C8578;margin-top:6px}
.legend{display:flex;gap:22px;justify-content:flex-end;margin-top:18px;font-size:12px;color:#A9A294}
.legend span{display:flex;align-items:center;gap:8px}
.legend i{width:14px;height:14px;border-radius:3px;display:block}
.lg-on{background:linear-gradient(135deg,#E6CF93,#8A6E34)}
.lg-off{background:#221F1A;border:1px solid #3A352D}
@media (min-width:1081px){.pres-map{position:sticky;top:120px;align-self:start}}
@media (max-width:1080px){.presence .wrap{grid-template-columns:1fr;gap:0}.pres-copy{display:contents}.pres-copy>*{order:0}.pres-map{order:1;margin:40px 0 6px}.pres-stat,.chips{order:2}}
@media (max-width:860px){.presence{padding:96px 0}.pres-stat b{font-size:68px}.legend{justify-content:flex-start}.map-tip{min-width:0;padding:10px 14px}.map-tip b{font-size:21px}.map-tip span{font-size:10px;letter-spacing:.14em}.map-tip small{font-size:10.5px}}
