@font-face{font-family:"Chivo";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/chivo-latin-ext-700.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Chivo";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/chivo-latin-700.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}
@font-face{font-family:"Chivo";font-style:normal;font-weight:800;font-display:swap;src:url(/assets/chivo-latin-ext-800.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Chivo";font-style:normal;font-weight:800;font-display:swap;src:url(/assets/chivo-latin-800.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}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/public-sans-latin-ext-400.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/public-sans-latin-400.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}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/public-sans-latin-ext-500.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/public-sans-latin-500.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}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/public-sans-latin-ext-600.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/public-sans-latin-600.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}
:root{
--ivory:#f8f4ea;--paper:#fffcf5;--sand:#efe7d6;--line:#d9cdb2;
--brown:#33231a;--brown-2:#5a463a;--gold:#b8923a;--gold-ink:#7a5a14;
--blue:#0a6393;--wa:#25D366;--wa-ink:#0a2a14;--dark:#2a1c13;
--r:3px;--gut:clamp(20px,5vw,64px);--max:1280px;
--display:"Chivo",sans-serif;--body:"Public Sans",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:88px;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--ivory);color:var(--brown);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased}
body.modal-open,body.menu-open{overflow:hidden}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--blue);text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--brown);color:var(--ivory);padding:12px 18px;border-radius:var(--r)}
.skip:focus{top:12px}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;color:var(--brown)}
h2{font-weight:800;font-size:clamp(2rem,4.6vw,3.75rem);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
h3{font-size:1.625rem;line-height:1.1;letter-spacing:-.02em}
h4{font-size:1.5rem;line-height:1.15;letter-spacing:-.02em}
.eyebrow{font:600 .875rem/1.3 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink)}
/* buttons */
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;font:600 1.0625rem/1 var(--body);text-decoration:none;border:1.5px solid var(--brown);border-radius:var(--r);transition:background .18s,color .18s}
.button.primary{background:var(--brown);color:var(--ivory)}
.button.primary:hover{background:#4d3628}
.button.outline{background:transparent;color:var(--brown)}
.button.outline:hover{background:var(--brown);color:var(--ivory)}
.inline-link{background:none;border:0;padding:0;color:var(--blue);text-decoration:underline;text-underline-offset:.2em}
.wa-icon{width:24px;height:24px;fill:currentColor;flex:none}
.ecg-line{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.ecg-grid{fill:none;stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.form-progress{display:flex;flex-wrap:wrap;gap:4px 12px;margin:20px 0 24px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:.9rem;font-weight:600;color:var(--brown-2);flex-wrap:nowrap}
.form-progress li{white-space:nowrap;padding-bottom:6px;margin-bottom:-13px;border-bottom:2px solid transparent}
.form-progress li.is-complete{color:var(--brown)}
.form-progress li[aria-current=step]{color:var(--brown);border-bottom-color:var(--gold)}
.form-step>p{margin:6px 0 16px}
.tiles{border:0;margin:0;padding:0;min-width:0}
.tiles legend{padding:0;margin-bottom:14px}
.tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:10px;min-height:128px;padding:12px 8px;background:var(--ivory);border:2px solid var(--line);border-radius:var(--r);text-align:center;cursor:pointer}
.tile:hover{border-color:var(--gold)}
.tile input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.tile:has(input:checked){border-color:var(--gold);background:var(--paper)}
.tile:has(input:focus-visible){outline:3px solid var(--blue);outline-offset:3px}
.tile-media{display:grid;place-items:center;width:100%;height:72px}
.tile-media img{width:auto;height:auto;max-width:100%;max-height:72px}
.tile-media .ecg-svg{width:84px}
.tile-name{font:700 1rem/1.15 var(--display)}
label{display:block;font-weight:600;margin-top:16px}
label span{font-weight:400}
.tile{margin-top:0}
input[name=name],input[name=organization],textarea{display:block;width:100%;margin-top:8px;padding:14px;font-weight:400;background:var(--ivory);border:1.5px solid var(--brown-2);border-radius:var(--r)}
textarea{resize:vertical;min-height:130px}
input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#a4161a}
.form-hint{margin-top:10px;font-size:.95rem;color:var(--brown-2)}
.request-review{display:grid;gap:0;margin:8px 0 16px}
.request-review>div{padding:12px 0;border-top:1px solid var(--line)}
.request-review dt{font:600 .875rem/1.3 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--brown-2)}
.request-review dd{margin-top:4px;overflow-wrap:anywhere;white-space:pre-wrap}
.form-error{min-height:1.4em;margin-top:12px;color:#a4161a;font-weight:600}
.form-actions{display:flex;gap:12px;margin-top:8px}
.form-actions .primary{flex:1}
.form-privacy{margin-top:16px;font-size:.95rem;color:var(--brown-2)}
.form-status{margin-top:8px;font-weight:600}
footer{background:var(--sand);padding-top:clamp(40px,5vw,64px)}
.footer-main,.footer-bottom,.professional-note{width:min(100% - 2*var(--gut),var(--max));margin-inline:auto}
.footer-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.footer-brand img{width:200px;height:auto}
.footer-links{display:flex;flex-wrap:wrap;gap:12px 28px}
.footer-links a{color:var(--brown);font-weight:600;text-decoration:none}
.footer-links a:hover{color:var(--blue);text-decoration:underline}
.footer-bottom{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:32px;padding-top:20px;border-top:1px solid var(--line);font-size:.95rem;color:var(--brown-2)}
.professional-note{margin-top:16px;font-size:.95rem;color:var(--brown-2);max-width:var(--max)}
.powered{margin-top:clamp(32px,4vw,48px);padding:20px var(--gut);background:var(--dark);border-top:1px solid var(--gold)}
.powered-by{display:inline-flex;align-items:center;gap:14px;text-decoration:none;width:min(100%,var(--max));margin-inline:auto;justify-content:flex-start}
.powered{display:flex;justify-content:center}
.powered-by span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#e9dfca}
.powered-by img{height:26px;width:auto;opacity:.6;transition:opacity .2s}
.powered-by:hover img,.powered-by:focus-visible img{opacity:1}
dialog{width:min(920px,100% - 32px);max-height:calc(100dvh - 32px);padding:clamp(24px,4vw,40px);background:var(--paper);color:var(--brown);border:1px solid var(--line);border-radius:var(--r);overflow:auto}
dialog::backdrop{background:rgba(42,28,19,.6)}
.privacy-dialog{width:min(620px,100% - 32px)}
.privacy-dialog p+p{margin-top:12px}
dialog h2{font-size:clamp(1.75rem,3.4vw,2.5rem);margin:6px 0 16px}
.dialog-close{position:absolute;top:8px;right:8px;width:44px;height:44px;background:none;border:0;font-size:2rem;line-height:1;color:var(--brown)}
.dialog-close:hover{color:var(--blue)}
.catalog-search{position:relative;margin:0 0 8px}
.catalog-search svg{position:absolute;left:14px;top:50%;width:22px;height:22px;transform:translateY(-50%);fill:none;stroke:var(--brown-2);stroke-width:2;stroke-linecap:round}
.catalog-search input{width:100%;padding:14px 14px 14px 46px;background:var(--ivory);border:1.5px solid var(--brown-2);border-radius:var(--r)}
.search-count{font-size:.95rem;color:var(--brown-2);margin-bottom:16px}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.product-card{display:flex;flex-direction:column;text-align:left;padding:0;background:var(--ivory);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.product-card:hover{border-color:var(--gold)}
.product-image{display:grid;place-items:center;height:180px;padding:14px;background:var(--paper);border-bottom:1px solid var(--line)}
.product-image img{width:auto;height:auto;max-width:100%;max-height:150px}
.product-image .ecg-panel{width:90%}
.product-info{display:flex;flex-direction:column;gap:6px;padding:16px}
.product-info .pc-title{font:700 1.25rem/1.15 var(--display);letter-spacing:-.015em}
.product-info .pc-more{font-weight:600;color:var(--blue)}
#empty-state{padding:24px 0}
#empty-state p{margin-bottom:12px}
.dialog-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start}
.dialog-image{display:grid;place-items:center;min-height:300px;padding:20px;background:var(--ivory);border:1px solid var(--line);border-radius:var(--r)}
.dialog-text{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.dialog-text h2{margin:0}
.dialog-text ul{display:grid;gap:8px}
.dialog-note{font-size:.95rem;color:var(--brown-2)}
@media (max-width:420px){.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions{flex-direction:column-reverse}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media (max-width:380px){.form-progress{gap:4px 8px;font-size:.8125rem}}

/* ===== v3: tokens over the scroll engine ===== */
:root{--sc-canvas:var(--ivory);--sc-ink:var(--brown);--sc-accent:var(--gold);--sc-accent-ink:var(--brown);--sc-font-text:var(--body);--sc-font-display:var(--display);
--hh:76px;--logo-w:220px;--logo-big:min(80vw,900px)}
::selection{background:var(--gold);color:var(--brown)}
:root{caret-color:var(--brown);accent-color:var(--blue)}
body{overflow-x:clip}
@media (max-width:860px){:root{--hh:64px;--logo-w:170px;--logo-big:90vw}}
.sc-stage{height:100vh;height:100svh}

/* header + docking logo */
.header{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--hh);padding:0 var(--gut)}
.header::before{content:"";position:absolute;inset:0;background:var(--ivory);border-bottom:1px solid var(--line);opacity:var(--dock,1);z-index:-1}
.brand-slot{display:block;flex:none;width:var(--logo-w);height:calc(var(--logo-w)*319/1303)}
.logo-fly{position:fixed;left:0;top:0;z-index:70;display:block;width:var(--logo-big);transform-origin:0 0;transform:translate3d(calc((100vw - var(--logo-big))/2),calc(46vh - var(--logo-big)*319/2606),0)}
.logo-fly img{width:100%;height:auto}
.logo-docked{transform:translate3d(var(--lx,20px),var(--ly,10px),0) scale(var(--ls,.25))}
.header nav{display:flex;align-items:center;gap:clamp(18px,2.6vw,36px)}
.header nav a{color:var(--brown);text-decoration:none;font-weight:600}
.header nav a:hover{color:var(--blue)}
.menu-toggle{display:none;align-items:center;gap:10px;min-height:44px;padding:0 0 0 10px;background:none;border:0;font-weight:600}
.menu-lines{display:grid;gap:6px;width:24px}
.menu-lines i{display:block;height:2px;background:var(--brown);transition:transform .2s}
.menu-toggle[aria-expanded=true] .menu-lines i:first-child{transform:translateY(4px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-lines i:last-child{transform:translateY(-4px) rotate(-45deg)}

/* hero */
.hero-stage{background:var(--ivory)}
.hero-world{position:absolute;inset:0;opacity:var(--w,1);overflow:hidden}
.hw-back{position:absolute;left:-3%;top:-3%;width:106%;height:106%;max-width:none;object-fit:cover;object-position:68% 50%;opacity:.82;-webkit-mask-image:linear-gradient(90deg,transparent 20%,#000 64%);mask-image:linear-gradient(90deg,transparent 20%,#000 64%);transform:translate3d(calc(var(--px,0)*-14px),calc(var(--py,0)*-10px - var(--sy,0)*28px),0)}
.hero-scrim{position:absolute;z-index:5;left:0;top:var(--hh);bottom:0;width:56%;background:linear-gradient(90deg,var(--ivory) 0%,rgba(248,244,234,.94) 55%,rgba(248,244,234,0) 100%);opacity:var(--w,1);pointer-events:none}
.hero-products{position:absolute;left:55%;right:2%;top:calc(var(--hh) + 28px);bottom:9%;perspective:1100px}
.hp{position:absolute;opacity:var(--a,1);transform:translate3d(calc(var(--px,0)*var(--d)*1px),calc(var(--py,0)*var(--d)*.7px - var(--sy,0)*var(--sd)*1px + (1 - var(--a,1))*46px),0)}
.hp img{width:100%;height:auto;filter:drop-shadow(0 26px 22px rgba(51,35,26,.2));transform:rotateY(calc(var(--px,0)*7deg)) rotateX(calc(var(--py,0)*-5deg))}
.hp-columna{left:36%;top:6%;width:15%;--d:8;--sd:18;z-index:1}
.hp-cadera{left:0;top:34%;width:50%;--d:18;--sd:30;z-index:2}
.hp-rodilla{left:60%;top:12%;width:26%;--d:26;--sd:44;z-index:3}
.hp-hombro{left:88%;top:58%;width:8%;--d:34;--sd:60;z-index:3}
.hw-front{position:absolute;right:-2%;bottom:-200px;height:calc(56% + 200px);width:auto;max-width:none;z-index:4;pointer-events:none;opacity:var(--w,1);-webkit-mask-image:linear-gradient(180deg,transparent 2%,#000 30%),linear-gradient(90deg,transparent 2%,#000 30%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,transparent 2%,#000 30%),linear-gradient(90deg,transparent 2%,#000 30%);mask-composite:intersect;transform:translate3d(calc(var(--px,0)*-34px),calc(var(--py,0)*-18px - var(--sy,0)*150px),0)}
.hero-copy{position:absolute;z-index:6;left:var(--gut);top:calc(var(--hh) + (100% - var(--hh))/2);transform:translateY(-50%);width:min(54vw,740px)}
.hero h1{font-size:clamp(34px,5vw,80px);font-weight:700;line-height:1.02;letter-spacing:-.035em}
.hl{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.hl>span{display:block;transform:translate3d(0,calc((1 - var(--h1a,1))*108%),0)}
.hl:nth-of-type(2)>span{transform:translate3d(0,calc((1 - var(--h1b,1))*108%),0)}
.hero-lead,.hero-actions{opacity:var(--la,1);transform:translate3d(0,calc((1 - var(--la,1))*18px),0)}
.hero-lead{margin-top:clamp(16px,2vw,28px);font-size:clamp(1.125rem,1.4vw,1.25rem);line-height:1.55;max-width:29em}
.hero .button{min-height:56px;font-size:1.125rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* exploded hip */
.hip-stage{background:var(--ivory)}
.hip-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7;-webkit-mask-image:linear-gradient(180deg,transparent 34%,#000 82%);mask-image:linear-gradient(180deg,transparent 34%,#000 82%)}
.hip-copy{position:absolute;z-index:3;left:var(--gut);top:calc(var(--hh) + 7vh);width:min(32vw,440px)}
.hip-copy h2{font-size:clamp(2rem,3.5vw,3.1rem)}
.hip-lines{margin-top:18px;display:grid;gap:14px;font-size:1.0625rem}
.hip-lines p{max-width:26em}
.hip-lines a{font-weight:600}
@media (prefers-reduced-motion:no-preference){.hip-lines{gap:0}.hip-lines p{grid-area:1/1;opacity:var(--l1,1)}.hip-lines .hl2{opacity:var(--l2,0)}.hip-lines .hl3{opacity:var(--l3,0)}}
.hip-fig{--h:min(52vh,500px);position:absolute;z-index:2;left:58%;top:calc(50% + var(--hh)/2);width:calc(var(--h)*.941);height:var(--h);translate:-50% -50%}
.hip-part{position:absolute;inset:0;transform:translate3d(calc(var(--sep,1)*var(--dx)*var(--h)/100),calc(var(--sep,1)*var(--dy)*var(--h)/100),0);rotate:calc(var(--sep,1)*var(--rt))}
.hip-part img{width:100%;height:100%;filter:drop-shadow(0 20px 18px rgba(51,35,26,.22))}
.hip-shell{--dx:22;--dy:-26;--rt:-3deg;z-index:1}
.hip-liner{--dx:2;--dy:0;--rt:0deg;z-index:2}
.hip-head{--dx:-22;--dy:26;--rt:4deg;z-index:3}
.hip-leader{position:absolute;height:1px;background:var(--gold);transform:scaleX(var(--lab,1));transform-origin:left center}
.hip-leader::after{content:"";position:absolute;left:-3px;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--gold)}
.hip-label{position:absolute;white-space:nowrap;padding:6px 11px;background:rgba(255,252,245,.92);border:1px solid var(--line);border-radius:var(--r);font:600 .9375rem/1.2 var(--body);color:var(--brown);opacity:var(--lab,1);transform:translateY(-50%)}
.hip-shell .hip-leader{left:70%;top:25%;width:36%}.hip-shell .hip-label{left:109%;top:25%}
.hip-liner .hip-leader{left:68%;top:64%;width:42%}.hip-liner .hip-label{left:113%;top:64%}
.hip-head .hip-leader{left:-18%;top:81%;width:38%;transform-origin:right center}.hip-head .hip-leader::after{left:auto;right:-3px}.hip-head .hip-label{right:119%;top:81%}
.hip-cap{position:absolute;z-index:3;left:0;right:0;bottom:22px;text-align:center;font-size:.9rem;color:var(--brown-2)}

/* portfolio rail */
.portfolio{background:var(--sand)}
.pf-stage{background:var(--sand)}
.pf-rail{height:100%;align-items:center;gap:clamp(20px,2.4vw,40px);padding:calc(var(--hh) + 2vh) var(--gut) 12vh;width:max-content}
.pf-lead{flex:none;width:min(30vw,420px)}
.pf-lead p{margin-top:18px;max-width:26em}
.pf-card{flex:none;width:clamp(290px,31vw,440px);display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.pf-fig{--fh:clamp(150px,27vh,320px);display:grid;place-items:center;height:var(--fh);padding:16px;overflow:hidden;background:var(--ivory);border-bottom:1px solid var(--line)}
.pf-fig img{width:auto;height:auto;max-width:100%;max-height:calc(var(--fh) - 32px)}
.pf-fig .ecg-panel{width:80%;aspect-ratio:3/1;height:auto}
.pf-body{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:clamp(16px,1.8vw,24px)}
.pf-body h3{font-size:clamp(1.5rem,2.2vw,1.9rem);font-weight:800;letter-spacing:-.03em;line-height:1}
.pf-body ul{display:grid;gap:6px;font-size:.95rem}
.pf-body li,.dialog-text li{padding-left:18px;position:relative}
.pf-body li::before,.dialog-text li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:2px;background:var(--gold)}
.pf-body .button{margin-top:6px}
.pf-end{flex:none;width:min(26vw,340px);display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.pf-end p{font:700 1.5rem/1.15 var(--display);letter-spacing:-.02em}
.pf-nav{position:absolute;z-index:5;left:var(--gut);right:var(--gut);bottom:max(20px,3vh);display:flex;gap:clamp(14px,2.2vw,32px);overflow-x:auto;scrollbar-width:none;border-top:1px solid var(--line);padding-top:6px}
.pf-nav::-webkit-scrollbar{display:none}
.pf-nav button{flex:none;min-height:44px;padding:0 2px;background:none;border:0;border-bottom:3px solid transparent;font:600 1rem/1 var(--body);color:var(--brown-2);margin-top:-7px;transition:color .15s,border-color .15s}
.pf-nav button:hover{color:var(--blue)}
.pf-nav button[aria-current=true]{color:var(--brown);border-bottom-color:var(--gold)}

/* process */
.pr-stage{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:clamp(32px,6vw,104px);align-items:center;padding:var(--hh) var(--gut) 0;background:var(--ivory)}
.pr-intro{display:grid;gap:22px;align-content:center}
.pr-intro h2{font-size:clamp(2.6rem,5vw,4.4rem)}
.pr-intro p{max-width:24em;font-size:clamp(1.125rem,1.4vw,1.3rem)}
.pr-list{position:relative;padding-left:clamp(44px,5vw,76px)}
.pr-line{position:absolute;left:13px;top:18px;bottom:18px;width:3px;background:var(--gold);transform-origin:top;transform:scaleY(clamp(0,calc((var(--sc-p,1) - .02)/.74),1))}
.pr-stages{display:grid;gap:clamp(24px,5.5vh,56px)}
.pr-stages li{position:relative}
.pr-stages h3{font-size:clamp(2.25rem,4vw,3.5rem);font-weight:800;line-height:1;letter-spacing:-.035em;margin-bottom:10px}
.pr-stages li p{font-size:clamp(1.125rem,1.4vw,1.3rem);max-width:30em;color:var(--brown-2)}
.pr-dot{position:absolute;left:calc(-1*clamp(44px,5vw,76px));top:.28em;width:28px;height:28px;border-radius:50%;background:var(--ivory);border:3px solid var(--gold);transform:scale(calc(.7 + .3*clamp(0,(var(--sc-p,1) - var(--at,0))*40,1)));opacity:clamp(.25,calc(.25 + (var(--sc-p,1) - var(--at,0))*40),1)}
.pr-stages li:nth-child(1){--at:.02}.pr-stages li:nth-child(2){--at:.26}.pr-stages li:nth-child(3){--at:.5}.pr-stages li:nth-child(4){--at:.74}

/* brochure */
.brochure-section{background:var(--sand);padding:clamp(56px,8vw,112px) 0}
.brochure-inner{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:clamp(32px,7vw,96px);align-items:center;width:min(100% - 2*var(--gut),var(--max));margin:0 auto}
.brochure-cover{width:100%;height:auto;border:1px solid var(--line);box-shadow:0 30px 50px -28px rgba(51,35,26,.4)}
.brochure-copy{display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:34em}
.brochure-copy .download-meta{font-size:.95rem;color:var(--brown-2)}

/* contact */
.contact{padding:clamp(72px,10vw,150px) var(--gut) clamp(72px,9vw,130px);background:var(--ivory)}
.contact-head{max-width:760px;margin:0 auto clamp(28px,4vw,48px);text-align:center}
.contact-head h2{font-size:clamp(2.4rem,5.4vw,4.4rem)}
.contact-head p{margin-top:16px;font-size:1.1875rem}
.contact-form{max-width:800px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,4vw,52px);box-shadow:0 40px 60px -40px rgba(51,35,26,.35)}
.contact-form h3{font-size:clamp(1.5rem,2.4vw,1.9rem);line-height:1.15;letter-spacing:-.02em}
.form-progress{font-size:1rem}
.tile-grid{gap:14px}
.tile{min-height:168px;padding:16px 10px;transform-style:preserve-3d}
.tile-media{height:100px}
.tile-media img{max-height:100px}
.tile-media .ecg-svg{width:110px}
.tile-name{font-size:1.0625rem}
.contact-form textarea{min-height:170px}

/* footer */
footer{background:var(--sand);padding-top:clamp(40px,5vw,64px)}
.footer-main,.footer-bottom,.professional-note,.footer-contact{width:min(100% - 2*var(--gut),var(--max));margin-inline:auto}
.footer-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.footer-brand img{width:220px;height:auto}
.footer-links{display:flex;flex-wrap:wrap;gap:12px 28px}
.footer-links a{color:var(--brown);font-weight:600;text-decoration:none}
.footer-links a:hover{color:var(--blue);text-decoration:underline}
.footer-contact{display:flex;flex-wrap:wrap;gap:6px 28px;margin-top:24px;font-size:.9rem;color:var(--brown-2)}
.footer-contact a{color:var(--brown-2)}.footer-contact a:hover{color:var(--blue)}
.dialog-image img{width:auto;height:auto;max-width:100%;max-height:clamp(260px,32vw,420px)}
.dialog-image .ecg-panel{width:90%}

/* whatsapp float: official glyph, white on #25D366 */
.whatsapp-float{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:40;display:grid;place-items:center;width:60px;height:60px;background:#25D366;color:#fff;border-radius:50%;text-decoration:none;box-shadow:0 12px 28px -8px rgba(37,211,102,.6),0 0 0 1px rgba(255,255,255,.2) inset;transition:transform .16s,opacity .2s,visibility .2s}
.whatsapp-float .wa-icon{width:30px;height:30px;fill:#fff}
.whatsapp-float:hover{transform:translateY(-2px) scale(1.04)}
.whatsapp-float:active{transform:scale(.97)}
body.modal-open .whatsapp-float,body.menu-open .whatsapp-float,.whatsapp-float.form-visible,.whatsapp-float.over-hero{visibility:hidden;opacity:0;pointer-events:none}

/* responsive */
@media (max-width:1000px){
.pr-stage{grid-template-columns:minmax(0,1fr);align-content:center;gap:24px}
.pr-stages h3{font-size:clamp(2rem,6vw,2.75rem)}
.brochure-inner{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:880px){
.menu-toggle{display:flex}
.header nav{display:none}
.header nav.is-open{display:flex;position:fixed;inset:var(--hh) 0 0 0;flex-direction:column;align-items:stretch;gap:0;padding:12px var(--gut) 32px;background:var(--ivory);overflow:auto;z-index:60}
.header nav.is-open a{padding:18px 0;border-bottom:1px solid var(--line);font:700 1.75rem/1.1 var(--display);letter-spacing:-.02em}
.brochure-cover{max-width:260px}
.dialog-layout{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
.hw-back{object-position:50% 100%;-webkit-mask-image:linear-gradient(180deg,transparent 30%,#000 60%);mask-image:linear-gradient(180deg,transparent 30%,#000 60%)}
.hero-copy{top:calc(var(--hh) + 18px);transform:none;right:var(--gut);width:auto}
.hero h1{font-size:clamp(32px,9vw,56px)}
.hero-lead{font-size:1.0625rem}
.hero-actions{display:none}
.hero-products{left:3%;right:3%;top:37%;bottom:2%}
.hp-cadera{left:0;top:30%;width:50%}.hp-rodilla{left:56%;top:6%;width:32%}.hp-columna{left:38%;top:0;width:18%}.hp-hombro{left:90%;top:52%;width:8%}
.hw-front{height:calc(34% + 200px);right:-14%}
.hero-scrim{width:auto;right:0;bottom:auto;height:40%;background:linear-gradient(180deg,var(--ivory) 70%,rgba(248,244,234,0))}
.hero .button{min-height:52px}
.hip-copy{width:auto;right:var(--gut);top:calc(var(--hh) + 3vh)}
.hip-fig{--h:min(26vh,230px);left:calc(40px + var(--h)*.4705);top:calc(60% + var(--hh)/2)}
.hip-shell{--dx:8;--dy:-30}.hip-head{--dx:-4;--dy:30}
.hip-label{font-size:.8125rem;padding:4px 8px;white-space:normal;width:7.4em;line-height:1.15}
.hip-shell .hip-leader{left:72%;width:30%}.hip-shell .hip-label{left:105%}
.hip-liner .hip-leader{left:70%;width:34%}.hip-liner .hip-label{left:107%}
.hip-head .hip-leader{left:20%;width:84%;transform-origin:left center}.hip-head .hip-leader::after{left:-3px;right:auto}.hip-head .hip-label{left:108%;right:auto}
.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){.form-actions{flex-direction:column-reverse}}

/* reduced motion: everything readable, nothing pinned or scrubbed */
@media (prefers-reduced-motion:reduce){
[data-sc-cue],.sc-split__i{opacity:1!important;transform:none!important}
[data-sc-act]{height:auto!important}
.sc-stage{position:static!important;height:auto!important;min-height:0;overflow:visible!important}
.hero-stage{min-height:max(640px,100svh)!important}
.hip-stage{min-height:max(700px,100svh)!important}
.portfolio .sc-stage{overflow:visible!important}
.pf-rail{transform:none!important;width:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));padding:calc(var(--hh) + 24px) var(--gut) 40px;align-items:start}
.pf-lead,.pf-end{grid-column:1/-1;width:auto}
.pf-card{width:auto}
.pf-nav{display:none}
.pr-stage{padding-top:calc(var(--hh) + 32px);padding-bottom:56px}
.pr-line{transform:none}
}
@media (prefers-reduced-motion:reduce) and (max-width:860px){
.hero-stage{min-height:max(820px,100svh)!important}
.hip-stage{min-height:max(860px,100svh)!important}
.hip-copy{position:relative;top:auto;left:auto;right:auto;padding:calc(var(--hh) + 24px) var(--gut) 0}
.hip-fig{top:auto;bottom:90px;translate:-50% 0}
}
@media (max-width:380px){.contact{padding-inline:12px}.contact-form{padding:16px}.form-progress{font-size:.75rem;gap:4px 6px}.tile{padding:12px 6px}}
.svg-defs{position:absolute}

/* touch / narrow: native swipe carousel instead of the pinned pan (same media query as scenes.js) */
@media (hover:none) and (pointer:coarse),(max-width:768px){
.portfolio.is-carousel{padding:clamp(56px,14vw,88px) 0 40px}
.is-carousel .pf-stage{display:flex;flex-direction:column;height:auto;background:transparent}
.is-carousel .pf-lead{position:static;width:auto;padding:0 var(--gut);margin-bottom:8px}
.is-carousel .pf-lead h2{font-size:clamp(1.75rem,7.4vw,2.4rem)}
.is-carousel .pf-lead p{margin-top:12px;font-size:1.0625rem}
.is-carousel .pf-nav{order:1;display:flex;position:static;margin:8px 0 14px;padding:0 var(--gut);border-top:0;gap:18px}
.is-carousel .pf-rail{order:2;display:flex;width:auto;height:auto;transform:none!important;align-items:stretch;gap:14px;padding:6px var(--gut) 14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.is-carousel .pf-rail::-webkit-scrollbar{display:none}
.is-carousel .pf-rail:focus-visible{outline-offset:-3px}
.is-carousel .pf-card{width:80vw;max-width:420px;scroll-snap-align:start}
.is-carousel .pf-end{width:72vw;scroll-snap-align:start;justify-content:center}
.is-carousel .pf-fig{--fh:clamp(150px,22vh,220px)}
.is-carousel .pf-body{padding:18px}
.is-carousel .pf-body h3{font-size:1.5rem}
}

/* portfolio restructure: optional (hidden) groups, composed joint set, swappable image slot */
[hidden]{display:none!important}
.pf-set{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:calc(var(--fh) - 32px)}
.pf-set img{flex:1 1 0;min-width:0;width:0;height:100%;max-height:none;object-fit:contain}
.pf-fig .pf-slot{width:100%;height:100%;max-height:calc(var(--fh) - 32px);object-fit:contain}
.pf-note{font-size:.875rem;color:var(--brown-2)}
.product-info .pc-group{font-size:.95rem;color:var(--brown-2)}

/* product photography */
.pf-fig{position:relative}
.pf-cap,.pc-ref{font-size:.75rem;line-height:1;color:var(--brown-2)}
.pf-cap{position:absolute;right:12px;bottom:8px;margin:0}
.pf-set{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:6px 10px;height:calc(var(--fh) - 32px)}
.pf-set img{width:100%;height:100%;min-height:0;object-fit:contain}
#spec-reemplazos .pf-fig{--fh:clamp(230px,38vh,400px)}
.is-carousel #spec-reemplazos .pf-fig{--fh:clamp(220px,32vh,300px)}
.pf-link .inline-link{font:inherit;font-weight:600;cursor:pointer}
.product-image{position:relative;display:block;aspect-ratio:1;height:auto;padding:0;background:var(--ivory);border-bottom:0}
.product-image img{display:block;width:100%;height:100%;max-height:none}
.pc-ref{position:absolute;right:8px;bottom:6px}
.pg-sub{grid-column:1/-1;margin:14px 0 0;font-size:1.25rem;font-weight:800;letter-spacing:-.02em}
.pg-sub:first-child{margin-top:0}
.pc-text{font-size:.95rem;color:var(--brown-2)}
.dialog-image img{width:100%;max-width:420px;height:auto}
.pf-fig .pf-slot{width:auto;height:100%;aspect-ratio:1;max-width:100%}
.ph,.pf-slot,.product-image img,.dialog-image img[src*=cervical],.dialog-image img[src*=cesta],.dialog-image img[src*=placa],.tile-media img[src$='.webp'].ph{-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent),linear-gradient(0deg,transparent,#000 9%,#000 91%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent),linear-gradient(0deg,transparent,#000 9%,#000 91%,transparent);mask-composite:intersect}
.tile-media img[src$=".webp"]{width:auto;height:100%;object-fit:contain}

/* studio renders share #f4efe6: match panels so photos read as one surface */
.pf-fig,.product-image,.dialog-image{background:#f4efe6}
.tile-media{background:#f4efe6;border-radius:var(--r)}
