/* Floridum viu — vegeu DISSENY.md (v2) */

:root {
    --fulla: #a8c023;

    --f-display: "Roboto Flex", "Helvetica Neue", Arial, sans-serif;
    --f-text: "Newsreader", Georgia, serif;

    --marge: clamp(1rem, 0.4rem + 3vw, 3.5rem);
    --amplada: 90rem;
    --espai: clamp(5rem, 3rem + 8vw, 11rem);

    --t-0: 1rem;
    --t-1: 1.25rem;
    --t-2: clamp(1.5rem, 1.2rem + 1vw, 2rem);
    --t-3: clamp(2rem, 1.4rem + 2.5vw, 3.5rem);
    --t-gegant: clamp(3.2rem, 1rem + 8.5vw, 10.5rem);

    --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Paleta segons el moment real del dia a Palafrugell */
:root, [data-moment="dia"] {
    --fons: #f4f6f2;
    --fons-2: #e6ebe3;
    --text: #14281b;
    --text-suau: #4f5f47;
    --accent: #1d4e68;
    --linia: color-mix(in srgb, var(--text) 18%, transparent);
}
[data-moment="alba"] {
    --fons: #f3e9e4;
    --fons-2: #ead8cf;
    --text: #2a2430;
    --text-suau: #6a5560;
    --accent: #9c4f3c;
}
[data-moment="capvespre"] {
    --fons: #e9d9bf;
    --fons-2: #dcc6a2;
    --text: #2b1e12;
    --text-suau: #6b5236;
    --accent: #8a3f17;
}
[data-moment="nit"] {
    --fons: #0e1a17;
    --fons-2: #16261f;
    --text: #e6ede6;
    --text-suau: #a5b5a8;
    --accent: var(--fulla);
}

*, *::before, *::after { box-sizing: border-box; }

.per-lectors { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
    margin: 0;
    overflow-x: clip;
    background: var(--fons);
    color: var(--text);
    font-family: var(--f-text);
    font-size: 1.125rem;
    line-height: 1.6;
    transition: background-color 0.6s var(--ease);
}

h1, h2, h3 {
    font-family: var(--f-display);
    font-weight: 600;
    line-height: 1;
    margin: 0 0 0.5em;
    text-wrap: balance;
}

p { margin: 0 0 1em; }
img { display: block; max-width: 100%; height: auto; }
.galeria { display: block; height: 100%; cursor: zoom-in; }
a img { transition: opacity 0.2s ease; }
a:focus-visible img { opacity: 0.8; }
@media (hover: hover) { a:hover img { opacity: 0.8; } }
.glightbox-container .gslide-title { font-family: var(--f-display); }
figure { margin: 0; }
ul { list-style: none; margin: 0; padding: 0; }
a { color: var(--accent); text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }

.saltar {
    position: absolute; left: var(--marge); top: -10rem; z-index: 50;
    padding: 0.5rem 1rem; background: var(--text); color: var(--fons);
    font-family: var(--f-display);
}
.saltar:focus { top: 0.5rem; }

/* ---------- Capçalera: flota damunt de la foto ---------- */

.capcalera {
    position: absolute;
    inset: 0 0 auto;
    z-index: 20;
    color: #fff;
    font-family: var(--f-display);
    font-size: var(--t-0);
}
.capcalera a, .capcalera button { color: inherit; }

.menu a, .capcalera .logo, .peu a {
    opacity: 1;
    transition: opacity 0.15s ease-in;
}
:is(.menu a, .capcalera .logo, .peu a):hover,
:is(.menu a, .capcalera .logo, .peu a):focus { opacity: 0.5; }
:is(.menu a, .capcalera .logo, .peu a):active {
    opacity: 0.8;
    transition: opacity 0.15s ease-out;
}

.capcalera__fila {
    display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
    padding: 1.25rem var(--marge);
}
.capcalera .logo { display: block; color: #bed630; line-height: 0; }
.logo svg { width: clamp(104px, 9vw, 132px); height: auto; filter: drop-shadow(0 1px 10px rgb(0 0 0 / 0.35)); }

.menu-boto {
    font: inherit; font-weight: 600; background: none;
    border: 1px solid currentColor; border-radius: 999px; padding: 0.45rem 1.1rem; cursor: pointer;
}
.menu-boto__tancar, .menu-boto[aria-expanded="true"] .menu-boto__obrir { display: none; }
.menu-boto[aria-expanded="true"] .menu-boto__tancar { display: inline; }

.menu { display: none; }
.menu.obert {
    display: flex; flex-direction: column; justify-content: center; gap: 2rem;
    position: fixed; inset: 0; z-index: -1;
    padding: 6rem var(--marge) 3rem;
    background: var(--fons); color: var(--text);
}
.menu__llista { display: flex; flex-direction: column; gap: 0.5rem; font-size: var(--t-3); font-weight: 600; }
.menu a { text-decoration: none; }
.menu a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; }
.idiomes { display: flex; gap: 1.25rem; }
.idiomes a { opacity: 0.65; }
.idiomes a[aria-current="true"] { opacity: 1; font-weight: 700; text-decoration: none; }
.menu-boto[aria-expanded="true"] { color: var(--text); }
.capcalera:has(.menu.obert) { color: var(--text); }
.capcalera:has(.menu.obert) .estat { text-shadow: none; }
.capcalera:has(.menu.obert) .logo svg { filter: none; }

@media (min-width: 60em) {
    .menu-boto { display: none; }
    .menu, .menu.obert {
        display: flex; flex-direction: row; align-items: center; gap: 3rem;
        position: static; padding: 0; background: none; color: inherit; z-index: auto;
    }
    .menu__llista { flex-direction: row; gap: 2rem; font-size: var(--t-0); font-weight: 500; }
}

/* Barra d'estat: dins la capçalera, sobre la foto */
.estat {
    display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 2rem;
    padding: 0 var(--marge);
    text-shadow: 0 1px 10px rgb(0 0 0 / 0.35);
}
.estat__text { margin: 0 auto 0 0; display: flex; align-items: center; gap: 0.6rem; font-weight: 600; }
.estat__text::before {
    content: ""; width: 0.65rem; height: 0.65rem; border-radius: 50%; background: #c9cfc4;
}
.estat__text[data-obert="si"]::before {
    background: var(--fulla);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--fulla) 35%, transparent);
    animation: batec 2.4s ease-in-out infinite;
}
@keyframes batec { 50% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--fulla) 0%, transparent); } }
.estat__enllac { display: none; }
@media (min-width: 40em) { .estat__enllac { display: inline; } }

/* Les pàgines interiors no tenen foto a dalt: capçalera sobre el fons */
body:not(:has(.viu)) .capcalera { position: relative; color: var(--text); }
body:not(:has(.viu)) .estat { text-shadow: none; padding-bottom: 1rem; border-bottom: 1px solid var(--linia); }
body:not(:has(.viu)) .logo svg { filter: none; }
body:not(:has(.viu)) .capcalera .logo { color: #8fa21c; }

/* ---------- 1. Viu ---------- */

.viu {
    position: relative;
    isolation: isolate;
    min-height: 100svh;
    display: grid;
    grid-template-rows: 1fr auto;
    overflow: hidden;
    color: #fff;
    background: #1b2a20;
}
.viu__img, .viu__canvas {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
    z-index: 0;
    pointer-events: none;
}
.viu__canvas { opacity: 0; transition: opacity 1.2s var(--ease); }
.viu:not(.viu--pagina) :is(.viu__img, .viu__canvas) { will-change: transform; }
.viu__canvas.a-punt { opacity: 1; }
[data-moment="nit"] .viu__img { filter: brightness(0.42) saturate(0.7) hue-rotate(10deg); }
[data-moment="capvespre"] .viu__img { filter: sepia(0.25) saturate(1.1) brightness(0.95); }

/* vel per llegir el text */
.viu::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    z-index: 1;
    background: linear-gradient(180deg, rgb(0 0 0 / 0.35) 0%, rgb(0 0 0 / 0) 28%, rgb(0 0 0 / 0) 45%, rgb(0 0 0 / 0.55) 100%);
}

.viu__contingut {
    position: relative; z-index: 2;
    align-self: end;
    padding: 9rem var(--marge) 2rem;
    user-select: text;
    -webkit-user-select: text;
}

/* El titular s'estira amb la força del vent real (eix wdth, es calcula un sol cop)
   i s'inclina amb les ratxes via transform des de vent.js */
.viu__titol {
    --forca: 0.15;
    font-size: var(--t-gegant);
    font-weight: 700;
    line-height: 0.88;
    letter-spacing: -0.035em;
    max-width: 11ch;
    margin: 0 0 1.5rem;
    font-variation-settings: "wdth" calc(100 + 30 * var(--forca)), "opsz" 144;
    transform-origin: 0 100%;
    will-change: transform;
    text-shadow: 0 2px 30px rgb(0 0 0 / 0.25);
}
.viu__titol .mot { display: inline-block; }

.viu__temps {
    font-size: var(--t-1);
    max-width: 30em;
    text-shadow: 0 1px 12px rgb(0 0 0 / 0.4);
}

.viu__sol {
    position: relative; z-index: 2;
    display: flex; align-items: center; gap: 1rem;
    padding: 1.25rem var(--marge) 1.5rem;
    font-family: var(--f-display); font-size: 0.9rem;
    font-variant-numeric: tabular-nums;
}
@media (max-width: 47.99em) { .viu__sol { padding-bottom: calc(4.5rem + env(safe-area-inset-bottom)); } }
.viu__sol-linia {
    flex: 1; height: 1px; background: rgb(255 255 255 / 0.5); position: relative;
}
.viu__sol-linia::after {
    content: ""; position: absolute; top: 50%; left: calc(var(--sol) * 100%);
    width: 0.9rem; height: 0.9rem; border-radius: 50%;
    background: #ffd36b; transform: translate(-50%, -50%);
    box-shadow: 0 0 18px 4px rgb(255 211 107 / 0.6);
}
[data-moment="nit"] .viu__sol-linia::after { background: #dfe7f5; box-shadow: 0 0 14px 3px rgb(223 231 245 / 0.5); }

/* ---------- 2. Manifest ---------- */

.manifest {
    padding: var(--espai) var(--marge);
    max-width: var(--amplada);
    margin: 0 auto;
}
.manifest__text {
    font-family: var(--f-display);
    font-size: clamp(2.2rem, 0.9rem + 4.2vw, 6rem);
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: -0.03em;
    max-width: 21ch;
    margin: 0;
    font-variation-settings: "wdth" 88, "opsz" 72;
}
.manifest__text .mot { color: color-mix(in srgb, var(--text) 55%, var(--fons)); transition: color 0.25s linear; }
.manifest__text .mot.vist { color: var(--text); }

/* ---------- 3. Categories en el flux normal de la pàgina ---------- */

.passeig { padding: 0 0 var(--espai); }
.passeig__titol {
    font-size: var(--t-2); font-weight: 600;
    padding: 0 var(--marge); margin-bottom: 2.5rem;
}
.passeig__pista {
    display: grid; gap: clamp(1.25rem, 3vw, 3rem);
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
    padding: 0 var(--marge);
}

.passeig__lamina {
    min-width: 0;
    display: flex; flex-direction: column;
}
.passeig__foto { aspect-ratio: 4 / 5; overflow: hidden; background: var(--fons-2); }
.passeig__foto img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 1.2s var(--ease), opacity 0.2s ease; }
.passeig__lamina:hover .passeig__foto img { transform: scale(1.02); }

.passeig.fixat { overflow: clip; padding-top: 50px; padding-bottom: 2rem; }
.passeig.fixat .passeig__titol { margin-bottom: 1.5rem; }
.passeig.fixat .passeig__pista { display: flex; width: max-content; }
.passeig.fixat .passeig__lamina { flex: 0 0 clamp(24rem, 40vw, 34rem); }
.passeig.fixat .passeig__lamina:nth-child(even) { margin-top: 2rem; }
.passeig.fixat .passeig__foto { height: 48svh; max-height: 42rem; aspect-ratio: auto; }
.passeig__scroll {
    display: block;
    width: calc(100% - 2 * var(--marge));
    height: 2rem;
    margin: 1rem var(--marge) 0;
    padding: 0;
    appearance: none;
    background: transparent;
    cursor: ew-resize;
    accent-color: #14281b;
}
.passeig__scroll::-webkit-slider-runnable-track { height: 0.4rem; border-radius: 1rem; background: var(--linia); }
.passeig__scroll::-webkit-slider-thumb {
    appearance: none; width: 3.5rem; height: 0.8rem;
    margin-top: -0.2rem; border-radius: 1rem; background: #14281b;
}
.passeig__scroll::-moz-range-track { height: 0.4rem; border-radius: 1rem; background: var(--linia); }
.passeig__scroll::-moz-range-thumb { width: 3.5rem; height: 0.8rem; border: 0; border-radius: 1rem; background: #14281b; }

.passeig__etiqueta {
    display: grid; grid-template-columns: 1fr auto; column-gap: 1rem;
    border-top: 1px solid var(--text); margin-top: 1rem; padding-top: 0.8rem;
}
.passeig__nom { font-size: var(--t-2); font-weight: 600; margin: 0; font-variation-settings: "wdth" 85; }
.passeig__llati { grid-column: 2; grid-row: 1; margin: 0.3rem 0 0; font-style: italic; color: var(--text-suau); }
.passeig__desc { grid-column: 1 / -1; margin-top: 0.6rem; font-size: 1rem; color: var(--text-suau); max-width: 30em; }

/* ---------- 4. Aquest mes ---------- */

.seccio { max-width: var(--amplada); margin: 0 auto; padding: 0 var(--marge) var(--espai); }
.mes__titol { font-size: var(--t-3); letter-spacing: -0.02em; margin-bottom: 3rem; }
.novetats {
    display: grid; gap: 3rem 2rem; margin-bottom: 2.5rem;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
}
.novetat { border-top: 1px solid var(--text); padding-top: 1rem; }
.novetat__foto { aspect-ratio: 3 / 2; overflow: hidden; margin: 0 0 1rem; }
.novetat__foto img { width: 100%; height: 100%; object-fit: cover; }
.novetat__titol { font-size: var(--t-2); font-weight: 600; font-variation-settings: "wdth" 85; }
.novetat__data { font-family: var(--f-display); font-size: 0.9rem; color: var(--text-suau); }
.enllac-gran { font-family: var(--f-display); font-size: var(--t-1); font-weight: 600; }

/* ---------- Pàgines interiors ---------- */

.seccio--capcal { padding-top: clamp(3rem, 2rem + 5vw, 7rem); padding-bottom: 3rem; }
.pagina__titol { font-size: var(--t-gegant); font-weight: 700; letter-spacing: -0.035em; line-height: 0.9; }
.pagina__intro, .prosa { max-width: 36em; font-size: var(--t-1); }
.prosa { font-size: 1.125rem; }
.prosa h2 { font-size: var(--t-2); margin-top: 2em; }
.botons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.boto {
    display: inline-block; padding: 0.85rem 1.5rem; border: 1.5px solid var(--text); border-radius: 999px;
    color: var(--text); font-family: var(--f-display); font-weight: 600; text-decoration: none;
}
.boto--ple { background: var(--text); color: var(--fons); }

.herbari { display: grid; gap: 3rem 2rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.lamina__foto { aspect-ratio: 4 / 5; overflow: hidden; background: var(--fons-2); margin-bottom: 1rem; }
.lamina__foto img { width: 100%; height: 100%; object-fit: cover; }
.lamina__etiqueta { border-top: 1px solid var(--text); padding-top: 0.75rem; }
.lamina__nom { font-size: var(--t-1); font-variation-settings: "wdth" 85; margin-bottom: 0.15rem; }
.lamina__llati { font-style: italic; color: var(--text-suau); margin-bottom: 0.5rem; }
.lamina__desc { font-size: 1rem; color: var(--text-suau); }

.ample { margin-bottom: var(--espai); }
.ample__img { width: 100%; max-height: 80vh; object-fit: cover; }


/* ---------- Pàgines interiors: capçalera viva més baixa ---------- */

.viu--pagina { min-height: 78svh; grid-template-rows: 1fr; }
.viu--pagina .viu__contingut { padding-bottom: clamp(2rem, 5vw, 4rem); }
.viu--pagina .viu__titol { max-width: 14ch; }
.viu__mini {
    display: inline-flex; align-items: center; gap: 0.6rem; margin: 0;
    font-family: var(--f-display); font-size: 0.9rem; opacity: 0.9;
    text-shadow: 0 1px 10px rgb(0 0 0 / 0.4);
}
.viu__mini::before { content: ""; width: 1.6rem; height: 1px; background: currentColor; }
@media (max-width: 47.99em) { .viu--pagina { min-height: 70svh; } }

.seccio--despres-capcal { padding-top: var(--espai); }
.prosa--gran { font-size: var(--t-2); line-height: 1.45; max-width: 32em; }

/* ---------- Catàleg: files editorials alternades ---------- */

.cataleg { padding: var(--espai) var(--marge) 0; max-width: var(--amplada); margin: 0 auto; display: grid; gap: var(--espai); }
.cataleg__fila { display: grid; gap: 1.5rem; align-items: end; }
.cataleg__foto { aspect-ratio: 5 / 4; overflow: hidden; background: var(--fons-2); }
.cataleg__foto img { width: 100%; height: 100%; object-fit: cover; }
.cataleg__nom { font-size: var(--t-3); font-weight: 700; letter-spacing: -0.03em; line-height: 0.95; font-variation-settings: "wdth" 82, "opsz" 144; margin-bottom: 0.4rem; }
.cataleg__llati { font-style: italic; color: var(--text-suau); font-size: var(--t-1); margin-bottom: 1rem; }
.cataleg__desc { max-width: 28em; color: var(--text-suau); }
.cataleg__text { border-top: 1px solid var(--text); padding-top: 1rem; }

@media (min-width: 60em) {
    .cataleg__fila { grid-template-columns: 7fr 5fr; gap: 4rem; }
    .cataleg__fila:nth-child(even) { grid-template-columns: 5fr 7fr; }
    .cataleg__fila:nth-child(even) .cataleg__foto { order: 2; }
    .cataleg__fila:nth-child(3n) .cataleg__foto { aspect-ratio: 4 / 5; }
}

/* ---------- Crida final ---------- */

.crida { padding: var(--espai) var(--marge); max-width: var(--amplada); margin: 0 auto; }
.crida__text { font-family: var(--f-display); font-size: var(--t-3); font-weight: 500; line-height: 1.05; letter-spacing: -0.025em; max-width: 22ch; font-variation-settings: "wdth" 88; }


/* ---------- Ressenyes ---------- */

.ressenyes__resum { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem 1.5rem; margin-bottom: 2.5rem; font-family: var(--f-display); }
.ressenyes__resum p { margin: 0; }
.ressenyes__nota { font-size: var(--t-3); font-weight: 700; display: flex; align-items: baseline; gap: 0.75rem; }
.ressenyes__estrelles, .ressenya__estrelles { color: #c99a1a; letter-spacing: 0.1em; font-size: 1.1rem; }
[data-moment="nit"] .ressenyes__estrelles, [data-moment="nit"] .ressenya__estrelles { color: #e2bd4f; }
.ressenyes__llista { display: grid; gap: 2.5rem 2rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); }
.ressenya { border-top: 1px solid var(--text); padding-top: 1rem; display: flex; flex-direction: column; }
.ressenya__estrelles { margin-bottom: 0.5rem; }
.ressenya__text { margin: 0 0 1rem; flex: 1; }
.ressenya__autor { font-family: var(--f-display); font-weight: 600; margin: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; }
.ressenya__autor span { font-weight: 400; color: var(--text-suau); }
.ressenyes__peu { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; font-family: var(--f-display); font-size: 0.95rem; color: var(--text-suau); }
.ressenyes__font { font-family: var(--f-display); font-size: 0.85rem; color: var(--text-suau); margin-top: 1rem; }
.ressenyes__carregant { color: var(--text-suau); }

/* ---------- Consells ---------- */

.casa__text { margin-bottom: 3.5rem; }

.consells { display: grid; gap: 4rem 3rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); }
.consell-fitxa a { display: block; color: var(--text); text-decoration: none; border-top: 1px solid var(--text); padding-top: 1rem; }
.consell-fitxa__foto { aspect-ratio: 3 / 2; overflow: hidden; margin: 0 0 1rem; background: var(--fons-2); }
.consell-fitxa__foto img { width: 100%; height: 100%; object-fit: cover; }
.consell-fitxa__titol { font-size: var(--t-2); font-weight: 700; line-height: 1.05; letter-spacing: -0.02em; font-variation-settings: "wdth" 85; }
.consell-fitxa__resum { color: var(--text-suau); }
.consell-fitxa__mes { font-family: var(--f-display); font-weight: 600; color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }
.consell-fitxa a:hover .consell-fitxa__titol { text-decoration: underline; text-decoration-thickness: 2px; }

.article { padding: clamp(2.5rem, 2rem + 4vw, 6rem) var(--marge) var(--espai); max-width: 52rem; margin: 0 auto; }
.article__torna { font-family: var(--f-display); margin-bottom: 2rem; }
.article__titol { font-size: clamp(2.4rem, 1.2rem + 4.5vw, 5.2rem); font-weight: 700; letter-spacing: -0.035em; line-height: 0.95; font-variation-settings: "wdth" 85, "opsz" 144; }
.article__resum { font-size: var(--t-1); color: var(--text-suau); max-width: 34em; }
.article__data { font-family: var(--f-display); font-size: 0.9rem; color: var(--text-suau); }
.article__foto { margin: 2.5rem calc(-1 * var(--marge)); }
.article__foto img { width: 100%; max-height: 70vh; object-fit: cover; }
.article__cos { margin-top: 2.5rem; max-width: 36em; }
.article__cos h2 { font-size: var(--t-2); margin-top: 2.2em; letter-spacing: -0.015em; }
.article__cos ul { padding-left: 1.2rem; }
.article__cos li { margin-bottom: 0.4rem; }
.article__crida { margin-top: 4rem; padding-top: 2rem; border-top: 1px solid var(--text); font-family: var(--f-display); font-size: var(--t-1); }

/* ---------- 5. Visita'ns ---------- */

.visita {
    background: var(--text); color: var(--fons);
    padding: var(--espai) var(--marge);
}
.visita a { color: inherit; }
.visita__titol { font-size: var(--t-gegant); font-weight: 700; letter-spacing: -0.035em; line-height: 0.9; margin-bottom: 4rem; }
.visita h3 {
    font-family: var(--f-display); font-size: var(--t-0); font-weight: 600;
    opacity: 0.65; margin: 0 0 0.5rem;
}
.visita p + h3 { margin-top: 2rem; }
.visita__graella { display: grid; gap: 3rem; max-width: var(--amplada); }
@media (min-width: 48em) {
    .visita__graella { grid-template-columns: 1fr 1fr; }
    .visita__mapa { grid-column: 1 / -1; }
}
@media (min-width: 72em) {
    .visita__graella { grid-template-columns: 1fr 1.2fr 1.6fr; }
    .visita__mapa { grid-column: auto; }
}
.horari { margin: 0 0 1rem; font-family: var(--f-display); font-variant-numeric: tabular-nums; }
.horari__dia {
    display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0;
    border-bottom: 1px solid color-mix(in srgb, var(--fons) 20%, transparent);
}
.horari dt::first-letter { text-transform: uppercase; }
.horari dd { margin: 0; text-align: right; }
.horari__dia[aria-current="date"] { font-weight: 700; }
.horari__dia[aria-current="date"] dt::after {
    content: ""; display: inline-block; width: 0.5rem; height: 0.5rem; margin-left: 0.5rem;
    border-radius: 50%; background: var(--fulla); vertical-align: middle;
}
.horari__nota { font-size: 1rem; opacity: 0.7; }
.visita__mapa {
    display: grid; align-content: start; justify-items: start; gap: 1rem;
    min-width: 0;
}
.boto--clar { background: var(--fons); color: var(--text); border-color: var(--fons); cursor: pointer; font-size: 1rem; }
.visita__mapa iframe { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border: 0; filter: grayscale(0.5) contrast(1.05); }

/* ---------- Peu ---------- */

.peu { font-family: var(--f-display); font-size: 0.95rem; padding: 3rem var(--marge) 6rem; }
.peu__fila { display: grid; gap: 1.5rem; max-width: var(--amplada); }
.peu a { color: var(--text); }
.peu__legal { color: var(--text-suau); }
@media (min-width: 48em) {
    .peu { padding-bottom: 3rem; }
    .peu__fila { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Barra d'accions (mòbil) ---------- */

.accions {
    position: fixed; inset: auto 0 0; z-index: 30;
    display: grid; grid-template-columns: 1fr 1fr;
    background: var(--text); font-family: var(--f-display); font-weight: 600;
    padding-bottom: env(safe-area-inset-bottom);
}
.accions--3 { grid-template-columns: repeat(3, 1fr); }
.accions a { padding: 1rem; text-align: center; color: var(--fons); text-decoration: none; }
.accions a + a { border-left: 1px solid color-mix(in srgb, var(--fons) 25%, transparent); }
@media (min-width: 48em) { .accions { display: none; } }

@media (prefers-reduced-motion: reduce) {
    .viu__canvas { display: none; }
    .manifest__text .mot { color: var(--text); }
    .estat__text[data-obert="si"]::before { animation: none; }
    .passeig__foto img { transform: none; }
}
