/* Landscaping · tokens (ver identidad/DESIGN.md) */
:root{
  --forest:#17301F; --moss:#24432F; --leaf:#3E6B4A;
  --accent:#C8E85A; --accent-contrast:#15201A; --accent-soft:#EEF6CF;
  --bg:#F3EFE4; --surface:#FBF9F3; --text:#15201A; --text-muted:#56615A; --border:#D9D3C3;
  --clay:#A9572A;
  --font-display:"Fraunces", Georgia, serif;
  --font-body:"Figtree", system-ui, sans-serif;
  --step--1:clamp(.83rem,.8rem + .2vw,.94rem);
  --step-0:clamp(1rem,.95rem + .3vw,1.13rem);
  --step-1:clamp(1.15rem,1.05rem + .5vw,1.4rem);
  --step-2:clamp(1.4rem,1.2rem + 1vw,1.9rem);
  --step-3:clamp(2rem,1.5rem + 2.5vw,3.5rem);
  --step-4:clamp(2.6rem,1.6rem + 4.4vw,5.6rem);
  --h1:clamp(2.1rem,1.35rem + 2.7vw,3.9rem);
  --tracking-tight:-0.03em;
  --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-6:1.5rem; --space-8:2rem;
  --space-12:3rem; --space-16:4rem; --space-24:6rem; --space-32:8rem;
  --radius-sm:.375rem; --radius-md:.9rem; --radius-lg:1.6rem; --radius-full:999px;
  --shadow-md:0 6px 18px rgb(21 32 26 / .08),0 2px 4px rgb(21 32 26 / .06);
  --shadow-lg:0 30px 60px -20px rgb(21 32 26 / .35);
  --ease-out:cubic-bezier(.16,1,.3,1); --dur-fast:150ms; --dur-base:300ms; --dur-slow:700ms;
  --nav-h:72px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px)}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
.wrap{width:min(1240px,100% - 2.5rem);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
/* grano */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:52px;padding:.85rem 1.5rem;border-radius:var(--radius-full);font-weight:700;font-size:1rem;text-decoration:none;border:2px solid transparent;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-base),box-shadow var(--dur-base);white-space:nowrap}
.btn svg{width:20px;height:20px;flex:none}
.btn--accent{background:var(--accent);color:var(--accent-contrast);box-shadow:0 10px 30px -10px rgb(200 232 90 / .7)}
.btn--accent:hover{transform:translateY(-2px);background:#d6f171}
.btn--ghost{border-color:rgb(255 255 255 / .55);color:#fff;background:rgb(255 255 255 / .06);backdrop-filter:blur(6px)}
.btn--ghost:hover{background:rgb(255 255 255 / .16);transform:translateY(-2px)}
.btn--dark{background:var(--forest);color:#fff}
.btn--dark:hover{background:var(--moss);transform:translateY(-2px)}
.btn--line{border-color:var(--forest);color:var(--forest)}
.btn--line:hover{background:var(--forest);color:#fff}

/* Cabecera */
.nav{position:sticky;top:0;z-index:50;height:var(--nav-h);background:rgb(23 48 31 / .92);backdrop-filter:blur(12px);color:#fff;border-bottom:1px solid rgb(255 255 255 / .08)}
.nav__in{height:100%;display:flex;align-items:center;gap:1.5rem}
.nav__marca{display:flex;align-items:center;gap:.6rem;text-decoration:none;font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:-.02em}
.nav__marca img{width:38px;height:38px}
.nav__links{display:flex;gap:1.6rem;margin-left:auto;font-size:.95rem}
.nav__links a{text-decoration:none;opacity:.85;padding:.3rem 0;border-bottom:2px solid transparent;transition:opacity var(--dur-fast),border-color var(--dur-base)}
.nav__links a:hover{opacity:1;border-color:var(--accent)}
.lang{font:700 .8rem/1 var(--font-body);letter-spacing:.08em;color:#fff;background:transparent;border:1.5px solid rgb(255 255 255 / .4);border-radius:var(--radius-full);padding:.55rem .8rem;cursor:pointer;min-height:40px}
.lang:hover{border-color:var(--accent);color:var(--accent)}
.nav__cta{min-height:44px;padding:.6rem 1.15rem;font-size:.92rem}
.nav__burger{display:none;width:44px;height:44px;border:0;background:transparent;padding:10px;cursor:pointer}
.nav__burger span{display:block;height:2px;background:#fff;margin:6px 0;transition:transform var(--dur-base)}
@media (max-width:900px){
  .nav__links{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--forest);padding:.5rem 1.25rem 1.25rem;margin:0;max-height:calc(100dvh - var(--nav-h));overflow:auto;transform:translateY(-8px);opacity:0;visibility:hidden;transition:all var(--dur-base) var(--ease-out)}
  .nav__links.is-open{opacity:1;visibility:visible;transform:none}
  .nav__links a{padding:.9rem 0;border-bottom:1px solid rgb(255 255 255 / .08);font-size:1.1rem}
  .nav__cta{display:none}
  .nav__burger{display:block}
  .lang{margin-left:auto}
}

/* Migas */
.migas{background:var(--surface);border-bottom:1px solid var(--border);font-size:.88rem}
.migas ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:.8rem 0;margin:0 auto}
.migas li+li::before{content:"›";margin-right:.4rem;color:var(--text-muted)}
.migas a{color:var(--leaf)}

/* Hero */
.hero{position:relative;min-height:calc(100svh - var(--nav-h));display:grid;align-items:end;color:#fff;isolation:isolate;overflow:hidden}
.hero__img{position:absolute;inset:0;z-index:-2}
.hero__img img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;transform:scale(1.04);animation:heroIn 1.6s var(--ease-out) both}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgb(14 28 19 / .15) 0%,rgb(14 28 19 / .35) 40%,rgb(14 28 19 / .88) 100%),linear-gradient(90deg,rgb(14 28 19 / .55),transparent 70%)}
.hero__in{padding-block:var(--space-16) var(--space-12);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:var(--space-8);align-items:end}
.kicker{display:inline-flex;align-items:center;gap:.6rem;font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.kicker::before{content:"";width:28px;height:2px;background:currentColor}
.hero h1{font-family:var(--font-display);font-weight:500;font-size:var(--h1);line-height:1.02;letter-spacing:var(--tracking-tight);margin:.9rem 0 1rem;max-width:17ch;font-variation-settings:"opsz" 120}
.hero h1 em{font-style:italic;color:var(--accent);font-weight:400}
.hero__sub{font-size:var(--step-1);max-width:46ch;margin:0 0 1.6rem;color:rgb(255 255 255 / .88)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:.8rem}
.hero__card{justify-self:end;background:rgb(251 249 243 / .1);border:1px solid rgb(255 255 255 / .2);backdrop-filter:blur(14px);border-radius:var(--radius-lg);padding:1.4rem 1.5rem;max-width:330px}
.hero__card p{margin:0}
.hero__card strong{display:block;font-family:var(--font-display);font-size:1.5rem;font-weight:500;line-height:1.15;margin-bottom:.4rem}
.hero__card ul{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.5rem;font-size:.95rem}
.hero__card li{display:flex;gap:.55rem;align-items:flex-start}
.hero__card li::before{content:"";flex:none;width:8px;height:8px;margin-top:.55rem;border-radius:50%;background:var(--accent)}
@keyframes heroIn{from{transform:scale(1.12);opacity:.6}to{transform:scale(1.04);opacity:1}}
@media (max-width:900px){
  .hero{min-height:auto;align-items:start}
  .hero__img img{object-position:62% 50%}
  .hero::before{background:linear-gradient(180deg,rgb(14 28 19 / .55) 0%,rgb(14 28 19 / .55) 45%,rgb(14 28 19 / .92) 100%)}
  .hero__in{grid-template-columns:1fr;padding-block:2.2rem 2.5rem;gap:1.8rem}
  .hero h1{margin:.7rem 0 .8rem;font-size:clamp(2rem,1.2rem + 4vw,2.6rem)}
  .hero__sub{font-size:1.05rem;margin-bottom:1.2rem}
  .hero__ctas .btn{flex:1 1 100%}
  .hero__card{justify-self:stretch;max-width:none;padding:1.1rem 1.2rem}
}

/* Franja de compromisos */
.pledges{background:var(--forest);color:#fff}
.pledges ul{list-style:none;margin:0 auto;padding:1.6rem 0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.pledges li{display:flex;gap:.8rem;align-items:center;font-weight:600;font-size:.98rem}
.pledges svg{width:28px;height:28px;flex:none;color:var(--accent)}
@media (max-width:900px){.pledges ul{grid-template-columns:1fr 1fr;gap:1rem}.pledges li{font-size:.9rem}}

/* Secciones */
.sec{padding-block:var(--space-24)}
.sec__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:var(--space-8);align-items:end;margin-bottom:var(--space-12)}
.sec h2{font-family:var(--font-display);font-weight:500;font-size:var(--step-3);line-height:1.05;letter-spacing:var(--tracking-tight);margin:.6rem 0 0}
.sec h2 em{font-style:italic;color:var(--leaf);font-weight:400}
.sec__lead{color:var(--text-muted);font-size:var(--step-1);margin:0;max-width:44ch}
.kicker--dark{color:var(--clay)}
@media (max-width:900px){.sec{padding-block:var(--space-16)}.sec__head{grid-template-columns:1fr;gap:1rem;margin-bottom:var(--space-8)}}

/* Servicios: lista editorial numerada */
.svc{border-top:1px solid var(--border)}
.svc__item{display:grid;grid-template-columns:90px minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-8);padding-block:var(--space-8);border-bottom:1px solid var(--border);align-items:center}
.svc__num{font-family:var(--font-display);font-style:italic;font-size:2.4rem;color:var(--clay);line-height:1}
.svc__item h3{font-family:var(--font-display);font-weight:500;font-size:var(--step-2);letter-spacing:-.02em;margin:0 0 .5rem;line-height:1.1}
.svc__item p{margin:0 0 1rem;color:var(--text-muted);max-width:52ch}
.svc__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.1rem;padding:0;list-style:none}
.svc__tags li{font-size:.8rem;font-weight:600;padding:.3rem .7rem;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--forest)}
.svc__link{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--forest);text-decoration:none;border-bottom:2px solid var(--accent);padding-bottom:2px;min-height:44px}
.svc__link:hover{gap:.8rem}
.svc__link,.svc__link svg{transition:gap var(--dur-base) var(--ease-out)}
.svc__pic{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow-md)}
.svc__pic img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out)}
.svc__item:hover .svc__pic img{transform:scale(1.05)}
.svc__item:nth-child(even) .svc__pic{aspect-ratio:5/4}
.svc__mini{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:var(--space-8)}
.mini{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.4rem}
.mini h3{font-family:var(--font-display);font-weight:500;font-size:1.35rem;margin:0 0 .4rem}
.mini p{margin:0;color:var(--text-muted);font-size:.97rem}
@media (max-width:900px){
  .svc__item{grid-template-columns:1fr;gap:1rem;padding-block:var(--space-8)}
  .svc__num{font-size:1.8rem}
  .svc__pic{order:-1;aspect-ratio:16/10 !important}
  .svc__mini{grid-template-columns:1fr}
}

/* Trabajos: bento */
.work{background:var(--forest);color:#fff}
.work .sec h2,.work h2{color:#fff}
.work h2 em{color:var(--accent)}
.work .sec__lead{color:rgb(255 255 255 / .72)}
.bento{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:180px;gap:14px}
.bento figure{margin:0;position:relative;border-radius:var(--radius-md);overflow:hidden}
.bento img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out)}
.bento figure:hover img{transform:scale(1.05)}
.bento figcaption{position:absolute;left:12px;bottom:12px;font-size:.8rem;font-weight:700;letter-spacing:.04em;background:rgb(14 28 19 / .7);backdrop-filter:blur(6px);padding:.35rem .7rem;border-radius:var(--radius-full)}
.b1{grid-column:span 4;grid-row:span 2}.b2{grid-column:span 2;grid-row:span 2}
.b3{grid-column:span 2;grid-row:span 2}.b4{grid-column:span 2;grid-row:span 2}.b5{grid-column:span 2;grid-row:span 2}
@media (max-width:900px){
  .bento{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-inline:-1.25rem;padding-inline:1.25rem;scrollbar-width:none}
  .bento::-webkit-scrollbar{display:none}
  .bento figure{flex:0 0 78%;height:360px;scroll-snap-align:center}
  .bento .b1{flex-basis:88%}
}
.swipe{display:none;font-size:.85rem;color:rgb(255 255 255 / .6);margin-top:.8rem}
@media (max-width:900px){.swipe{display:block}}

/* Proceso */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;list-style:none;padding:0;margin:0;border-top:2px solid var(--forest)}
.steps li{padding:1.6rem 1.4rem 0 0;position:relative}
.steps li::before{counter-increment:s;content:"0" counter(s);font-family:var(--font-display);font-size:3.2rem;font-style:italic;color:var(--leaf);line-height:1;display:block;margin-bottom:.8rem}
.steps h3{font-family:var(--font-display);font-weight:500;font-size:1.4rem;margin:0 0 .4rem}
.steps p{margin:0;color:var(--text-muted);font-size:.98rem}
@media (max-width:900px){.steps{grid-template-columns:1fr;border-top:0}.steps li{padding:1.2rem 0 1.2rem 4.2rem;border-top:1px solid var(--border)}.steps li::before{position:absolute;left:0;top:1.1rem;font-size:2.4rem}}

/* Estaciones */
.seasons{background:var(--surface);border-block:1px solid var(--border)}
.season-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-12);align-items:center}
.season-pic{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow-lg);transform:rotate(-1.5deg)}
.season-pic img{width:100%;height:100%;object-fit:cover}
.season-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:var(--space-8)}
.season{border-left:3px solid var(--accent);padding:.2rem 0 .2rem 1rem}
.season h3{font-family:var(--font-display);font-weight:500;font-size:1.3rem;margin:0 0 .25rem}
.season p{margin:0;color:var(--text-muted);font-size:.95rem}
@media (max-width:900px){.season-grid{grid-template-columns:1fr;gap:var(--space-8)}.season-pic{aspect-ratio:16/11;transform:none}.season-list{grid-template-columns:1fr}}

/* Por qué / nocturno */
.why{position:relative;color:#fff;isolation:isolate;overflow:hidden}
.why__bg{position:absolute;inset:0;z-index:-2}
.why__bg img{width:100%;height:100%;object-fit:cover}
.why::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(10 20 14 / .92) 0%,rgb(10 20 14 / .7) 55%,rgb(10 20 14 / .25) 100%)}
.why h2{color:#fff;max-width:16ch}
.why h2 em{color:var(--accent)}
.why__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 2.4rem;max-width:760px;margin-top:var(--space-8)}
.why__grid h3{font-family:var(--font-display);font-weight:500;font-size:1.35rem;margin:0 0 .35rem;color:var(--accent)}
.why__grid p{margin:0;color:rgb(255 255 255 / .82);font-size:.98rem}
@media (max-width:900px){.why::before{background:rgb(10 20 14 / .82)}.why__grid{grid-template-columns:1fr}}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-12)}
.faq details{border-bottom:1px solid var(--border)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;padding:1.3rem 0;font-weight:700;font-size:1.08rem;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-display);font-size:1.8rem;line-height:1;color:var(--leaf);transition:transform var(--dur-base) var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 1.3rem;color:var(--text-muted);max-width:62ch}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr;gap:var(--space-6)}}

/* Contacto / CTA final */
.contact{background:var(--forest);color:#fff;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.contact__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:var(--space-12);align-items:start}
.contact h2{font-family:var(--font-display);font-weight:500;font-size:var(--step-4);line-height:.98;letter-spacing:var(--tracking-tight);margin:.6rem 0 1.2rem}
.contact h2 em{color:var(--accent);font-style:italic;font-weight:400}
.contact p.lead{color:rgb(255 255 255 / .8);font-size:var(--step-1);max-width:42ch;margin:0 0 1.6rem}
.contact__ctas{display:flex;flex-wrap:wrap;gap:.8rem}
.card-info{background:rgb(255 255 255 / .05);border:1px solid rgb(255 255 255 / .14);border-radius:var(--radius-lg);padding:1.6rem}
.card-info dl{margin:0;display:grid;gap:1.1rem}
.card-info dt{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.card-info dd{margin:.2rem 0 0;font-size:1.05rem}
.card-info a{text-decoration:none;border-bottom:1px solid rgb(255 255 255 / .3)}
@media (max-width:900px){.contact__grid{grid-template-columns:1fr;gap:var(--space-8)}.contact__ctas .btn{flex:1 1 100%}}

/* Pie */
.pie{background:#0F2016;color:rgb(255 255 255 / .75);font-size:.93rem;padding-block:var(--space-12) var(--space-8)}
.pie__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--space-8)}
.pie__t{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .8rem}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.pie a{text-decoration:none}
.pie a:hover{color:#fff;text-decoration:underline}
.pie__marca{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.5rem;color:#fff;margin:0 0 .6rem}
.pie__marca img{width:36px;height:36px}
.pie__legal{margin-top:var(--space-8);padding-top:1.2rem;border-top:1px solid rgb(255 255 255 / .1);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;font-size:.85rem}
.pie__legal nav a{margin-right:1rem;display:inline-block;padding:.35rem 0}
@media (max-width:900px){.pie__cols{grid-template-columns:1fr 1fr}.pie__cols>div:first-child{grid-column:1/-1}}

/* Barra móvil */
.mbar{display:none}
@media (max-width:760px){
  body.has-mbar{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .mbar{display:flex;gap:.6rem;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 84px calc(10px + env(safe-area-inset-bottom)) 12px;background:rgb(15 32 22 / .96);backdrop-filter:blur(10px);transition:translate .25s ease}
  .mbar .btn{flex:1;min-height:50px;padding:.7rem .8rem;font-size:.95rem}
  .mbar.is-off{translate:0 calc(100% + 24px);visibility:hidden}
}

/* Pendiente (plantilla) */
.dania-pendiente{background:var(--accent-soft);color:var(--forest);padding:0 .25em;border-radius:4px;font-size:.92em}

/* Legales */
.doc{padding-block:var(--space-12) var(--space-24)}
.doc article{max-width:68ch}
.doc h1{font-family:var(--font-display);font-weight:500;font-size:var(--step-3);letter-spacing:var(--tracking-tight);line-height:1.05;margin:0 0 .6rem}
.doc h2{font-family:var(--font-display);font-weight:500;font-size:var(--step-2);margin:2.2rem 0 .6rem}
.doc .upd{color:var(--text-muted);font-size:.9rem}
.doc table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.93rem;margin:1rem 0}
.doc th,.doc td{border:1px solid var(--border);padding:.6rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.doc th{background:var(--surface)}
@media (max-width:640px){.doc table,.doc tbody,.doc tr,.doc td{display:block}.doc thead{display:none}.doc tr{border:1px solid var(--border);margin-bottom:.8rem;border-radius:8px}.doc td{border:0;border-bottom:1px solid var(--border)}.doc td::before{content:attr(data-th);display:block;font-weight:700;font-size:.8rem}}
[data-lang-block][hidden]{display:none}

/* Reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;scroll-behavior:auto !important}.rv{opacity:1;transform:none}}
