/* ===== TOKENS ===== */
:root {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(2.5rem, 1rem + 4vw, 4.75rem);

  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;

  --radius-sm:.375rem; --radius-md:.5rem; --radius-lg:.75rem; --radius-xl:1rem; --radius-full:9999px;
  --transition:180ms cubic-bezier(.16,1,.3,1);
  --content-wide:1180px;

  --font-display:'Cabinet Grotesk','Arial Narrow',sans-serif;
  --font-body:'Satoshi','Inter',system-ui,sans-serif;
}

/* Light — marca: pizarra + naranja del logo, oliva como micro-acento */
:root, [data-theme="light"] {
  --color-bg:#f5f6f7;
  --color-surface:#ffffff;
  --color-surface-2:#eceff1;
  --color-ink-band:#333a40;      /* pizarra del logo, un paso mas oscuro */
  --color-ink-band-2:#23282d;
  --color-text:#22262a;
  --color-text-muted:#5b6469;
  --color-text-faint:#98a0a6;
  --color-text-inverse:#f5f7f8;
  --color-border:#d6dadd;
  --color-divider:#e3e7e9;
  --color-primary:#c24500;        /* naranja del logo, oscurecido para contraste AA */
  --color-primary-hover:#a03900;
  --color-primary-bright:#ff7a33; /* naranja para usar sobre bandas oscuras */
  --color-primary-soft:#fdeee6;
  --color-on-primary:#ffffff;
  --color-accent:#5a7615;         /* oliva del logo, oscurecido */
  --color-accent-bright:#a6c93f;  /* oliva para bandas oscuras */
  --shadow-sm:0 1px 2px rgba(34,38,42,.06);
  --shadow-md:0 6px 20px rgba(34,38,42,.09);
  --shadow-lg:0 18px 46px rgba(34,38,42,.14);
}
[data-theme="dark"] {
  --color-bg:#13171a;
  --color-surface:#1a1f23;
  --color-surface-2:#212730;
  --color-ink-band:#0f1316;
  --color-ink-band-2:#0a0d0f;
  --color-text:#e2e6e9;
  --color-text-muted:#909aa0;
  --color-text-faint:#5f686e;
  --color-text-inverse:#f0f3f5;
  --color-border:#2e353b;
  --color-divider:#252c31;
  --color-primary:#ff7a33;
  --color-primary-hover:#ff9457;
  --color-primary-bright:#ff8f4d;
  --color-primary-soft:#2b1c12;
  --color-on-primary:#1a1d20;
  --color-accent:#a6c93f;
  --color-accent-bright:#b7d95a;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow-md:0 6px 20px rgba(0,0,0,.4);
  --shadow-lg:0 18px 46px rgba(0,0,0,.5);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme]){
    --color-bg:#13171a; --color-surface:#1a1f23; --color-surface-2:#212730;
    --color-text:#e2e6e9; --color-text-muted:#909aa0; --color-border:#2e353b;
    --color-primary:#ff7a33; --color-primary-hover:#ff9457; --color-primary-bright:#ff8f4d;
    --color-primary-soft:#2b1c12; --color-on-primary:#1a1d20;
    --color-accent:#a6c93f; --color-accent-bright:#b7d95a;
    --color-ink-band:#0f1316; --color-ink-band-2:#0a0d0f;
  }
}

/* ===== BASE ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:5rem;}
body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);}
img,svg{display:block;max-width:100%;height:auto;}
ul[role=list],ol[role=list]{list-style:none;}
h1,h2,h3{text-wrap:balance;line-height:1.1;font-family:var(--font-display);letter-spacing:-.01em;}
p{text-wrap:pretty;}
a{color:inherit;text-decoration:none;transition:color var(--transition);}
button{cursor:pointer;background:none;border:none;color:inherit;font:inherit;transition:all var(--transition);}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm);}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link:focus{position:fixed;top:.5rem;left:.5rem;width:auto;height:auto;clip:auto;background:var(--color-primary);color:#fff;padding:.5rem .75rem;border-radius:var(--radius-sm);z-index:200;}
.container{width:100%;max-width:var(--content-wide);margin-inline:auto;padding-inline:var(--space-6);}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}

.accent{color:var(--color-primary);}
.eyebrow{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-3);}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:var(--text-sm);padding:.7rem 1.25rem;border-radius:var(--radius-md);border:1.5px solid transparent;transition:all var(--transition);white-space:nowrap;}
.btn--sm{padding:.5rem 1rem;}
.btn--lg{padding:.9rem 1.6rem;font-size:var(--text-base);}
.btn--primary{background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-sm);}
.btn--primary:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn--ghost{border-color:var(--color-border);color:var(--color-text);}
.btn--ghost:hover{border-color:var(--color-primary);color:var(--color-primary);}

/* ===== HEADER ===== */
.header{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--color-bg) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--color-divider);}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);min-height:4.25rem;}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--color-text);font-family:var(--font-display);font-weight:800;}
.brand__mark{color:var(--color-primary);flex:none;}
.brand__text{display:flex;flex-direction:column;line-height:1.05;font-size:1.02rem;}
.brand__sub{font-family:var(--font-body);font-weight:500;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);}
.nav{display:flex;gap:var(--space-5);font-size:var(--text-sm);font-weight:500;}
.nav a{color:var(--color-text-muted);white-space:nowrap;}
.nav a:hover{color:var(--color-primary);}
.header__actions{display:flex;align-items:center;gap:var(--space-3);}
.icon-btn{width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:var(--radius-md);color:var(--color-text-muted);border:1px solid var(--color-border);}
.icon-btn:hover{color:var(--color-primary);border-color:var(--color-primary);}
@media (max-width:1180px){.nav{display:none;}}
.btn-label-short{display:none;}
@media (max-width:420px){
  .container{padding-inline:var(--space-4);}
  .header__actions{gap:var(--space-2);}
  .btn--sm{padding:.5rem .75rem;font-size:var(--text-xs);}
  .brand__sub{display:none;}
}
@media (max-width:360px){
  .btn-label-full{display:none;}
  .btn-label-short{display:inline;}
  .icon-btn{width:2rem;height:2rem;}
}

/* ===== HERO ===== */
.hero{position:relative;background:linear-gradient(160deg,var(--color-ink-band),var(--color-ink-band-2));color:var(--color-text-inverse);overflow:hidden;isolation:isolate;}
.hero__grid{position:absolute;inset:0;z-index:-1;opacity:.5;background-image:linear-gradient(color-mix(in oklab,#3fa7ad 22%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in oklab,#3fa7ad 22%,transparent) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse 80% 70% at 70% 30%,#000 30%,transparent 75%);}
.hero__inner{padding-block:clamp(var(--space-20),12vw,var(--space-32));max-width:900px;}
.hero .eyebrow{color:var(--color-accent-bright);}
.hero__title{font-size:var(--text-3xl);font-weight:800;line-height:1.03;margin-bottom:var(--space-6);}
.hero__lead{font-size:var(--text-lg);color:#c4d2d0;max-width:60ch;margin-bottom:var(--space-8);line-height:1.55;}
.hero__lead strong{color:#fff;}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-12);}
.hero__cta .btn--ghost{border-color:rgba(255,255,255,.28);color:#fff;}
.hero__cta .btn--ghost:hover{border-color:var(--color-accent-bright);color:var(--color-accent-bright);}
.hero__badges{display:flex;flex-wrap:wrap;gap:var(--space-6) var(--space-8);border-top:1px solid rgba(255,255,255,.14);padding-top:var(--space-6);font-size:var(--text-sm);color:#a9b8b6;}
.hero__badges strong{color:#fff;font-family:var(--font-display);font-size:var(--text-lg);display:block;}

/* ===== STRIP ===== */
.strip{background:var(--color-primary);color:#fff;}
.strip__inner{padding-block:var(--space-8);text-align:center;font-size:var(--text-lg);max-width:80ch;margin-inline:auto;}
.strip strong{font-family:var(--font-display);}
[data-theme="dark"] .strip{background:var(--color-primary-soft);color:var(--color-text);}

/* ===== SECTIONS ===== */
.section{padding-block:clamp(var(--space-16),8vw,var(--space-24));}
.section--alt{background:var(--color-surface-2);}
.section__head{max-width:60ch;margin-bottom:var(--space-12);}
.section__title{font-size:var(--text-2xl);font-weight:800;margin-bottom:var(--space-4);}
.section__sub{font-size:var(--text-lg);color:var(--color-text-muted);line-height:1.5;}

/* ===== SERVICE CARDS ===== */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6);}
.card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6) var(--space-6);box-shadow:var(--shadow-sm);transition:all var(--transition);overflow:hidden;}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-primary);transform:scaleY(0);transform-origin:top;transition:transform var(--transition);}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--color-primary);}
.card:hover::before{transform:scaleY(1);}
.card__num{font-family:var(--font-display);font-weight:800;font-size:var(--text-sm);color:var(--color-accent);letter-spacing:.05em;margin-bottom:var(--space-4);}
.card h3{font-size:var(--text-lg);margin-bottom:var(--space-3);}
.card p{color:var(--color-text-muted);font-size:var(--text-base);}

/* ===== MATERIALS ===== */
.mats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-5);}
.mat{background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--color-primary);border-radius:var(--radius-md);padding:var(--space-6);}
.mat h3{font-size:var(--text-lg);margin-bottom:var(--space-2);color:var(--color-primary);}
.mat p{color:var(--color-text-muted);font-size:var(--text-sm);}

/* ===== SEGMENTS ===== */
.segments{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6);}
.segment{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-4);}
.segment__tag{display:inline-flex;align-self:flex-start;padding:.3rem .75rem;border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--text-xs);font-weight:700;letter-spacing:.02em;text-transform:uppercase;}
.segment h3{font-size:var(--text-lg);}
.segment p{color:var(--color-text-muted);}
.segment__list{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-2);}
.segment__list li{position:relative;padding-left:var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm);}
.segment__list li::before{content:"";position:absolute;left:0;top:.55em;width:.4rem;height:.4rem;border-radius:50%;background:var(--color-primary);}
.segment .btn{align-self:flex-start;margin-top:auto;}

/* ===== STEPS ===== */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--space-6);counter-reset:s;}
.step{position:relative;padding-top:var(--space-4);}
.step__num{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary);font-family:var(--font-display);font-weight:800;font-size:var(--text-lg);margin-bottom:var(--space-4);}
.step h3{font-size:var(--text-lg);margin-bottom:var(--space-2);}
.step p{color:var(--color-text-muted);font-size:var(--text-base);}

/* ===== CASES ===== */
.cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6);}
.case{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);}
.case h3{font-size:var(--text-lg);margin-bottom:var(--space-3);}
.case p{color:var(--color-text-muted);font-size:var(--text-base);}
.cases__note{margin-top:var(--space-8);font-size:var(--text-sm);color:var(--color-text-faint);font-style:italic;}

.results{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-5);margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--color-border);}
.results__item{display:flex;align-items:flex-start;gap:var(--space-3);}
.results__icon{flex:none;display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary);font-weight:800;font-size:var(--text-sm);margin-top:.1rem;}
.results__item p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.5;margin:0;}

/* ===== ABOUT ===== */
.about__inner{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-12);align-items:start;}
.about__text p{color:var(--color-text-muted);margin-bottom:var(--space-4);max-width:60ch;}
.about__text strong{color:var(--color-text);}
.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6);}
.chips li{font-size:var(--text-sm);font-weight:500;padding:.4rem .85rem;border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary);border:1px solid color-mix(in oklab,var(--color-primary) 20%,transparent);}
.about__card{background:var(--color-ink-band);color:var(--color-text-inverse);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-md);}
.about__card h3{font-size:var(--text-lg);margin-bottom:var(--space-6);color:#fff;}
.facts{display:grid;gap:var(--space-5);}
.facts div{display:grid;gap:.2rem;}
.facts dt{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-bright);font-weight:700;}
.facts dd{font-size:var(--text-base);color:#dfe9e7;}
@media (max-width:820px){.about__inner{grid-template-columns:1fr;gap:var(--space-8);}}

/* ===== CTA ===== */
.cta{background:linear-gradient(160deg,var(--color-ink-band),var(--color-ink-band-2));color:var(--color-text-inverse);}
.cta__inner{padding-block:clamp(var(--space-16),9vw,var(--space-24));}
.cta__inner--split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-16);align-items:start;text-align:left;max-width:1040px;}
.cta__col{min-width:0;}
.cta__col:first-child{padding-top:var(--space-4);}
.cta h2{font-size:var(--text-2xl);font-weight:800;margin-bottom:var(--space-4);}
.cta p{color:#c4d2d0;font-size:var(--text-lg);margin-bottom:var(--space-8);}
.cta__actions{display:flex;flex-wrap:wrap;gap:var(--space-4);}
.cta__actions .btn--ghost{border-color:rgba(255,255,255,.28);color:#fff;}
.cta__actions .btn--ghost:hover{border-color:var(--color-accent-bright);color:var(--color-accent-bright);}

@media (max-width:860px){
  .cta__inner--split{grid-template-columns:1fr;gap:var(--space-10);text-align:center;}
  .cta__col:first-child{padding-top:0;}
  .cta__actions{justify-content:center;}
}

/* ===== CONTACT FORM ===== */
.contact-form{min-width:0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);backdrop-filter:blur(2px);}
.contact-form__title{font-weight:700;font-size:var(--text-base);color:#fff;margin:0;}
.contact-form .field{display:flex;flex-direction:column;gap:.4rem;text-align:left;}
.contact-form .field span{font-size:var(--text-sm);color:#c4d2d0;font-weight:600;}
.contact-form .field span em{font-style:normal;font-weight:400;color:rgba(255,255,255,.5);}
.contact-form .field__hint{font-size:var(--text-xs);color:rgba(255,255,255,.5);margin-top:-.15rem;}
.contact-form input[type=file]{
  width:100%;min-width:0;box-sizing:border-box;max-width:100%;
  font:inherit;font-size:var(--text-sm);color:#c4d2d0;
  background:rgba(255,255,255,.08);border:1.5px dashed rgba(255,255,255,.28);
  border-radius:var(--radius-md);padding:.55rem .7rem;cursor:pointer;
}
.contact-form input[type=file]::file-selector-button{
  font:inherit;font-weight:700;font-size:var(--text-sm);color:#fff;
  background:var(--color-primary);border:none;border-radius:var(--radius-sm);
  padding:.4rem .8rem;margin-right:.7rem;cursor:pointer;transition:background var(--transition);
}
.contact-form input[type=file]::file-selector-button:hover{background:var(--color-primary-hover);}
.contact-form input[type=text],
.contact-form textarea{
  width:100%;min-width:0;box-sizing:border-box;
  font:inherit;color:#fff;background:rgba(255,255,255,.08);
  border:1.5px solid rgba(255,255,255,.22);border-radius:var(--radius-md);
  padding:.65rem .85rem;resize:vertical;transition:border-color var(--transition),background var(--transition);
}
.contact-form input[type=text]::placeholder,
.contact-form textarea::placeholder{color:rgba(255,255,255,.42);}
.contact-form input[type=text]:focus,
.contact-form textarea:focus{outline:none;border-color:var(--color-primary-bright);background:rgba(255,255,255,.12);}
.contact-form button{align-self:flex-start;border:none;cursor:pointer;}
.contact-form__status{font-size:var(--text-sm);margin:0;min-height:1.2em;}
.contact-form__status[data-state="ok"]{color:#8fd6a8;}
.contact-form__status[data-state="error"]{color:#e79a9a;}
.contact-form button[disabled]{opacity:.6;cursor:not-allowed;}

/* ===== FOOTER ===== */
.footer{background:var(--color-surface-2);border-top:1px solid var(--color-divider);}
.footer__inner{padding-block:var(--space-12);display:grid;gap:var(--space-4);text-align:center;justify-items:center;}
.brand--footer{color:var(--color-text);font-size:1.05rem;}
.brand--footer svg{color:var(--color-primary);}
.footer__tag{color:var(--color-text-muted);font-size:var(--text-sm);max-width:60ch;}
.footer__links{display:flex;gap:var(--space-6);font-size:var(--text-sm);font-weight:500;}
.footer__links a{color:var(--color-primary);}
.footer__links a:hover{color:var(--color-primary-hover);}
.footer__copy{color:var(--color-text-faint);font-size:var(--text-xs);}

/* ===== WHATSAPP FLOAT ===== */
.wa-float{position:fixed;right:1.1rem;bottom:1.1rem;z-index:80;width:3.5rem;height:3.5rem;display:grid;place-items:center;border-radius:var(--radius-full);background:#25d366;color:#fff;box-shadow:var(--shadow-lg);transition:transform var(--transition);}
.wa-float:hover{transform:scale(1.08);}

/* ===== REVEAL (only when JS marks the page as ready) ===== */
.js-reveal [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1);}
.js-reveal [data-reveal].in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.js-reveal [data-reveal]{opacity:1;transform:none;}}

/* ============================================================
   PÁGINA PROYECTISTA — bloques específicos
   ============================================================ */

/* Selector de servicio en el header */
.svc-switch{display:flex;gap:.25rem;padding:.2rem;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);}
.svc-switch a{font-size:var(--text-xs);font-weight:700;letter-spacing:.02em;padding:.4rem .8rem;border-radius:var(--radius-full);color:var(--color-text-muted);white-space:nowrap;}
.svc-switch a[aria-current="page"]{background:var(--color-primary);color:#fff;}
.svc-switch a:not([aria-current]):hover{color:var(--color-primary);}
@media (max-width:1080px){.svc-switch{display:none;}}

/* Hero con imagen */
.hero--split .hero__inner{max-width:none;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--space-12);align-items:center;}
.hero__figure{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow-lg);}
.hero__figure picture{display:block;}
.hero__figure img{width:100%;}
.hero__figure figcaption{position:absolute;left:0;right:0;bottom:0;padding:.6rem .9rem;font-size:var(--text-xs);color:#dfe9e7;background:linear-gradient(to top,rgba(10,17,18,.92),rgba(10,17,18,0));}
@media (max-width:900px){.hero--split .hero__inner{grid-template-columns:1fr;gap:var(--space-10);}}

/* Franja de métrica */
.metric-strip{background:var(--color-primary);color:#fff;}
.metric-strip__inner{padding-block:var(--space-10);display:grid;grid-template-columns:auto 1fr;gap:var(--space-8);align-items:center;}
.metric-strip__num{font-family:var(--font-display);font-weight:800;font-size:clamp(3rem,7vw,5rem);line-height:.9;letter-spacing:-.03em;}
.metric-strip__text{font-size:var(--text-lg);max-width:56ch;line-height:1.45;}
.metric-strip__text strong{font-family:var(--font-display);}
[data-theme="dark"] .metric-strip{background:var(--color-primary-soft);color:var(--color-text);}
@media (max-width:700px){.metric-strip__inner{grid-template-columns:1fr;gap:var(--space-4);}}

/* Caso destacado */
.casestudy{display:grid;gap:var(--space-10);}
.casestudy__media{border-radius:var(--radius-lg);overflow:hidden;background:#000;box-shadow:var(--shadow-md);border:1px solid var(--color-border);}
.casestudy__media video{display:block;width:100%;height:auto;}
.casestudy__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-6);}
.cs-block{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-md);padding:var(--space-6);}
.cs-block h3{font-size:var(--text-base);text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary);margin-bottom:var(--space-3);font-family:var(--font-body);font-weight:700;}
.cs-block p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.6;}
.cs-block ul{list-style:none;display:flex;flex-direction:column;gap:var(--space-2);}
.cs-block li{position:relative;padding-left:var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.55;}
.cs-block li::before{content:"";position:absolute;left:0;top:.6em;width:.4rem;height:.4rem;border-radius:50%;background:var(--color-accent);}

/* Figuras / galería técnica */
.figure{margin:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;}
.figure img{width:100%;background:#fff;}
.figure figcaption{padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--color-text-muted);border-top:1px solid var(--color-divider);}
.figure-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-5);}

/* Proyectos */
.projects{display:grid;gap:var(--space-8);}
.project{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--space-8);align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);}
.project--flip .project__media{order:2;}
.project__media{display:grid;gap:var(--space-4);}
.project__media img{width:100%;border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-divider);}
.project__body h3{font-size:var(--text-xl);margin-bottom:var(--space-3);}
.project__body p{color:var(--color-text-muted);margin-bottom:var(--space-4);}
.project__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin-bottom:var(--space-4);}
.project__tags li{font-size:var(--text-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.3rem .7rem;border-radius:var(--radius-full);background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border);}
.project__note{font-size:var(--text-xs);color:var(--color-text-faint);font-style:italic;}
.project__link{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:var(--text-sm);color:var(--color-primary);}
.project__link:hover{color:var(--color-primary-hover);text-decoration:underline;}
.project__caption{font-size:var(--text-xs);color:var(--color-text-faint);}
@media (max-width:820px){
  .project{grid-template-columns:1fr;}
  .project--flip .project__media{order:0;}
}

/* Catálogo — transportadores (fondo oscuro) */
.catalog{background:linear-gradient(160deg,var(--color-ink-band),var(--color-ink-band-2));color:var(--color-text-inverse);}
.catalog .section__title{color:#fff;}
.catalog .section__sub{color:#c4d2d0;}
.catalog .eyebrow{color:var(--color-accent-bright);}
.catalog__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6);}
.catalog__item{border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-lg);overflow:hidden;background:rgba(255,255,255,.04);}
.catalog__item img{width:100%;}
.catalog__item figcaption{padding:var(--space-5);border-top:1px solid rgba(255,255,255,.12);}
.catalog__item h3{font-size:var(--text-lg);color:#fff;margin-bottom:var(--space-2);}
.catalog__item p{font-size:var(--text-sm);color:#adbcba;}
.catalog__specs{margin-top:var(--space-8);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-5);padding-top:var(--space-8);border-top:1px solid rgba(255,255,255,.14);list-style:none;}
.catalog__specs li{font-size:var(--text-sm);color:#adbcba;}
.catalog__specs strong{display:block;font-family:var(--font-display);color:var(--color-accent-bright);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.25rem;}

/* Herramientas */
.tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--space-6);}
.tool-group h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary);font-family:var(--font-body);font-weight:700;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);}
.tool-group ul{list-style:none;display:flex;flex-direction:column;gap:var(--space-2);}
.tool-group li{font-size:var(--text-base);color:var(--color-text-muted);}

/* Franja de cruce entre servicios */
.crosslink{background:var(--color-surface-2);border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);}
.crosslink__inner{padding-block:var(--space-10);display:grid;grid-template-columns:1fr auto;gap:var(--space-8);align-items:center;}
.crosslink h2{font-size:var(--text-xl);margin-bottom:var(--space-2);}
.crosslink p{color:var(--color-text-muted);max-width:62ch;}
@media (max-width:760px){.crosslink__inner{grid-template-columns:1fr;}}

/* --- ajustes QA --- */
.hero--split .hero__inner{align-items:center;}
.hero__figure img{display:block;max-height:480px;width:100%;object-fit:contain;}
.hero--split .hero__badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6);}
@media (max-width:760px){.hero--split .hero__badges{grid-template-columns:1fr 1fr;}}
.figure-pair{align-items:stretch;}
.figure-pair .figure{display:flex;flex-direction:column;}
.figure-pair .figure img{height:300px;object-fit:cover;}
.figure-pair .figure figcaption{margin-top:auto;}
.project__media img{max-height:440px;object-fit:contain;}
.project__media .figure-pair .figure img{height:260px;}
@media (max-width:640px){.figure-pair .figure img{height:220px;}.project__media img{max-height:340px;}}
.project--wide{display:block;}
.project--wide .project__body{margin-bottom:var(--space-6);max-width:62ch;}

@media (max-width:1400px){.nav__opt{display:none;}}
@media (max-width:1180px){.nav{display:none;}}
@media (max-width:1080px){.svc-switch{display:flex;}}
@media (max-width:640px){
  .header__actions .btn--sm{display:none;}
  .svc-switch a{padding:.35rem .6rem;font-size:.68rem;}
}

.lbl-short{display:none;}
@media (max-width:640px){
  .svc-switch .lbl-full{display:none;}
  .svc-switch .lbl-short{display:inline;}
}
.project--wide .figure-pair .figure img{height:340px;object-fit:contain;background:#fff;padding:.5rem;}

.brand__mark{border-radius:50%;flex:none;}
.brand--footer img{border-radius:50%;}
[data-theme="dark"] .brand__mark,
[data-theme="dark"] .brand--footer img{box-shadow:0 0 0 2px rgba(255,255,255,.62);}

/* --- contexto banda oscura: naranja y oliva en versiones brillantes --- */
.hero .accent,.cta .accent,.catalog .accent{color:var(--color-primary-bright);}
.hero__badges strong,.catalog__item h3{color:#fff;}
[data-theme="dark"] .brand__mark,[data-theme="dark"] .brand--footer img{box-shadow:0 0 0 2px rgba(255,255,255,.62);}
.metric-strip{background:var(--color-ink-band);color:var(--color-text-inverse);}
.metric-strip__num{color:var(--color-primary-bright);}
[data-theme="dark"] .metric-strip{background:var(--color-ink-band);color:var(--color-text-inverse);}

/* ===== POR QUÉ CONVIENE (banda oscura) ===== */
.value-band{background:var(--color-ink-band);color:var(--color-text-inverse);padding:var(--space-12) 0;}
.value-band .eyebrow{color:var(--color-accent-bright);}
.value-band .section__title{color:#fff;}
.value-band .section__sub{color:rgba(255,255,255,.74);}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);margin-top:var(--space-9);}
.value{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.10);border-radius:var(--radius-md);padding:var(--space-6);}
.value h3{font-size:var(--text-lg);margin:0 0 var(--space-3);color:#fff;}
.value p{margin:0;color:rgba(255,255,255,.72);font-size:var(--text-sm);line-height:1.65;}
@media (max-width:1000px){.value-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.value-grid{grid-template-columns:1fr;}}

/* ===== FAQ ===== */
.container--narrow{max-width:820px;}
.faq{margin-top:var(--space-9);border-top:1px solid var(--color-border);}
.faq__item{border-bottom:1px solid var(--color-border);}
.faq__item summary{list-style:none;cursor:pointer;padding:var(--space-5) var(--space-8) var(--space-5) 0;position:relative;
  font-family:var(--font-display);font-weight:600;font-size:var(--text-base);color:var(--color-text);}
.faq__item summary::-webkit-details-marker{display:none;}
.faq__item summary:hover{color:var(--color-primary);}
.faq__item summary::after{content:"";position:absolute;right:6px;top:50%;width:11px;height:11px;
  border-right:2px solid var(--color-primary);border-bottom:2px solid var(--color-primary);
  transform:translateY(-70%) rotate(45deg);transition:transform .22s ease;}
.faq__item[open] summary::after{transform:translateY(-30%) rotate(-135deg);}
.faq__item summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:4px;}
.faq__body{padding:0 var(--space-8) var(--space-6) 0;}
.faq__body p{margin:0;color:var(--color-text-muted);line-height:1.7;}

/* renders con fondo claro: mostrar completos, sin recorte */
.figure-pair--contain .figure img{height:360px;object-fit:contain;background:#fff;padding:var(--space-4);}
[data-theme="dark"] .figure-pair--contain .figure img{background:#f2f3f4;}

/* banda de nota / segmento emprendedor */
.note-band{margin-top:var(--space-8);display:grid;grid-template-columns:1fr auto;gap:var(--space-6);align-items:center;
  background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);
  border-radius:var(--radius-lg);padding:var(--space-6) var(--space-8);}
.note-band__body{max-width:70ch;}
.note-band__body h3{margin:.35rem 0 .6rem;font-size:var(--text-xl);line-height:1.25;}
.note-band__body p:last-child{margin:0;color:var(--color-text-muted);}
.note-band__cta .btn{white-space:nowrap;}
@media (max-width:820px){.note-band{grid-template-columns:1fr;align-items:start;padding:var(--space-6);}}

/* caso de pieza en servicio */
.proof__inner{display:grid;grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr);gap:var(--space-10);align-items:center;}
.proof__media{margin:0;}
.proof__media img{width:100%;height:auto;object-fit:contain;background:#fff;padding:var(--space-4);}
[data-theme="dark"] .proof__media img{background:#f2f3f4;}
.proof__text .section__title{margin:.35rem 0 var(--space-4);}
@media (max-width:900px){.proof__inner{grid-template-columns:1fr;gap:var(--space-6);}}

/* figura ancha dentro de figure-pair (foto real de peine, sola en la fila) */
.figure--wide{grid-column:1 / -1;}
.figure--wide img{width:100%;height:auto;max-height:520px;object-fit:cover;object-position:center 30%;}

/* tira de fotos de proceso / armado */
.process-strip{margin-top:var(--space-6);}
.process-strip__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-weight:600;margin:0 0 var(--space-3);}
.process-strip__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);}
.process-strip__grid .figure img{width:100%;height:220px;object-fit:cover;border-radius:var(--radius-md);}
.process-strip__grid figcaption{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-2);}
@media (max-width:820px){.process-strip__grid{grid-template-columns:1fr;}}

.proof-seq{margin-top:var(--space-8);}
.proof-seq__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);}
.proof-seq__grid .figure img{width:100%;height:200px;object-fit:cover;border-radius:var(--radius-md);background:#fff;}
[data-theme="dark"] .proof-seq__grid .figure img{background:#f2f3f4;}
.proof-seq__grid figcaption{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-2);}
.proof-seq__arrow{display:none;}
@media (max-width:900px){.proof-seq__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.proof-seq__grid{grid-template-columns:1fr;}}

.proof-more{margin-top:var(--space-10);padding-top:var(--space-8);border-top:1px solid var(--color-border);}
.proof-more__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);font-weight:600;margin:0 0 var(--space-2);}
.proof-more__text{color:var(--color-text-muted);max-width:60ch;margin:0 0 var(--space-5);}

/* prueba de fabricación dentro de una tarjeta de catálogo */
.catalog__proof{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border);}
.catalog__proof img{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;}
.catalog__proof span{font-size:var(--text-sm);color:var(--color-text-muted);}

/* ---------------------------------------------------------------- Visor de imagen a pantalla completa */
.zoomable{cursor:zoom-in;}
.lightbox{position:fixed;inset:0;z-index:200;display:none;background:rgba(8,10,12,.975);backdrop-filter:blur(5px);
  align-items:center;justify-content:center;overscroll-behavior:contain;touch-action:none;
  -webkit-tap-highlight-color:transparent;}
.lightbox.is-open{display:flex;}
.lightbox__stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  overflow:hidden;}
.lightbox__img{max-width:100%;max-height:100%;transform-origin:50% 50%;will-change:transform;
  user-select:none;-webkit-user-drag:none;background:#fff;}
.lightbox.is-zoomed .lightbox__img{cursor:grab;}
.lightbox.is-panning .lightbox__img{cursor:grabbing;}
.lightbox__close{position:absolute;top:max(.75rem,env(safe-area-inset-top));right:.75rem;z-index:2;
  width:44px;height:44px;display:grid;place-items:center;border-radius:999px;border:0;
  background:rgba(12,15,18,.82);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;
  backdrop-filter:blur(6px);box-shadow:0 2px 10px rgba(0,0,0,.45);}
.lightbox__close:hover{background:rgba(30,36,42,.94);}
.lightbox__close:focus-visible{outline:2px solid var(--color-primary-bright);outline-offset:2px;}
.lightbox__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1rem 1.1rem
  calc(1rem + env(safe-area-inset-bottom));font-size:var(--text-xs);color:#dfe9e7;text-align:center;
  background:linear-gradient(to top,rgba(8,10,12,.96) 0%,rgba(8,10,12,.88) 55%,rgba(8,10,12,0) 100%);
  pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.7);}
.lightbox__hint{display:block;margin-top:.35rem;color:#9aa5ab;}
.lightbox.is-zoomed .lightbox__hint{visibility:hidden;}
