/*
Theme Name: Guinadi
Theme URI: https://guinadi.it
Author: JJC
Description: Magazine touristique et guide local de Guinadi, dans la Valle del Verde.
Version: 1.3.0
Text Domain: guinadi
*/

:root {
  --ink: #17251f;
  --muted: #64736a;
  --cream: #f7f4ee;
  --paper: #fffdf8;
  --moss: #315544;
  --moss-dark: #203c30;
  --gold: #c4974f;
  --gold-ink: #876325;
  --line: rgba(23, 37, 31, .14);
  --shadow: 0 24px 60px rgba(23, 37, 31, .12);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: var(--sans); line-height: 1.7; }
.wp-site-blocks { min-height: 100vh; gap: 0; }
.wp-block-template-part { margin-block-start: 0; }
.wp-block-navigation__container { gap: clamp(8px, 1.1vw, 16px); }
.wp-block-navigation-item__content { color: inherit; }
.wp-block-site-title { margin: 0; }
.wp-block-site-logo { margin: 0; }
body > .wp-site-blocks > main#content { margin-block-start: 0; }
body > .wp-site-blocks > p:empty,
body > .wp-site-blocks > main#content > p:empty { display: none; }
body > .wp-site-blocks > .split-feature,
body > .wp-site-blocks > .quote-band { margin-block: 0; }
body > .wp-site-blocks > .site-header-part { position: fixed; inset: 0 0 auto; z-index: 60; min-height: 84px; color: #fff; background: linear-gradient(180deg, rgba(7, 19, 14, .86), rgba(7, 19, 14, 0)); }
body > .wp-site-blocks > .site-header-part > .brand-mark-fixed { position: absolute; top: 17px; left: max(24px, calc((100% - 1180px) / 2)); z-index: 2; display: block; width: 40px; height: 40px; line-height: 0; }
body > .wp-site-blocks > .site-header-part > .brand-mark-fixed img { display: block; width: 40px; height: 40px; object-fit: contain; }
body > .wp-site-blocks > .site-header-part > .wp-block-site-title { position: absolute; top: 17px; left: max(24px, calc((100% - 1180px) / 2)); display: flex; align-items: center; gap: 12px; width: auto; margin: 0 !important; padding: 0 !important; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .18em; line-height: 1.2; text-transform: uppercase; white-space: nowrap; }
body > .wp-site-blocks > .site-header-part > .wp-block-site-title::before { content: none; }
body > .wp-site-blocks > .site-header-part > .wp-block-site-title a { color: #fff; text-decoration: none; }
body > .wp-site-blocks > .site-header-part > .brand-text { position: absolute; top: 17px; left: max(76px, calc((100% - 1180px) / 2 + 52px)); display: flex !important; align-items: center; gap: 12px; width: auto; margin: 0 !important; padding: 0 !important; }
body > .wp-site-blocks > .site-header-part > .brand-text::before { content: none; display: none; }
body > .wp-site-blocks > .site-header-part > .brand-text a { color: #fff; text-decoration: none; }
body > .wp-site-blocks > .site-header-part > .primary-nav { position: absolute; top: 18px; right: max(244px, calc((100% - 1180px) / 2 + 220px)); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
body > .wp-site-blocks > .site-header-part > .primary-nav .wp-block-navigation__container { flex-wrap: nowrap; gap: 4px; }
body > .wp-site-blocks > .site-header-part > .primary-nav .mobile-only-nav-item { display: none; }
body > .wp-site-blocks > .site-header-part > .primary-nav .wp-block-navigation-item__content { padding: 7px 8px 8px; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.65); }
body > .wp-site-blocks > .site-header-part > .primary-nav .wp-block-navigation-item__content:hover { background: rgba(4,17,11,.42); }
body > .wp-site-blocks > .site-header-part > .language-switcher { position: absolute; top: 18px; right: max(24px, calc((100% - 1180px) / 2)); }
body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container.is-menu-open { background: linear-gradient(165deg, #244433 0%, #14271d 100%) !important; color: #fff !important; padding: 84px 28px 36px; }
body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; width: 100%; }
body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; flex-direction: column; align-items: stretch; gap: 0; }
body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(255,255,255,.10); }
body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container.is-menu-open .mobile-only-nav-item { display: list-item; }
body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 12px 0; color: rgba(255,255,255,.92) !important; font: 600 21px/1.15 var(--serif); letter-spacing: -.01em; text-shadow: none; }
body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container-close { top: 22px; right: 22px; color: #fff; }
body > .wp-site-blocks > .site-footer-part { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 16px 50px; padding: 65px max(24px, calc((100% - 1180px) / 2)) 28px; background: #142a20; color: #fff; }
body > .wp-site-blocks > .site-footer-part { position: relative; overflow: hidden; border-top: 1px solid rgba(240,205,132,.24); background: linear-gradient(145deg, #19372a 0%, #142a20 58%, #0d2118 100%); }
body > .wp-site-blocks > .site-footer-part::after { content: ""; position: absolute; right: -120px; bottom: -180px; width: 420px; height: 420px; border: 1px solid rgba(240,205,132,.10); border-radius: 50%; box-shadow: 0 0 0 28px rgba(240,205,132,.025), 0 0 0 58px rgba(240,205,132,.018); pointer-events: none; }
body > .wp-site-blocks > .site-footer-part > .footer-brand { position: relative; grid-column: 1; grid-row: 1; margin: 0; padding-left: 52px; color: #fff; font-family: var(--serif); font-size: 28px; }
body > .wp-site-blocks > .site-footer-part > .footer-brand::before { content: ""; position: absolute; top: -5px; left: 0; width: 40px; height: 40px; background: url("assets/guinadi-logo.svg") center / contain no-repeat; }
body > .wp-site-blocks > .site-footer-part > .footer-brand a { color: #fff; text-decoration: none; }
body > .wp-site-blocks > .site-footer-part > .footer-tagline { grid-column: 1; grid-row: 2; max-width: 350px; margin: 0; color: rgba(255,255,255,.64); font-size: 13px; }
body > .wp-site-blocks > .site-footer-part > .footer-explore-title,
body > .wp-site-blocks > .site-footer-part > .footer-useful-title { margin: 0; color: #fff; font-size: 18px; }
body > .wp-site-blocks > .site-footer-part > .footer-explore-title::after,
body > .wp-site-blocks > .site-footer-part > .footer-useful-title::after { content: ""; display: block; width: 28px; height: 2px; margin-top: 10px; background: var(--gold); }
body > .wp-site-blocks > .site-footer-part > .footer-explore-title { grid-column: 2; grid-row: 1; }
body > .wp-site-blocks > .site-footer-part > .footer-explore-nav { grid-column: 2; grid-row: 2; }
body > .wp-site-blocks > .site-footer-part > .footer-useful-title { grid-column: 3; grid-row: 1; }
body > .wp-site-blocks > .site-footer-part > .footer-useful-nav { grid-column: 3; grid-row: 2; }
body > .wp-site-blocks > .site-footer-part > .footer-explore-nav,
body > .wp-site-blocks > .site-footer-part > .footer-useful-nav { align-self: start; }
body > .wp-site-blocks > .site-footer-part > .footer-explore-nav .wp-block-navigation__container,
body > .wp-site-blocks > .site-footer-part > .footer-useful-nav .wp-block-navigation__container { display: grid; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
body > .wp-site-blocks > .site-footer-part > .footer-explore-nav .wp-block-navigation-item__content,
body > .wp-site-blocks > .site-footer-part > .footer-useful-nav .wp-block-navigation-item__content { position: relative; display: inline-flex; padding: 0; color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.45; text-decoration: none; transition: color .2s ease, transform .2s ease; }
body > .wp-site-blocks > .site-footer-part > .footer-explore-nav .wp-block-navigation-item__content::before,
body > .wp-site-blocks > .site-footer-part > .footer-useful-nav .wp-block-navigation-item__content::before { content: ""; width: 0; height: 1px; margin: 10px 8px 0 0; background: var(--gold); transition: width .2s ease; }
body > .wp-site-blocks > .site-footer-part > .footer-explore-nav .wp-block-navigation-item__content:hover,
body > .wp-site-blocks > .site-footer-part > .footer-useful-nav .wp-block-navigation-item__content:hover { color: #fff; transform: translateX(3px); }
body > .wp-site-blocks > .site-footer-part > .footer-explore-nav .wp-block-navigation-item__content:hover::before,
body > .wp-site-blocks > .site-footer-part > .footer-useful-nav .wp-block-navigation-item__content:hover::before { width: 16px; }
body > .wp-site-blocks > .site-footer-part > .footer-bottom-copy { grid-column: 1 / 3; margin: 20px 0 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.5); font-size: 11px; }
body > .wp-site-blocks > .site-footer-part > .footer-bottom-copy + .footer-bottom-copy { grid-column: 3; margin-top: 20px; border-top: 1px solid rgba(255,255,255,.16); text-align: right; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 60; color: #fff; background: linear-gradient(180deg, rgba(7, 19, 14, .86) 0%, rgba(7, 19, 14, .56) 72%, rgba(7, 19, 14, 0) 100%); backdrop-filter: saturate(125%) blur(5px); transition: background .35s ease, box-shadow .35s ease, backdrop-filter .35s ease; }
.site-header.is-scrolled { background: rgba(20, 42, 32, .92); backdrop-filter: saturate(140%) blur(8px); box-shadow: 0 10px 30px rgba(9, 20, 15, .28); }
.site-header.is-scrolled .nav-wrap { padding: 14px 0; }
.nav-wrap { width: min(1180px, calc(100% - 48px)); margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0; transition: padding .35s ease; }
.header-tail { display: flex; align-items: center; gap: 18px; }
.header-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 13px; border: 1px solid rgba(240,205,132,.72); border-radius: 3px; background: rgba(240,205,132,.16); color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; text-shadow: 0 1px 3px rgba(0,0,0,.55); transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.header-cta:hover, .header-cta:focus-visible { border-color: var(--gold); background: rgba(240,205,132,.26); transform: translateY(-1px); }
.brand { display: inline-flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.brand-mark { width: 40px; height: 40px; display: grid; place-items: center; }
.brand-logo { display: block; width: 40px; height: 40px; transition: transform .4s ease; }
.brand:hover .brand-logo { transform: rotate(-6deg) scale(1.04); }
.brand-text { font-weight: 800; letter-spacing: .18em; font-size: 11px; text-transform: uppercase; }
.primary-nav { display: flex; align-items: center; gap: clamp(8px, 1.1vw, 16px); font-size: 12px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.primary-nav ul { display: flex; align-items: center; gap: clamp(8px, 1.1vw, 16px); margin: 0; padding: 0; list-style: none; }
.primary-nav li { margin: 0; padding: 0; }
.primary-nav a { position: relative; color: #fff; text-decoration: none; padding: 7px 8px 8px; border-radius: 3px; text-shadow: 0 1px 3px rgba(0,0,0,.65); transition: color .2s ease, background .2s ease, text-shadow .2s ease; }
.primary-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1.5px; background: var(--gold); transition: right .28s ease; }
.primary-nav a:hover, .primary-nav a:focus-visible, .primary-nav a.is-current { color: #fff; background: rgba(4, 17, 11, .42); text-shadow: 0 1px 3px rgba(0,0,0,.85); }
.primary-nav a:hover::after, .primary-nav a.is-current::after { right: 0; }
.primary-nav .current-menu-item > a, .primary-nav .current_page_item > a { color: #fff; background: rgba(4, 17, 11, .42); }
.language-switcher { display: flex; align-items: center; gap: 6px; padding: 4px 7px; border: 1px solid rgba(91,145,108,.9); border-radius: 3px; background: rgba(4,17,11,.34); font-size: 11px; letter-spacing: .1em; text-shadow: 0 1px 3px rgba(0,0,0,.55); }
.language-switcher a { color: rgba(255,255,255,.86); text-decoration: none; padding: 4px; transition: color .2s ease, background .2s ease; }
.language-switcher a.active, .language-switcher a:hover { color: #fff; }

/* Bouton hamburger */
.nav-toggle { display: none; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.nav-toggle span { display: block; width: 24px; height: 2px; background: #fff; border-radius: 2px; transition: transform .3s ease, opacity .2s ease; }
body.nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
body.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Tiroir de navigation mobile */
.mobile-nav { position: fixed; inset: 0; z-index: 55; display: flex; flex-direction: column; justify-content: flex-start; padding: 84px 28px 36px; background: linear-gradient(165deg, #244433 0%, #14271d 100%); color: #fff; opacity: 0; visibility: hidden; transform: translateY(-10px); transition: opacity .32s ease, transform .32s ease, visibility .32s; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.mobile-nav.is-open { opacity: 1; visibility: visible; transform: none; }
.mobile-nav nav { display: flex; flex-direction: column; }
.mobile-nav nav ul { display: contents; margin: 0; padding: 0; list-style: none; }
.mobile-nav nav li { list-style: none; }
.mobile-nav nav a { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.10); color: rgba(255,255,255,.92); font: 600 21px/1.15 var(--serif); letter-spacing: -.01em; text-decoration: none; transition: color .2s ease, padding-left .25s ease; }
.mobile-nav nav a::after { content: "→"; color: var(--gold); font-family: var(--sans); font-size: 15px; opacity: 0; transform: translateX(-8px); transition: opacity .2s ease, transform .25s ease; }
.mobile-nav nav a:hover, .mobile-nav nav a:focus-visible { color: #fff; padding-left: 8px; }
.mobile-nav nav a:hover::after, .mobile-nav nav a.is-current::after { opacity: 1; transform: none; }
.mobile-nav nav a.is-current { color: var(--gold); }
.mobile-nav-lang { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 22px; padding-top: 4px; }
.mobile-nav-lang a { color: rgba(255,255,255,.6); font-size: 13px; font-weight: 700; letter-spacing: .04em; text-decoration: none; }
.mobile-nav-lang a.active { color: #fff; border-bottom: 2px solid var(--gold); padding-bottom: 2px; }
body.nav-open { overflow: hidden; }

/* Apparitions au défilement */
/*
 * The content must remain readable without JavaScript.  The old default
 * opacity:0 made Agenda and social cards disappear until IntersectionObserver
 * ran, which was especially fragile on mobile and in cached pages.
 */
.reveal, .reveal.is-visible { opacity: 1; transform: none; transition: none; }

/* Focus visible cohérent */
a:focus-visible, button:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 2px; }

.hero { min-height: 760px; display: flex; align-items: flex-end; padding: 160px 0 100px; color: #fff; background: linear-gradient(90deg, rgba(13,31,24,.88) 0%, rgba(13,31,24,.50) 48%, rgba(13,31,24,.12) 100%), url('/wp-content/uploads/2025/07/Borgo-di-Guinadi-Comune-Pontremoli-Localita-Lunigiana-World_2-Copertina.jpg') center/cover; }
.hero-inner { width: min(1180px, calc(100% - 48px)); margin: auto; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--gold-ink); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 34px; height: 1px; background: currentColor; }
.hero h1 { max-width: 800px; margin: 22px 0 18px; color: #fff; font: 600 clamp(56px, 9vw, 112px)/.87 var(--serif); letter-spacing: -.04em; }
.hero p { max-width: 570px; margin: 0; color: rgba(255,255,255,.85); font-size: 18px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border: 1px solid var(--moss); border-radius: 999px; background: var(--moss); color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); background: var(--moss-dark); }
.button-light { border-color: rgba(255,255,255,.55); background: transparent; }
.button-light:hover { background: rgba(255,255,255,.14); }
.hero-note { margin-top: 72px; display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.7); font-size: 12px; }
.hero-note span { width: 8px; height: 8px; border-radius: 50%; background: #d7b66b; box-shadow: 0 0 0 6px rgba(215,182,107,.14); }
.hero-scroll { display: inline-flex; align-items: center; gap: 10px; margin-top: 28px; color: rgba(255,255,255,.68); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.hero-scroll-line { display: inline-block; width: 32px; height: 1px; background: var(--gold); transition: width .25s ease; }
.hero-scroll:hover .hero-scroll-line, .hero-scroll:focus-visible .hero-scroll-line { width: 48px; }
#experience { scroll-margin-top: 96px; }

.intro { padding: 105px 0 70px; background: var(--paper); }
.container { width: min(1180px, calc(100% - 48px)); margin: auto; }
.intro-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 90px; align-items: end; }
.section-kicker { color: var(--gold-ink); font-size: 11px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
h2 { margin: 12px 0 20px; font: 600 clamp(42px, 6vw, 72px)/.95 var(--serif); letter-spacing: -.035em; }
h3 { margin: 0 0 12px; font: 600 32px/1 var(--serif); letter-spacing: -.02em; }
.lead { color: var(--muted); font-size: 18px; }
.intro-copy p { margin: 0 0 18px; }
.fact-stack { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); }
.fact { padding: 24px 18px 8px 0; border-bottom: 1px solid var(--line); }
.fact:nth-child(odd) { border-right: 1px solid var(--line); }
.fact:nth-child(even) { padding-left: 18px; }
.fact strong { display: block; margin-bottom: 3px; color: var(--moss); font: 600 38px/1 var(--serif); }
.fact span { color: var(--muted); font-size: 12px; }

.visit-overview { padding: 76px 0 86px; background: #eee9dd; border-top: 1px solid rgba(23,37,31,.08); border-bottom: 1px solid rgba(23,37,31,.08); }
.visit-overview-head { display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, .72fr); gap: 40px 80px; align-items: end; margin-bottom: 30px; }
.visit-overview-head .section-kicker { grid-column: 1 / -1; margin-bottom: -26px; }
.visit-overview-head h2 { margin-bottom: 0; }
.visit-overview-head p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.visit-overview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(23,37,31,.14); border-left: 1px solid rgba(23,37,31,.14); background: var(--paper); }
.visit-card { min-height: 286px; padding: 24px 22px 26px; border-right: 1px solid rgba(23,37,31,.14); border-bottom: 1px solid rgba(23,37,31,.14); color: inherit; text-decoration: none; transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.visit-card:hover, .visit-card:focus-visible { background: #fff; box-shadow: 0 16px 34px rgba(23,37,31,.10); transform: translateY(-2px); }
.visit-card > span { display: block; margin-bottom: 42px; color: var(--gold-ink); font: 700 34px/1 var(--serif); }
.visit-card h3 { margin: 0 0 13px; color: var(--moss-dark); font-size: 27px; line-height: 1.02; }
.visit-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.62; }

.section { padding: 100px 0; }
.section-dark { background: var(--moss-dark); color: #fff; }
.section-soft { background: #ece9e0; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 42px; }
.section-head p { max-width: 400px; margin: 0; color: var(--muted); }
.section-dark .section-head p, .section-dark .muted { color: rgba(255,255,255,.68); }
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.card-grid > br { display: none; }
.story-card { position: relative; display:block; min-height: 430px; overflow: hidden; border-radius: 4px; background: var(--moss); color:#fff; text-decoration:none; cursor:pointer; }
.story-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.02) 25%, rgba(0,0,0,.78) 100%); z-index: 1; }
.story-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.story-card:hover img { transform: scale(1.05); }
.story-card-body { position: absolute; left: 26px; right: 26px; bottom: 25px; z-index: 2; color: #fff; }
.story-card .tag { color: #e2c581; font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.story-card-title { display: block; margin-top: 8px; color: #fff; font: 600 34px/1 var(--serif); letter-spacing: -.02em; }
.story-card-description { display: block; margin: 0; color: rgba(255,255,255,.78); font-size: 13px; }
.story-card .arrow { display: inline-block; margin-top: 15px; color: #fff; font-size: 20px; text-decoration: none; transition: transform .25s ease; }
.story-card:hover .arrow, .story-card:focus-visible .arrow { transform: translate(3px, -3px); }
.story-card:focus-visible { outline: 3px solid #e2c581; outline-offset: 4px; }

.split-feature { display: grid; grid-template-columns: .92fr 1.08fr; min-height: 570px; }
.split-image { min-height: 450px; background: center/cover no-repeat; }
.split-feature .split-image { background-image: var(--guinadi-split-image) !important; }
.split-copy { display: flex; align-items: center; padding: 70px clamp(36px, 8vw, 110px); background: var(--moss); color: #fff; }
.split-copy .section-kicker { color: #e0be72; }
.split-copy p { color: rgba(255,255,255,.75); }
.split-copy ul { padding: 0; margin: 26px 0 32px; list-style: none; }
.split-copy li { padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.18); font-size: 14px; }
.split-copy li::before { content: "✦"; margin-right: 11px; color: #d9b56c; }
.quote-band { padding: 86px 0; text-align: center; background: var(--gold); color: #1f2c24; }
.quote-band blockquote { max-width: 800px; margin: auto; font: 500 clamp(32px, 5vw, 57px)/1 var(--serif); letter-spacing: -.03em; }
.quote-band cite { display: block; margin-top: 20px; font: normal 11px var(--sans); letter-spacing: .16em; text-transform: uppercase; }

.page-hero { padding: 190px 0 90px; color: #fff; background-color: var(--moss-dark); background-position: center 42%; background-size: cover; background-repeat: no-repeat; }
.page-hero h1 { max-width: 780px; margin: 16px 0 0; color: #fff; font: 600 clamp(54px, 8vw, 100px)/.9 var(--serif); letter-spacing: -.04em; }
.page-intro { max-width: 660px; margin: 22px 0 0; color: rgba(255,255,255,.82); font-size: 18px; }
.hero :is(h1,h2,h3,h4,h5,h6),
.page-hero :is(h1,h2,h3,h4,h5,h6),
.section-dark :is(h1,h2,h3,h4,h5,h6),
.split-copy :is(h1,h2,h3,h4,h5,h6),
.story-card :is(h1,h2,h3,h4,h5,h6),
.category-gallery :is(h1,h2,h3,h4,h5,h6),
.site-footer :is(h1,h2,h3,h4,h5,h6),
.site-header :is(h1,h2,h3,h4,h5,h6),
.mobile-nav :is(h1,h2,h3,h4,h5,h6) { color: #fff !important; }
.quote-band :is(h1,h2,h3,h4,h5,h6) { color: #1f2c24 !important; }
.hero .eyebrow, .page-hero .eyebrow, .section-dark .section-kicker, .split-copy .section-kicker { color: var(--gold) !important; }
.section-dark .section-head p, .section-dark .muted, .split-copy p, .category-gallery-copy p { color: rgba(255,255,255,.72) !important; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(240px, .5fr); gap: 70px; }
.article-content { font-size: 17px; }
.article-content h2 { margin-top: 52px; }
.article-content h2[id] { scroll-margin-top: 110px; }
.article-content h3 { margin-top: 34px; color: var(--moss); }
.article-content p { color: #46554c; }
.article-content a { color: var(--moss); font-weight: 700; }
.article-content a.button { color: #fff; }
.article-content ul { padding-left: 20px; color: #46554c; }
.article-content li { margin: 9px 0; }
.contact-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(360px, 1.2fr); gap: 60px; align-items: start; }
.contact-copy h2 { margin-top: 0; }
.contact-copy p { max-width: 520px; }
.contact-form { padding: 30px; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 14px 34px rgba(23,37,31,.06); }
.contact-field { margin-bottom: 18px; }
.contact-field label { display: block; margin-bottom: 7px; color: var(--moss-dark); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-field input, .contact-field textarea { display: block; width: 100%; border: 1px solid rgba(23,37,31,.22); border-radius: 2px; background: #fff; color: var(--ink); font: inherit; padding: 12px 14px; transition: border-color .2s ease, box-shadow .2s ease; }
.contact-field textarea { min-height: 170px; resize: vertical; }
.contact-field input:focus, .contact-field textarea:focus { border-color: var(--moss); outline: 0; box-shadow: 0 0 0 3px rgba(49,85,68,.14); }
.contact-form .button { border: 0; cursor: pointer; }
.contact-form .button:disabled { cursor: wait; opacity: .66; }
.contact-upload-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
.contact-upload-heading label { margin: 0; }
.contact-upload-heading > span { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-dropzone { position: relative; display: block; min-height: 94px; margin: 0; padding: 17px 18px; border: 1.5px dashed rgba(49,85,68,.35); border-radius: 5px; background: linear-gradient(135deg, rgba(245,242,234,.72), rgba(255,255,255,.98)); color: var(--moss-dark); font-size: inherit; font-weight: 400; letter-spacing: normal; text-transform: none; cursor: pointer; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease; }
.contact-dropzone:hover, .contact-dropzone:focus-visible, .contact-dropzone.is-dragging { border-color: var(--gold); background: #fffdf8; box-shadow: 0 10px 24px rgba(23,37,31,.08); outline: 0; transform: translateY(-1px); }
.contact-dropzone-icon { display: inline-grid; place-items: center; width: 43px; height: 43px; margin-right: 15px; border-radius: 50%; background: var(--moss); color: #fff; vertical-align: middle; }
.contact-dropzone-icon svg { width: 23px; height: 23px; }
.contact-dropzone-copy { display: inline-grid; gap: 3px; width: calc(100% - 64px); min-width: 0; vertical-align: middle; }
.contact-dropzone-copy strong { font-size: 14px; }
.contact-dropzone-copy > span { color: var(--muted); font-size: 12px; }
.contact-dropzone-action { display: inline-flex; align-items: center; gap: 4px; margin: 18px 0 0 58px; padding: 9px 12px; border: 1px solid rgba(49,85,68,.22); color: var(--moss); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.contact-dropzone-action span { color: var(--gold-ink); font-size: 15px; }
.contact-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.contact-upload-meta { display: flex; justify-content: space-between; gap: 14px; margin-top: 8px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.contact-file-status { min-height: 18px; margin-top: 11px; color: var(--moss); font-size: 12px; font-weight: 700; }
.contact-file-status.is-error { color: #a55b4f; }
.contact-file-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 2px; }
.contact-file-card { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.contact-file-preview { position: relative; display: grid; place-items: center; width: 56px; height: 56px; overflow: hidden; border-radius: 3px; background: var(--moss-dark); color: #fff; }
.contact-file-preview img, .contact-file-preview video { display: block; width: 100%; height: 100%; object-fit: cover; }
.contact-file-preview.is-video::after { content: '▶'; position: absolute; inset: 0; display: grid; place-items: center; color: #fff; background: rgba(17,39,31,.28); font-size: 16px; text-shadow: 0 1px 5px rgba(0,0,0,.25); }
.contact-file-info { min-width: 0; }
.contact-file-name { display: block; overflow: hidden; color: var(--ink); font-size: 11px; font-weight: 800; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.contact-file-size { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.contact-file-remove { display: grid; place-items: center; width: 27px; height: 27px; padding: 0; border: 1px solid rgba(23,37,31,.14); border-radius: 50%; background: transparent; color: var(--moss); cursor: pointer; font-size: 17px; line-height: 1; transition: background .18s ease, color .18s ease, border-color .18s ease; }
.contact-file-remove:hover, .contact-file-remove:focus-visible { border-color: #a55b4f; background: #a55b4f; color: #fff; outline: 0; }
.contact-notice { margin-bottom: 28px; padding: 16px 20px; border-left: 3px solid var(--gold); background: var(--paper); color: var(--moss-dark); font-weight: 700; }
.contact-notice-error { border-left-color: #a55b4f; }
.contact-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.article-aside { align-self: start; padding: 24px; border-top: 3px solid var(--gold); background: var(--paper); box-shadow: 0 12px 30px rgba(23,37,31,.06); }
.article-aside h3 { font-size: 27px; }
.article-aside p, .article-aside li { color: var(--muted); font-size: 13px; }
.article-aside ul { padding-left: 17px; }
.info-card { padding: 26px; border: 1px solid var(--line); background: var(--paper); }
.info-card + .info-card { margin-top: 16px; }
.info-card h3 { font-size: 29px; }
.info-card p { margin-bottom: 0; }
.transport-card { margin: 24px 0 30px; }
.transport-list { display: grid; gap: 12px; }
.transport-list p { display: grid; grid-template-columns: minmax(180px, .32fr) minmax(0, 1fr); gap: 14px; align-items: start; margin: 0; padding: 12px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 14px; line-height: 1.55; }
.transport-list p:first-child { border-top: 0; }
.transport-list strong { color: var(--moss-dark); font-weight: 800; }
.transport-list span { min-width: 0; }
.route-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 30px; }
.route-card { padding: 28px; border: 1px solid var(--line); background: var(--paper); }
.place-visit-brief { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 40px 0 46px; }
.place-visit-brief > div { padding: 18px; border-top: 3px solid var(--gold); background: #f5f1e8; }
.place-visit-brief span { display: block; margin-bottom: 9px; color: var(--moss); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.place-visit-brief strong { display: block; color: var(--moss-dark); font: 600 25px/1.05 var(--serif); }
.place-visit-brief p { margin: 9px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.place-map-card { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); min-height: 360px; overflow: hidden; margin: 52px 0 42px; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 18px 42px rgba(23,37,31,.10); }
.place-map-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 34px; background: var(--moss-dark); color: #fff; }
.place-map-copy .section-kicker { color: var(--gold); }
.place-map-copy h2 { margin: 14px 0 16px; color: #fff; font-size: clamp(34px, 4vw, 52px); }
.place-map-copy p { margin: 0 0 24px; color: rgba(255,255,255,.74); font-size: 14px; line-height: 1.65; }
.place-map-copy .button { margin-top: auto; }
.place-map-frame { min-height: 360px; background: #e7e1d4; }
.place-map-frame iframe { display: block; width: 100%; height: 100%; min-height: 360px; border: 0; filter: saturate(.78) contrast(.96); }
.quick-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 22px 0 34px; }
.quick-info-card { padding: 16px; border: 1px solid rgba(49,85,68,.12); background: #fffdf8; }
.quick-info-card span { display: block; margin-bottom: 7px; color: var(--moss-dark); font: 800 11px/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.quick-info-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.arrival-stack { display: grid; gap: 24px; margin: 34px 0; }
.arrival-panel { display: grid; grid-template-columns: minmax(0, .92fr) minmax(330px, 1.08fr); min-height: 390px; overflow: hidden; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 22px 54px rgba(23,37,31,.10); }
.arrival-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 4vw, 46px); }
.arrival-copy .number { color: var(--gold-ink); font: 700 clamp(44px, 6vw, 76px)/.82 var(--serif); letter-spacing: 0; }
.arrival-copy h3 { margin: 18px 0 14px; font: 700 clamp(34px, 4.8vw, 58px)/.9 var(--serif); color: var(--moss-dark); letter-spacing: 0; }
.arrival-copy p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.arrival-copy .place-facts { margin-top: 22px; }
.arrival-copy .fact-chip { border-radius: 3px; background: rgba(49,85,68,.08); }
.arrival-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.arrival-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 14px; border: 1px solid rgba(49,85,68,.24); background: #fff; color: var(--moss-dark); font: 800 11px/1.1 var(--sans); letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease; }
.arrival-actions a:hover, .arrival-actions a:focus-visible { border-color: var(--gold); background: var(--moss-dark); color: #fff; transform: translateY(-1px); }
.arrival-map { min-height: 390px; background: #e8e1d4; }
.arrival-map iframe, .arrival-leaflet-map { display: block; width: 100%; height: 100%; min-height: 390px; border: 0; filter: saturate(.78) contrast(.96); }
.arrival-leaflet-map { z-index: 0; }
.arrival-marker { display: grid; place-items: center; width: 28px !important; height: 28px !important; margin: -14px 0 0 -14px !important; border: 2px solid #fff; border-radius: 50%; background: var(--moss-dark); color: #fff; box-shadow: 0 4px 14px rgba(5,16,12,.34); font: 900 11px/1 var(--sans); }
.arrival-marker-airport { background: var(--gold); color: #142a20; }
.arrival-marker-station { background: #466f92; }
.arrival-marker-start { background: var(--moss); }
.arrival-marker-mobile { background: #f7fff2; color: var(--moss-dark); border-color: var(--moss); }
.arrival-marker-mobile2g { background: #f5f2ea; color: #6f6557; border-color: rgba(111,101,87,.55); }
.arrival-marker-village { width: 34px !important; height: 34px !important; margin: -17px 0 0 -17px !important; background: #142a20; color: var(--gold); font-size: 12px; }
.arrival-marker-church { width: 34px !important; height: 34px !important; margin: -17px 0 0 -17px !important; background: #142a20; color: #f0cd84; font-size: 12px; }
.telecom-subtitle { margin: 18px 0 10px; font: 800 12px/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--moss-dark); }
.arrival-panel-telecom .arrival-copy ul { margin: 18px 0 0; padding-left: 18px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.arrival-map .leaflet-popup-content { margin: 8px 10px; color: var(--moss-dark); font: 800 12px/1.3 var(--sans); }
.arrival-panel-air { grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr); }
.recipe-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.recipe-grid-complete { grid-template-columns: 1fr; gap: 24px; }
.recipe-card { position: relative; padding: 178px 28px 28px; border: 1px solid var(--line); background: var(--paper); }
.recipe-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 150px; background: var(--cream) center / cover no-repeat; }
.recipe-card:nth-child(1)::before { background-image: url('https://guinadi.it/wp-content/uploads/2026/07/cazzutei-guinadi.png'); background-position: 50% 52%; }
.recipe-card:nth-child(2)::before { background-image: url('https://guinadi.it/wp-content/uploads/2026/07/testaroli-pesto-pontremoli-commons.jpg'); background-position: 50% 54%; }
.recipe-card:nth-child(3)::before { background-image: url('https://guinadi.it/wp-content/uploads/2026/07/torta-erbi-lunigiana-visittuscany.jpg'); background-position: 50% 50%; }
.recipe-card:nth-child(4)::before { background-image: url('https://guinadi.it/wp-content/uploads/2026/07/padletti-castagne.jpg'); background-position: 50% 50%; }
.recipe-card h3 { margin: 8px 0 8px; font: 700 31px/1.05 var(--serif); color: var(--moss-dark); }
.recipe-card h4 { margin: 20px 0 6px; color: var(--moss); font: 800 11px/1.2 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.recipe-card p { margin: 0; }
.recipe-card ul, .recipe-card ol { padding-left: 20px; }
.recipe-card li { margin-bottom: 8px; color: #46554c; }
.recipe-card-complete { padding-bottom: 32px; }
.recipe-card-complete h4 { margin-top: 24px; }
.recipe-kicker { color: var(--gold-ink); font: 800 11px/1.2 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.recipe-meta { color: var(--moss); font: 700 12px/1.5 var(--sans); }
.recipe-note { margin-top: 18px !important; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; font-style: italic; }
.article-content.page-decouvrir .route-card { min-height: 330px; background-size: cover; background-position: center; color: #fff; position: relative; overflow: hidden; }
.article-content.page-decouvrir .route-card .number { display:block; width:max-content; margin-bottom:18px; background:transparent; color:#fff; font-family:var(--serif); font-weight:700; text-shadow:0 2px 3px #06120e,0 0 14px #06120e; }
.article-content.page-decouvrir .route-card h3 { color:#fff; background:transparent; font-family:var(--serif); font-weight:700; letter-spacing:.01em; text-shadow:0 2px 3px #06120e,0 0 14px #06120e; -webkit-text-stroke:.35px rgba(6,18,14,.72); }
.article-content.page-decouvrir .route-card p { margin-top:22px; color:#fff; background:transparent; font-family:var(--sans); font-weight:700; line-height:1.55; text-shadow:0 2px 3px #06120e,0 0 12px #06120e; -webkit-text-stroke:.2px rgba(6,18,14,.68); }
.article-content.page-decouvrir .route-card .place-facts { position: relative; z-index: 1; }
.article-content.page-decouvrir .fact-chip { background: rgba(5,16,12,.80); color: #fff; box-shadow: 0 1px 8px rgba(0,0,0,.35); }
.article-content.page-decouvrir .fact-chip b { color: #f0cd84; }
.article-content.page-decouvrir .route-card:nth-child(1) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/social-guinadi-sign.jpg'); background-position: 50% 56%; }
.article-content.page-decouvrir .route-card:nth-child(2) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/social-guinadi-stone-arch.jpg'); background-position: 50% 50%; }
.article-content.page-decouvrir .route-card:nth-child(3) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/social-guinadi-borgo-13.jpg'); background-position: 50% 46%; }
.article-content.page-decouvrir .route-card:nth-child(4) { background-image:linear-gradient(rgba(15,27,24,.72),rgba(15,27,24,.88)); background-color:var(--moss-dark); }
.article-content.page-decouvrir .route-card:nth-child(5) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/fiume-torrente-verde-cascade-01.jpg'); background-position: 50% 50%; }
.article-content.page-decouvrir .route-card:nth-child(6) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/social-guinadi-valley-view.jpg'); background-position: 50% 50%; }
.article-content.page-decouvrir .nature-grid .route-card:nth-child(1) { background-image: linear-gradient(rgba(15,27,24,.12), rgba(15,27,24,.38)), url('https://guinadi.it/wp-content/uploads/2026/07/lago-verde.webp'); }
.article-content.page-decouvrir .nature-grid .route-card:nth-child(2) { background-image: linear-gradient(rgba(15,27,24,.14), rgba(15,27,24,.46)), url('https://guinadi.it/wp-content/uploads/2026/07/cascata-farfara.webp'); background-position: 50% 48%; }
.article-content.page-decouvrir .nature-grid .route-card:nth-child(3) { background-image: linear-gradient(rgba(15,27,24,.12), rgba(15,27,24,.38)), url('https://guinadi.it/wp-content/uploads/2026/07/stretti-giaredo.webp'); }
.article-content.page-decouvrir .nature-grid .route-card:nth-child(4) { background-image: linear-gradient(rgba(15,27,24,.14), rgba(15,27,24,.46)), url('https://guinadi.it/wp-content/uploads/2026/07/passo-due-santi-zum-zeri.jpg'); background-position: 50% 52%; }
.article-content.page-alentours .route-card, .article-content.page-saveurs .route-card { min-height: 330px; background-size: cover; background-position: center; color: #fff; position: relative; overflow: hidden; }
.article-content.page-alentours .route-card h3, .article-content.page-saveurs .route-card h3 { color: #fff; text-shadow: 0 1px 12px rgba(0,0,0,.55); }
.article-content.page-alentours .route-card p, .article-content.page-saveurs .route-card p { color: rgba(255,255,255,.96); text-shadow: 0 1px 9px rgba(0,0,0,.55); }
.article-content.page-alentours .route-card .number, .article-content.page-saveurs .route-card .number { display: inline-block; padding: 5px 10px; background: rgba(5,16,12,.78); color: #f5cf78; }
.article-content.page-alentours .route-card h3, .article-content.page-saveurs .route-card h3 { display: inline; padding: 5px 9px; background: rgba(5,16,12,.78); box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.article-content.page-alentours .route-card p, .article-content.page-saveurs .route-card p { margin-top: 22px; padding: 10px 12px; background: rgba(5,16,12,.78); }
.article-content.page-alentours .route-grid-far .route-card:nth-child(1) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/ponticello-mestieri-borgo-visittuscany.jpg'); }
.article-content.page-alentours .route-grid-far .route-card:nth-child(2) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/carrara-marmo.jpg'); }
.article-content.page-alentours .route-grid-far .route-card:nth-child(3) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/lucca-mura.jpg'); }
.article-content.page-alentours .route-grid-far .route-card:nth-child(4) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/pisa-miracoli.jpg'); }
.article-content.page-alentours .route-grid-far .route-card:nth-child(5) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/cinqueterre-vernazza.jpg'); }
.article-content.page-saveurs .route-card:nth-child(1) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/testaroli-pesto-pontremoli-commons.jpg'); }
.article-content.page-saveurs .route-card:nth-child(2) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/torta-erbi-lunigiana-visittuscany.jpg'); background-position: 42% 50%; }
.article-content.page-saveurs .route-card:nth-child(3) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/padletti-castagne.jpg'); background-position: 50% 50%; }
.article-content.page-saveurs .route-card:nth-child(4) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/padletti-fleurs-courgette.jpg'); background-position: 50% 54%; }
.article-content.page-saveurs .route-card:nth-child(5) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/marocca-casola-visittuscany.jpg'); }
.article-content.page-saveurs .route-card:nth-child(6) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/civet-de-sanglier-polenta.jpg'); background-position: 50% 52%; }
.article-content.page-saveurs .route-card:nth-child(7) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/agnello-zeri-visittuscany.jpg'); background-position: 50% 62%; }
.article-content.page-saveurs .route-card:nth-child(8) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/miele-lunigiana-dop-vetrina.jpg'); }
.article-content.page-saveurs .route-card:nth-child(9) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/funghi-porcini-commons.jpg'); background-position: 50% 58%; }
.article-content.page-alentours .route-card .number, .article-content.page-saveurs .route-card .number { display:block; width:max-content; margin-bottom:18px; background:transparent; color:#fff; font-family:var(--serif); font-weight:700; text-shadow:0 2px 3px #06120e,0 0 14px #06120e; }
.article-content.page-alentours .route-card h3, .article-content.page-saveurs .route-card h3 { color:#fff; background:transparent; font-family:var(--serif); font-weight:700; letter-spacing:.01em; text-shadow:0 2px 3px #06120e,0 0 14px #06120e; -webkit-text-stroke:.35px rgba(6,18,14,.72); }
.article-content.page-alentours .route-card p, .article-content.page-saveurs .route-card p { margin-top:22px; color:#fff; background:transparent; font-family:var(--sans); font-weight:700; line-height:1.55; text-shadow:0 2px 3px #06120e,0 0 12px #06120e; -webkit-text-stroke:.2px rgba(6,18,14,.68); }
.article-content.page-alentours .route-card { min-height:330px; background-size:cover; background-position:center; color:#fff; position:relative; overflow:hidden; }
.article-content.page-alentours .route-card:nth-child(1) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/piagnaro-01.webp'); }.article-content.page-alentours .route-card:nth-child(2) { background-image:linear-gradient(rgba(15,27,24,.18),rgba(15,27,24,.54)),url('https://guinadi.it/wp-content/uploads/2026/07/groppodalosio-pont-medieval.jpg'); background-position:center 48%; }.article-content.page-alentours .route-card:nth-child(3) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('/wp-content/uploads/2026/07/sorano.jpg'); }.article-content.page-alentours .route-card:nth-child(4) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('/wp-content/uploads/2026/07/filetto.jpg'); }.article-content.page-alentours .route-card:nth-child(5) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('/wp-content/uploads/2026/07/cisa.jpg'); }.article-content.page-alentours .route-card:nth-child(6) { background-image:linear-gradient(rgba(15,27,24,.16),rgba(15,27,24,.52)),url('https://guinadi.it/wp-content/uploads/2026/07/arzelato-vallee-zeri.jpg'); background-position:center; }
.article-content.page-alentours .route-card:nth-child(7) { background-image:linear-gradient(rgba(15,27,24,.12),rgba(15,27,24,.42)),url('https://guinadi.it/wp-content/uploads/2026/07/cinqueterre-vernazza.jpg'); }
.article-content.page-alentours .heritage-grid .route-card:nth-child(1) { background-image:linear-gradient(rgba(15,27,24,.08),rgba(15,27,24,.38)),url('https://guinadi.it/wp-content/uploads/2026/07/piagnaro-01.webp'); }
.article-content.page-alentours .heritage-grid .route-card:nth-child(2) { background-image:linear-gradient(rgba(15,27,24,.08),rgba(15,27,24,.38)),url('https://guinadi.it/wp-content/uploads/2026/07/piagnaro-10.webp'); }
.article-content.page-alentours .heritage-grid .route-card:nth-child(3) { background-image:linear-gradient(rgba(15,27,24,.08),rgba(15,27,24,.38)),url('https://guinadi.it/wp-content/uploads/2026/07/filetto.jpg'); }
.article-content.page-alentours .heritage-grid .route-card:nth-child(4) { background-image:linear-gradient(rgba(15,27,24,.08),rgba(15,27,24,.38)),url('https://guinadi.it/wp-content/uploads/2026/07/sorano.jpg'); }
.route-card .number { color: var(--gold-ink); font: 600 42px/1 var(--serif); }
.route-card h3 { margin-top: 16px; }
.place-facts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; }
.fact-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; background: rgba(49,85,68,.10); color: var(--moss); font: 700 11px/1 var(--sans); letter-spacing: .03em; }
.fact-chip b { color: var(--gold-ink); font-weight: 800; }
/* Puces sur les cartes-photo (fond sombre) */
.article-content.page-alentours .route-card .place-facts,
.article-content.page-saveurs .route-card .place-facts { position: relative; z-index: 1; }
.article-content.page-alentours .fact-chip,
.article-content.page-saveurs .fact-chip { background: rgba(5,16,12,.80); color: #fff; box-shadow: 0 1px 8px rgba(0,0,0,.35); }
.article-content.page-alentours .fact-chip b,
.article-content.page-saveurs .fact-chip b { color: #f0cd84; }
.event-list { display: grid; gap: 14px; }
.page-agenda .event-list { gap: 16px; }
.editorial-directory { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
#infos-utiles, .article-content.page-guide-pratique [id] { scroll-margin-top: 104px; }
.editorial-card { display: block; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: inherit; text-decoration: none; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.editorial-card:hover, .editorial-card:focus-visible { border-color: var(--gold); box-shadow: 0 14px 30px rgba(23,37,31,.12); transform: translateY(-3px); }
.editorial-card-media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #d9d6cd; }
.editorial-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.editorial-card:hover .editorial-card-media img, .editorial-card:focus-visible .editorial-card-media img { transform: scale(1.04); }
.editorial-card-body { padding: 22px; }
.editorial-kicker { display: block; margin-bottom: 9px; color: var(--gold-ink); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.editorial-card h3 { margin: 0 0 10px; font-size: 28px; }
.editorial-card p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.editorial-card .place-facts { margin-top: 18px; }
.event-item { display: grid; grid-template-columns: 88px 104px minmax(0, 1fr) auto; gap: 22px; align-items: center; min-width: 0; padding: 18px 24px; border: 1px solid var(--line); background: var(--paper); color: inherit; text-decoration: none; transition: box-shadow .22s ease, border-color .22s ease, transform .22s ease; }
.event-item:hover { border-color: var(--gold); box-shadow: 0 12px 28px rgba(23,37,31,.10); transform: translateY(-2px); }
.event-item.no-thumb { grid-template-columns: 104px minmax(0, 1fr) auto; }
.event-thumb { width: 88px; height: 88px; object-fit: cover; border-radius: 4px; align-self: center; }
.event-item > div { min-width: 0; }
.event-item .event-tag::after { content: " ↗"; color: var(--gold-ink); opacity: 1; transition: opacity .2s ease; }
.event-item:hover .event-tag::after { opacity: 1; }
.event-date { color: var(--moss); font: 600 24px/1 var(--serif); }
.event-date small { display: block; margin-top: 5px; color: var(--gold-ink); font: 800 10px/1.2 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.event-item h3 { margin: 0 0 5px; font-size: 28px; line-height: 1.05; overflow-wrap: anywhere; }
.event-item p { margin: 0; color: var(--muted); font-size: 13px; }
.event-tag { color: var(--moss); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.agenda-note { padding: 20px 24px; border-left: 3px solid var(--gold); background: #eee9dd; color: var(--muted); font-size: 13px; }
.page-agenda > h2 { margin-top: 42px; }
.page-agenda .event-item { border-radius: 12px; box-shadow: 0 8px 22px rgba(23,37,31,.05); }
.page-agenda .event-item:hover { box-shadow: 0 14px 30px rgba(23,37,31,.12); }
.social-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.social-card { display: flex; align-items: flex-start; gap: 18px; padding: 27px; border: 1px solid var(--line); background: var(--paper); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.social-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.social-card > span:not(.social-icon) { display: block; min-width: 0; flex: 1 1 auto; }
.social-icon { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--moss); color: #fff; font-size: 20px; }
.social-card h3 { margin-bottom: 7px; font-size: 27px; line-height: 1.05; overflow-wrap: anywhere; }
.social-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.social-handle { display: inline-block; max-width: 100%; margin-top: 12px; color: var(--moss); font-size: 11px; font-weight: 800; letter-spacing: .08em; overflow-wrap: anywhere; text-transform: uppercase; }
.photo-grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; grid-auto-rows: 220px; gap: 12px; }
.photo-grid figure { position: relative; overflow: hidden; margin: 0; background: var(--moss); }
.photo-grid img, .place-preview-images img, .category-gallery-strip img { cursor: zoom-in; }
.guinadi-lightbox { position:fixed; z-index:99999; inset:0; display:grid; place-items:center; padding:28px; opacity:0; pointer-events:none; transition:opacity .22s ease; }
.guinadi-lightbox.is-open { opacity:1; pointer-events:auto; }
.lightbox-backdrop { position:absolute; inset:0; background:rgba(3,10,8,.78); backdrop-filter:blur(18px) saturate(1.05); }
.lightbox-shell { position:relative; width:min(1180px,100%); height:min(820px,calc(100vh - 56px)); display:grid; grid-template-rows:auto auto minmax(0,1fr); overflow:hidden; border:1px solid rgba(255,255,255,.18); border-radius:18px; background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.045)); box-shadow:0 36px 90px rgba(0,0,0,.45); transform:translateY(10px) scale(.985); transition:transform .22s ease; }
.guinadi-lightbox.is-open .lightbox-shell { transform:translateY(0) scale(1); }
.lightbox-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:58px; padding:10px 12px 10px 20px; color:#fff; background:rgba(5,16,12,.42); border-bottom:1px solid rgba(255,255,255,.12); }
.lightbox-meta { display:flex; align-items:center; gap:12px; min-width:0; }
.lightbox-actions { display:flex; align-items:center; gap:8px; }
.lightbox-cast-status { max-width:180px; overflow:hidden; color:rgba(255,255,255,.72); font-size:10px; font-weight:800; letter-spacing:.05em; opacity:0; transform:translateX(5px); transition:opacity .18s ease, transform .18s ease; white-space:nowrap; text-overflow:ellipsis; }
.lightbox-cast-status.is-visible { opacity:1; transform:translateX(0); }
.lightbox-cast-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:42px; padding:0 13px; border-radius:999px; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.lightbox-cast-button svg { width:18px; height:18px; fill:currentColor; }
.lightbox-cast-button:not(.is-ready) { color:rgba(255,255,255,.78); }
.lightbox-kicker { font-size:11px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; color:#f0cd84; }
.lightbox-count { color:rgba(255,255,255,.68); font-size:12px; font-weight:800; letter-spacing:.08em; }
.lightbox-thumbs { display:flex; align-items:center; justify-content:center; gap:7px; min-height:64px; padding:8px 18px; overflow-x:auto; background:rgba(5,16,12,.28); border-bottom:1px solid rgba(255,255,255,.10); scrollbar-width:thin; }
.lightbox-thumbs[hidden] { display:none; }
.lightbox-thumb { flex:0 0 52px; width:52px; height:44px; padding:2px; overflow:hidden; border:1px solid rgba(255,255,255,.18); border-radius:4px; background:rgba(255,255,255,.08); opacity:.64; cursor:pointer; transition:opacity .18s ease, border-color .18s ease, transform .18s ease; }
.lightbox-thumb:hover, .lightbox-thumb:focus-visible, .lightbox-thumb.is-active { border-color:#f0cd84; opacity:1; transform:translateY(-2px); outline:0; }
.lightbox-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.guinadi-lightbox figure { position:relative; min-width:0; min-height:0; margin:0; display:grid; grid-template-rows:minmax(0,1fr) auto; }
.lightbox-image-wrap { position:relative; min-width:0; min-height:0; display:grid; place-items:center; padding:22px; }
.guinadi-lightbox figure img { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; border-radius:8px; box-shadow:0 18px 48px rgba(0,0,0,.36); background:rgba(0,0,0,.16); }
.lightbox-image-wrap.is-loading::after { content:' '; position:absolute; width:28px; height:28px; border:2px solid rgba(255,255,255,.22); border-top-color:#f0cd84; border-radius:50%; animation:guinadi-spin .8s linear infinite; }
.lightbox-image-wrap.is-error::after { content:'Image indisponible'; position:absolute; padding:10px 14px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(5,16,12,.72); color:rgba(255,255,255,.78); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
@keyframes guinadi-spin { to { transform:rotate(360deg); } }
.guinadi-lightbox figcaption { min-height:48px; padding:0 24px 20px; color:rgba(255,255,255,.86); text-align:center; font-size:13px; font-weight:700; line-height:1.45; }
.guinadi-lightbox button { border:1px solid rgba(255,255,255,.16); color:#fff; background:rgba(255,255,255,.11); cursor:pointer; backdrop-filter:blur(12px); transition:background .18s ease, border-color .18s ease, color .18s ease; }
.guinadi-lightbox button:hover { background:#f0cd84; border-color:#f0cd84; color:#13221d; transform:none; }
.guinadi-lightbox button:focus-visible { outline:3px solid rgba(240,205,132,.55); outline-offset:3px; }
.lightbox-close { width:42px; height:42px; border-radius:999px; font-size:28px; line-height:1; }
.lightbox-nav { position:absolute; top:50%; z-index:2; display:flex; align-items:center; justify-content:center; width:48px; height:64px; padding:0 0 4px; border-radius:999px; transform:translateY(-50%) !important; font-size:44px; line-height:1; transition:background .18s ease, border-color .18s ease, color .18s ease; }
.guinadi-lightbox .lightbox-nav:hover, .guinadi-lightbox .lightbox-nav:focus-visible { transform:translateY(-50%) !important; }
.lightbox-prev { left:16px; }
.lightbox-next { right:16px; }
.lightbox-open { overflow:hidden; }
.photo-grid figure:first-child { grid-row: span 2; }
.photo-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.photo-grid figure:hover img { transform: scale(1.05); }
.photo-grid figcaption { position: absolute; left: 14px; bottom: 12px; z-index: 1; color: #fff; font-size: 11px; font-weight: 700; text-shadow: 0 1px 8px #000; }
.place-preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 24px; }
.place-preview { overflow: hidden; border: 1px solid var(--line); background: var(--paper); }
.place-preview-images { display: grid; grid-template-columns: 1.45fr 1fr; grid-template-rows: 128px 128px; gap: 4px; height: 260px; }
.place-preview-images img { width: 100%; height: 100%; object-fit: cover; }
.place-preview-images img:first-child { grid-row: span 2; }
.place-preview-copy { padding: 21px; }
.place-preview-copy h3 { font-size: 29px; }
.place-preview-copy p { margin: 0; color: var(--muted); font-size: 13px; }
.category-gallery-grid { display: grid; gap: 18px; margin-top: 28px; }
.category-gallery { display: grid; grid-template-columns: minmax(210px, .32fr) minmax(0, 1fr); gap: 18px; padding: 18px; border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.045); }
.article-content .category-gallery { margin: 34px 0 38px; border-color: rgba(17,39,31,.14); background: var(--moss-dark); }
.category-gallery-copy h3 { margin: 0 0 8px; color: #fff; font-size: 29px; }
.category-gallery-copy p { margin: 0; color: rgba(255,255,255,.68); font-size: 13px; }
.category-gallery-strip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(142px, 18%); gap: 8px; overflow-x: auto; padding: 0 0 8px; scrollbar-color: rgba(255,255,255,.32) transparent; }
.category-gallery-strip figure { position: relative; min-height: 132px; margin: 0; overflow: hidden; border-radius: 3px; background: rgba(255,255,255,.08); }
.category-gallery-strip img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.category-gallery-strip figure:hover img { transform: scale(1.05); }
.category-gallery-strip figcaption { position: absolute; left: 10px; right: 10px; bottom: 9px; z-index: 1; color: #fff; font-size: 10px; font-weight: 800; line-height: 1.25; text-shadow: 0 1px 8px #000; }
.map-card { overflow: hidden; margin: 38px 0; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 14px 34px rgba(23,37,31,.08); }
.map-card-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 21px 24px; }
.map-card-head h3 { margin: 0; font-size: 29px; }
.map-card-head a { color: var(--moss); font-size: 12px; font-weight: 800; white-space: nowrap; }
.map-frame { display: block; width: 100%; height: 330px; border: 0; filter: saturate(.82) contrast(.95); }
.place-single-section { padding-top: 54px; }
.place-single-content { min-width: 0; }
.place-feature-image { position: relative; min-height: 290px; margin: 0 0 34px; overflow: hidden; background: var(--cream); }
.place-feature-image img { display: block; width: 100%; max-height: 490px; object-fit: cover; }
.place-feature-image figcaption { position: absolute; right: 16px; bottom: 14px; left: 16px; color: #fff; font-size: 11px; font-weight: 800; text-shadow: 0 1px 8px #000; }
.place-facts-large { margin: 24px 0 34px; }
.place-story { margin-top: 32px; }
.place-story h2 { margin-top: 0; }
.place-single-content .place-map-card { display: block; min-height: 0; margin: 46px 0 48px; overflow: hidden; border: 1px solid rgba(17,39,31,.18); background: var(--moss-dark); box-shadow: 0 18px 38px rgba(23,37,31,.12); }
.place-map-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: 28px 30px 24px; }
.place-map-head > div { min-width: 0; }
.place-map-head .eyebrow { color: var(--gold); }
.place-map-head h2 { margin: 8px 0 8px; color: #fff; }
.place-map-head p { margin: 0; color: rgba(255,255,255,.68); font-size: 13px; }
.place-map-head .button { flex: 0 0 auto; white-space: nowrap; }
.place-map { min-height: 360px; background: #e8e1d4; }
.place-map .arrival-leaflet-map { display: block; width: 100%; height: 360px; min-height: 360px; border: 0; filter: saturate(.78) contrast(.96); }
.place-map .leaflet-popup-content { margin: 8px 10px; color: var(--moss-dark); font: 800 12px/1.3 var(--sans); }
.arrival-marker-place { background: var(--gold); color: var(--moss-dark); }
.map-disclaimer { margin: 0; padding: 12px 18px 15px; color: rgba(255,255,255,.58); font-size: 11px; }
.place-transport-grid { margin-top: 24px; }
.place-transport-grid .route-card { min-height: 0; padding: 24px; border-top: 3px solid var(--gold); background: var(--paper); }
.place-transport-grid .route-card h3 { margin: 12px 0 0; color: var(--moss-dark); font-size: 20px; line-height: 1.35; }
.transport-kicker { color: var(--moss); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.place-before-card { display: grid; grid-template-columns: minmax(190px, .7fr) minmax(0, 1.3fr); gap: 26px; align-items: start; margin-top: 48px; padding: 28px 30px; border: 1px solid var(--line); background: #eee9dd; }
.place-before-card h2 { margin: 7px 0 0; color: var(--moss-dark); }
.place-before-card p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.place-aside { position: sticky; top: 112px; }
.aside-fact { display: flex; justify-content: space-between; gap: 15px; padding: 13px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.aside-fact strong { color: var(--moss-dark); text-align: right; }
.place-aside .button { width: 100%; margin-top: 18px; }


.source-strip { padding: 28px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.source-strip a { color: var(--moss); font-weight: 700; }
.site-footer { padding: 65px 0 28px; background: #142a20; color: #fff; }
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 50px; padding-bottom: 45px; }
.site-footer h3 { font-size: 28px; }
.site-footer p { max-width: 350px; color: rgba(255,255,255,.64); font-size: 13px; }
.site-footer a { color: rgba(255,255,255,.76); text-decoration: none; font-size: 13px; }
.footer-links { display: grid; gap: 8px; align-content: start; }
.footer-widget-area .widget { display: grid; gap: 8px; }
.footer-widget-area .widget + .widget { margin-top: 18px; }
.footer-widget-area ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.footer-widget-area li { margin: 0; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.5); font-size: 11px; }

@media (max-width: 980px) {
  .primary-nav { display: none; }
  .nav-toggle { display: flex; }
  .header-cta { display: none; }
  .header-tail .language-switcher { display: none; }
  body > .wp-site-blocks > .site-header-part > .language-switcher { display: none; }
  body > .wp-site-blocks > .site-header-part > .primary-nav {
    top: 14px;
    right: 16px;
    display: block;
    width: auto;
    margin: 0;
  }
  body > .wp-site-blocks > .site-header-part > .primary-nav .wp-block-navigation__responsive-container-open {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 3px;
    background: rgba(4,17,11,.42);
    color: #fff;
    box-shadow: 0 6px 18px rgba(4,17,11,.22);
  }
  body > .wp-site-blocks > .site-header-part > .primary-nav .wp-block-navigation__responsive-container-open:hover,
  body > .wp-site-blocks > .site-header-part > .primary-nav .wp-block-navigation__responsive-container-open:focus-visible {
    border-color: var(--gold);
    background: rgba(4,17,11,.68);
  }
  body > .wp-site-blocks > .site-header-part > .primary-nav .wp-block-navigation__responsive-container-open svg {
    width: 24px;
    height: 24px;
  }
  body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container.is-menu-open {
    padding: 84px 20px 32px;
    overflow-x: hidden;
  }
  body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    padding-top: 0;
  }
  body > .wp-site-blocks > .site-header-part .wp-block-navigation__responsive-container-close {
    top: 14px;
    right: 16px;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 3px;
    background: rgba(4,17,11,.42);
  }
}
@media (max-width: 860px) {
  .intro-grid, .split-feature, .article-layout { grid-template-columns: 1fr; gap: 35px; }
  .visit-overview-head { grid-template-columns: 1fr; gap: 22px; }
  .visit-overview-head .section-kicker { grid-column: auto; margin-bottom: 0; }
  .visit-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-layout { grid-template-columns: 1fr; gap: 30px; }
  .recipe-grid { grid-template-columns: 1fr; }
  .arrival-panel, .arrival-panel-air { grid-template-columns: 1fr; }
  .arrival-map, .arrival-map iframe, .arrival-leaflet-map { min-height: 310px; }
  .hero { min-height: 690px; }
  .card-grid { grid-template-columns: 1fr 1fr; }
  .editorial-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .place-preview-grid { grid-template-columns: 1fr; }
  .place-map-head { align-items: start; flex-direction: column; }
  .place-map-head .button { width: 100%; }
  .place-before-card { grid-template-columns: 1fr; gap: 12px; }
  .place-aside { position: static; }
  .category-gallery { grid-template-columns: 1fr; }
  .story-card:last-child { grid-column: span 2; min-height: 330px; }
  .split-image { min-height: 330px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  body > .wp-site-blocks > .site-footer-part { grid-template-columns: 1fr 1fr; padding-left: 24px; padding-right: 24px; }
  body > .wp-site-blocks > .site-footer-part > .footer-brand,
  body > .wp-site-blocks > .site-footer-part > .footer-tagline { grid-column: 1 / -1; }
  body > .wp-site-blocks > .site-footer-part > .footer-explore-title { grid-column: 1; }
  body > .wp-site-blocks > .site-footer-part > .footer-explore-nav { grid-column: 1; }
  body > .wp-site-blocks > .site-footer-part > .footer-useful-title { grid-column: 2; }
  body > .wp-site-blocks > .site-footer-part > .footer-useful-nav { grid-column: 2; }
  .event-item, .event-item.no-thumb { grid-template-columns: 72px 100px 1fr; }
  .event-thumb { grid-row: span 2; width: 72px; height: 72px; }
  .event-item.no-thumb { grid-template-columns: 100px 1fr; }
  .event-tag { grid-column: 3; }
  .event-item.no-thumb .event-tag { grid-column: 2; }
}
@media (max-width: 560px) {
  .container, .nav-wrap, .hero-inner { width: min(100% - 32px, 1180px); }
  .nav-wrap { padding: 17px 0; }
  .brand-text { font-size: 9px; letter-spacing: .12em; }
  .language-switcher { margin-left: auto; }
  .hero { min-height: 620px; padding-bottom: 70px; background-position: 62% center; }
  .hero h1 { max-width: 100%; font-size: 63px; overflow-wrap: break-word; }
  .hero p, .page-intro { width: 100%; max-width: 100%; font-size: 15px; }
  .hero-actions { display: grid; grid-template-columns: 1fr; align-items: start; max-width: 340px; }
  .hero-actions .button { width: 100%; padding: 0 16px; text-align: center; }
  .hero-scroll { margin-top: 22px; }
  .section, .intro { padding: 70px 0; }
  .visit-overview { padding: 58px 0 64px; }
  .visit-overview-grid { grid-template-columns: 1fr; }
  .visit-card { min-height: 0; padding: 22px; }
  .visit-card > span { margin-bottom: 24px; }
  .section-head { display: block; }
  .section-head p { margin-top: 20px; }
  .card-grid, .route-grid { grid-template-columns: 1fr; }
  .editorial-directory { grid-template-columns: 1fr; }
  .story-card, .story-card:last-child { grid-column: auto; min-height: 380px; }
  .category-gallery { padding: 14px; }
  .category-gallery-strip { grid-auto-columns: minmax(174px, 74%); }
  .category-gallery-strip figure { min-height: 150px; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .footer-bottom { display: block; }
  .footer-bottom span { display: block; margin-top: 8px; }
  body > .wp-site-blocks > .site-footer-part { grid-template-columns: 1fr; gap: 14px; padding: 48px 16px 24px; }
  body > .wp-site-blocks > .site-footer-part > .footer-brand,
  body > .wp-site-blocks > .site-footer-part > .footer-tagline,
  body > .wp-site-blocks > .site-footer-part > .footer-explore-title,
  body > .wp-site-blocks > .site-footer-part > .footer-explore-nav,
  body > .wp-site-blocks > .site-footer-part > .footer-useful-title,
  body > .wp-site-blocks > .site-footer-part > .footer-useful-nav,
  body > .wp-site-blocks > .site-footer-part > .footer-bottom-copy,
  body > .wp-site-blocks > .site-footer-part > .footer-bottom-copy + .footer-bottom-copy { grid-column: 1; grid-row: auto; margin-top: 0; text-align: left; }
  body > .wp-site-blocks > .site-footer-part > .footer-bottom-copy { margin-top: 18px; }
  .event-item, .event-item.no-thumb { grid-template-columns: 1fr; gap: 10px; }
  .event-thumb { display: none; }
  .event-tag, .event-item.no-thumb .event-tag { grid-column: auto; }
  .page-agenda > h2 { margin-top: 32px; }
  .page-agenda .event-item { padding: 17px; border-radius: 10px; }
  .social-grid { grid-template-columns: 1fr; }
  .place-visit-brief { grid-template-columns: 1fr; margin: 30px 0 36px; }
  .place-map-card { margin: 38px 0 34px; }
  .place-map-head { padding: 24px 20px 20px; }
  .place-map-head h2 { font-size: 34px; }
  .place-map, .place-map .arrival-leaflet-map { min-height: 290px; height: 290px; }
  .place-feature-image { min-height: 210px; }
  .place-feature-image img { min-height: 210px; }
  .place-before-card { padding: 22px; }
  .social-card { gap: 14px; padding: 21px; }
  .social-icon { flex-basis: 40px; width: 40px; height: 40px; }
  .contact-form { padding: 22px; }
  .contact-dropzone { padding: 15px; }
  .contact-dropzone-action { margin-top: 18px; }
  .contact-upload-meta { display: grid; gap: 3px; }
  .contact-file-list { grid-template-columns: 1fr; }
  .transport-list p { grid-template-columns: 1fr; gap: 4px; }
  .quick-info-grid { grid-template-columns: 1fr; }
  .arrival-stack { gap: 18px; margin: 26px 0; }
  .arrival-copy { padding: 24px; }
  .arrival-copy h3 { font-size: 38px; }
  .arrival-actions a { width: 100%; }
  .arrival-map, .arrival-map iframe, .arrival-leaflet-map { min-height: 280px; }
  .photo-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; }
  .photo-grid figure:first-child { grid-column: span 2; grid-row: span 2; }
  .guinadi-lightbox { padding: 10px; }
  .lightbox-shell { height: calc(100vh - 20px); border-radius: 14px; }
  .lightbox-toolbar { min-height: 52px; padding-left: 14px; }
  .lightbox-cast-status { display:none; }
  .lightbox-cast-label { display:none; }
  .lightbox-cast-button { width:42px; padding:0; }
  .lightbox-image-wrap { padding: 14px 12px 10px; }
  .lightbox-thumbs { justify-content: flex-start; min-height: 56px; padding: 6px 12px; }
  .lightbox-thumb { flex-basis: 46px; width: 46px; height: 38px; }
  .guinadi-lightbox figcaption { min-height: 44px; padding: 0 16px 16px; font-size: 12px; }
  .lightbox-nav { top: auto; bottom: 68px; width: 44px; height: 44px; padding-bottom: 3px; font-size: 34px; transform:none !important; }
  .guinadi-lightbox .lightbox-nav:hover, .guinadi-lightbox .lightbox-nav:focus-visible { transform:none !important; }
  .lightbox-prev { left:18px; }
  .lightbox-next { right:18px; }
  .map-card-head { display: block; }
  .map-card-head a { display: inline-block; margin-top: 10px; }
  .map-frame { height: 280px; }
}
