/*
 * v2.css — la segona volta de Quei15 (retorn del client, 07-09-2026)
 *
 * Es carrega DESPRÉS de marc.css, pagines.css i botiga.css (prioritat 40 a
 * q15-v2.php) i hi va el que és NOU del sistema v2 o que travessa els tres
 * fulls alhora:
 *
 *   §1  la tipografia: Archivo variable, servida des del tema; l'eix
 *       d'amplada als títols (75 %) i a la interfície (87,5 %)
 *   §2  el botó de la casa: blanc, filet prim, majúscules — UN de sol
 *   §3  el fil d'Ariadna a l'esquerra, sobre el títol, a tot el lloc
 *   §4  la capçalera: logo al 80 %, els desplegables d'idiomes i xarxes
 *   §5  el hero, lligat a l'alçada de la finestra
 *   §6  la portada: text centrat, botons en línia amb els títols, la banda fosca
 *   §7  el peu
 *   §8  la graella d'artistes viva
 *   §9  la landing de samarretes
 *   §10 les fitxes: peu del cartell, galeria, botons finals, la banda d'artista
 *   §11 la fitxa de samarreta: guia de talles i informació de venda
 *   §12 el blog, el contacte i els espais
 *
 * La pell de color, els filets a 2px i el guió que es torna línia són ALS
 * FULLS D'ORIGEN (passada de pell-v2.mjs + retocs): aquí no es repeteixen.
 *
 * DECISIÓ DE DIRECCIÓ D'ART (v2): una sola família de títol i interfície,
 * Archivo, amb l'eix d'amplada treballat de debò —condensada als titulars,
 * semicondensada al menú, als botons i als rètols— i Source Sans 3 al cos.
 * El client demanava «una tipografia més condensed per als títols»; en lloc
 * d'una família nova al costat de Space Grotesk (tres famílies), l'amplada
 * variable dona el condensat als títols i deixa el sistema en dues.
 */

/* ══════════════════ 1 · Archivo, variable i local ══════════════════════ */

/* Els tres subconjunts que serveix Google Fonts (llatí, llatí estès,
 * vietnamita), baixats a fonts/ del tema fill. `font-stretch: 62% 125%`
 * declara l'eix d'amplada: sense això, `font-stretch: 75%` no fa res. */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("fonts/Archivo-llati.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: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("fonts/Archivo-llati-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: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("fonts/Archivo-vietnamita.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

:root {
  --q15-accent: #00A29C;
  --q15-accent-fosc: #007F7A;
  --q15-negre: #141414;
  --q15-blanc: #FFFFFF;
  --q15-gris-text: #565656;
  --q15-gris-linia: #E6E6E3;
  --q15-gris-fons: #F6F6F4;
  --q15-gris-tint: #EFEFEC;
  --q15-titols: 'Archivo', system-ui, sans-serif;
  --q15-cos: 'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  --q15-estret: 75%;
  --q15-semi: 87.5%;
}

/* Els titulars: condensats. El selector cobreix els h1-h4 del tema (Theme
 * Options ja hi posa Archivo) i els titulars propis dels fulls. */
h1, h2, h3, h4,
.page-title .hgroup h1,
.page-title .entry-title,
.titol-seccio,
.fila__titol,
.card__artista,
.artista__nom,
.bloc__titol,
.exposar__titol,
.exposar__lema,
.franja__text,
.q15-popup__titol,
.q15-hero-cap__titol,
.q15-expo-obres-titol,
.single-product #page .page-title .hgroup .entry-title,
.woocommerce .products .entry-title,
.q15-obra .q15-autor,
.q15-tshirt-hero__titol,
.q15-banda__titol,
.q15-banda__nom {
  font-family: var(--q15-titols);
  /* !important mesurat: The7 escriu els titulars amb el `font:` abreujat
   * (`#page .page-title .entry-title { font: 700 52px/… }`), que reinicia
   * l'amplada a normal i pesa més que una etiqueta sola. */
  font-stretch: var(--q15-estret) !important;
  letter-spacing: -0.01em;
}

/* La interfície: semicondensada. Menú, subnav, botons, rètols. */
#primary-menu > li > a .menu-text,
#primary-menu .sub-nav .menu-text,
.dt-mobile-header .menu-text,
.subnav .subnav__list a,
.subnav .subnav__list .subnav__mort,
.etiqueta,
.fila__data,
.fila__artista,
.num-seccio,
.ticker__row,
.se7f-grup,
.se7f-ordena,
.se7f-ordena-etiqueta,
#sidebar .sidebar-content .widget-title,
#sidebar .product-categories > li > a,
.q15-artista-rol,
.q15-artista-expos h2,
.q15-artista-expos a,
.q15-compte,
.botiga__compte,
.q15-hero-cap__artista,
.q15-marca,
.q15-origen,
.porta__go,
.q15-peu__rotol,
.q15-mw__boto,
.q15-mw__menu {
  font-family: var(--q15-titols);
  font-stretch: var(--q15-semi) !important;
}

/* ══════════════════ 2 · el botó de la casa ═════════════════════════════ */

/*
 * «Botons: horitzontal, text majúscula, fons blanc, filet prim» (client).
 * UNA regla per a tots: els de The7 (.dt-btn, també els que WPBakery pinta
 * amb el seu <style> en línia), els de WooCommerce (.button), els nostres
 * (.q15-boto, popup, hero). Els !important són contra els <style> en línia
 * de dt_default_button i el CSS compilat de The7, mesurats i no preventius.
 */
.dt-btn,
.default-btn-shortcode,
a.dt-btn,
.q15-boto,
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button,
.woocommerce .checkout-button,
.woocommerce .wc-forward,
.se7f-mes,
.wpcf7-form .wpcf7-submit,
.q15-popup__btn,
.q15-hero-cap__boto {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-sizing: border-box;
  font-family: var(--q15-titols) !important;
  font-stretch: var(--q15-semi);
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  line-height: 1.2 !important;
  color: var(--q15-negre) !important;
  background: var(--q15-blanc) !important;
  background-image: none !important;
  border: 1px solid var(--q15-negre) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 12px 22px !important;
  min-height: 44px;
  text-decoration: none !important;
  transition: background-color .2s, color .2s, border-color .2s;
}

.dt-btn:hover, .dt-btn:focus-visible,
.default-btn-shortcode:hover,
.q15-boto:hover, .q15-boto:focus-visible,
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .checkout-button:hover,
.se7f-mes:hover:not(:disabled),
.wpcf7-form .wpcf7-submit:hover,
.q15-popup__btn:hover,
.q15-hero-cap__boto:hover {
  color: var(--q15-blanc) !important;
  background: var(--q15-negre) !important;
  border-color: var(--q15-negre) !important;
}

/* El text de dins del .dt-btn que The7 embolcalla amb un span amb la seva
 * pròpia mida: hereta. */
.dt-btn > span,
.default-btn-shortcode > span {
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
}

.dt-btn + .dt-btn,
.q15-boto + .q15-boto {
  margin-left: 10px !important;
}

/* Sobre fons fosc (les bandes amb imatge), el botó és transparent amb filet
 * blanc, i s'omple de blanc en passar-hi. */
.q15-exposar .dt-btn,
.q15-banda .dt-btn,
.q15-banda .q15-boto,
.q15-tshirt-hero .q15-boto {
  color: var(--q15-blanc) !important;
  background: transparent !important;
  border-color: var(--q15-blanc) !important;
}

.q15-exposar .dt-btn:hover,
.q15-banda .dt-btn:hover,
.q15-banda .q15-boto:hover,
.q15-tshirt-hero .q15-boto:hover {
  color: var(--q15-negre) !important;
  background: var(--q15-blanc) !important;
  border-color: var(--q15-blanc) !important;
}

/* El botó petit (peu). */
.q15-boto--petit {
  padding: 9px 16px !important;
  min-height: 0;
  font-size: 12px !important;
}

/* Els estats desactivats de Woo (el botó de comprar fins que es tria la
 * variació): amb opacitat, axe-core marca el contrast (mesurat 07-09-2026,
 * la mateixa lliçó que els botons de «venuda» de botiga.css). Es diu amb el
 * gris de text (7,3:1) i el filet clar, sense opacitat. */
.woocommerce .button:disabled,
.woocommerce .button.disabled,
.woocommerce .single_add_to_cart_button.disabled {
  opacity: 1 !important;
  color: var(--q15-gris-text) !important;
  border-color: var(--q15-gris-linia) !important;
  background: var(--q15-blanc) !important;
  cursor: not-allowed;
}

/* Els «Afegir al cistell» de la llista de relacionats de The7 no porten la
 * classe .button i sortien en blanc sobre l'accent (3,2:1): el botó de la
 * casa també aquí. */
.woocommerce a.add_to_cart_button,
.related-product a.add_to_cart_button,
.woocommerce .ajax_add_to_cart {
  color: var(--q15-negre) !important;
  background: var(--q15-blanc) !important;
  border: 1px solid var(--q15-negre) !important;
  border-radius: 0 !important;
  font-family: var(--q15-titols) !important;
  font-stretch: var(--q15-semi);
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

/* I els de la graella de blocs de Woo (el cistell buit en proposa quatre):
 * el bloc pinta el seu fons fosc (50,55,60) amb el text negre de la casa a
 * sobre. Mesurat a /cart/ i /checkout/. */
.wp-block-button__link.add_to_cart_button,
.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wc-block-components-product-button .wc-block-components-button {
  color: var(--q15-negre) !important;
  background: var(--q15-blanc) !important;
  border: 1px solid var(--q15-negre) !important;
  border-radius: 0 !important;
  font-family: var(--q15-titols) !important;
  font-stretch: var(--q15-semi);
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.wp-block-button__link.add_to_cart_button:hover,
.wc-block-components-product-button .wc-block-components-button:hover,
.woocommerce a.add_to_cart_button:hover,
.related-product a.add_to_cart_button:hover {
  color: var(--q15-blanc) !important;
  background: var(--q15-negre) !important;
}

/* La quantitat (només a samarretes i publicacions): text negre, no el gris
 * de The7 (3,9:1), i els +/− amb nom (v2.js). */
.woocommerce .quantity input.qty {
  color: var(--q15-negre) !important;
  border-color: var(--q15-negre);
  border-radius: 0;
}

.woocommerce .quantity .minus,
.woocommerce .quantity .plus {
  color: var(--q15-negre) !important;
  border-radius: 0;
}

/* Els enllaços de la fitxa tècnica de Woo (categoria, etiquetes) dins d'un
 * text: subratllats, que un color sol no els distingeix. */
.single-product .product_meta a,
.single-product a[rel="tag"] {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

/* ══════════════════ 3 · el fil d'Ariadna, a l'esquerra i a sobre ══════ */

/*
 * «Fil d'Ariadna com a la plana detall d'obra» (client): la barra de títol
 * de The7 passa a columna, molles a dalt a l'esquerra i el títol a sota. La
 * regla d'aquí generalitza la que botiga.css tenia només per al producte.
 */
.page-title .wf-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-height: 0;
}

.page-title .page-title-breadcrumbs {
  order: -1;
  margin: 0 0 4px;
}

.page-title .breadcrumbs {
  text-align: left;
  font-family: var(--q15-cos);
  font-size: 13px;
}

.page-title .breadcrumbs a:hover {
  color: var(--q15-negre);
  box-shadow: inset 0 -1px 0 var(--q15-accent);
}

/* «Reduir espai entre el títol de la plana i la frase» — a tot el lloc, la
 * barra de títol compacta i el coixí de #main a la meitat (mesurat a la
 * fitxa d'artista: 170 → 90 px de barra, 50 → 24 de coixí). */
.page-title {
  padding-top: 22px;
  padding-bottom: 22px;
}

#main {
  padding-top: 24px;
}

.home #main {
  padding-top: 0;
}

.pagina-cap__entrada {
  margin-top: -6px;
}

/* La fila d'entrada de les pàgines de llista (projectes, tallers, artistes,
 * exposicions) porta 30px de coixí de dalt al seu css= de WPBakery; amb la
 * barra de títol compacta sobra. Mesurat a /artistes/: 154px entre la barra
 * i la primera fila. La classe és la mateixa a les quatre pàgines. */
#main .vc_custom_1701511345908 {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

/* ══════════════════ 4 · la capçalera ═══════════════════════════════════ */

/* «Logo Quei15ARTgallery reduir a 80 %»: 82 → 66 px d'alt. */
.masthead .branding img,
.masthead .branding a > img {
  max-height: 66px;
  width: auto;
}

/* «Encaixar menú Principal amb amplada de contingut»: la barra de la
 * capçalera dins de la mateixa caixa que el contingut (Theme Options
 * header-inline-is_fullwidth a 0 ho fa; això assegura els coixins). */
.masthead.inline-header .header-bar {
  max-width: var(--the7-content-boxed-width, 1320px);
  margin-left: auto;
  margin-right: auto;
}

/*
 * El desplegable del menú principal, amb la mateixa llengua que els
 * d'idiomes i xarxes: paper blanc, filet negre d'1px i el filet d'accent
 * a sobre. El fons i el color de lletra els posa Theme Options
 * (`header-menu-submenu-*`, bloc A del sembrador); aquí hi va el que les
 * opcions no saben fer: la vora, treure l'ombra difusa de The7
 * (`.sub-nav { box-shadow: 0 0 4px rgba(0,0,0,.2) }`, main.min.css) i la
 * marca de l'element sobrevolat i de l'actiu.
 */
.masthead .main-nav .sub-nav,
.masthead .main-nav .sub-nav .sub-nav {
  border: 1px solid var(--q15-negre);
  border-top: 2px solid var(--q15-accent);
  border-radius: 0;
  box-shadow: none;
}

.masthead .main-nav .sub-nav > li > a {
  transition: background-color .15s, box-shadow .15s;
}

.masthead .main-nav .sub-nav > li:not(.act):not(.no-link) > a:hover,
.masthead .main-nav .sub-nav > li.act > a {
  background: var(--q15-gris-fons);
  box-shadow: inset 3px 0 0 var(--q15-accent);
}

/* Els desplegables d'idiomes i de xarxes: el globus i els punts. */
.masthead .mini-widgets .q15-mw {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
}

.q15-mw__boto {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 44px;
  min-height: 44px;
  padding: 0 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--q15-negre);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: color .2s;
}

.q15-mw__boto:hover,
.q15-mw__boto[aria-expanded="true"] {
  color: var(--q15-negre);
  box-shadow: inset 0 -2px 0 var(--q15-accent);
}

.q15-mw__menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 60;
  min-width: 180px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: var(--q15-blanc);
  border: 1px solid var(--q15-negre);
  border-top: 2px solid var(--q15-accent);
}

.q15-mw__menu[hidden] { display: none; }

.q15-mw__menu li { margin: 0; padding: 0; }

.q15-mw__menu a,
.q15-mw__menu .se7t-switcher__item,
.q15-mw__menu .se7t-switcher a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 16px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--q15-negre) !important;
  text-decoration: none;
  opacity: 1 !important;
  white-space: nowrap;
}

.q15-mw__menu a:hover,
.q15-mw__menu .se7t-switcher__item:hover {
  background: var(--q15-gris-fons);
  box-shadow: inset 3px 0 0 var(--q15-accent);
}

/* L'idioma actual: negre amb el filet d'accent (el plugin el pintava amb
 * el seu color d'opció, que encara era el magenta). */
.q15-mw__menu .se7t-switcher__item.is-current,
.q15-mw__menu .se7t-switcher__item.is-current:hover {
  color: var(--q15-negre) !important;
  background: var(--q15-gris-fons);
  box-shadow: inset 3px 0 0 var(--q15-accent);
  font-weight: 700;
}

/* El commutador de SE7 Translate, si ve en fila, es posa en columna. */
.q15-mw__menu .se7t-switcher,
.q15-mw__menu .se7t-switcher ul {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.q15-mw__menu .se7t-switcher .se7t-switcher__sep { display: none; }

.q15-mw__menu svg { flex: 0 0 auto; }

/* La barra superior es tanca des de Theme Options (top-bar-height 0px); si
 * per qualsevol motiu tornés a tenir alçada, que no es vegi. */
.masthead .top-bar { display: none !important; }

/* Idiomes i xarxes al final del menú mòbil (les copia v2.js).
 *
 * ⚠ El calaix del mòbil de The7 és NEGRE (`.dt-mobile-header
 * { background-color: #111111 }`, del CSS generat) i el seu menú va en
 * blanc. Aquestes dues llistes són les úniques peces clares del calaix i
 * per això van al revés que la resta de la v2. */
.q15-mobil-extra {
  padding: 18px 20px 30px;
  border-top: 1px solid rgba(255,255,255,0.18);
  margin-top: 12px;
}

.q15-mobil-extra__bloc + .q15-mobil-extra__bloc { margin-top: 18px; }

.q15-mobil-extra__titol {
  font-family: var(--q15-titols);
  font-stretch: var(--q15-semi);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  margin: 0 0 8px;
}

.q15-mobil-extra__llista {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
}

.q15-mobil-extra__llista li { margin: 0; }

.q15-mobil-extra__llista a,
.q15-mobil-extra__llista .se7t-switcher__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  font-family: var(--q15-titols);
  font-stretch: var(--q15-semi);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--q15-blanc) !important;
  text-decoration: none;
  opacity: 1 !important;
}

.q15-mobil-extra__llista a:hover,
.q15-mobil-extra__llista .se7t-switcher__item:hover {
  color: var(--q15-accent) !important;
}

/* El commutador de SE7 Translate ve en COLUMNA quan és «layout list» (el
 * seu CSS), i dins del calaix es quedava en una tira de 20px d'ample amb
 * 68px entre idioma i idioma (mesurat a 375px, 10-09-2026). Aquí va en
 * fila, com les xarxes. */
.q15-mobil-extra__llista .se7t-switcher,
.q15-mobil-extra__llista .se7t-switcher ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  flex: 1 1 100%;
  width: 100%;
  gap: 6px 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.q15-mobil-extra__llista .se7t-switcher__item { margin: 0; }

/* Les mini-dades del calaix del mòbil (adreça i telèfon): The7 les pintava
 * en negre sobre el calaix negre —invisibles— perquè hereten el color del
 * contingut, no el del menú. */
.dt-mobile-header .mini-contacts,
.dt-mobile-header .mini-contacts *,
.dt-mobile-header .mini-contacts a,
.dt-mobile-header .mini-contacts i {
  color: var(--q15-blanc) !important;
}

.q15-mobil-extra__llista .se7t-switcher__item.is-current {
  box-shadow: inset 0 -2px 0 var(--q15-accent);
}

/* ══════════════════ 5 · el hero, lligat a la finestra ══════════════════ */

/*
 * «Reduir alçada de la imatge per garantir que el format adaptatiu permet
 * SEMPRE mostrar: menú, slider + text, botons». El RevSlider va a pantalla
 * sencera amb la capçalera com a desplaçament (paràmetre del slider,
 * sembrat per la v2); aquesta xarxa retalla el mòdul si la finestra és més
 * baixa del que el slider calcula, sense moure el que hi ha a sota.
 */
@media (min-width: 901px) {
  #main-slideshow {
    /* 97px de capçalera (96 + el filet) i 1px de marge d'arrodoniment:
     * mesurat a 1260×620, la banda acabava a 621. */
    max-height: calc(100vh - 98px);
    overflow: hidden;
  }
}

/* Al mòbil el slider a pantalla sencera (812px mesurats) deixava la banda
 * sota el plec: la foto a poc més de mitja pantalla i la banda a sota. */
@media (max-width: 900px) {
  #main-slideshow sr7-module {
    max-height: 58vh;
    overflow: hidden;
  }
}

/* ══════════════════ 6 · la portada ═════════════════════════════════════ */

/* «Text Quei15: centrat, com al web actual. El botó també centrat». */
.q15-intro-galeria {
  text-align: center;
}

.q15-intro-galeria .intro-galeria__text {
  margin-left: auto;
  margin-right: auto;
}

.q15-intro-galeria .dt-btn {
  margin-top: 8px;
}

/* «Botó Galeria online en línia amb el text “Obra a la venda” i en caixa a
 * dreta»: la columna del botó, a la dreta i arran de la línia de base. */
.q15-cap-seccio > .vc_col-sm-4 > .vc_column-inner > .wpb_wrapper {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  height: 100%;
  padding-bottom: 4px;
}

.q15-cap-seccio .dt-btn {
  margin: 0 !important;
}

/* El titular enllaçat de secció: sense subratllat fins que s'hi passa. */
.q15-cap-seccio .titol-enllac:hover {
  box-shadow: inset 0 -3px 0 var(--q15-accent);
}

/*
 * LA BANDA FOSCA (el croquis del client, 07-09-2026): sobre una imatge de
 * fons, tipografia en negatiu, dues columnes — Projectes culturals i Tallers
 * artístics — cadascuna amb el seu cartell A3, el text i els botons.
 * Substitueix «Quei15 també és…». La fila és de WPBakery (fons i coixins al
 * css= de la fila, com totes); això és el sistema de text de dins.
 */
.q15-banda {
  color: var(--q15-blanc);
}

.q15-banda .wpb_text_column { margin-bottom: 0; }

.q15-banda__cap {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: clamp(26px, 3vw, 44px);
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, .35);
}

.q15-banda__logo {
  width: 64px;
  height: 64px;
  flex: 0 0 auto;
}

.q15-banda__titol {
  font-size: clamp(32px, 4vw, 56px) !important;
  font-weight: 700;
  line-height: 1;
  color: var(--q15-blanc);
  margin: 0;
}

.q15-banda__nom {
  position: relative;
  font-size: clamp(22px, 2.2vw, 30px) !important;
  font-weight: 700;
  line-height: 1.05;
  color: var(--q15-blanc);
  margin: 0 0 18px;
  padding-top: 14px;
}

.q15-banda__nom::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--q15-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.2s cubic-bezier(.22, .61, .36, 1);
}

.q15-banda__nom.q15-vist::before,
.q15-vist .q15-banda__nom::before {
  transform: scaleX(1);
}

.q15-banda .fancy-media-wrap {
  aspect-ratio: 297 / 420;   /* A3 */
  overflow: hidden;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .4);
}

.q15-banda .fancy-media-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.q15-banda .shortcode-single-image-wrap {
  width: 100% !important;
  max-width: 100% !important;
}

.q15-banda__text {
  color: rgba(255, 255, 255, .92);
  font-size: 16.5px;
  line-height: 1.6;
  margin: 0 0 8px;
}

.q15-banda__llista {
  list-style: none;
  margin: 0 0 22px;
  padding: 0;
}

.q15-banda__llista li {
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .25);
  color: rgba(255, 255, 255, .92);
  font-size: 15.5px;
}

.q15-banda .dt-btn { margin-top: 6px; }

@media (max-width: 767px) {
  .q15-banda .fancy-media-wrap { max-width: 300px; margin-bottom: 18px; }
}

/* ══════════════════ 7 · el peu ═════════════════════════════════════════ */

/* La barra inferior de The7 només porta el nostre HTML: fora l'alçada mínima
 * i el coixí que hi posava per a una línia de text. */
.footer .bottom-bar,
#bottom-bar {
  min-height: 0;
  padding: 0;
  background: var(--q15-blanc);
}

#bottom-bar .wf-wrap,
#bottom-bar .wf-table,
#bottom-bar .wf-td,
#bottom-bar .wf-float-left,
#bottom-bar .wf-float-right {
  display: block;
  float: none;
  width: 100%;
  min-height: 0;
  padding: 0;
  height: auto;
}

.q15-peu {
  --q15-blanc: #FFFFFF;
  --q15-negre: #141414;
  --q15-gris-text: #565656;
  --q15-gris-linia: #E6E6E3;
  font-family: var(--q15-cos);
  color: var(--q15-negre);
  padding: 44px 0 28px;
  border-top: 1px solid var(--q15-negre);
}

/* «Valorar de fer pastilla blanc separada per filets»: tres blocs en fila,
 * separats per filets verticals fins. */
.q15-peu__pastilla {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  border: 1px solid var(--q15-negre);
}

.q15-peu__bloc {
  padding: 28px 30px 26px;
}

.q15-peu__bloc + .q15-peu__bloc {
  border-left: 1px solid var(--q15-negre);
}

.q15-peu__logo img {
  display: block;
  width: 58px;
  height: auto;
  margin-bottom: 14px;
}

.q15-peu__nom {
  font-family: var(--q15-titols);
  font-stretch: var(--q15-estret);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 10px;
}

.q15-peu__nom span {
  display: block;
  font-family: var(--q15-cos);
  font-stretch: normal;
  font-size: 14px;
  font-weight: 400;
  color: var(--q15-gris-text);
  margin-top: 4px;
}

.q15-peu__rotol {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--q15-gris-text);
  margin: 0 0 12px;
}

.q15-peu__linia {
  font-size: 15.5px;
  line-height: 1.5;
  margin: 0 0 6px;
}

.q15-peu__linia a {
  color: var(--q15-negre);
  text-decoration: none;
}

.q15-peu__linia a:hover {
  box-shadow: inset 0 -2px 0 var(--q15-accent);
}

.q15-peu__xarxes {
  list-style: none;
  margin: 0;
  padding: 0;
}

.q15-peu__xarxes li { margin: 0 0 8px; }

.q15-peu__xarxes a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  color: var(--q15-negre);
  text-decoration: none;
}

.q15-peu__xarxes a:hover span {
  box-shadow: inset 0 -2px 0 var(--q15-accent);
}

.q15-peu__legal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px 28px;
  flex-wrap: wrap;
  padding: 18px 0 0;
  margin-top: 18px;
  border-top: 1px solid var(--q15-gris-linia);
  font-size: 13.5px;
  color: var(--q15-gris-text);
}

.q15-peu__copy { margin: 0; }

.q15-peu__copy a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.q15-peu__legals {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.q15-peu__legals li + li::before {
  content: '';
  display: inline-block;
  width: 1px;
  height: 12px;
  background: var(--q15-gris-linia);
  margin: 0 12px -1px;
}

.q15-peu__legals a {
  color: var(--q15-gris-text);
  text-decoration: none;
}

.q15-peu__legals a:hover {
  color: var(--q15-negre);
  box-shadow: inset 0 -1px 0 var(--q15-accent);
}

.q15-peu__kit {
  display: flex;
  align-items: center;
  gap: 34px;
  flex-wrap: wrap;
  margin-top: 26px;
}

.q15-peu__kit img {
  height: 44px;
  width: auto;
}

@media (max-width: 860px) {
  .q15-peu__pastilla { grid-template-columns: 1fr; }
  .q15-peu__bloc + .q15-peu__bloc { border-left: 0; border-top: 1px solid var(--q15-negre); }
  .q15-peu__legal { flex-direction: column; align-items: flex-start; }
}

/* ══════════════════ 8 · la graella d'artistes viva ═════════════════════ */

.q15-artistes-barra {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 20px;
  flex-wrap: wrap;
  padding-bottom: 14px;
  margin-bottom: 26px;
  border-bottom: 1px solid var(--q15-gris-linia);
}

.q15-artistes-barra .botiga__compte { margin: 0; }

.q15-artistes-ordre a {
  margin-left: 14px;
  color: var(--q15-gris-text);
  text-decoration: none;
}

.q15-artistes-ordre a:hover { color: var(--q15-negre); }

.q15-artistes-ordre a.is-triat {
  color: var(--q15-negre);
  font-weight: 700;
  box-shadow: inset 0 -2px 0 var(--q15-accent);
}

/* «Reduir espai en blanc entre “Artistes” i les imatges». */
ul.q15-artistes--viva {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 34px 28px;
  list-style: none;
  margin: 0 0 40px;
  padding: 0;
}

.q15-artista-targeta { margin: 0; }

.q15-artista-targeta__imatge {
  display: block;
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--q15-gris-fons);
  margin-bottom: 14px;
}

.q15-artista-targeta__imatge img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.q15-artista-targeta:hover .q15-artista-targeta__imatge img { transform: scale(1.04); }

.q15-artista-targeta__imatge::after {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 2px;
  background: var(--q15-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s;
}

.q15-artista-targeta:hover .q15-artista-targeta__imatge::after { transform: scaleX(1); }

.q15-artista-targeta .artista__nom a {
  color: inherit;
  text-decoration: none;
}

.q15-artista-targeta .artista__nom a:hover {
  box-shadow: inset 0 -2px 0 var(--q15-accent);
}

.q15-artista-targeta__botons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0;
}

.q15-artista-targeta__botons .q15-boto + .q15-boto { margin-left: 0 !important; }

@media (max-width: 991px) { ul.q15-artistes--viva { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { ul.q15-artistes--viva { grid-template-columns: repeat(2, 1fr); gap: 26px 18px; } }
@media (max-width: 420px) { ul.q15-artistes--viva { grid-template-columns: 1fr; } }

/* ══════════════════ 9 · la landing de samarretes ═══════════════════════ */

.q15-tshirt-hero {
  position: relative;
  min-height: min(72vh, 640px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--q15-negre);
  color: var(--q15-blanc);
  /* La fila de WPBakery ja va estirada a tota l'amplada (stretch_row_content_no_spaces):
   * cap marge negatiu, que mesurat sortia 8px fora de la finestra. */
}

.q15-tshirt-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* «Imatge animada»: mentre no hi ha vídeo, la imatge respira lentament. */
.q15-tshirt-hero__media--imatge {
  background-size: cover;
  background-position: center;
  animation: q15-respira 18s ease-in-out infinite alternate;
}

@keyframes q15-respira {
  from { transform: scale(1); }
  to   { transform: scale(1.08); }
}

.q15-tshirt-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(20, 20, 20, .85) 0%, rgba(20, 20, 20, .2) 55%, rgba(20, 20, 20, 0) 100%);
}

.q15-tshirt-hero__text {
  position: relative;
  z-index: 2;
  width: min(1320px, 100%);
  margin: 0 auto;
  padding: 0 50px 46px;
  box-sizing: border-box;
}

.q15-tshirt-hero__marca {
  font-family: var(--q15-titols);
  font-stretch: var(--q15-semi);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 8px;
}

.q15-tshirt-hero__titol {
  font-size: clamp(44px, 7vw, 110px) !important;
  font-weight: 800;
  line-height: .95;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--q15-blanc);
  margin: 0 0 14px;
}

.q15-tshirt-hero__lema {
  font-size: clamp(18px, 2vw, 26px);
  line-height: 1.35;
  max-width: 34ch;
  margin: 0;
}

.q15-tshirt-hero__pausa {
  position: absolute;
  right: 20px;
  bottom: 20px;
  z-index: 3;
  padding: 10px 14px;
  border: 1px solid rgba(255, 255, 255, .7);
  background: rgba(20, 20, 20, .5);
  color: var(--q15-blanc);
  font-family: var(--q15-titols);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
  .q15-tshirt-hero__media--imatge { animation: none; }
}

@media (max-width: 767px) {
  .q15-tshirt-hero__text { padding: 0 20px 30px; }
}

.q15-landing-text .intro-galeria__text {
  margin: 0 auto;
  text-align: center;
}

.q15-landing-boto {
  text-align: center;
}

/* ══════════════════ 10 · les fitxes ════════════════════════════════════ */

/* El peu del cartell: sota el cartell, justificat a la dreta. */
.q15-expo-peu {
  float: left;
  clear: left;
  width: min(380px, 40%);
  margin: -10px clamp(26px, 3.4vw, 46px) clamp(22px, 3vw, 36px) 0;
  text-align: right;
  font-family: var(--q15-titols);
  font-stretch: var(--q15-semi);
  font-size: 14px;
  line-height: 1.5;
  color: var(--q15-gris-text);
}

.q15-expo-peu p { margin: 0 0 4px; }
.q15-expo-peu strong { color: var(--q15-negre); }

@media (max-width: 780px) {
  .q15-expo-peu { float: none; width: 100%; max-width: 460px; margin: -8px 0 22px; text-align: left; }
}

/* «Més amplada a la caixa de text, per no deixar blanc a la dreta». */
.tax-pa_exposicio .term-description p,
.tax-pa_exposicio .woocommerce-archive-description p,
.tax-pa_projecte .term-description p,
.tax-pa_projecte .woocommerce-archive-description p,
.tax-pa_taller .term-description p,
.tax-pa_taller .woocommerce-archive-description p {
  /* Tota la columna al costat del cartell (mesurat: 794px de columna i el
   * text es quedava a 581 amb els 66ch de la v1). */
  max-width: none;
}

/* L'enllaç relacionat (web d'autor, PDF, …) i la galeria. */
.q15-expo-enllac {
  clear: both;
  margin: 8px 0 22px;
}

.q15-expo-galeria {
  clear: both;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
  list-style: none;
  margin: 0 0 clamp(28px, 3.5vw, 44px);
  padding: 0;
}

.q15-expo-galeria li { margin: 0; }

.q15-expo-galeria a {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--q15-gris-fons);
  border: 1px solid var(--q15-gris-linia);
}

.q15-expo-galeria img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s;
}

.q15-expo-galeria a:hover img { transform: scale(1.03); }

/* El vídeo incrustat al text. */
.woocommerce-archive-description iframe,
.term-description iframe {
  display: block;
  width: 100%;
  max-width: 900px;
  aspect-ratio: 16 / 9;
  height: auto;
  margin: 16px 0 22px;
  border: 0;
}

/* Els botons finals de les fitxes (i els de la fitxa d'obra). */
.q15-accions-finals {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  clear: both;
  margin: clamp(24px, 3vw, 40px) 0;
}

.q15-accions-finals--fitxa {
  padding-top: clamp(20px, 2.5vw, 32px);
  border-top: 1px solid var(--q15-gris-linia);
}

.q15-accions-finals .q15-boto + .q15-boto { margin-left: 0 !important; }

/* LA FITXA D'ARTISTA (client, 07-09-2026): fora el retrat; una BANDA de
 * capçalera amb el filet progressiu a sobre; el text a tot l'ample. */
.q15-artista-banda {
  position: relative;
  aspect-ratio: 3 / 1;
  max-height: 420px;
  overflow: hidden;
  background: var(--q15-gris-fons);
  margin: 0 0 clamp(22px, 3vw, 36px);
  padding-top: 2px;
}

.q15-artista-banda::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 2px;
  background: var(--q15-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.2s cubic-bezier(.22, .61, .36, 1);
}

.q15-artista-banda.q15-vist::before { transform: scaleX(1); }

/* La capçalera que prepara el client (guia «cabecera 2502×482», Drive del
 * 14-09-2026): amb la seva proporció, sencera, sense retallar-la a 3:1. */
.q15-artista-banda--capcalera {
  aspect-ratio: 2502 / 481;
  max-height: none;
}

.q15-artista-banda img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.q15-artista-fitxa {
  grid-template-columns: 1fr;
}

.q15-artista-retrat { display: none; }

.q15-artista-bio { max-width: 78ch; }

/* «Obra de <nom>»: el títol gran de la graella, com «Obres relacionades». */
.q15-fitxa-artista .q15-expo-obres-titol {
  position: relative;
  padding-top: 22px;
  margin: 0 0 clamp(18px, 2vw, 26px);
}

/* La fitxa de taller: el botó de reserva al final del text. */
.q15-taller-reserva {
  clear: both;
  margin: 10px 0 26px;
}

/* ══════════════════ 11 · la fitxa de samarreta ═════════════════════════ */

.q15-guia-talles { margin: 0 0 14px; }

.q15-guia-talles__boto {
  background: none;
  border: 0;
  padding: 0;
  font-family: var(--q15-cos);
  font-size: 14.5px;
  color: var(--q15-negre);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.q15-guia-talles__boto:hover { color: var(--q15-accent-fosc); }

.q15-guia {
  position: fixed;
  inset: 0;
  z-index: 9150;
  display: grid;
  place-items: center;
  padding: 24px;
}

.q15-guia[hidden] { display: none; }

.q15-guia__overlay {
  position: absolute;
  inset: 0;
  background: rgba(20, 20, 20, .82);
}

.q15-guia__caixa {
  position: relative;
  width: min(640px, 100%);
  max-height: 90vh;
  overflow: auto;
  background: var(--q15-blanc);
  border: 1px solid var(--q15-negre);
  border-top: 2px solid var(--q15-accent);
  padding: clamp(24px, 4vw, 44px);
}

.q15-guia__titol {
  font-size: clamp(26px, 3vw, 36px) !important;
  margin: 0 0 18px;
}

.q15-guia__taula {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--q15-cos);
  font-size: 15px;
}

.q15-guia__taula th,
.q15-guia__taula td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--q15-gris-linia);
  text-align: left;
}

.q15-guia__taula thead th {
  font-family: var(--q15-titols);
  font-stretch: var(--q15-semi);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--q15-gris-text);
  border-bottom: 1px solid var(--q15-negre);
}

.q15-guia__nota {
  margin: 14px 0 0;
  font-size: 13.5px;
  color: var(--q15-gris-text);
}

.q15-info-venda {
  margin: 26px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid var(--q15-gris-linia);
  font-family: var(--q15-cos);
}

.q15-info-venda > div {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 4px 16px;
  padding: 8px 0;
  border-bottom: 1px solid var(--q15-gris-linia);
}

.q15-info-venda dt {
  font-family: var(--q15-titols);
  font-stretch: var(--q15-semi);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--q15-negre);
  margin: 0;
  padding-top: 3px;
}

.q15-info-venda dd {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--q15-gris-text);
}

/* Les variacions de Woo (forma · talla · color): els selectors amb la pell. */
.single-product .variations th.label {
  font-family: var(--q15-titols);
  font-stretch: var(--q15-semi);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--q15-gris-text);
  padding-right: 14px;
}

.single-product .variations select {
  font-family: var(--q15-cos);
  font-size: 15px;
  color: var(--q15-negre);
  border: 1px solid var(--q15-negre);
  border-radius: 0;
  padding: 9px 12px;
  background: var(--q15-blanc);
  min-width: 160px;
}

.single-product .reset_variations {
  font-size: 13px;
  color: var(--q15-gris-text);
}

/* Cap quantitat a les obres úniques: la marca `_sold_individually` la posa
 * el sembrador i WooCommerce ja no pinta el selector. Per si de cas, també
 * s'amaga on no hi hagi variacions. */
.single-product:not(.q15-samarreta) form.cart .quantity { display: none; }

/* El filtre de preu de Woo (barra lliscant), amb la pell. */
#sidebar .price_slider_wrapper .ui-slider {
  height: 2px;
  background: var(--q15-gris-linia);
  border: 0;
  border-radius: 0;
  margin: 18px 8px 14px;
}

#sidebar .price_slider_wrapper .ui-slider .ui-slider-range {
  background: var(--q15-accent);
  border-radius: 0;
}

#sidebar .price_slider_wrapper .ui-slider .ui-slider-handle {
  width: 16px;
  height: 16px;
  top: -7px;
  margin-left: -8px;
  border: 1px solid var(--q15-negre);
  border-radius: 0;
  background: var(--q15-blanc);
  cursor: pointer;
}

#sidebar .price_slider_amount {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  font-family: var(--q15-cos);
  font-size: 14.5px;
  color: var(--q15-gris-text);
}

#sidebar .price_slider_amount .button {
  padding: 8px 14px !important;
  min-height: 0;
  font-size: 12px !important;
}

#sidebar .price_slider_amount .price_label { order: -1; width: 100%; }

/* ══════════════════ 12 · el blog, el contacte, els espais ══════════════ */

/* L'entrada: «fer imatge més petita» (client). */
.single-post .post-thumbnail-wrap,
.single-post .entry-thumbnail,
.single-post .post-thumbnail {
  max-width: 62%;
}

.single-post .post-thumbnail img,
.single-post .entry-thumbnail img {
  width: 100%;
  height: auto;
}

/* El formulari de contacte (Contact Form 7), amb la pell. */
.q15-contacte .wpcf7-form label {
  display: block;
  font-family: var(--q15-titols);
  font-stretch: var(--q15-semi);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--q15-gris-text);
  margin: 0 0 6px;
}

.q15-contacte .wpcf7-form p { margin: 0 0 18px; }

.q15-contacte .wpcf7-form input[type="text"],
.q15-contacte .wpcf7-form input[type="email"],
.q15-contacte .wpcf7-form input[type="tel"],
.q15-contacte .wpcf7-form textarea {
  width: 100%;
  box-sizing: border-box;
  font-family: var(--q15-cos);
  font-size: 15.5px;
  color: var(--q15-negre);
  background: var(--q15-blanc);
  border: 1px solid var(--q15-negre);
  border-radius: 0;
  padding: 11px 13px;
}

.q15-contacte .wpcf7-form input:focus,
.q15-contacte .wpcf7-form textarea:focus {
  outline: 2px solid var(--q15-accent);
  outline-offset: 1px;
}

.q15-contacte .wpcf7-form .wpcf7-acceptance label {
  font-family: var(--q15-cos);
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--q15-gris-text);
  font-weight: 400;
}

.q15-contacte .wpcf7-form .wpcf7-not-valid-tip {
  font-size: 13px;
  color: #B3261E;
}

.q15-contacte__dades p { margin: 0 0 12px; font-size: 16px; }

.q15-contacte__dades a {
  color: var(--q15-negre);
  text-decoration: none;
  box-shadow: inset 0 -2px 0 var(--q15-accent);
}

/* Un títol qualsevol amb el filet que creix: classe `q15-linia`. */
.q15-linia {
  position: relative;
  padding-top: 22px;
}

.q15-linia::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--q15-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.2s cubic-bezier(.22, .61, .36, 1);
}

.q15-linia.q15-vist::before { transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) {
  .q15-linia::before,
  .q15-banda__nom::before,
  .q15-artista-banda::before,
  .q15-expo-obres-cap::before,
  .q15-expo-obres-titol::before,
  .q15-artista-expos h2::before {
    transform: scaleX(1);
    transition: none;
  }
}

/* Els enllaços de contingut: negre amb el filet d'accent, no verd (contrast). */
#main a:not(.dt-btn):not(.button):not(.q15-boto):not([class*="q15-"]):not(.rollover):not(.woo-buttons a) {
  color: var(--q15-negre);
}

/* Els comptes d'Instagram del text i els enllaços d'exposició: en passar-hi,
 * negre i filet (el verd com a text petit no passa la WCAG AA). */
.tax-pa_exposicio .term-description a.q15-instagram:hover,
.q15-expo-artistes a:hover,
.q15-obra-expo a:hover {
  color: var(--q15-negre);
}

/* El «Material web» de la reunió: apagat a la v2 (opció q15_marca_origen). */

/* ══════════════════ 13 · la reunió del 10-09, amb interruptors ═════════ */

/*
 * Cada regla actua només sota `body.q15-r1009-<clau>`, que posa q15-v2.php §11
 * si la clau és encesa a l'opció `q15_r1009`. Apagar una clau desfà la seva
 * regla sencera, sense tocar aquest fitxer.
 */
:root {
  /* El vermell del logo (logo-q15-vermell.png): el to 0° dels seus píxels. */
  --q15-vermell-logo: #950A07;
}

/* hover · fora el filet verd que pujava; en lloc seu, moviment de la imatge */
body.q15-r1009-hover :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons-on-img > a::after {
  display: none;
}

body.q15-r1009-hover :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons-on-img > a img {
  transition: transform .6s cubic-bezier(.22, .61, .36, 1);
}

body.q15-r1009-hover :is(.dt-products, .products-shortcode) .q15-obra:hover .woo-buttons-on-img > a img,
body.q15-r1009-hover :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons-on-img > a:focus-visible img {
  transform: scale(1.05);
}

@media (prefers-reduced-motion: reduce) {
  body.q15-r1009-hover :is(.dt-products, .products-shortcode) .q15-obra:hover .woo-buttons-on-img > a img {
    transform: none;
  }
}

/* blanc · el requadre de l'obra, blanc en lloc del gris de fons */
body.q15-r1009-blanc :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons-on-img > a {
  background: var(--q15-blanc);
}

/* obra-gran · la imatge de la fitxa d'obra, protagonista (era el 34,5 %) */
@media (min-width: 992px) {
  body.q15-r1009-obra-gran.single-product div.product .woocommerce-product-gallery {
    width: 52% !important;
  }

  body.q15-r1009-obra-gran.single-product div.product .summary.entry-summary {
    width: 43% !important;
  }
}

/* fitxa-neta · fora «Categoria / Etiquetes» sota el botó de la fitxa d'obra */
body.q15-r1009-fitxa-neta.single-product div.product .product_meta {
  display: none;
}

/* boto-venuda · «Obra venuda» no s'encén com un botó actiu.
 * La regla general del botó de la casa (§2) porta !important i guanyava al
 * gris de botiga.css: la venuda es veia i s'encenia com una de disponible. */
body.q15-r1009-boto-venuda :is(.dt-products, .products-shortcode) :is(.q15-venuda, .q15-reservada) .woo-buttons a,
body.q15-r1009-boto-venuda :is(.dt-products, .products-shortcode) :is(.q15-venuda, .q15-reservada) .woo-buttons a:hover {
  background: var(--q15-blanc) !important;
  color: var(--q15-gris-text) !important;
  border-color: var(--q15-gris-linia) !important;
}

/* comptador · a la dreta del carret; amagat quan The7 el marca `hidden` (0) */
body.q15-r1009-comptador .masthead .mini-widgets .wc-ico-cart .counter,
body.q15-r1009-comptador .dt-mobile-header .wc-ico-cart .counter {
  order: 3;
}

body.q15-r1009-comptador .wc-ico-cart .counter.hidden {
  display: none !important;
}

/* filet-vermell · la línia sota «Quei15 també és…», vermella com el logo */
body.q15-r1009-filet-vermell .q15-banda__cap {
  border-bottom: 2px solid var(--q15-vermell-logo);
}

/* botons-banda · aire entre els botons de la banda fosca */
body.q15-r1009-botons-banda .q15-banda .dt-btn {
  margin: 6px 12px 6px 0;
}

/* botons-artistes · «+ info» i «Obra» a banda i banda de la targeta */
body.q15-r1009-botons-artistes .q15-artista-targeta__botons {
  justify-content: space-between;
}

/* botons-baixos · «tots els botons, menys alçada i menys coixí per dalt i
 * per baix» (client, 16-09-2026; opció B de la mostra).
 *
 * A l'ESCRIPTORI 34 px (abans 47); a les pantalles TÀCTILS es queden a 44,
 * que és on el dit ho demana. La WCAG 2.2 demana 24×24 al nivell AA —el del
 * projecte— i 44×44 al AAA: amb això el AA es compleix a tot arreu i el AAA
 * es manté allà on es toca amb el dit. El text, el color i el focus no es
 * toquen: només l'aire de dins. */
body.q15-r1009-botons-baixos :is(.dt-btn, .default-btn-shortcode, a.dt-btn, .q15-boto,
.woocommerce .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce .single_add_to_cart_button, .woocommerce .checkout-button,
.woocommerce .wc-forward, .se7f-mes, .wpcf7-form .wpcf7-submit, .q15-popup__btn, .q15-hero-cap__boto),
body.q15-r1009-botons-baixos :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons a {
  padding: 7px 18px !important;
  min-height: 34px;
}

@media (pointer: coarse) {
  body.q15-r1009-botons-baixos :is(.dt-btn, .default-btn-shortcode, a.dt-btn, .q15-boto,
  .woocommerce .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
  .woocommerce #respond input#submit, .woocommerce .single_add_to_cart_button, .woocommerce .checkout-button,
  .woocommerce .wc-forward, .se7f-mes, .wpcf7-form .wpcf7-submit, .q15-popup__btn, .q15-hero-cap__boto),
  body.q15-r1009-botons-baixos :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons a {
    padding: 11px 20px !important;
    min-height: 44px;
  }
}

/* portes-rectes · les tres caixes de la portada, rectes i més baixes
 * (proposta 1 de la mostra, amb una mica menys d'alçada encara: 180 → 118 px).
 * El gir de −1,4° / +0,7° / −0,6° era la «diagonal del sistema»; el gest de
 * pujar en passar-hi per sobre es queda, i el fons negre també. */
body.q15-r1009-portes-rectes .q15-portes .porta {
  padding: 14px 24px 16px;
  transform: none;
}

body.q15-r1009-portes-rectes .q15-portes .porta:hover {
  transform: translateY(-5px);
}

body.q15-r1009-portes-rectes .q15-portes .porta__titol {
  font-size: clamp(24px, 2vw, 30px);
  margin-bottom: 4px;
}

body.q15-r1009-portes-rectes .q15-portes .porta__go {
  margin-top: 10px;
}

@media (prefers-reduced-motion: reduce) {
  body.q15-r1009-portes-rectes .q15-portes .porta:hover { transform: none; }
}

/* hover-net · CAP capa de color damunt de cap imatge (client, 16-09-2026:
 * «totes les imatges han de tenir l'efecte que ara hi ha a la botiga; no
 * volen que res afecti la imatge de l'obra o de l'artista»).
 *
 * N'hi havia dues:
 *   · el filet d'accent de 2 px que pujava sota la imatge — nostre, a les
 *     targetes d'artista, les cards de la portada i les files de llista;
 *   · el vel de The7 (`rgba(0,162,156,0.3)` a `.enable-bg-rollover`) amb la
 *     seva icona al mig, que és el que es veia com un filtre blau.
 *
 * En lloc seu, el gest de la botiga: la imatge es mou una mica. */
body.q15-r1009-hover-net :is(.q15-artistes, .q15-cards, .q15-tambe, .q15-fila) .fancy-media-wrap::after,
body.q15-r1009-hover-net .q15-artista-targeta__imatge::after {
  display: none;
}

body.q15-r1009-hover-net .enable-bg-rollover .post-thumbnail-rollover::after,
body.q15-r1009-hover-net .enable-bg-rollover .gallery-rollover,
body.q15-r1009-hover-net .enable-bg-rollover.hover-scale figure::after,
body.q15-r1009-hover-net .enable-bg-rollover.hover-scale article::after,
body.q15-r1009-hover-net .shortcode-single-image-wrap .rollover::after,
body.q15-r1009-hover-net .rollover::after,
body.q15-r1009-hover-net .post-thumbnail-rollover::after {
  background: transparent !important;
  background-image: none !important;
}

/* La lupa i les icones que The7 posa al mig de la imatge. */
body.q15-r1009-hover-net :is(.rollover, .post-rollover, .rollover-video, .images-list) i,
body.q15-r1009-hover-net .rollover-icon,
body.q15-r1009-hover-net .gallery-zoom-ico {
  display: none !important;
}

/* El gest: el mateix que a la botiga. */
body.q15-r1009-hover-net :is(.q15-artistes, .q15-cards, .q15-tambe, .q15-fila) .fancy-media-wrap img,
body.q15-r1009-hover-net .q15-artista-targeta__imatge img,
body.q15-r1009-hover-net .shortcode-single-image-wrap img {
  transition: transform .6s cubic-bezier(.22, .61, .36, 1);
}

body.q15-r1009-hover-net :is(.q15-artistes, .q15-cards, .q15-tambe, .q15-fila) .fancy-media-wrap:hover img,
body.q15-r1009-hover-net :is(.q15-artistes, .q15-cards, .q15-tambe, .q15-fila) a:focus-visible .fancy-media-wrap img,
body.q15-r1009-hover-net .q15-artista-targeta:hover .q15-artista-targeta__imatge img,
body.q15-r1009-hover-net .shortcode-single-image-wrap:hover img {
  transform: scale(1.05);
}

@media (prefers-reduced-motion: reduce) {
  body.q15-r1009-hover-net img { transition: none !important; }
  body.q15-r1009-hover-net :is(.fancy-media-wrap, .shortcode-single-image-wrap, .q15-artista-targeta):hover img { transform: none; }
}

/* sense-fletxa · fora la fletxa de «torna a dalt» de The7 (client,
 * 16-09-2026). El xip «Veure destacat» és fix a baix a la dreta (181×46) i
 * li queia just a sobre —la fletxa fa 40×40 al mateix racó, i amb z-index
 * -1 quedava colgada—, o sigui que no es podia clicar. Amb `display: none`
 * i no amb `visibility`, perquè així també surt del recorregut del tabulador.
 * Si algun dia es vol recuperar, val més apagar-la a Theme Options que
 * tornar-la a deixar sota el xip. */
body.q15-r1009-sense-fletxa .scroll-top {
  display: none !important;
}

/* banda-maqueta · la banda «Quei15 també és…», amb aire (client, 16-09-2026:
 * «ens hi falten paddings… no es veu amb el mateix nivell de pulcritud que
 * la resta de la web»).
 *
 * MESURAT abans de tocar res (1440 px): entre el cartell i el seu text hi
 * havia 0 px, i entre el bloc de Projectes i el de Tallers, 0 px també —les
 * columnes de WPBakery hi anaven sense coixí. A sobre, el marc del cartell
 * forçava proporció A3 (297/420) i el cartell dels tallers, que no ho és,
 * deixava mig marc blanc buit.
 *
 * Tres coses, doncs: aire entre columnes, el cartell sencer i sense marc, i
 * la llista sense les ratlles (client: «no donen una imatge professional»). */
body.q15-r1009-banda-maqueta .q15-banda .vc_inner > .vc_col-sm-2 + .vc_col-sm-4 > .vc_column-inner {
  padding-left: 30px;
}

body.q15-r1009-banda-maqueta .q15-banda .vc_inner > .vc_col-sm-4 + .vc_col-sm-2 > .vc_column-inner {
  padding-left: 48px;
}

/* El cartell: sencer, sense marc ni fons, i arrenglerat amb el títol. */
body.q15-r1009-banda-maqueta .q15-banda .fancy-media-wrap {
  aspect-ratio: auto;
  background: transparent;
  border: 0;
}

body.q15-r1009-banda-maqueta .q15-banda .fancy-media-wrap img {
  height: auto;
  object-fit: contain;
}

body.q15-r1009-banda-maqueta .q15-banda__nom {
  padding-top: 0;
  margin-bottom: 14px;
}

/* La llista: fora les ratlles; l'aire les substitueix. */
body.q15-r1009-banda-maqueta .q15-banda__llista li {
  border-bottom: 0;
  padding: 5px 0;
}

body.q15-r1009-banda-maqueta .q15-banda__llista {
  margin-bottom: 26px;
}

/* El botó de la banda: blanc amb lletra negra i, en passar-hi per sobre,
 * vermell del logo amb lletra blanca (client). Abans era transparent amb
 * filet negre sobre fons negre: no es veia. Blanc sobre #950A07: 15,9:1. */
body.q15-r1009-banda-maqueta .q15-banda .dt-btn,
body.q15-r1009-banda-maqueta .q15-banda .q15-boto {
  background: var(--q15-blanc) !important;
  color: var(--q15-negre) !important;
  border-color: var(--q15-blanc) !important;
}

body.q15-r1009-banda-maqueta .q15-banda .dt-btn:hover,
body.q15-r1009-banda-maqueta .q15-banda .dt-btn:focus-visible,
body.q15-r1009-banda-maqueta .q15-banda .q15-boto:hover,
body.q15-r1009-banda-maqueta .q15-banda .q15-boto:focus-visible {
  background: var(--q15-vermell-logo) !important;
  color: var(--q15-blanc) !important;
  border-color: var(--q15-vermell-logo) !important;
}

body.q15-r1009-banda-maqueta .q15-banda .dt-btn > span {
  color: inherit !important;
}

/* Al mòbil les columnes es posen una sota l'altra: el coixí lateral no serveix
 * i el que cal és separació vertical. */
@media (max-width: 991px) {
  body.q15-r1009-banda-maqueta .q15-banda .vc_inner > .vc_column_container > .vc_column-inner {
    padding-left: 0;
  }

  body.q15-r1009-banda-maqueta .q15-banda .vc_inner > .vc_column_container + .vc_column_container > .vc_column-inner {
    padding-top: 26px;
  }

  body.q15-r1009-banda-maqueta .q15-banda .fancy-media-wrap {
    max-width: 260px;
    margin-inline: auto;
  }
}

/* ══════════════════ 14 · la reunió del 17-09, amb interruptors ═════════ */
/*
 * Cada regla actua només sota `body.q15-r1709-<clau>`, que posa q15-v2.php §13
 * si la clau és encesa a l'opció `q15_r1709`. Les fonts: el PDF comentat del
 * Juan Carlos (abans de la reunió) i les notes de la Martina (de la reunió);
 * on es contradiuen, manen les notes.
 */

/* tipografia-v1 · «Tipografia (web antiga)» (Martina): tornar a la Space
 * Grotesk de la v1 en lloc de l'Archivo condensada. Tot el sistema de la v2
 * penja de tres variables (§1), o sigui que n'hi ha prou de canviar-les; les
 * opcions de The7 (títols, menú, botons) les torna sembra-reunio-1709.php.
 *
 * La Space Grotesk ja és al tema, servida en local (tipografies.css: 500,
 * 600 i 700). No té eix d'amplada: tota compressió que quedi pel camí —les
 * variables, el 87,5 % escrit a mà a marc.css, el `font:` abreujat de The7
 * (T-94)— es posa a normal, perquè demanar-li un condensat que no té
 * només pot fer que el navegador en busqui un altre. */
body.q15-r1709-tipografia-v1,
body.q15-r1709-tipografia-v1 * {
  /* A TOTS els elements i amb !important: els fulls de la v1 tornen a
   * declarar la variable a cada component (.q15-cards, .dt-products,
   * .q15-hero-cap, .masthead .mini-widgets…, mesurat 21-09-2026), i una
   * declaració al <body> sola no hi arribava. */
  --q15-titols: 'Space Grotesk', system-ui, sans-serif !important;
  --q15-estret: 100% !important;
  --q15-semi: 100% !important;
}
body.q15-r1709-tipografia-v1 * {
  font-stretch: normal !important;
}

/* logo-flotant · «el LOGO ha de quedar també fix al menú quan es fa scroll»
 * (Juan Carlos), «a l'esquerra» (Martina). The7 el pinta a la capçalera
 * flotant quan `header-style-floating-choose_logo` és «main» (BD); aquí
 * només la mida, que ha de cabre als 74 px de la barra. */
body.q15-r1709-logo-flotant #phantom :is(.branding, .logo-box) img {
  max-height: 50px;
  width: auto;
}

/* menu-actiu · «que es quedi marcat al lloc on estem (subratllat)»
 * (Martina), «deixar línia de color quan es selecciona» (Juan Carlos). El
 * filet d'accent sota el text, el mateix gest dels títols de secció. */
body.q15-r1709-menu-actiu :is(.masthead, #phantom) .main-nav > li > a .menu-text {
  position: relative;
}
body.q15-r1709-menu-actiu :is(.masthead, #phantom) .main-nav > li > a .menu-text::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -7px;
  height: 2px;
  background: var(--q15-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s cubic-bezier(.22, .61, .36, 1);
}
body.q15-r1709-menu-actiu :is(.masthead, #phantom) .main-nav > li:is(.act, .current-menu-item, .current-menu-ancestor, .current-menu-parent) > a .menu-text::after,
body.q15-r1709-menu-actiu :is(.masthead, #phantom) .main-nav > li > a:is(:hover, :focus-visible) .menu-text::after {
  transform: scaleX(1);
}
@media (prefers-reduced-motion: reduce) {
  body.q15-r1709-menu-actiu :is(.masthead, #phantom) .main-nav > li > a .menu-text::after { transition: none; }
}

/* desplegables · la fletxa que diu «es desplega», i que gira quan s'obre. */
body.q15-r1709-desplegables .q15-mw__fletxa {
  flex: 0 0 auto;
  margin-left: -2px;
  transition: transform .2s;
}
body.q15-r1709-desplegables .q15-mw__boto[aria-expanded="true"] .q15-mw__fletxa {
  transform: rotate(180deg);
}
/* El menú penja arran del botó: sense el forat de 6 px que feia tancar el
 * desplegable en baixar-hi amb el ratolí. */
body.q15-r1709-desplegables .q15-mw__menu {
  top: 100%;
}

/* portes-netes · «Botons GRAN eliminar acció: veure-les, etc» (Juan Carlos),
 * «treure frases dels quadrats» (Martina). Tota la porta ja és l'enllaç. */
body.q15-r1709-portes-netes .q15-portes .porta__go {
  /* !important: pagines.css hi posa `display: flex !important` */
  display: none !important;
}

/* portes-inclinades · «els quadres, que hi hagi biaix / inclinat (web
 * antiga)» (Martina). La reunió passa per sobre de la tria del 16-09
 * («rectes»): torna el gir de la v1 (−1,4° / +0,7° / −0,6°) i, en passar-hi,
 * s'adrecen i pugen, com feien. L'alçada reduïda del 16-09 es queda. */
body.q15-r1709-portes-inclinades .q15-portes .porta.porta--1 { transform: rotate(-1.4deg); }
body.q15-r1709-portes-inclinades .q15-portes .porta.porta--2 { transform: rotate(0.7deg); }
body.q15-r1709-portes-inclinades .q15-portes .porta.porta--3 { transform: rotate(-0.6deg); }
body.q15-r1709-portes-inclinades .q15-portes .porta.porta--1:hover,
body.q15-r1709-portes-inclinades .q15-portes .porta.porta--2:hover,
body.q15-r1709-portes-inclinades .q15-portes .porta.porta--3:hover {
  transform: rotate(0deg) translateY(-5px);
}
@media (prefers-reduced-motion: reduce) {
  body.q15-r1709-portes-inclinades .q15-portes .porta.porta--1:hover,
  body.q15-r1709-portes-inclinades .q15-portes .porta.porta--2:hover,
  body.q15-r1709-portes-inclinades .q15-portes .porta.porta--3:hover { transform: rotate(0deg); }
}

/* artistes-ritme · «deixar entre nom exposició i botó el mateix espai que
 * entre nom artista i nom exposició» (Juan Carlos). Abans: 4 px i 16 px. */
body.q15-r1709-artistes-ritme .q15-cards .card__artista { margin-bottom: 8px; }
/* L'exposició és l'últim fill del bloc de text i WPBakery hi posa marge 0
 * (`.wpb_text_column :last-child`): el mateix aire va a la columna de text. */
body.q15-r1709-artistes-ritme .q15-cards .wpb_text_column { margin-bottom: 8px; }

/* filets-seccio · «fer que el filet arribi a tot l'ample del contingut, com
 * passa a ARTISTES» (Juan Carlos), «ratlla de banda a banda» (Martina). A
 * «Obra a la venda» i «T-Shirt Gallery» el títol és a una columna de 2/3 (el
 * botó és a l'altre terç) i el filet, que és del títol, feia 2/3. Des de
 * tauleta amunt el títol passa a ocupar tota la fila i el botó es col·loca a
 * la dreta, arran de baix; al mòbil ja van un sota l'altre. */
@media (min-width: 768px) {
  body.q15-r1709-filets-seccio .q15-cap-seccio {
    position: relative;
  }
  body.q15-r1709-filets-seccio .q15-cap-seccio > .vc_col-sm-8 {
    width: 100%;
  }
  /* Arran del peu del títol, com a la v2 (flex-end + 4 px): els 20 px de
   * coixí inferior de la fila més aquests 4. */
  body.q15-r1709-filets-seccio .q15-cap-seccio > .vc_col-sm-4 {
    position: absolute;
    right: 0;
    bottom: 24px;
    width: auto;
  }
  body.q15-r1709-filets-seccio .q15-cap-seccio > .vc_col-sm-4 > .vc_column-inner > .wpb_wrapper {
    padding-bottom: 0;
  }
}

/* seccions-aire · «+ separació apartats a la web» (Martina); «separar el
 * filet dels botons superiors» i «separar bloc T-Shirt del bloc Quei15 tb
 * és» (Juan Carlos). */
body.q15-r1709-seccions-aire .q15-cap-seccio {
  margin-top: clamp(40px, 5vw, 72px);
}
body.q15-r1709-seccions-aire .q15-productes-home {
  margin-bottom: clamp(48px, 6vw, 96px) !important;
}

/* obres-centrat · «text justificat amb les fotos de les obres (centrar)» i
 * el mateix a les samarretes (Martina). La imatge és centrada dins de la
 * targeta i el text anava a l'esquerra: ara van tots dos al mig. És el
 * mateix component a la portada i a la botiga, i es tracta igual. */
body.q15-r1709-obres-centrat :is(.dt-products, .products-shortcode) .q15-obra :is(.woocom-list-content, .product-content, .wf-td) {
  text-align: center;
}
body.q15-r1709-obres-centrat :is(.dt-products, .products-shortcode) .q15-obra :is(.q15-autor, .entry-title, .price, .woocommerce-product-details__short-description, .q15-etiquetes, .q15-meta) {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  justify-content: center;
}
body.q15-r1709-obres-centrat :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons {
  justify-content: center;
  text-align: center;
}

/* banda-tambe · «Quei15 també és…» com la imatge que va passar el client
 * (barra-QUEI15 TAMBE ES.jpg) i les notes de la Martina: la ratlla vermella
 * A DALT de la banda i no sota el títol; a cada columna, el nom i dues línies
 * d'entrada sobre una veladura, i a sota el cartell (DIN A4) amb el subtítol,
 * la llista i els dos botons al costat.
 *
 * 2a versió (21-09-2026): tot són ELEMENTS DE WPBAKERY, editables des del
 * constructor com a la v2 —dos blocs de text, una «Fancy image» de The7 i dos
 * elements de botó per columna (sembra-reunio-1709.php)—, i la composició la
 * fa una graella sobre el seu contenidor. Cap HTML a mà. */
body.q15-r1709-banda-tambe .q15-banda {
  position: relative;
}
body.q15-r1709-banda-tambe .q15-banda::before {
  /* display: block — WPBakery fa servir el ::before de .vc_row com a
   * clearfix amb display: table, i una taula buida en posició absoluta
   * fa 0 px d'ample: la ratlla hi era i no es veia (T-104). */
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 8.333%;
  right: 8.333%;
  height: 3px;
  background: var(--q15-vermell-logo);
  z-index: 2;
}
body.q15-r1709-banda-tambe .q15-banda__cap {
  border-bottom: 0 !important;
  padding-bottom: 0;
  margin-bottom: clamp(22px, 2.6vw, 36px);
}

/* La columna: els elements de WPBakery, en graella.
 *   fila 1 · el bloc del nom i l'entrada, de banda a banda
 *   fila 2 · el cartell (que baixa fins a baix) | el bloc del subtítol i la llista
 *   fila 3 · el cartell                         | «+ Informació» · «Apunta't»
 *   fila 4 · el cartell                         | (buit: s'hi queda l'alçada que sobri)
 * La 4a fila fa que, si el cartell és més alt que el text, l'aire vagi a sota
 * dels botons i no entre la llista i els botons. */
body.q15-r1709-banda-tambe .q15-tambe-col > .vc_column-inner > .wpb_wrapper {
  display: grid;
  /* El cartell, d'ample fix i no en %: la segona columna és més estreta (el
   * coixí de 48 px del mig) i en % els dos cartells feien 220 i 204 px. */
  grid-template-columns: clamp(120px, 14vw, 230px) clamp(16px, 2vw, 26px) auto 1fr;
  grid-template-rows: auto auto auto 1fr;
  /* L'aire entre files: WPBakery treu el marge de l'últim fill de cada bloc de
   * text (`.wpb_text_column :last-child`), i l'entrada i la llista quedaven
   * enganxades al cartell i als botons. */
  row-gap: 16px;
  grid-template-areas:
    "cap     cap cap  cap"
    "cartell .   text text"
    "cartell .   b1   b2"
    "cartell .   .    .";
  align-items: start;
}
body.q15-r1709-banda-tambe .q15-tambe-col .q15-tambe-col__cap { grid-area: cap; }
/* ⚠ La «Fancy image» de The7 posa l'extra_class en un div DE DINS; l'element
 * que és a la graella és l'embolcall .shortcode-single-image-wrap (T-109). */
body.q15-r1709-banda-tambe .q15-tambe-col > .vc_column-inner > .wpb_wrapper > .shortcode-single-image-wrap { grid-area: cartell; }
body.q15-r1709-banda-tambe .q15-tambe-col .q15-tambe-col__text { grid-area: text; }
body.q15-r1709-banda-tambe .q15-tambe-col .q15-tambe-col__boto { grid-area: b1; margin: 0 12px 0 0 !important; justify-self: start; }
body.q15-r1709-banda-tambe .q15-tambe-col .q15-tambe-col__boto ~ .q15-tambe-col__boto { grid-area: b2; margin-right: 0 !important; }
body.q15-r1709-banda-tambe .q15-tambe-col .wpb_text_column { margin-bottom: 0; }

body.q15-r1709-banda-tambe .q15-tambe-col__nom {
  font-family: var(--q15-titols);
  font-size: clamp(22px, 2.2vw, 30px) !important;
  font-weight: 700;
  line-height: 1.05;
  color: var(--q15-blanc);
  margin: 0 0 8px;
}
body.q15-r1709-banda-tambe .q15-tambe-col__entrada {
  margin: 0 0 18px;
  padding: 6px 10px;
  background: rgba(255, 255, 255, .10);
  color: var(--q15-blanc);
  font-size: 16.5px;
  line-height: 1.5;
}
body.q15-r1709-banda-tambe .q15-tambe-col__entrada:empty {
  display: none;
}

/* El cartell: proporció DIN A4 (client), sense marc; els cartells que
 * arribin s'hi han de fer en A4 o es retallaran per les vores. La «Fancy
 * image» porta un `a` entremig quan enllaça (vegeu pagines.css): ha
 * d'omplir el marc igual que la imatge. */
body.q15-r1709-banda-tambe .q15-tambe-col__cartell {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}
body.q15-r1709-banda-tambe .q15-tambe-col__cartell .fancy-media-wrap {
  aspect-ratio: 210 / 297;
  overflow: hidden;
  background: transparent;
  border: 0;
}
body.q15-r1709-banda-tambe .q15-tambe-col__cartell .fancy-media-wrap > a {
  display: block;
  width: 100%;
  height: 100%;
}
body.q15-r1709-banda-tambe .q15-tambe-col__cartell .fancy-media-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.q15-r1709-banda-tambe .q15-tambe-col__subtitol {
  font-family: var(--q15-titols);
  font-size: clamp(18px, 1.6vw, 22px) !important;
  font-weight: 700;
  line-height: 1.15;
  color: var(--q15-blanc);
  margin: 0 0 10px;
}
body.q15-r1709-banda-tambe .q15-tambe-col .q15-banda__llista {
  margin-bottom: 18px;
}
body.q15-r1709-banda-tambe .q15-tambe-col .q15-banda__llista li {
  border-bottom: 0;
  padding: 3px 0;
  font-size: 15px;
}
body.q15-r1709-banda-tambe .q15-banda .vc_inner > .vc_col-sm-6 + .vc_col-sm-6 > .vc_column-inner {
  padding-left: clamp(24px, 3vw, 48px);
}
@media (max-width: 767px) {
  /* La fila és «a tot l'ample sense espais»: a l'escriptori el marge el fan
   * les columnes buides d'1/12, però al mòbil s'apilen i el contingut anava
   * de vora a vora (0→375 px, mesurat 21-09). Els 20 px de la resta. */
  body.q15-r1709-banda-tambe .q15-banda > .wpb_column > .vc_column-inner {
    padding-left: 20px;
    padding-right: 20px;
  }
  body.q15-r1709-banda-tambe .q15-banda::before { left: 20px; right: 20px; }
  body.q15-r1709-banda-tambe .q15-banda .vc_inner > .vc_col-sm-6 + .vc_col-sm-6 > .vc_column-inner {
    padding-left: 0;
    padding-top: 34px;
  }
}
@media (max-width: 479px) {
  body.q15-r1709-banda-tambe .q15-tambe-col > .vc_column-inner > .wpb_wrapper {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto;
    grid-template-areas:
      "cap     cap"
      "cartell cartell"
      "text    text"
      "b1      b2";
    row-gap: 16px;
  }
  body.q15-r1709-banda-tambe .q15-tambe-col > .vc_column-inner > .wpb_wrapper > .shortcode-single-image-wrap { max-width: 240px !important; }
}

/* La pàgina /exposar/ (nova, reunió del 17-09): una «Imatge senzilla» de
 * WPBakery amb la sala, el text i un element de botó. La foto, a tot l'ample
 * de la columna. (La 1a versió feia servir la classe .q15-exposar, que és la
 * de la banda «Vols exposar» de la portada i n'heretava les variables.) */
.q15-pagina-exposar__sala { margin-bottom: clamp(22px, 3vw, 36px) !important; }
.q15-pagina-exposar__sala .vc_single_image-wrapper,
.q15-pagina-exposar__sala img { display: block; width: 100%; height: auto; }
.q15-pagina-exposar__boto { margin-top: 6px; }

/* peu-composicio · el peu ara és el nostre ([q15_peu], sembra-reunio-1709.php
 * en treu el RevSlider «Peu-base»). #bottom-bar .wf-wrap anava a 100 %
 * (§7): la pastilla ocupava tota la pantalla. Es posa a la caixa del
 * contingut, amb els mateixos marges que les seccions (50 px de The7). */
body.q15-r1709-peu-composicio .q15-peu {
  max-width: var(--the7-content-width, 1320px);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 3.5vw, 50px);
  padding-right: clamp(20px, 3.5vw, 50px);
  box-sizing: border-box;
}

/* peu-composicio · (Juan Carlos) «posar el logo a sobre Quei15, justificat
 * dreta» · «text i botó centrats» · «text justificat esquerra (bandera
 * dreta)». Els tres blocs miren cap al centre. Al mòbil, un sota l'altre,
 * es queden com eren. */
@media (min-width: 861px) {
  body.q15-r1709-peu-composicio .q15-peu__bloc--qui {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
  }
  body.q15-r1709-peu-composicio .q15-peu__bloc--qui .q15-peu__logo {
    margin-bottom: 12px;
  }
  body.q15-r1709-peu-composicio .q15-peu__bloc--contacte {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  body.q15-r1709-peu-composicio .q15-peu__bloc--xarxes {
    text-align: left;
  }
}

/* fletxa-esquerra · la fletxa de «torna a dalt» torna (l'Albert, 21-09-2026),
 * a baix a l'ESQUERRA. El 16-09 es va treure (`sense-fletxa`, §13) perquè
 * queia just sota el xip «Veure destacat», que és a baix a la dreta; ara van
 * un a cada racó, amb els mateixos 20 px de marge. El botó de la casa: blanc,
 * filet negre, negre en passar-hi; 44×44 (WCAG 2.2 AAA de mida d'objectiu).
 *
 * The7 (main.min.css) la mou amb `.on` / `.off` canviant `right`; aquí
 * es fa el mateix amb `left` i entra per l'esquerra. Quan no és a la vista
 * es queda `visibility: hidden`, perquè el tabulador no s'hi aturi sense
 * veure-la (la transició `all .4s` de The7 la manté visible mentre surt).
 * Al mòbil The7 ja l'amaga (`.show-mobile-header .scroll-top.on`). */
body.q15-r1709-fletxa-esquerra .scroll-top {
  display: flex !important;   /* per sobre de sense-fletxa (§13), que la treia */
  right: auto !important;
  left: -64px;
  bottom: 20px;
  width: 44px;
  height: 44px;
  background: var(--q15-blanc);
  border: 1px solid var(--q15-negre);
  visibility: hidden;
}
body.q15-r1709-fletxa-esquerra .scroll-top.on {
  left: 20px;
  visibility: visible;
}
body.q15-r1709-fletxa-esquerra .scroll-top svg {
  fill: var(--q15-negre);
}
body.q15-r1709-fletxa-esquerra .scroll-top:is(:hover, :focus-visible) {
  background: var(--q15-negre);
}
body.q15-r1709-fletxa-esquerra .scroll-top:is(:hover, :focus-visible) svg {
  fill: var(--q15-blanc);
}

/* obres-graella · (client, 21-09-2026) «que res no passi de la graella que
 * marca la imatge del producte; el botó afegir al cistell més petit i el text
 * també s'ha d'adaptar a l'espai». La imatge viu dins d'una caixa amb 14 px
 * de coixí (botiga.css), o sigui que fa 258 px d'una targeta de 286; el text i
 * el botó en feien 286 (mesurat a 1920). Ara porten la mateixa vora, i el
 * botó fa l'ample del seu text, centrat. Val per a totes les graelles d'obra
 * (portada, botiga, relacionades): és el mateix component. */
body.q15-r1709-obres-graella :is(.dt-products, .products-shortcode) .q15-obra .woocom-list-content {
  padding-left: 14px;
  padding-right: 14px;
  box-sizing: border-box;
}
body.q15-r1709-obres-graella :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons {
  display: flex;
  justify-content: center;
}
body.q15-r1709-obres-graella :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons :is(a, .button) {
  display: inline-block;
  width: auto;
  max-width: 100%;
}

/* filets-ritme · (client, 21-09-2026) «per sobre i per sota de les línies
 * blaves hi ha d'haver més espai, i sempre el mateix per dalt i per baix».
 * Mesurat abans, a 1920: a sota, 27 px de la línia a dalt de les lletres; a
 * sobre, 152, 107 o 96 px segons què hi havia (el coixí de 80 px de la fila
 * del text d'entrada, el marge de 35 px que WPBakery deixa sota cada fila…).
 *
 * Ara, UNA mida, --q15-aire-filet (el ritme de secció del §14), a totes dues
 * bandes, comptada fins al que es VEU: el darrer botó de sobre (o la vora de
 * la banda fosca) i la part de dalt de les lletres del títol. */
:root { --q15-aire-filet: clamp(40px, 5vw, 72px); }
body.q15-r1709-filets-ritme .q15-cap-seccio {
  margin-top: var(--q15-aire-filet) !important;
  padding-top: 0 !important;
}
/* WPBakery posa 35 px de coixí a dalt de les columnes de tota fila que en
 * segueix una amb fons (`.vc_row-has-fill + .vc_row > .vc_column_container >
 * .vc_column-inner`): per això «Obra a la venda», després de la banda fosca,
 * en feia 107 i no 72 (mesurat 21-09). */
body.q15-r1709-filets-ritme .q15-cap-seccio > .vc_column_container > .vc_column-inner {
  padding-top: 0 !important;
}
/* A sota: el títol porta un blanc a dalt de les lletres (l'interlineat), d'un
 * 0,1 em; es descompta perquè la mida sigui fins a la lletra. */
body.q15-r1709-filets-ritme .q15-cap-seccio .titol-seccio--filet {
  padding-top: calc(var(--q15-aire-filet) - 0.1em);
}
/* A sobre: la fila d'abans no hi ha d'afegir res… */
body.q15-r1709-filets-ritme :is(.vc_row:has(+ .q15-cap-seccio), .vc_row:has(+ .vc_row-full-width + .q15-cap-seccio)) {
  margin-bottom: 0 !important;
}
/* …i si és blanca, tampoc el coixí de sota: el que es veu és el seu darrer
 * element. Una banda amb fons es queda el coixí, perquè allà el que es veu és
 * la vora del fons. */
body.q15-r1709-filets-ritme :is(.vc_row:has(+ .q15-cap-seccio), .vc_row:has(+ .vc_row-full-width + .q15-cap-seccio)):not(.vc_row-has-fill):not(:has(> .upb_row_bg)) {
  padding-bottom: 0 !important;
}

/* botons-negres · (client, 21-09-2026) «els botons negres han de tenir la font
 * blanca, l'hover ha de ser en negatiu». La classe q15-boto--negre la posa
 * q15-v2.php §13 a tot botó de The7 amb fons fosc als atributs. (El primari
 * del popup NO: a la v2 el botó de la casa el fa blanc, i amb aquesta regla
 * quedaria blanc sobre blanc.)
 *
 * ⚠ #page al selector, A POSTA: The7 escriu el fons de cada botó amb el seu
 * ID i !important (#default-btn-<hash>:hover { background: #363636
 * !important }), i una regla amb classes no li guanya mai, per molt
 * !important que porti. Amb un ID pel davant (div#page embolcalla tot el lloc)
 * sí: (1,3,1) contra (1,1,0). Vegeu T-110. */
body.q15-r1709-botons-negres #page .q15-boto--negre:not(:hover):not(:focus-visible),
body.q15-r1709-botons-negres #page .q15-boto--negre:not(:hover):not(:focus-visible) * {
  color: var(--q15-blanc) !important;
}
body.q15-r1709-botons-negres #page .q15-boto--negre:is(:hover, :focus-visible) {
  background: var(--q15-blanc) !important;
  border-color: var(--q15-negre) !important;
  color: var(--q15-negre) !important;
}
body.q15-r1709-botons-negres #page .q15-boto--negre:is(:hover, :focus-visible) * {
  color: var(--q15-negre) !important;
}

/* blog-net · (Albert, 21-09-2026) «la barra lateral sense cap element
 * decoratiu, més espai, més separació entre entrades recents, i només
 * entrades recents i un buscador». Els ginys els posa sembra-reunio-1709.php
 * (F): una Cerca i les Entrades recents.
 *
 * Fora, i per què hi eren:
 *   · les CASELLES davant de cada entrada: són les dels filtres de la botiga
 *     (botiga.css, `#sidebar .sidebar-content li > a::before`), que
 *     s'escolaven a totes les barres laterals;
 *   · el filet d'accent que creix damunt de cada titular (pagines.css);
 *   · les línies de The7 (`sidebar-visual_style` = with_dividers). L'opció
 *     no es toca perquè també vesteix la barra de la botiga.
 * Àmbit: el blog, els arxius, la cerca i les entrades; mai la botiga. */
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) {
  --q15-blog-aire: 22px;
}
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) :is(#sidebar, #sidebar .sidebar-content, #sidebar .widget) {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent;
}
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) :is(#sidebar, #sidebar .sidebar-content, #sidebar .widget)::before,
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) :is(#sidebar, #sidebar .sidebar-content, #sidebar .widget)::after {
  display: none !important;
}
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) #sidebar .widget {
  margin-bottom: 48px;
  padding-top: 0 !important;
}

/* El titular del giny: sense filet, petit i en versaleta, com els rètols de
 * data de les llistes. És estructura (un h2), no decoració. */
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) #sidebar .wp-block-heading {
  font-size: 13px !important;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--q15-gris-text);
  padding-top: 0;
  margin: 0 0 var(--q15-blog-aire);
}
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) #sidebar .wp-block-heading::before {
  display: none;
}

/* Les entrades recents: només el títol, i aire entre una i l'altra. */
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) #sidebar .sidebar-content li > a::before {
  content: none;
  display: none;
}
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) #sidebar .wp-block-latest-posts > li {
  margin: 0 0 var(--q15-blog-aire);
  padding: 0;
  border: 0;
}
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) #sidebar .wp-block-latest-posts > li:last-child {
  margin-bottom: 0;
}
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) #sidebar .wp-block-latest-posts__post-title {
  display: block;
  font-family: var(--q15-titols);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--q15-negre);
  text-decoration: none;
}
/* En passar-hi: el subratllat, que és l'avís que és un enllaç, no ornament. */
body.q15-r1709-blog-net:is(.blog, .archive, .search, .single-post):not(.woocommerce-page) #sidebar .wp-block-latest-posts__post-title:is(:hover, :focus-visible) {
  color: var(--q15-negre);
  text-decoration: underline;
  text-decoration-color: var(--q15-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

/* La cerca: un camp net, de l'alçada de tocar (44 px), amb la lupa a dins. */
body.q15-r1709-blog-net #sidebar .wp-block-search__inside-wrapper {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--q15-gris-linia);
  border-radius: 0;
  padding: 0;
  background: var(--q15-blanc);
  transition: border-color .2s;
}
body.q15-r1709-blog-net #sidebar .wp-block-search__inside-wrapper:focus-within {
  border-color: var(--q15-negre);
}
body.q15-r1709-blog-net #sidebar .wp-block-search__input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 44px;
  border: 0 !important;
  border-radius: 0;
  padding: 0 12px;
  font-family: var(--q15-cos);
  font-size: 16px;
  color: var(--q15-negre);
  background: transparent;
  box-shadow: none !important;
  outline: none;
}
body.q15-r1709-blog-net #sidebar .wp-block-search__input::placeholder {
  color: var(--q15-gris-text);
  opacity: 1;
}
body.q15-r1709-blog-net #sidebar .wp-block-search__button {
  flex: 0 0 44px;
  width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--q15-negre);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
/* La lupa sortia BLANCA sobre blanc. No era el fill: el fill és currentColor,
 * i una regla que no és nostra posa el `color` de l'SVG en blanc. Que hereti
 * el del botó (negre, i blanc en passar-hi). */
body.q15-r1709-blog-net #sidebar .wp-block-search__button svg {
  width: 22px;
  height: 22px;
  color: inherit !important;
  fill: currentColor !important;
}
body.q15-r1709-blog-net #sidebar .wp-block-search__button:is(:hover, :focus-visible) {
  background: var(--q15-negre);
  color: var(--q15-blanc);
}
/* I el traç: una regla aliena el pinta de blanc i currentColor es resol amb
 * el color del mateix path. Color literal, que és el que hi guanya (provat). */
body.q15-r1709-blog-net #sidebar .wp-block-search__button svg path {
  fill: var(--q15-negre) !important;
}
body.q15-r1709-blog-net #sidebar .wp-block-search__button:is(:hover, :focus-visible) svg path {
  fill: var(--q15-blanc) !important;
}

/* blog-entrada · (client, 21-09-2026) «l'interior del blog està fatal en
 * quant a maquetació i contingut de la web vella». El cos el refà
 * sembra-entrades-riques.php en blocs de l'editor, en l'ordre del Wix; aquí,
 * com es llegeix:
 *   · una COLUMNA DE LECTURA (~72 caràcters), alineada amb el títol de la
 *     franja: l'entrada ocupava els 1320 px de la pàgina;
 *   · la DATA A DALT, com al Wix i com els rètols de data de les llistes
 *     (The7 la posa després del text);
 *   · la tipografia de la casa: Source Sans 3 al cos, Space Grotesk als
 *     subtítols; els enllaços, subratllats amb l'accent (és l'avís que són
 *     enllaços, no ornament);
 *   · les imatges i les galeries, sense marcs ni arrodonits; els peus, petits;
 *   · «Anterior / Següent» amb el filet de la casa i sense les fletxes grosses.
 * La caixa «Author» i la destacada repetida les treu la BD
 * (sembra-entrades-riques.php), perquè són opcions de The7. */
body.q15-r1709-blog-entrada.single-post {
  --q15-lectura: 46rem;
}
body.q15-r1709-blog-entrada.single-post #content > article.post {
  display: flex;
  flex-direction: column;
  max-width: var(--q15-lectura);
}

/* La data, a dalt. */
body.q15-r1709-blog-entrada.single-post article.post > .post-meta {
  order: -1;
  display: block;
  text-align: left;
  margin: 0 0 clamp(20px, 2.4vw, 32px);
  padding: 0;
  border: 0;
  background: none;
}
body.q15-r1709-blog-entrada.single-post article.post > .post-meta .entry-meta,
body.q15-r1709-blog-entrada.single-post article.post > .post-meta a {
  /* The7 la centra (flex, justify-content: center): a dalt, alineada amb el text. */
  display: block;
  justify-content: flex-start;
  text-align: left;
  margin: 0;
  padding: 0;
  font-family: var(--q15-titols);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--q15-gris-text);
  text-decoration: none;
}
body.q15-r1709-blog-entrada.single-post article.post > .post-meta .entry-meta > *::before,
body.q15-r1709-blog-entrada.single-post article.post > .post-meta .entry-meta > *::after {
  content: none;
}

/* El cos. */
body.q15-r1709-blog-entrada.single-post .entry-content {
  font-family: var(--q15-cos);
  font-size: 18px;
  line-height: 1.65;
  color: var(--q15-negre);
}
body.q15-r1709-blog-entrada.single-post .entry-content > * {
  margin-top: 0;
  margin-bottom: 1.1em;
}
body.q15-r1709-blog-entrada.single-post .entry-content > :last-child {
  margin-bottom: 0;
}
body.q15-r1709-blog-entrada.single-post .entry-content > p {
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}
body.q15-r1709-blog-entrada.single-post .entry-content > :is(h2, h3, h4) {
  font-family: var(--q15-titols);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--q15-negre);
  margin: 1.9em 0 0.6em;
}
body.q15-r1709-blog-entrada.single-post .entry-content > h2 { font-size: clamp(22px, 2vw, 28px) !important; }
body.q15-r1709-blog-entrada.single-post .entry-content > h3 { font-size: clamp(19px, 1.6vw, 22px) !important; }
body.q15-r1709-blog-entrada.single-post .entry-content > h4 { font-size: 18px !important; }
body.q15-r1709-blog-entrada.single-post .entry-content > :is(h2, h3, h4):first-child { margin-top: 0; }

body.q15-r1709-blog-entrada.single-post .entry-content a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--q15-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  /* Les llistes de premsa porten adreces senceres com a text: al mòbil
   * sortien de la columna. */
  overflow-wrap: anywhere;
}
body.q15-r1709-blog-entrada.single-post .entry-content a:is(:hover, :focus-visible) {
  color: var(--q15-accent-fosc);
}

body.q15-r1709-blog-entrada.single-post .entry-content > :is(ul, ol) {
  padding-left: 1.3em;
}
body.q15-r1709-blog-entrada.single-post .entry-content > :is(ul, ol) > li {
  margin: 0 0 0.45em;
  padding: 0;
  font-size: inherit;
  line-height: inherit;
}
body.q15-r1709-blog-entrada.single-post .entry-content > ul > li {
  list-style: square;
}
body.q15-r1709-blog-entrada.single-post .entry-content > ul > li::before {
  content: none;
  display: none;
}
body.q15-r1709-blog-entrada.single-post .entry-content > ul > li::marker {
  color: var(--q15-negre);
}

/* Les imatges: a l'ample de la columna, sense marc; el peu, petit. Una imatge
 * més petita que la columna es queda a la seva mida (no s'estira). */
body.q15-r1709-blog-entrada.single-post .entry-content > :is(.wp-block-image, .wp-block-gallery, .wp-block-embed) {
  margin: 2em 0;
}
body.q15-r1709-blog-entrada.single-post .entry-content .wp-block-image img {
  border-radius: 0;
  box-shadow: none;
}
body.q15-r1709-blog-entrada.single-post .entry-content :is(.wp-block-image, .wp-block-embed) > figcaption,
body.q15-r1709-blog-entrada.single-post .entry-content .wp-block-image figcaption {
  margin: 10px 0 0;
  font-family: var(--q15-cos);
  font-size: 14.5px;
  line-height: 1.45;
  color: var(--q15-gris-text);
  text-align: left;
}
body.q15-r1709-blog-entrada.single-post .entry-content .wp-block-gallery.has-nested-images {
  gap: 8px;
}
/* El botó d'ampliar del nucli (la lupa de dalt a la dreta): quadrat, com els
 * de la casa. */
body.q15-r1709-blog-entrada.single-post .entry-content .lightbox-trigger {
  border-radius: 0;
}

/* Un vídeo vertical (els «shorts»): estret, no de tot l'ample. */
body.q15-r1709-blog-entrada.single-post .entry-content .wp-block-embed.q15-video-vertical {
  max-width: 340px;
}

/* «Anterior / Següent»: el filet de dalt de la casa, sense les fletxes grosses
 * de The7 (32 px) ni el filet de sota. */
body.q15-r1709-blog-entrada.single-post .post-navigation {
  margin: clamp(48px, 6vw, 80px) 0 0;
}
body.q15-r1709-blog-entrada.single-post .post-navigation .nav-links {
  padding: 22px 0 0;
  border-width: 1px 0 0;
  border-color: var(--q15-gris-linia);
  gap: 30px;
}
body.q15-r1709-blog-entrada.single-post .post-navigation :is(.nav-previous, .nav-next) {
  padding: 0;
  margin: 0;
  flex: 1 1 0;
  width: auto;
}
body.q15-r1709-blog-entrada.single-post .post-navigation :is(.nav-previous, .nav-next) svg {
  display: none;
}
body.q15-r1709-blog-entrada.single-post .post-navigation .meta-nav {
  display: block;
  margin: 0 0 6px;
  font-family: var(--q15-titols);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--q15-gris-text);
}
body.q15-r1709-blog-entrada.single-post .post-navigation .nav-previous .meta-nav::before { content: '← '; }
body.q15-r1709-blog-entrada.single-post .post-navigation .nav-next .meta-nav::after { content: ' →'; }
body.q15-r1709-blog-entrada.single-post .post-navigation .post-title {
  font-family: var(--q15-titols);
  font-size: 18px !important;
  font-weight: 600;
  line-height: 1.3;
  color: var(--q15-negre);
}
body.q15-r1709-blog-entrada.single-post .post-navigation a:is(:hover, :focus-visible) .post-title {
  text-decoration: underline;
  text-decoration-color: var(--q15-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}
@media (max-width: 600px) {
  body.q15-r1709-blog-entrada.single-post .entry-content { font-size: 17px; }
  body.q15-r1709-blog-entrada.single-post .post-navigation .nav-links { flex-direction: column; gap: 22px; }
  /* The7 les centra al mòbil: totes dues a l'esquerra, com el text. */
  body.q15-r1709-blog-entrada.single-post .post-navigation :is(.nav-previous, .nav-next) { text-align: left; align-items: flex-start; }
  body.q15-r1709-blog-entrada.single-post .post-navigation :is(.nav-previous, .nav-next) .post-title { align-self: flex-start; }
}

/* ══════════════════ 15 · la versió del 21-09, amb interruptors ═════════ */

/* Els comentaris del client a la v3 (22-09-2026), l'última tanda abans de
 * penjar la web. Cada regla, sota la seva classe q15-r2109-<clau> (l'opció
 * q15_r2109, q15-v2.php §14). */

/* portes-netes2 · «Botons ARTISTES - EXPOS - OBRES: no cal subratllat al
 * text». El subratllat venia de la regla general dels enllaços de text i es
 * propagava a tot el que hi ha dins de la porta. */
body.q15-r2109-portes-netes2 .q15-portes a.porta,
body.q15-r2109-portes-netes2 .q15-portes a.porta *,
body.q15-r2109-portes-netes2 .q15-portes a.porta:hover,
body.q15-r2109-portes-netes2 .q15-portes a.porta:hover * {
  text-decoration: none !important;
}

/* botons-blancs · «El botó que tingui mateix comportament que a la home: en
 * blanc i rollover negatiu (negre)». Els «Saber +» de les llistes eren
 * negres (fons fosc als atributs de WPBakery, T-110); ara, el botó de la
 * casa. #page al selector per guanyar el fons que The7 escriu amb l'ID. */
body.q15-r2109-botons-blancs #page .q15-boto--negre:not(:hover):not(:focus-visible) {
  background: var(--q15-blanc) !important;
  border: 1px solid var(--q15-negre) !important;
  color: var(--q15-negre) !important;
}
body.q15-r2109-botons-blancs #page .q15-boto--negre:not(:hover):not(:focus-visible) * {
  color: var(--q15-negre) !important;
}
body.q15-r2109-botons-blancs #page .q15-boto--negre:is(:hover, :focus-visible) {
  background: var(--q15-negre) !important;
  border: 1px solid var(--q15-negre) !important;
  color: var(--q15-blanc) !important;
}
body.q15-r2109-botons-blancs #page .q15-boto--negre:is(:hover, :focus-visible) * {
  color: var(--q15-blanc) !important;
}

/* popup-cartell · «el cartell encara surt tallat a sota · a la versió mòbil
 * surt en petit». La caixa del cartell era un DIN A4 exacte amb la imatge
 * «cover»: un cartell que no fos A4 perdia la vora. Ara es veu sencer
 * (contain) sobre el gris de la caixa, i al mòbil pot fer fins a 62 % de
 * l'alçada de la pantalla (abans, 240 px). */
body.q15-r2109-popup-cartell .q15-popup__media img {
  object-fit: contain;
  object-position: center;
}
@media (max-width: 760px) {
  body.q15-r2109-popup-cartell .q15-popup__media {
    max-height: 62vh;
    aspect-ratio: 210 / 297;
    width: auto;
    margin: 0 auto;
  }
}

/* fitxa-botons · «Botó PARTICIPA-HI alineat a la dreta, en caixa amb el
 * text». L'enllaç sortia sota el cartell, a l'esquerra; ara és a la columna
 * del text (overflow: hidden fa que no passi per sota del cartell flotant),
 * alineat a la dreta. «Altres projectes», a sota: q15-v2.php §14. */
body.q15-r2109-fitxa-botons.tax-pa_projecte .q15-expo-enllac,
body.q15-r2109-fitxa-botons.tax-pa_taller .q15-expo-enllac,
body.q15-r2109-fitxa-botons.tax-pa_exposicio .q15-expo-enllac {
  clear: none; /* el §12 el feia baixar sota el cartell (clear: both) */
  overflow: hidden;
  text-align: right;
  margin-top: 8px;
}

/* obra-targeta · la targeta d'obra, com l'exemple del client:
 *   1r nom complet de l'artista (fi) · 2n títol (negreta) · 3r mides +
 *   tècnica + any · 4t preu; «Caixa botó tot l'ample i text centrat»;
 *   «Indicació VENUDA o RESERVADA només al botó»; «reduir interlínia».
 * L'ordre el fa el CSS (flex): The7 pinta el preu abans de la fitxa tècnica
 * i no hi ha ganxo per moure'l sense tocar la seva plantilla. */
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .woocom-list-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .q15-autor { order: 1; }
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .entry-title { order: 2; }
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .woocommerce-product-details__short-description { order: 3; }
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .price { order: 4; }
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons { order: 5; }
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .q15-autor,
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .q15-autor a {
  font-weight: 400 !important;
  line-height: 1.25;
  margin: 0;
}
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .entry-title,
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .entry-title a {
  font-weight: 700 !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .woocommerce-product-details__short-description,
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .woocommerce-product-details__short-description p {
  line-height: 1.3;
  margin: 0 !important;
}
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .price {
  margin: 4px 0 0 !important;
  line-height: 1.3;
}
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons {
  align-self: stretch;
  display: block;
  margin-top: 12px;
}
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra .woo-buttons :is(a, .button) {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
}
body.q15-r2109-obra-targeta :is(.dt-products, .products-shortcode) .q15-obra :is(.q15-marca--venuda, .q15-marca--reservada) {
  display: none !important;
}

/* banda-tambe · «ARA MATEIX: …» (client, 21-09): el rètol petit damunt del
 * títol de cada columna, i el text que ara és un paràgraf (abans, una llista). */
body.q15-r1709-banda-tambe .q15-tambe-col__ara {
  margin: 0 0 4px;
  font-family: var(--q15-titols);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}
body.q15-r1709-banda-tambe .q15-tambe-col__text p:not(.q15-tambe-col__ara) {
  margin: 0 0 18px;
  font-family: var(--q15-cos);
  font-size: 15.5px;
  line-height: 1.5;
  color: var(--q15-blanc);
}

/* fitxa-botons · la galeria de la fitxa (taller, projecte, exposició) sortia
 * amb pics de llista: The7 en posa un amb ::before a cada <li> del contingut,
 * i el list-style: none de §8 no hi arriba. */
body.q15-r2109-fitxa-botons .q15-expo-galeria > li {
  list-style: none !important;
  padding-left: 0 !important;
}
body.q15-r2109-fitxa-botons .q15-expo-galeria > li::before {
  content: none !important;
  display: none !important;
}

/* sense-enllac · «NOMÉS BOTÓ ACTIU i ENLLAÇ A …» (V21). La fitxa sense
 * enllaç ocupa el seu lloc però no convida a clicar: ni zoom ni filet
 * d'accent en passar-hi (el que sembla clicable, ho ha de ser). */
body.q15-r2109-sense-enllac .q15-artista-targeta--sense-enllac:hover .q15-artista-targeta__imatge img { transform: none; }
body.q15-r2109-sense-enllac .q15-artista-targeta--sense-enllac .q15-artista-targeta__imatge::after { content: none; }

/* A la botiga, l'obra d'un artista sense enllaç es veu sencera però no
 * s'obre (⚠ .woo-buttons-on-img NO s'amaga: a The7 és el contenidor de la
 * IMATGE de la targeta, no només dels botons —pagat el 22-09—) (el filtre de Woo continua mostrant-la: «Posar TOTES les obres»),
 * i no ensenya preu ni botó: no es pot comprar (q15-v2.php §14). */
body.q15-r2109-sense-enllac .q15-obra--sense-enllac a {
  pointer-events: none;
  cursor: default;
}
body.q15-r2109-sense-enllac .q15-obra--sense-enllac .price,
body.q15-r2109-sense-enllac .q15-obra--sense-enllac .woo-buttons,
body.q15-r2109-sense-enllac .q15-obra--sense-enllac .q15-marca {
  display: none !important;
}
body.q15-r2109-sense-enllac .q15-obra--sense-enllac:hover img { transform: none !important; }
body.q15-r2109-sense-enllac .q15-obra--sense-enllac .woo-buttons-on-img > a::after { content: none !important; }

/* text-ric · el text de les fitxes (exposició, projecte, taller, artista),
 * amb els estils de la casa: el mateix sistema que les entrades del blog
 * (blog-entrada, §14) — Space Grotesk als subtítols, Source Sans 3 al text,
 * l'accent només al subratllat dels enllaços i al filet de les citacions. */
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) h3 {
  margin: 1.5em 0 0.5em;
  font-family: var(--q15-titols);
  font-size: clamp(20px, 1.5vw, 24px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--q15-negre);
}
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) h4 {
  margin: 1.3em 0 0.4em;
  font-family: var(--q15-titols);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--q15-negre);
}
body.q15-r2109-text-ric .term-description > :first-child,
body.q15-r2109-text-ric .q15-artista-bio--ric:first-of-type > :first-child { margin-top: 0; }
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) strong { font-weight: 700; color: var(--q15-negre); }
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) :is(ul, ol) {
  margin: 0 0 1em 1.25em;
  padding: 0;
}
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) ul > li { list-style: disc; }
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) ol > li { list-style: decimal; }
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) li {
  margin: 0 0 0.35em;
  padding-left: 0.2em !important;
  line-height: 1.6;
}
/* The7 posa un pic propi amb ::before a cada <li> del contingut (el mateix
 * que a la galeria de la fitxa, §15 fitxa-botons): aquí el pic és el de la
 * llista. */
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) li::before { content: none !important; display: none !important; }
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) a:not(.q15-boto):not(.q15-instagram) {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--q15-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
body.q15-r2109-text-ric :is(.term-description, .q15-artista-bio--ric) blockquote {
  margin: 1.2em 0;
  padding: 0 0 0 16px;
  border-left: 3px solid var(--q15-accent);
  font-style: italic;
}
/* Un text llarg ja no s'escola per sota del cartell (flotant): el text és un
 * bloc que es queda sencer a la seva columna (mesurat a Geometries, 22-09:
 * «Moltes gràcies!» queia a l'esquerra, sota el peu del cartell). */
body.q15-r2109-text-ric:is(.tax-pa_projecte, .tax-pa_taller, .tax-pa_exposicio) .term-description { display: flow-root; }

/* ══════════════ §16 · els comentaris del 22-09 (q15-v2.php §16) ══════════════
 * Cada regla actua només sota `body.q15-r2309-<clau>`. */

/* franja-filet · «treure la pastilla transparent sota la frase sota els
 * títols». La frase d'entrada queda en blanc, sense caixa. */
body.q15-r2309-franja-filet .q15-tambe-col__entrada {
  padding: 0;
  background: none;
}
/* I els botons «en filet, com Exposa amb nosaltres»: transparents amb filet i
 * lletra blanca; en passar-hi, blancs amb la lletra negra. ⚠ banda-maqueta
 * (§11) els pintava blancs amb lletra NEGRA !important: amb el fons ja
 * transparent (atributs de WPBakery, sembra-reunio-2109.php §E), quedava negre
 * sobre negre. Aquí es guanya per especificitat, sense tocar la del 10-09. */
body.q15-r2309-franja-filet .q15-banda .dt-btn.q15-tambe-col__boto {
  background: transparent !important;
  color: var(--q15-blanc) !important;
  border: 1.5px solid var(--q15-blanc) !important;
}
body.q15-r2309-franja-filet .q15-banda .dt-btn.q15-tambe-col__boto:is(:hover, :focus-visible) {
  background: var(--q15-blanc) !important;
  color: var(--q15-negre) !important;
  border-color: var(--q15-blanc) !important;
}

/* obres-alineades · «els botons CISTELL han d'estar a la mateixa alçada /
 * fila». Les cel·les ja fan totes la mateixa alçada (graella de The7) i la
 * targeta és una columna flex (§15 obra-targeta): el peu s'estira i el botó
 * baixa fins a baix. Mesurat abans: 3389 / 3370 px a la fila de la portada. */
body.q15-r2309-obres-alineades :is(.dt-products, .products-shortcode) figure.woocom-project > figcaption.woocom-list-content {
  flex: 1 1 auto;
}
body.q15-r2309-obres-alineades :is(.dt-products, .products-shortcode) figcaption.woocom-list-content > .woo-buttons {
  margin-top: auto;
}

/* artistes-botons · «més llargs, fins "quasi" tocar-se al centre». */
body.q15-r2309-artistes-botons .q15-artista-targeta__botons {
  display: flex;
  gap: 8px;
  justify-content: space-between;
}
body.q15-r2309-artistes-botons .q15-artista-targeta__botons .q15-boto {
  flex: 1 1 0;
  justify-content: center;
  text-align: center;
  margin: 0 !important;
}

/* cistell · els botons dels blocs de WooCommerce (cistell i caixa): eren
 * lletra negra sobre gris fosc (color #141414 sobre #32373C, mesurat). El
 * botó de la casa: negre ple, lletra blanca, i el negatiu en passar-hi. */
body.q15-r2309-cistell :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-components-totals-coupon__button, .wc-block-components-button:not(.is-link)) {
  min-height: 48px;
  border: 1.5px solid var(--q15-negre) !important;
  border-radius: 0 !important;
  background: var(--q15-negre) !important;
  color: var(--q15-blanc) !important;
  font-family: var(--q15-titols);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: none !important;
}
body.q15-r2309-cistell :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-components-totals-coupon__button, .wc-block-components-button:not(.is-link)) :is(.wc-block-components-button__text, span) {
  color: inherit !important;
}
body.q15-r2309-cistell :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-components-totals-coupon__button, .wc-block-components-button:not(.is-link)):is(:hover, :focus-visible) {
  background: var(--q15-blanc) !important;
  color: var(--q15-negre) !important;
}

/* El minicistell de la capçalera: «el text surt de quadre; cal moure el botó
 * dret cap al centre». Els dos botons, de la mateixa amplada, centrats i amb
 * el rètol a dins (s'hi pot partir en dues línies). */
body.q15-r2309-cistell .shopping-cart-inner p.buttons {
  display: flex;
  gap: 10px;
  justify-content: center;
}
body.q15-r2309-cistell .shopping-cart-inner p.buttons a.button {
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  margin: 0 !important;
  padding: 10px 8px !important;
  text-align: center;
  white-space: normal;
  letter-spacing: 0.05em;
  line-height: 1.25;
}

/* taller-banda · la capçalera amb les imatges apilades: la primera marca
 * l'alçada; la segona hi apareix al damunt i se'n torna a anar (cicle de
 * 10 s). Sense moviment si el visitant ho ha demanat. */
body.q15-r2309-taller-banda .q15-banda-animada {
  position: relative;
  overflow: hidden;
}
body.q15-r2309-taller-banda .q15-banda-animada img {
  display: block;
  width: 100%;
  height: auto;
}
body.q15-r2309-taller-banda .q15-banda-animada img + img {
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  animation: q15-banda-fosa 10s ease-in-out infinite;
}
body.q15-r2309-taller-banda .q15-banda-animada img:nth-of-type(n+3) { display: none; }
@keyframes q15-banda-fosa {
  0%, 40% { opacity: 0; }
  50%, 90% { opacity: 1; }
  100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  body.q15-r2309-taller-banda .q15-banda-animada img + img { animation: none; }
}

/* cerca · la lupa del menú i el seu desplegable. */
body.q15-r2309-cerca .q15-mw__menu--cerca {
  min-width: 300px;
  padding: 12px;
}
body.q15-r2309-cerca .q15-cerca {
  display: flex;
  gap: 8px;
  margin: 0;
}
body.q15-r2309-cerca .q15-cerca__etiqueta {
  flex: 1 1 auto;
  margin: 0;
}
body.q15-r2309-cerca .q15-cerca__camp {
  width: 100%;
  min-height: 40px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid var(--q15-negre);
  border-radius: 0;
  background: var(--q15-blanc);
  color: var(--q15-negre);
  font-family: var(--q15-cos);
  font-size: 15px;
}
body.q15-r2309-cerca .q15-cerca__camp:focus-visible {
  outline: 2px solid var(--q15-accent);
  outline-offset: 1px;
}
body.q15-r2309-cerca .q15-cerca__boto {
  min-height: 40px;
  padding: 0 14px;
  border: 1.5px solid var(--q15-negre);
  border-radius: 0;
  background: var(--q15-negre);
  color: var(--q15-blanc);
  font-family: var(--q15-titols);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
body.q15-r2309-cerca .q15-cerca__boto:is(:hover, :focus-visible) {
  background: var(--q15-blanc);
  color: var(--q15-negre);
}
/* Al menú del mòbil (còpia de v2.js §1b), la cerca ocupa tot l'ample. */
body.q15-r2309-cerca .q15-mobil-extra .q15-cerca { width: 100%; }
/* Dins del menú del mòbil (fons fosc), el botó de la cerca en filet blanc. */
body.q15-r2309-cerca .q15-mobil-extra .q15-cerca__boto {
  background: transparent;
  border-color: var(--q15-blanc);
  color: var(--q15-blanc);
}

/* peu-enganxat · (l'Albert, 23-09) «elimina aquest espai en blanc abans del
 * peu». A la portada, l'últim que es veu és la banda fosca «Quei15 també
 * és…», i els 50 px de coixí de sota de #main (The7) hi deixaven una franja
 * blanca. A les altres pàgines, que acaben en blanc, el coixí es queda. */
body.home.q15-r2309-peu-enganxat #main { padding-bottom: 0; }
