/* ============ FONTS (self-hosted, latin subset covers Spanish) ============ */
  @font-face{
    font-family:'Outfit';font-style:normal;font-weight:400 600;font-display:swap;
    src:url(../fonts/outfit-latin.woff2) format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
  }
  @font-face{
    font-family:'Big Shoulders Display';font-style:normal;font-weight:700 900;font-display:swap;
    src:url(../fonts/big-shoulders-display-latin.woff2) format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
  }

/* ============ TOKENS ============ */
  :root{
    color-scheme:light;
    /* brand: the logo's red + black + white, plus a sticker yellow */
    --red:#D7141E;
    --red-deep:#A80F17;
    --red-ink:#B30F18;           /* red used as text on paper (AA) */
    --ink:#15110F;
    --ink-soft:#5B534C;
    --paper:#F7F3EC;
    --paper-2:#EEE7DA;
    --yellow:#FFC83D;
    --brass:#C98A2B;
    --brass-bright:#A8701C;
    /* legacy names used by the assembly illustration */
    --bg:var(--paper);
    --bg-alt:var(--paper-2);
    --card:#FFFFFF;
    --card-hover:#F1EBDF;
    --accent:var(--red);
    --accent-bright:var(--red);
    --accent-dark:var(--red-deep);
    --accent-tint:#FBE0E1;
    --line:#E0D7C6;
    --radius:14px;
    --radius-lg:28px;
    --max:1320px;
    --gutter:clamp(18px,4vw,56px);
    --font-display:'Big Shoulders Display','Arial Narrow',Impact,sans-serif;
    --font-body:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    --hard:5px 5px 0 var(--ink);
    --shadow-card:0 24px 44px -24px rgba(40,20,10,.3);
    --ease:cubic-bezier(.16,.8,.3,1);
    --header-h:72px;
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);-webkit-text-size-adjust:100%;}
  body{
    background:var(--paper);color:var(--ink);font-family:var(--font-body);
    font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip;
  }
  img,svg{display:block;max-width:100%;}
  img{height:auto;}
  a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;}
  ul,ol{list-style:none;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
  a,button{touch-action:manipulation;}
  input,select,textarea{font-family:inherit;font-size:1rem;color:var(--ink);}
  ::selection{background:var(--yellow);color:var(--ink);}
  :focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:6px;box-shadow:0 0 0 6px var(--yellow);}
  .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
  .skip-link{
    position:absolute;left:16px;top:-70px;z-index:200;background:var(--ink);color:var(--paper);
    padding:12px 20px;border-radius:999px;font-weight:600;transition:top .2s var(--ease);
  }
  .skip-link:focus{top:14px;}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);}
  section{position:relative;}

  h1,h2,h3{font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:-.005em;line-height:.94;color:var(--ink);text-wrap:balance;}
  h2{font-size:clamp(2.6rem,6.4vw,5.6rem);}
  h3{font-family:var(--font-body);text-transform:none;font-weight:600;font-size:1.15rem;line-height:1.25;letter-spacing:0;}
  p{color:var(--ink-soft);text-wrap:pretty;}
  .lede{font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:46ch;}
  .eyebrow{font-weight:600;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red-ink);margin-bottom:14px;display:block;}

  /* ============ BUTTONS ============ */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 28px;
    border-radius:999px;border:2.5px solid var(--ink);font-weight:600;font-size:1rem;white-space:nowrap;
    box-shadow:var(--hard);transition:transform .22s var(--ease),box-shadow .22s var(--ease),background-color .2s;
  }
  .btn:active{transform:translate(4px,4px);box-shadow:1px 1px 0 var(--ink);}
  .btn-primary{background:var(--red);color:#fff;}
  .btn-ghost{background:#fff;color:var(--ink);}
  .btn-yellow{background:var(--yellow);color:var(--ink);}
  .btn-dark{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:5px 5px 0 var(--yellow);}
  .btn svg{width:18px;height:18px;}
  @media (hover:hover){
    .btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink);}
    .btn-dark:hover{box-shadow:7px 7px 0 var(--yellow);}
    .btn:active{transform:translate(4px,4px);box-shadow:1px 1px 0 var(--ink);}
  }

  /* ============ HEADER ============ */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;background:transparent;
    border-bottom:3px solid transparent;transition:background-color .3s var(--ease),border-color .3s var(--ease);
  }
  header.scrolled,header:has(.mobile-menu.open){background:var(--paper);border-color:var(--ink);}
  .scroll-sentinel{position:absolute;top:0;left:0;width:1px;height:12px;pointer-events:none;visibility:hidden;}
  .nav{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);}
  .brand{display:flex;align-items:center;gap:10px;min-height:44px;font-family:var(--font-display);font-weight:900;font-size:1.55rem;letter-spacing:.01em;text-transform:uppercase;white-space:nowrap;line-height:1;}
  .brand em{font-style:normal;color:var(--red);}
  .brand-logo{width:40px;height:40px;border-radius:50%;flex:none;object-fit:cover;border:2.5px solid var(--ink);background:#fff;}
  .nav-links{display:none;align-items:center;gap:34px;font-weight:500;font-size:.95rem;}
  .nav-links a{position:relative;padding:8px 0;}
  .nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);}
  @media (hover:hover){.nav-links a:hover::after{transform:scaleX(1);}}
  .nav-actions{display:flex;align-items:center;gap:14px;}
  .lang-switch{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px;background:var(--yellow);color:var(--ink);border:2.5px solid var(--ink);border-radius:999px;box-shadow:3px 3px 0 var(--ink);font-family:var(--font-display);font-weight:900;font-size:1.05rem;letter-spacing:.05em;text-transform:uppercase;line-height:1;white-space:nowrap;transition:transform .22s var(--ease),box-shadow .22s var(--ease);}
  .lang-switch svg{width:20px;height:20px;flex:none;}
  .lang-switch .ls-long{display:none;}
  @media (hover:hover){.lang-switch:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink);}}
  .lang-switch:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink);}
  @media (max-width:420px){.brand{font-size:1.35rem;gap:8px;}.nav-actions{gap:8px;}.lang-switch{padding:0 10px;gap:5px;}.lang-switch svg{width:18px;height:18px;}}
  @media (min-width:900px) and (max-width:1199px){.nav-links{gap:20px;}.nav-actions{gap:10px;}.nav-cta{padding:8px 16px;}}
  @media (min-width:1200px){.lang-switch .ls-long{display:inline;}.lang-switch .ls-short{display:none;}}
  .nav-cta{display:none;min-height:46px;padding:8px 22px;font-size:.95rem;}
  .nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;padding:0 11px;margin-right:-11px;}
  .nav-toggle span{height:3px;background:var(--ink);border-radius:3px;transition:transform .25s var(--ease),opacity .25s var(--ease);}
  .nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
  .mobile-menu{max-height:0;overflow:hidden;visibility:hidden;background:var(--paper);transition:max-height .35s var(--ease),visibility 0s linear .35s;}
  .mobile-menu.open{max-height:520px;visibility:visible;transition:max-height .35s var(--ease),visibility 0s;}
  .mobile-menu ul{padding:6px var(--gutter) 16px;}
  .mobile-menu li a{display:block;padding:14px 0;font-family:var(--font-display);font-weight:900;font-size:2rem;text-transform:uppercase;line-height:1;border-bottom:2px solid var(--ink);}
  .mobile-cta{padding:0 var(--gutter) 22px;}
  .mobile-cta .btn{width:100%;}
  @media(min-width:900px){
    .nav-links{display:flex;}
    .nav-cta{display:inline-flex;}
    .nav-toggle{display:none;}
    .mobile-menu{display:none;}
  }

  /* ============ HERO ============ */
  .hero{position:relative;min-height:100svh;background:var(--paper);display:flex;flex-direction:column;padding-top:var(--header-h);overflow:hidden;}
  .hero-top{position:relative;flex:1;display:grid;grid-template-rows:auto 1fr;align-items:end;grid-template-columns:minmax(0,1fr);max-width:var(--max);width:100%;margin:0 auto;padding:clamp(8px,2vh,24px) var(--gutter) 0;}
  .wordmark{position:relative;z-index:2;font-size:var(--wm);line-height:.84;padding-bottom:.02em;grid-row:2;align-self:end;}
  .wm-line{display:block;position:relative;padding-top:.06em;}
  .wm-line.is-clip{overflow:hidden;}
  .wm-t{display:block;position:relative;z-index:2;}
  .wm-e{position:absolute;left:0;top:.06em;display:block;pointer-events:none;opacity:0;z-index:1;user-select:none;}
  .wm-red .wm-t{color:var(--red);}
  .wm-red .wm-e{color:var(--red);}
  .hero-actor{position:absolute;right:var(--gutter);bottom:0;z-index:1;width:min(22.4vw,calc(var(--stage-h) * .6));aspect-ratio:642/1019;}
  .hero-mascot{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:bottom;transform-origin:50% 100%;}
  .bubble{
    position:absolute;z-index:4;background:var(--yellow);color:var(--ink);border:2.5px solid var(--ink);border-radius:18px;
    padding:10px 16px;font-family:var(--font-display);font-weight:900;font-size:clamp(1.05rem,1.6vw,1.5rem);text-transform:uppercase;line-height:1;letter-spacing:.01em;
    box-shadow:var(--hard);white-space:nowrap;transform-origin:100% 100%;
  }
  .bubble::after{content:"";position:absolute;z-index:-1;right:26px;bottom:-14px;width:22px;height:22px;background:var(--yellow);border-right:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink);transform:rotate(45deg) skew(8deg,8deg);border-bottom-right-radius:6px;}
  .hero-bubble{right:70%;top:10%;}
  .sticker{
    position:absolute;z-index:4;display:grid;place-items:center;width:clamp(96px,10vw,150px);aspect-ratio:1;border-radius:50%;
    background:var(--red);color:#fff;border:2.5px solid var(--ink);box-shadow:var(--hard);
  }
  .sticker svg.ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 16s linear infinite;}
  .sticker .ring text{font-family:var(--font-body);font-weight:600;font-size:11.2px;letter-spacing:.18em;fill:#fff;text-transform:uppercase;}
  .sticker .arrow{position:relative;width:34%;height:34%;color:#fff;}
  .hero-sticker{right:-26%;top:24%;}
  @keyframes spin{to{transform:rotate(360deg);}}
  .hero-intro{position:relative;z-index:4;align-self:start;display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;max-width:640px;padding-top:clamp(10px,3vh,34px);}
  .hero-sub{max-width:36ch;font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.45;color:var(--ink);}
  .hero-sub strong{font-weight:600;}
  .hero-bottom{position:relative;z-index:5;border-top:3px solid var(--ink);background:var(--paper);}
  .hero-bottom .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 32px;padding-top:14px;padding-bottom:14px;}
  @media(min-width:700px){.hero-bottom .wrap{padding-right:calc(var(--gutter) + 64px);}}
  .hero-points{display:flex;flex-wrap:wrap;gap:6px 26px;font-weight:600;font-size:.95rem;}
  .hero-points li{display:flex;align-items:center;gap:8px;}
  .hero-points li::before{content:"";width:9px;height:9px;background:var(--red);border:2px solid var(--ink);border-radius:50%;flex:none;}
  .hero-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;min-height:44px;}
  .hero-link svg{width:18px;height:18px;transition:transform .25s var(--ease);}
  @media (hover:hover){.hero-link:hover svg{transform:translateY(4px);}}
  /* sizes tuned per breakpoint: "SOLUCIONES" is ~4.3em wide in Big Shoulders 900 */
  .hero{--wm:clamp(4.2rem,min(11.3vw,25svh),13rem);--stage-h:calc(100svh - var(--header-h) - 64px);}
  @media(max-width:899px){
    .hero{--wm:16.2vw;}
    .hero-top{grid-template-rows:auto 1fr auto;padding-top:6px;}
    .hero-intro{padding-top:14px;gap:14px 20px;}
    .hero-sub{font-size:1.02rem;}
    .wordmark{grid-row:3;}
    .hero-actor{position:relative;grid-row:2;right:auto;bottom:auto;justify-self:end;align-self:end;width:auto;height:clamp(220px,38svh,360px);margin-right:6px;z-index:1;}
    .hero-mascot{position:relative;width:auto;height:100%;}
    .hero-bubble{right:81%;top:0;font-size:.98rem;white-space:normal;width:9.2em;text-align:center;line-height:1.02;padding:9px 12px;}
    .hero-bubble::after{right:12px;}
    .hero-sticker{right:auto;left:-62%;top:36%;width:88px;}
    .hero-bottom .wrap{padding-top:10px;padding-bottom:10px;padding-right:82px;}
    .hero-points{gap:2px 14px;font-size:.82rem;}
    .hero-link{display:none;}
  }

  /* ============ MARQUEE ============ */
  .marquee-clip{position:relative;z-index:6;overflow:hidden;margin-top:-34px;padding:26px 0;pointer-events:none;}
  .marquee{position:relative;background:var(--ink);color:#fff;border-block:3px solid var(--ink);transform:rotate(-1.4deg);margin:0 -4vw;overflow:hidden;}
  .marquee-track{display:flex;width:max-content;will-change:transform;}
  .marquee-group{display:flex;align-items:center;flex:none;}
  .marquee-item{font-family:var(--font-display);font-weight:900;font-size:clamp(1.5rem,3.4vw,2.6rem);text-transform:uppercase;line-height:1;padding:14px 0;white-space:nowrap;}
  .marquee-item:nth-child(4n+1){color:var(--yellow);}
  .marquee-bolt{width:26px;height:26px;margin:0 clamp(16px,2.4vw,34px);color:var(--red);flex:none;}

  /* ============ SERVICES (red checker + sticky mascot + white card) ============ */
  .svc{position:relative;z-index:5;background-color:var(--red);
    background-image:conic-gradient(rgba(0,0,0,.12) 25%,transparent 0 50%,rgba(0,0,0,.12) 0 75%,transparent 0);
    background-size:120px 120px;padding:clamp(110px,14vw,170px) 0 clamp(90px,10vw,150px);}
  .svc-grid{display:grid;gap:40px;align-items:start;}
  .svc-left{position:relative;}
  .svc-actor{position:relative;display:flex;align-items:flex-end;justify-content:center;}
  .svc-flip{width:100%;display:flex;justify-content:center;align-items:flex-end;}
  .svc-mascot{height:min(58svh,500px);width:auto;max-width:100%;display:block;transform-origin:50% 100%;}
  .svc-bubble{left:2%;right:auto;top:auto;bottom:calc(100% + 14px);}
  .svc-tag{position:absolute;left:0;bottom:6%;background:#fff;border:2.5px solid var(--ink);border-radius:999px;padding:6px 16px;font-family:var(--font-display);font-weight:900;font-size:1.25rem;text-transform:uppercase;box-shadow:var(--hard);transform:rotate(-4deg);}
  .svc-prop{position:absolute;right:-6%;bottom:2%;width:56%;max-width:230px;opacity:0;transform:translateY(30px) rotate(10deg) scale(.8);transition:opacity .35s,transform .5s cubic-bezier(.34,1.56,.64,1);}
  .svc-prop.on{opacity:1;transform:translateY(0) rotate(-8deg) scale(1);}
  .svc-card{background:#fff;border:3px solid var(--ink);border-radius:var(--radius-lg);box-shadow:10px 10px 0 var(--ink);padding:clamp(22px,3.4vw,46px);}
  .svc-head{border-bottom:3px solid var(--ink);padding-bottom:clamp(14px,2vw,26px);margin-bottom:6px;}
  .svc-head h2{color:var(--red);font-size:clamp(2.6rem,6.6vw,6rem);line-height:1;}
  .svc-head p{margin-top:12px;max-width:42ch;color:var(--ink);}
  .svc-row{position:relative;padding:clamp(26px,5.6vh,64px) 0;border-bottom:2px solid var(--ink);display:grid;grid-template-columns:auto 1fr;gap:6px clamp(14px,2.4vw,32px);transition:background-color .3s;}
  .svc-row:last-of-type{border-bottom:0;}
  .svc-num{font-family:var(--font-display);font-weight:900;font-size:clamp(1.6rem,3vw,2.6rem);color:var(--red);line-height:.95;grid-row:span 2;font-variant-numeric:tabular-nums;}
  .svc-row h3{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(1.9rem,4vw,3.4rem);line-height:.95;transition:color .25s,transform .35s var(--ease);transform-origin:left;}
  .svc-row p{color:var(--ink);font-size:clamp(1rem,1.2vw,1.12rem);max-width:46ch;}
  .svc-row .btn-link{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-weight:600;color:var(--red-ink);min-height:44px;}
  .svc-row .btn-link svg{width:16px;height:16px;transition:transform .25s var(--ease);}
  @media (hover:hover){.svc-row:hover .btn-link svg{transform:translateX(5px);}.svc-row:hover h3{color:var(--red);}}
  .svc-row.is-active h3{color:var(--red);transform:translateX(8px);}
  .svc-note{padding-top:clamp(20px,3vh,32px);color:var(--ink);}
  .svc-note a{font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;}
  @media(min-width:900px){
    .svc-grid{grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:clamp(30px,5vw,80px);}
    .svc-left{position:sticky;top:calc(var(--header-h) + 3vh);height:calc(100svh - var(--header-h) - 6vh);display:flex;align-items:flex-end;}
    .svc-actor{width:100%;}
  }
  @media(max-width:899px){
    .svc-grid{gap:0;}
    .svc-left{order:-1;position:sticky;top:var(--header-h);z-index:6;height:100px;margin:0 calc(var(--gutter) * -1) 22px;padding:0 var(--gutter);background:var(--red-deep);border-block:3px solid var(--ink);overflow:visible;}
    .svc-actor{position:static;height:100%;display:block;}
    .svc-flip{position:absolute;right:var(--gutter);bottom:0;width:auto;height:100%;}
    .svc-mascot{height:96px;width:auto;max-width:none;}
    .svc-bubble{left:var(--gutter);right:auto;top:24px;bottom:auto;font-size:1rem;max-width:calc(100% - 150px);white-space:normal;line-height:1.05;transform-origin:50% 100%;}
    .svc-tag,.svc-prop{display:none;}
    .svc-card{box-shadow:6px 6px 0 var(--ink);}
  }

  /* ============ MONTAJE (scroll-driven assembly) ============ */
  .assembly-section{position:relative;padding-top:96px;}
  .assembly-intro{max-width:880px;margin-bottom:40px;}
  .assembly-intro h2{margin-bottom:20px;}
  .assembly-intro .lede{font-size:clamp(1.2rem,2.3vw,1.65rem);line-height:1.5;max-width:44ch;}
  .assembly-intro .lede strong{color:var(--ink);font-weight:600;}

  /* scroll-scrubbed word reveal: --wp (0..1) is written per word by js/main.js */
  .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
  .wr-word{
    display:inline-block;
    --wp:1;
    opacity:calc(.16 + .84 * var(--wp));
    filter:blur(calc((1 - var(--wp)) * 6px));
    transform:translateY(calc((1 - var(--wp)) * .14em));
    will-change:opacity,transform;
  }
  .assembly-scroller{position:relative;height:500vh;}
  .assembly-pin{
    position:sticky;top:0;min-height:100vh;min-height:100svh;display:flex;align-items:center;
    padding:88px 0 32px;overflow:hidden;
  }
  .assembly-grid{display:grid;gap:28px;width:100%;}
  @media(min-width:900px){.assembly-grid{grid-template-columns:.7fr 1.3fr;align-items:center;gap:64px;}}

  .assembly-steps{display:flex;flex-direction:column;gap:2px;max-width:340px;}
  .assembly-steps li{
    display:flex;align-items:center;gap:12px;padding:9px 0;font-size:.95rem;font-weight:500;
    color:var(--ink-soft);transition:color .35s var(--ease);
  }
  .assembly-steps li.is-done{color:var(--ink);}
  .assembly-steps li.is-done .step-dot{background:var(--accent-bright);border-color:var(--accent-bright);}
  .assembly-steps li.is-active{font-weight:600;color:var(--ink);}
  .step-dot{
    width:11px;height:11px;border-radius:50%;flex:none;border:2px solid var(--line);background:transparent;
    transition:background-color .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
  }
  .assembly-steps li.is-active .step-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-tint);}

  .assembly-visual{position:relative;}
  .assembly-stage{position:relative;width:100%;max-width:420px;margin:0 auto;aspect-ratio:3/4;perspective:1500px;}
  .assembly-stage .pc{position:absolute;backface-visibility:hidden;}
  /* GPU layers only while the section is on screen */
  .assembly-stage.is-live .pc,.assembly-stage.is-live .pax-door-hinge{will-change:transform,opacity;}

  /* protection layer - present before any piece appears */
  .prot-wall{
    position:absolute;left:-8%;right:-8%;top:-6%;height:34%;border-radius:6px 6px 0 0;
    background:linear-gradient(180deg,var(--card-hover),transparent);
  }
  .prot-tape{
    position:absolute;left:-8%;right:-8%;top:26%;height:5px;
    background:repeating-linear-gradient(-45deg,var(--yellow) 0 10px,#1a1512 10px 20px);
    opacity:.9;
  }
  .prot-floor{
    position:absolute;left:-8%;right:-8%;bottom:-6%;height:20%;border-radius:4px;
    background:
      repeating-linear-gradient(135deg, rgba(120,90,40,.08) 0 2px, transparent 2px 22px),
      linear-gradient(175deg,#EFE6D2,#DED0B0);
    border:1px dashed rgba(120,90,40,.3);
  }

  .pc-shadow{
    left:18%;right:18%;bottom:6%;height:5%;border-radius:50%;
    background:radial-gradient(closest-side, rgba(30,20,5,.32), transparent 75%);
  }
  .pc-back{
    left:28%;right:28%;top:12%;height:76%;border-radius:1px;
    background:linear-gradient(160deg,#D8C89E,#C3AF80);opacity:.9;
  }

  /* ---- carcass: sides, top, base, centre divider ---- */
  .pax-side{top:8%;height:80%;width:4%;border-radius:1px;
    background:linear-gradient(160deg,#C9A961,#B18E4C);
    box-shadow:inset 0 0 0 1px rgba(90,66,20,.2), 0 6px 10px -6px rgba(30,20,5,.35);
  }
  .pax-side-l{left:24%;}
  .pax-side-r{right:24%;}
  .pax-top{left:24%;right:24%;top:8%;height:4%;border-radius:1px;
    background:linear-gradient(200deg,#F6EDD3,#E4D5AC);
    box-shadow:0 4px 8px -4px rgba(30,20,5,.3);
  }
  .pax-base{left:24%;right:24%;bottom:11%;height:4%;border-radius:1px;
    background:linear-gradient(180deg,#4b3c22,#332810);
    box-shadow:0 6px 10px -4px rgba(20,12,0,.4);
  }
  .pax-divider{left:calc(50% - 1%);width:2%;top:12%;height:77%;
    background:linear-gradient(160deg,#C9A961,#B18E4C);opacity:.85;
  }

  /* ---- interior: shelving column ---- */
  .pax-shelf{left:26%;right:52%;height:2.6%;border-radius:1px;
    background:linear-gradient(180deg,#EFE4C8,#D8C7A0);
    box-shadow:0 4px 7px -4px rgba(30,20,5,.3), inset 0 0 0 1px rgba(120,95,45,.18);
  }
  .pax-shelf-1{top:24%;}
  .pax-shelf-2{top:44%;}
  .pax-shelf-3{top:64%;}

  /* ---- interior: hanging column ---- */
  .pax-rail{left:52%;right:26%;top:19%;height:1.3%;border-radius:2px;
    background:linear-gradient(90deg,#8b7d5f,#c9b98f 45%,#8b7d5f);
    box-shadow:0 1px 2px rgba(0,0,0,.25);
  }
  .pax-hanger{position:absolute;top:19%;width:6%;height:34%;transform-origin:50% 0%;}
  .pax-hanger::before{
    content:"";position:absolute;top:0;left:50%;width:60%;height:16%;margin-left:-30%;
    border:2px solid #8b7d5f;border-top:none;border-radius:0 0 50% 50%/0 0 100% 100%;
    opacity:.85;
  }
  .pax-hanger-1{left:56%;}
  .pax-hanger-2{left:63.5%;}
  .pax-hanger-3{left:71%;}
  .pax-cloth{
    position:absolute;top:13%;left:50%;width:88%;height:80%;margin-left:-44%;
    border-radius:5px 5px 10px 10px;box-shadow:0 6px 10px -6px rgba(30,20,5,.35);
  }
  .pax-cloth-a{background:linear-gradient(180deg,#7c8b74,#5f6d57);}
  .pax-cloth-b{background:linear-gradient(180deg,#a8703a,#8a5a2c);}
  .pax-cloth-c{background:linear-gradient(180deg,#5c6570,#454c55);}

  /* ---- drawers ---- */
  .pax-drawer{left:52%;right:26%;height:6%;border-radius:1px;
    background:linear-gradient(180deg,#E7DABB,#D2C098);
    box-shadow:inset 0 0 0 1px rgba(120,95,45,.25), 0 4px 6px -3px rgba(30,20,5,.3);
  }
  .pax-drawer::after{
    content:"";position:absolute;left:14%;right:14%;top:38%;height:10%;
    background:rgba(90,68,30,.32);border-radius:2px;
  }
  .pax-drawer-1{top:70%;}
  .pax-drawer-2{top:77%;}

  .pc-screw{width:6px;height:6px;border-radius:50%;background:var(--brass);box-shadow:0 1px 1px rgba(0,0,0,.3);}
  .sc1{left:25.5%;top:9.5%;}
  .sc2{right:25.5%;top:9.5%;}
  .sc3{left:25.5%;bottom:12.5%;}
  .sc4{right:25.5%;bottom:12.5%;}
  .pc-shine{
    top:8%;bottom:8%;left:24%;width:8%;
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);
    transform:skewX(-18deg);opacity:0;pointer-events:none;z-index:6;
  }
  .pc-check{
    left:auto;right:-4%;bottom:6%;display:flex;align-items:center;gap:8px;
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    padding:9px 12px;box-shadow:var(--shadow-card);opacity:0;white-space:nowrap;z-index:6;
  }
  .pc-check svg{width:15px;height:15px;color:var(--accent-bright);flex:none;}
  .pc-check span{font-size:.76rem;font-weight:600;color:var(--ink);}

  /* ---- doors: real hinge rotation, mirrored ---- */
  .pax-door-hinge{
    position:absolute;top:11.5%;height:73%;width:26%;
    transform-style:preserve-3d;z-index:5;
  }
  .pax-door-hinge-l{left:24%;transform-origin:0% 50%;}
  .pax-door-hinge-r{left:50%;transform-origin:100% 50%;}
  .pax-door{
    position:absolute;inset:0;border-radius:1px;transform-style:preserve-3d;backface-visibility:hidden;
    background:linear-gradient(115deg,#E8DAB4 0%,#D8C494 45%,#C7AE76 100%);
    box-shadow:inset 0 0 0 1px rgba(90,66,20,.3), 2px 0 8px rgba(30,20,5,.18);
  }
  .pax-door::after{
    content:"";position:absolute;top:0;width:5px;height:100%;
    background:linear-gradient(90deg,rgba(24,16,5,.5),rgba(24,16,5,.16));
    transform-origin:0% 50%;backface-visibility:hidden;
  }
  .pax-door-hinge-l .pax-door::after{right:-5px;transform:rotateY(90deg);}
  .pax-door-hinge-r .pax-door::after{left:-5px;transform:rotateY(-90deg);}
  .pax-handle{
    position:absolute;top:50%;width:4px;height:26px;margin-top:-13px;border-radius:3px;
    background:linear-gradient(90deg,var(--brass),var(--brass-bright) 50%,var(--brass));
    box-shadow:0 1px 2px rgba(0,0,0,.3);
  }
  .pax-door-hinge-l .pax-handle{right:8%;}
  .pax-door-hinge-r .pax-handle{left:8%;}

  @media(max-width:899px){
    .assembly-section{padding-top:72px;}
    .assembly-scroller{height:340vh;}
    .assembly-pin{padding:20px 0;}
    .assembly-stage{max-width:230px;perspective:1100px;}
    .assembly-steps{gap:0;}
    .assembly-steps li{padding:4px 0;font-size:.82rem;gap:8px;}
  }

  /* assembly section: dark band, local palette so the illustration code above stays untouched */
  .assembly-section{
    background:#15110F;--ink:#F7F3EC;--ink-soft:#CFC7BA;--line:#4B433C;--card:#231D19;--card-hover:#2D2622;--accent-tint:#4A1B1E;
    padding-top:clamp(96px,11vw,150px);
  }
  .assembly-intro h2{color:#fff;font-size:clamp(2.8rem,7.6vw,6.8rem);max-width:12ch;}
  .assembly-intro .lede{color:#E9E2D6;}
  .assembly-intro .lede strong{color:var(--yellow);}
  .assembly-scroller{height:520vh;}
  .assembly-stage{overflow:visible;}
  .asm-peek{position:absolute;left:-8%;bottom:-3%;width:32%;max-width:150px;z-index:7;transform:translateY(72%);transition:transform .7s cubic-bezier(.34,1.56,.64,1);}
  .asm-bubble{z-index:9;left:20%;bottom:30%;opacity:0;transform:scale(.4) rotate(-6deg);transform-origin:0% 100%;transition:opacity .25s,transform .5s cubic-bezier(.34,1.56,.64,1);font-size:1.05rem;}
  .asm-bubble::after{right:auto;left:22px;}
  .assembly-section.is-done .asm-peek{transform:translateY(8%);}
  .assembly-section.is-done .asm-bubble{opacity:1;transform:scale(1) rotate(-3deg);transition-delay:.35s;}
  @media(max-width:899px){.assembly-scroller{height:360vh;}.assembly-stage{max-width:292px;}.asm-peek{width:34%;left:-4%;}.asm-bubble{font-size:.9rem;left:26%;}}

  /* ============ PROCESO (horizontal scroll on desktop) ============ */
  .proceso{background:var(--paper);padding:clamp(80px,10vw,140px) 0 0;overflow:hidden;}
  .proceso-head{padding-bottom:clamp(28px,5vh,56px);}
  .proceso-head h2{font-size:clamp(2.8rem,7.4vw,6.6rem);max-width:13ch;}
  .proceso-track{display:flex;flex-direction:column;gap:20px;padding:0 var(--gutter) clamp(70px,9vw,120px);}
  .paso{position:relative;border:3px solid var(--ink);border-radius:var(--radius-lg);background:#fff;padding:clamp(22px,3vw,40px);box-shadow:var(--hard);display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:300px;}
  .paso-num{font-family:var(--font-display);font-weight:900;font-size:clamp(6.5rem,15vw,13rem);line-height:.78;color:transparent;-webkit-text-stroke:3px var(--ink);font-variant-numeric:tabular-nums;}
  .paso h3{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:.92;margin-bottom:10px;}
  .paso p{color:var(--ink);max-width:34ch;font-size:1.05rem;}
  .paso:nth-child(2){background:var(--yellow);}
  .paso:nth-child(3){background:var(--red);}
  .paso:nth-child(3) h3,.paso:nth-child(3) p{color:#fff;}
  .paso:nth-child(3) .paso-num{-webkit-text-stroke-color:#fff;}
  .paso:nth-child(4){background:var(--ink);}
  .paso:nth-child(4) h3,.paso:nth-child(4) p{color:#fff;}
  .paso:nth-child(4) .paso-num{-webkit-text-stroke-color:#fff;}
  .paso-level{position:absolute;right:-18px;top:-26px;width:min(52%,240px);transform:rotate(8deg);}
  .proceso-rail{display:none;}
  .proceso-hint{display:none;}
  @media(max-width:899px){
    .proceso{padding-bottom:0;}
    .proceso-hint{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:600;font-size:.95rem;background:var(--yellow);border:2.5px solid var(--ink);border-radius:999px;padding:4px 14px;box-shadow:3px 3px 0 var(--ink);}
    .proceso-hint svg{width:16px;height:16px;animation:nudge 1.3s ease-in-out infinite;}
    .proceso-track{flex-direction:row;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px var(--gutter) 46px;scroll-padding:0 var(--gutter);-webkit-overflow-scrolling:touch;scrollbar-width:none;}
    .proceso-track::-webkit-scrollbar{display:none;}
    .paso{flex:0 0 80%;scroll-snap-align:start;min-height:340px;}
  }
  @keyframes nudge{50%{transform:translateX(5px);}}
  @media(min-width:900px){
    .proceso{padding-bottom:0;}
    .proceso-pin{height:100svh;display:flex;flex-direction:column;justify-content:center;gap:0;position:relative;padding-bottom:clamp(24px,5vh,56px);}
    .proceso-pin .proceso-head{padding-top:calc(var(--header-h) + 8px);padding-bottom:clamp(14px,3vh,34px);}
    .proceso-pin .proceso-head h2{font-size:clamp(2.6rem,5.6vw,5rem);max-width:none;}
    .proceso-track{flex-direction:row;gap:28px;width:max-content;padding:0 var(--gutter);}
    .paso{width:min(46vw,620px);flex:none;min-height:min(46vh,400px);}
    .proceso-rail{display:block;position:relative;margin:clamp(22px,4vh,46px) var(--gutter) 0;height:6px;background:rgba(21,17,15,.14);border-radius:6px;}
    .proceso-rail-fill{position:absolute;left:0;top:0;height:100%;width:100%;background:var(--red);border-radius:6px;transform-origin:left;transform:scaleX(0);}
    .rail-head{position:absolute;left:0;bottom:8px;width:62px;transform:translateX(-50%);}
  }

  /* ============ GALERIA (bento, 7 tiles, no empty cells) ============ */
  .galeria{background:var(--paper);padding:clamp(80px,10vw,150px) 0;}
  .galeria .section-head{margin-bottom:clamp(28px,4vw,54px);}
  .section-head h2{max-width:11ch;}
  .section-head .lede{margin-top:16px;}
  .gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:clamp(150px,38vw,230px);gap:14px;grid-auto-flow:dense;}
  .gal-card{position:relative;border:3px solid var(--ink);border-radius:var(--radius);overflow:hidden;background:#fff;min-height:0;box-shadow:var(--hard);}
  .gal-card picture{display:block;position:absolute;inset:-6% 0;}
  .gal-card img{width:100%;height:100%;object-fit:cover;}
  .gal-label{position:absolute;left:12px;bottom:12px;z-index:2;background:var(--yellow);border:2.5px solid var(--ink);border-radius:999px;padding:4px 14px;font-family:var(--font-display);font-weight:900;font-size:1.05rem;text-transform:uppercase;line-height:1.2;transform:rotate(-2deg);}
  .gal-tall{grid-row:span 2;}
  .gal-wide,.gal-big{grid-column:span 2;}
  @media(min-width:900px){
    .gallery-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(200px,19vw,270px);gap:18px;}
    .gal-big{grid-row:span 2;}
  }

  /* ============ POR QUÉ ============ */
  .porque{background:var(--paper-2);padding:clamp(80px,10vw,150px) 0;border-block:3px solid var(--ink);}
  .porque-layout{display:grid;gap:40px;}
  .porque-layout .section-head{margin-bottom:0;}
  @media(min-width:900px){
    .porque-layout{grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start;}
    .porque-layout .section-head{position:sticky;top:calc(var(--header-h) + 32px);}
  }
  .benefits-grid{display:grid;grid-template-columns:1fr;gap:20px;}
  @media(min-width:640px){.benefits-grid{grid-template-columns:1fr 1fr;}}
  .benefit{background:#fff;border:3px solid var(--ink);border-radius:var(--radius);padding:22px 22px 24px;box-shadow:var(--hard);transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
  .benefit:nth-child(3n+2){background:var(--yellow);}
  .icon-disc{width:50px;height:50px;border-radius:50%;background:var(--red);border:2.5px solid var(--ink);display:grid;place-items:center;margin-bottom:16px;}
  .icon-disc svg{width:24px;height:24px;color:#fff;}
  .benefit:nth-child(3n+2) .icon-disc{background:#fff;}
  .benefit:nth-child(3n+2) .icon-disc svg{color:var(--ink);}
  .benefit h3{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1.7rem;line-height:.95;margin-bottom:8px;}
  .benefit p{color:var(--ink);font-size:.98rem;}
  @media (hover:hover){.benefit:hover{transform:translate(-3px,-3px) rotate(-.6deg);box-shadow:9px 9px 0 var(--ink);}}

  /* ============ VALORACIONES ============ */
  .stats{background:var(--yellow);padding:clamp(80px,10vw,140px) 0;border-bottom:3px solid var(--ink);overflow:hidden;}
  .stats .section-head{margin-bottom:clamp(30px,5vw,60px);}
  .stats .eyebrow{color:var(--ink);}
  .stats-level{position:absolute;right:-30px;top:clamp(20px,6vw,70px);width:clamp(180px,26vw,380px);transform:rotate(-12deg);pointer-events:none;}
  .stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 24px;position:relative;}
  @media(min-width:720px){.stats-grid{grid-template-columns:repeat(4,1fr);gap:40px;}}
  .stat{border-top:4px solid var(--ink);padding-top:16px;}
  .stat-number{font-family:var(--font-display);font-weight:900;font-size:clamp(4rem,10vw,8.4rem);line-height:.82;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;}
  .stat-number small{font-size:.42em;color:var(--red-ink);margin-left:2px;}
  .stat-number svg{width:.8em;height:.8em;color:var(--red);}
  .stat p{margin-top:10px;color:var(--ink);font-weight:500;max-width:22ch;}

  /* ============ CTA ============ */
  .cta{background-color:var(--red);background-image:conic-gradient(rgba(0,0,0,.12) 25%,transparent 0 50%,rgba(0,0,0,.12) 0 75%,transparent 0);background-size:120px 120px;border-bottom:3px solid var(--ink);padding:clamp(80px,10vw,150px) 0 0;overflow:hidden;}
  .cta-inner{display:grid;gap:30px;align-items:end;}
  .cta h2{color:#fff;font-size:clamp(3rem,9vw,8.4rem);line-height:.98;max-width:11ch;}
  .cta p{color:#fff;font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:40ch;margin-top:22px;}
  .cta-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px;padding-bottom:clamp(60px,8vw,110px);}
  .cta-actor{position:relative;justify-self:end;width:min(70%,360px);align-self:end;}
  .cta-mascot{width:100%;height:auto;transform-origin:50% 100%;}
  .cta-bubble{right:70%;top:4%;}
  @media(max-width:899px){.cta-bubble{right:82%;top:-2%;}}
  @media(min-width:900px){
    .cta-inner{grid-template-columns:1.25fr .75fr;}
    .cta-actor{width:min(100%,420px);}
  }

  /* ============ CONTACTO ============ */
  .contacto{background:var(--paper);padding:clamp(80px,10vw,150px) 0;}
  .contact-grid{display:grid;gap:48px;}
  @media(min-width:900px){.contact-grid{grid-template-columns:.9fr 1.1fr;gap:72px;}}
  .contacto h2{font-size:clamp(2.8rem,6.8vw,6rem);max-width:10ch;}
  .contact-points{display:flex;flex-direction:column;gap:20px;margin-top:30px;}
  .contact-point{display:flex;gap:14px;align-items:flex-start;}
  .contact-point .icon-disc{margin:0;flex:none;}
  .contact-point strong{display:block;font-size:1.02rem;}
  .contact-point span{font-size:.95rem;color:var(--ink-soft);}
  .zone-block{margin-top:34px;padding-top:26px;border-top:3px solid var(--ink);}
  .zone-block h3{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:2rem;line-height:.95;margin-bottom:8px;}
  .zone-block p{color:var(--ink);}
  .zone-chips{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0;}
  .zone-chips li{background:#fff;border:2.5px solid var(--ink);border-radius:999px;padding:7px 16px;font-weight:600;font-size:.92rem;}
  form{background:#fff;border:3px solid var(--ink);border-radius:var(--radius-lg);box-shadow:10px 10px 0 var(--ink);padding:clamp(22px,3.2vw,40px);}
  .field{margin-bottom:20px;}
  .field label{display:block;font-size:.9rem;font-weight:600;margin-bottom:8px;}
  .field .optional{font-weight:400;color:var(--ink-soft);}
  .field input,.field select,.field textarea{width:100%;min-height:50px;background:var(--paper);border:2.5px solid var(--ink);border-radius:var(--radius);padding:12px 14px;transition:box-shadow .2s,background-color .2s;}
  .field input::placeholder,.field textarea::placeholder{color:var(--ink-soft);opacity:1;}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;background:#fff;box-shadow:5px 5px 0 var(--yellow),5px 5px 0 2.5px var(--ink);}
  .field input[type="file"]{padding:10px 12px;}
  .field-row{display:grid;grid-template-columns:1fr;gap:0 20px;}
  @media(min-width:560px){.field-row{grid-template-columns:1fr 1fr;}}
  .field textarea{resize:vertical;min-height:120px;}
  .form-note{font-size:.85rem;color:var(--ink-soft);text-align:center;margin-top:14px;}
  .file-hint{font-size:.85rem;color:var(--ink-soft);margin-top:6px;}
  .hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
  .form-error{display:none;font-size:.92rem;color:#8E1B14;background:#FDE7E4;border:2.5px solid #8E1B14;border-radius:var(--radius);padding:12px 14px;text-align:center;margin-top:14px;}
  .form-error.show{display:block;}
  .form-success{display:none;text-align:center;padding:40px 10px;}
  .form-success:focus{outline:none;}
  .form-success.show{display:block;}
  .form-success .icon-disc{margin:0 auto 18px;width:64px;height:64px;}
  .form-success h3{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:2.4rem;line-height:.95;}

  /* ============ FOOTER ============ */
  footer{background:var(--ink);color:#F7F3EC;padding:clamp(60px,8vw,100px) 0 0;overflow:hidden;position:relative;}
  .footer-grid{display:grid;gap:36px;grid-template-columns:1fr;}
  @media(min-width:820px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr;}}
  footer .brand{color:#fff;}
  .footer-brand p{color:rgba(247,243,236,.78);margin-top:14px;max-width:34ch;}
  .footer-title{font-weight:600;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px;color:var(--yellow);}
  footer ul{display:flex;flex-direction:column;gap:2px;}
  footer li a{display:inline-block;padding:8px 0;font-size:1rem;color:#F7F3EC;}
  @media (hover:hover){footer li a:hover{color:var(--yellow);}}
  .footer-mark{font-family:var(--font-display);font-weight:900;text-transform:uppercase;color:#fff;font-size:14.6vw;line-height:.8;text-align:center;white-space:nowrap;margin-top:clamp(30px,5vw,70px);letter-spacing:-.01em;user-select:none;}
  .footer-mark em{font-style:normal;color:var(--red);}
  .footer-bottom{border-top:2px solid rgba(247,243,236,.22);padding:18px 0 22px;font-size:.88rem;color:rgba(247,243,236,.7);text-align:center;margin-top:clamp(18px,3vw,36px);position:relative;z-index:1;background:var(--ink);}
  .footer-peek{position:absolute;right:clamp(14px,6vw,100px);bottom:0;width:clamp(120px,15vw,210px);z-index:0;pointer-events:none;}
  .footer-stage{position:relative;margin-top:clamp(30px,5vw,70px);}
  .footer-stage .footer-mark{margin-top:0;position:relative;z-index:0;}
  .footer-stand{display:none;}
  @media(max-width:899px){
    .footer-peek{display:none;}
    .footer-bottom{padding-right:76px;padding-left:var(--gutter);text-align:left;}
    .footer-stage{margin-top:48px;}
    .footer-stand{display:block;position:absolute;right:var(--gutter);bottom:calc(100% + 13px);z-index:2;width:auto;height:min(54vw,230px);pointer-events:none;transform-origin:50% 100%;}
  }

  /* ============ FLOATING WHATSAPP ============ */
  .whatsapp-fab{position:fixed;right:20px;z-index:90;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;border:2.5px solid var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:var(--hard);transition:transform .2s var(--ease),box-shadow .2s var(--ease);bottom:calc(20px + env(safe-area-inset-bottom));}
  .whatsapp-fab svg{width:30px;height:30px;}
  @media (hover:hover){.whatsapp-fab:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink);}}
  .whatsapp-fab:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink);}
  @media(max-width:480px){.whatsapp-fab{right:14px;width:54px;height:54px;bottom:calc(14px + env(safe-area-inset-bottom));}}

  /* ============ MOTION STATE (class set by the inline script only when motion is allowed) ============ */
  .reveal{transition:opacity .7s var(--ease),transform .7s var(--ease);}
  html.motion .reveal{opacity:0;transform:translateY(26px);}
  html.motion .reveal.is-visible{opacity:1;transform:none;}
  html.motion .hero [data-in]{opacity:0;}
  html.motion .wm-t,html.motion .wm-e{opacity:0;}
  html.motion .svc-card,html.motion .paso,html.motion .benefit,html.motion .stat{will-change:transform;}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .sticker svg.ring{animation:none;}
    .assembly-scroller{height:auto !important;}
    .assembly-pin{position:static;padding:0;min-height:0;}
    .assembly-stage .pc{opacity:1 !important;transform:none !important;}
    .pax-door-hinge,.pax-door{opacity:1 !important;transform:none !important;}
    .pc-shine{opacity:0 !important;}
    .pc-check{opacity:1 !important;}
    .assembly-steps li{opacity:1;}
    .asm-peek{transform:translateY(8%);}
    .asm-bubble{opacity:1;transform:rotate(-3deg);}
    .proceso-hint svg{animation:none;}
    .btn:active,.whatsapp-fab:active{transform:none;}
  }

/* ============ ACOMPAÑANTE: el montador te acompaña mientras lees ============ */
.companion{position:fixed;left:6px;bottom:0;z-index:85;pointer-events:none;display:none;visibility:hidden;}
html.motion .companion{display:block;}
.comp-fig{display:block;height:clamp(120px,20vh,196px);width:auto;max-width:none;transform-origin:50% 100%;}
.comp-bubble{left:calc(100% - 4px);right:auto;top:auto;bottom:54%;font-size:clamp(.98rem,1.35vw,1.2rem);opacity:0;transform-origin:0% 100%;}
.comp-bubble::after{right:auto;left:22px;}
@media(max-width:899px){
  .companion{left:2px;}
  .comp-fig{height:clamp(104px,15vh,132px);}
  .comp-bubble{font-size:.92rem;white-space:normal;width:max-content;max-width:min(58vw,230px);bottom:52%;}
}
