body {
    background-color: #F7F5F0;
    color: #202221;
    font-family: 'Outfit', sans-serif;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Cormorant Garamond', serif;
}


@media (min-width: 768px) {
    .logo .md\:h-12 {
        height: 3.3rem;
    }
}




/* Glassmorphism utility */
.glass {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.4);
}

.glass-dark {
    background: rgba(32, 34, 33, 0.4);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Scroll Reveal Animation */
.reveal {
    opacity: 0;
    transform: translateY(50px);
    transition: all 1.2s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: opacity, transform;
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Ken Burns Hover */
.ken-burns {
    overflow: hidden;
}
.ken-burns img {
    transition: transform 1.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s ease-in-out, filter 1s ease;
}
.ken-burns:hover img {
    transform: scale(1.08);
}

/* Unboxed Image Filter */
.premium-img {
    filter: contrast(1.05) saturate(0.9);
}
.ken-burns:hover .premium-img {
    filter: contrast(1) saturate(1.1);
}

/* Smooth reveal for hero text */
.fade-up-hero {
    animation: fadeUpHero 1.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    opacity: 0;
    transform: translateY(30px);
}
@keyframes fadeUpHero {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.dissolve-hero {
    animation: dissolveHero 1.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    opacity: 0;
}
@keyframes dissolveHero {
    to {
        opacity: 1;
    }
}
.delay-100 { animation-delay: 0.1s; }

/* Black and White Map Filter */
.map-bw {
    filter: grayscale(100%);
    transition: filter 1s ease;
}
.map-bw:hover {
    filter: grayscale(20%);
}





/* Scrollbar personalitzat */
::-webkit-scrollbar {
    width: 10px;
}
::-webkit-scrollbar-thumb {
    background-color: #C4A265; /* Color heritage-gold */
    border: 2px solid #F7F5F0; /* Color heritage-bg */
    border-radius: 1rem;
}
::-webkit-scrollbar-track {
    background: #F7F5F0;
}

.delay-300 { animation-delay: 0.3s; }
.delay-500 { animation-delay: 0.5s; }


/* Sala (proposta): textures i detalls */
.tex-linen {
    background-color: #F7F5F0;
    background-image:
        radial-gradient(1200px 500px at 85% -10%, rgba(196,162,101,.16), transparent 60%),
        repeating-linear-gradient(0deg, rgba(32,34,33,.022) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(90deg, rgba(32,34,33,.016) 0 1px, transparent 1px 4px);
}
.tex-stone {
    background-color: #202221;
    background-image:
        radial-gradient(900px 420px at 15% 0%, rgba(196,162,101,.20), transparent 60%),
        radial-gradient(700px 400px at 100% 100%, rgba(196,162,101,.10), transparent 60%),
        repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 5px),
        repeating-linear-gradient(90deg, rgba(255,255,255,.018) 0 1px, transparent 1px 7px);
}
.ornament { display: flex; align-items: center; gap: 1rem; color: #C4A265; }
.ornament::before, .ornament::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, currentColor); opacity: .55; }
.ornament::after { transform: scaleX(-1); }
.ornament i { width: 26px; height: 32px; flex: none; background-color: currentColor; -webkit-mask: url('../img/s-stances.png') center / contain no-repeat; mask: url('../img/s-stances.png') center / contain no-repeat; }
.menu-leader { flex: 1; align-self: end; margin: 0 .75rem .45rem; border-bottom: 1px dotted rgba(196,162,101,.7); }
.outline-word { -webkit-text-stroke: 1px rgba(196,162,101,.35); color: transparent; }

/* Formulari de contacte (Contact Form 7) */
.cf-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 768px) { .cf-grid { grid-template-columns: 1fr 1fr; } .cf-wide { grid-column: 1 / -1; } }
.cf-field { display: block; }
.cf-label { display: block; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #5C635F; margin-bottom: .5rem; }
.cf-input { width: 100%; background: #fff; border: 1px solid rgba(196,162,101,.45); border-radius: 1rem; padding: .9rem 1rem; color: #202221; font-family: inherit; font-size: 1rem; transition: border-color .3s, box-shadow .3s; }
.cf-input:focus { outline: none; border-color: #C4A265; box-shadow: 0 0 0 3px rgba(196,162,101,.2); }
.cf-checks { margin-top: 1.75rem; display: grid; gap: .9rem; font-size: 14px; color: #5C635F; line-height: 1.6; }
.cf-checks .wpcf7-list-item { margin: 0; }
.cf-checks label { display: flex; gap: .75rem; align-items: flex-start; }
.cf-checks input[type="checkbox"] { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .25rem; accent-color: #C4A265; border-radius: .3rem; }
.cf-checks a { text-decoration: underline; }
.cf-submit { margin-top: 1.75rem; background: #202221; color: #fff; border: 0; border-radius: 1rem; padding: 1rem 2.5rem; font-weight: 500; letter-spacing: .05em; cursor: pointer; transition: opacity .3s; }
.cf-submit:hover { opacity: .85; }
.wpcf7 .wpcf7-not-valid-tip { color: #B65A46; font-size: 12px; margin-top: .35rem; display: block; }
.wpcf7 form .wpcf7-response-output { margin: 1.5rem 0 0; padding: .9rem 1.1rem; border-radius: 1rem; border: 1px solid rgba(196,162,101,.5); font-size: 14px; color: #202221; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #C4A265; background: rgba(196,162,101,.08); }
.wpcf7-spinner { margin-left: 1rem; }

/* Mòbil: botó de reserva fix a baix de tot; en tocar-lo es desplega la barra */
@media (max-width: 767px) {
    #bookingToggle { height: 56px; padding-bottom: env(safe-area-inset-bottom, 0px); box-sizing: content-box; box-shadow: 0 -6px 24px rgba(0,0,0,.12); }
    #floating-booking-bar {
        bottom: calc(56px + env(safe-area-inset-bottom, 0px) + .5rem) !important;
        opacity: 0 !important; pointer-events: none !important;
        transform: translate(-50%, 24px) !important;
        transition: opacity .35s ease, transform .45s cubic-bezier(.22,1,.36,1) !important;
        z-index: 60;
    }
    body.booking-open #floating-booking-bar { opacity: 1 !important; pointer-events: auto !important; transform: translate(-50%, 0) !important; }

    /* Reserva desplegada: camps més grans, una fila per camp (arribada, sortida, persones) */
    #floating-booking-bar { width: calc(100% - 1.5rem) !important; max-height: calc(100vh - 56px - 2rem); overflow-y: auto; }
    #floating-booking-bar .booking-form { grid-template-columns: 1fr !important; gap: .6rem !important; padding: 1rem !important; border-radius: 1.5rem !important; }
    #floating-booking-bar .booking-form > div { grid-column: 1 / -1 !important; padding: .85rem 1.1rem !important; gap: .85rem !important; min-height: 72px; }
    #floating-booking-bar .booking-form .material-symbols-outlined { font-size: 26px !important; }
    #floating-booking-bar .booking-form label { font-size: 12px !important; letter-spacing: .14em !important; margin-bottom: 2px; }
    #floating-booking-bar .booking-form input,
    #floating-booking-bar .booking-form select { font-size: 18px !important; min-height: 28px !important; }
    #floating-booking-bar .booking-form button[type="submit"] { grid-column: 1 / -1 !important; padding: 1.1rem 1rem !important; font-size: 13px !important; letter-spacing: .18em !important; border-radius: 1rem !important; }
    body.has-booking-toggle a[aria-label="Contacta per WhatsApp"] { bottom: calc(56px + env(safe-area-inset-bottom, 0px) + 1rem) !important; }
    body.has-booking-toggle #scrollToTopBtn { bottom: calc(56px + env(safe-area-inset-bottom, 0px) + 5rem) !important; }
    body.booking-open a[aria-label="Contacta per WhatsApp"], body.booking-open #scrollToTopBtn { opacity: 0 !important; pointer-events: none !important; }

    /* Sala: el botó de reserva també és fix a baix de tot */
    #floating-cta { bottom: 0 !important; left: 0 !important; right: 0 !important; transform: none !important; width: 100%; }
    #floating-cta a { width: 100%; padding: 0 !important; border-radius: 0 !important; border: 0 !important; background: #C4A265 !important; box-shadow: 0 -6px 24px rgba(0,0,0,.12) !important; backdrop-filter: none !important; }
    #floating-cta a > span:first-child { display: none; }
    #floating-cta a > span.bg-heritage-gold { width: 100%; text-align: center; border-radius: 0 !important; padding: 1.1rem 1rem calc(1.1rem + env(safe-area-inset-bottom, 0px)) !important; }
    body.has-cta a[aria-label="Contacta per WhatsApp"] { bottom: calc(56px + 1rem) !important; }
    body.has-cta #scrollToTopBtn { bottom: calc(56px + 5rem) !important; }
}

/* S de Stances sobre l'etiqueta daurada dels hero */
.hero-s { display: block; width: 34px; height: 42px; margin: 0 auto 1.1rem; background-color: #C4A265; -webkit-mask: url('../img/s-stances.png') center / contain no-repeat; mask: url('../img/s-stances.png') center / contain no-repeat; }

/* Mides de títols (md+) ajustades a mà. tailwind.css es genera: no s'hi ha d'editar. */
@media (min-width: 768px) {
    html .heading-hero { font-size: 4rem; }
    html .md\:\!text-6xl { font-size: 3.25rem !important; }
    html .md\:text-3xl { font-size: 1.5rem; }
    html .md\:text-6xl { font-size: 3.25rem; }
}

/* Entorn natural (portada) */
.ent { position: relative; overflow: hidden; }
.ent-word { position: absolute; left: -1.5rem; top: 5rem; font-size: 12rem; line-height: 1; pointer-events: none; user-select: none; }
.ent-wrap { position: relative; max-width: 80rem; margin: 0 auto; padding: 6rem 1.5rem; }
.ent-head { text-align: center; max-width: 52rem; margin: 0 auto 4.5rem; }
.ent-lead { margin-top: 2rem; font-size: 1.5rem; line-height: 1.38; color: #202221; }
.ent-split { display: grid; gap: 3.5rem; align-items: center; }
.ent-collage { position: relative; padding: 0 2.5rem 3rem 0; max-width: 32rem; margin: 0 auto; width: 100%; }
.ent-frame { position: absolute; inset: 1.25rem 3.25rem 1.75rem -1rem; border: 1px solid rgba(196,162,101,.65); border-radius: 1rem; pointer-events: none; }
.ent-img-a, .ent-img-b { position: relative; margin: 0; overflow: hidden; border-radius: 1rem; box-shadow: 0 30px 60px -28px rgba(0,0,0,.4); }
.ent-img-a { aspect-ratio: 3 / 4; z-index: 1; }
.ent-img-b { position: absolute; right: 0; bottom: 0; width: 56%; aspect-ratio: 4 / 3; z-index: 2; border: 6px solid #fff; }
.ent-img-a img, .ent-img-b img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: zoom-in; transition: transform 1.5s cubic-bezier(.25,1,.5,1); }
.ent-img-a:hover img, .ent-img-b:hover img { transform: scale(1.06); }
.ent-text p:first-child { margin-top: 0; }
.ent-text p { color: #5C635F; font-weight: 300; line-height: 1.85; font-size: 1.05rem; margin-bottom: 1.4rem; }
.ent-text strong { font-weight: 500; color: #202221; }
.ent-quote { margin: 2.25rem 0 0; padding: .25rem 0 .25rem 1.5rem; border-left: 3px solid #C4A265; font-size: 1.55rem; line-height: 1.38; font-style: italic; color: #202221; }
.ent-strip { margin: 5rem 0; display: grid; grid-template-columns: repeat(2, 1fr); background: #202221; border-radius: 1rem; overflow: hidden; box-shadow: 0 30px 70px -25px rgba(0,0,0,.6); outline: 1px solid rgba(196,162,101,.3); outline-offset: -1px; }
.ent-strip > div { padding: 1.5rem 1rem; text-align: center; border: 0 solid rgba(255,255,255,.15); border-width: 0 1px 1px 0; }
.ent-strip span { display: block; margin-bottom: .5rem; font-size: 12px; letter-spacing: .25em; text-transform: uppercase; color: #C4A265; }
.ent-strip strong { display: block; font-weight: 400; font-size: 1.5rem; line-height: 1.2; color: #fff; }
.ent-cards { display: grid; gap: 2rem; }
.ent-card { display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(196,162,101,.25); border-radius: 1rem; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.06); transition: transform .5s cubic-bezier(.22,1,.36,1), box-shadow .5s, border-color .5s; }
.ent-card:hover { transform: translateY(-6px); border-color: #C4A265; box-shadow: 0 30px 60px -30px rgba(0,0,0,.35); }
.ent-card-img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.ent-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.5s cubic-bezier(.25,1,.5,1); }
.ent-card-img img.crop-tl { position: absolute; top: 0; left: 0; width: 170%; height: auto; max-width: none; }
.ent-card:hover .ent-card-img img { transform: scale(1.07); }
.ent-card-icon { position: relative; z-index: 2; width: 3.5rem; height: 3.5rem; margin: -1.75rem 0 0 2rem; display: flex; align-items: center; justify-content: center; border-radius: 9999px; background: #202221; color: #C4A265; border: 3px solid #fff; box-shadow: 0 8px 20px -8px rgba(0,0,0,.5); }
.ent-card-body { padding: 1.1rem 2rem 2.25rem; }
.ent-num { display: block; margin-bottom: .4rem; font-size: 1rem; letter-spacing: .3em; color: #C4A265; }
.ent-title { margin-bottom: .75rem; font-size: 1.9rem; line-height: 1.15; font-weight: 400; color: #202221; }
.ent-card-body p { color: #5C635F; font-weight: 300; line-height: 1.75; }
@media (min-width: 768px) {
    .ent-word { font-size: 22rem; top: 4rem; }
    .ent-wrap { padding: 8rem 3rem; }
    .ent-lead { font-size: 1.9rem; }
    .ent-strip { grid-template-columns: repeat(4, 1fr); }
    .ent-strip strong { font-size: 1.75rem; }
    .ent-cards { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
    .ent-split { grid-template-columns: 5fr 7fr; gap: 6rem; align-items: start; }
    .ent-collage { margin: 0; }
}

/* Títol dels banners d'apartaments (Els nostres espais) */
.banner-title { font-size: 2rem; }
@media (min-width: 768px) { .banner-title { font-size: 2.5rem; } }

/* Mida md:text-4xl ajustada a mà (tailwind.css es genera i es perdria en compilar) */
@media (min-width: 768px) { html .md\:text-4xl { font-size: 1.5rem; line-height: 1.8rem; } }

/* Bloc de contacte sota les preguntes freqüents */
.faq-cta { max-width: 40rem; margin: 4.5rem auto 0; text-align: center; }
.faq-cta__icon { font-size: 3rem; color: #C4A265; margin-bottom: 1rem; }
.faq-cta__title { margin: 0 0 1rem; font-size: 2.25rem; line-height: 1.1; font-weight: 400; color: #202221; }
.faq-cta p { margin: 0 0 2rem; font-size: 1.1rem; font-weight: 300; line-height: 1.8; color: #5C635F; }
.faq-cta__btn { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; padding: 1rem 2rem; border-radius: 1rem; background: #202221; color: #fff; font-weight: 500; letter-spacing: .05em; transition: background-color .3s; }
.faq-cta__btn:hover { background: #C4A265; }
.faq-cta__btn .material-symbols-outlined { transition: transform .3s; }
.faq-cta__btn:hover .material-symbols-outlined { transform: translateX(.5rem); }
@media (max-width: 639px) { .faq-cta__btn { width: 100%; } }


/* Footer centrat a mòbil */
@media (max-width: 767px) {
    .site-footer { text-align: center; }
    .site-footer img { margin-left: auto; margin-right: auto; }
    .site-footer p { margin-left: auto; margin-right: auto; }
    .site-footer li.flex, .site-footer .flex.gap-6 { justify-content: center; }
}

/* Text del hero dels apartaments: una mica més avall */
.apt-hero-text { padding-top: 7rem; padding-bottom: 2.5rem; }
@media (min-width: 768px) { .apt-hero-text { padding-top: 7rem; padding-bottom: 2.5rem; } }

/* Pàgina de contacte: targetes en fila, xarxes i formulari */
.ct-cards { display: grid; gap: 1rem; grid-template-columns: 1fr; margin-bottom: 2.5rem; }
.ct-social { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; margin-bottom: 3rem; }
@media (min-width: 768px) { .ct-cards { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; } }

/* Instagram sobre fons fosc */
.ig-dark #sb_instagram .sbi_header_text h3,
.ig-dark #sb_instagram .sbi_bio,
.ig-dark #sb_instagram .sbi_bio_info,
.ig-dark #sb_instagram .sbi_header_text .sbi_bio,
.ig-dark #sb_instagram .sbi_header_link,
.ig-dark #sb_instagram .sbi_info,
.ig-dark #sb_instagram .sbi_caption { color: #fff !important; }

/* Paraula de fons "Instagram" */
.ig-word { position: absolute; right: -1.5rem; top: 1rem; font-size: 7rem; line-height: 1; white-space: nowrap; }
@media (min-width: 768px) { .ig-word { top: 2rem; font-size: 15rem; } }

/* Portada: línia de sostenibilitat sota el títol del hero */
.hero-eco { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1.25rem; font-size: .8rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.92); }
.hero-eco .material-symbols-outlined { font-size: 1.1rem; color: #C4A265; }

/* Apartaments: serveis sota petició */
.on-request { margin-top: 3rem; }
.on-request__grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.on-request__grid > div { display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem; border: 1px solid rgba(255,255,255,.15); border-radius: 1rem; color: rgba(255,255,255,.85); font-weight: 300; }
.on-request__grid .material-symbols-outlined { color: #C4A265; font-size: 30px; }
@media (min-width: 768px) { .on-request__grid { grid-template-columns: repeat(3, 1fr); } }

/* Pàgina 404 */
.nf { min-height: 100svh; display: flex; align-items: center; justify-content: center; }
.nf-word { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 22rem; line-height: 1; pointer-events: none; user-select: none; opacity: .55; }
.nf-wrap { position: relative; z-index: 2; max-width: 44rem; margin: 0 auto; padding: 9rem 1.5rem 5rem; text-align: center; }
.nf-key { display: flex; flex-direction: column; align-items: center; margin: 1.5rem 0 1rem; transform-origin: top center; animation: nfSwing 3.2s ease-in-out infinite; }
.nf-key__cord { display: block; width: 1px; height: 2.5rem; background: rgba(196,162,101,.7); }
.nf-key__tag { display: flex; align-items: center; justify-content: center; width: 5rem; height: 5rem; border-radius: 1rem; border: 1px solid rgba(196,162,101,.6); color: #C4A265; background: rgba(255,255,255,.04); }
@keyframes nfSwing { 0%, 100% { transform: rotate(-9deg); } 50% { transform: rotate(9deg); } }
.nf-title { margin: 1rem 0 1.25rem; font-size: 2.5rem; line-height: 1.08; font-weight: 400; color: #fff; }
.nf-text { margin: 0 auto 2.25rem; max-width: 36rem; font-weight: 300; font-size: 1.1rem; line-height: 1.8; color: rgba(255,255,255,.8); }
.nf-actions { display: flex; flex-wrap: wrap; gap: .85rem; justify-content: center; margin-bottom: 2.5rem; }
.nf-btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: 1rem 1.9rem; border-radius: 1rem; font-weight: 500; letter-spacing: .04em; transition: background-color .3s, color .3s, border-color .3s; }
.nf-btn--gold { background: #C4A265; color: #fff; }
.nf-btn--gold:hover { background: #fff; color: #202221; }
.nf-btn--gold .material-symbols-outlined { transition: transform .3s; }
.nf-btn--gold:hover .material-symbols-outlined { transform: translateX(.4rem); }
.nf-btn--ghost { border: 1px solid rgba(255,255,255,.35); color: #fff; }
.nf-btn--ghost:hover { border-color: #C4A265; color: #C4A265; }
.nf-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .6rem; }
.nf-links span { width: 100%; margin-bottom: .25rem; font-size: 11px; letter-spacing: .25em; text-transform: uppercase; color: rgba(255,255,255,.5); }
.nf-links a { padding: .45rem 1rem; border: 1px solid rgba(196,162,101,.4); border-radius: 9999px; font-size: .9rem; color: rgba(255,255,255,.85); transition: background-color .3s, color .3s; }
.nf-links a:hover { background: #C4A265; color: #fff; }
@media (min-width: 768px) { .nf-title { font-size: 3.5rem; } .nf-word { font-size: 34rem; } }
@media (prefers-reduced-motion: reduce) { .nf-key { animation: none; } }
@media (max-width: 767px) { .nf-btn { width: 100%; } }

/* Formulari de contacte: Cloudflare Turnstile sota el formulari, centrat */
.wpcf7 form.wpcf7-form { display: flex; flex-direction: column; }
.wpcf7 form.wpcf7-form > .hidden-fields-container { order: 0; }
.wpcf7 form.wpcf7-form > .cf-grid { order: 1; }
.wpcf7 form.wpcf7-form > .cf-checks { order: 2; }
.wpcf7 form.wpcf7-form > .wpcf7-submit { order: 3; align-self: flex-start; }
.wpcf7 form.wpcf7-form > .wpcf7-spinner { order: 4; align-self: flex-start; }
.wpcf7 form.wpcf7-form > .wpcf7-turnstile { order: 5; align-self: center; margin: 2rem 0 0; }
.wpcf7 form.wpcf7-form > .wpcf7-response-output { order: 6; }

/* Peu de pàgina: mapa web */
.footer-sitemap__sub { margin: .75rem 0 .25rem; padding-left: 1rem; border-left: 1px solid rgba(196,162,101,.35); display: grid; gap: .5rem; font-size: .95rem; }
@media (max-width: 767px) { .footer-sitemap__sub { padding-left: 0; border-left: 0; } }

/* Peu de pàgina: logos de sostenibilitat */
.footer-logos { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.5rem; }
.footer-logos a { display: inline-flex; align-items: center; border-radius: .6rem; overflow: hidden; opacity: .92; transition: opacity .3s, transform .3s; }
.footer-logos a:hover { opacity: 1; transform: translateY(-2px); }
.footer-logos img { display: block; height: 48px; width: auto; }
.footer-logos__bio { background: #fff; padding: .35rem .75rem; }
.footer-logos__bio img { height: 36px; }
@media (max-width: 767px) { .footer-logos { justify-content: center; } }

/* Mapes: Complianz embolcalla l'iframe; l'ocupem tot el contenidor perquè no es quedi estret */
.map-embed .cmplz-placeholder-parent,
.map-embed .cmplz-blocked-content-container,
.map-embed iframe { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; min-height: 0 !important; margin: 0 !important; }
.map-embed .cmplz-blocked-content-container { background-size: cover; background-position: center; }
.map-embed > a { z-index: 20; }

/* Política de cookies (Complianz): mateix estil que les pàgines legals */
#cmplz-document, #cmplz-document p, #cmplz-document li, #cmplz-document td, #cmplz-document span, #cmplz-document button, #cmplz-document label { font-size: 1.05rem !important; line-height: 1.85 !important; font-weight: 300 !important; }
#cmplz-document { color: #5C635F; }
#cmplz-document p { margin: 0 0 1.25rem !important; }
#cmplz-document h2 { font-family: 'Cormorant Garamond', serif !important; font-size: 1.875rem !important; line-height: 2.25rem !important; font-weight: 300 !important; color: #202221 !important; margin: 2.5rem 0 1rem !important; }
#cmplz-document h3, #cmplz-document h4 { font-family: 'Cormorant Garamond', serif !important; font-size: 1.5rem !important; line-height: 2rem !important; font-weight: 300 !important; color: #202221 !important; margin: 2rem 0 .75rem !important; }
#cmplz-document ul { list-style: disc; padding-left: 1.5rem; margin: 0 0 1.25rem; }
#cmplz-document a { text-decoration: underline; }
#cmplz-document strong, #cmplz-document b { font-weight: 500 !important; }

/* Plantilla de pàgines legals (privacitat, avís legal, cookies) */
.legal-content { max-width: 48rem; margin: 0 auto; padding: 4rem 1.5rem 6rem; color: #5C635F; font-weight: 300; font-size: 1.05rem; line-height: 1.85; }
@media (min-width: 768px) { .legal-content { padding: 6rem 3rem 7rem; } }
.legal-content p { margin: 0 0 1.25rem; }
.legal-content h2 { font-family: 'Cormorant Garamond', serif; font-size: 1.875rem; line-height: 2.25rem; font-weight: 300; color: #202221; margin: 2.5rem 0 1rem; }
.legal-content h3, .legal-content h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; line-height: 2rem; font-weight: 300; color: #202221; margin: 2rem 0 .75rem; }
.legal-content ul { list-style: disc; padding-left: 1.5rem; margin: 0 0 1.25rem; }
.legal-content a { text-decoration: underline; }
.legal-content strong, .legal-content b { font-weight: 500; }

/* TranslatePress: fem servir el selector d'idiomes de la franja superior, no el flotant */
.trp-floating-switcher, #trp-floater-ls { display: none !important; }

/* Mòbil: selector d'idioma desplegable al costat del menú (la franja superior només mostra el lema) */
.mobile-actions { display: flex; align-items: center; gap: .75rem; }
.lang-select { position: relative; display: inline-flex; align-items: center; }
.lang-select select { appearance: none; -webkit-appearance: none; background: transparent; border: 0; padding: .5rem 1.35rem .5rem .25rem; font-family: inherit; font-size: .95rem; font-weight: 500; color: #202221; cursor: pointer; outline: none; }
.lang-select::after { content: ''; position: absolute; right: .2rem; top: 50%; width: .42rem; height: .42rem; margin-top: -.32rem; border-right: 1.5px solid #202221; border-bottom: 1.5px solid #202221; transform: rotate(45deg); pointer-events: none; }
.lang-select select:focus-visible { outline: 1px solid #C4A265; outline-offset: 2px; border-radius: .4rem; }
@media (max-width: 767px) {
    #top-strip nav { display: none; }
    #top-strip > div { justify-content: center; }
    #top-strip > div > span { display: block !important; }
}
.lang-select .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
@media (min-width: 768px) { .mobile-actions { display: none !important; } }

/* Selector d'idioma mòbil: només la icona; el select natiu queda a sobre, invisible, i obre la llista en tocar-lo */
.lang-select { width: 44px; height: 44px; justify-content: center; }
.lang-select::after { display: none; }
.lang-select__icon { font-size: 28px; color: #202221; pointer-events: none; }
.lang-select select { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; opacity: 0; font-size: 16px; }
.lang-select__icon { font-size: 26px; font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24; }
.lang-select__icon--svg { width: 28px; height: 28px; font-size: 0; color: #202221; display: block; }

/* Portada, mòbil: la fulla sobre el text, tot centrat (el text pot ocupar dues línies) */
@media (max-width: 767px) {
    .hero-eco { flex-direction: column; justify-content: center; text-align: center; gap: .3rem; font-size: .72rem; letter-spacing: .16em; line-height: 1.5; max-width: 20rem; margin-left: auto; margin-right: auto; }
}
