/* Panadès 1876 · full d'estils de la web pública
   Implementa el handoff (panades-web-handoff/ESPECIFICACIO.md): tokens §3, responsive §4,
   components §5, plantilles §6, galeries §7, moviment §8.
   Punts de trencament: <768 mòbil · 768–1099 tauleta · 1100–1599 · 1600–2199 · ≥2200 */

/* ─── Fonts (servides des del mateix domini: sense peticions a tercers) ─── */
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/figtree-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/figtree-normal-latin-ext.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:'Fraunces';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/fraunces-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/fraunces-normal-latin-ext.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:'Fraunces';font-style:italic;font-weight:300 600;font-display:swap;src:url(/assets/fonts/fraunces-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 600;font-display:swap;src:url(/assets/fonts/fraunces-italic-latin-ext.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}

/* ─── Tokens ─── */
:root{
  --green:#1E3B2C; --red:#B3122B; --ink:#1A1916; --muted:#5B574F;
  --linen:#F4F0E7; --paper:#FBF9F4; --line:#DAD3C4; --on-green:#E9E4D8; --on-green-hi:#F4F0E7;
  --open:#3FA66B; --closed:#D0453A; --field:#BDB4A2; --placeholder:#E2DACA;
  --lb-bg:#0D110E; --lb-fg:#F2EDE3; --lb-muted:#A9B0A8;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --gutter:clamp(20px,4.2vw,120px);
  --section:clamp(64px,6.7vw,140px);
  --gap:16px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --h1-page:clamp(56px,6.3vw,120px);
  --h1-home:clamp(46px,5.4vw,104px);
  --h2:clamp(32px,3.3vw,64px);
  --card-title:clamp(30px,2.1vw,40px);
  --lead:clamp(17px,1.05vw,20px);
  --header-h:108px;
}
@media (max-width:1099px){ :root{ --header-h:68px; } }
@media (max-width:767px){ :root{ --gap:8px; } }

/* ─── Base ─── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--ink);background:var(--linen);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.no-scroll{overflow:hidden}
img,picture,svg{display:block;max-width:100%}
picture img{width:100%;height:100%}
a{color:var(--green);text-decoration:none;transition:color .2s}
a:hover{color:var(--red)}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3,p,figure,ul,ol{margin:0}
ul[role=list],ol[role=list]{list-style:none;padding:0}
.serif{font-family:var(--serif)}
h1,h2,h3{font-family:var(--serif);font-weight:350;letter-spacing:-.02em;line-height:1.05}
h1 em,h2 em{font-style:italic;color:var(--green)}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.on-dark :focus-visible,.on-dark:focus-visible{outline-color:var(--on-green-hi)}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--green);color:var(--linen);padding:12px 18px;font-weight:600}
.skip:focus{top:12px;color:var(--linen)}
.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}
.wrap{padding-inline:var(--gutter)}
.prose{max-width:68ch}
.prose p+p{margin-top:1em}
.prose a{text-decoration:underline;text-underline-offset:3px}
.prose ul,.prose ol{padding-left:1.2em;margin:1em 0}

.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--red);flex-shrink:0}

/* Botons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:0 26px;font-weight:600;font-size:15px;border-radius:2px;border:1px solid transparent;transition:background .25s,color .25s,border-color .25s;text-align:center}
.btn--primary{background:var(--green);color:var(--on-green-hi)}
.btn--primary:hover{background:#14291e;color:var(--on-green-hi)}
.btn--secondary{border-color:var(--ink);color:var(--ink)}
.btn--secondary:hover{background:var(--ink);color:var(--linen)}
.round{width:56px;height:56px;border-radius:50%;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .3s,color .3s,border-color .3s}
.card-link:hover .round,.card-link:focus-visible .round,.round:hover{background:var(--green);border-color:var(--green);color:var(--on-green-hi)}
.link-arrow{display:inline-flex;gap:10px;align-items:center;font-weight:600;min-height:44px}
.link-underline{border-bottom:1px solid var(--green);padding-bottom:6px;min-height:0}

/* Estat obert/tancat */
.dot{width:8px;height:8px;border-radius:50%;background:var(--closed);flex-shrink:0;display:inline-block}
.is-open .dot,.dot.is-open{background:var(--open)}
.pulse{animation:pulse 2.4s ease-in-out infinite}

/* ─── Moviment ─── */
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.09) translate(-1.2%,-1%)}}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes menu-in{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.kb{animation:kb 20s ease-in-out infinite alternate;transform-origin:60% 40%}
.zoom{overflow:hidden}
.zoom img{transition:transform .9s var(--ease)}
.zoom:hover img,.card-link:hover .zoom img,.card-link:focus-visible .zoom img{transform:scale(1.05)}
/* Aparició en fer scroll (reveal.js afegeix .js a <html>) */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.js .rv.in{opacity:1;transform:none}

/* ─── Franja superior i capçalera ─── */
.topbar{background:var(--green);color:var(--on-green);font-size:13px;letter-spacing:.02em}
.topbar a{color:var(--on-green)}
.topbar a:hover{color:#fff}
.topbar__inner{height:44px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.topbar__info{display:flex;gap:28px;align-items:center}
.topbar__info>*{display:flex;gap:8px;align-items:center;white-space:nowrap}
.status{display:flex;gap:10px;align-items:center;white-space:nowrap}
.status strong{font-weight:600}
.status__detail{opacity:.8}
.header{position:sticky;top:0;z-index:40;background:var(--linen);border-bottom:1px solid var(--line)}
.header__inner{height:var(--header-h);display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:center;gap:24px}
.header__inner>.logo{justify-self:start}
.header__right,.header__mobile{justify-self:end}
.logo{display:block;width:176px;height:74px;flex-shrink:0}
.logo img{width:100%;height:100%;object-fit:contain;object-position:left}
.nav{display:flex;gap:0;align-items:center;justify-content:center}
.nav__item{padding:0 clamp(8px,1vw,20px)}
.nav__item{position:relative}
.nav__row{display:flex;align-items:center;gap:2px}
.nav a.nav__link,.nav button.nav__link{display:flex;align-items:center;gap:4px;color:var(--ink);font-weight:500;font-size:15px;padding:8px 0;border:0;border-bottom:1.5px solid transparent;background:none;white-space:nowrap}
.nav .nav__link[aria-current=page],.nav .nav__link.is-active{color:var(--green);font-weight:600;border-bottom-color:var(--green)}
.nav .nav__link:hover{color:var(--green)}
.nav__toggle{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;background:none;padding:0;color:var(--ink);margin-left:-4px}
.nav__toggle svg{transition:transform .2s}
.nav__item.is-open .nav__toggle svg{transform:rotate(180deg)}
.submenu{position:absolute;left:-24px;top:100%;min-width:250px;background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 40px rgba(26,25,22,.12);padding:10px 0;list-style:none;margin:0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility 0s .2s}
.nav__item:hover .submenu,.nav__item:focus-within .submenu,.nav__item.is-open .submenu{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .2s}
.submenu a{display:block;padding:10px 24px;color:var(--ink);font-size:15px}
.submenu a:hover,.submenu a[aria-current=page]{background:var(--linen);color:var(--green)}
.header__right{display:flex;align-items:center;gap:28px}
.langs{display:flex;gap:2px;font-size:13px;font-weight:600;letter-spacing:.06em}
.langs a{color:var(--ink);opacity:.55;padding:6px 8px;border-bottom:2px solid transparent}
.langs a:hover{opacity:1;color:var(--ink)}
.langs a[aria-current=true]{opacity:1;border-bottom-color:var(--red)}
.vsep{width:1px;height:48px;background:var(--line)}
.badge150{width:112px;height:96px;object-fit:contain;flex-shrink:0;filter:saturate(1.35) brightness(.78)}
/* Selector d'idioma desplegable */
.langdd{position:relative}
.langdd summary{list-style:none;display:flex;align-items:center;gap:6px;min-height:44px;padding:0 10px;font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--ink);cursor:pointer;border:1px solid var(--line);border-radius:2px;user-select:none}
.langdd summary::-webkit-details-marker{display:none}
.langdd summary:hover{border-color:var(--ink)}
.langdd summary svg{transition:transform .2s}
.langdd[open] summary svg{transform:rotate(180deg)}
.langdd ul{position:absolute;right:0;top:calc(100% + 6px);z-index:50;list-style:none;margin:0;padding:6px 0;min-width:170px;background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 40px rgba(26,25,22,.12)}
.langdd a{display:flex;gap:12px;align-items:center;padding:10px 16px;color:var(--ink);font-size:15px}
.langdd a span{font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--muted);width:20px}
.langdd a:hover{background:var(--linen);color:var(--green)}
.langdd a[aria-current=true]{font-weight:600;color:var(--green)}
.langdd a[aria-current=true] span{color:var(--red)}
.header__mobile{display:none;align-items:center;gap:4px}
.burger{width:48px;height:48px;border:0;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center}

@media (max-width:1399px){ .nav a.nav__link,.nav button.nav__link{font-size:14px} .header__right{gap:18px} }
@media (max-width:1399px){ .badge150{width:96px;height:84px} }
@media (max-width:1299px){
  .header__inner{gap:16px}
  .logo{width:140px;height:59px}
  .nav__item{padding:0 7px}
  .header__right{gap:12px}
  .badge150{width:78px;height:70px}
}
@media (max-width:1099px){
  .topbar__inner{height:36px;justify-content:center}
  .topbar__info{display:none}
  .status{gap:8px}
  .nav,.header__right{display:none}
  .header__inner{display:flex;justify-content:space-between}
  .header__mobile{display:flex}
  .header__inner{padding-right:calc(var(--gutter) - 4px)}
  .logo{width:112px;height:48px}
  .header .badge150-m{width:58px;height:52px;object-fit:contain;margin-right:6px;filter:saturate(1.35) brightness(.78)}
}

/* Menú mòbil */
.mmenu{position:fixed;inset:0;z-index:60;background:var(--green);color:var(--on-green-hi);display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}
.mmenu[hidden]{display:none}
.mmenu.is-open .mmenu__nav,.mmenu.is-open .mmenu__foot{animation:menu-in .4s var(--ease) both}
.mmenu__head{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 20px;flex-shrink:0}
.mmenu__head img{width:112px;height:48px;object-fit:contain;object-position:left}
.mmenu__close{width:48px;height:48px;border:0;background:transparent;color:var(--on-green-hi);display:flex;align-items:center;justify-content:center}
.mmenu__nav{padding:12px 24px;display:flex;flex-direction:column}
.mmenu__link{font-family:var(--serif);color:var(--on-green-hi);font-size:34px;font-weight:350;line-height:1.25;padding:8px 0;display:flex;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid rgba(244,240,231,.14);background:none;width:100%;text-align:left}
.mmenu__link:hover{color:#fff}
.mmenu__link[aria-current=page]{font-style:normal}
.mmenu__link[aria-current=page]::after{content:"";width:28px;height:2px;background:var(--red);margin-left:auto}
.mmenu__link small{font-family:var(--sans);font-size:12px;opacity:.6;display:flex;gap:6px;align-items:center}
.mmenu__sub{list-style:none;margin:0;padding:6px 0 10px 18px;border-bottom:1px solid rgba(244,240,231,.14)}
.mmenu__sub a{display:block;color:var(--on-green);font-size:19px;padding:9px 0}
.mmenu__sub a[aria-current=page]{color:#fff;font-weight:600}
.mmenu__foot{margin-top:auto;padding:20px 24px 28px;display:flex;flex-direction:column;gap:18px}
.mmenu__langs{display:flex;gap:8px}
.mmenu__langs a{flex:1;height:44px;border:1px solid rgba(244,240,231,.3);color:var(--on-green-hi);display:flex;align-items:center;justify-content:center;font-size:14px}
.mmenu__langs a[aria-current=true]{border-color:var(--on-green-hi);font-weight:600}
.mmenu__call{height:56px;background:var(--linen);color:var(--green);display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700;font-size:16px}
.mmenu__call:hover{color:var(--green);background:#fff}
.mmenu__status{font-size:13px;opacity:.85;display:flex;gap:8px;align-items:center;justify-content:center}

/* ─── Peu ─── */
.footer{background:var(--green);color:var(--on-green);padding:72px var(--gutter) 32px;display:flex;flex-direction:column;gap:56px;margin-top:var(--section)}
.footer a{color:var(--on-green-hi)}
.footer a:hover{color:#fff}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px}
.footer__brand{display:flex;flex-direction:column;gap:20px}
.footer__brand img{width:190px;height:80px;object-fit:contain;object-position:left}
.footer__quote{font-family:var(--serif);font-size:22px;line-height:1.35;font-style:italic;max-width:360px;color:var(--on-green-hi)}
.footer__col{display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.6}
.footer__label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.footer__col .u{text-decoration:underline;text-underline-offset:4px}
.footer__bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;border-top:1px solid rgba(233,228,216,.2);padding-top:24px}
.footer__bottom span{opacity:.75}
.footer__legal{display:flex;gap:24px;flex-wrap:wrap}
.footer__legal a{color:var(--on-green);opacity:.75}
.footer__legal a:hover{opacity:1}
@media (max-width:1099px){ .footer__grid{grid-template-columns:1fr 1fr} }
@media (max-width:767px){
  .footer{padding:48px 20px 32px;gap:28px}
  .footer__grid{grid-template-columns:1fr;gap:28px}
  .footer__brand img{width:150px;height:64px}
}

/* ─── Capçalera de pàgina (secció genèrica) ─── */
.phead{padding:72px var(--gutter) 56px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end}
.phead__title{display:flex;flex-direction:column;gap:20px}
.crumbs{font-size:14px;color:var(--muted);display:flex;flex-wrap:wrap;gap:10px}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--green)}
.crumbs [aria-current]{color:var(--ink)}
.phead h1{font-size:var(--h1-page);font-weight:330;line-height:.95;letter-spacing:-.03em;overflow-wrap:anywhere;hyphens:auto}
.phead__intro{display:flex;flex-direction:column;gap:24px;max-width:640px}
.phead__intro .lead{font-size:19px;line-height:1.7;color:var(--muted)}
.lead p+p{margin-top:.8em}
.lead a{text-decoration:underline;text-underline-offset:3px}
.meta{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:16px;font-size:14px;color:var(--muted);flex-wrap:wrap}
.views{display:flex;gap:4px}
.views button{padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink);border:0;background:transparent;min-height:36px}
.views button[aria-pressed=true]{background:var(--ink);color:var(--linen)}
.phead--split{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}
@media (max-width:1099px){ .phead{grid-template-columns:1fr;gap:28px} }
@media (max-width:767px){
  .phead{padding:28px 20px 24px;gap:14px}
  .phead__title{gap:14px}
  .crumbs{font-size:13px;gap:6px}
  .phead h1{font-size:56px;line-height:1;letter-spacing:-.02em}
  .phead__intro{gap:14px}
  .phead__intro .lead{font-size:16px;line-height:1.65}
  .meta{font-size:13px;padding-top:12px}
  .views{display:none}
}

/* ─── Galeries ─── */
.gallery{padding:0 var(--gutter)}
.gallery-empty{padding:40px var(--gutter);color:var(--muted);max-width:68ch}
.tile{position:relative;overflow:hidden;background:var(--placeholder);display:block;cursor:zoom-in;margin:0;color:var(--paper)}
.tile img{width:100%;height:100%;object-fit:cover}
.tile__btn{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:transparent;cursor:zoom-in;z-index:2}
.tile__shade{position:absolute;inset:0;background:rgba(26,25,22,.28);opacity:0;transition:opacity .4s;pointer-events:none}
.tile__cap{position:absolute;left:16px;right:16px;bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s var(--ease)}
.tile__cap span:first-child{font-size:15px;font-weight:600;line-height:1.3;text-shadow:0 1px 8px rgba(0,0,0,.25)}
.tile__zoom{width:40px;height:40px;border-radius:50%;background:var(--paper);color:var(--ink);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:auto}
.tile:hover .tile__shade,.tile:focus-within .tile__shade{opacity:1}
.tile:hover .tile__cap,.tile:focus-within .tile__cap{opacity:1;transform:none}
@media (hover:none){ .tile__cap{display:none} }

/* Mosaic (respecta la proporció real de cada foto) */
.gitem{margin:0}
.strip-cap{display:none}
.g-mosaic{column-count:5;column-gap:var(--gap)}
.g-mosaic .gitem{break-inside:avoid;margin-bottom:var(--gap)}
.g-mosaic .tile{aspect-ratio:var(--ar)}
@media (max-width:1599px){ .g-mosaic{column-count:4} }
@media (max-width:1099px){ .g-mosaic{column-count:3} }
@media (max-width:767px){ .gallery{padding:0 12px} .g-mosaic{column-count:2} }
@media (min-width:2200px){ .g-mosaic{column-count:6} }

/* Graella (quadrats) */
.g-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap)}
.g-grid .tile{aspect-ratio:1}
@media (max-width:1599px){ .g-grid{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media (max-width:1099px){ .g-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:767px){ .g-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:2200px){ .g-grid{grid-template-columns:repeat(6,minmax(0,1fr))} }

/* Tira horitzontal (llisca, la següent mig visible) */
.g-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);overscroll-behavior-x:contain}
.g-strip::-webkit-scrollbar{display:none}
.g-strip .gitem{flex:0 0 auto;width:clamp(296px,28vw,560px);scroll-snap-align:start;display:flex;flex-direction:column;gap:10px}
.g-strip .tile{height:clamp(380px,36vw,720px)}
.g-strip .strip-cap{display:flex;font-size:14px;color:var(--muted);justify-content:space-between;gap:12px}
.strip-progress{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--muted);padding-top:16px}
.strip-progress__bar{flex-grow:1;height:2px;background:var(--line);position:relative;overflow:hidden}
.strip-progress__bar span{position:absolute;inset:0;background:var(--green);transform-origin:left;transform:scaleX(var(--p,.2))}
.strip-progress__hint{display:flex;gap:6px;align-items:center}
.gallery:not([data-view=strip]) .strip-progress{display:none}
@media (max-width:767px){ .g-strip{margin-inline:-12px;padding-inline:20px;scroll-padding-inline:20px} .g-strip .gitem{width:296px} .g-strip .tile{height:380px} }

/* Graella editorial (Col·leccions) */
.g-editorial{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(200px,14.6vw,420px);gap:var(--gap)}
.g-editorial .gitem{grid-area:var(--area);min-height:0}
.g-editorial .tile{height:100%}
.ed-label{position:absolute;left:16px;bottom:16px;z-index:3;pointer-events:none;background:rgba(251,249,244,.94);color:var(--ink);padding:8px 14px;display:flex;gap:12px;align-items:baseline;transition:background .3s,color .3s;max-width:calc(100% - 32px)}
.ed-label .serif{font-size:17px}
.ed-label small{font-size:13px;color:var(--muted)}
.tile--big .ed-label{padding:14px 20px}
.tile--big .ed-label .serif{font-size:clamp(22px,1.6vw,30px)}
.g-editorial .tile:hover .ed-label,.g-editorial .tile:focus-within .ed-label{background:var(--green);color:var(--paper)}
.g-editorial .tile:hover .ed-label small,.g-editorial .tile:focus-within .ed-label small{color:var(--on-green)}
.g-editorial .tile:hover img{transform:scale(1.05)}
.g-editorial .tile img{transition:transform .9s var(--ease)}
@media (max-width:1099px){
  .g-editorial{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto}
  .g-editorial .gitem{grid-area:auto;aspect-ratio:1}
  .g-editorial .gitem.is-big{grid-column:1 / -1;aspect-ratio:4/3}
}
.project-body{margin-bottom:48px}
.only-touch{display:none}
@media (hover:none){ .only-touch{display:inline} }

/* ─── Visor (lightbox) ─── */
.lb{position:fixed;inset:0;z-index:80;background:var(--lb-bg);color:var(--lb-fg);display:flex;flex-direction:column;font-family:var(--sans)}
.lb[hidden]{display:none}
.lb button{color:var(--lb-fg)}
.lb :focus-visible{outline-color:var(--lb-fg)}
.lb__top{height:88px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 40px;flex-shrink:0}
.lb__ctx{font-size:14px;color:var(--lb-muted);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb__count{font-family:var(--serif);font-size:20px;letter-spacing:.04em;flex:0 0 auto}
.lb__actions{display:flex;gap:8px;flex:1;justify-content:flex-end}
.lb__btn{width:48px;height:48px;border-radius:50%;border:0;background:transparent;display:flex;align-items:center;justify-content:center}
.lb__btn--solid{border:0;background:var(--lb-fg);color:var(--lb-bg)!important}
.lb__main{flex-grow:1;display:grid;grid-template-columns:120px minmax(0,1fr) 420px 120px;align-items:center;min-height:0}
.lb__arrow{width:64px;height:64px;border-radius:50%;border:0;background:transparent;display:flex;align-items:center;justify-content:center;justify-self:center}
.lb__arrow--next{border:0;background:var(--lb-fg);color:var(--lb-bg)!important}
.lb__stage{position:relative;height:100%;max-height:calc(100dvh - 88px - 136px);display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;user-select:none}
.lb__img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:opacity .22s,transform .22s;will-change:transform}
.lb__img.is-leaving{opacity:0;transform:translateX(calc(var(--dir,1) * -24px))}
.lb__img.is-entering{opacity:0;transform:translateX(calc(var(--dir,1) * 24px))}
.lb__tap{position:absolute;top:0;bottom:0;width:30%;border:0;background:transparent;display:none}
.lb__tap--prev{left:0}.lb__tap--next{right:0}
.lb__side{display:flex;flex-direction:column;gap:18px;padding-left:40px}
.lb__kind{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--lb-muted)}
.lb__title{font-family:var(--serif);font-size:clamp(34px,2.7vw,52px);font-weight:330;line-height:1}
.lb__desc{font-size:16px;line-height:1.6;color:#C9CFC8}
.lb__desc:empty{display:none}
.lb__bottom{height:136px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 40px;flex-shrink:0;border-top:1px solid rgba(242,237,227,.1)}
.lb__thumbs{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:6px 4px;min-width:0}
.lb__thumbs::-webkit-scrollbar{display:none}
.lb__thumb{flex:0 0 76px;width:76px;height:76px;padding:0;border:0;background:#222;position:relative}
.lb__thumb img{width:100%;height:100%;object-fit:cover}
.lb__thumb::after{content:"";position:absolute;inset:0;background:rgba(13,17,14,.5);transition:background .2s}
.lb__thumb[aria-current=true]::after{background:transparent;inset:-4px;border:2px solid var(--lb-fg)}
.lb__keys{font-size:13px;color:var(--lb-muted);display:flex;gap:18px;flex-shrink:0}
.lb__keys kbd{font-family:inherit;border:1px solid rgba(242,237,227,.3);padding:2px 8px}
.lb__dots{display:none;gap:5px;flex-wrap:wrap}
.lb__dots span{width:8px;height:3px;background:rgba(242,237,227,.35)}
.lb__dots span.is-on{width:20px;background:var(--lb-fg)}
.lb__mfoot{display:none}
@media (max-width:1399px){ .lb__main{grid-template-columns:96px minmax(0,1fr) 340px 96px} }
@media (max-width:1099px){
  .lb__top{height:64px;padding:0 8px 0 20px}
  .lb__ctx,.lb__actions .lb__btn:not(.lb__close),.lb__bottom,.lb__side,.lb__arrow{display:none}
  .lb__actions{flex:0}
  .lb__close{border:0;background:transparent}
  .lb__count{font-size:17px;order:-1;flex:1}
  .lb__main{grid-template-columns:1fr}
  .lb__stage{max-height:none}
  .lb__tap{display:block}
  .lb__mfoot{display:flex;flex-direction:column;gap:14px;padding:20px 20px calc(28px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(242,237,227,.1)}
  .lb__mtitle{font-family:var(--serif);font-size:30px;font-weight:330;line-height:1.1;min-height:1.1em}
  .lb__dots{display:flex}
  .lb__mrow{display:flex;justify-content:space-between;align-items:center;gap:12px}
  .lb__hint{font-size:13px;color:var(--lb-muted);display:flex;gap:8px;align-items:center}
  .lb__mbtns{display:flex;gap:8px}
  .lb__mbtns button{width:48px;height:48px;border-radius:50%;border:0;background:transparent;display:flex;align-items:center;justify-content:center}
  .lb__mbtns button:last-child{border:0;background:var(--lb-fg);color:var(--lb-bg)}
}

/* ─── Inici ─── */
.hero{display:grid;grid-template-columns:5fr 7fr;gap:64px;padding:72px 0 72px var(--gutter);height:min(900px,calc(100svh - var(--header-h) - 44px));min-height:640px}
.hero__text{display:flex;flex-direction:column;justify-content:space-between;padding:24px 0;gap:32px}
.hero__copy{display:flex;flex-direction:column;gap:32px}
.hero h1{font-size:var(--h1-home);line-height:1;font-weight:350;letter-spacing:-.03em}
.hero__lead{font-size:var(--lead);line-height:1.6;color:var(--muted);max-width:520px}
.hero__btns{display:flex;gap:16px;flex-wrap:wrap}
.hero__progress{display:flex;align-items:center;gap:20px;font-size:14px;color:var(--muted);min-height:28px}
.hero__progress .serif{font-size:20px;color:var(--ink);font-variant-numeric:tabular-nums}
.hero__bar{width:160px;height:2px;background:var(--line);position:relative;overflow:hidden}
.hero__bar span{position:absolute;inset:0;background:var(--green);transform-origin:left;transform:scaleX(0)}
.hero__bar span.run{animation:bar 6s linear forwards}
.hero__bar span.paused{animation-play-state:paused}
.hero__caption{margin-left:16px}
.slider{position:relative;overflow:hidden;background:#DDD5C4}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease;visibility:hidden}
.slide.is-active{opacity:1;visibility:visible;z-index:1}
.slide picture,.slide img{width:100%;height:100%;object-fit:cover}
.slider__nav{position:absolute;left:32px;bottom:32px;display:flex;gap:8px;z-index:3}
.slider__nav button{width:56px;height:56px;border-radius:50%;border:0;background:transparent;color:var(--paper);display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 1px 6px rgba(0,0,0,.45));transition:transform .2s}
.slider__nav button:hover{transform:scale(1.12)}
.slider{touch-action:pan-y}
.slider__dashes{display:none;position:absolute;left:8px;bottom:6px;z-index:3}
.slider__dashes button{border:0;background:transparent;padding:18px 3px;min-width:18px;min-height:44px;display:flex;align-items:center;cursor:pointer}
.slider__dashes span{display:block;width:12px;height:3px;background:rgba(251,249,244,.6);box-shadow:0 0 4px rgba(0,0,0,.25);transition:width .3s,background .3s}
.slider__dashes .is-on span{width:24px;background:var(--paper)}
@media (max-width:1099px){
  .hero{grid-template-columns:1fr;height:auto;min-height:0;padding:0;gap:0}
  .slider{order:-1;height:clamp(460px,70vw,640px)}
  .slider__nav{display:none}
  .slider__dashes{display:flex}
  .hero__text{padding:32px var(--gutter) 40px;gap:20px}
  .hero__copy{gap:20px}
  .hero__progress{display:none}
  .hero__btns .btn--secondary{display:none}
  .hero__btns .btn{flex:1;justify-content:space-between;min-height:54px}
}
@media (max-width:767px){ .slider{height:460px} .hero h1{font-size:46px;line-height:1.02;letter-spacing:-.02em} .hero__lead{font-size:17px} }

.ribbon{height:76px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;display:flex;align-items:center}
.ribbon__track{display:flex;white-space:nowrap;font-family:var(--serif);font-size:30px;font-style:italic;color:var(--green);animation:mq 48s linear infinite;width:max-content}
.ribbon__track span{display:flex;align-items:center;gap:48px;padding-left:48px}
.ribbon__track span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--red)}
@media (max-width:767px){ .ribbon{height:60px} .ribbon__track{font-size:24px} .ribbon__track span{gap:32px;padding-left:32px} }

.discover{padding:128px var(--gutter) 120px;display:flex;flex-direction:column;gap:56px}
.discover__head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}
.discover__head h2{font-size:var(--h2);max-width:800px}
.discover__head p{max-width:460px;font-size:18px;line-height:1.6;color:var(--muted)}
.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.hcard{display:flex;flex-direction:column;gap:20px;color:var(--ink)}
.hcard:hover{color:var(--ink)}
.hcard__img{aspect-ratio:4/5;background:#E4DDCE;position:relative}
.hcard__img img{width:100%;height:100%;object-fit:cover}
.hcard__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-top:1px solid var(--line);padding-top:18px;transition:border-color .3s}
.hcard:hover .hcard__foot,.hcard:focus-visible .hcard__foot{border-top-color:var(--ink)}
.hcard__txt{display:flex;flex-direction:column;gap:6px}
.hcard__num{font-size:13px;color:var(--muted);letter-spacing:.1em}
.hcard__title{font-family:var(--serif);font-size:var(--card-title);font-weight:400;letter-spacing:-.01em;line-height:1.1}
.hcard__sub{font-size:16px;color:var(--muted)}
.visit{background:var(--green);color:var(--on-green-hi);padding:clamp(28px,2.5vw,48px);display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.visit:hover{color:var(--on-green-hi)}
.visit__top{display:flex;flex-direction:column;gap:28px}
.visit__num{font-size:13px;letter-spacing:.1em;opacity:.75}
.visit__title{font-family:var(--serif);font-size:clamp(32px,2.9vw,56px);font-weight:350;line-height:1.02}
.visit__status{display:inline-flex;gap:10px;align-items:center;font-size:15px;background:rgba(244,240,231,.1);padding:10px 16px;border-radius:999px;align-self:flex-start}
.visit__info{display:flex;flex-direction:column;gap:14px;font-size:17px;line-height:1.5}
.visit__phone{font-family:var(--serif);font-size:clamp(28px,1.8vw,34px);margin-top:12px}
.visit__more{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(244,240,231,.3);padding-top:20px;margin-top:12px;font-weight:600}
@media (max-width:1099px){
  .discover{padding:56px var(--gutter)}
  .discover__head{flex-direction:column;align-items:flex-start;gap:16px}
  .cards3{grid-template-columns:1fr 1fr;gap:32px 24px}
  .cards3 .visit{grid-column:1 / -1}
}
@media (max-width:767px){
  .discover{padding:8px 20px 48px;gap:36px}
  .discover__head{display:none}
  .cards3{grid-template-columns:1fr;gap:36px}
  .hcard{gap:14px}
  .hcard__img{aspect-ratio:4/3}
  .hcard__foot{border-top:0;padding-top:0;align-items:center}
  .hcard__title{font-size:30px}
  .hcard__sub{font-size:15px}
  .hcard .round{width:48px;height:48px}
  .visit{padding:28px 24px;gap:14px}
  .visit__top{gap:14px}
  .visit__title{font-size:32px}
  .visit__info{font-size:15px;gap:10px}
}

.aboutband{display:grid;grid-template-columns:1fr 1fr;background:var(--paper);min-height:clamp(560px,39.6vw,860px)}
.aboutband__img{overflow:hidden;position:relative;background:#d9d0bf}
.aboutband__img picture,.aboutband__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.aboutband__txt{padding:clamp(48px,5vw,96px) clamp(24px,6.25vw,120px);display:flex;flex-direction:column;justify-content:center;gap:32px;max-width:760px}
.aboutband h2{font-size:clamp(32px,3.1vw,60px);line-height:1.05}
.aboutband p{font-size:19px;line-height:1.7;color:var(--muted)}
.aboutband .link-arrow{align-self:flex-start}
@media (max-width:767px){
  .aboutband{grid-template-columns:1fr;min-height:0}
  .aboutband__img{height:300px}
  .aboutband__txt{padding:32px 20px 44px;gap:16px}
  .aboutband h2{font-size:32px;line-height:1.1}
  .aboutband p{font-size:16px;line-height:1.65}
}

.brandband{padding:72px var(--gutter);display:flex;align-items:center;gap:64px;border-bottom:1px solid var(--line)}
.brandband__label{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600;flex-shrink:0}
.brandband__logos{display:flex;justify-content:space-between;align-items:center;flex-grow:1;gap:32px;flex-wrap:wrap}
.blogo{display:block;height:auto;max-height:44px;width:auto;max-width:150px;filter:grayscale(1) contrast(1.1);mix-blend-mode:multiply;opacity:.8;transition:opacity .3s}
a:hover .blogo{opacity:1}
.blogo-txt{font-family:var(--serif);font-size:26px;letter-spacing:.04em;color:var(--ink);opacity:.8}
@media (max-width:1099px){ .brandband{flex-direction:column;align-items:flex-start;gap:28px;padding:48px var(--gutter)} .brandband__logos{justify-content:flex-start;gap:28px 40px} }
@media (max-width:767px){ .blogo{max-height:32px;max-width:112px} }

/* ─── Pàgina pare (Cortines) ─── */
.pcards{padding:0 var(--gutter);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.pcard{grid-column:span 2;height:clamp(360px,26vw,640px);position:relative;overflow:hidden;color:var(--paper);display:block;background:#cfc6b4}
.pcard:hover{color:var(--paper)}
.pcard--big{grid-column:span 3;height:clamp(440px,33.3vw,820px)}
.pcard picture,.pcard img{width:100%;height:100%;object-fit:cover}
.pcard__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,25,22,0) 45%,rgba(26,25,22,.66) 100%);transition:background .4s}
.pcard:hover .pcard__shade{background:linear-gradient(180deg,rgba(26,25,22,0) 35%,rgba(26,25,22,.8) 100%)}
.pcard__txt{position:absolute;left:clamp(20px,1.9vw,36px);right:clamp(20px,1.9vw,36px);bottom:clamp(18px,1.7vw,32px);display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.pcard__meta{display:flex;flex-direction:column;gap:6px}
.pcard__meta small{font-size:13px;letter-spacing:.14em;opacity:.85}
.pcard__title{font-family:var(--serif);font-size:clamp(32px,2.4vw,46px);font-weight:350;line-height:1}
.pcard--big .pcard__title{font-size:clamp(40px,3.3vw,64px)}
.pcard .round{border-color:transparent;color:var(--paper)}
.pcard:hover .round,.pcard:focus-visible .round{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.pcards--even .pcard{grid-column:span 3}
@media (max-width:1099px){ .pcards{grid-template-columns:1fr 1fr} .pcard,.pcard--big,.pcards--even .pcard{grid-column:span 1;height:clamp(300px,44vw,480px)} .pcard--first{grid-column:1 / -1} }
@media (max-width:767px){
  .pcards{padding:0 20px;gap:20px 12px}
  .pcard--first{height:280px;grid-column:1 / -1}
  .pcard--first .pcard__title{font-size:38px}
  .pcard--first .round{width:44px;height:44px}
  .pcard:not(.pcard--first){height:auto;background:none;color:var(--ink);display:flex;flex-direction:column;gap:8px}
  .pcard:not(.pcard--first) .pcard__media{aspect-ratio:1;overflow:hidden;display:block;background:#cfc6b4}
  .pcard:not(.pcard--first) .pcard__shade,.pcard:not(.pcard--first) .pcard__meta small,.pcard:not(.pcard--first) .round{display:none}
  .pcard:not(.pcard--first) .pcard__txt{position:static;min-height:44px;align-items:center}
  .pcard:not(.pcard--first) .pcard__title{font-size:21px}
  .pcard:not(.pcard--first) .pcard__arrow{display:block}
}
.pcard__media{display:contents}
.pcard__arrow{display:none}

/* ─── Projectes ─── */
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters a{min-height:44px;padding:0 20px;border-radius:999px;display:flex;align-items:center;font-size:15px;font-weight:600;border:1px solid var(--line);color:var(--ink)}
.filters a[aria-current=true]{background:var(--ink);color:var(--linen);border-color:var(--ink)}
.projects{padding:0 var(--gutter)}
.proj{display:grid;grid-template-columns:1fr 1.6fr;gap:80px;align-items:center;padding:64px 0;border-top:1px solid var(--line)}
.proj:nth-child(even){grid-template-columns:1.6fr 1fr}
.proj:nth-child(even) .proj__txt{order:2}
.proj__txt{display:flex;flex-direction:column;gap:22px;padding:16px 0}
.proj__num{font-size:14px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.proj h2{font-size:clamp(36px,2.9vw,56px);font-weight:330;line-height:1.02}
.proj h2 a{color:inherit}
.proj__where{font-size:15px;color:var(--muted)}
.proj__txt p{font-size:18px;line-height:1.7}
.tags{display:flex;gap:8px;flex-wrap:wrap}
.tags span{font-size:13px;padding:6px 12px;border:1px solid var(--line)}
.proj__mosaic{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,clamp(180px,16.7vw,320px));gap:12px}
.proj__mosaic a{display:block;overflow:hidden;position:relative;background:var(--placeholder)}
.proj__mosaic a:first-child{grid-row:1 / 3}
.proj__mosaic img{width:100%;height:100%;object-fit:cover}
.proj__more{position:absolute;inset:0;background:rgba(26,25,22,.5);color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:600}
.proj[hidden]{display:none}
.empty-note{padding:48px var(--gutter);max-width:calc(68ch + var(--gutter) * 2);color:var(--muted);font-size:18px;border-top:1px solid var(--line);margin-inline:var(--gutter);padding-inline:0}
@media (max-width:1099px){ .proj,.proj:nth-child(even){grid-template-columns:1fr;gap:28px;padding:40px 0} .proj:nth-child(even) .proj__txt{order:0} }
@media (max-width:767px){ .projects{padding:0 20px} .proj__mosaic{grid-template-rows:repeat(2,140px);gap:8px} .proj__txt p{font-size:16px} }

/* ─── Sobre nosaltres ─── */
.ahero{display:grid;grid-template-columns:1fr 1fr;min-height:min(980px,calc(100svh - var(--header-h) - 44px))}
.ahero__txt{padding:clamp(40px,5vw,96px) clamp(24px,5vw,96px) clamp(40px,5vw,96px) var(--gutter);display:flex;flex-direction:column;justify-content:space-between;gap:48px}
.ahero__copy{display:flex;flex-direction:column;gap:32px}
.ahero h1{font-size:clamp(46px,5vw,96px);font-weight:330;line-height:.98;letter-spacing:-.03em}
.figures{display:flex;gap:clamp(28px,3.3vw,64px);border-top:1px solid var(--line);padding-top:28px;flex-wrap:wrap}
.figures div{display:flex;flex-direction:column}
.figures b{font-family:var(--serif);font-size:clamp(40px,3.3vw,64px);font-weight:350;line-height:1.1}
.figures span{color:var(--muted);font-size:15px}
.ahero__img{position:relative;overflow:hidden;background:#d9d0bf;min-height:420px}
.ahero__img picture,.ahero__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo-cap{position:absolute;left:clamp(16px,1.7vw,32px);bottom:clamp(16px,1.7vw,32px);right:16px;width:fit-content;background:rgba(251,249,244,.94);padding:10px 16px;font-size:14px;color:var(--ink);z-index:2}
.atext{padding:clamp(64px,7.3vw,140px) var(--gutter);display:grid;grid-template-columns:1fr 1.2fr 1.2fr;gap:clamp(32px,4.2vw,80px);background:var(--paper)}
.atext__quote{font-family:var(--serif);font-size:clamp(26px,1.8vw,34px);line-height:1.3;font-weight:350;font-style:italic;color:var(--green)}
.atext__body{display:contents}
.atext__body p{font-size:19px;line-height:1.75;max-width:620px}
.timeline{padding:clamp(64px,6.25vw,120px) var(--gutter);display:flex;flex-direction:column;gap:64px}
.timeline__head h2{font-size:clamp(40px,3.75vw,72px);font-weight:330}
.timeline__head h2 span{color:var(--red)}
.tl{position:relative;display:grid;grid-template-columns:repeat(var(--n,6),minmax(0,1fr));gap:40px;list-style:none;margin:0;padding:0}
.tl::before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:var(--ink)}
.tl li{display:flex;flex-direction:column;gap:18px;position:relative}
.tl__dot{width:16px;height:16px;border-radius:50%;background:var(--linen);border:2px solid var(--ink)}
.tl li:first-child .tl__dot{background:var(--red);border-color:var(--red)}
.tl__year{font-family:var(--serif);font-size:clamp(34px,2.1vw,40px);font-weight:350;line-height:1}
.tl li:first-child .tl__year{font-size:clamp(40px,2.9vw,56px)}
.tl__img{height:200px;overflow:hidden;background:var(--placeholder)}
.tl__img img{width:100%;height:100%;object-fit:cover}
.tl__title{font-weight:600;font-size:17px}
.tl__text{font-size:15px;line-height:1.6;color:var(--muted)}
.avisit{display:grid;grid-template-columns:2fr 1fr;min-height:clamp(360px,28vw,560px)}
.avisit__img{position:relative;overflow:hidden;background:#d9d0bf}
.avisit__img picture,.avisit__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.avisit__box{background:var(--green);color:var(--on-green-hi);padding:clamp(32px,3.3vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.avisit__box h2{font-size:clamp(32px,2.5vw,48px);line-height:1.05}
.avisit__box p{color:var(--on-green)}
.avisit__box a{color:var(--on-green-hi)}
.avisit + .footer{margin-top:0}
@media (max-width:1099px){
  .ahero{grid-template-columns:1fr;min-height:0}
  .ahero__img{min-height:0;height:clamp(320px,60vw,520px)}
  .atext{grid-template-columns:1fr}
  .tl{grid-template-columns:1fr;gap:0;padding-left:36px}
  .tl::before{left:7px;right:auto;top:8px;bottom:8px;width:1px;height:auto}
  .tl li{padding-bottom:40px}
  .tl__dot{position:absolute;left:-36px;top:4px}
  .tl__img{height:220px;max-width:420px}
  .avisit{grid-template-columns:1fr}
  .avisit__img{height:300px}
}
@media (max-width:767px){ .ahero__txt{padding:32px 20px} .ahero h1{font-size:46px} .atext__body p{font-size:17px} }

/* ─── Firmes ─── */
.bribbon{height:clamp(110px,8.3vw,160px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;display:flex;align-items:center;background:var(--paper)}
.bribbon:hover .ribbon__track{animation-play-state:paused}
.bribbon .ribbon__track{align-items:center;font-style:normal}
.bribbon .ribbon__track span{gap:72px;padding-left:72px}
.bribbon .ribbon__track span::after{width:8px;height:8px}
.bribbon .blogo{max-height:clamp(40px,3.4vw,64px);max-width:clamp(140px,11vw,220px);opacity:.85}
.bgrid{padding:80px var(--gutter) 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.bcard{height:320px;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:28px;border:1px solid var(--line);transition:background .3s,color .3s,border-color .3s}
.bcard__top{display:flex;justify-content:space-between;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.bcard__logo{display:flex;align-items:center;justify-content:center;flex-grow:1;padding:16px 8px}
.bcard__logo .blogo{max-height:72px;max-width:78%;mix-blend-mode:multiply}
.bcard__logo .blogo-txt{font-size:clamp(28px,2.2vw,44px);text-align:center}
.bcard__more{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;opacity:0;transition:opacity .3s}
a.bcard:hover,a.bcard:focus-visible{background:var(--green);border-color:var(--green);color:var(--on-green-hi)}
a.bcard:hover .bcard__top,a.bcard:focus-visible .bcard__top{color:#C9D2C8}
a.bcard:hover .bcard__more,a.bcard:focus-visible .bcard__more{opacity:1}
a.bcard:hover .blogo,a.bcard:focus-visible .blogo{filter:grayscale(1) invert(1) brightness(1.6);mix-blend-mode:screen;opacity:1}
.bcard--more{border-style:dashed;border-color:#B9B09E;background:transparent;justify-content:center;gap:12px}
.bcard--more h2{font-size:clamp(28px,2vw,38px)}
.bcard--more p{color:var(--muted);font-size:15px}
@media (max-width:1099px){ .bgrid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:767px){ .bgrid{grid-template-columns:1fr 1fr;padding:40px 20px 0;gap:8px} .bcard{height:220px;padding:16px} .bcard__more{display:none} .bcard__logo .blogo{max-height:48px} }

/* ─── Contacte ─── */
.bigstatus{display:flex;align-items:center;gap:16px;background:var(--paper);border:1px solid var(--line);padding:18px 28px}
.bigstatus .dot{width:14px;height:14px}
.bigstatus div{display:flex;flex-direction:column}
.bigstatus .serif{font-size:32px;line-height:1.2}
.bigstatus span{font-size:15px;color:var(--muted)}
.bigstatus em{font-style:normal;font-size:14px;color:var(--red)}
.cgrid{padding:0 var(--gutter) 80px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,6vw,120px);align-items:start;max-width:1600px}
.cinfo{display:flex;flex-direction:column}
.cinfo__row{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--line)}
.cinfo__icon{width:48px;height:48px;border-radius:50%;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--green)}
.cinfo__row>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.cinfo__label{font-size:13px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.cinfo__value{font-family:var(--serif);font-size:clamp(22px,1.5vw,28px);line-height:1.25;overflow-wrap:anywhere}
.cinfo__row a.act{font-size:14px;font-weight:600;min-height:32px;display:inline-flex;align-items:center}
.chours{display:flex;flex-direction:column;gap:16px}
.chours h2{font-size:36px}
.htable{display:flex;flex-direction:column}
.htable div{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:16px}
.htable div span:last-child{color:var(--muted);text-align:right}
.htable div.is-today{background:var(--green);color:var(--on-green-hi);font-weight:600;border-bottom-color:var(--green)}
.htable div.is-today span:last-child{color:var(--on-green-hi)}
.chours__note{font-size:14px;color:var(--muted);line-height:1.6}
.closures{list-style:none;margin:0;padding:14px 16px;background:var(--paper);border-left:3px solid var(--red);font-size:15px;display:flex;flex-direction:column;gap:6px}
.cmap{height:clamp(180px,14vw,240px);margin:0 var(--gutter);position:relative;overflow:hidden;background:#E3DDCF}
.cmap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cquick{display:none}
@media (max-width:767px){
  .phead--contact{padding-bottom:20px}
  .bigstatus{width:100%;padding:14px 18px}
  .bigstatus .serif{font-size:24px}
  .cquick{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:0 20px 24px}
  .cquick a{min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-weight:600;font-size:14px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
  .cquick a:first-child{background:var(--green);color:var(--on-green-hi);border-color:var(--green)}
  .cgrid{grid-template-columns:1fr;padding:0 20px 48px;gap:40px}
  .cmap{height:170px;margin:0 20px}
}

/* ─── Textos legals i 404 ─── */
.legal{padding:0 var(--gutter)}
.legal .prose{font-size:17px;line-height:1.75}
.nf{padding:clamp(64px,8vw,160px) var(--gutter);display:flex;flex-direction:column;gap:28px;align-items:flex-start;max-width:900px}
.nf h1{font-size:var(--h1-page);line-height:.95;font-weight:330}
.nf p{font-size:19px;color:var(--muted);max-width:52ch}

/* ─── Pantalles amples ─── */
@media (min-width:2200px){
  .phead__intro{max-width:68ch}
  .discover__head p{max-width:560px}
  .footer__quote{max-width:440px}
}

/* ─── Menys moviment ─── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
  .ribbon__track{transform:none}
}
.cinfo__intro{margin-top:24px;color:var(--muted)}
.phead__lead{max-width:640px;color:var(--muted);font-size:19px;line-height:1.7}

/* <picture> ocupa tot el contenidor on la foto es retalla (object-fit: cover) */
.tile picture,.hcard__img picture,.pcard__media picture,.proj__mosaic picture,.tl__img picture,.slide picture{display:block;width:100%;height:100%}
.hcard__img,.tl__img{display:block}
.show-m{display:none}
@media (max-width:767px){ .hide-m{display:none} .show-m{display:inline} }
.mmenu__link small svg{transition:transform .2s}
.mmenu__link[aria-expanded=true] small svg{transform:rotate(180deg)}
.mmenu__link small:has(svg:only-child){opacity:.9}

/* ─── Estètica minimalista (Configuració → Aparença) ───
   Sense molles de pa, recomptes, números ni filets decoratius; més aire. */
.meta-min{font-size:15px;color:var(--muted)}
.theme-minimal .eyebrow::before{display:none}
.theme-minimal .header{border-bottom-color:transparent}
.theme-minimal .vsep{display:none}
.theme-minimal .langdd summary{border-color:transparent}
.theme-minimal .phead{padding-top:clamp(40px,5vw,96px)}
.theme-minimal .phead__intro{gap:12px}
.theme-minimal .hcard__foot{border-top:0;padding-top:0;align-items:center}
.theme-minimal .visit__more{border-top:0;padding-top:4px}
.theme-minimal .brandband{border-bottom:0}
.theme-minimal .proj{border-top:0}
.theme-minimal .bcard{border-color:transparent}
.theme-minimal .bcard--more{border:0;background:transparent}
.theme-minimal .bigstatus{border-color:transparent}
.theme-minimal .cinfo__row{border-bottom:0;padding:14px 0}
.theme-minimal .htable div{border-bottom:0}
.theme-minimal .footer__bottom{border-top:0;padding-top:0}
.theme-minimal .mmenu__link{border-bottom-color:transparent}
.theme-minimal .mmenu__sub{border-bottom:0}
.theme-minimal .discover{padding-top:clamp(64px,6vw,120px)}

/* Minimalista: slider horitzontal a tota l'amplada i el text a sota */
.theme-minimal .hero{display:flex;flex-direction:column;height:auto;min-height:0;padding:0;gap:0}
.theme-minimal .slider{order:-1;height:clamp(360px,44vw,820px);max-height:calc(100svh - var(--header-h) - 44px)}
.theme-minimal .hero__text{padding:clamp(40px,4.5vw,88px) var(--gutter) 0}
.theme-minimal .hero__copy{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px clamp(40px,6vw,120px);align-items:end}
.theme-minimal .hero h1{font-size:clamp(40px,4.4vw,84px)}
.theme-minimal .hero__lead{padding-bottom:.4em}
.theme-minimal .hero__lead{max-width:520px}
/* Minimalista: punts en lloc de fletxes (com a la web original) */
.theme-minimal .slider__nav{display:none}
.theme-minimal .slider__dashes{display:flex;left:50%;transform:translateX(-50%);bottom:10px}
.theme-minimal .slider__dashes button{padding:18px 6px;min-width:22px;justify-content:center}
.theme-minimal .slider__dashes span,.theme-minimal .slider__dashes .is-on span{width:10px;height:10px;border-radius:50%}
.theme-minimal .slider__dashes span{background:rgba(251,249,244,.55)}
.theme-minimal .slider__dashes .is-on span{background:var(--paper)}
@media (max-width:1099px){
  .theme-minimal .slider{height:clamp(300px,62vw,560px)}
  .theme-minimal .hero__copy{grid-template-columns:1fr}
  .theme-minimal .hero h1{grid-row:auto}
  .theme-minimal .hero__text{padding:32px var(--gutter) 0}
}
