/* NEXT>HOME v3 — direcció «cru»: tons d'os, sorra i pedra; text en carbó càlid.
   El blau #009EDF només existeix dins el logo (el «>»). CSS escrit a mà. */
@font-face{font-family:"DM Sans";src:url(/fonts/dm-sans-regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url(/fonts/dm-sans-semibold.woff) format("woff");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans Fallback";src:local("Arial");size-adjust:100%;ascent-override:99%;descent-override:31%;line-gap-override:0%}
:root{
  --ivory:#F6F2EA;--bone:#EFE8DC;--sand:#E3D8C6;--stone:#CDBFAA;--greige:#A39684;
  --ink:#24201C;--ink-2:#3B352F;--muted:#655C51;--bronze:#86663F;--olive:#6D6A4E;
  --paper:#FBF9F5;--line:rgba(36,32,28,.14);--line-2:rgba(36,32,28,.24);
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua","URW Palladio L",P052,ui-serif,Georgia,serif;
  --sans:"DM Sans","DM Sans Fallback",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);--ease-io:cubic-bezier(.77,0,.18,1);--out:cubic-bezier(.16,1,.3,1);
  --wrap:1240px;--g:clamp(1rem,4.5vw,3rem);--hdr:4.5rem;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .14 0 0 0 0 .12 0 0 0 0 .1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 1rem);overflow-x:clip}
body{margin:0;background:var(--ivory);color:var(--ink);font:400 1.0625rem/1.7 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
picture{display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:var(--stone);transition:text-decoration-color .2s var(--ease),color .2s var(--ease)}
a:hover{text-decoration-color:currentColor}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}
::selection{background:var(--sand);color:var(--ink)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.012em;margin:0 0 .5em;color:var(--ink);text-wrap:balance}
h1 em,h2 em,h3 em,.manifesto em,.serif em{font-style:italic;color:var(--ink-2)}
h1{font-size:clamp(2.5rem,7.2vw,5.6rem);letter-spacing:-.022em}
h2{font-size:clamp(2rem,4.6vw,3.6rem)}
h3{font-size:clamp(1.45rem,2.4vw,2rem)}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--g)}
.narrow{max-width:860px}
.skip{position:absolute;left:1rem;top:-5rem;z-index:200;background:var(--ink);color:var(--ivory);padding:.75rem 1rem;font-weight:600;text-decoration:none;transition:top .2s var(--ease)}
.skip:focus{top:1rem}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow{display:inline-flex;align-items:center;gap:.75rem;font:600 .74rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 1.4rem}
.eyebrow::before{content:"";width:2.25rem;height:1px;background:var(--bronze)}
.lead{font-size:clamp(1.08rem,1.6vw,1.28rem);line-height:1.6;color:var(--ink-2);max-width:36em}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.pending{background:#F3E6C8;color:#5C4415;border:1px dashed #B89A5E;padding:0 .3em;font-size:.92em}
.num{font-family:var(--serif);font-feature-settings:"lnum";color:var(--bronze)}

/* ---------- Botons (magnètics, subtils) ---------- */
.btn{--tx:0px;--ty:0px;--s:1;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:3.25rem;padding:.9rem 1.7rem;border-radius:999px;border:1px solid var(--ink);font:600 .95rem/1.2 var(--sans);letter-spacing:.01em;text-decoration:none;cursor:pointer;transform:translate3d(var(--tx),var(--ty),0) scale(var(--s));transition:transform .35s var(--out),background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.btn svg{width:1.05em;height:1.05em;flex:none;transition:transform .35s var(--out)}
.btn:hover svg.arr{transform:translateX(3px)}
.btn:active{--s:.97;transition-duration:.1s}
.btn-dark{background:var(--ink);color:var(--ivory)}
.btn-dark:hover{background:var(--ink-2)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-line:hover{border-color:var(--ink);background:rgba(255,255,255,.35)}
.btn-sm{min-height:2.6rem;padding:.55rem 1.15rem;font-size:.86rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}
.link-arrow{display:inline-flex;align-items:center;gap:.55rem;font-weight:600;text-decoration:none;border-bottom:1px solid var(--line-2);padding-bottom:.2rem;transition:border-color .25s var(--ease),gap .35s var(--out)}
.link-arrow:hover{border-color:var(--ink);gap:.8rem}
.link-arrow svg{width:1em;height:1em}

/* ---------- Capçalera ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(246,242,234,.82);-webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s var(--ease),background-color .3s var(--ease)}
.site-header.is-scrolled{border-bottom-color:var(--line);background:rgba(246,242,234,.92)}
.hdr{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--hdr)}
.brand{display:inline-flex;flex:none}
.brand img{width:clamp(150px,15vw,190px);height:auto}
.nav-desk{display:none}
.nav-desk ul{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem);list-style:none;margin:0;padding:0}
.nl{position:relative;font-size:.92rem;text-decoration:none;color:var(--ink-2);padding:.4rem 0}
.nl::after{content:"";position:absolute;left:0;right:0;bottom:.1rem;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--out)}
.nl:hover::after,.nl[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nl[aria-current="page"]{color:var(--ink)}
.nl-imm{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line-2);border-radius:999px;padding:.45rem .95rem;color:var(--ink);font-weight:600;transition:border-color .25s var(--ease),background-color .25s var(--ease)}
.nl-imm::after{display:none}
.nl-imm:hover{border-color:var(--ink);background:var(--paper)}
.nl-imm .dot{width:.42rem;height:.42rem;border-radius:50%;background:var(--bronze)}
.nl-imm svg,.ml svg{width:.95em;height:.95em}
.hdr-actions{display:flex;align-items:center;gap:.6rem}
.hdr-cta{display:none}
/* Selector d'idioma (funciona sense JS: <details>) */
.lang{position:relative}
.lang summary{list-style:none;display:inline-flex;align-items:center;gap:.35rem;min-height:2.6rem;min-width:2.6rem;justify-content:center;padding:0 .7rem;border:1px solid var(--line-2);border-radius:999px;font:600 .8rem/1 var(--sans);letter-spacing:.08em;cursor:pointer;user-select:none;transition:border-color .2s var(--ease)}
.lang summary::-webkit-details-marker{display:none}
.lang summary:hover{border-color:var(--ink)}
.lang summary svg{width:.8em;height:.8em;transition:transform .3s var(--out)}
.lang[open] summary svg{transform:rotate(180deg)}
.lang ul{position:absolute;right:0;top:calc(100% + .5rem);min-width:11rem;list-style:none;margin:0;padding:.4rem;background:var(--paper);border:1px solid var(--line);border-radius:.9rem;box-shadow:0 18px 40px -18px rgba(36,32,28,.35);transform-origin:top right;animation:pop .22s var(--out)}
.lang li a{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .8rem;border-radius:.55rem;text-decoration:none;font-size:.92rem}
.lang li a:hover{background:var(--bone)}
.lang li a[aria-current="true"]{font-weight:600}
.lang li a small{color:var(--muted);letter-spacing:.08em}
@keyframes pop{from{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:none}}
/* Menú mòbil */
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:2.9rem;height:2.9rem;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--ink);cursor:pointer}
.bars{position:relative;width:1.1rem;height:.6rem}
.bar{position:absolute;left:0;width:100%;height:1.5px;background:currentColor;transition:transform .4s var(--out),top .4s var(--out)}
.bar:nth-child(1){top:0}.bar:nth-child(2){top:calc(100% - 1.5px)}
.menu-btn[aria-expanded="true"] .bar:nth-child(1){top:calc(50% - .75px);transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .bar:nth-child(2){top:calc(50% - .75px);transform:rotate(-45deg)}
.mobile-nav{display:none}
.js .mobile-nav{display:block;position:fixed;inset:var(--hdr) 0 0 0;z-index:49;background:var(--ivory);overflow-y:auto;padding:1.5rem var(--g) 2.5rem;visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease-io),visibility 0s linear .6s}
.js .mobile-nav[data-open="true"]{visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path .6s var(--ease-io)}
.mobile-nav ul{list-style:none;margin:0;padding:0}
.mobile-nav li{border-bottom:1px solid var(--line)}
.ml{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1.05rem 0;font:400 clamp(1.7rem,7vw,2.3rem)/1.15 var(--serif);text-decoration:none;opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .6s var(--out)}
.ml small{font:600 .72rem/1 var(--sans);letter-spacing:.18em;color:var(--muted)}
.mobile-nav[data-open="true"] .ml{opacity:1;transform:none;transition-delay:calc(var(--i,0) * 55ms + 120ms)}
.mn-foot{display:grid;gap:.7rem;margin-top:2rem}
.mn-foot .btn{width:100%}
body.menu-open{overflow:hidden}
/* Sense JS, el menú mòbil es mostra com a llista sota la capçalera */
html:not(.js) .menu-btn{display:none}
html:not(.js) .mobile-nav{display:block;padding:0 var(--g) 1rem}
html:not(.js) .mobile-nav .ml{opacity:1;transform:none;font-size:1.2rem}
html:not(.js) .mn-foot{display:none}

/* ---------- Gradació «cinema» de les fotos ---------- */
.film{position:relative;overflow:hidden;background:var(--sand);isolation:isolate}
.film img{width:100%;height:100%;object-fit:cover;filter:sepia(.16) saturate(.8) contrast(1.04) brightness(1.02)}
.film::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,transparent 55%,rgba(36,26,14,.22) 100%),linear-gradient(180deg,rgba(214,190,150,.10),rgba(120,92,56,.08));mix-blend-mode:multiply}
.film::after{content:"";position:absolute;inset:-50%;z-index:2;pointer-events:none;background-image:var(--grain);background-size:160px;opacity:.16;mix-blend-mode:multiply}
.duo img{filter:grayscale(1) sepia(.35) contrast(1.05) brightness(1.06)}
.kb img{animation:kenburns 26s ease-in-out infinite alternate;transform-origin:60% 45%;will-change:transform}
@keyframes kenburns{from{transform:scale(1.04) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-1.5%,-1%,0)}}

/* ---------- Revelats ---------- */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform 1.1s var(--out);transition-delay:var(--d,0ms)}
.js .reveal.is-in{opacity:1;transform:none}
.js .wipe{clip-path:inset(100% 0 0 0);transition:clip-path 1.25s var(--ease-io);transition-delay:var(--d,0ms)}
.js .wipe img{transform:scale(1.12);transition:transform 1.6s var(--out)}
.js .wipe.is-in{clip-path:inset(0 0 0 0)}
.js .wipe.is-in img{transform:scale(1)}
.js .rule{transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--out)}
.js .rule.is-in{transform:scaleX(1)}

/* ---------- Hero ---------- */
.hero{padding:clamp(2.5rem,7vh,5.5rem) 0 0}
.hero-top{display:grid;gap:1.75rem;align-items:end}
.hero h1{margin:0;max-width:11.5em}
.hero-side .lead{margin-bottom:1.6rem}
.load-in{animation:rise 1.2s var(--out) both;animation-delay:var(--d,0ms)}
@keyframes rise{from{opacity:0;transform:translateY(26px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0 0 -20% 0)}}
.imm-pill{display:inline-flex;align-items:center;gap:.9rem;margin-top:1.5rem;padding:.55rem .6rem .55rem 1.1rem;border:1px solid var(--line-2);border-radius:999px;text-decoration:none;background:var(--paper);transition:border-color .25s var(--ease),transform .35s var(--out)}
.imm-pill:hover{border-color:var(--ink)}
.imm-pill .q{font-size:.92rem;color:var(--muted)}
.imm-pill .go{white-space:nowrap;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;background:var(--bone);border-radius:999px;padding:.45rem .85rem;font-size:.92rem}
.imm-pill svg{width:.95em;height:.95em}
.hero-frame{margin:clamp(2.5rem,6vh,4rem) auto 0;max-width:1200px;padding:0 var(--g)}
.hero-frame .film{aspect-ratio:5/4;border-radius:2px}
.hero-frame figcaption{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0 0;font:600 .72rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
@supports (animation-timeline:view()){
  .js .hero-frame .film{animation:frameOpen linear both;animation-timeline:view();animation-range:entry 10% cover 45%}
  @keyframes frameOpen{from{clip-path:inset(0 7% 0 7% round 4px)}to{clip-path:inset(0 0 0 0 round 0)}}
}

/* ---------- Manifest ---------- */
.manifesto-sec{padding:clamp(5rem,14vh,10rem) 0}
.manifesto{font:400 clamp(1.65rem,3.6vw,3rem)/1.28 var(--serif);letter-spacing:-.01em;margin:0 auto;max-width:22em;text-align:center;text-wrap:pretty}
.manifesto .w{--p:1;opacity:clamp(.16,calc(var(--p) * var(--n) - var(--i) + 1),1);transition:opacity .25s linear}
.manifesto-sec .sig{display:block;width:fit-content;margin:2.5rem auto 0;font:600 .72rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}

/* ---------- Capítols ---------- */
.chapters{padding:clamp(4rem,10vh,7rem) 0 clamp(3rem,8vh,6rem);background:linear-gradient(180deg,var(--ivory),var(--bone) 18%,var(--bone) 82%,var(--ivory))}
.ch-head{max-width:40rem;margin-bottom:clamp(2rem,6vh,4rem)}
.ch-grid{display:grid;gap:0}
.ch-stage{display:none}
.ch-list{list-style:none;margin:0;padding:0;counter-reset:ch}
.ch{padding:2.5rem 0 3rem;border-top:1px solid var(--line)}
.ch-media{margin:0 0 1.75rem}
.ch-media .film{aspect-ratio:4/5;max-height:72vh;width:100%}
.ch-kicker{display:flex;align-items:baseline;gap:1rem;margin:0 0 1rem;font:600 .74rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ch-kicker .num{font-size:1.6rem;letter-spacing:0;font-weight:400}
.ch h3{font-size:clamp(2rem,4.4vw,3.4rem);margin-bottom:.6em}
.ch p{color:var(--ink-2);max-width:32em}
.ch ul{list-style:none;padding:0;margin:1.5rem 0 2rem;max-width:30em}
.ch li{display:flex;gap:.9rem;align-items:baseline;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.98rem}
.ch li::before{content:"";flex:none;width:.4rem;height:.4rem;border:1px solid var(--bronze);border-radius:50%;transform:translateY(-.1rem)}
.ch-ext{display:inline-block;margin-left:.6rem;font:600 .68rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bronze);vertical-align:middle}

/* ---------- Principis ---------- */
.sec{padding:clamp(4.5rem,11vh,8rem) 0}
.sec-head{max-width:44rem;margin-bottom:clamp(2.25rem,5vh,3.5rem)}
.sec-head p{color:var(--ink-2)}
.values{display:grid;gap:0;border-top:1px solid var(--line);list-style:none;margin:0;padding:0}
.values li{padding:1.75rem 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:3rem 1fr;gap:.25rem 1rem}
.values .num{font-size:1.4rem;grid-row:span 2}
.values h3{font-size:1.4rem;margin:0}
.values p{margin:.35rem 0 0;color:var(--muted)}

/* ---------- Girona (tipografia amb imatge) ---------- */
.girona{padding:clamp(3rem,9vh,6rem) 0;overflow:hidden;background:var(--sand)}
.girona-word{--p:.5;margin:0 0 1rem;font:400 clamp(5.5rem,25vw,22rem)/.82 var(--serif);letter-spacing:-.04em;color:var(--ink-2);white-space:nowrap}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .girona-word{color:transparent;background:linear-gradient(rgba(60,44,26,.28),rgba(60,44,26,.28)),url(/img/girona-onyar-480.webp) calc(var(--p) * 100%) 55%/cover no-repeat,var(--ink-2);-webkit-background-clip:text;background-clip:text;filter:sepia(.25) saturate(.8)}
}
.girona p{max-width:30em;font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--ink-2);margin:0}
.girona .wrap{display:grid;gap:1rem}

/* ---------- Carrusel horitzontal (passos) ---------- */
.steps-sec{padding:clamp(4.5rem,11vh,8rem) 0;overflow:hidden}
.steps-top{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;flex-wrap:wrap}
.car-ctrl{display:none;gap:.5rem}
.js .car-ctrl{display:flex}
.car-ctrl button{width:3rem;height:3rem;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:border-color .2s var(--ease),opacity .2s var(--ease),transform .3s var(--out)}
.car-ctrl button:hover{border-color:var(--ink)}
.car-ctrl button:active{transform:scale(.94)}
.car-ctrl button[disabled]{opacity:.3;cursor:default}
.car-ctrl svg{width:1.1rem;height:1.1rem}
.track{display:grid;grid-auto-flow:column;grid-auto-columns:min(82%,25rem);gap:1rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--g);padding:0 var(--g) 1.5rem;margin:2.5rem auto 0;max-width:var(--wrap);list-style:none;scrollbar-width:thin;scrollbar-color:var(--stone) transparent}
.track li{scroll-snap-align:start;background:var(--paper);border:1px solid var(--line);padding:2rem 1.75rem 2.25rem;min-height:17rem;display:flex;flex-direction:column;justify-content:space-between;transition:transform .5s var(--out),border-color .3s var(--ease)}
.track li:hover{transform:translateY(-4px);border-color:var(--line-2)}
.track .num{font-size:3.4rem;line-height:1}
.track h3{font-size:1.5rem;margin:1.5rem 0 .5rem}
.track p{margin:0;color:var(--muted)}

/* ---------- Garanties ---------- */
.trust{padding:clamp(4.5rem,11vh,8rem) 0;background:var(--bone)}
.plaques{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.plaque{background:var(--ivory);padding:2rem 1.6rem;display:flex;flex-direction:column;gap:.6rem;min-height:15rem}
.plaque .big{font:400 clamp(1.9rem,3vw,2.4rem)/1.05 var(--serif)}
.plaque .s{color:var(--muted);font-size:.95rem;line-height:1.5}
.plaque .links{margin-top:auto;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.92rem}
.plaque a{font-weight:600}
.stars{display:inline-flex;gap:2px;color:var(--bronze)}
.stars svg{width:1rem;height:1rem}
/* Logo API: caixa blanca = zona de protecció (x ≈ alçada de la «a», ~30 px); mida ≥ 15 mm (57 px) i mai per sobre de la mida nativa (129 px) */
.api-logo{display:inline-block;background:#fff;padding:30px 32px;border:1px solid var(--line);align-self:flex-start;line-height:0;transition:border-color .25s var(--ease)}
.api-logo:hover{border-color:var(--ink)}
.api-logo img{width:110px;height:auto}

/* ---------- Banda immobiliària ---------- */
.imm-band{padding:clamp(3rem,8vh,5rem) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.imm-band .wrap{display:grid;gap:1.5rem;align-items:center}
.imm-band h2{font-size:clamp(1.8rem,3.4vw,2.8rem);margin:0}
.imm-band p{margin:.75rem 0 0;color:var(--muted);max-width:38em}

/* ---------- Contacte ---------- */
.contact{display:grid;gap:clamp(1.5rem,4vw,3rem)}
.form{background:var(--paper);border:1px solid var(--line);padding:clamp(1.5rem,4vw,2.75rem)}
.form h2,.form h3{font-size:clamp(1.6rem,2.6vw,2.1rem)}
.fgrid{display:grid;gap:1.15rem 1.25rem;margin-top:1.5rem}
.field{display:grid;gap:.4rem}
.field label{font-size:.88rem;font-weight:600;color:var(--ink-2)}
.req{color:var(--bronze)}
input,select,textarea{width:100%;font:400 1rem/1.4 var(--sans);color:var(--ink);background:var(--ivory);border:1px solid var(--line-2);border-radius:0;padding:.85rem .95rem;min-height:3.1rem;transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background-color .2s var(--ease)}
textarea{min-height:8.5rem;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:var(--greige)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(36,32,28,.12);background:#fff}
[aria-invalid="true"]{border-color:#9A3B2B}
.err{min-height:0;font-size:.85rem;color:#8E3324}
.check{display:flex!important;gap:.75rem;align-items:flex-start;font-weight:400!important}
.check input{width:1.2rem;height:1.2rem;min-height:0;margin:.2rem 0 0;accent-color:var(--ink);flex:none}
.legal-box{margin:1.6rem 0;padding:1.1rem 1.2rem;border-left:2px solid var(--stone);background:var(--ivory);font-size:.83rem;color:var(--muted)}
.legal-box dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:.6rem 0 0}
.legal-box dt{font-weight:600;color:var(--ink-2)}
.legal-box dd{margin:0}
.form-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.form-status{margin:1rem 0 0;font-weight:600}
.form-status:empty{display:none}
.form-status[data-kind="err"]{color:#8E3324}
.info{display:grid;align-content:start;border-top:1px solid var(--line)}
.row{display:flex;gap:1rem;align-items:center;padding:1.15rem .25rem;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .35s var(--out),background-color .25s var(--ease)}
.row:hover{padding-left:.75rem;background:rgba(255,255,255,.4)}
.row .ic{flex:none;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center}
.row .ic svg{width:1.05rem;height:1.05rem}
.row small{display:block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.row strong{font-weight:600}

/* ---------- Pàgines de servei ---------- */
.page-hero{padding:clamp(2rem,6vh,4rem) 0 clamp(3rem,8vh,5rem)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0 0 2rem;padding:0;font-size:.82rem;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:var(--stone)}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.svc-hero{display:grid;gap:2.5rem;align-items:center}
.svc-hero h1{font-size:clamp(2.4rem,6vw,4.8rem)}
.plate{position:relative;display:grid;place-items:center;padding:clamp(1.5rem,4vw,3rem);background:var(--bone);min-height:22rem}
.plate .bg-num{position:absolute;left:.12em;top:.02em;font:400 clamp(8rem,18vw,15rem)/1 var(--serif);color:var(--sand);pointer-events:none;user-select:none}
.plate .film{position:relative;z-index:1;width:min(100%,420px);aspect-ratio:3/4;box-shadow:0 30px 60px -30px rgba(36,32,28,.45)}
.plate figcaption{position:relative;z-index:1;margin-top:1rem;font:600 .7rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.inc{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);counter-reset:inc}
.inc li{display:grid;grid-template-columns:3.5rem 1fr;gap:.25rem 1rem;padding:1.6rem 0;border-bottom:1px solid var(--line)}
.inc .num{font-size:1.3rem;grid-row:span 2}
.inc h3{font-size:clamp(1.3rem,2vw,1.65rem);margin:0}
.inc p{margin:.3rem 0 0;color:var(--muted)}
.svc-body{display:grid;gap:3rem}
.strip{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.strip .film{aspect-ratio:3/4}
.strip .film.wide{grid-column:1/-1;aspect-ratio:16/9}
/* Comparador esbós / 3D */
.cmp{--pos:50%;position:relative;max-width:640px;margin:0 auto;aspect-ratio:16/9;overflow:hidden;background:var(--sand);touch-action:pan-y}
.cmp .layer{position:absolute;inset:0}
.cmp .layer img{width:100%;height:100%;object-fit:cover}
.cmp .sketch img{filter:grayscale(1) contrast(1.6) brightness(1.15) sepia(.2)}
.cmp .sketch{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.cmp .handle{position:absolute;top:0;bottom:0;left:var(--pos);width:1px;background:var(--paper);z-index:3;pointer-events:none}
.cmp .handle::after{content:"";position:absolute;top:50%;left:50%;width:2.75rem;height:2.75rem;margin:-1.375rem 0 0 -1.375rem;border-radius:50%;background:var(--paper);box-shadow:0 6px 18px rgba(36,32,28,.3)}
.cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:4;margin:0;min-height:0}
.cmp input:focus-visible+.handle::after{outline:2px solid var(--ink);outline-offset:3px}
.cmp .tag{position:absolute;bottom:.75rem;z-index:3;font:600 .68rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;background:rgba(251,249,245,.9);padding:.45rem .6rem}
.cmp .tag.a{left:.75rem}.cmp .tag.b{right:.75rem}
html:not(.js) .cmp .sketch,html:not(.js) .cmp .handle,html:not(.js) .cmp input{display:none}
.cmp-cap{text-align:center;color:var(--muted);font-size:.9rem;margin-top:1rem}
/* FAQ */
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.4rem 0;cursor:pointer;font:400 clamp(1.15rem,2vw,1.4rem)/1.35 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.pm{position:relative;flex:none;width:1rem;height:1rem}
.pm::before,.pm::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:var(--ink);transition:transform .4s var(--out)}
.pm::after{transform:rotate(90deg)}
.faq details[open] .pm::after{transform:rotate(0)}
.faq .ans{padding:0 0 1.5rem;color:var(--ink-2);max-width:46em}
.faq .ans p{margin:0}
@supports (interpolate-size:allow-keywords){
  :root{interpolate-size:allow-keywords}
  .faq details::details-content{block-size:0;overflow:hidden;transition:block-size .45s var(--out),content-visibility .45s allow-discrete}
  .faq details[open]::details-content{block-size:auto}
}
/* Següent capítol */
.next-ch{display:grid;border-top:1px solid var(--line)}
.next-ch a{display:grid;grid-template-columns:3.5rem 1fr auto;align-items:center;gap:1rem;padding:1.6rem 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .45s var(--out)}
.next-ch a:hover{padding-left:.8rem}
.next-ch .t{font:400 clamp(1.5rem,3.4vw,2.6rem)/1.1 var(--serif)}
.next-ch .d{display:block;font:400 .92rem/1.5 var(--sans);color:var(--muted);margin-top:.35rem}
.next-ch svg{width:1.4rem;height:1.4rem;transition:transform .45s var(--out)}
.next-ch a:hover svg{transform:translateX(6px)}
/* Legals */
.prose{max-width:46rem}
.prose h2{font-size:clamp(1.4rem,2.4vw,1.85rem);margin:2.6rem 0 .8rem;scroll-margin-top:6rem}
.prose ul{padding-left:1.1em}
.prose li{margin:.35rem 0}
.prose table{width:100%;border-collapse:collapse;font-size:.92rem;margin:1rem 0}
.prose th,.prose td{border:1px solid var(--line);padding:.6rem .75rem;text-align:left}
.prose th{background:var(--bone)}
.updated{color:var(--muted);font-size:.9rem}
.toc{background:var(--bone);padding:1.25rem 1.5rem;margin:1.5rem 0 1rem}
.toc ol{margin:0;columns:2 16rem;column-gap:2rem}
.toc li{margin:.2rem 0;break-inside:avoid}
.sitemap-cols{display:grid;gap:2.5rem}
.sitemap-cols h2{font-size:1.4rem}
.sitemap-cols ul{list-style:none;padding:0;border-top:1px solid var(--line)}
.sitemap-cols li{border-bottom:1px solid var(--line)}
.sitemap-cols a{display:block;padding:.75rem 0;text-decoration:none}
.sitemap-cols a:hover{text-decoration:underline}

/* ---------- Peu ---------- */
.site-footer{background:var(--sand);padding:clamp(3.5rem,8vh,5.5rem) 0 2rem;font-size:.94rem;color:var(--ink-2)}
.ft{display:grid;gap:2.5rem}
.ft h2{font:600 .72rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 1rem}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.ft a{text-decoration:none}
.ft a:hover{text-decoration:underline}
.ft li a{display:inline-flex;gap:.6rem;align-items:center}
.ft li svg{width:1rem;height:1rem;flex:none;color:var(--muted)}
.ft .about{max-width:22rem;margin:1.25rem 0 1.5rem;color:var(--muted)}
.member{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1rem}
.member .api-logo{padding:24px 26px}.member .api-logo img{width:90px}
.member p{margin:0;font-size:.86rem;line-height:1.45}
.social{display:flex;gap:.5rem;margin-top:1.25rem}
.social a{width:2.6rem;height:2.6rem;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;transition:border-color .2s var(--ease),transform .3s var(--out)}
.social a:hover{border-color:var(--ink);transform:translateY(-2px)}
.social svg{width:1.05rem;height:1.05rem}
.legal-line{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line-2);font-size:.82rem;color:var(--muted)}

/* ---------- Responsiu ---------- */
@media (max-width:639px){
  .imm-pill{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;border-radius:1.1rem;padding:.85rem .85rem .85rem 1rem}
}
@media (min-width:640px){
  .hero-frame .film{aspect-ratio:16/9}
  .values{grid-template-columns:repeat(2,1fr);column-gap:2.5rem}
  .plaques{grid-template-columns:repeat(2,1fr)}
  .fgrid{grid-template-columns:1fr 1fr}
  .field.full{grid-column:1/-1}
  .ft{grid-template-columns:1.4fr 1fr 1fr}
  .sitemap-cols{grid-template-columns:repeat(3,1fr)}
  .strip{grid-template-columns:repeat(3,1fr)}
  .strip .film.wide{grid-column:auto;aspect-ratio:3/4}
}
@media (min-width:960px){
  :root{--hdr:5rem}
  .nav-desk{display:block}
  .menu-btn{display:none}
  html:not(.js) .mobile-nav,.js .mobile-nav{display:none}
  .hdr-cta{display:inline-flex}
  .hero-top{grid-template-columns:7fr 5fr;gap:4rem}
  .hero-frame .film{aspect-ratio:21/9}
  .values{grid-template-columns:repeat(4,1fr);column-gap:2rem}
  .values li{grid-template-columns:1fr;border-bottom:0;padding:2rem 0 0}
  .values .num{grid-row:auto;margin-bottom:1.5rem}
  .plaques{grid-template-columns:repeat(4,1fr)}
  .track{grid-auto-columns:calc((min(100vw,var(--wrap)) - 2 * var(--g) - 2rem) / 2.6)}
  .contact{grid-template-columns:1.5fr 1fr}
  .svc-hero{grid-template-columns:1.15fr .85fr;gap:4rem}
  .svc-body{grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
  .imm-band .wrap{grid-template-columns:1fr auto}
  .girona .wrap{grid-template-columns:1fr}.girona p{justify-self:end;margin-top:-1rem}
  .ft{grid-template-columns:1.6fr 1fr 1fr 1fr}
  /* Escenari fix (sticky) dels capítols */
  .js .ch-grid{grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,6rem)}
  .js .ch-stage{display:block;position:sticky;top:calc(var(--hdr) + 2vh);height:calc(100vh - var(--hdr) - 4vh);min-height:32rem}
  .js .ch-media{display:none}
  .js .ch{min-height:82vh;display:flex;flex-direction:column;justify-content:center;border-top:0;padding:4rem 0}
  .js .ch:first-child{min-height:70vh}
  .ch-stage .plate{position:absolute;inset:0;background:var(--ivory);clip-path:inset(100% 0 0 0);transition:clip-path 1s var(--ease-io)}
  .ch-stage .plate .film{width:min(78%,430px);transform:scale(1.06);transition:transform 1.4s var(--out)}
  .ch-stage .plate.is-active{clip-path:inset(0 0 0 0);z-index:2}
  .ch-stage .plate.was-active{clip-path:inset(0 0 0 0);z-index:1}
  .ch-stage .plate.is-active .film{transform:none}
  .ch-stage .plate .sketch{position:absolute;inset:0;z-index:1;clip-path:inset(0 0 0 0);transition:clip-path 1.4s var(--ease-io) .5s}
  .ch-stage .plate .sketch img{filter:grayscale(1) contrast(1.6) brightness(1.15) sepia(.2)}
  .ch-stage .plate.is-active .sketch{clip-path:inset(0 0 0 100%)}
  .rail{position:absolute;left:0;bottom:-1.75rem;z-index:3;display:flex;gap:1.25rem;list-style:none;margin:0;padding:0;font:600 .7rem/1 var(--sans);letter-spacing:.16em;color:var(--greige)}
  .rail li{position:relative;padding-top:.7rem;transition:color .3s var(--ease)}
  .rail li::before{content:"";position:absolute;left:0;top:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--out)}
  .rail li.is-active{color:var(--ink)}
  .rail li.is-active::before{transform:scaleX(1)}
}
@media (min-width:1280px){
  .track{grid-auto-columns:calc((var(--wrap) - 2 * var(--g) - 3rem) / 3.3)}
}
@media (hover:none){.track li:hover{transform:none}}

/* =====================================================================
   v4 — escenes fotogràfiques a pantalla completa, text dins la foto,
   profunditat 3D en fer scroll. La paleta «cru» fa de marc i tipografia.
   ===================================================================== */
:root{--paper-on:#FBF8F2;--scrim:18,14,10}
/* Capçalera fixa: transparent sobre foto (logo blanc original), sòlida sobre fons clar */
.site-header{position:fixed;left:0;right:0;top:0;transition:background-color .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease)}
.brand{position:relative}
.brand .logo-light{position:absolute;inset:0;opacity:0;transition:opacity .35s var(--ease)}
.brand .logo-dark{transition:opacity .35s var(--ease)}
.site-header.on-photo:not(.menu-on){background:linear-gradient(180deg,rgba(var(--scrim),.5),rgba(var(--scrim),0));-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent;color:var(--paper-on)}
.site-header.on-photo:not(.menu-on) .logo-light{opacity:1}
.site-header.on-photo:not(.menu-on) .logo-dark{opacity:0}
.site-header.on-photo:not(.menu-on) .nl{color:var(--paper-on)}
.site-header.on-photo:not(.menu-on) .nl::after{background:var(--paper-on)}
.site-header.on-photo:not(.menu-on) .nl-imm{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.08)}
.site-header.on-photo:not(.menu-on) .nl-imm .dot{background:#E9D4B2}
.site-header.on-photo:not(.menu-on) .lang summary,.site-header.on-photo:not(.menu-on) .menu-btn{border-color:rgba(255,255,255,.55);color:var(--paper-on)}
.site-header.on-photo:not(.menu-on) .hdr-cta{background:var(--paper-on);color:var(--ink);border-color:var(--paper-on)}
.lang ul{color:var(--ink)}
html:not(.js) .site-header{position:sticky}

/* ---------- Escena base ---------- */
.scene{position:relative;min-height:100vh;min-height:100svh;display:grid;align-items:end;overflow:hidden;isolation:isolate;color:var(--paper-on);background:#2B241D}
.scene .bg{position:absolute;inset:-12% 0;z-index:-3;will-change:transform}
.scene .bg picture,.scene .bg img{width:100%;height:100%;object-fit:cover}
.scene .bg img{filter:sepia(.14) saturate(.86) contrast(1.05) brightness(.98)}
/* Scrim: assegura contrast AA del text clar sobre qualsevol foto */
.scene::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(180deg,rgba(var(--scrim),.42) 0%,rgba(var(--scrim),.08) 26%,rgba(var(--scrim),.22) 48%,rgba(var(--scrim),.78) 78%,rgba(var(--scrim),.9) 100%),radial-gradient(120% 90% at 50% 40%,transparent 50%,rgba(var(--scrim),.35) 100%)}
.scene::after{content:"";position:absolute;inset:-50%;z-index:-1;pointer-events:none;background-image:var(--grain);background-size:160px;opacity:.12;mix-blend-mode:overlay}
.scene-in{position:relative;z-index:1;width:100%;padding-top:calc(var(--hdr) + 2rem);padding-bottom:clamp(2.5rem,9vh,6rem)}
.scene h1,.scene h2,.scene h3,.scene .pull{color:var(--paper-on);text-shadow:0 2px 28px rgba(0,0,0,.28)}
.scene h1 em,.scene h2 em,.scene h3 em,.scene .pull em{color:#F1E4CF}
.scene p,.scene li{color:rgba(251,248,242,.94)}
.scene a{text-decoration-color:rgba(255,255,255,.5)}
.eyebrow.light,.ch-kicker.light{color:#EADCC6}
.eyebrow.light::before{background:#D9BF97}
.display{font-size:clamp(2.9rem,8.6vw,8.2rem);line-height:.98;letter-spacing:-.028em;max-width:12em;margin:0 0 .35em}
.scene .lead{color:rgba(251,248,242,.95);max-width:34em}
.scene .crumbs ol{color:rgba(251,248,242,.85)}
.scene .crumbs li+li::before{color:rgba(255,255,255,.5)}
/* Botons sobre foto */
.btn-light{background:var(--paper-on);color:var(--ink);border-color:var(--paper-on)}
.btn-light:hover{background:#fff}
.btn-glass{background:rgba(255,255,255,.1);color:var(--paper-on);border-color:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn-glass:hover{background:rgba(255,255,255,.2);border-color:#fff}
.glass{background:rgba(var(--scrim),.46);border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(16px) saturate(1.1);backdrop-filter:blur(16px) saturate(1.1);border-radius:4px}

/* ---------- Hero ---------- */
.hero4 .scene-in{padding-bottom:clamp(4.5rem,12vh,8rem)}
.hero4 .hero-row{display:grid;gap:1.75rem;align-items:end}
.hero4 .lead{margin:0}
.hero4 .imm-pill{background:rgba(var(--scrim),.38);border-color:rgba(255,255,255,.4);color:var(--paper-on);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.hero4 .imm-pill .q{color:rgba(251,248,242,.9)}
.hero4 .imm-pill .go{background:var(--paper-on);color:var(--ink)}
.hero4 .imm-pill:hover{border-color:#fff}
.hero4 .hero-in{transform-origin:50% 100%;will-change:transform,opacity}
.scroll-cue{position:absolute;left:50%;bottom:1.25rem;z-index:2;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;font:600 .66rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(251,248,242,.85);text-decoration:none}
.scroll-cue i{display:block;width:1px;height:2.6rem;background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,0));transform-origin:top;animation:cue 2.4s var(--ease-io) infinite}
@keyframes cue{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.kb-scene .bg img{animation:kenburns 30s ease-in-out infinite alternate}

/* ---------- Manifest amb capes en profunditat ---------- */
.manifesto-sec{position:relative;overflow:hidden;padding:clamp(7rem,22vh,14rem) 0;background:var(--ivory)}
.manifesto-sec .wrap{position:relative;z-index:2}
.manifesto-sec .layer{position:absolute;z-index:1;will-change:transform}
.manifesto-sec .layer .film{aspect-ratio:4/5;box-shadow:0 40px 80px -40px rgba(36,32,28,.55)}
.manifesto-sec .f1{width:clamp(110px,16vw,240px);left:3%;top:8%}
.manifesto-sec .f2{width:clamp(130px,19vw,290px);right:3%;top:30%}
.manifesto-sec .f3{width:clamp(100px,13vw,200px);left:16%;bottom:4%}
.manifesto-sec .f1 .film{transform:rotate(-4deg)}.manifesto-sec .f2 .film{transform:rotate(3deg)}.manifesto-sec .f3 .film{transform:rotate(2deg)}
.manifesto{position:relative;background:radial-gradient(closest-side,rgba(246,242,234,.92),rgba(246,242,234,.75) 70%,rgba(246,242,234,0));padding:1.5rem}

/* ---------- Capítols apilats (sticky) amb profunditat ---------- */
.stack{background:var(--ivory)}
.stack-head{padding-top:clamp(4rem,10vh,7rem);padding-bottom:clamp(2rem,6vh,4rem)}
.ch-scene{position:sticky;top:0;height:100vh;height:100svh;min-height:34rem;transform-origin:50% 0;will-change:transform}
.ch-scene .scene-in{display:flex;align-items:flex-end;height:100%}
.ch-card{max-width:34rem;padding:clamp(1.4rem,3.5vw,2.4rem)}
.ch-card h3{font-size:clamp(2rem,4.6vw,3.6rem);margin:.2rem 0 .5rem}
.ch-card p{margin:0 0 1rem}
.ch-card ul{list-style:none;padding:0;margin:0 0 1.5rem}
.ch-card li{display:flex;gap:.75rem;align-items:baseline;padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.16);font-size:.96rem}
.ch-card li::before{content:"";flex:none;width:.38rem;height:.38rem;border:1px solid #E2C9A2;border-radius:50%;transform:translateY(-.1rem)}
.ch-scene .ch-kicker{color:#EADCC6;margin-bottom:.6rem}
.ch-scene .ch-kicker .num{color:#E2C9A2}
.ch-ext{color:#E2C9A2}
.ch-index{position:absolute;right:var(--g);top:calc(var(--hdr) + 1.5rem);z-index:1;font:400 clamp(1rem,1.6vw,1.3rem)/1 var(--serif);color:rgba(251,248,242,.8);letter-spacing:.06em}
.ch-scene .layer{display:none}
.ch-scene .shade{position:absolute;inset:0;z-index:0;background:#120E0A;opacity:0;pointer-events:none}

/* ---------- Galeria horitzontal Girona · Empordà (3D) ---------- */
.hgal{position:relative;background:var(--bone);padding:clamp(4rem,10vh,7rem) 0}
.hgal-head{display:grid;gap:1rem;align-items:end}
.girona-title{font-size:clamp(3.4rem,11vw,9rem);line-height:.9;letter-spacing:-.035em;margin:0}
.girona-title span{color:var(--bronze);font-style:italic}
.hgal-head p{max-width:30em;color:var(--ink-2);margin:0}
.hgal-track{display:flex;gap:clamp(1rem,2vw,1.75rem);list-style:none;margin:clamp(2rem,5vh,3rem) 0 0;padding:0 var(--g) 1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--g);overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--stone) transparent;perspective:1400px}
.hcard{flex:none;width:min(78vw,26rem);scroll-snap-align:start;transform-style:preserve-3d}
.hcard figure{margin:0;transform:rotateY(var(--ry,0deg)) translateZ(var(--tz,0px));transition:transform .2s linear;transform-origin:50% 50%}
.hcard .film{aspect-ratio:3/4;border-radius:3px;box-shadow:0 40px 70px -40px rgba(36,32,28,.6)}
.hcard figcaption{display:flex;gap:.8rem;align-items:baseline;margin-top:.9rem;font:600 .74rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.hcard figcaption .num{font:400 1.1rem/1 var(--serif);letter-spacing:0}
/* Escriptori amb JS: secció fixada i desplaçament horitzontal lligat a l'scroll */
.hgal.is-pinned{padding:0;height:calc(100vh + var(--travel,2000px))}
.hgal.is-pinned .hgal-pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding-top:var(--hdr)}
.hgal.is-pinned .hgal-track{overflow:visible;scroll-snap-type:none;will-change:transform;padding-bottom:0}
.hgal.is-pinned .hcard{width:auto}
.hgal.is-pinned .hcard .film{height:min(56vh,600px);width:auto;aspect-ratio:3/4}

/* ---------- Principis sobre foto ---------- */
.values-scene .scene-in{padding-top:calc(var(--hdr) + 4rem)}
.values-scene h2{max-width:16em}
.glass-grid{display:grid;gap:1rem;list-style:none;margin:2rem 0 0;padding:0;perspective:1000px}
.glass-grid li{padding:1.5rem 1.4rem 1.6rem}
.glass-grid .num{display:block;font-size:1.5rem;color:#E2C9A2;margin-bottom:1.6rem}
.glass-grid h3{font-size:1.45rem;margin:0 0 .45rem}
.glass-grid p{margin:0;font-size:.96rem}

/* ---------- Inclinació 3D (tilt) ---------- */
.tilt,.tilt-soft,.js .tilt.reveal,.js .tilt.reveal.is-in{--rx:0deg;--ry:0deg;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s var(--out);transform-style:preserve-3d}
.tilt.is-tilting,.tilt-soft.is-tilting,.js .tilt.reveal.is-in.is-tilting{transition:transform .08s linear}

/* ---------- Banda immobiliària ---------- */
.imm-scene{min-height:88vh;min-height:88svh}
.imm-box{max-width:40rem}
.imm-box h2{font-size:clamp(2.2rem,5vw,4rem)}
.imm-box p{max-width:34em}

/* ---------- Pàgines interiors ---------- */
.page-scene .scene-in{padding-bottom:clamp(3rem,10vh,6rem)}
.page-scene .crumbs ol{margin-bottom:1.5rem}
.page-scene.short{min-height:62vh;min-height:62svh}
.page-scene .display{font-size:clamp(2.6rem,7vw,6.2rem)}
.page-scene .lead{margin-bottom:1.75rem}
.side-photo .film{aspect-ratio:4/5;box-shadow:0 40px 80px -40px rgba(36,32,28,.5)}
.quote-scene{min-height:90vh;min-height:90svh;align-items:center}
.quote-scene .scene-in{text-align:center}
.pull{font:400 clamp(2.4rem,7vw,6.4rem)/1 var(--serif);letter-spacing:-.025em;margin:0 auto .5em;max-width:12em}
.pull-sub{max-width:34em;margin:0 auto;font-size:clamp(1.05rem,1.6vw,1.25rem)}
.next-cards{display:grid;gap:1rem;perspective:1200px}
.ncard{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:.4rem;min-height:22rem;padding:1.6rem;overflow:hidden;isolation:isolate;color:var(--paper-on);text-decoration:none;border-radius:3px;background:#2B241D}
.ncard .bg{position:absolute;inset:0;z-index:-2}
.ncard .bg picture,.ncard .bg img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--out)}
.ncard .bg img{filter:sepia(.14) saturate(.86) contrast(1.05)}
.ncard::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(var(--scrim),.1) 20%,rgba(var(--scrim),.86) 100%)}
.ncard:hover .bg img{transform:scale(1.06)}
.ncard .num{color:#E2C9A2;font-size:1.3rem}
.ncard .t{font:400 clamp(1.7rem,2.6vw,2.3rem)/1.05 var(--serif)}
.ncard .d{font-size:.92rem;color:rgba(251,248,242,.92);max-width:28em}
.cmp .layer-c{position:absolute;inset:0}
.cmp .layer-c img{width:100%;height:100%;object-fit:cover}
.cmp .sketch{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.cmp .sketch img{filter:grayscale(1) contrast(1.6) brightness(1.15) sepia(.2)}
.contact-sec{background:var(--ivory)}
.credits{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--line)}
.credits h2{font-size:1.4rem}
.credits ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-size:.92rem}
.legal-line a{color:inherit}

@media (min-width:640px){
  .glass-grid{grid-template-columns:repeat(2,1fr)}
  .next-cards{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:960px){
  .hero4 .hero-row{grid-template-columns:1.1fr .9fr;gap:4rem}
  .ch-scene .layer{display:block;position:absolute;right:clamp(2rem,8vw,9rem);top:22%;width:clamp(220px,22vw,340px);z-index:0;will-change:transform}
  .ch-scene .layer .film{aspect-ratio:4/5;box-shadow:0 50px 90px -30px rgba(0,0,0,.6);border-radius:3px;transform:rotate(2.5deg)}
  .glass-grid{grid-template-columns:repeat(4,1fr)}
  .hgal-head{grid-template-columns:auto 1fr;gap:3rem}
  .hgal-head p{justify-self:end}
  .next-cards{grid-template-columns:repeat(4,1fr)}
  .ncard{min-height:30rem}
  .svc-body{align-items:center}
}
@media (max-width:959px){
  .scene-in{padding-top:calc(var(--hdr) + 1.25rem)}
  .ch-card{padding:1.25rem 1.2rem}
  .ch-card ul{display:none}
  .ch-index{top:calc(var(--hdr) + .75rem)}
}
@media (max-height:700px) and (min-width:960px){.ch-card ul{display:none}}
/* Moviment reduït (v4): tot estàtic, sense paral·laxi, sense fixar la galeria */
@media (prefers-reduced-motion:reduce){
  .scene .bg,.layer,.hero-in,.ch-scene,.hcard figure,.tilt,.tilt-soft{transform:none!important}
  .ch-scene .shade{opacity:0!important}
  .scroll-cue i{animation:none}
}
/* v4 — ajustos */
.film picture{height:100%}
.hgal-head{grid-template-columns:1fr}
@media (min-width:960px){.hgal-head{grid-template-columns:1fr minmax(18rem,28rem)}}
#cap-ass .bg img{object-position:64% 62%}
#cap-ref .bg img{object-position:50% 70%}
#cap-arq .bg img{object-position:40% 50%}
/* v4 — contrast AA verificat: scrim més uniforme on hi ha text */
.scene::before{background:linear-gradient(180deg,rgba(var(--scrim),.54) 0%,rgba(var(--scrim),.46) 32%,rgba(var(--scrim),.6) 58%,rgba(var(--scrim),.84) 82%,rgba(var(--scrim),.92) 100%),radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(var(--scrim),.3) 100%)}
.glass{background:rgba(var(--scrim),.6)}
.ch-index{background:rgba(var(--scrim),.55);padding:.45rem .7rem;border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ncard::before{background:linear-gradient(180deg,rgba(var(--scrim),.38) 0%,rgba(var(--scrim),.62) 45%,rgba(var(--scrim),.9) 100%)}
.hero4 .imm-pill{background:rgba(var(--scrim),.6)}
.scene .num,.ncard .num,.eyebrow.light,.ch-kicker.light,.ch-scene .ch-kicker,.ch-scene .ch-kicker .num,.glass-grid .num,.scene .crumbs ol,.scene .crumbs a{color:var(--paper-on)}
.ch-index{background:rgba(var(--scrim),.72)}
.scene .eyebrow.light,.scene .ch-kicker{text-shadow:0 1px 12px rgba(0,0,0,.45)}
/* Etiquetes petites sobre foto: xip translúcid perquè sempre passin AA */
.scene .crumbs ol,.scene .eyebrow.light,.scene .ch-kicker.light{background:rgba(var(--scrim),.5);padding:.38rem .8rem;border-radius:999px;width:fit-content;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.scene .eyebrow.light::before{width:1.25rem}
.ch-index{background:rgba(var(--scrim),.86)}

/* =====================================================================
   v5 — fotos més lluminoses (degradats locals darrere el text), capítols
   en seqüència neta, pàgines interiors amb el mateix espectacle, PWA.
   ===================================================================== */
:root{--r-tile:6px}
/* Àrees segures (iPhone) */
.site-header{padding-top:env(safe-area-inset-top)}
.site-footer{padding-bottom:calc(2rem + env(safe-area-inset-bottom))}
.wrap{padding-left:max(var(--g),env(safe-area-inset-left));padding-right:max(var(--g),env(safe-area-inset-right))}
.ft li a,.crumbs a,.legal-line a{display:inline-block;padding:.3rem 0}

/* ---------- Fotos més clares: només el hero manté el seu tractament ---------- */
.scene:not(.hero4)::before{background:linear-gradient(180deg,rgba(var(--scrim),.38) 0%,rgba(var(--scrim),.04) 20%,rgba(var(--scrim),0) 50%,rgba(var(--scrim),.3) 100%)}
.scene:not(.hero4) .bg img{filter:sepia(.08) saturate(.96) contrast(1.03) brightness(1.04)}
/* Degradat local darrere de cada bloc de text (en lloc d'enfosquir tota la foto) */
.txt{position:relative;isolation:isolate;width:fit-content;max-width:100%}
.scene .txt::before{content:"";position:absolute;z-index:-1;inset:-22% -18% -26% -14%;pointer-events:none;background:radial-gradient(closest-side,rgba(var(--scrim),.72),rgba(var(--scrim),.56) 55%,rgba(var(--scrim),0) 100%);filter:blur(6px)}
.page-scene .txt{max-width:min(100%,58rem)}
.imm-box.txt{max-width:40rem}
.scene .crumbs ol,.scene .eyebrow.light,.scene .ch-kicker.light{background:rgba(var(--scrim),.42)}
.glass{background:rgba(var(--scrim),.5)}

/* ---------- Seqüència de capítols (substitució neta, sense text sobre text) ---------- */
.seq{background:var(--ivory)}
.seq-scene{position:relative;min-height:100vh;min-height:100svh;display:grid;align-items:end;overflow:hidden;isolation:isolate;color:var(--paper-on);background:#2B241D}
.seq-media{position:absolute;inset:0;z-index:-1}
.seq-img{position:absolute;inset:0;will-change:transform}
.seq-img picture,.seq-img img{width:100%;height:100%;object-fit:cover}
.seq-img img{filter:sepia(.06) saturate(.98) contrast(1.03) brightness(1.05)}
.seq-media::before{content:"";position:absolute;inset:0;z-index:1;background:#120E0A;opacity:var(--dim,0);pointer-events:none}
.seq-media::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(var(--scrim),.36) 0%,rgba(var(--scrim),0) 22%,rgba(var(--scrim),0) 55%,rgba(var(--scrim),.38) 100%)}
.seq-in{position:relative;z-index:2;width:100%;padding-top:calc(var(--hdr) + 2rem);padding-bottom:clamp(5.5rem,13vh,8rem)}
.seq-text{max-width:34rem;padding:clamp(1.4rem,3.4vw,2.3rem)}
.seq-text h3{font-size:clamp(2rem,4.6vw,3.6rem);margin:.2rem 0 .5rem;color:var(--paper-on)}
.seq-text h3 em{color:#F1E4CF}
.seq-text p{margin:0 0 1rem;color:rgba(251,248,242,.95)}
.seq-text ul{list-style:none;padding:0;margin:0 0 1.5rem}
.seq-text li{display:flex;gap:.75rem;align-items:baseline;padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.16);font-size:.96rem;color:rgba(251,248,242,.95)}
.seq-text li::before{content:"";flex:none;width:.38rem;height:.38rem;border:1px solid #E2C9A2;border-radius:50%;transform:translateY(-.1rem)}
.seq-text .ch-kicker,.seq-text .ch-kicker .num{color:var(--paper-on)}
.seq-layer{display:none}
.seq-rail{display:none}
/* Amb JS i sense moviment reduït: escena fixada i transicions lligades a l'scroll */
.seq.on .seq-track{height:calc((var(--n,4) + .5) * 100vh);height:calc((var(--n,4) + .5) * 100svh)}
.seq.on .seq-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.seq.on .seq-scene{position:absolute;inset:0;min-height:0}
.seq.on .seq-scene+.seq-scene .seq-media{clip-path:inset(var(--clip,100%) 0 0 0)}
.seq.on .seq-scene+.seq-scene.unveil .seq-media{clip-path:circle(var(--r,0%) at 50% 58%)}
.seq.on .seq-img{transform:scale(var(--s,1.08))}
.seq.on .seq-in{opacity:var(--o,0);transform:translate3d(0,var(--y,24px),0)}
.seq.on .seq-scene:not(.is-on) .seq-in{visibility:hidden}
.seq.on .seq-rail{display:flex;position:absolute;z-index:5;left:max(var(--g),env(safe-area-inset-left));right:max(var(--g),env(safe-area-inset-right));bottom:calc(1.1rem + env(safe-area-inset-bottom));gap:.5rem;list-style:none;margin:0;padding:0 0 .7rem;color:rgba(251,248,242,.7);font:600 .68rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.seq-rail li{flex:1;display:flex;gap:.5rem;align-items:baseline;transition:color .3s var(--ease)}
.seq-rail li.is-on{color:var(--paper-on)}
.seq-rail b{font-weight:600;display:none}
.seq-bar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:rgba(255,255,255,.25)}
.seq-bar::after{content:"";position:absolute;inset:0;background:var(--paper-on);transform:scaleX(var(--bp,0));transform-origin:left}
@media (min-width:960px){
  .seq-layer{display:block;position:absolute;right:clamp(2rem,8vw,9rem);top:22%;width:clamp(220px,21vw,330px);z-index:1}
  .seq-layer .film{aspect-ratio:4/5;box-shadow:0 50px 90px -30px rgba(0,0,0,.55);border-radius:3px;transform:rotate(2.5deg)}
  .seq.on .seq-layer{transform:translate3d(0,var(--ly,40px),0);opacity:var(--o,0)}
  .seq-rail b{display:inline}
}
@media (max-width:959px){.seq-text{padding:1.2rem 1.15rem}.seq-text ul{display:none}}
@media (max-height:700px) and (min-width:960px){.seq-text ul{display:none}}

/* ---------- Rajoles (estil producte) ---------- */
.tiles-sec{padding:clamp(4.5rem,11vh,8rem) 0;background:var(--ivory)}
.tiles{display:grid;gap:1rem;list-style:none;margin:0;padding:0;perspective:1200px}
.tile{position:relative;min-height:24rem;border-radius:var(--r-tile);overflow:hidden;isolation:isolate;display:flex;align-items:flex-end;color:var(--paper-on);background:#2B241D}
.tile .bg{position:absolute;inset:0;z-index:-2}
.tile .bg picture,.tile .bg img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--out)}
.tile:hover .bg img{transform:scale(1.05)}
.tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(var(--scrim),0) 30%,rgba(var(--scrim),.55) 62%,rgba(var(--scrim),.86) 100%)}
.tile-txt{padding:1.6rem 1.5rem}
.tile .num{display:block;color:var(--paper-on);font-size:1.4rem;margin-bottom:.8rem}
.tile h3{color:var(--paper-on);font-size:clamp(1.5rem,2.4vw,2rem);margin:0 0 .4rem}
.tile p{color:rgba(251,248,242,.95);margin:0;font-size:.97rem}
/* Rajoles de contacte */
.ctiles{display:grid;gap:1rem;perspective:1200px}
.ctile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:.35rem;min-height:11rem;padding:1.5rem;border-radius:var(--r-tile);background:var(--paper);border:1px solid var(--line);text-decoration:none;overflow:hidden;isolation:isolate}
.ctile .ic{position:absolute;top:1.25rem;right:1.25rem;width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center}
.ctile .ic svg{width:1.1rem;height:1.1rem}
.ctile .k{font:600 .72rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ctile .v{font:400 clamp(1.4rem,2.4vw,1.9rem)/1.15 var(--serif)}
.ctile.c-big .v{font-size:clamp(2.2rem,5vw,3.6rem)}
.ctile.c-photo{color:var(--paper-on);min-height:16rem;border:0}
.ctile.c-photo .bg{position:absolute;inset:0;z-index:-2}
.ctile.c-photo .bg picture,.ctile.c-photo .bg img{width:100%;height:100%;object-fit:cover}
.ctile.c-photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(var(--scrim),.1) 25%,rgba(var(--scrim),.84) 100%)}
.ctile.c-photo .k{color:rgba(251,248,242,.92)}
.ctile.c-photo .ic{border-color:rgba(255,255,255,.6)}
.ctile.c-gold{background:var(--bone)}
@media (min-width:640px){.tiles{grid-template-columns:repeat(2,1fr)}.ctiles{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){.tiles{grid-template-columns:repeat(4,1fr)}.tile{min-height:32rem}.ctiles{grid-template-columns:repeat(3,1fr)}.ctile.c-wide{grid-column:span 2}.ctile.c-big{grid-row:span 2}}

/* ---------- Comptadors i anelles ---------- */
.gauges .plaque{position:relative}
.ring{width:4.2rem;height:4.2rem;transform:rotate(-90deg)}
.ring circle{fill:none;stroke:var(--sand);stroke-width:6}
.ring .arc{stroke:var(--bronze);stroke-linecap:round;stroke-dasharray:327;stroke-dashoffset:327;transition:stroke-dashoffset 1.6s var(--out) .2s}
.plaque.is-in .ring .arc,html:not(.js) .ring .arc{stroke-dashoffset:0}
.plaque .kick{font:600 .7rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.count{font-variant-numeric:tabular-nums}

/* ---------- Pàgina de servei ---------- */
.mask-sec{padding:clamp(5rem,14vh,9rem) 0 clamp(3rem,8vh,5rem);background:var(--ivory);overflow:hidden}
.mask-type{margin:0;font:400 clamp(3.2rem,12vw,11rem)/.92 var(--serif);letter-spacing:-.035em;color:var(--ink);text-wrap:balance}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .mask-type{color:transparent;background:linear-gradient(rgba(36,28,20,.38),rgba(36,28,20,.38)),var(--img) 50% calc(var(--mp,.5) * 100%)/cover no-repeat,var(--ink);-webkit-background-clip:text;background-clip:text}
}
.mask-sub{max-width:36em;margin:2rem 0 0 auto;font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--ink-2)}
/* Desplegament de la maqueta 3D */
.unveil-sec{background:var(--ivory)}
.unveil-pin{padding:0 var(--g) 3rem}
.unveil-fig{margin:0 auto;max-width:var(--wrap)}
.unveil-fig .film{aspect-ratio:16/10;border-radius:var(--r-tile)}
.unveil-fig figcaption{margin-top:1rem;font:600 .74rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:center}
.unveil-sec.on{height:220vh;height:220svh}
.unveil-sec.on .unveil-pin{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden}
.unveil-sec.on .unveil-fig{position:relative;max-width:none;width:calc(38vw + 62vw * var(--u,0));height:calc(44svh + 56svh * var(--u,0))}
.unveil-sec.on .unveil-fig .film{aspect-ratio:auto;height:100%;border-radius:calc(14px * (1 - var(--u,0)))}
.unveil-sec.on .unveil-fig figcaption{position:absolute;left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom));transform:translateX(-50%);margin:0;padding:.5rem .9rem;border-radius:999px;background:rgba(var(--scrim),.6);color:var(--paper-on);white-space:nowrap;opacity:var(--u,0)}
@media (max-width:959px){.unveil-sec.on .unveil-fig{width:calc(78vw + 22vw * var(--u,0));height:calc(40svh + 60svh * var(--u,0))}.unveil-sec.on .unveil-fig figcaption{white-space:normal;width:86vw;text-align:center}}
/* Escena fixada partida: la foto canvia amb cada punt */
.split{padding:clamp(4rem,10vh,7rem) 0;background:var(--bone)}
.split-grid{display:grid;gap:2rem}
.split-media{display:none}
.split-list h2{margin-bottom:1.5rem}
.split .inc li{border-bottom:1px solid var(--line);padding:1.8rem 0}
.inc-media{grid-column:1/-1;margin-bottom:1rem}
.inc-media .film{aspect-ratio:4/3;border-radius:var(--r-tile)}
@media (min-width:960px){
  .split-grid{grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
  .split-media{display:block;position:sticky;top:calc(var(--hdr) + 2rem);height:calc(100vh - var(--hdr) - 4rem);border-radius:var(--r-tile);overflow:hidden}
  .sm{position:absolute;inset:0;clip-path:inset(100% 0 0 0);transition:clip-path 1s var(--ease-io)}
  .sm .film{height:100%}
  .sm.is-on{clip-path:inset(0 0 0 0);z-index:1}
  .sm.was-on{clip-path:inset(0 0 0 0)}
  .sm-count{position:absolute;z-index:3;left:1.25rem;bottom:1.25rem;padding:.45rem .8rem;border-radius:999px;background:rgba(var(--scrim),.66);color:var(--paper-on);font:400 1rem/1 var(--serif)}
  .inc-media{display:none}
  .split .inc li{min-height:46vh;display:grid;align-content:center;grid-template-columns:4rem 1fr;opacity:.4;transition:opacity .5s var(--ease)}
  .split .inc li.is-on{opacity:1}
  html:not(.js) .split .inc li{opacity:1}
  .split .inc h3{font-size:clamp(1.6rem,2.4vw,2.2rem)}
}
.hgal-svc{background:var(--ivory)}
/* Llegals: barra de lectura i banda final */
.read-progress{position:fixed;left:0;right:0;top:0;z-index:60;height:3px;pointer-events:none}
.read-progress i{display:block;height:100%;background:var(--bronze);transform:scaleX(var(--rp,0));transform-origin:left}
html:not(.js) .read-progress{display:none}
.band-scene{min-height:62vh;min-height:62svh;align-items:center}
.band-scene .scene-in{text-align:center}
.band-scene .pull{font-size:clamp(2.6rem,8vw,7rem)}
@media (min-width:960px){.legal-sec .prose{margin-left:clamp(0rem,8vw,9rem)}}
/* Pàgina offline (PWA) */
.offline-main{min-height:100svh;display:grid;place-content:center;gap:1rem;padding:2rem var(--g);max-width:40rem;margin:0 auto}
.offline-main img{width:200px;height:auto}
.offline-main h1{font-size:clamp(2rem,6vw,3rem);margin:1rem 0 0}

@media (prefers-reduced-motion:reduce){
  .seq-img,.seq-in,.seq-layer,.unveil-fig{transform:none!important}
  .ring .arc{transition:none;stroke-dashoffset:0}
  .sm{transition:none}
}
.seq.on .seq-pin{background:#2B241D}
.seq.on .seq-scene{background:transparent;pointer-events:none}
.seq.on .seq-scene.is-on .seq-in{pointer-events:auto}
#cap-ass .seq-img img{object-position:66% 64%}
#cap-arq .seq-img img{object-position:40% 50%}
/* v5 — ajust de contrast AA (verificat amb contrast.js) */
.scene .txt::before{background:radial-gradient(closest-side,rgba(var(--scrim),.8),rgba(var(--scrim),.66) 58%,rgba(var(--scrim),0) 100%)}
.seq-text.glass{background:rgba(var(--scrim),.62)}
.scene .crumbs ol,.scene .eyebrow.light,.scene .ch-kicker.light{background:rgba(var(--scrim),.62)}
.tile::before{background:linear-gradient(180deg,rgba(var(--scrim),0) 18%,rgba(var(--scrim),.7) 50%,rgba(var(--scrim),.9) 100%)}
.ctile.c-photo::before{background:linear-gradient(180deg,rgba(var(--scrim),.2) 0%,rgba(var(--scrim),.66) 45%,rgba(var(--scrim),.9) 100%)}
.page-scene .txt::before,.band-scene .txt::before{inset:-26% -24% -30% -18%;background:radial-gradient(farthest-side,rgba(var(--scrim),.84),rgba(var(--scrim),.74) 62%,rgba(var(--scrim),0) 100%)}

.nowrap{white-space:nowrap}
#cap-ref .seq-img img{object-position:62% 55%}
/* [PENDENT] Espai reservat per al render 3D propi de NEXT>HOME */
.ph-3d{position:relative;width:100%;height:100%;min-height:100%;display:grid;place-items:center;background:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px) 0 0/48px 48px,radial-gradient(120% 90% at 60% 40%,#6B5A47,#3A3027 70%)}
.ph-3d::after{content:"";position:absolute;inset:8%;border:1.5px dashed rgba(251,248,242,.45);border-radius:6px;pointer-events:none}
.ph-tag{position:relative;z-index:1;max-width:80%;text-align:center;padding:.55rem .95rem;border-radius:999px;background:rgba(18,14,10,.6);color:#FBF8F2;font:600 .72rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.seq-img .ph-3d,.scene .bg .ph-3d,.film .ph-3d{position:absolute;inset:0}
.page-scene .bg .ph-tag{position:absolute;top:calc(var(--hdr) + 1rem);right:var(--g)}
.seq-img .ph-tag{position:absolute;top:calc(var(--hdr) + 1rem);right:var(--g)}
.mask-type .nowrap,.seq-text .nowrap{white-space:nowrap}
/* Comparador abans / després (render IA, Reformes 3D) */
.ba-sec{background:var(--ivory)}
.ba-fig{margin:0 auto;max-width:560px}
.cmp.ba{aspect-ratio:763/941;max-width:560px;border-radius:var(--r-tile);box-shadow:0 40px 80px -40px rgba(36,32,28,.5)}
.cmp.ba .before{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.cmp.ba .before img{filter:none}
.cmp.ba .handle::after{background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2324201C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 7-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E") center/1.4rem no-repeat}
.cmp.ba .tag{background:rgba(18,14,10,.66);color:var(--paper-on)}
.ba-fig figcaption{margin-top:1rem;text-align:center;font-size:.85rem;color:var(--muted)}
html:not(.js) .cmp.ba .before{display:none}

/* ---------- Moviment reduït: tot estàtic ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}
  .js .reveal,.js .wipe,.js .wipe img,.js .rule{opacity:1;transform:none;clip-path:none}
  .kb img{transform:none}
  .manifesto .w{opacity:1}
  .btn{transform:none}
}
@media print{.site-header,.mobile-nav,.site-footer,.form,.ch-stage{display:none}body{background:#fff}}
