:root{
  --base:#F7F1E3; --tint:#FFFBF3; --tint2:#EFE6D4;
  --ink:#381D16; --accent:#ED6D13; --yellow:#F4B65C;
  --line:rgba(56,29,22,.12); --soft:rgba(56,29,22,.74);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:72px}
body{margin:0; background:var(--base); color:var(--ink); font-family:'Public Sans',system-ui,sans-serif; line-height:1.5}
img{max-width:100%}
a{color:var(--ink)}
a:hover{color:var(--accent)}
.label{font-family:'Public Sans',system-ui,sans-serif; font-size:13px; font-weight:500}
.display{font-family:'Schibsted Grotesk',sans-serif; font-weight:800; line-height:1.15; margin:0}
.accent{color:var(--accent)} .yellow{color:var(--yellow)} .muted{color:rgba(56,29,22,.6)} .small{font-size:11px}
.center{text-align:center} .mx{margin-left:auto; margin-right:auto} .mb{margin-bottom:20px} .mt-lg{margin-top:56px}

.btn{display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:14px 28px; border-radius:6px; background:var(--accent); color:var(--base); font:600 15px 'Schibsted Grotesk',sans-serif; text-decoration:none; transition:transform .15s}
.btn:hover{transform:translateY(-1px); color:var(--base)}
.btn-sm{padding:10px 18px; font-size:13px}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px}

/* header */
.header{position:fixed; inset:0 0 auto 0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 32px; border-bottom:1px solid transparent; transition:background .25s, border-color .25s}
.header.scrolled{background:rgba(247,241,227,.9); backdrop-filter:blur(6px); border-color:rgba(56,29,22,.08)}
.logo{height:30px; width:auto; display:block}
.logo-dark{display:none}
.header.scrolled .logo-light{display:none}
.header.scrolled .logo-dark{display:block}
.brand{display:flex}
.nav{display:flex; align-items:center; gap:24px}
.nav-link{color:var(--base); text-decoration:none}
.header.scrolled .nav-link{color:var(--ink)}
.nav-link:hover{color:var(--accent)!important}

/* hero */
.hero{position:relative; min-height:860px; display:flex; align-items:flex-end; overflow:hidden; background:#1a120e}
.hero-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:60% 40%}
.hero-shade{position:absolute; inset:0; background:linear-gradient(90deg,rgba(26,18,14,.88) 0%,rgba(26,18,14,.55) 42%,rgba(26,18,14,.15) 70%),linear-gradient(180deg,rgba(26,18,14,.3) 0%,rgba(26,18,14,.05) 30%,rgba(26,18,14,.55) 100%)}
.hero-copy{position:relative; z-index:2; width:100%; max-width:700px; padding:118px 48px 110px; display:flex; flex-direction:column; gap:16px}
.hero h1{font-size:clamp(32px,5.2vw,52px); letter-spacing:-.01em; color:var(--base)}
.hero p{margin:0; max-width:500px; font-size:17px; line-height:1.6; color:rgba(247,241,227,.82)}
.scroll-cue{position:absolute; left:50%; bottom:30px; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:9px; text-decoration:none; color:var(--accent)}
.scroll-cue .label{color:rgba(247,241,227,.75); font-size:11px}
.pulse{width:58px; height:58px; border-radius:50%; border:1.5px solid var(--accent); display:flex; align-items:center; justify-content:center; background:rgba(247,241,227,.06); animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(237,109,19,.35)}50%{box-shadow:0 0 0 10px rgba(237,109,19,0)}}

/* sections */
.section{padding:90px 32px}
.section.alt{background:var(--tint)}
.section.tight{padding:70px 32px}
.wrap{margin:0 auto}
.wrap-680{max-width:680px}.wrap-720{max-width:720px}.wrap-760{max-width:760px}.wrap-880{max-width:880px}.wrap-1000{max-width:1000px}
.h2{font-size:clamp(28px,4.2vw,40px); margin:12px 0 20px}
.h3{font-size:clamp(24px,3.4vw,32px); margin:0 0 24px}
.narrow{max-width:620px; margin-bottom:36px}
.lead{font-size:16px; line-height:1.7; color:var(--soft); max-width:600px; margin:0 0 48px}
.lead.mx{max-width:560px; margin-left:auto; margin-right:auto}
#manifiesto .h2{margin-top:0}
.center.h2{margin-bottom:48px}

.grid{display:grid; gap:16px}
.g-4{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}
.g-3{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); gap:20px}
.g-2{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr)); gap:32px}
.card{background:var(--tint); border:1px solid rgba(56,29,22,.1); border-radius:6px; padding:22px; display:flex; flex-direction:column; gap:14px}
.card-t{font:600 15px/1.35 'Schibsted Grotesk',sans-serif}
.ico{width:30px; height:30px; fill:none; stroke:var(--accent); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round}
.lift{transition:transform .2s, box-shadow .2s}
.lift:hover{transform:translateY(-4px); box-shadow:0 12px 24px rgba(56,29,22,.1)}
.closing{margin:36px 0 0; font-weight:500}

.card-lg{background:var(--base); padding:30px; gap:0}
.num{font:800 30px 'Schibsted Grotesk',sans-serif; color:var(--accent); margin-bottom:10px}
.card-lg h3{font:700 19px 'Schibsted Grotesk',sans-serif; margin:0 0 10px}
.card-lg p{font-size:14px; line-height:1.6; color:var(--soft); margin:0}

.strategy{margin-top:20px; background:var(--ink); color:var(--base); border-radius:6px; padding:36px; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:28px; align-items:center}
.strategy h3{font-size:26px; margin:10px 0}
.strategy p{margin:0; font-size:14px; line-height:1.65; color:rgba(247,241,227,.78)}
.tags{display:flex; flex-wrap:wrap; gap:10px}
.tag-o{border:1px solid rgba(247,241,227,.35); padding:9px 15px; border-radius:20px; font-size:12px}

.pills{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px}
.pill{background:var(--ink); color:var(--base); padding:10px 16px; border-radius:20px}

.project{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr)); border:1px solid rgba(56,29,22,.1); border-radius:6px; overflow:hidden; background:var(--base)}
.project img{width:100%; height:100%; object-fit:cover; object-position:left top; display:block; min-height:220px}
.project-img{display:block; overflow:hidden}
.project-img img{transition:transform .3s}
.project-img:hover img{transform:scale(1.03)}
.project-link{color:var(--accent); text-decoration:none; font-weight:500; margin-top:4px}
.project-link:hover{text-decoration:underline}
.project-body{padding:36px; display:flex; flex-direction:column; justify-content:center; gap:12px}
.project-body h3{font-size:26px}
.project-body p{margin:0; font-size:14px; line-height:1.6; color:var(--soft)}

.duo{position:relative; height:150px; max-width:280px; margin:0 auto 20px}
.circle{position:absolute; top:0; width:140px; height:140px; border-radius:50%; background:var(--tint2); border:1px dashed rgba(56,29,22,.3); display:flex; align-items:center; justify-content:center; overflow:hidden}
.circle .label{color:rgba(56,29,22,.4); font-size:10px}
.circle img{width:100%; height:100%; object-fit:cover}
.left{left:0}.right{right:0}
.seal{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); background:var(--accent); color:var(--base); width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center}
.seal img{width:40px; height:auto; display:block}
.team{text-align:left; margin-top:32px}
.name{font:800 19px 'Schibsted Grotesk',sans-serif}
.team .label{display:block; margin:4px 0 10px}
.team p{margin:0; font-size:14px; line-height:1.6; color:var(--soft)}

.steps{list-style:none; padding:0; margin:0; gap:24px}
.step-n{width:44px; height:44px; border-radius:50%; background:var(--accent); color:var(--base); display:flex; align-items:center; justify-content:center; font:800 17px 'Schibsted Grotesk',sans-serif; margin-bottom:16px}
.steps h3{font:700 18px 'Schibsted Grotesk',sans-serif; margin:0 0 8px}
.steps p{font-size:14px; line-height:1.6; color:var(--soft); margin:0}

.chips{display:flex; flex-wrap:wrap; gap:10px; justify-content:center}
.chips span{font-size:13px; padding:8px 16px; border-radius:20px; background:var(--tint); border:1px solid var(--line); color:rgba(56,29,22,.78)}

.faq details{border-bottom:1px solid var(--line); padding:16px 0}
.faq summary{font:700 16px 'Schibsted Grotesk',sans-serif; cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+'; color:var(--accent); font-size:20px; line-height:1}
.faq details[open] summary::after{content:'–'}
.faq p{margin:10px 0 0; font-size:14px; line-height:1.6; color:var(--soft)}

.cta{padding:100px 32px; background:var(--ink); text-align:center}
.cta h2{font-size:clamp(28px,4.5vw,42px); color:var(--base); max-width:640px; margin:0 auto 14px}
.cta p{color:rgba(247,241,227,.75); margin:0 0 30px}

.footer{padding:40px 32px 28px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px}
.footer-logo{height:34px; width:auto}
.links{display:flex; gap:18px; margin:6px 0}
.links a{text-decoration:none; font-size:12px}
.sign{font-size:12px; font-style:italic; color:rgba(56,29,22,.45)}

@media (max-width:720px){
  .header{padding:12px 16px}
  .nav-link{display:none}
  .section{padding:64px 20px}
  .hero-copy{padding:110px 24px 120px}
  .strategy,.project-body{padding:24px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important; scroll-behavior:auto!important; transition:none!important}}

/* centrado de textos de apoyo dentro de secciones centradas */
.center .lead,.lead.mx{margin-left:auto; margin-right:auto}

.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.btn-ghost{background:transparent;border:1.5px solid rgba(247,241,227,.6);color:var(--base)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.card-lg .scope{margin-top:12px;font-size:13px;color:rgba(56,29,22,.6)}
.svc-cta{display:inline-block;margin-top:16px;color:var(--accent);text-decoration:none;font-weight:500}
.svc-cta:hover{text-decoration:underline}
.svc-cta.on-dark{color:var(--yellow);margin-top:14px}
.self-start{align-self:flex-start;margin-top:8px}
.mono{font:800 54px 'Schibsted Grotesk',sans-serif;color:var(--accent);border-style:solid;border-color:rgba(56,29,22,.12)}

.packs{align-items:stretch}
.pack{position:relative;background:var(--base);border:1px solid rgba(56,29,22,.1);border-radius:6px;padding:30px;display:flex;flex-direction:column}
.pack.feat{border:2px solid var(--accent);background:var(--tint)}
.pack .badge{position:absolute;top:-12px;left:24px;background:var(--accent);color:var(--base);padding:4px 12px;border-radius:20px;font-size:11px}
.pack h3{font:700 21px 'Schibsted Grotesk',sans-serif;margin:0 0 6px}
.pack .sub{margin:0 0 14px;font-size:14px;color:var(--soft);line-height:1.5}
.pack .ideal{margin:0 0 14px;font-size:13px;color:var(--soft);line-height:1.5}
.checks{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:9px}
.checks li{font-size:14px;padding-left:24px;position:relative;line-height:1.4}
.checks li::before{content:'✓';position:absolute;left:0;color:var(--accent);font-weight:700}
.pack .no{font-size:13px;color:rgba(56,29,22,.55);margin:0 0 6px}
.pack .plazo{margin:auto 0 18px;padding-top:10px;font-size:12px;color:rgba(56,29,22,.6)}
.btn-block{width:100%}
.pack-note{text-align:center;margin:36px auto 8px;max-width:560px;font-size:14px;color:var(--soft)}

.strategy.only{margin-top:0}
.strategy .tags-t{margin-bottom:14px}
.modes{display:grid;gap:12px;margin:18px 0 22px}
.modes div{border-left:2px solid var(--yellow);padding-left:14px;display:flex;flex-direction:column;gap:2px}
.modes strong{font:700 15px 'Schibsted Grotesk',sans-serif}
.modes span{font-size:13px;color:rgba(247,241,227,.75)}
