/* Mas Comabella — WEB B. Hero B «Migdia».
   Tema claro, Instrument Serif de display, acento terracota. Un acento, un
   radio, un tema en toda la página.
   Diales heredados del hero: VARIANZA 3 · MOVIMIENTO 2 · DENSIDAD 2.

   Sobre la paleta: terracota, arena y hueso es la familia que la Taste Skill
   prohíbe por defecto en encargos «premium artesano». Aquí vale, y por eso se
   escribe: los valores están muestreados de SU logo, que ya existe y es bueno.
   Lo que sí se evita es el dorado de acento, que es lo que la convierte en
   plantilla. No hay ni un dorado en toda la página.

   Y sobre Instrument Serif: la Taste la desaconseja por nombre. Se queda
   porque es la que el usuario eligió al ver los cuatro heroes. Queda anotado
   para que no se repita por inercia en otro cliente. */

@import url("fonts/fonts.css");

:root {
  --fons: #efeae2;
  --fons-2: #e6dfd4;          /* la banda siguiente: mismo color, otro tono */
  --fons-3: #5c3529;          /* el tono profundo, para el bloque de contacto */
  --tinta: #4a2f25;
  --tinta-fluixa: #6d5547;
  --tinta-feble: #7a6355;   /* bajado: a #9a8577 el texto de la carta se quedaba en 2,9 sobre el hueso */
  --accent: #784939;
  --obert: #4f7a3f;

  --radi: 14px;
  --marge: clamp(24px, 4.2vw, 76px);
  --aire: clamp(18px, 2.2vh, 30px);
  --max: 1400px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Instrument Sans', system-ui, sans-serif;
  color: var(--tinta);
  background: var(--fons);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }

.dins { max-width: var(--max); margin: 0 auto; padding-inline: var(--marge); }

/* ---------- Tipografía ---------- */
.display { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; line-height: .98; letter-spacing: -.01em; margin: 0; }
h2.display { font-size: clamp(36px, 4.6vw, 68px); }
h3 { font-family: 'Instrument Sans', sans-serif; font-weight: 600; margin: 0; }
p { margin: 0; line-height: 1.6; }
.cos-text { color: var(--tinta-fluixa); max-width: 62ch; }

/* ---------- Cabecera ---------- */
.cap { position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 64px; max-height: 92px; padding: clamp(14px, 2vh, 22px) var(--marge); }
.cap__logo { height: clamp(44px, 5.8vh, 62px); width: auto; }
.menu { display: flex; gap: clamp(14px, 1.8vw, 30px); font-size: 12.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.menu a { text-decoration: none; opacity: .8; display: inline-flex; align-items: center; min-height: 44px; }
.menu a:hover, .menu a:focus-visible { opacity: 1; }

/* ---------- Estado ---------- */
.estat { display: inline-flex; align-items: center; gap: 9px; font-size: 12.5px; font-weight: 500; letter-spacing: .09em; text-transform: uppercase; }
.estat::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--obert); box-shadow: 0 0 0 3px color-mix(in srgb, var(--obert) 20%, transparent); }
/* El unico punto de color de la pagina marca un estado de verdad, y cambia. */
.estat[data-obert="0"]::before { background: #a8513a; box-shadow: 0 0 0 3px color-mix(in srgb, #a8513a 20%, transparent); }

/* ---------- Acciones ---------- */
.accions { display: flex; flex-wrap: wrap; gap: 12px; }
.bo { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding: 0 26px; border-radius: var(--radi); border: 1px solid transparent; font: inherit; font-size: 14px; font-weight: 600; letter-spacing: .05em; white-space: nowrap; text-decoration: none; cursor: pointer; transition: background-color .18s ease, border-color .18s ease, transform .1s ease; }
.bo:active { transform: translateY(1px); }
.bo--ple { background: var(--accent); color: #f6f2ec; }
.bo--ple:hover { background: #5c3529; }
.bo--buit { border-color: color-mix(in srgb, var(--accent) 42%, transparent); color: var(--accent); }
.bo--buit:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, transparent); }
.bo--clar { background: #f6f2ec; color: #4a2f25; }
.bo--clar:hover { background: #fffdf9; }

/* ---------- HERO (B, tal cual sale de /boceto) ---------- */
.hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; overflow: hidden; background: #2e2928; }
.hero__fons { position: absolute; inset: 0; z-index: 0; }
/* El encuadre: 11% dejaba medio cielo y la casa en una franja. A 28% entran el
   arco de ladrillo y el rotulo pintado de la pared, sigue habiendo cielo liso
   detras del nombre (el titular va SIN velo: es el movimiento de esta
   direccion) y todavia no asoma ningun coche del aparcamiento, que empieza a
   verse a partir del 40%. */
.hero__fons img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }

/* El vel de dalt. La foto nova -la terrassa amb les taules parades, que van
   demanar ells- no te cap zona llisa: el menu i el titol queien sobre els
   para-sols blancs i donaven 1,18 de contrast quan el minim es 4,5. Sense
   aixo no es llegien.
   Va NOMES a dalt i es fon abans de la meitat: la taula del primer pla es
   queda neta i la foto no sembla enfosquida, nomes assentada. */
.hero__fons::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg,
    rgba(26, 20, 16, .70) 0%,
    rgba(26, 20, 16, .66) 12%,
    rgba(26, 20, 16, .48) 20%,
    rgba(26, 20, 16, .45) 30%,
    rgba(26, 20, 16, .18) 42%,
    transparent 54%);
}
.hero .cap { color: #efeae2; }
/* Sobre foto clara el logo en hueso se perdia: dos sombras, una corta y otra
   larga, lo separan del cel i del fullatge sense tocar la foto. */
.hero .cap__logo { filter: drop-shadow(0 1px 2px rgba(16,28,44,.7)) drop-shadow(0 3px 20px rgba(16,28,44,.55)); }
.hero__cos { position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column; align-items: center; padding: clamp(8px, 2vh, 26px) var(--marge) clamp(26px, 4vh, 54px); text-align: center; }
.hero__titol { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; font-size: clamp(34px, 4.6vw, 74px); letter-spacing: .085em; text-transform: uppercase; color: #efeae2; line-height: 1.04; margin: 0; text-shadow: 0 1px 22px rgba(20,34,54,.34); }
/* La marca de su logo. Antes era un arco de 34x20 cuyo vertice se salia del
   viewBox y se recortaba: se veian solo las dos patas, como un parentesis. */
.hero__ornament { display: block; margin: 0 auto calc(var(--aire) * .55); width: 40px; height: 30px; opacity: .92; }
.hero__que { margin-top: calc(var(--aire) * .62); font-size: 12.5px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: #efeae2; text-shadow: 0 1px 16px rgba(20,34,54,.45); }
/* Aqui habia .hero__teulada: un SVG que prolongaba el alero de la masia hacia
   abajo, pensado para OTRA foto. Al cambiar la foto del hero y bajar el
   encuadre, el alero real quedo a media altura y la linea cruzaba el muro,
   el arco y la sombrilla sin alinearse con nada: se leia como un aranazo.
   Fuera, ademas, por la regla de la casa: ni una raya decorativa.
   En su lugar, un degradado del propio fondo, que asienta el texto de abajo
   sin dibujar ningun borde. */
.hero::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 260px;
  z-index: 1; pointer-events: none;
  /* Pujat de .5 a .82 i de 190 a 260 px el 25-10-2026: amb la foto nova el
     xip d'obertura cau sobre el terra assolellat i es quedava en 2,35 de
     contrast quan el minim es 4,5. Mesurat amagant el text i mirant el
     fons de debo, no la caixa sencera -que te les lletres a dins i les
     lletres son clares-. */
  background: linear-gradient(to top, rgba(38, 31, 26, .82), transparent);
}
.hero__baix { position: relative; z-index: 2; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 0 var(--marge) clamp(24px, 4vh, 48px); color: #efeae2; }
/* El chip va sobre el mur assolellat: la sombra curta es la que el sosté. */
.hero__baix .estat { text-shadow: 0 1px 2px rgba(30,22,16,.8), 0 2px 18px rgba(30,22,16,.6); }
.hero__baix .estat::before { background: #9fd18a; box-shadow: 0 0 0 3px rgba(159,209,138,.22); }
/* Y tancat, el mateix terracota aclarit com el verd, perque es vegi sobre la foto.
   Sense aquesta linia, la de dalt (mateixa especificitat, despres) el deixava
   sempre verd, tambe quan deia «Tancat». */
.hero__baix .estat[data-obert="0"]::before { background: #e29983; box-shadow: 0 0 0 3px rgba(226,153,131,.22); }

/* ---------- Secciones ---------- */
/* El hero queda FUERA de esto: es un <section> y se llevaba el mismo relleno
   que las demas (9vh = 87 px en una ventana de 970), que empujaba la cabecera
   hacia abajo y comia alto por arriba y por abajo. */
section:not(.hero) { padding-block: clamp(56px, 9vh, 112px); }
/* Las secciones se separan cambiando el tono, que es la regla del sistema:
   ni reglas, ni curvas, ni degradados. Al meter #cuina en medio el 14-10 se
   rompio la alternancia -la carta y la cuina quedaban las dos en --fons y se
   leian como una sola seccion larguisima-. Restaurada: a partir de aqui van
   alternando hasta el bloque profundo del final. */
#carta { background: var(--fons); }
#cuina { background: var(--fons-2); }
#foc { background: var(--fons-3); color: #efeae2; }
section#esmorzars { background: var(--fons); }
#masia { background: var(--fons); }
#grups { background: var(--fons-2); }
#reservar { background: var(--fons); }
#arribar { background: var(--fons-3); color: #efeae2; }

/* ---------- LA CARTA · movimiento de monte ----------
   Nombre en versalitas, ingredientes en gris debajo, y el precio alineado a la
   derecha en su propia columna. Los bloques se separan con un filete. */
.carta__cap { text-align: center; margin-bottom: clamp(30px, 4.6vh, 56px); }
.carta__cap p { margin-top: 10px; color: var(--tinta-fluixa); font-size: 14px; }

/* LA CARTA ------------------------------------------------------------------
   Un menu es una lista de DECISIONES. La version anterior ponia los platos en
   prosa separados por puntos volados y no se podia escanear, ni se entendia que
   habia que elegir. Ahora: un plato por linea, y el «tria'n un» dicho.
   Sin reglas ni puntitos de relleno: el peso y el tamano ordenan, que es lo que
   el sistema manda para las listas largas. */
/* Cada tarjeta mide lo que mide. Forzandolas a la misma altura, la de la
   calcotada -que tiene tres platos y la otra diez- se quedaba con 250 px de
   vacio dentro, y eso se lee como que falta algo. Dos menus de distinta
   largura acaban a distinta altura, y ya esta. */
.menus { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 30px); align-items: start; }
.menu-carta { background: var(--fons-2); border-radius: var(--radi); padding: clamp(22px, 2.4vw, 34px); display: flex; flex-direction: column; }

/* El arco va aqui, en la foto, no en la tarjeta: la tarjeta es el muro y la
   foto es la ventana. REFERENCIAS.md: el arco «es su forma, no un adorno» -el de
   ladrillo de la entrada, el finestral, el dibujo del logo-, y hasta ahora solo
   salia una vez en toda la pagina. */
.menu-carta__foto { margin: 0 0 clamp(20px, 2.6vh, 30px); aspect-ratio: 3 / 2; overflow: hidden; background: #bcb48f;
  border-radius: 50% 50% var(--radi) var(--radi) / 34% 34% var(--radi) var(--radi); }
.menu-carta__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

.menu-carta__nom { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); text-align: center; }
.menu-carta__preu { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; font-size: clamp(46px, 5.2vw, 70px); line-height: 1; color: var(--tinta); margin: clamp(4px, .8vh, 10px) 0 6px; text-align: center; }
/* El euro, mas pequeno y levantado hasta la altura de las versalitas. */
.menu-carta__eur { font-size: .36em; color: var(--accent); vertical-align: .62em; margin-left: .1em; }
/* «per persona» faltaba: un numero grande solo, sin unidad, no dice lo que
   cuesta comer alli. */
.menu-carta__qui { margin: 0 0 clamp(22px, 3vh, 34px); text-align: center; font-size: 12.5px; color: var(--tinta-fluixa); }

.curs { margin-bottom: clamp(16px, 2.2vh, 26px); }
/* El ultimo curso no deja margen: si no, se suma al relleno del pie y queda
   un hueco doble que parece que falta algo. */
.curs:last-of-type { margin-bottom: 0; }
.curs__nom { margin: 0 0 8px; font-size: 12.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta); display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
/* El «tria'n un» es la instruccion que faltaba: sin ella no se sabe si te dan
   los cuatro primeros o eliges uno. */
.curs__tria { font-weight: 400; font-size: 11px; letter-spacing: .1em; text-transform: none; color: var(--accent); }
.curs ul { margin: 0; padding: 0; list-style: none; }
.curs li { font-size: 15px; line-height: 1.55; color: var(--tinta-fluixa); padding: 3px 0; }

/* El pie, pegado abajo, para que las dos tarjetas acaben a la misma altura
   aunque una tenga mas platos. Separado por aire, no por una regla: las reglas
   decorativas estan vetadas en esta direccion. */
.menu-carta__peu { margin: clamp(6px, 1vh, 12px) 0 0; padding-top: clamp(18px, 2.4vh, 28px); font-size: 13px; line-height: 1.7; color: var(--tinta-fluixa); }

.carta-solta { margin-top: clamp(36px, 5.2vh, 68px); }
.carta-solta > h3 { margin: 0 0 clamp(20px, 2.6vh, 30px); font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); text-align: center; }
.carta-solta__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 44px); }
.cs__nom { margin: 0 0 8px; font-size: 12.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta); }
.carta-solta__cols ul { margin: 0; padding: 0; list-style: none; }
.carta-solta__cols li { font-size: 15px; line-height: 1.55; color: var(--tinta-fluixa); padding: 3px 0; }

.alergens { margin-top: clamp(20px, 3vh, 36px); font-size: 13px; color: var(--tinta-feble); text-align: center; }

/* ---------- LA MASIA · movimiento de capheroasters ----------
   Rejilla escalonada de fotos en tarjeta, alturas desiguales. */
.masia__cap { max-width: 44ch; display: grid; gap: var(--aire); }

/* El text de la masia i el video, un al costat de l'altre: la columna de la
   dreta ja estava buida -el .masia__cap no passa de 44ch- i el video hi cap
   sense allargar la pagina ni un pixel. */
.masia__dalt { display: grid; grid-template-columns: minmax(0, 46ch) minmax(0, 300px); gap: clamp(26px, 4vw, 56px); align-items: center; justify-content: center; margin-bottom: clamp(30px, 4.6vh, 56px); }
.masia__dalt .masia__cap { max-width: none; }
.masia__video { margin: 0; }
/* 9:16, que es com esta gravat: ni es retalla a apaisat ni es deixa banda
   negra. Els altres tres videos son 4:5 i per aixo .video-peca__marc ho
   porta; aqui es sobreescriu. */
.masia__video .video-peca__marc { aspect-ratio: 9 / 16; }
#masia .video-peca figcaption { color: var(--tinta-fluixa); }

@media (max-width: 900px) {
  .masia__dalt { grid-template-columns: 1fr; gap: clamp(22px, 4vh, 34px); }
  .masia__video .video-peca__marc { max-width: 300px; margin-inline: auto; }
  .masia__video figcaption { text-align: center; }
}
/* La galeria de plats. A diferencia de .reixa, que va escalonada y es
   editorial, esta es uniforme: doce cuadrados iguales que se leen de un
   vistazo, como una carta ilustrada. 4 columnas, 3 por debajo de 1100 y 2 en
   movil. El hover lo comparte con .amplia. */
/* ABANS D'ARRIBAR A TAULA · los videos --------------------------------------
   Sobre el tono profundo: el video luce sobre oscuro, y de paso la banda de la
   cuina (--fons-2) y la masia (--fons) siguen alternando sin repetirse.
   Tres piezas verticales 4:5, que es el formato en el que estan grabados: ni se
   recorta a apaisado ni se deja barra negra. */
#foc .foc__cap { text-align: center; margin-bottom: clamp(30px, 4.6vh, 56px); }
#foc h2 { color: #efeae2; }
#foc .foc__cap p { margin-top: 10px; font-size: 14px; color: #d8cabd; }

.videos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 2vw, 30px); }
.video-peca { margin: 0; }
.video-peca__marc { position: relative; aspect-ratio: 4 / 5; border-radius: var(--radi); overflow: hidden; background: #3a211a; }
.video-peca video { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-peca figcaption { margin-top: 12px; font-size: 13.5px; line-height: 1.6; color: #e3d8cc; }

/* El boton de play. Nace oculto en el HTML y lo destapa el JS: sin JavaScript
   mandan los controles nativos del <video>, y un boton muerto no ayuda a
   nadie. 64 px de diana, muy por encima de los 44 que pide la revision. */
.video-peca__play {
  position: absolute; inset: 0; margin: auto; width: 64px; height: 64px;
  display: grid; place-items: center; padding: 0;
  border: 0; border-radius: 50%; cursor: pointer;
  background: color-mix(in srgb, #efeae2 92%, transparent); color: var(--accent);
  box-shadow: 0 6px 26px rgba(16, 10, 8, .42);
  transition: transform .18s ease, background-color .18s ease;
}
.video-peca__play svg { width: 28px; height: 28px; margin-left: 3px; }
.video-peca__play:focus-visible { outline: 2px solid #efeae2; outline-offset: 3px; }

#foc .foc__xarxa { margin: clamp(26px, 3.6vh, 44px) 0 0; text-align: center; }
#foc .xarxa { color: #efeae2; }
#foc .xarxa--gran { border-color: rgba(239, 234, 226, .34); }
#foc .xarxa--gran:hover { border-color: #efeae2; background: rgba(239, 234, 226, .08); }

.cuina__reixa { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(10px, 1.3vw, 18px); }
.cuina__reixa figure { margin: 0; aspect-ratio: 1 / 1; border-radius: var(--radi); overflow: hidden; background: #bcb48f; }
.cuina__reixa img { width: 100%; height: 100%; object-fit: cover; }

.reixa { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 22px); }
.reixa figure { margin: 0; border-radius: var(--radi); overflow: hidden; background: #bcb48f; }
.reixa img { width: 100%; height: 100%; object-fit: cover; }
.reixa figure { aspect-ratio: 3 / 4; }

/* ---------- GRUPS · movimiento de puzzle-inn ----------
   Los espacios, uno a uno, cada uno con su foto, su nombre y una descripción
   en dos registros. Sin las etiquetas giradas sobre la foto del original: la
   Taste Skill las prohíbe. */
/* ---------- GRUPS: el titular i el text, un a cada banda ---------- */
.grups__cap { max-width: none; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 72px); align-items: start; }
/* 18,5 px i no els 16 del cos: es l'unic paragraf que te mitja franja per
   ell sol, i a 16 es veia petit al costat d'un titular de 68. */
.grups__cap .cos-text { max-width: none; font-size: clamp(16.5px, 1.3vw, 18.5px); line-height: 1.75; }

.espais { display: grid; gap: clamp(26px, 4vh, 52px); margin-top: clamp(26px, 4vh, 48px); }
.espai { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(22px, 3vw, 50px); align-items: center; }
.espai:nth-child(2) { direction: rtl; }
.espai:nth-child(2) > * { direction: ltr; }
.espai figure { margin: 0; border-radius: var(--radi); overflow: hidden; aspect-ratio: 3 / 2; }
.espai img { width: 100%; height: 100%; object-fit: cover; }
.espai__text { display: grid; gap: 12px; }
.espai__nom { font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(24px, 2.6vw, 36px); line-height: 1.05; }
.espai__que { font-size: 15.5px; }
.espai__per { font-size: 14px; color: var(--tinta-fluixa); }

/* ---------- RESERVAR · movimiento de boswell ----------
   El título de sección lleva debajo la información de servicio. */
.reservar { display: grid; gap: var(--aire); max-width: 56ch; }
.reservar__servei { font-size: 14px; color: var(--tinta-fluixa); }

/* ---------- COM ARRIBAR · movimiento de monte ----------
   Bloque de color, tres columnas centradas, y el mapa como enlace. */
#arribar .tres { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(26px, 4vw, 64px); text-align: center; }
#arribar h2 { text-align: center; color: #efeae2; margin-bottom: clamp(30px, 4.6vh, 56px); }
/* el cobre del logo se quedaba en 3,56 sobre el tono profundo: se aclara */
#arribar h3 { font-size: 12.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #e0bb9b; margin-bottom: 14px; }
#arribar p { font-size: 15px; color: #e3d8cc; line-height: 1.8; }
#arribar a { color: #efeae2; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; }

/* ---------- EL MAPA ----------
   SVG en linia amb la seva paleta, com el d'El Pot. Va sota les tres
   columnes, a tota l'amplada de la franja: es el que es mira DESPRES de
   llegir l'adreca, no abans. */
.mapa { margin: clamp(32px, 5vh, 62px) 0 0; }
#arribar .mapa__diana { display: block; min-height: 0; border-radius: var(--radi); overflow: hidden; }
/* 2,4 d'ample i no 16/9: a 390 px una franja apaisada deixaria els carrers
   en un fil, i el nom del restaurant ocupant-ho tot. */
.mapa__svg { display: block; width: 100%; height: auto; aspect-ratio: 720 / 440; }
.mapa__diana:focus-visible { outline: 2px solid #efeae2; outline-offset: 3px; }

.mapa__peu { margin: 2px 0 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 18px; font-size: 12.5px; color: #d8cabd; }
.mapa__peu > span { display: inline-flex; align-items: center; min-height: 44px; }
#arribar .mapa__credit { display: inline-flex; align-items: center; min-height: 44px; color: #c9b8a8; text-underline-offset: 3px; }

@media (max-width: 760px) {
  /* 3:2 i no quadrat: amb 1:1 el slice retallava 140 px per banda i es
     menjava el principi d'"Avinguda de Sant Llorenç", que es l'adreca.
     A 3:2 en retalla 30 i el nom hi cap sencer. */
  .mapa__svg { aspect-ratio: 3 / 2; }
  .mapa__peu { justify-content: center; text-align: center; }
}

/* El revelado al bajar se quito el 2026-10-14. El dial de movimiento de esta
   direccion es 2, que en la Taste Skill significa sin animaciones automaticas;
   y ademas escondia contenido detras del JavaScript: cuando la CSP bloqueo el
   script, media web se quedo en blanco. Ahora todo se ve siempre. */

/* ---------- Pie ---------- */
footer { background: var(--fons-3); padding-block: clamp(26px, 4vh, 44px); font-size: 13px; color: #c3b0a4; border-top: 1px solid rgba(239,234,226,.14); }
.peu { display: flex; flex-wrap: wrap; gap: 2px 0; align-items: center; justify-content: center; text-align: center; }
.peu > p { display: inline-flex; align-items: center; margin: 0; }
/* Un punt entre les dades: aixi es llegeixen com una sola linia i no com
   tres textos escampats d'una punta a l'altra de la pantalla. */
.peu > p + p::before { content: "·"; margin-inline: 16px; color: rgba(227,216,204,.45); }
/* ---------- La firma de l'agencia ----------
   Fila propia sota les dades del client, centrada. El logo es un NEO: no
   s'abaixa l'opacitat -atenuar-lo l'apaga-, el hover li puja el brillo. */
.firma { margin-top: clamp(14px, 2vh, 20px); padding-top: clamp(14px, 2vh, 20px);
         border-top: 1px solid rgba(239,234,226,.1); display: flex; justify-content: center; }
.firma__a { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 10px; text-decoration: none; }
/* El mes petit del peu, que va a 13 px: es una firma, no un titular. */
.firma__que { font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; color: #bda697; }
.firma__a img { height: 36px; width: auto; display: block; transition: filter .3s ease; }
.firma__a:hover img, .firma__a:focus-visible img { filter: brightness(1.25); }
.firma__a:focus-visible { outline: 2px solid #efeae2; outline-offset: 2px; }

.peu a { color: #e3d8cc; display: inline-flex; align-items: center; min-height: 44px; }


/* En pantalla estreta el punt separador comencaria linia: les dades s'apilen. */
@media (max-width: 640px) {
  .peu { flex-direction: column; gap: 8px; }
  .peu > p + p::before { content: none; }
}

@media (max-width: 900px) {
  .menu { display: none; }
  .cuina__reixa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* Tres videos verticales en 390 px serian de 110: uno debajo de otro. */
  .videos { grid-template-columns: 1fr; gap: clamp(22px, 4vh, 34px); }
  .video-peca__marc { max-width: 420px; margin-inline: auto; }
  .video-peca figcaption { text-align: center; }
  /* La foto del hero es 3:2 y la pantalla del movil es casi el doble de alta
     que ancha: al recortar por el centro solo queda pared. Se desplaza a la
     izquierda para que entren el arco, la terraza y el alero. */
  .hero__fons img { object-position: 20% 50%; }
  .hero__baix { flex-direction: column; align-items: flex-start; }
  .menus { grid-template-columns: 1fr; }
  .carta-solta__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reixa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .espai, .espai:nth-child(2) { grid-template-columns: 1fr; direction: ltr; }
  .grups__cap { grid-template-columns: 1fr; }
  #arribar .tres { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* Sin style="…" en el HTML: la CSP del contenedor es style-src 'self' y los
   descarta en silencio, asi que lo que va ahi no se aplica una vez publicado. */
.accions--separades { margin-top: var(--aire); }

/* ---------- ESMORZARS DE FORQUILLA, 2026-10-25 ----------
   Reaprofita .espai -la pieza de «Grups»-, que ya es foto y texto a dos
   columnas y ya cae a una sola por debajo de 900. Aqui solo hay un .espai,
   asi que el :nth-child(2) que le da la vuelta a la segunda no la toca. */
#esmorzars h2.display { font-size: clamp(32px, 3.6vw, 54px); }
.esmorzar__quan { font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); }
/* El precio con el mismo tipo y el mismo euro volado que las tarjetas de
   menu: es el mismo dato, y se tiene que leer igual en los dos sitios. */
.esmorzar__preu { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px; }
.esmorzar__preu-xifra { font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(40px, 4.4vw, 58px); line-height: 1; color: var(--tinta); }
.esmorzar__preu-qui { font-size: 13px; color: var(--tinta-fluixa); }
.esmorzar__cta { margin-top: 6px; }

/* Una sola tarjeta en la pagina de menus: centrada y con ancho de tarjeta.
   A todo lo ancho, las dos columnas de carne quedaban a 600 px la una de la
   otra y no se leian como una lista. */
.menus--sol { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; }

/* ---------- ELS MENUS, PLEGATS · 2026-10-25 ----------
   Tot obert d'una tirada semblava un menú de quatre pagines, i qui ve a
   esmorzar no li importa què hi ha al menú de grup (Víctor). Ara una fila
   per menú: el nom i el preu es veuen sense obrir res, i els plats només
   els que els vulgui.

   <details> natiu: sense JavaScript, amb teclat i amb lector de pantalla ja
   funciona, i la CSP d'aquesta web no permetria cap altra cosa en linia. */
.plec { display: grid; gap: 10px; }
.plec__peca { background: var(--fons-2); border-radius: var(--radi); }

.plec__grup { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; font-size: clamp(28px, 3.6vw, 46px); line-height: 1.1; color: var(--tinta); text-align: center; margin: clamp(42px, 6.4vh, 76px) 0 clamp(18px, 2.6vh, 26px); }
.plec__grup-peu { max-width: 54ch; margin: -6px auto clamp(20px, 2.8vh, 30px); text-align: center; font-size: 15px; line-height: 1.7; color: var(--tinta-fluixa); }

/* La capcalera és la diana: tota la fila, no només el text. 68 px d'alt
   deixen de sobres els 44 que demana un dit. */
.plec__cap {
  list-style: none; cursor: pointer;
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center; gap: 2px clamp(14px, 2vw, 26px);
  padding: clamp(15px, 2vh, 20px) clamp(18px, 2.2vw, 28px);
  min-height: 68px; border-radius: var(--radi);
}
/* Safari encara pinta el triangle amb ::-webkit-details-marker; la resta
   ja obeeix el list-style de sobre. Sense les dues, surten dues fletxes. */
.plec__cap::-webkit-details-marker { display: none; }
.plec__cap:hover { background: color-mix(in srgb, var(--accent) 6%, transparent); }
.plec__cap:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }

.plec__nom { grid-column: 1; grid-row: 1; font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(20px, 2.2vw, 28px); line-height: 1.15; color: var(--tinta); }
.plec__qui { grid-column: 1; grid-row: 2; font-size: 12.5px; color: var(--tinta-fluixa); }
.plec__preu { grid-column: 2; grid-row: 1 / span 2; font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(26px, 2.8vw, 36px); line-height: 1; color: var(--tinta); white-space: nowrap; }
.plec__fletxa { grid-column: 3; grid-row: 1 / span 2; width: 20px; height: 20px; color: var(--accent); transition: transform .2s ease; }
.plec__peca[open] .plec__fletxa { transform: rotate(180deg); }

.plec__cos {
  padding: 0 clamp(18px, 2.2vw, 28px) clamp(22px, 3vh, 30px);
  display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
  gap: clamp(18px, 2.6vw, 36px); align-items: start;
}

/* El mateix arc que les fotos dels menus: és la seva forma -la de l'entrada,
   la del finestral, la del logo-, no un adorn. */
.plec__foto { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; background: #bcb48f;
  border-radius: 50% 50% var(--radi) var(--radi) / 34% 34% var(--radi) var(--radi); }
.plec__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

.plec__avis { margin: 0 0 clamp(14px, 2vh, 20px); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.plec__peu { margin: clamp(14px, 2vh, 20px) 0 0; font-size: 13px; line-height: 1.7; color: var(--tinta-fluixa); }

/* Obrir no és un salt: un fos cur t deixa clar que ha sortit d'aquella fila
   i no que la pagina ha canviat sola. L'alçada no s'anima -<details> no ho
   fa sense JS- i tampoc cal. El bloc de moviment reduït de més amunt ja
   l'apaga. */
.plec__peca[open] .plec__cos { animation: plec-obre .2s ease both; }
@keyframes plec-obre { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: none; } }

@media (max-width: 760px) {
  .plec__cos { grid-template-columns: 1fr; }
  .plec__foto { max-width: 320px; }
  /* A 390 px el preu i el nom no caben a la mateixa linia si el nom és
     llarg: el preu baixa sota el nom i la fletxa es queda a la dreta. */
  .plec__cap { grid-template-columns: minmax(0, 1fr) auto; }
  .plec__preu { grid-column: 1; grid-row: 3; font-size: 26px; margin-top: 4px; }
  .plec__fletxa { grid-column: 2; grid-row: 1 / span 3; }
}

/* ---------- /validate-demo, 2026-10-14 ---------- */

/* El sprite de redes no se ve: solo guarda los <symbol> y el degradado. */
/* ---------- EL SELECTOR D'IDIOMA · 2026-10-26 ----------
   Sigles i no banderes: una bandera es un pais, no una llengua, i el
   castella no es la d'Espanya ni el catala la d'enlloc.

   El generador posa <a> a l'idioma que no ets i <span> al que ets: aixi
   l'actiu no es un enllaç a si mateix, que es el que confon el lector de
   pantalla. Per aixo l'estil va per etiqueta i no per una classe d'actiu. */
.idiomes { display: flex; align-items: center; gap: 2px; font-size: 12px; font-weight: 600; letter-spacing: .12em; }
.idiomes a, .idiomes__jo { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 6px; text-decoration: none; }
.idiomes a { opacity: .78; }
.idiomes a:hover, .idiomes a:focus-visible { opacity: 1; }
/* L'actiu, en l'accent sobre fons clar i en hos sobre el hero i les
   capcaleres fosques, que es on el text ja es clar. */
.idiomes__jo { color: var(--accent); }
.hero .idiomes__jo, .cap--legal .idiomes__jo { color: #efeae2; }
.hero .idiomes, .cap--legal .idiomes { color: #efeae2; }

/* A la pagina de 404 va sota el boto, centrat. */
.perduda .idiomes { justify-content: center; margin-top: 18px; }

@media (max-width: 900px) {
  /* El menu de dalt desapareix per sota de 900, pero el selector no: si no,
     qui entra des del mobil es queda sense manera de canviar d'idioma. */
  .cap .idiomes { margin-left: auto; }
}

.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* Las redes van con el logo en SU color, nunca en el de la web. */
.xarxa { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; text-decoration: none; }
.xarxa svg { flex: none; display: block; }
.xarxa span { text-decoration: underline; text-underline-offset: 3px; }
.xarxa--gran {
  gap: 12px;
  padding: 0 22px 0 16px;
  border: 1px solid color-mix(in srgb, var(--accent) 34%, transparent);
  border-radius: var(--radi);
  font-size: 14px; font-weight: 600; letter-spacing: .04em;
  transition: border-color .18s ease, background-color .18s ease;
}
.xarxa--gran:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
.xarxa--gran span { text-decoration: none; }
.masia__xarxa { margin: var(--aire) 0 0; }

/* La galería: cada miniatura es un enlace, también sin JavaScript. */
.amplia { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.amplia img { transition: transform .4s cubic-bezier(.16,1,.3,1); }
/* El zoom, solo con raton de verdad. Con el dedo no hay «dejar de pasar por
   encima»: el :hover se queda pegado despues de tocar, y la foto se queda
   grande hasta que tocas otra cosa. Con 18 fotos ampliables, se nota. */
@media (hover: hover) and (pointer: fine) {
  .amplia:hover img { transform: scale(1.03); }
  .video-peca__play:hover { transform: scale(1.07); background: #efeae2; }
}

/* El visor */
.visor { width: min(92vw, 1100px); max-width: none; border: 0; padding: 0; background: transparent; color: #efeae2; overflow: visible; }
.visor::backdrop { background: rgba(28, 22, 18, .88); }
.visor__cos { margin: 0; display: grid; gap: 12px; justify-items: center; }
.visor__cos img { max-width: 100%; max-height: 76svh; width: auto; height: auto; border-radius: var(--radi); display: block; }
.visor__cos figcaption { font-size: 13.5px; letter-spacing: .04em; color: #d6c9bc; text-align: center; }
.visor__tanca, .visor__fletxa {
  position: absolute; z-index: 2;
  display: grid; place-items: center;
  width: 46px; height: 46px; min-width: 44px; min-height: 44px;
  border: 1px solid rgba(239, 234, 226, .3); border-radius: 50%;
  background: rgba(28, 22, 18, .6); color: #efeae2;
  font: inherit; font-size: 24px; line-height: 1; cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease;
}
.visor__tanca:hover, .visor__fletxa:hover { background: rgba(28, 22, 18, .9); border-color: #efeae2; }
.visor__tanca { top: -58px; right: 0; }
.visor__fletxa--ant { left: -58px; top: 50%; transform: translateY(-50%); }
.visor__fletxa--seg { right: -58px; top: 50%; transform: translateY(-50%); }

/* El formulario de reserva */
.form { margin-top: var(--aire); display: grid; gap: var(--aire); }
.form__graella { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 18px; }
.camp { display: grid; gap: 6px; margin: 0; }
.camp--ample { grid-column: 1 / -1; }
.camp label { font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-fluixa); }
.camp__opc { font-weight: 400; letter-spacing: .04em; text-transform: none; }
.camp input, .camp textarea {
  font: inherit; font-size: 15px; color: var(--tinta);
  min-height: 46px; padding: 11px 13px;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  border-radius: var(--radi); background: #f6f2ec;
  width: 100%;
}
.camp textarea { min-height: 62px; resize: vertical; }
.camp input:focus-visible, .camp textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.avis-dades { font-size: 13px; color: var(--tinta-fluixa); max-width: 62ch; }
.form__botons { display: flex; flex-wrap: wrap; gap: 12px; }

.avis { margin: 0 0 4px; padding: 12px 14px; border-radius: var(--radi); font-size: 14.5px; background: #f3e2d8; color: #6d2f1a; border: 1px solid #d8a98f; }
.avis--be { background: #e2eddc; color: #2f4a22; border-color: #9cbf8a; }
#avis-correu:empty { display: none; }
.avis__sug { font: inherit; font-weight: 600; color: inherit; background: none; border: 0; padding: 2px 0; text-decoration: underline; cursor: pointer; }

/* El teléfono, en grande de verdad: tamaño de titular. */
.truca { margin-top: var(--aire); display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 16px; font-size: 15px; color: var(--tinta-fluixa); }
.telefon-gran {
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: clamp(30px, 3.4vw, 46px);
  line-height: 1.1;
  color: var(--accent);
  text-decoration: none;
  display: inline-flex; align-items: center; min-height: 48px;
  border-bottom: 2px solid color-mix(in srgb, var(--accent) 34%, transparent);
}
.telefon-gran:hover { border-bottom-color: var(--accent); }

@media (max-width: 900px) {
  .form__graella { grid-template-columns: 1fr 1fr; }
  .camp--ample { grid-column: 1 / -1; }
  .visor__tanca { top: -54px; }
  .visor__fletxa--ant { left: 2px; }
  .visor__fletxa--seg { right: 2px; }
}

/* Entre tableta y escritorio, cuatro platos por fila se quedan en 200 px y no
   se ve lo que hay en el plato. */
@media (min-width: 901px) and (max-width: 1100px) {
  .cuina__reixa { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .carta-solta__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* LA PAGINA DE MENUS ---------------------------------------------------------
   Els menus van a part des del 25-10-2026, a peticio seva: a la portada queden
   el nom i el preu -que es el que ve a buscar la gent- i el detall viu aqui.
   Fa servir la capcalera fosca de la pagina legal, que ja existia. */
.menus-pag { padding-block: clamp(36px, 6vh, 76px) clamp(56px, 9vh, 112px); background: var(--fons); }
.menus-pag .carta__cap h1 { font-size: clamp(34px, 5vw, 62px); line-height: 1.06; margin: 0; color: var(--tinta); }
.menus-pag__tornar { margin-top: clamp(40px, 6vh, 72px); text-align: center; }
.menus-pag__cta { margin: clamp(18px, 2.6vh, 28px) 0 0; }

/* Els menus de grup, sota els de cada dia. Van amb titol propi perque no
   son el mateix: aquests demanen taula completa i reserva, i si es
   barregen amb els de cap de setmana algu els demanara per a dos. */
.menus-pag__sub { text-align: center; margin: clamp(46px, 7vh, 84px) 0 0; font-size: clamp(30px, 4vw, 48px); line-height: 1.1; color: var(--tinta); }
.menus-pag__sub-peu { max-width: 54ch; margin: 10px auto clamp(26px, 3.6vh, 44px); text-align: center; font-size: 15px; line-height: 1.7; color: var(--tinta-fluixa); }

/* El boto que porta de la portada als menus. */
.carta__mes { margin: clamp(30px, 4.4vh, 52px) 0 0; text-align: center; }

/* La linia del producte de proximitat, sota la presentacio dels plats. */
.cuina__km0 { margin-top: 10px; font-size: 14px; color: var(--tinta-feble); }

/* ---------- D'ON SURT EL MENJAR · 2026-10-25 ----------
   Els punts 4 i 5 del seu llistat. Anaven com dos paragrafs grisos sota el
   text de la galeria i ell demanava "fer promo": ara la foto de les seves
   ovelles i tres coses dites curtes, abans dels plats.

   Tres columnes simetriques i quietes, que es el que manen els dials
   d'aquesta direccio (VARIANZA 3 · MOVIMENT 2 · DENSITAT 2). Sense icones:
   tres pictogrames de fulla, vaca i espiga es el que fa que una seccio aixi
   sembli una plantilla. I sense filets, que en aquesta direccio estan vetats. */
.granja { margin: clamp(28px, 4vh, 48px) 0 clamp(34px, 5vh, 62px); }
.granja__punts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(22px, 4vw, 72px); align-items: start; }
.punt__nom { margin: 0 0 8px; font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); }
.punt__que { margin: 0; font-size: 15.5px; line-height: 1.65; color: var(--tinta-fluixa); }

@media (max-width: 760px) {
  /* A 390 px tres columnes deixen sis caracters per linia. Una sota l'altra,
     i la foto mes alta perque les ovelles no es quedin en una franja. */
  .granja__punts { grid-template-columns: 1fr; gap: clamp(18px, 3vh, 26px); }
}
#cuina .cuina__km0 { color: var(--tinta-fluixa); }

/* LA CARTA, amb preus (des del 25-10-2026) --------------------------------
   Dues columnes de blocs: una carta de 56 plats en una sola columna es un
   rotllo de scroll. Cada plat es una linia amb el nom a l'esquerra i el preu
   a la dreta, i SENSE puntets de farciment: el sistema d'aquesta web ordena
   amb el pes i la mida, no amb linies. */
.carta-sencera > h2 { text-align: center; margin: 0 0 clamp(26px, 3.6vh, 44px); }
.carta-sencera { column-count: 2; column-gap: clamp(30px, 4.4vw, 72px); }

/* ---------- LA CARTA, EN PDF · 2026-10-25 ----------
   La puja ell al panell i canvia cada setmana, aixi que el que es veu es el
   seu paper, no una transcripcio nostra. Amplada de lectura i prou: un A4 a
   1400 px d'ample no es llegeix millor, nomes ocupa mes. */
.carta-pdf { max-width: 760px; margin: 0 auto; display: grid; gap: clamp(14px, 2vh, 22px); }
/* aspect-ratio i no nomes les mides de l'HTML: si algun dia puja un
   PDF que no sigui A4, el buit segueix reservat i la pagina no salta. */
.carta-pdf__pagina { width: 100%; height: auto; display: block; aspect-ratio: 1324 / 1872; object-fit: contain; border-radius: var(--radi); background: #fff; }
.carta-pdf__enllac { margin: clamp(18px, 2.6vh, 26px) 0 0; text-align: center; font-size: 14px; }
.carta-pdf__enllac a { color: var(--accent); text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; }
.carta-sencera > h2 { column-span: all; }
.carta-bloc { break-inside: avoid; margin-bottom: clamp(26px, 3.6vh, 42px); }
.carta-bloc h3 { margin: 0 0 12px; font-size: 12.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--accent); }

.carta-llista { margin: 0; padding: 0; list-style: none; }
.carta-llista li { display: flex; align-items: baseline; gap: 12px; padding: 5px 0; font-size: 15px; line-height: 1.5; }
.carta-llista__nom { color: var(--tinta-fluixa); }
/* El preu s'empeny a la dreta amb un marge automatic, no amb puntets. */
.carta-llista__preu { margin-left: auto; white-space: nowrap; font-weight: 600; color: var(--tinta); }
.carta-llista__nota { font-size: 12.5px; color: var(--tinta-feble); }

@media (max-width: 760px) {
  /* A 390 px, dues columnes deixen els noms dels plats en quatre caracters. */
  .carta-sencera { column-count: 1; }
}
