/*
Theme Name: Pidi Lite
Theme URI: https://example.invalid/pidi-lite
Author: josep
Description: Tema lliure compatible amb l'estructura de dades de Divi. Llegeix i renderitza el contingut emmagatzemat en el mateix format (shortcodes et_pb_section/et_pb_row/et_pb_column al post_content i opcions de modul com a atributs del shortcode, igual que Divi). Sense dependencies, sense funcions premium.
Version: 0.1.16
Update URI: https://projectesidisseny.com/pidilite/
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pidi-lite
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Tags: page-builder, custom-colors, custom-menu
*/

/* ==========================================================================
   Reset i base
   ========================================================================== */

/* Font d'icones del Divi (ETmodules). Els continguts del Divi guarden les
   icones com a caràcters d'aquesta font (`&#xe0aa;||divi||400`). */
@font-face {
	font-family: "ETmodules";
	src: url("assets/fonts/ETmodules.woff") format("woff"),
	     url("assets/fonts/ETmodules.ttf") format("truetype");
	font-weight: normal;
	font-style: normal;
	font-display: block;
}
.pl-icon--et { font-family: "ETmodules"; font-weight: normal; font-style: normal; line-height: 1; }

/* Font Awesome del Divi (icones del mòdul Icona/Blurb amb `||fa||`). */
@font-face {
	font-family: "FontAwesome";
	src: url("assets/fonts/fa-regular-400.woff2") format("woff2"),
	     url("assets/fonts/fa-regular-400.woff") format("woff"),
	     url("assets/fonts/fa-regular-400.ttf") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: block;
}
@font-face {
	font-family: "FontAwesome";
	src: url("assets/fonts/fa-solid-900.woff2") format("woff2"),
	     url("assets/fonts/fa-solid-900.woff") format("woff"),
	     url("assets/fonts/fa-solid-900.ttf") format("truetype");
	font-weight: 900;
	font-style: normal;
	font-display: block;
}
.pl-icon--fa { font-family: "FontAwesome"; font-style: normal; line-height: 1; }

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

/* Valors per defecte del Divi (`style-static.css` + el personalitzador).
   Les variables `--pl-*` les omple la importació de la marca quan hi ha
   Divi; si no, s'usen exactament els valors de fàbrica del Divi. */
body {
	margin: 0;
	font-family: var(--pl-font-body, "Open Sans", Arial, sans-serif);
	font-size: var(--pl-base, 14px);
	line-height: 1.7em;
	color: var(--pl-body, #666);
	background-color: #fff;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; }

a { color: var(--pl-link, var(--pl-primary, #2ea3f2)); text-decoration: none; }
a:hover { color: var(--pl-link, var(--pl-primary, #2ea3f2)); }
.et_clickable { cursor: pointer; }

/* Divi: els enllaços dins dels encapçalaments hereten el color del títol. */
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: inherit; }

/* ==========================================================================
   Estructura: secció / fila / columna
   ========================================================================== */

/* Paritat amb Divi (style-static.css + el CSS dinàmic que genera):
   secció 4% 0 (>=981px), 50px 0 (<=980px) i 54px 0 (>=1350px).
   Els `custom_padding` per costat s'emeten en línia i sobreescriuen
   només els costats indicats, igual que fa el Divi. */
.pl-section { padding: 4% 0; position: relative; background-color: #fff; }
.pl-section--fullwidth { padding-left: 0; padding-right: 0; }
.pl-section--fullwidth > .pl-row > .pl-column > .pl-module { padding-left: 0; padding-right: 0; }

/* Fons per defecte de tots els nivells del Divi: la imatge s'ajusta
   ("cover"), queda centrada i no es repeteix. Els atributs de fons
   (`background_size`, `background_position`, `background_repeat`) s'emeten
   en línia i tenen preferència sobre aquests valors. */
.pl-section, .pl-row, .pl-column, .pl-module {
	background-size: cover;
	background-position: 50%;
	background-repeat: no-repeat;
}

/* Fons de vídeo i divisions de secció (Divi) */
.pl-video-bg {
	position: absolute; top: 0; left: 0; width: 100%; height: 100%;
	overflow: hidden; pointer-events: none; z-index: 0;
}
.pl-video-bg video { display: block; width: 100%; height: 100%; object-fit: cover; }
.pl-bg-pattern, .pl-bg-mask {
	position: absolute; top: 0; left: 0; width: 100%; height: 100%;
	pointer-events: none; z-index: 0;
}
.pl-bg-mask { background-repeat: no-repeat; background-position: center; overflow: hidden; }

/* Les capes responsives només es veuen al dispositiu que toca. Si un element
   no té valors per a un dispositiu, el span existeix igualment (buit) perquè
   no quedi visible la capa del dispositiu anterior. */
.pl-bg-pattern--tablet, .pl-bg-pattern--phone,
.pl-bg-mask--tablet, .pl-bg-mask--phone,
.pl-video-bg--tablet, .pl-video-bg--phone { display: none; }
@media only screen and (max-width: 980px) {
	.pl-bg-pattern--desktop, .pl-bg-mask--desktop, .pl-video-bg--desktop { display: none; }
	.pl-bg-pattern--tablet, .pl-bg-mask--tablet, .pl-video-bg--tablet { display: block; }
	.pl-bg-pattern--phone, .pl-bg-mask--phone, .pl-video-bg--phone { display: none; }
}
@media only screen and (max-width: 767px) {
	.pl-bg-pattern--desktop, .pl-bg-mask--desktop, .pl-video-bg--desktop,
	.pl-bg-pattern--tablet, .pl-bg-mask--tablet, .pl-video-bg--tablet { display: none; }
	.pl-bg-pattern--phone, .pl-bg-mask--phone, .pl-video-bg--phone { display: block; }
}

.pl-section--media > .pl-row { z-index: 2; }
.pl-column--media > .pl-module { position: relative; z-index: 1; }

.pl-divider {
	position: absolute; left: 0; width: 100%; height: 100px;
	overflow: hidden; pointer-events: none; z-index: 1; line-height: 0;
}
.pl-divider--top { top: 0; }
.pl-divider--bottom { bottom: 0; }
.pl-divider svg { display: block; width: 100%; height: 100%; }
.pl-divider-track[style*="--pl-divider-repeat"] svg { flex: 0 0 calc(100% / var(--pl-divider-repeat)); width: calc(100% / var(--pl-divider-repeat)); }
.pl-section--has-divider > .pl-row { z-index: 2; }

/* Sticky del Divi */
.pl-sticky { position: sticky; z-index: 20; }
.pl-sticky--top { top: 0; }
.pl-sticky--bottom { bottom: 0; }
.pl-sticky--top_bottom { top: 0; bottom: 0; }

/* Parallax: mateixa estructura que el Divi. Les capes omplen la secció, la
   imatge en queda ancorada a baix i el JavaScript la desplaça en fer scroll
   (sense JavaScript la imatge es veu igual, només sense el moviment). */
.pl-parallax-bg-wrap { position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: hidden; }
.pl-parallax-bg {
	position: absolute; bottom: 0; left: 0; width: 100%; height: 100%;
	background-repeat: no-repeat; background-position: top; background-size: cover;
	will-change: transform;
}
.pl-parallax-gradient { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
/* Mètode CSS del Divi (`parallax_method="off"`): la imatge queda fixa al
   viewport i no la mou el JavaScript. */
.pl-parallax-bg.pl-parallax-bg--css { background-attachment: fixed; will-change: auto; }
/* Al llenç del constructor el scroll és del marc, no de la pàgina. */
.pl-canvas-body .pl-parallax-bg.pl-parallax-bg--css { background-attachment: scroll; }

/* Edició de text en línia al llenç. */
.pl-canvas-body .pl-inline-editing {
	outline: 2px solid #7c3aed;
	outline-offset: 3px;
	cursor: text;
}
@media only screen and (max-width: 980px) {
	.pl-parallax-bg.pl-parallax-bg--css { background-attachment: scroll; }
}
@media (prefers-reduced-motion: reduce) { .pl-parallax-bg { transform: none !important; } }

@media (max-width: 980px)  { .pl-section { padding: 50px 0; } }
@media (min-width: 1350px) { .pl-section { padding: 54px 0; } }

/* Variants de fons que sap llegir el DIVI */
.pl-section-bg-grey   { background-color: #f4f4f4; }
.pl-section-bg-light  { background-color: #f8f8f8; }
.pl-section-bg-dark   { background-color: #2b2b2b; color: #f0f0f0; }
.pl-section-bg-dark a { color: #9db9f0; }

/* Fila: amplada i centrat per defecte del Divi (80% / 1080px, `margin:auto`),
   més el farcit vertical 2% 0 (>=981px), 30px 0 (<=980px), 27px 0 (>=1350px).
   L'amplada es pot sobreescriure amb l'estil en línia que genera el tema a
   partir dels atributs de la fila del Divi. */
.pl-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	align-content: flex-start;
	width: 80%;
	max-width: 1080px;
	margin-left: auto;
	margin-right: auto;
	padding: 2% 0;
	position: relative;
}
.pl-row--inner { width: 100%; max-width: none; }
.pl-row.et_pb_equal_columns,
.pl-row.pl-equal-columns { align-items: stretch; }

@media (max-width: 980px)  { .pl-row { padding: 30px 0; } }
@media (min-width: 1350px) { .pl-row { padding: 27px 0; } }

/* Graella del Divi amb el gutter 3 (el seu valor per defecte): la separació
   horitzontal (5,5%) es fa amb `margin-right` i les amplades estan
   calculades perquè amplada + marge = 100%. La darrera no porta marge.
   L'amplada es declara amb `width` (i no amb `flex-basis`) perquè el CSS
   personalitzat del Divi la pugui sobreescriure, tal com fa el Divi. */
.pl-column { flex: 0 0 auto; min-width: 0; margin-right: 5.5%; position: relative; z-index: 2; }
/* Les regles de gutter personalitzat (més avall) també posen marge a
   l'última columna; cal guanyar-los perquè la fila no faci salt de línia. */
.pl-row > .pl-column:last-child,
.pl-row > .pl-column.et-last-child { margin-right: 0 !important; }

.pl-column-1-1 { width: 100%;    margin-right: 0; }
.pl-column-1-2 { width: 47.25%; }
.pl-column-2-3 { width: 64.833%; }
.pl-column-3-5 { width: 57.8%; }
.pl-column-2-5 { width: 36.7%; }
.pl-column-1-3 { width: 29.666%; }
.pl-column-1-4 { width: 20.875%; }
.pl-column-1-5 { width: 15.6%; }
.pl-column-1-6 { width: 12.0833%; }
.pl-column-3-4 { width: 73.625%; }

@media (max-width: 980px) {
	/* Graella de tauleta del Divi: per defecte totes les columnes passen a
	   amplada completa. Només les files 4col i 6col (quatre 1/4 o sis 1/6)
	   comparteixen fila. Les columnes buides desapareixen, com al Divi. */
	.pl-column {
		flex: 0 0 100% !important;
		max-width: 100% !important;
		margin-right: 0;
		margin-bottom: 30px;
	}
	.pl-column.et_pb_column_empty { display: none; }
	.pl-row--4col > .pl-column-1-4 {
		flex: 0 0 47.25% !important;
		max-width: 47.25% !important;
		margin-right: 5.5%;
	}
	.pl-row--4col > .pl-column-1-4.pl-col-even { margin-right: 0; }
	.pl-row--6col > .pl-column-1-6 {
		flex: 0 0 29.666% !important;
		max-width: 29.666% !important;
		margin-right: 5.5%;
	}
	.pl-row--6col > .pl-column-1-6.pl-col-3n { margin-right: 0; }
	.pl-row--4col > .pl-column.pl-col-last-row,
	.pl-row--6col > .pl-column.pl-col-last-row,
	.pl-column:last-child { margin-bottom: 0; }
	/* El gutter 1 no té separació (ni horitzontal ni vertical). */
	.pl-gutters-1 .pl-column { margin-right: 0; margin-bottom: 0; }
	.pl-row--4col.pl-gutters-1 > .pl-column-1-4 {
		flex: 0 0 50% !important;
		max-width: 50% !important;
	}
}

@media (max-width: 767px) {
	/* Al mòbil totes les columnes van a amplada completa, com el Divi. */
	.pl-row .pl-column,
	.pl-row.pl-row--4col > .pl-column-1-4,
	.pl-row.pl-row--6col > .pl-column-1-6,
	.pl-row.pl-row--4col.pl-gutters-1 > .pl-column-1-4 {
		flex: 0 0 100% !important;
		max-width: 100% !important;
		margin-right: 0 !important;
		margin-bottom: 30px;
	}
	.pl-row .pl-column.pl-col-last-row { margin-bottom: 30px; }
	.pl-row .pl-column:last-child { margin-bottom: 0; }
	/* El gutter 1 no té separació vertical tampoc al mòbil. */
	.pl-row.pl-gutters-1 .pl-column { margin-bottom: 0 !important; }
}

/* Marge inferior dels mòduls segons el tipus de columna (gutter 3 del Divi). */
.pl-module { margin-bottom: 30px; position: relative; }
.pl-column-1-1 > .pl-module { margin-bottom: 2.75%; }
.pl-column-1-2 > .pl-module { margin-bottom: 5.82%; }
.pl-column-1-3 > .pl-module { margin-bottom: 9.27%; }
.pl-column-2-3 > .pl-module { margin-bottom: 4.242%; }
.pl-column-3-5 > .pl-module { margin-bottom: 4.758%; }
.pl-column-2-5 > .pl-module { margin-bottom: 7.493%; }
.pl-column-1-4 > .pl-module { margin-bottom: 13.174%; }
.pl-column-1-5 > .pl-module { margin-bottom: 17.628%; }
.pl-column-1-6 > .pl-module { margin-bottom: 22.759%; }
.pl-column-3-4 > .pl-module { margin-bottom: 3.735%; }
.pl-row .pl-column > .pl-module:last-child,
.pl-row .pl-column > .pl-module:last-of-type { margin-bottom: 0; }

/* El contingut d'un mòdul omple tota l'amplada de la columna, com al Divi.
   La capçalera i el peu del tema hi afegeixen el seu propi contenidor. */
.pl-module-inner { max-width: none; margin: 0; padding: 0; }

/* ==========================================================================
   Mòduls
   ========================================================================== */

/* Com el Divi: el text hereta la tipografia del cos; el texturitzat i els
   paràgrafs ja arriben fets des del contingut. */
.pl-text { font-size: inherit; line-height: inherit; color: inherit; word-wrap: break-word; }

/* Divi afegeix zero al padding de l'últim element del text, però no al
   darrer encapçalament (el `.et_pb_text_inner` és el fill que rep el zero). */
.pl-text:last-child { padding-bottom: 0; }

.pl-title { margin: 0 0 16px; font-weight: 600; line-height: 1.25; }
.pl-title--h1 { font-size: 40px; }
.pl-title--h2 { font-size: 32px; }
.pl-title--h3 { font-size: 26px; }
.pl-title--h4 { font-size: 21px; }

/* Imatge: al Divi la imatge conserva la seva mida natural (fins a l'amplada
   de la columna), va dins d'un embolcall propi i s'alinea a l'esquerra si no
   es diu el contrari. */
.pl-image { display: block; margin-left: auto; margin-right: auto; line-height: 0; }
.pl-image--left   { text-align: left; margin-left: 0; }
.pl-image--center { text-align: center; }
.pl-image--right  { text-align: right; margin-right: 0; }
.pl-image .pl-image-wrap { display: inline-block; position: relative; max-width: 100%; }
.pl-image img { display: inline-block; position: relative; max-width: 100%; height: auto; }
.pl-image--fullwidth,
.pl-image--fullwidth .pl-image-wrap,
.pl-image--fullwidth img { width: 100%; max-width: 100%; }

.pl-code {
	position: relative;
	background: #1e1e1e;
	color: #d4d4d4;
	border-radius: 6px;
	padding: 18px 20px;
	overflow-x: auto;
	font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
	font-size: 13.5px;
	line-height: 1.6;
	tab-size: 2;
}
.pl-code pre { margin: 0; font: inherit; color: inherit; }

.pl-button-wrap { text-align: center; }
.pl-button-wrap--left   { text-align: left; }
.pl-button-wrap--right  { text-align: right; }

.pl-button {
	display: inline-block;
	position: relative;
	white-space: nowrap;
	background-color: transparent;
	color: var(--pl-link, var(--pl-primary, #2ea3f2));
	text-decoration: none;
	padding: .3em 1em;
	border: 2px solid currentColor;
	border-radius: 3px;
	font-weight: 500;
	font-size: 20px;
	line-height: 1.7em;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.pl-button:hover { background-color: hsla(0, 0%, 100%, .2); }

/* Subelements de mòdul (paritat amb el Divi 4) */
.pl-icon-wrap--left   { text-align: left; }
.pl-icon-wrap--center { text-align: center; }
.pl-icon-wrap--right  { text-align: right; }
.pl-icon-title { display: block; margin-top: 6px; font-size: 14px; color: #555; }

.pl-post-meta, .pl-blog-meta { color: #777; font-size: 13px; }

.pl-social-name { display: none; }
.pl-social--named .pl-social-name { display: inline; margin-left: 6px; }

.pl-test-quote-icon { display: block; font-size: 34px; line-height: 1; color: #c3c4c7; margin-bottom: 2px; }
.pl-test-company { display: block; font-size: 13px; color: #777; }

.pl-price-subtitle { color: #777; font-size: 14px; margin-bottom: 10px; }
.pl-price--featured { border-color: #3b69c4; box-shadow: inset 0 0 0 2px #3b69c4; }

/* ==========================================================================
   Capçalera / peu / contingut
   ========================================================================== */

.pl-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	padding: 0;
	background: rgba(255, 255, 255, .86);
	backdrop-filter: saturate(180%) blur(14px);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
}
.pl-site-header .pl-module-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 79px;
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 4px;
}
.pl-site-title { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: #0f172a; }
.pl-site-logo img, .custom-logo { display: block; max-height: 43px; width: auto; }
.pl-site-title a { color: inherit; text-decoration: none; }

/* Capçalera per defecte del Divi: enllaços de 14 px, 1em d'interlineat,
   33 px de farcit inferior i el color `menu_link` del personalitzador. */
.pl-nav ul { display: flex; flex-wrap: wrap; gap: 22px; list-style: none; margin: 0; padding: 0; }
.pl-nav { align-self: flex-start; padding-top: 33px; }
.pl-nav .pl-menu-list a {
	display: block;
	padding-bottom: 33px;
	color: rgba(0, 0, 0, .6);
	font-weight: 500;
	font-size: 14px;
	line-height: 1em;
	letter-spacing: 0.015em;
	text-decoration: none;
}
.pl-nav .pl-menu-list a:hover { color: #a07300; opacity: .7; }
.pl-nav .current-menu-item > a,
.pl-nav .current_page_item > a { color: #a07300; }

.pl-content { padding: 0; }
.pl-site-footer {
	padding: 36px 0;
	border-top: 1px solid #e2e8f0;
	background: #f8fafc;
	color: #64748b;
	font-size: 14px;
	text-align: center;
}
.pl-site-footer .pl-module-inner { max-width: 1080px; margin: 0 auto; padding: 0 28px; }

/* Àrees del «Theme Builder» del Divi (capçalera/pou personalitzats). */
.pl-tb { width: 100%; }

.pl-mobile-toggle { display: none; }

@media (max-width: 980px) {
	.pl-site-header .pl-module-inner {
		position: relative;
		width: 80%;
		max-width: 1080px;
		flex-direction: row;
		justify-content: flex-start;
		gap: 0;
		min-height: 80px;
		padding: 0 4px;
	}
	.pl-site-logo { margin: 0; }
	.pl-site-logo img, .custom-logo { max-height: 43px; }
	.pl-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 60;
		align-self: auto;
		padding: 8px 20px;
		background: #fff;
		border-top: 1px solid rgba(15, 23, 42, .07);
		box-shadow: 0 14px 28px rgba(15, 23, 42, .1);
	}
	.pl-nav.is-open { display: block; }
	.pl-nav ul { display: block; }
	.pl-nav .pl-menu-list li { margin: 0; }
	.pl-nav .pl-menu-list a {
		padding: 12px 0;
		border-bottom: 1px solid rgba(15, 23, 42, .06);
		font-size: 14px;
		line-height: 1.4;
		letter-spacing: 0;
	}
	.pl-nav .pl-menu-list li:last-child a { border-bottom: 0; }
	.pl-mobile-toggle {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		position: absolute;
		top: 50%;
		right: 4px;
		width: 32px;
		height: 32px;
		margin: 0;
		padding: 0;
		border: 0;
		background: none;
		cursor: pointer;
		transform: translateY(-50%);
	}
	.pl-mobile-toggle span {
		display: block;
		width: 24px;
		height: 2px;
		margin: 0 auto;
		background: #b3892b;
		transition: transform .2s ease, opacity .2s ease;
	}
	.pl-mobile-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.pl-mobile-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
	.pl-mobile-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}
/* ==========================================================================
   Disseny 2.0 — estils de contingut per defecte (frontend)
   ========================================================================== */

/* ---------- Tipografia ---------- */

/* Base d'encapçalaments del Divi (`h1..h6`): color #333, 10px de farcit
   inferior, interlineat 1 i pes 500. Les mides són les de fàbrica. */
/* Reset del Divi: el navegador posa marges grans als encapçalaments i els
   paràgrafs, i el Divi els treu (`style-static.css`). Sense això, un h1 de
   80 px afegeix 107 px de marge i la secció (i la foto de fons) s'allarga. */
h1, h2, h3, h4, h5, h6 {
	margin: 0;
	color: var(--pl-heading, #333);
	padding: 0 0 10px;
	line-height: 1em;
	font-weight: 500;
}

p { margin: 0; padding: 0 0 1em; }
p:not(.has-background):last-of-type { padding-bottom: 0; }
h1 { font-size: 30px; }
h2 { font-size: 26px; }
h3 { font-size: 22px; }
h4 { font-size: 18px; }
h5 { font-size: 16px; }
h6 { font-size: 14px; }

/* Mides d'encapçalament segons l'amplada de la columna (Divi, 1/3 i més
   estretes). Sense això, un h3 en una columna d'1/3 surt a 22px en lloc de
   20px. */
.pl-column-1-3 h1, .pl-column-1-4 h1, .pl-column-1-5 h1, .pl-column-1-6 h1, .pl-column-2-5 h1 { font-size: 26px; }
.pl-column-1-3 h2, .pl-column-1-4 h2, .pl-column-1-5 h2, .pl-column-1-6 h2, .pl-column-2-5 h2 { font-size: 23px; }
.pl-column-1-3 h3, .pl-column-1-4 h3, .pl-column-1-5 h3, .pl-column-1-6 h3, .pl-column-2-5 h3 { font-size: 20px; }
.pl-column-1-3 h4, .pl-column-1-4 h4, .pl-column-1-5 h4, .pl-column-1-6 h4, .pl-column-2-5 h4 { font-size: 18px; }
.pl-column-1-3 h5, .pl-column-1-4 h5, .pl-column-1-5 h5, .pl-column-1-6 h5, .pl-column-2-5 h5 { font-size: 16px; }
.pl-column-1-3 h6, .pl-column-1-4 h6, .pl-column-1-5 h6, .pl-column-1-6 h6, .pl-column-2-5 h6 { font-size: 15px; }

.pl-heading {
	margin: 0;
	color: inherit;
	font-weight: 500;
	letter-spacing: normal;
	line-height: 1em;
	padding-bottom: 10px;
}
h1.pl-heading { font-size: 30px; }
h2.pl-heading { font-size: 26px; }
h3.pl-heading { font-size: 22px; }
h4.pl-heading { font-size: 18px; }
h5.pl-heading { font-size: 16px; }
h6.pl-heading { font-size: 14px; }

/* ---------- Botons ---------- */

/* Base del `.et_pb_button` del Divi: contorn de 2px del color d'èmfasi,
   fons transparent, 20px, interlineat 1.7 i radis de 3px. Els colors i
   l'espaiat propis del contingut arriben per `.pl-s-* .pl-button`. */
.pl-button {
	background-color: transparent;
	background-size: cover;
	background-position: 50%;
	background-repeat: no-repeat;
	border: 2px solid currentColor;
	border-radius: 3px;
	padding: .3em 1em;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.7em;
	letter-spacing: normal;
	color: var(--pl-link, var(--pl-primary, #2ea3f2));
	box-shadow: none;
	transform: none;
}
.pl-button:hover {
	background-color: hsla(0, 0%, 100%, .2);
	transform: none;
	box-shadow: none;
}

/* ---------- Blurb ---------- */

.pl-blurb-title { margin: 0 0 10px; }
.pl-blurb-icon {
	display: inline-block; width: auto; height: auto; border-radius: 0;
	background: none; color: inherit; font-size: 32px; margin-bottom: 30px;
}
.pl-blurb-img { border-radius: 0; }

/* ---------- CTA ---------- */

.pl-cta { padding: 0; border: 0; border-radius: 0; background: none; }
.pl-cta-title { margin: 0 0 10px; }

/* ---------- Acordió i pestanyes ---------- */

.pl-accordion { border: 0; border-radius: 0; overflow: visible; background: none; }
.pl-accordion-item { border: 1px solid #d9d9d9; border-radius: 0; margin-bottom: 10px; }
.pl-accordion-item:last-child { border-bottom: 1px solid #d9d9d9; margin-bottom: 0; }
.pl-accordion-title {
	padding: 18px 20px;
	font-weight: 600;
	background: var(--pl-acc-closed-bg, none);
	color: var(--pl-acc-closed-color, inherit);
}
.pl-accordion-item.is-open > .pl-accordion-title { color: var(--pl-acc-open-color, inherit); background: var(--pl-acc-open-bg, none); }
.pl-accordion-body { padding: 0 20px 18px; color: inherit; }

.pl-tabs { display: flex; flex-wrap: wrap; }
.pl-tabs--vertical { flex-direction: column; }
.pl-tab { flex: 1 1 auto; min-width: 140px; border: 1px solid #d9d9d9; border-radius: 0; background: none; }
.pl-tab-title {
	padding: 12px 16px;
	border: 0;
	background: var(--pl-tab-inactive-bg, #f4f4f4);
	font-weight: 600;
	color: var(--pl-tab-inactive-color, inherit);
	box-shadow: inset 0 -1px 0 #d9d9d9;
}
.pl-tab.is-active > .pl-tab-title { background: var(--pl-tab-active-bg, #fff); color: var(--pl-tab-active-color, inherit); box-shadow: none; }
.pl-tab-body { padding: 16px; }

/* ---------- Testimoni i equip ---------- */

.pl-testimonial { border: 0; background: none; border-radius: 0; padding: 0; }
.pl-test-quote { margin: 0 0 16px; font-size: inherit; line-height: 1.5; font-style: normal; color: inherit; }
.pl-test-quote-icon { color: #c7d2fe; font-size: 40px; }
.pl-test-author { gap: 14px; }
.pl-test-photo { width: 52px; height: 52px; border-radius: 50%; }
.pl-test-name { font-weight: 700; color: #0f172a; }
.pl-test-role, .pl-test-company { color: #64748b; }

.pl-team { border: 0; border-radius: 0; background: none; padding: 0; box-shadow: none; }
.pl-team-photo { width: 112px; height: 112px; border-radius: 50%; margin-bottom: 14px; }
.pl-team-name { font-size: 19px; font-weight: 700; color: #0f172a; letter-spacing: -.01em; }
.pl-team-role { color: #64748b; }
.pl-team-social { color: #4f46e5; }
.pl-team-social a { color: inherit; font-weight: 600; margin-right: 10px; }
.pl-sidebar { padding-left: 20px; }
.pl-sidebar--left { padding-left: 0; padding-right: 20px; }
.pl-sidebar > .widget { padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid #e2e8f0; }
.pl-sidebar.et_pb_sidebar_no_border > .widget { border-bottom: 0; }

/* ---------- Preus ---------- */

.pl-pricing { display: flex; flex-wrap: wrap; gap: 20px; }
.pl-price { flex: 1 1 220px; border: 0; border-radius: 0; padding: 0; box-shadow: none; transition: none; }
.pl-price:hover { transform: none; box-shadow: none; }
.pl-price--featured { border-color: inherit; box-shadow: none; }
.pl-price-title { font-size: 20px; font-weight: 700; color: inherit; }
.pl-price-subtitle { color: inherit; }
.pl-price-amount { font-size: 44px; font-weight: 800; color: inherit; letter-spacing: -.03em; }
.pl-price-cur { font-size: 22px; font-weight: 600; }
.pl-price-period { color: inherit; }
.pl-price-features li { border-bottom-color: #eee; color: inherit; }

/* ---------- Blog ---------- */

.pl-blog { display: grid; gap: 2.75%; }
.pl-blog--1 { grid-template-columns: 1fr; }
.pl-blog--2 { grid-template-columns: repeat(2, 1fr); }
.pl-blog--3 { grid-template-columns: repeat(3, 1fr); }
.pl-blog--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 767px) { .pl-blog { grid-template-columns: 1fr !important; } }
.pl-blog-item {
	border: 1px solid #d8d8d8;
	border-radius: 0;
	overflow: visible;
	background: #fff;
	padding: 19px;
	box-shadow: none;
	transition: none;
}
.pl-blog-item:hover { transform: none; box-shadow: none; }
.pl-blog-title { font-size: 18px; font-weight: 600; letter-spacing: normal; }
.pl-blog-meta { color: #666; }
.pl-blog-exc { color: inherit; }
.pl-more { color: var(--pl-primary, #2ea3f2); font-weight: 400; }

/* ---------- Xarxes socials ---------- */

.pl-social {
	margin: 0 0 22px;
	padding: 0;
	line-height: 26px;
}

/* Icona social per defecte del Divi: 32x32, radi 3px, sense fons (el fons
   només s'aplica si el mòdul fill en defineix un) i glif blanc. */
.pl-social-link {
	display: inline-block;
	width: var(--pl-social-size, 32px);
	height: var(--pl-social-size, 32px);
	line-height: var(--pl-social-size, 32px);
	margin: 0 8px 8px 0;
	padding: 0;
	border-radius: 3px;
	background: transparent;
	color: #fff;
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	transition: color .3s;
}
.pl-social-link:last-child { margin-right: 0; }
.pl-social-link:hover { color: hsla(0,0%,100%,.7); }
.pl-social--named .pl-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: auto;
	line-height: 1.6;
	border-radius: 3px;
	padding: 0 12px;
	gap: 6px;
}
.pl-social-icon {
	display: block;
	font-family: "ETmodules";
	font-size: var(--pl-social-font, 16px);
	line-height: var(--pl-social-size, 32px);
	font-style: normal;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.pl-social-icon--text {
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
}
.pl-social-name { display: none; font-size: 14px; font-weight: 600; }
.pl-social--named .pl-social-name { display: inline; }

/* ---------- Formularis i cercador ---------- */

input[type="text"], input[type="email"], input[type="url"], input[type="password"],
input[type="search"], input[type="number"], input[type="tel"], textarea, select {
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	padding: 11px 14px;
	font-size: 15px;
	color: #0f172a;
	background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus,
input[type="password"]:focus, input[type="search"]:focus, input[type="number"]:focus,
input[type="tel"]:focus, textarea:focus, select:focus {
	border-color: #818cf8;
	box-shadow: 0 0 0 3px rgba(79, 70, 229, .15);
	outline: none;
}
.pl-search { display: flex; gap: 8px; }
.pl-search input[type="search"] { flex: 1 1 auto; min-width: 0; border-radius: 999px; padding: 11px 18px; }
.pl-search .pl-button { border-radius: 999px; }

/* ---------- Mitjans ---------- */

/* Sense radis ni decoració per defecte: al Divi les imatges, les galeries i
   els vídeos es veuen amb la seva forma natural. Els radis només hi són si
   el contingut els defineix (`border_radii`). */
.pl-gallery-item img { display: block; width: 100%; height: auto; }
/* Galeria: el Divi fa sempre 4 columnes en una columna sencera (20,875%
   d'amplada i 5,5% de separació) i en fa menys si la columna és més estreta.
   Els valors són els del `et_pb_gutters3` del Divi. Com que el marge
   vertical també és un percentatge de l'amplada, es fa amb flex i marges
   (no amb `gap`, que el resol contra l'alçada). */
.pl-gallery { display: flex; flex-wrap: wrap; }
.pl-gallery-item { display: block; width: 20.875%; margin-right: 5.5%; margin-bottom: 5.5%; line-height: 0; }
.pl-lightbox-image { display: inline-block; position: relative; cursor: zoom-in; }
.pl-gallery-item:nth-child(4n) { margin-right: 0; }
.pl-column-1-2 .pl-gallery-item { width: 44.18%; margin-right: 11.64%; margin-bottom: 11.64%; }
.pl-column-1-2 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-column-2-3 .pl-gallery-item { width: 45.758%; margin-right: 8.483%; margin-bottom: 8.483%; }
.pl-column-2-3 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-column-3-4 .pl-gallery-item { width: 28.353%; margin-right: 7.47%; margin-bottom: 7.47%; }
.pl-column-3-4 .pl-gallery-item:nth-child(3n) { margin-right: 0; }
.pl-column-3-5 .pl-gallery-item { width: 45.242%; margin-right: 9.516%; margin-bottom: 9.516%; }
.pl-column-3-5 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-column-1-3 .pl-gallery-item { width: 100%; margin-right: 0; margin-bottom: 18.539%; }
.pl-column-2-5 .pl-gallery-item { width: 100%; margin-right: 0; margin-bottom: 14.986%; }
.pl-column-1-4 .pl-gallery-item { width: 100%; margin-right: 0; margin-bottom: 26.347%; }
.pl-column-1-5 .pl-gallery-item { width: 100%; margin-right: 0; margin-bottom: 35.256%; }
.pl-column-1-6 .pl-gallery-item { width: 100%; margin-right: 0; margin-bottom: 45.517%; }

/* Totes les miniatures tenen la mateixa forma (els retalls del Divi). */
.pl-gallery--portrait .pl-gallery-img { aspect-ratio: 400 / 516; }
.pl-gallery--landscape .pl-gallery-img { aspect-ratio: 400 / 284; }
.pl-gallery-img { object-fit: cover; }

/* Vídeo: l'iframe o el fitxer no poden desbordar la columna. */
.pl-video { max-width: 100%; }
.pl-video iframe,
.pl-video video { display: block; max-width: 100%; height: auto; border: 0; }

/* Superposició en passar per sobre, com el Divi: vel blanc i un «+» blau. */
.pl-gallery-item { position: relative; }
.pl-overlay {
	position: absolute; top: 0; left: 0; display: block; width: 100%; height: 100%;
	background: hsla(0, 0%, 100%, .9); border: 1px solid #e5e5e5; box-sizing: border-box;
	opacity: 0; pointer-events: none; transition: opacity .3s; z-index: 1;
}
.pl-gallery-item:hover .pl-overlay { opacity: 1; }
.pl-overlay::before, .pl-overlay::after {
	content: ""; position: absolute; top: 50%; left: 50%;
	background: var(--pl-primary, #2ea3f2); transform: translate(-50%, -50%);
}
.pl-overlay::before { width: 2px; height: 28px; }
.pl-overlay::after { width: 28px; height: 2px; }

/* Visor d'imatges (lightbox), sense sortir de la pàgina. */
html.pl-lightbox-open { overflow: hidden; }
.pl-lightbox {
	position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 100000;
	display: flex; align-items: center; justify-content: center;
	background: rgba(0, 0, 0, .9);
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity .3s ease, visibility 0s linear .3s;
}
.pl-lightbox.is-open { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .3s ease; }
.pl-lightbox-stage { display: flex; align-items: center; justify-content: center; max-width: 90vw; max-height: 90vh; }
.pl-lightbox-stage img { width: auto; height: auto; max-width: 90vw; max-height: 90vh; box-shadow: 0 12px 50px rgba(0, 0, 0, .55); }
.pl-lightbox-close, .pl-lightbox-prev, .pl-lightbox-next {
	position: absolute; margin: 0; padding: 10px; border: 0; background: none;
	color: #fff; font-family: Arial, sans-serif; line-height: 1; cursor: pointer;
	opacity: .85; transition: opacity .15s;
}
.pl-lightbox-close:hover, .pl-lightbox-prev:hover, .pl-lightbox-next:hover { opacity: 1; }
.pl-lightbox button:focus { outline: none; }
.pl-lightbox button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.pl-lightbox-close { top: 12px; right: 16px; font-size: 34px; }
.pl-lightbox-prev { left: 16px; top: 50%; transform: translateY(-50%); font-size: 48px; }
.pl-lightbox-next { right: 16px; top: 50%; transform: translateY(-50%); font-size: 48px; }
.pl-lightbox-count { position: absolute; top: 22px; left: 22px; color: #fff; font-size: 14px; opacity: .8; }
@media (max-width: 767px) {
	.pl-lightbox-prev { left: 2px; }
	.pl-lightbox-next { right: 2px; }
	.pl-lightbox-stage img { max-width: 96vw; max-height: 84vh; }
}

/* ==========================================================================
   Gutter 1, 2 i 4 del Divi (el 3 és el valor per defecte, a dalt)
   ========================================================================== */

/* Gutter 1 */
.pl-gutters-1 .pl-column { margin-right: 0%; }
.pl-gutters-1 .pl-column-1-1 { flex: 0 0 100.0%; max-width: 100.0%; }
.pl-gutters-1 .pl-column-1-1 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-1-2 { flex: 0 0 50.0%; max-width: 50.0%; }
.pl-gutters-1 .pl-column-1-2 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-2-3 { flex: 0 0 66.6667%; max-width: 66.6667%; }
.pl-gutters-1 .pl-column-2-3 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-3-5 { flex: 0 0 60.0%; max-width: 60.0%; }
.pl-gutters-1 .pl-column-3-5 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-2-5 { flex: 0 0 40.0%; max-width: 40.0%; }
.pl-gutters-1 .pl-column-2-5 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-1-3 { flex: 0 0 33.3333%; max-width: 33.3333%; }
.pl-gutters-1 .pl-column-1-3 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-3-4 { flex: 0 0 75.0%; max-width: 75.0%; }
.pl-gutters-1 .pl-column-3-4 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-1-4 { flex: 0 0 25.0%; max-width: 25.0%; }
.pl-gutters-1 .pl-column-1-4 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-1-5 { flex: 0 0 20.0%; max-width: 20.0%; }
.pl-gutters-1 .pl-column-1-5 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-1-6 { flex: 0 0 16.6667%; max-width: 16.6667%; }
.pl-gutters-1 .pl-column-1-6 > .pl-module { margin-bottom: 0.0%; }
.pl-gutters-1 .pl-column-1-1 .pl-gallery-item { width: 25.0%; margin-right: 0%; margin-bottom: 0%; }
.pl-gutters-1 .pl-column-1-1 .pl-gallery-item:nth-child(4n) { margin-right: 0; }
.pl-gutters-1 .pl-column-1-2 .pl-gallery-item { width: 50.0%; margin-right: 0%; margin-bottom: 0%; }
.pl-gutters-1 .pl-column-1-2 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-gutters-1 .pl-column-2-3 .pl-gallery-item { width: 50.0%; margin-right: 0%; margin-bottom: 0%; }
.pl-gutters-1 .pl-column-2-3 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-gutters-1 .pl-column-3-4 .pl-gallery-item { width: 33.3333%; margin-right: 0%; margin-bottom: 0%; }
.pl-gutters-1 .pl-column-3-4 .pl-gallery-item:nth-child(3n) { margin-right: 0; }
.pl-gutters-1 .pl-column-3-5 .pl-gallery-item { width: 50.0%; margin-right: 0%; margin-bottom: 0%; }
.pl-gutters-1 .pl-column-3-5 .pl-gallery-item:nth-child(2n) { margin-right: 0; }

/* Gutter 2 */
.pl-gutters-2 .pl-column { margin-right: 3%; }
.pl-gutters-2 .pl-column-1-1 { flex: 0 0 100.0%; max-width: 100.0%; }
.pl-gutters-2 .pl-column-1-1 > .pl-module { margin-bottom: 1.5%; }
.pl-gutters-2 .pl-column-1-2 { flex: 0 0 48.5%; max-width: 48.5%; }
.pl-gutters-2 .pl-column-1-2 > .pl-module { margin-bottom: 3.093%; }
.pl-gutters-2 .pl-column-2-3 { flex: 0 0 65.6667%; max-width: 65.6667%; }
.pl-gutters-2 .pl-column-2-3 > .pl-module { margin-bottom: 2.284%; }
.pl-gutters-2 .pl-column-3-5 { flex: 0 0 58.8%; max-width: 58.8%; }
.pl-gutters-2 .pl-column-3-5 > .pl-module { margin-bottom: 2.551%; }
.pl-gutters-2 .pl-column-2-5 { flex: 0 0 38.2%; max-width: 38.2%; }
.pl-gutters-2 .pl-column-2-5 > .pl-module { margin-bottom: 3.927%; }
.pl-gutters-2 .pl-column-1-3 { flex: 0 0 31.3333%; max-width: 31.3333%; }
.pl-gutters-2 .pl-column-1-3 > .pl-module { margin-bottom: 4.787%; }
.pl-gutters-2 .pl-column-3-4 { flex: 0 0 74.25%; max-width: 74.25%; }
.pl-gutters-2 .pl-column-3-4 > .pl-module { margin-bottom: 2.02%; }
.pl-gutters-2 .pl-column-1-4 { flex: 0 0 22.75%; max-width: 22.75%; }
.pl-gutters-2 .pl-column-1-4 > .pl-module { margin-bottom: 6.593%; }
.pl-gutters-2 .pl-column-1-5 { flex: 0 0 17.6%; max-width: 17.6%; }
.pl-gutters-2 .pl-column-1-5 > .pl-module { margin-bottom: 8.523%; }
.pl-gutters-2 .pl-column-1-6 { flex: 0 0 14.1667%; max-width: 14.1667%; }
.pl-gutters-2 .pl-column-1-6 > .pl-module { margin-bottom: 10.588%; }
.pl-gutters-2 .pl-column-1-1 .pl-gallery-item { width: 22.75%; margin-right: 3%; margin-bottom: 3%; }
.pl-gutters-2 .pl-column-1-1 .pl-gallery-item:nth-child(4n) { margin-right: 0; }
.pl-gutters-2 .pl-column-1-2 .pl-gallery-item { width: 48.5%; margin-right: 3%; margin-bottom: 3%; }
.pl-gutters-2 .pl-column-1-2 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-gutters-2 .pl-column-2-3 .pl-gallery-item { width: 48.5%; margin-right: 3%; margin-bottom: 3%; }
.pl-gutters-2 .pl-column-2-3 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-gutters-2 .pl-column-3-4 .pl-gallery-item { width: 31.3333%; margin-right: 3%; margin-bottom: 3%; }
.pl-gutters-2 .pl-column-3-4 .pl-gallery-item:nth-child(3n) { margin-right: 0; }
.pl-gutters-2 .pl-column-3-5 .pl-gallery-item { width: 48.5%; margin-right: 3%; margin-bottom: 3%; }
.pl-gutters-2 .pl-column-3-5 .pl-gallery-item:nth-child(2n) { margin-right: 0; }

/* Gutter 4 */
.pl-gutters-4 .pl-column { margin-right: 8%; }
.pl-gutters-4 .pl-column-1-1 { flex: 0 0 100.0%; max-width: 100.0%; }
.pl-gutters-4 .pl-column-1-1 > .pl-module { margin-bottom: 4.0%; }
.pl-gutters-4 .pl-column-1-2 { flex: 0 0 46.0%; max-width: 46.0%; }
.pl-gutters-4 .pl-column-1-2 > .pl-module { margin-bottom: 8.696%; }
.pl-gutters-4 .pl-column-2-3 { flex: 0 0 64.0%; max-width: 64.0%; }
.pl-gutters-4 .pl-column-2-3 > .pl-module { margin-bottom: 6.25%; }
.pl-gutters-4 .pl-column-3-5 { flex: 0 0 56.8%; max-width: 56.8%; }
.pl-gutters-4 .pl-column-3-5 > .pl-module { margin-bottom: 7.042%; }
.pl-gutters-4 .pl-column-2-5 { flex: 0 0 35.2%; max-width: 35.2%; }
.pl-gutters-4 .pl-column-2-5 > .pl-module { margin-bottom: 11.364%; }
.pl-gutters-4 .pl-column-1-3 { flex: 0 0 28.0%; max-width: 28.0%; }
.pl-gutters-4 .pl-column-1-3 > .pl-module { margin-bottom: 14.286%; }
.pl-gutters-4 .pl-column-3-4 { flex: 0 0 73.0%; max-width: 73.0%; }
.pl-gutters-4 .pl-column-3-4 > .pl-module { margin-bottom: 5.479%; }
.pl-gutters-4 .pl-column-1-4 { flex: 0 0 19.0%; max-width: 19.0%; }
.pl-gutters-4 .pl-column-1-4 > .pl-module { margin-bottom: 21.053%; }
.pl-gutters-4 .pl-column-1-5 { flex: 0 0 13.6%; max-width: 13.6%; }
.pl-gutters-4 .pl-column-1-5 > .pl-module { margin-bottom: 29.412%; }
.pl-gutters-4 .pl-column-1-6 { flex: 0 0 10.0%; max-width: 10.0%; }
.pl-gutters-4 .pl-column-1-6 > .pl-module { margin-bottom: 40.0%; }
.pl-gutters-4 .pl-column-1-1 .pl-gallery-item { width: 19.0%; margin-right: 8%; margin-bottom: 8%; }
.pl-gutters-4 .pl-column-1-1 .pl-gallery-item:nth-child(4n) { margin-right: 0; }
.pl-gutters-4 .pl-column-1-2 .pl-gallery-item { width: 46.0%; margin-right: 8%; margin-bottom: 8%; }
.pl-gutters-4 .pl-column-1-2 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-gutters-4 .pl-column-2-3 .pl-gallery-item { width: 46.0%; margin-right: 8%; margin-bottom: 8%; }
.pl-gutters-4 .pl-column-2-3 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-gutters-4 .pl-column-3-4 .pl-gallery-item { width: 28.0%; margin-right: 8%; margin-bottom: 8%; }
.pl-gutters-4 .pl-column-3-4 .pl-gallery-item:nth-child(3n) { margin-right: 0; }
.pl-gutters-4 .pl-column-3-5 .pl-gallery-item { width: 46.0%; margin-right: 8%; margin-bottom: 8%; }
.pl-gutters-4 .pl-column-3-5 .pl-gallery-item:nth-child(2n) { margin-right: 0; }
.pl-audio { border: 1px solid #e2e8f0; padding: 18px; }

/* Mòdul Divider: la línia viu dins del mòdul; no s'ha de confondre amb
   les divisions de secció (`.pl-divider`, absolutes). */
.pl-divider-line { position: relative; width: 100%; height: 100%; min-height: 23px; }
.pl-divider-line::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	border-top-style: var(--pl-divider-style, solid);
	border-top-width: var(--pl-divider-weight, 1px);
	border-top-color: var(--pl-divider-color, #e2e8f0);
}
.pl-divider-line--top::before { top: 0; }
.pl-divider-line--center::before { top: 50%; }
.pl-divider-line--bottom::before { bottom: 0; }
.pl-divider-line--hidden::before { display: none; }

/* ---------- Comptadors ---------- */

.pl-counters { display: flex; flex-wrap: wrap; gap: 28px; }
.pl-counter { flex: 1 1 140px; text-align: center; }
.pl-counter-number { display: block; font-size: 44px; font-weight: 800; color: #0f172a; letter-spacing: -.03em; }
.pl-counter-label { color: #64748b; font-weight: 500; }
.pl-counter-bar { width: 100%; height: 10px; margin-top: 12px; overflow: hidden; background: #e2e8f0; }
.pl-counter-fill { display: block; height: 100%; background: #3b69c4; }
.pl-circle-inner { font-weight: 700; color: #0f172a; }

/* ---------- Fills de mòduls contenidors ---------- */

.pl-module .pl-module { margin-bottom: 0; }
.pl-module-inner .pl-module-inner { max-width: none; padding-left: 0; padding-right: 0; }

.pl-accordion-title,
.pl-toggle-title {
	display: block;
	width: 100%;
	text-align: left;
	border: 0;
	cursor: pointer;
	position: relative;
	font-family: inherit;
}
.pl-accordion-title::after,
.pl-toggle-title::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	margin-top: -5px;
	transition: transform .18s ease;
}
.pl-accordion-item.is-open > .pl-accordion-title::after,
.pl-toggle.is-open > .pl-toggle-title::after {
	transform: rotate(-135deg);
	margin-top: 0;
}
.pl-accordion-body,
.pl-toggle-body { display: none; padding: 0 20px 18px; background: #fff; color: #334155; }
.pl-accordion-item.is-open > .pl-accordion-body,
.pl-toggle.is-open > .pl-toggle-body { display: block; }

.pl-toggle { border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; background: #fff; }
.pl-toggle-title { padding: 16px 20px; font-weight: 600; color: #0f172a; background: #f8fafc; }
.pl-toggle.is-open > .pl-toggle-title { color: #4f46e5; background: #eef2ff; }

/* ---------- Formulari de contacte (paritat amb el Divi) ---------- */

/* El Divi reparteix els camps amb flotants i un marge esquerre de -3%, de
   manera que dos camps ocupen mitja amplada cadascun. */
.pl-contact { position: relative; }
/* Pidi ja fa el marge de -3% a `.pl-contact-fields`; evitem que el CSS
   importat del Divi el torni a aplicar al formulari. */
.pl-contact-form.et_pb_contact_form { margin-left: 0; }
.pl-form-title { font-weight: 500; padding-bottom: 16px; margin: 0; }
.pl-contact-fields { margin-left: -3%; }
.pl-contact-fields::after { content: ""; display: table; clear: both; }
.pl-contact .pl-form-field { float: left; width: 50%; padding: 0 0 0 3%; margin: 0 0 3%; }
.pl-contact .pl-form-field--full { width: 100%; }
.pl-contact .pl-form-field--clear { clear: both; }

/* Fletxa del desplegable, com el `.et_pb_contact_field[data-type=select]`
   del Divi. */
.pl-contact .pl-form-field--select { position: relative; }
.pl-contact .pl-form-field--select::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 10px;
	width: 0;
	height: 0;
	margin-top: 3px;
	border: 6px solid transparent;
	border-top-color: #666;
	transform: translateY(-50%);
	pointer-events: none;
}
.pl-contact-form select.pl-input { padding-right: 20px; }

/* Les etiquetes no es veuen (el placeholder fa de guia), com al Divi, però
   es mantenen per als lectors de pantalla. */
.pl-contact-form::after { content: ""; display: table; clear: both; }
.pl-contact-form .pl-form-label,
.pl-contact .pl-form-label {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
.pl-contact-form .pl-form-label--group {
	position: static;
	width: auto;
	height: auto;
	margin: 0 0 .5em;
	overflow: visible;
	clip: auto;
	clip-path: none;
	white-space: normal;
	display: block;
	font-weight: 600;
}
.pl-req { color: #dc2626; }

/* Camps: fons gris, sense vora, 14px i 16px de farcit (base del Divi). Els
   radis i els colors propis del camp arriben en línia. */
.pl-contact-form .pl-input,
.pl-contact-form input[type="text"],
.pl-contact-form input[type="email"],
.pl-contact-form input[type="url"],
.pl-contact-form input[type="tel"],
.pl-contact-form input[type="number"],
.pl-contact-form textarea,
.pl-contact-form select {
	-webkit-appearance: none;
	appearance: none;
	background-color: #eee;
	width: 100%;
	border: 0;
	border-radius: 0;
	color: #999;
	font-size: 14px;
	line-height: 1.4;
	padding: 16px;
	box-shadow: none;
}
.pl-contact-form .pl-input:focus,
.pl-contact-form input:focus,
.pl-contact-form textarea:focus,
.pl-contact-form select:focus {
	box-shadow: none;
	outline: none;
}
.pl-contact-form textarea.pl-input { min-height: 150px; display: block; font-family: inherit; resize: vertical; }

.pl-options { display: block; }
.pl-option {
	display: inline-block; vertical-align: middle; line-height: 1.7em; min-height: 1.7em;
	margin: 0 12px 0 0; font-size: 14px; color: inherit;
}
.pl-contact .pl-option input[type="checkbox"],
.pl-contact .pl-option input[type="radio"] {
	-webkit-appearance: none; appearance: none;
	width: 18px; height: 18px; margin: 0 6px 0 0; padding: 0;
	background-color: #eee; border: 0; border-radius: 0;
	vertical-align: middle; position: relative; box-shadow: none;
}
.pl-contact .pl-option input[type="radio"] { border-radius: 50%; }
.pl-contact .pl-option input[type="checkbox"]:checked::before {
	content: "N"; font-family: "ETmodules"; color: var(--pl-primary, #2ea3f2);
	font-size: 13px; font-weight: 600; line-height: 18px;
	position: absolute; top: 0; left: 0; width: 18px; height: 18px; text-align: center;
}
.pl-contact .pl-option input[type="radio"]:checked::before {
	content: ""; position: absolute; top: 50%; left: 50%; width: 6px; height: 6px;
	margin: -3px 0 0 -3px; background: var(--pl-primary, #2ea3f2); border-radius: 50%;
}

/* Captcha i botó, a la dreta i en la mateixa línia (com el Divi). */
.pl-contact-bottom {
	float: right;
	text-align: right;
	margin-top: -1.5%;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
.pl-contact-right { display: inline-block; min-width: 105px; margin: 0; text-align: right; }
.pl-contact-right p { margin: 0; }
.pl-contact-right .pl-input,
.pl-contact-right input { max-width: 50px; padding: 16px; }
.pl-captcha-question { vertical-align: middle; }
.pl-contact-submit { margin: 0 0 0 18px; cursor: pointer; font-family: inherit; }

.pl-form-actions { margin-top: 20px; }
.pl-form-message { padding: 12px 16px; margin-bottom: 16px; font-weight: 500; }
.pl-form-message--ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.pl-form-message--error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.pl-form-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 767px) {
	.pl-contact .pl-form-field { width: 100%; }
}

/* ==========================================================================
   Gutter propi d'una fila (Divi `use_custom_gutter` + `gutter_width`)
   ========================================================================== */
.pl-row.pl-gutters-1 .pl-column { margin-right: 0; }
.pl-row.pl-gutters-1 .pl-column-1-2 { flex: 0 0 50%; max-width: 50%; }
.pl-row.pl-gutters-1 .pl-column-2-3 { flex: 0 0 66.6667%; max-width: 66.6667%; }
.pl-row.pl-gutters-1 .pl-column-1-3 { flex: 0 0 33.3333%; max-width: 33.3333%; }
.pl-row.pl-gutters-1 .pl-column-3-4 { flex: 0 0 75%; max-width: 75%; }
.pl-row.pl-gutters-1 .pl-column-1-4 { flex: 0 0 25%; max-width: 25%; }
.pl-row.pl-gutters-1 .pl-column-3-5 { flex: 0 0 60%; max-width: 60%; }
.pl-row.pl-gutters-1 .pl-column-2-5 { flex: 0 0 40%; max-width: 40%; }
.pl-row.pl-gutters-1 .pl-column-1-5 { flex: 0 0 20%; max-width: 20%; }
.pl-row.pl-gutters-1 .pl-column-1-6 { flex: 0 0 16.6667%; max-width: 16.6667%; }
.pl-row.pl-gutters-1 .pl-column > .pl-module { margin-bottom: 0; }

.pl-row.pl-gutters-2 .pl-column { margin-right: 3%; }
.pl-row.pl-gutters-2 .pl-column-1-2 { flex: 0 0 48.5%; max-width: 48.5%; }
.pl-row.pl-gutters-2 .pl-column-2-3 { flex: 0 0 65.6667%; max-width: 65.6667%; }
.pl-row.pl-gutters-2 .pl-column-1-3 { flex: 0 0 31.3333%; max-width: 31.3333%; }
.pl-row.pl-gutters-2 .pl-column-3-4 { flex: 0 0 74.25%; max-width: 74.25%; }
.pl-row.pl-gutters-2 .pl-column-1-4 { flex: 0 0 22.75%; max-width: 22.75%; }
.pl-row.pl-gutters-2 .pl-column-3-5 { flex: 0 0 58.8%; max-width: 58.8%; }
.pl-row.pl-gutters-2 .pl-column-2-5 { flex: 0 0 38.2%; max-width: 38.2%; }
.pl-row.pl-gutters-2 .pl-column-1-5 { flex: 0 0 17.6%; max-width: 17.6%; }
.pl-row.pl-gutters-2 .pl-column-1-6 { flex: 0 0 14.1667%; max-width: 14.1667%; }
.pl-row.pl-gutters-2 .pl-column-1-2 > .pl-module { margin-bottom: 3.093%; }
.pl-row.pl-gutters-2 .pl-column-2-3 > .pl-module { margin-bottom: 2.284%; }
.pl-row.pl-gutters-2 .pl-column-1-3 > .pl-module { margin-bottom: 4.787%; }
.pl-row.pl-gutters-2 .pl-column-3-4 > .pl-module { margin-bottom: 2.02%; }
.pl-row.pl-gutters-2 .pl-column-1-4 > .pl-module { margin-bottom: 6.593%; }
.pl-row.pl-gutters-2 .pl-column-3-5 > .pl-module { margin-bottom: 2.551%; }
.pl-row.pl-gutters-2 .pl-column-2-5 > .pl-module { margin-bottom: 3.927%; }
.pl-row.pl-gutters-2 .pl-column-1-5 > .pl-module { margin-bottom: 8.523%; }
.pl-row.pl-gutters-2 .pl-column-1-6 > .pl-module { margin-bottom: 10.588%; }

.pl-row.pl-gutters-4 .pl-column { margin-right: 8%; }
.pl-row.pl-gutters-4 .pl-column-1-2 { flex: 0 0 46%; max-width: 46%; }
.pl-row.pl-gutters-4 .pl-column-2-3 { flex: 0 0 64%; max-width: 64%; }
.pl-row.pl-gutters-4 .pl-column-1-3 { flex: 0 0 28%; max-width: 28%; }
.pl-row.pl-gutters-4 .pl-column-3-4 { flex: 0 0 73%; max-width: 73%; }
.pl-row.pl-gutters-4 .pl-column-1-4 { flex: 0 0 19%; max-width: 19%; }
.pl-row.pl-gutters-4 .pl-column-3-5 { flex: 0 0 56.8%; max-width: 56.8%; }
.pl-row.pl-gutters-4 .pl-column-2-5 { flex: 0 0 35.2%; max-width: 35.2%; }
.pl-row.pl-gutters-4 .pl-column-1-5 { flex: 0 0 13.6%; max-width: 13.6%; }
.pl-row.pl-gutters-4 .pl-column-1-6 { flex: 0 0 10%; max-width: 10%; }
.pl-row.pl-gutters-4 .pl-column-1-2 > .pl-module { margin-bottom: 8.696%; }
.pl-row.pl-gutters-4 .pl-column-2-3 > .pl-module { margin-bottom: 6.25%; }
.pl-row.pl-gutters-4 .pl-column-1-3 > .pl-module { margin-bottom: 14.286%; }
.pl-row.pl-gutters-4 .pl-column-3-4 > .pl-module { margin-bottom: 5.479%; }
.pl-row.pl-gutters-4 .pl-column-1-4 > .pl-module { margin-bottom: 21.053%; }
.pl-row.pl-gutters-4 .pl-column-3-5 > .pl-module { margin-bottom: 7.042%; }
.pl-row.pl-gutters-4 .pl-column-2-5 > .pl-module { margin-bottom: 11.364%; }
.pl-row.pl-gutters-4 .pl-column-1-5 > .pl-module { margin-bottom: 29.412%; }
.pl-row.pl-gutters-4 .pl-column-1-6 > .pl-module { margin-bottom: 40%; }

/* A tauleta i mòbil el Divi dona 30 px de marge inferior a cada mòdul
   (no els percentatges d'escriptori). El gutter 1 no en porta. */
@media (max-width: 980px) {
	.pl-row .pl-column > .pl-module { margin-bottom: 30px; }
	.pl-row.pl-gutters-1 .pl-column > .pl-module { margin-bottom: 0; }
}

/* Galeria: el Divi passa a 3 columnes a tauleta i a 1 columna a mòbil,
   amb la imatge gran i la relació natural en aquest últim cas. */
.pl-gallery-item picture { display: block; width: 100%; }
@media (max-width: 980px) {
	.pl-gallery-item {
		width: 33.3333% !important;
		margin-right: 0 !important;
		margin-bottom: 0 !important;
	}
}
@media (max-width: 767px) {
	.pl-gallery-item {
		width: 100% !important;
		margin: 0 !important;
	}
	.pl-gallery--landscape .pl-gallery-img,
	.pl-gallery--portrait .pl-gallery-img {
		aspect-ratio: auto;
		height: auto;
		object-fit: contain;
	}
}

/* L'últim mòdul de cada columna no porta el marge inferior per defecte.
   Aquesta regla va al final perquè les regles de gutter personalitzat
   (més avall que la regla base) també tenen especificitat 0,4,0. Els marges
   explícits en línia es mantenen. */
.pl-row .pl-column > .pl-module:last-child,
.pl-row .pl-column > .pl-module:last-of-type { margin-bottom: 0; }

/* Menú contextual del llenç */
.pl-canvas-body .pl-context-menu {
	position: absolute;
	z-index: 100000;
	min-width: 180px;
	padding: 4px;
	background: #111827;
	color: #e5e7eb;
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 9px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, .35);
	font: 12px/1.3 system-ui, -apple-system, sans-serif;
}
.pl-canvas-body .pl-context-menu button {
	display: block;
	width: 100%;
	padding: 8px 10px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: inherit;
	text-align: left;
	cursor: pointer;
}
.pl-canvas-body .pl-context-menu button:hover { background: #374151; }
.pl-canvas-body .pl-context-menu button:disabled { opacity: .4; cursor: not-allowed; }

/* Columnes explícites de la galeria (quan el Divi en defineix una mida). */
.pl-gallery--grid { display: grid; gap: 5.5%; }
.pl-gallery--grid .pl-gallery-item { width: auto !important; margin: 0 !important; }
.pl-gallery--cols-1 { grid-template-columns: 1fr; }
.pl-gallery--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pl-gallery--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pl-gallery--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pl-gallery--cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.pl-gallery--cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 767px) {
	.pl-gallery--cols-3, .pl-gallery--cols-4, .pl-gallery--cols-5, .pl-gallery--cols-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.pl-wc-gallery-item { display: block; line-height: 0; }
.pl-wc-gallery-item img { width: 100%; height: auto; border-radius: 4px; }

.pl-testimonial--center { text-align: center; }
.pl-testimonial--right { text-align: right; }
.pl-testimonial--left { text-align: left; }

.pl-image-wrap { position: relative; }
.pl-image-overlay {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	background: var(--pl-overlay-bg, rgba(0,0,0,.5)); opacity: 0; transition: opacity .3s;
	font-size: 32px; line-height: 1; text-align: center; pointer-events: none;
}
.pl-image-wrap:hover .pl-image-overlay { opacity: 1; background: var(--pl-overlay-hover, rgba(255,255,255,.9)); }
.pl-image-overlay-icon { display: block; line-height: 1; }
@media (max-width: 980px) {
	.pl-image--center-mobile { text-align: center; }
	.pl-image--center-mobile .pl-image-wrap { margin-left: auto; margin-right: auto; }
}

.pl-blurb--left { text-align: left; }
.pl-blurb--center { text-align: center; }
.pl-blurb--right { text-align: right; }
.pl-blurb--icon-left, .pl-blurb--icon-right { display: flex; align-items: flex-start; gap: 16px; text-align: left; }
.pl-blurb--icon-right { flex-direction: row-reverse; }
.pl-blurb-content { flex: 1 1 auto; min-width: 0; }
.pl-blurb--icon-left .pl-blurb-icon, .pl-blurb--icon-right .pl-blurb-icon,
.pl-blurb--icon-left .pl-blurb-img, .pl-blurb--icon-right .pl-blurb-img { flex: 0 0 auto; margin-bottom: 0; }

.pl-button-icon { font-family: "ETmodules"; font-weight: normal; font-style: normal; line-height: 1; }
.pl-button-icon:first-child { margin-right: 8px; }
.pl-button-icon:last-child { margin-left: 8px; }
.pl-button--icon-left .pl-button-icon { margin-left: 0; margin-right: 8px; }
.pl-button--icon-right .pl-button-icon { margin-left: 8px; margin-right: 0; }

.pl-gallery-title, .pl-gallery-caption { display: block; line-height: 1.4; }
.pl-gallery-title { padding-top: 8px; font-weight: 600; }
.pl-gallery-caption { font-size: 13px; color: #64748b; }
.pl-slide--gallery { min-height: 0; }
.pl-slide--gallery .pl-gallery-item { display: block; width: 100%; height: 100%; margin: 0; }
.pl-slide--gallery .pl-gallery-item picture { display: block; width: 100%; height: 100%; }
.pl-slide--gallery .pl-gallery-item img { display: block; width: 100%; height: 100%; object-fit: cover; }

.pl-image--sticky { margin-bottom: 0; }

.pl-lightbox-caption {
	position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%);
	max-width: 80vw; text-align: center; color: #fff; line-height: 1.4;
}
.pl-lightbox-title { display: block; font-weight: 600; font-size: 16px; }
.pl-lightbox-desc { display: block; font-size: 14px; opacity: .8; }

/* Interruptor: colors obert/tancat del Divi. */
.pl-toggle-title {
	padding: 18px 20px;
	font-weight: 600;
	background: var(--pl-acc-closed-bg, #f7f7f7);
	color: var(--pl-acc-closed-color, inherit);
}
.pl-toggle.is-open > .pl-toggle-title {
	background: var(--pl-acc-open-bg, #fff);
	color: var(--pl-acc-open-color, inherit);
}
.pl-toggle-body { padding: 0 20px 18px; }
