/* Polarizados del Eje — sistema visual alineado con DOCLEAN (Archivo + Inter, lienzo vapor, acento verde) */
:root{
  --c-ink:#0D0D0D; --c-charcoal:#1E1E1E; --c-body:#2A2A2A; --c-muted:#6B6B6B;
  --c-vapor:#F2F2F0; --c-cotton:#FFFFFF; --c-line:#E2E2DF; --c-hairline:rgba(255,255,255,.12);
  --c-accent:#16B364; --c-accent-dark:#0E8F4F; --c-accent-tint:#E3F8EC;
  --font-display:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --fw-regular:400; --fw-medium:500; --fw-bold:800;
  --fs-eyebrow:.8125rem; --fs-small:.9375rem;
  --fs-body:clamp(1.0625rem,1.02rem + .22vw,1.1875rem);
  --fs-lead:clamp(1.1875rem,1.09rem + .45vw,1.375rem);
  --fs-h3:clamp(1.25rem,1.14rem + .5vw,1.5rem);
  --fs-h2:clamp(1.625rem,1.38rem + 1.2vw,2.125rem);
  --fs-h1:clamp(1.9375rem,1.55rem + 1.9vw,2.75rem);
  --fs-display:clamp(2rem,1.5rem + 2.4vw,3.25rem);
  --lh-tight:1.12; --lh-snug:1.3; --lh-normal:1.6;
  --ls-eyebrow:.16em;
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.25rem; --sp-6:1.5rem; --sp-8:2rem; --sp-12:3rem; --sp-16:4rem;
  --section-y:clamp(3rem,2rem + 5vw,6rem);
  --wrap:1120px; --wrap-text:68ch; --gutter:clamp(1rem,.5rem + 3vw,2.5rem);
  --radius-sm:6px; --radius:12px; --radius-lg:20px;
  --shadow:0 6px 24px rgba(10,10,10,.10);
  --overlap:clamp(3.5rem,4rem + 9vw,8rem);
  --ease:cubic-bezier(.2,.6,.2,1); --dur:200ms;
}

*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
[hidden]{ display:none !important; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{ font-family:var(--font-body); font-size:var(--fs-body); line-height:var(--lh-normal); color:var(--c-body); background:var(--c-vapor); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img,svg{ display:block; max-width:100%; }
input,button,textarea,select{ font:inherit; color:inherit; }
p,li{ text-wrap:pretty; overflow-wrap:break-word; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:var(--fw-bold); line-height:var(--lh-tight); letter-spacing:-.006em; color:var(--c-ink); text-wrap:balance; }
h1{ font-size:var(--fs-h1); } h2{ font-size:var(--fs-h2); } h3{ font-size:var(--fs-h3); letter-spacing:-.01em; }
a{ color:#000; text-underline-offset:.15em; }
a:hover{ color:var(--c-accent-dark); }
:focus-visible{ outline:3px solid var(--c-accent); outline-offset:2px; border-radius:2px; }
::selection{ background:var(--c-accent); color:#fff; }
[id]{ scroll-margin-top:84px; }
.svg-sprite{ position:absolute; width:0; height:0; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-left:max(var(--gutter),env(safe-area-inset-left)); padding-right:max(var(--gutter),env(safe-area-inset-right)); }
.eyebrow{ font-family:var(--font-display); font-size:var(--fs-eyebrow); font-weight:var(--fw-bold); letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--c-charcoal); display:inline-block; position:relative; padding-left:26px; }
.eyebrow::before{ content:""; position:absolute; left:0; top:50%; width:16px; height:12px; transform:translateY(-50%);
  background:linear-gradient(var(--c-charcoal) 0 3px,transparent 3px 5px,var(--c-accent) 5px 8px,transparent 8px 9px,var(--c-charcoal) 9px 12px); border-radius:1px; }
.eyebrow.center{ padding-left:0; } .eyebrow.center::before{ display:none; }
.lead{ font-size:var(--fs-lead); line-height:var(--lh-snug); color:var(--c-body); }
.skip-link{ position:absolute; left:var(--sp-4); top:var(--sp-2); transform:translateY(-150%); background:var(--c-ink); color:#fff; padding:var(--sp-2) var(--sp-4); border-radius:var(--radius-sm); z-index:200; transition:transform var(--dur) var(--ease); }
.skip-link:focus-visible{ transform:translateY(0); color:#fff; }

/* ---------- sections ---------- */
.section{ padding-block:var(--section-y); }
.section--tint{ background:var(--c-cotton); }
.section--brand{ background:var(--c-ink); color:#fff; }
.section--brand h1,.section--brand h2,.section--brand h3{ color:#fff; }
.section--brand .eyebrow{ color:#fff; opacity:.8; }
.section--brand .eyebrow::before{ background:linear-gradient(#fff 0 3px,transparent 3px 5px,var(--c-accent) 5px 8px,transparent 8px 9px,#fff 9px 12px); }
.section--brand p{ color:rgba(255,255,255,.86); }
.section:not(.section--tint):not(.section--brand)+.section:not(.section--tint):not(.section--brand),
.section--tint+.section--tint{ padding-top:0; }
.section-head{ max-width:var(--wrap-text); margin-bottom:var(--sp-8); }
.section-head .eyebrow{ display:block; margin-bottom:var(--sp-3); }
.section-head p{ margin-top:var(--sp-3); }
.section-head.center{ text-align:center; margin-inline:auto; }

/* ---------- buttons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-2); padding:var(--sp-3) var(--sp-6); min-height:48px; border-radius:var(--radius-sm); border:2px solid transparent; font-family:var(--font-body); font-weight:var(--fw-bold); font-size:var(--fs-small); letter-spacing:.01em; text-decoration:none; cursor:pointer; transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease); }
.btn--primary{ background:var(--c-accent); color:#fff; }
.btn--primary:hover{ background:var(--c-accent-dark); color:#fff; }
.btn--ghost{ border-color:var(--c-accent); color:var(--c-accent-dark); background:transparent; }
.btn--ghost:hover{ background:var(--c-accent-tint); color:var(--c-accent-dark); }
.btn--on-dark{ border-color:rgba(255,255,255,.55); color:#fff; background:transparent; }
.btn--on-dark:hover{ background:rgba(255,255,255,.14); color:#fff; }
.btn--on-brand{ background:#fff; color:#000; }
.btn--on-brand:hover{ background:var(--c-accent-tint); color:#000; }
.btn svg{ width:18px; height:18px; fill:currentColor; }
.btn-row{ display:flex; flex-wrap:wrap; gap:var(--sp-3); }

/* ---------- header ---------- */
.site-header{ position:sticky; top:0; z-index:100; background:color-mix(in srgb,var(--c-cotton) 92%,transparent); -webkit-backdrop-filter:saturate(1.4) blur(8px); backdrop-filter:saturate(1.4) blur(8px); border-bottom:1px solid var(--c-line); }
.site-header__inner{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4); min-height:64px; }
.site-header__logo{ display:flex; align-items:center; min-height:44px; }
.site-header__logo img{ height:34px; width:auto; filter:invert(1); }
@media(min-width:900px){ .site-header__logo img{ height:38px; } }
.menu-btn{ display:inline-flex; flex-direction:column; align-items:center; justify-content:center; width:44px; height:44px; margin-right:-8px; background:transparent; border:0; cursor:pointer; color:var(--c-ink); }
.menu-btn span{ display:block; width:22px; height:2px; background:currentColor; margin:3px 0; }
.site-nav{ display:none; position:absolute; left:0; right:0; top:64px; background:var(--c-cotton); border-bottom:1px solid var(--c-line); padding:var(--sp-3) var(--gutter) var(--sp-6); }
.site-nav.open{ display:block; }
.site-nav ul{ list-style:none; padding:0; display:flex; flex-direction:column; gap:var(--sp-1); }
.site-nav a{ display:block; padding:var(--sp-3) var(--sp-2); font-weight:var(--fw-medium); font-size:var(--fs-body); color:var(--c-ink); text-decoration:none; border-radius:var(--radius-sm); }
.site-nav a[aria-current="page"]{ color:var(--c-accent-dark); }
.site-nav a:hover{ background:var(--c-vapor); color:var(--c-accent-dark); }
.site-nav .btn{ margin-top:var(--sp-3); width:100%; color:#fff; }
.site-nav .btn:hover{ background:var(--c-accent-dark); color:#fff; }
@media(min-width:900px){
  .menu-btn{ display:none; }
  .site-nav{ display:block; position:static; background:none; border:0; padding:0; }
  .site-nav ul{ flex-direction:row; align-items:center; gap:var(--sp-2); }
  .site-nav a{ padding:var(--sp-2) var(--sp-3); font-size:var(--fs-body); }
  .site-nav li:last-child{ margin-left:var(--sp-3); }
  .site-nav .btn{ margin-top:0; width:auto; }
}

/* ---------- hero con foto ---------- */
.hero--photo{ position:relative; isolation:isolate; color:#fff; text-align:center; overflow:hidden; display:grid; align-items:center; background:#0a0a0a;
  min-height:min(74vh,640px); padding-block:clamp(4rem,2.8rem + 7vw,6.5rem) clamp(4.5rem,3rem + 10vw,8rem); }
.hero--photo:not(.compact){ padding-bottom:calc(var(--overlap) + 2.5rem); }
.hero--photo.compact{ min-height:0; padding-block:clamp(3.5rem,2.5rem + 6vw,6rem); }
.hero__bg{ position:absolute; inset:0; z-index:0; display:grid; grid-template-columns:1fr 1fr; }
.hero__bg.single{ grid-template-columns:1fr; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero__half{ position:relative; overflow:hidden; min-width:0; }
.hero__half img,.hero__half video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
@media(prefers-reduced-motion:reduce){ .hero__half video{ display:none; } }
.hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,5,5,.55) 0%,rgba(5,5,5,.72) 100%); }
.hero__inner{ position:relative; z-index:2; max-width:780px; margin-inline:auto; }
.hero__inner .eyebrow{ color:#fff; opacity:.85; padding-left:0; }
.hero__inner .eyebrow::before{ display:none; }
.hero__title{ font-size:var(--fs-display); color:#fff; margin-top:var(--sp-3); text-shadow:0 1px 18px rgba(0,0,0,.5); }
.hero__lead{ font-size:var(--fs-lead); line-height:1.5; color:rgba(255,255,255,.94); margin:var(--sp-5) auto 0; max-width:40rem; text-shadow:0 1px 14px rgba(0,0,0,.55); }
.hero__actions{ justify-content:center; margin-top:var(--sp-8); }
.hero__checklist{ color:rgba(255,255,255,.94); text-shadow:0 1px 14px rgba(0,0,0,.55); margin:var(--sp-5) auto 0; max-width:28rem; text-align:left; }
.hero__heading{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:var(--fs-eyebrow); text-transform:uppercase; letter-spacing:var(--ls-eyebrow); color:#fff; opacity:.85; }
.hero--photo:not(.compact){ align-items:start; padding-top:clamp(2.5rem,1.5rem + 5vw,5rem); }
.crumb{ font-size:var(--fs-eyebrow); font-weight:500; letter-spacing:.06em; color:rgba(255,255,255,.75); margin-bottom:var(--sp-4); }
.crumb a{ color:#fff; text-decoration:none; display:inline-block; padding:.85rem .3rem; margin:-.85rem -.3rem; } .crumb a:hover{ text-decoration:underline; color:#fff; }

/* tarjetas que asoman sobre el hero (firma DOCLEAN) */
.hero__cards{ position:relative; z-index:3; margin-top:calc(-1 * var(--overlap)); }
.card-grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); }
@media(min-width:700px){ .card-grid--2{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:800px){ .card-grid--3{ grid-template-columns:repeat(3,1fr); } }
.card{ display:flex; flex-direction:column; background:var(--c-cotton); border:1px solid var(--c-line); border-radius:var(--radius); padding:var(--sp-6); box-shadow:var(--shadow); text-decoration:none; color:var(--c-body); transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease); }
.card:hover{ transform:translateY(-3px); box-shadow:0 14px 36px rgba(0,0,0,.13); color:var(--c-body); }
.card__icon{ width:46px; height:46px; flex:none; display:grid; place-items:center; border-radius:50%; background:rgba(13,13,13,.08); color:var(--c-ink); margin-bottom:var(--sp-5); }
.card__icon svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.card p{ margin-top:var(--sp-3); }
.card__link{ margin-top:auto; padding-top:var(--sp-5); font-weight:var(--fw-bold); font-size:var(--fs-small); color:var(--c-accent-dark); }
.card__link::after{ content:" \2192"; }
.hero__cards .card{ background:linear-gradient(135deg,#FFFFFF 0%,var(--c-muted) 100%); border:1px solid rgba(0,0,0,.08); border-radius:var(--radius-lg) var(--radius-lg) clamp(48px,9vw,96px) var(--radius-lg); box-shadow:0 18px 40px rgba(0,0,0,.14); }
.hero__cards .card:hover{ transform:translateY(-3px); box-shadow:0 22px 50px rgba(0,0,0,.18); }
.hero__cards .card p{ color:#2A2A2A; }
.hero__cards .card__link:hover{ color:var(--c-ink); }

/* ---------- split ---------- */
.split{ display:grid; grid-template-columns:1fr; gap:var(--sp-8); align-items:center; }
.split>*{ min-width:0; }
@media(min-width:900px){ .split{ grid-template-columns:1.1fr .9fr; gap:var(--sp-12); } .split--media-first .split__media{ order:-1; } .split--even{ grid-template-columns:1fr 1fr; } }
.split__media{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); background:var(--c-line); }
.split__media img{ width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.stack>*+*{ margin-top:var(--sp-4); }

/* capas: corte transversal de la película */
.layers{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); background:var(--c-ink); }
.layers .band{ display:flex; justify-content:space-between; align-items:center; gap:var(--sp-4); padding:0 var(--sp-5); font-size:var(--fs-eyebrow); font-weight:var(--fw-bold); letter-spacing:.06em; text-transform:uppercase; color:#fff; }
.layers .band small{ font-weight:500; opacity:.7; letter-spacing:.04em; text-transform:none; font-size:var(--fs-small); }
.layers .glass{ height:76px; background:linear-gradient(180deg,#3a3f3d,#2a2e2c); }
.layers .adh{ height:16px; background:#5a625e; }
.layers .cer{ height:104px; background:linear-gradient(90deg,#16B364,#0E8F4F 55%,#0D0D0D); }
.layers .pro{ height:40px; background:#1E1E1E; }

/* ---------- checklist ---------- */
.checklist{ list-style:none; padding:0; display:grid; gap:var(--sp-3); }
.checklist li{ position:relative; padding-left:var(--sp-8); }
.checklist li::before{ content:""; position:absolute; left:0; top:.15em; width:22px; height:22px; border-radius:50%; background-color:var(--c-ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316B364' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center; background-size:14px; }
.checklist--center{ justify-items:center; }
.checklist--center li{ display:inline-block; }

/* ---------- reasons (beneficios) ---------- */
.reasons{ list-style:none; padding:0; display:grid; gap:var(--sp-8) var(--sp-6); }
@media(min-width:640px){ .reasons{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:960px){ .reasons--3{ grid-template-columns:repeat(3,1fr); } }
.reasons h3{ font-size:var(--fs-body); padding-top:var(--sp-3); border-top:2px solid var(--c-accent); }
.reasons p{ margin-top:var(--sp-2); font-size:var(--fs-small); color:var(--c-muted); }

/* ---------- trust ---------- */
.trust__grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-8); text-align:center; }
@media(min-width:800px){ .trust__grid{ grid-template-columns:repeat(3,1fr); } }
.trust__grid b{ display:block; font-family:var(--font-display); font-weight:var(--fw-bold); font-size:var(--fs-display); color:var(--c-ink); line-height:1; margin-bottom:var(--sp-3); letter-spacing:-.02em; }
.trust__grid span{ color:var(--c-muted); font-size:var(--fs-small); }

/* ---------- servicios (2 productos) ---------- */
.service-card{ background:var(--c-cotton); border:1px solid var(--c-line); border-radius:var(--radius); padding:var(--sp-8); box-shadow:var(--shadow); display:flex; flex-direction:column; gap:var(--sp-4); }
.service-card .tag{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:var(--fs-eyebrow); letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--c-accent-dark); }
.service-card p{ color:var(--c-body); }

.chips{ display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.chips span{ padding:var(--sp-2) var(--sp-4); border:1px solid var(--c-line); border-radius:999px; background:var(--c-cotton); font-size:var(--fs-small); font-weight:var(--fw-medium); color:#000; }

/* ---------- CTA ---------- */
.cta__inner{ display:grid; grid-template-columns:1fr; gap:var(--sp-6); align-items:center; }
@media(min-width:800px){ .cta__inner{ grid-template-columns:1.3fr .7fr; gap:var(--sp-12); } }
.cta .eyebrow{ display:block; margin-bottom:var(--sp-3); }
.cta p{ max-width:52ch; margin-top:var(--sp-3); }
.cta .btn-row{ flex-direction:column; align-items:stretch; }

/* ---------- formulario ---------- */
.form{ display:grid; gap:var(--sp-5); }
.form__row{ display:grid; gap:var(--sp-5); }
@media(min-width:640px){ .form__row--2{ grid-template-columns:1fr 1fr; } }
.field{ display:grid; gap:var(--sp-2); min-width:0; }
.field>label{ font-size:var(--fs-small); font-weight:var(--fw-bold); color:var(--c-ink); }
.field input,.field select,.field textarea{ width:100%; padding:var(--sp-3) var(--sp-4); font-size:1rem; background:var(--c-cotton); color:var(--c-ink); border:1.5px solid var(--c-line); border-radius:var(--radius-sm); transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease); }
.field textarea{ min-height:110px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--c-accent); box-shadow:0 0 0 3px rgba(22,179,100,.18); }
.form__note{ font-size:var(--fs-eyebrow); color:var(--c-muted); }
.form-panel{ background:var(--c-cotton); border:1px solid var(--c-line); border-radius:var(--radius-lg); padding:clamp(1.25rem,1rem + 2vw,2.25rem); box-shadow:var(--shadow); }

/* ---------- footer ---------- */
.site-footer{ position:relative; overflow:hidden; background:var(--c-ink); color:#C7C7C7; padding-block:var(--sp-16) var(--sp-8); font-size:var(--fs-small); }
.site-footer::before{ content:""; position:absolute; left:50%; bottom:-260px; transform:translateX(-50%); width:520px; height:520px; border-radius:50%; border:1px solid rgba(255,255,255,.10); box-shadow:0 0 0 40px rgba(255,255,255,.03); pointer-events:none; }
.site-footer .wrap{ position:relative; z-index:1; }
.site-footer{ padding-bottom:calc(var(--sp-8) + env(safe-area-inset-bottom,0px)); }
.site-footer a{ color:#C7C7C7; text-decoration:none; } .site-footer a:hover{ color:#fff; }
.site-footer__grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-8); }
@media(min-width:700px){ .site-footer__grid{ grid-template-columns:1.4fr 1fr 1fr; gap:var(--sp-12); } }
.site-footer__brand img{ height:42px; width:auto; }
.site-footer__brand p{ margin-top:var(--sp-3); max-width:34ch; color:#9A9A9A; }
.site-footer h4{ color:#fff; font-size:var(--fs-small); letter-spacing:var(--ls-eyebrow); text-transform:uppercase; margin-bottom:var(--sp-3); }
.site-footer ul{ list-style:none; padding:0; display:grid; gap:0; }
.site-footer li a{ display:inline-block; padding-block:.7rem; }
.site-footer li:not(:has(a)){ padding-block:.7rem; }
.site-footer .phone{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:var(--fs-h3); color:#fff; }
.site-footer__legal{ margin-top:var(--sp-12); padding-top:var(--sp-6); border-top:1px solid rgba(255,255,255,.12); color:#888; text-align:center; }

/* ---------- carrusel de tarjetas ---------- */
.carousel__track{ display:flex; gap:var(--sp-4); overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-block:var(--sp-1); }
.carousel__track::-webkit-scrollbar{ display:none; }
.carousel__track:focus-visible{ outline-offset:6px; }
.feat-card{ flex:0 0 82%; scroll-snap-align:start; display:flex; flex-direction:column; background:var(--c-cotton); border:1px solid var(--c-line); border-radius:var(--radius); overflow:hidden; min-width:0; transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease); }
.feat-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
@media(min-width:640px){ .feat-card{ flex-basis:calc((100% - var(--sp-4)) / 2); } }
@media(min-width:960px){ .feat-card{ flex-basis:calc((100% - 2 * var(--sp-4)) / 3); } }
.feat-card__img{ aspect-ratio:16 / 10; overflow:hidden; background:var(--c-line); }
.feat-card__img img{ width:100%; height:100%; object-fit:cover; }
.feat-card__body{ display:flex; flex-direction:column; flex:1; padding:var(--sp-6); }
.feat-card__tag{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:var(--fs-eyebrow); letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--c-muted); }
.feat-card h3{ margin-top:var(--sp-3); }
.feat-card p{ margin-top:var(--sp-3); font-size:var(--fs-small); color:var(--c-muted); }
.feat-card__link{ margin-top:auto; padding-top:var(--sp-5); font-weight:var(--fw-bold); font-size:var(--fs-small); color:var(--c-ink); text-decoration:none; }
.feat-card__link::after{ content:" \2192"; }
.feat-card__link:hover{ color:var(--c-accent-dark); }
.carousel__nav{ display:flex; justify-content:center; gap:var(--sp-3); margin-top:var(--sp-6); }
.carousel__btn{ width:48px; height:48px; border-radius:50%; background:var(--c-cotton); border:1px solid var(--c-line); color:var(--c-ink); display:grid; place-items:center; cursor:pointer; transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease); }
.carousel__btn svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.carousel__btn--prev svg{ transform:scaleX(-1); }
.carousel__btn:hover:not(:disabled){ background:var(--c-ink); border-color:var(--c-ink); color:#fff; }
.carousel__btn:disabled{ opacity:.35; cursor:default; }
@media(prefers-reduced-motion:reduce){ .carousel__track{ scroll-behavior:auto; } }

/* ---------- página de contacto ---------- */
.page-head{ position:relative; overflow:hidden; background:var(--c-vapor); border-bottom:1px solid var(--c-line); }
.page-head::after{ content:""; position:absolute; right:-80px; top:50%; transform:translateY(-50%); width:320px; height:320px; border-radius:50%; border:40px solid #9A9A9A; opacity:.14; pointer-events:none; }
@media(min-width:700px){ .page-head::after{ width:440px; height:440px; border-width:56px; right:-120px; } }
.page-head__inner{ position:relative; z-index:1; padding-block:clamp(2.5rem,1.8rem + 4vw,4.5rem); text-align:center; }
.page-head h1{ margin:var(--sp-3) auto 0; max-width:20ch; }
.page-head p{ margin:var(--sp-4) auto 0; max-width:54ch; }
.contact-cards{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); }
@media(min-width:560px){ .contact-cards{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1100px){ .contact-cards{ grid-template-columns:repeat(4,1fr); } }
.contact-card{ display:flex; flex-direction:column; gap:var(--sp-2); padding:var(--sp-6); background:var(--c-cotton); border:1px solid var(--c-line); border-radius:var(--radius); text-decoration:none; color:var(--c-body); transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease); }
.contact-card:hover{ border-color:var(--c-accent); transform:translateY(-2px); color:var(--c-body); }
.contact-card__icon{ width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:var(--c-vapor); color:#000; margin-bottom:var(--sp-2); }
.contact-card__icon svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.contact-card__icon svg.fill{ fill:currentColor; stroke:none; }
.contact-card__label{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:var(--fs-eyebrow); letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--c-muted); }
.contact-card__value{ font-weight:var(--fw-bold); color:var(--c-ink); overflow-wrap:anywhere; }

/* ---------- ubicación ---------- */
.contact-list{ font-style:normal; display:grid; gap:var(--sp-4); }
.contact-list span{ display:block; font-family:var(--font-display); font-weight:var(--fw-bold); font-size:var(--fs-eyebrow); letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--c-muted); }
.contact-list strong{ color:var(--c-ink); font-weight:var(--fw-bold); }
.map-embed{ border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--c-line); box-shadow:var(--shadow); aspect-ratio:4 / 3; background:var(--c-line); }
.map-embed iframe{ width:100%; height:100%; border:0; display:block; }

/* ---------- ventana de video inicial ---------- */
.video-modal{ margin:auto; padding:0; border:0; border-radius:var(--radius-lg); background:var(--c-ink); color:#fff; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,.5);
  width:min(92vw,calc((92vh - 56px) * 9 / 16)); width:min(92vw,calc((92dvh - 56px) * 9 / 16)); max-width:92vw; }
.video-modal::backdrop{ background:rgba(8,8,8,.74); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.video-modal[open]{ animation:modal-in 260ms var(--ease); }
@keyframes modal-in{ from{ opacity:0; transform:translateY(8px) scale(.98); } }
.video-modal__bar{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4); padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-5); height:56px; }
.video-modal__bar strong{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:var(--fs-eyebrow); letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:#fff; }
.video-modal__close{ flex:none; width:40px; height:40px; display:grid; place-items:center; background:transparent; border:0; cursor:pointer; color:#fff; border-radius:var(--radius-sm); }
.video-modal__close:hover{ background:rgba(255,255,255,.12); }
.video-modal__close svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.video-modal__stage{ position:relative; background:#000; aspect-ratio:9 / 16; }
.video-modal__stage video{ width:100%; height:100%; display:block; object-fit:contain; }
.video-modal__unmute{ position:absolute; left:var(--sp-4); bottom:var(--sp-4); z-index:2; display:inline-flex; align-items:center; gap:var(--sp-2); padding:var(--sp-2) var(--sp-4); border-radius:999px; border:0; cursor:pointer; background:var(--c-cotton); color:#000; font-size:var(--fs-small); font-weight:var(--fw-bold); box-shadow:var(--shadow); }
.video-modal__unmute svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.video-modal__unmute[hidden]{ display:none; }
@media(prefers-reduced-motion:reduce){ .video-modal[open]{ animation:none; } }

/* WhatsApp flotante */
.wa-float{ position:fixed; right:max(18px,env(safe-area-inset-right)); bottom:calc(18px + env(safe-area-inset-bottom,0px)); z-index:150; width:56px; height:56px; border-radius:50%; background:#25D366; display:grid; place-items:center; box-shadow:0 8px 24px rgba(0,0,0,.35); transition:transform var(--dur) var(--ease); }
.wa-float svg{ width:28px; height:28px; fill:#0D0D0D; }
.wa-float:hover{ transform:scale(1.06); }

@media(max-width:640px){ .hero--photo{ min-height:0; } .hero--photo:not(.compact){ min-height:calc(var(--overlap) + 16rem); } .hero__lead{ font-size:var(--fs-body); } .hero__heading span{ display:block; } .hero__sep{ display:none !important; } }
@media(prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; } }
