
:root{
  --red:#bf060e; --red-dark:#bf060e; --ink:#252525; --muted:#6f6f6f;
  --paper:#fff; --warm:#f6f3ee; --line:#e8e3db; --blue:#3056d3; --purple:#ad2caf;
  --max:1180px; --radius:22px; --shadow:0 16px 40px rgba(0,0,0,.10);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block}.wrap{width:min(var(--max),calc(100% - 36px));margin:auto}.eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:var(--red)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(246,243,238,.96);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.06)}
.nav{height:112px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:18px;font-weight:850;letter-spacing:.02em;flex-shrink:0}.brand img{width:92px;height:92px;object-fit:contain}.brand-text{display:grid;line-height:.88;text-transform:uppercase}.brand-text small{font-size:1.72rem;letter-spacing:.035em;font-weight:900;color:var(--red);margin-bottom:5px}.brand-text strong{font-size:1.72rem;letter-spacing:.035em;font-weight:900;color:var(--ink)}.links{display:flex;align-items:center;gap:24px;font-size:.93rem;font-weight:700}.links a:hover{color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 19px;border-radius:999px;border:1px solid transparent;font-weight:800;cursor:pointer;transition:.2s}.btn-red{background:var(--red);color:white}.btn-red:hover{background:var(--red);transform:translateY(-1px);box-shadow:0 7px 18px rgba(191,6,14,.22)}.btn-white{background:white;color:var(--ink)}.btn-ghost{border-color:#d7d1c9;background:transparent}.btn-blue{background:var(--blue);color:#fff}.btn-purple{background:var(--purple);color:#fff}.btn.disabled{opacity:.45;pointer-events:none}
.menu-btn{display:none;background:none;border:0;font-size:1.6rem}
.hero{min-height:78vh;position:relative;display:grid;align-items:end;color:white;background:url('assets/hero-v29.webp') center 58%/cover no-repeat}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.63) 0%,rgba(0,0,0,.26) 48%,rgba(0,0,0,.05) 75%),linear-gradient(0deg,rgba(0,0,0,.35),transparent 48%)}.hero-content{position:relative;padding:88px 0 76px;max-width:750px}.hero-logo{width:150px;background:transparent;border-radius:0;padding:0;margin-bottom:25px;box-shadow:none;filter:drop-shadow(0 5px 12px rgba(0,0,0,.20))}.hero h1{font-size:clamp(3.2rem,8vw,7.3rem);line-height:.86;margin:0 0 18px;letter-spacing:-.055em;text-transform:uppercase}.hero p{font-size:clamp(1.15rem,2vw,1.45rem);max-width:660px;margin:0 0 28px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
section{padding:82px 0}.section-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:34px}.section-head h2{font-size:clamp(2.25rem,5vw,4rem);letter-spacing:-.045em;line-height:.98;margin:7px 0}.section-head p{color:var(--muted);font-size:1.05rem;margin:0}.intro{background:var(--warm)}.intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center}.intro-copy h2{font-size:clamp(2.4rem,5vw,4.4rem);line-height:.98;letter-spacing:-.05em;margin:8px 0 24px}.intro-copy p{font-size:1.08rem;color:#4f4f4f}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}.stat strong{display:block;font-size:2rem;color:var(--red)}.stat span{font-size:.9rem;color:var(--muted)}
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.mode-card{position:relative;border-radius:var(--radius);overflow:hidden;min-height:500px;color:#fff;box-shadow:var(--shadow)}.mode-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.mode-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.72),rgba(0,0,0,.04) 70%)}.mode-copy{position:absolute;z-index:2;left:28px;right:28px;bottom:28px}.mode-copy h3{font-size:2.2rem;margin:0 0 6px}.mode-copy p{margin:0 0 18px;max-width:520px}.tag{display:inline-block;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(8px);font-weight:800;font-size:.82rem;margin-bottom:10px}
.map-section{background:#151515;color:#fff}.map-tabs{display:flex;gap:10px;margin:0 0 22px;flex-wrap:wrap}.map-frame{background:#fff;border-radius:var(--radius);overflow:hidden}.map-frame img{display:block;width:100%;height:auto;transform:scale(1);transform-origin:center center;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.map-frame:hover img{transform:scale(1.45)}.map-legend{display:flex;gap:22px;align-items:center;margin-top:14px;color:#d9d9d9;font-size:.9rem}.legend-dot{width:26px;height:4px;border-radius:5px;display:inline-block;margin-right:7px;vertical-align:middle}.legend-main{background:#333}.legend-walk-var{background:var(--red)}.legend-bike-main{background:var(--blue)}.legend-bike-var{background:var(--purple)}
.story-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr;grid-template-rows:310px 310px;gap:14px}.story{position:relative;overflow:hidden;border-radius:18px}.story:first-child{grid-row:1/3}.story img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease;transform-origin:center center}.story:hover img{transform:scale(1.14)}.story-castle img{transform-origin:79% 50%}.story:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent 60%)}.story span{position:absolute;z-index:2;left:20px;bottom:16px;color:white;font-weight:850;font-size:1.05rem}
.cta{background:var(--red);color:#fff}.cta-box{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}.cta h2{font-size:clamp(2.5rem,5vw,4.6rem);line-height:.95;letter-spacing:-.05em;margin:8px 0 18px}.cta p{font-size:1.1rem;max-width:700px}.cta-actions{display:flex;justify-content:flex-end}
footer{background:#101010;color:#ddd;padding:48px 0}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(2,.8fr);gap:32px}.footer-logo{width:86px;background:transparent;border-radius:0;padding:0;margin-bottom:12px}.footer-title{font-weight:850;color:white}.foot-links{display:grid;gap:9px}.fine{color:#888;font-size:.82rem;margin-top:28px;border-top:1px solid #2a2a2a;padding-top:18px}
.page-hero{padding:70px 0 42px;background:var(--warm);border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(2.5rem,6vw,5rem);letter-spacing:-.05em;line-height:.95;margin:8px 0 12px}.page-hero p{max-width:750px;color:var(--muted);font-size:1.05rem}.form-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start}.side-card{position:sticky;top:110px;border-radius:20px;background:#171717;color:white;padding:28px}.side-card img{width:100px;background:transparent;border-radius:0;padding:0;margin-bottom:18px}.side-card h3{font-size:1.7rem;margin:0 0 8px}.side-card p{color:#cfcfcf}.prototype-note{border-left:4px solid #e6a300;background:#fff7dc;padding:13px 15px;border-radius:0 12px 12px 0;color:#604600;font-size:.92rem;margin-top:18px}.form-card{border:1px solid var(--line);border-radius:22px;padding:28px;background:white;box-shadow:0 10px 30px rgba(0,0,0,.05)}.form-card h2{margin-top:0}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label,.group-label{font-weight:800;font-size:.94rem}.field input,.field select,.field textarea{width:100%;padding:13px 14px;border:1px solid #d8d3cd;border-radius:12px;font:inherit;background:white}.options{display:flex;gap:12px;flex-wrap:wrap}.option{display:flex;gap:8px;align-items:center;border:1px solid #ddd7d0;border-radius:999px;padding:10px 13px}.check{display:flex;gap:9px;align-items:flex-start;font-size:.92rem;color:#505050}.check input{margin-top:4px}.form-actions{display:flex;gap:12px;margin-top:24px;align-items:center}.small{font-size:.85rem;color:var(--muted)}
.download-grid{display:grid;grid-template-columns:340px 1fr;gap:32px;align-items:start}.download-side{border:1px solid var(--line);border-radius:20px;padding:24px;position:sticky;top:110px}.download-main h2{font-size:2rem;margin-top:0}.pdf-card{border-radius:20px;background:var(--warm);padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.stage-list{display:grid;gap:10px}.stage{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:14px;padding:13px 14px}.stage-num{font-weight:900;color:var(--red);font-size:.86rem;text-transform:uppercase}.stage-title{font-weight:800}.stage.variant{background:#f4f7ff;border-color:#d7e1ff}.stage.variant .stage-num{color:var(--blue)}.stage.bike-variant{background:#fbf2fb;border-color:#efd5ef}.stage.bike-variant .stage-num{color:var(--purple)}
.policy{max-width:850px}.policy h2{margin-top:36px}.placeholder{background:rgba(191,6,14,.08);color:var(--red);padding:2px 5px;border-radius:5px;font-weight:800}
@media(max-width:880px){.links{display:none}.menu-btn{display:block}.links.open{display:flex;position:absolute;top:112px;left:0;right:0;background:white;flex-direction:column;align-items:flex-start;padding:20px 24px;border-bottom:1px solid #ddd}.hero{min-height:72vh}.section-head,.intro-grid,.cta-box,.form-wrap,.download-grid{grid-template-columns:1fr}.mode-grid{grid-template-columns:1fr}.story-grid{grid-template-columns:1fr 1fr;grid-template-rows:260px 230px 230px}.story:first-child{grid-column:1/-1;grid-row:auto}.cta-actions{justify-content:flex-start}.footer-grid{grid-template-columns:1fr 1fr}.side-card,.download-side{position:static}.fields{grid-template-columns:1fr}}
@media(max-width:560px){.wrap{width:min(100% - 24px,var(--max))}.nav{height:86px}.brand{gap:11px}.brand img{width:68px;height:68px}.brand-text small{font-size:1.18rem;letter-spacing:.035em;margin-bottom:4px}.brand-text strong{font-size:1.18rem}.hero-content{padding:70px 0 46px}.hero-logo{width:110px}.hero h1{font-size:3.4rem}.hero-actions .btn{width:100%}section{padding:60px 0}.stats{grid-template-columns:1fr 1fr}.mode-card{min-height:410px}.story-grid{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(5,240px)}.story:first-child{grid-column:auto}.footer-grid{grid-template-columns:1fr}.stage{grid-template-columns:1fr}.pdf-card{align-items:flex-start;flex-direction:column}.map-legend{align-items:flex-start;flex-direction:column;gap:8px}}

/* Registration page refinements — review v6 */
.form-card{padding:34px 36px 36px}
.form-card h2{font-size:2rem;letter-spacing:-.025em;margin-bottom:24px}
.fields{gap:20px 18px}
.field label,.group-label{line-height:1.3}
.field input:not([type="radio"]):not([type="checkbox"]),.field select,.field textarea{min-height:48px;border-color:#d9d4cd;transition:border-color .18s,box-shadow .18s,background .18s}
.field input:not([type="radio"]):not([type="checkbox"]):focus,.field select:focus,.field textarea:focus{outline:0;border-color:#b6ada2;box-shadow:0 0 0 4px rgba(191,6,14,.07)}
.route-choice{margin-top:4px}
.route-choice .group-label{margin-bottom:3px}
.options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.option{position:relative;display:flex;gap:12px;align-items:flex-start;border:1px solid #ddd7d0;border-radius:15px;padding:14px 15px;background:#fbfaf8;min-height:78px;cursor:pointer;transition:border-color .18s,box-shadow .18s,background .18s,transform .18s}
.option:hover{border-color:#c8c0b7;background:#fff;transform:translateY(-1px)}
.option:has(input:checked){border-color:var(--red);background:rgba(191,6,14,.045);box-shadow:0 0 0 3px rgba(191,6,14,.08)}
.option input[type="radio"]{appearance:auto;width:18px;height:18px;min-width:18px;margin:3px 0 0;padding:0;accent-color:var(--red);cursor:pointer}
.option span{display:grid;gap:2px;line-height:1.25}
.option strong{font-size:.96rem;color:#303030}
.option small{font-size:.8rem;color:var(--muted);font-weight:600}
.consent-box{display:grid;gap:0;border:1px solid #e1dcd5;border-radius:15px;background:#fbfaf8;padding:0;overflow:hidden;margin-top:2px}
.consent-title{font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;font-weight:850;color:#666;padding:12px 15px 9px;border-bottom:1px solid #e7e2dc}
.check{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:10px;align-items:start;padding:12px 15px;margin:0;font-size:.91rem;color:#4e4e4e;cursor:pointer;line-height:1.42}
.check+.check{border-top:1px solid #e7e2dc}
.check input[type="checkbox"]{appearance:auto;width:18px;height:18px;min-width:18px;margin:1px 0 0;padding:0;accent-color:var(--red);cursor:pointer}
.check span{display:block;margin:0;padding:0}
.check a{text-decoration:underline;text-underline-offset:2px;font-weight:750}
.check strong{font-weight:700;color:#6d6d6d}
.form-actions{margin-top:28px;padding-top:2px}
@media(max-width:880px){.form-card{padding:28px}.options{grid-template-columns:1fr}}
@media(max-width:560px){.form-card{padding:22px 18px}.check{padding:12px}.consent-title{padding-left:12px}.option{min-height:0}}
.legend-walk-var{background:var(--red)}

/* Legal / privacy refinements — review v7 */
.policy a{color:var(--red);text-decoration:underline;text-underline-offset:2px}
.policy h2{scroll-margin-top:135px}
.policy p{color:#4f4f4f}
.fine strong{color:#bdbdbd;font-weight:750}

/* Logo presentation — review v15
   Tutti i loghi visibili vengono ritagliati su un contorno circolare.
   Nell'intestazione resta il PNG trasparente; nelle altre sezioni resta il logo a fondo bianco. */
.brand img,
.hero-logo,
.footer-logo,
.side-card img,
.download-side img[src*="logo"]{
  border-radius:50%;
  aspect-ratio:1 / 1;
  object-fit:cover;
}

/* Brand red normalization — review v17
   All red text, solid red backgrounds and red UI tints derive from the logo red #BF060E. */

/* Route summary — review v20 */
.route-stats{margin:0 0 22px;padding:14px 18px;border:1px solid #3a3a3a;border-radius:16px;background:#1d1d1d;color:#d9d9d9;width:100%;max-width:none}
.route-stats p{margin:0;font-size:1rem;line-height:1.55;white-space:nowrap}
.route-stats strong{color:#fff;font-weight:850}

/* Route summary width — review v22 */
@media(max-width:880px){.route-stats p{white-space:normal}}

/* Esperienze dal Cammino Magnagati */
.experiences-section{padding:72px 0;background:#f7f2ec}
.experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:26px}
.experience-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:28px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.experience-quote{font-size:1.08rem;line-height:1.7;margin:0 0 24px;color:#262626}
.experience-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.92rem;color:#666}
.experience-meta strong{color:#111}
.experience-meta span:before{content:"·";margin-right:10px;color:#999}
.experience-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.feedback-btn{border-color:#BF060E;color:#BF060E;background:#fff}
.feedback-btn:hover{background:#BF060E;color:#fff}
.form-shell{max-width:820px;margin:0 auto;padding:56px 0 80px}
.form-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:30px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.form-field{display:flex;flex-direction:column;gap:7px}
.form-field.full{grid-column:1/-1}
.form-field label{font-weight:700;color:#222}
.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #d8d2cc;border-radius:10px;padding:12px 13px;font:inherit;background:#fff;color:#222}
.form-field textarea{min-height:160px;resize:vertical}
.form-note{font-size:.92rem;color:#666;line-height:1.55;margin-top:10px}
.form-actions{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:760px){.experience-grid,.form-grid{grid-template-columns:1fr}.experiences-section{padding:54px 0}.experience-card{padding:22px}.form-card{padding:22px}}

/* Feedback forms — review v27 */
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.feedback-consents{display:grid;gap:0;border:1px solid #e1dcd5;border-radius:15px;background:#fbfaf8;overflow:hidden;margin-top:20px}
.feedback-consents .check{padding:13px 15px}
.feedback-consents .check+.check{border-top:1px solid #e7e2dc}
.success-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:44px;box-shadow:0 12px 34px rgba(0,0,0,.06);text-align:center}
.success-card h1{font-size:clamp(2.1rem,5vw,3.8rem);letter-spacing:-.045em;line-height:1;margin:10px 0 18px}
.success-card p{max-width:620px;margin:0 auto 26px;color:var(--muted);font-size:1.05rem}
.success-mark{width:54px;height:54px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;margin:0 auto 22px;font-size:1.65rem;font-weight:900}


/* Ringraziamenti — review v28 */
.thanks-hero{padding-bottom:64px}
.thanks-section{padding-top:64px}
.thanks-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}
.thanks-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.thanks-photo,.thanks-photo-placeholder{width:150px;height:150px;border-radius:50%;object-fit:cover;display:grid;place-items:center;overflow:hidden}
.thanks-photo-placeholder{background:var(--warm);border:1px dashed #c9c1b8;color:#8c8177;font-size:.82rem;font-weight:850;letter-spacing:.12em}
.thanks-copy h3{font-size:1.45rem;margin:0 0 10px;letter-spacing:-.025em}
.thanks-copy p{margin:0;color:#555;line-height:1.65}
.thanks-placeholder{opacity:.84}
.thanks-note{margin:26px 0 0;color:var(--muted);font-size:.9rem}
@media(max-width:880px){.thanks-grid{grid-template-columns:1fr}}
@media(max-width:560px){.thanks-card{grid-template-columns:1fr;text-align:center}.thanks-photo,.thanks-photo-placeholder{width:132px;height:132px;margin:0 auto}.thanks-copy p{text-align:left}}

/* Gallerie territorio — review v30 */
.story{display:block}
.story:focus-visible{outline:3px solid var(--red);outline-offset:4px}
.story span:after{content:"  →";opacity:0;transform:translateX(-4px);display:inline-block;transition:.22s}
.story:hover span:after,.story:focus-visible span:after{opacity:1;transform:translateX(3px)}
.gallery-hero{padding:58px 0 34px;background:var(--warm);border-bottom:1px solid var(--line)}
.gallery-hero .back-link{display:inline-flex;align-items:center;gap:8px;color:var(--red);font-weight:800;margin-bottom:24px}
.gallery-hero h1{font-size:clamp(2.8rem,6vw,5.6rem);line-height:.92;letter-spacing:-.055em;margin:8px 0 18px}
.gallery-hero p{max-width:760px;color:var(--muted);font-size:1.08rem;margin:0}
.gallery-section{padding:54px 0 82px}
.photo-grid{columns:3 300px;column-gap:16px}
.photo-card{break-inside:avoid;margin:0 0 16px;border-radius:18px;overflow:hidden;background:#eee;position:relative;cursor:zoom-in;box-shadow:0 7px 22px rgba(0,0,0,.06)}
.photo-card img{width:100%;height:auto;transition:transform .45s ease}
.photo-card:hover img{transform:scale(1.035)}
.photo-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:36px 16px 13px;color:#fff;font-weight:750;font-size:.9rem;background:linear-gradient(transparent,rgba(0,0,0,.68));opacity:0;transition:.25s}
.photo-card:hover figcaption,.photo-card:focus-within figcaption{opacity:1}
.photo-card button{all:unset;display:block;width:100%;cursor:zoom-in}
.gallery-note{color:var(--muted);font-size:.9rem;margin-top:24px}
.lightbox{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;padding:30px}
.lightbox.open{display:flex}
.lightbox-inner{max-width:min(1500px,96vw);max-height:94vh;display:grid;gap:10px;justify-items:center}
.lightbox img{max-width:100%;max-height:86vh;object-fit:contain;border-radius:10px}
.lightbox-caption{color:#fff;text-align:center;font-weight:700}
.lightbox-close{position:fixed;top:20px;right:24px;border:0;background:rgba(255,255,255,.12);color:#fff;width:46px;height:46px;border-radius:50%;font-size:1.6rem;cursor:pointer}
@media(max-width:680px){.gallery-hero{padding-top:42px}.gallery-section{padding-top:34px}.photo-grid{columns:1}.photo-card figcaption{opacity:1}.lightbox{padding:14px}}

/* Paesaggi e animali — review v32 */
.story-grid{grid-template-rows:310px 310px 270px}
.story-landscape{grid-column:1/-1}
.story-landscape img{object-position:center 58%}
@media(max-width:880px){
  .story-grid{grid-template-rows:260px 230px 230px 250px}
  .story-landscape{grid-column:1/-1}
}
@media(max-width:560px){
  .story-grid{grid-template-rows:repeat(6,240px)}
  .story-landscape{grid-column:auto}
}


/* Gallerie territorio — review v33
   La fascia introduttiva resta visibile mentre scorrono le fotografie. */
.gallery-hero{
  position:sticky;
  top:112px;
  z-index:35;
  padding:24px 0 20px;
  box-shadow:0 7px 20px rgba(0,0,0,.045);
}
.gallery-hero .back-link{
  margin-bottom:8px;
  font-size:.88rem;
}
.gallery-hero .eyebrow{
  font-size:.7rem;
}
.gallery-hero h1{
  font-size:clamp(2rem,3.8vw,3.35rem);
  line-height:.96;
  margin:4px 0 9px;
  letter-spacing:-.045em;
}
.gallery-hero p{
  max-width:920px;
  font-size:.94rem;
  line-height:1.45;
}

/* Immagini leggermente più compatte: più fotografie visibili a colpo d'occhio. */
.gallery-section{
  padding:34px 0 72px;
}
.photo-grid{
  width:min(1040px,100%);
  margin:0 auto;
  columns:4 220px;
  column-gap:12px;
}
.photo-card{
  margin:0 0 12px;
  border-radius:14px;
  box-shadow:0 5px 16px rgba(0,0,0,.055);
}
.photo-card figcaption{
  font-size:.82rem;
  padding:30px 13px 10px;
}

@media(max-width:880px){
  .gallery-hero{top:112px;padding:20px 0 17px}
  .gallery-hero h1{font-size:clamp(1.9rem,5vw,2.7rem)}
  .gallery-hero p{font-size:.9rem}
  .photo-grid{columns:3 200px}
}
@media(max-width:560px){
  .gallery-hero{
    top:86px;
    padding:14px 0 12px;
  }
  .gallery-hero .back-link{
    margin-bottom:5px;
    font-size:.8rem;
  }
  .gallery-hero .eyebrow{font-size:.62rem}
  .gallery-hero h1{
    font-size:1.85rem;
    margin:3px 0 6px;
  }
  .gallery-hero p{
    font-size:.82rem;
    line-height:1.35;
    max-width:none;
  }
  .gallery-section{padding-top:22px}
  .photo-grid{columns:2 145px;column-gap:10px}
  .photo-card{margin-bottom:10px;border-radius:12px}
  .photo-card figcaption{font-size:.76rem;padding:26px 10px 8px}
}


/* Informazioni sul carattere ancora in evoluzione del Cammino — v35 */
.evolution-note{
  margin-top:34px;
  display:grid;
  grid-template-columns:52px 1fr;
  gap:20px;
  padding:24px 28px;
  background:#f6f0e8;
  border:1px solid rgba(191,6,14,.16);
  border-radius:20px;
  box-shadow:0 8px 28px rgba(0,0,0,.035);
}
.evolution-note .evolution-icon{
  width:46px;
  height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(191,6,14,.09);
  color:var(--red);
  font-size:1.35rem;
  font-weight:900;
}
.evolution-note .eyebrow{margin-bottom:5px}
.evolution-note h3{
  margin:0 0 10px;
  font-size:1.45rem;
  letter-spacing:-.025em;
}
.evolution-note p{
  margin:0;
  max-width:1050px;
  color:var(--muted);
  line-height:1.58;
}
.evolution-note p+p{margin-top:8px}

.route-prep{
  width:100%;
  margin:14px 0 18px;
  padding:18px 22px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:16px;
  background:rgba(255,255,255,.06);
  color:#f7f3ee;
}
.route-prep h3{
  margin:0 0 8px;
  color:#fff;
  font-size:1.08rem;
  letter-spacing:-.01em;
}
.route-prep p{
  margin:0;
  color:#ddd8d2;
  line-height:1.52;
  font-size:.94rem;
}
.route-prep p+p{margin-top:7px}
.route-prep strong{color:#fff}

@media(max-width:680px){
  .evolution-note{
    grid-template-columns:1fr;
    gap:10px;
    padding:20px;
  }
  .evolution-note .evolution-icon{width:40px;height:40px}
  .evolution-note h3{font-size:1.28rem}
  .evolution-note p{font-size:.92rem}
  .route-prep{padding:16px 17px}
  .route-prep p{font-size:.9rem}
}

/* Revisione v63 — gerarchia, percorsi, mappa, griglie e accessibilità */
:root{--focus:#ffbf47}
body{font-size:1rem}
.skip-link{position:fixed;left:12px;top:-80px;z-index:300;background:#fff;color:#111;padding:12px 16px;border-radius:10px;font-weight:850;box-shadow:var(--shadow)}
.skip-link:focus{top:12px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.eyebrow{font-size:.82rem}
.hero{min-height:calc(100vh - 112px)}
.hero-content{display:grid;grid-template-columns:170px minmax(0,1fr);column-gap:26px;align-items:end;max-width:900px}
.hero-logo{grid-column:1;grid-row:1/4;width:170px;margin:0}
.hero h1,.hero p,.hero-actions{grid-column:2}
.hero h1{font-size:clamp(3.2rem,7.4vw,6.9rem)}
.hero-actions .btn{min-height:50px}
.route-overview{padding:0;background:#101010;color:#fff}
.route-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#444}
.route-overview-card{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:18px;row-gap:3px;background:#171717;padding:24px 34px;transition:.2s}
.route-overview-card:hover{background:#242424}
.route-overview-label{grid-column:1/-1;color:#ddd;font-weight:800;text-transform:uppercase;letter-spacing:.13em;font-size:.78rem}
.route-overview-card strong{font-size:2rem;letter-spacing:-.03em}
.route-overview-card>span:last-child{color:#c8c8c8}
.route-overview-walk{border-top:4px solid var(--red)}
.route-overview-bike{border-top:4px solid var(--blue)}
.project-note{background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:0 12px 32px rgba(0,0,0,.05)}
.project-note img{width:82px;height:82px;border-radius:50%;object-fit:cover;margin-bottom:14px}
.project-note h3{font-size:1.6rem;margin:0 0 10px}
.project-note p{color:var(--muted);margin:0}.project-note p+p{margin-top:10px}
.mode-card{min-height:620px}
.mode-card:after{background:linear-gradient(0deg,rgba(0,0,0,.88),rgba(0,0,0,.08) 78%)}
.mode-copy h3{font-size:clamp(1.85rem,3vw,2.45rem)}
.mode-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}
.mode-facts div{border-top:1px solid rgba(255,255,255,.32);padding-top:9px}
.mode-facts dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.09em;color:#ddd;font-weight:750}
.mode-facts dd{margin:2px 0 0;font-weight:850;font-size:.96rem}
.mode-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn-outline-light{border-color:rgba(255,255,255,.72);color:#fff;background:rgba(0,0,0,.12)}
.btn-outline-light:hover{background:#fff;color:#111}
.map-section .section-head{align-items:end}.map-section .eyebrow{color:#ff4b51}
.map-frame{border-radius:18px;position:relative}.map-frame img,.map-frame:hover img{transform:none;transition:none}
.map-expand{position:absolute;right:16px;bottom:16px;border:0;border-radius:999px;background:rgba(17,17,17,.9);color:#fff;padding:11px 16px;font:inherit;font-size:.9rem;font-weight:800;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.route-map-legend{background:rgba(255,255,255,.94)}
.map-modal{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.94);padding:72px 24px 24px;overflow:auto;align-items:center;justify-content:center}
.map-modal.open{display:flex}.map-modal img{max-width:none;width:min(1600px,95vw);height:auto;background:#fff;border-radius:12px}
.map-modal-close{position:fixed;right:20px;top:16px;width:48px;height:48px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:#222;color:#fff;font-size:1.8rem;cursor:pointer}.modal-open{overflow:hidden}
.route-prep{margin-top:18px}
.story-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,260px);gap:16px}
.story:first-child,.story-landscape{grid-column:auto;grid-row:auto}.story{aspect-ratio:1/1;border-radius:18px}.story img{object-position:center}.story-cats img{object-position:center 42%}
.story:after{background:linear-gradient(0deg,rgba(0,0,0,.68),transparent 62%)}.story span{font-size:1rem;left:18px;bottom:15px}
.experience-invite{display:grid;grid-template-columns:1.25fr .75fr;gap:50px;align-items:center}.experience-invite h2{font-size:clamp(2.2rem,4.8vw,4rem);line-height:1;letter-spacing:-.045em;margin:8px 0 18px}.experience-invite p{color:var(--muted);max-width:700px;font-size:1.05rem}.experience-invite .experience-actions{justify-content:flex-end;margin:0}
.cta .eyebrow{color:#fff}
.gallery-hero{position:relative;top:auto;padding:34px 0 26px}.gallery-hero h1{font-size:clamp(2.3rem,4.8vw,4rem)}.gallery-section{padding-top:34px}
.lightbox-counter{color:#fff;font-weight:750;font-size:.9rem}
.download-all{margin:0 0 26px;padding:22px;border:1px solid #d9e1f7;border-radius:18px;background:#f4f7ff;display:flex;gap:20px;justify-content:space-between;align-items:center}.download-all h2{margin:0 0 4px}.download-all p{margin:0;color:var(--muted)}
@media(max-width:880px){.hero-content{grid-template-columns:125px 1fr}.hero-logo{width:125px}.story-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:none}.story{min-height:240px}.experience-invite{grid-template-columns:1fr}.experience-invite .experience-actions{justify-content:flex-start}.map-modal img{width:1200px;max-width:none}.route-overview-card{grid-template-columns:1fr;padding:22px}}
@media(max-width:560px){.hero{min-height:calc(100vh - 86px);background-position:61% center}.hero-content{display:block;padding:55px 0 42px}.hero-logo{width:96px;margin-bottom:18px}.hero h1{font-size:3.15rem}.hero p{font-size:1.05rem}.route-overview-grid{grid-template-columns:1fr}.route-overview-card{grid-template-columns:auto 1fr;padding:18px 20px}.route-overview-label{grid-column:1/-1}.mode-card{min-height:570px}.mode-copy{left:20px;right:20px;bottom:20px}.mode-facts{grid-template-columns:1fr 1fr}.mode-facts div:last-child{grid-column:1/-1}.mode-actions .btn{width:100%}.story-grid{grid-template-columns:1fr 1fr;grid-template-rows:none}.story{min-height:0;aspect-ratio:1/1}.story span{font-size:.9rem;left:13px;bottom:12px}.map-expand span{display:none}.route-map-legend{font-size:.72rem}.gallery-hero p{display:block}.photo-grid{columns:2 140px}.download-all{align-items:flex-start;flex-direction:column}.cta-box{gap:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}


/* Mappe percorso e indicazione del senso orario — review v36 */
.map-frame{
  position:relative;
}
.map-direction-arrow{
  position:absolute;
  left:50%;
  top:50%;
  width:180px;
  height:180px;
  transform:translate(-50%,-50%);
  z-index:4;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transition:opacity .22s ease, visibility .22s ease;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.38));
}
.map-direction-arrow svg{
  display:block;
  width:100%;
  height:100%;
  transform-origin:50% 50%;
}
.map-frame.route-selected:hover .map-direction-arrow{
  opacity:.94;
  visibility:visible;
}
.map-frame.route-selected:hover .map-direction-arrow svg{
  animation:magnagati-clockwise 3.2s linear infinite;
}
@keyframes magnagati-clockwise{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
@media (prefers-reduced-motion: reduce){
  .map-frame.route-selected:hover .map-direction-arrow svg{
    animation:none;
  }
}
@media(max-width:680px){
  .map-direction-arrow{
    width:118px;
    height:118px;
  }
}


/* Rifinitura mappa — review v37 */
.map-direction-arrow{
  width:148px;
  height:148px;
}
@media(max-width:680px){
  .map-direction-arrow{
    width:98px;
    height:98px;
  }
}


/* Proposta freccia direzionale ampia ma leggibile — review v39 */
.map-direction-arrow{
  width:360px;
  height:360px;
  opacity:0;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.32));
}
.map-direction-arrow .direction-arc{
  opacity:.72;
}
.map-frame.route-selected:hover .map-direction-arrow{
  opacity:.78;
}
.map-frame.route-selected:hover .map-direction-arrow svg{
  animation:magnagati-clockwise 5s linear infinite;
}
@media(max-width:900px){
  .map-direction-arrow{
    width:300px;
    height:300px;
  }
}
@media(max-width:680px){
  .map-direction-arrow{
    width:210px;
    height:210px;
  }
}


/* I gatti del Cammino — review v41 */
.story-cats{grid-column:1/-1}
.story-cats img{object-position:center 54%}
.cats-gallery-action{
  width:min(1040px,100%);
  margin:0 auto 26px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px 22px;
  border:1px solid #e1dcd5;
  border-radius:16px;
  background:#fbfaf8;
}
.cats-gallery-action div{display:grid;gap:4px}
.cats-gallery-action strong{font-size:1.05rem}
.cats-gallery-action span{color:var(--muted);font-size:.92rem}
.cats-back{display:inline-flex;margin-bottom:18px;color:var(--red);font-weight:800}
.cats-form-intro{max-width:850px;color:var(--muted);font-size:1.02rem;margin-bottom:26px}
.field-help{color:var(--muted);font-size:.82rem}
.form-field input[type="file"]{padding:10px;background:#fbfaf8}
.cats-thanks{max-width:760px;margin:40px auto}
.cats-thanks h1{margin-top:6px}
@media(max-width:880px){
  .story-cats{grid-column:1/-1}
}
@media(max-width:680px){
  .cats-gallery-action{align-items:flex-start;flex-direction:column}
  .cats-gallery-action .btn{width:100%;text-align:center}
}
@media(max-width:560px){
  .story-grid{grid-template-rows:repeat(7,240px)}
  .story-cats{grid-column:auto}
}


/* Home — griglia "Non solo un percorso" più omogenea, review v42 */
.story-cats{
  grid-column:auto;
}
.story-cats img{
  object-position:center 54%;
}
@media(max-width:880px){
  .story-cats{
    grid-column:auto;
  }
}


/* Home — "Paesaggi e animali" + "I gatti del Cammino", review v43 */
@media(min-width:881px){
  .story-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .story-landscape,
  .story-cats{
    grid-column:span 2 !important;
    min-height:0;
    height:310px;
    aspect-ratio:auto;
  }
  .story-landscape img,
  .story-cats img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .story-cats img{
    object-position:center center;
  }
  #mapFrame + .route-prep{
    margin-top:18px;
  }
}


/* Anello di impronte — sostituisce la freccia direzionale, review v44 */
.map-direction-arrow{display:none !important}
.map-direction-paws{
  position:absolute;
  left:50%;
  top:50%;
  width:390px;
  height:390px;
  transform:translate(-50%,-50%);
  z-index:4;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transition:opacity .22s ease, visibility .22s ease;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.28));
}
.map-direction-paws svg{
  display:block;
  width:100%;
  height:100%;
  transform-origin:50% 50%;
}
.map-direction-paws .paw-mark{
  fill:rgba(255,255,255,.72);
}
.map-frame.route-selected:hover .map-direction-paws{
  opacity:.82;
  visibility:visible;
}
.map-frame.route-selected:hover .map-direction-paws svg{
  animation:magnagati-clockwise 7s linear infinite;
}
@media (prefers-reduced-motion:reduce){
  .map-frame.route-selected:hover .map-direction-paws svg{animation:none}
}
@media(max-width:900px){
  .map-direction-paws{width:320px;height:320px}
}
@media(max-width:680px){
  .map-direction-paws{width:220px;height:220px}
}


/* V45 — anello di impronte gatto, direzione oraria */
.map-direction-arrow{display:none!important}
.map-direction-paws{
  position:absolute;
  left:50%; top:50%;
  width:390px; height:390px;
  transform:translate(-50%,-50%);
  z-index:4;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transition:opacity .22s ease,visibility .22s ease;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.18));
}
.map-direction-paws svg{display:block;width:100%;height:100%;transform-origin:50% 50%}
.map-direction-paws .cat-paw{fill:rgba(255,255,255,.58)}
.map-frame.route-selected:hover .map-direction-paws{opacity:.78;visibility:visible}
.map-frame.route-selected:hover .map-direction-paws svg{animation:magnagati-clockwise 7s linear infinite}
@media(prefers-reduced-motion:reduce){.map-frame.route-selected:hover .map-direction-paws svg{animation:none}}
@media(max-width:900px){.map-direction-paws{width:320px;height:320px}}
@media(max-width:680px){.map-direction-paws{width:220px;height:220px}}


/* V46 — impronte rosse semitrasparenti nella mappa */
.map-direction-paws .cat-paw,
.map-direction-paws .cat-paw ellipse,
.map-direction-paws .cat-paw path {
  fill:#bf060e !important;
  fill-opacity:.56 !important;
  stroke:none !important;
}
.map-frame.route-selected:hover .map-direction-paws {
  opacity:.78;
}


/* V47 — legenda sovrapposta in basso e "Prima di partire" sempre visibile */
#mapFrame{position:relative}
#mapFrame .map-legend{
  position:absolute;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  width:max-content;
  max-width:calc(100% - 32px);
  margin:0;
  padding:10px 16px;
  border:1px solid rgba(255,255,255,.38);
  border-radius:10px;
  background:rgba(76,76,76,.62);
  color:#fff;
  box-shadow:0 3px 12px rgba(0,0,0,.16);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
#mapFrame .map-legend span{
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  color:#fff;
}
#mapFrame .map-legend i{
  flex:0 0 auto;
}
#routePrep[hidden]{display:block!important}
@media(max-width:680px){
  #mapFrame .map-legend{
    bottom:10px;
    gap:12px;
    padding:8px 11px;
    font-size:.78rem;
    max-width:calc(100% - 20px);
  }
}


/* V48 — impronte ricavate dall'immagine fornita + legenda unica dentro la mappa */
.map-direction-paws{
  position:absolute;
  left:50%; top:50%;
  width:430px; height:430px;
  transform:translate(-50%,-50%);
  z-index:5;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transition:opacity .22s ease,visibility .22s ease;
  filter:none;
}
.map-direction-paws img{
  position:absolute;
  width:48px;
  height:48px;
  object-fit:contain;
  transform:translate(-50%,-50%) rotate(var(--paw-r));
  /* il PNG è bianco: questa catena lo porta al rosso del Cammino */
  filter:brightness(0) saturate(100%) invert(10%) sepia(99%) saturate(6434%) hue-rotate(358deg) brightness(87%) contrast(108%);
  opacity:.48;
}
.map-frame.route-selected:hover .map-direction-paws{opacity:1;visibility:visible}
.map-frame.route-selected:hover .map-direction-paws{animation:magnagati-clockwise 7s linear infinite}
@media(prefers-reduced-motion:reduce){.map-frame.route-selected:hover .map-direction-paws{animation:none}}
@media(max-width:900px){
  .map-direction-paws{width:330px;height:330px}
  .map-direction-paws img{width:38px;height:38px}
}
@media(max-width:680px){
  .map-direction-paws{width:230px;height:230px}
  .map-direction-paws img{width:29px;height:29px}
}

/* legenda: solo quella sovrapposta in basso alla cartina */
#mapFrame > .map-legend{
  position:absolute !important;
  left:50% !important;
  bottom:16px !important;
  transform:translateX(-50%) !important;
  z-index:8 !important;
  margin:0 !important;
  padding:10px 18px !important;
  width:max-content !important;
  max-width:calc(100% - 32px) !important;
  display:flex !important;
  gap:24px !important;
  align-items:center !important;
  background:rgba(72,72,72,.64) !important;
  border:1px solid rgba(255,255,255,.25) !important;
  border-radius:9px !important;
  color:#fff !important;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
#mapFrame > .map-legend span{color:#fff !important}


/* V49 — nessuna legenda sulla mappa; impronte orientate nel senso di marcia orario */
#mapFrame .map-legend,
.map-legend{display:none !important}

.map-direction-paws img{
  transform:translate(-50%,-50%) rotate(var(--paw-r)) !important;
  opacity:.48 !important;
}
/* L'anello ruota nello stesso senso indicato dalle singole impronte. */
.map-frame.route-selected:hover .map-direction-paws{
  animation:magnagati-clockwise 7s linear infinite !important;
}


/* V50 — centra l'anello sul centro geometrico della cartina */
#mapFrame{
  position:relative;
}

/* Il centro dell'anello coincide con il centro dell'immagine visualizzata. */
#mapFrame .map-direction-paws{
  left:50% !important;
  top:50% !important;
  right:auto !important;
  bottom:auto !important;
  transform:translate(-50%,-50%) !important;
  transform-origin:center center !important;
  margin:0 !important;
}

/* Mantiene la rotazione attorno al vero centro senza alterare il centraggio. */
#mapFrame.route-selected:hover .map-direction-paws{
  animation:magnagati-paws-centered 7s linear infinite !important;
}

@keyframes magnagati-paws-centered{
  from{transform:translate(-50%,-50%) rotate(0deg)}
  to{transform:translate(-50%,-50%) rotate(360deg)}
}

@media(prefers-reduced-motion:reduce){
  #mapFrame.route-selected:hover .map-direction-paws{
    animation:none !important;
    transform:translate(-50%,-50%) !important;
  }
}


/* V51 — legenda in basso a sinistra della cartina */
.route-map-legend{
  position:absolute;
  left:18px;
  bottom:18px;
  z-index:9;
  display:none;
  min-width:220px;
  padding:12px 16px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:10px;
  background:rgba(66,66,66,.68);
  color:#fff;
  box-shadow:0 3px 12px rgba(0,0,0,.16);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  pointer-events:none;
}
.route-map-legend.is-visible{display:block}
.route-map-legend > div{
  display:flex;
  align-items:center;
  gap:11px;
  line-height:1.25;
}
.route-map-legend > div + div{margin-top:9px}
.route-swatch{
  display:block;
  width:43px;
  height:4px;
  border-radius:999px;
  flex:0 0 auto;
}
/* Colori legenda: gravel invariata; a piedi nero percorso, rosso variante */
.route-swatch-main{background:#1649e8}
.route-swatch-variant{background:#e72acb}
.route-map-legend[data-mode="walk"] .route-swatch-main{background:#000}
.route-map-legend[data-mode="walk"] .route-swatch-variant{background:var(--red)}

@media(max-width:680px){
  .route-map-legend{
    left:10px;
    bottom:10px;
    min-width:0;
    padding:9px 11px;
    font-size:.78rem;
  }
  .route-swatch{width:32px;height:3px}
}


/* Review v56 — fotografie e schede della sezione territorio */
.hero{background-image:url('assets/hero-v56.webp');background-position:center 55%}
.story-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,250px);gap:14px}
.story:first-child,.story-landscape{grid-column:auto;grid-row:auto}
.story img{object-position:center center}
.story-art img{object-position:center 48%}
.story-vicenza img{object-position:center 48%}
.story-bassano img{object-position:center 50%}
.story-villas img{object-position:center 45%}
.story-castle img{object-position:center 42%;transform-origin:center center}
.story-villages img{object-position:center 48%}
.story-landscape img{object-position:center 48%}
.story-cats img{object-position:center 42%}
.photo-card figcaption,.lightbox-caption{display:none!important}
@media(max-width:880px){
  .story-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,235px)}
}
@media(max-width:560px){
  .hero{background-position:58% 55%}
  .story-grid{grid-template-columns:1fr;grid-template-rows:repeat(8,235px)}
}

/* Review v57 — hero home: titolo e logo nel cielo, vista di Vicenza più libera */
.hero{align-items:stretch}
.hero-content{
  min-height:78vh;
  padding:56px 0 62px;
  max-width:750px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.hero h1{margin:0 0 18px}
.hero-logo{width:132px;margin:0 0 18px}
.hero p{margin-top:auto}
@media(max-width:880px){
  .hero-content{min-height:72vh;padding:46px 0 50px}
  .hero-logo{width:124px}
}
@media(max-width:560px){
  .hero-content{padding:34px 0 38px}
  .hero-logo{width:108px;margin-bottom:14px}
  .hero p{margin-top:auto}
}


/* Review v58 — "Non solo un percorso": 8 schede quadrate, 2 righe da 4 */
@media(min-width:881px){
  .story-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-template-rows:auto auto;
  }
  .story{
    aspect-ratio:1 / 1;
    height:auto;
  }
  .story-landscape,
  .story-cats{
    grid-column:auto !important;
    grid-row:auto !important;
    width:auto;
    height:auto !important;
    min-height:0;
    aspect-ratio:1 / 1 !important;
  }
  .story-landscape img{
    object-position:50% 50%;
  }
  .story-cats img{
    object-position:50% 55%;
  }
}

/* Review v59 — gallerie sottosezioni: miniature quadrate, originali in lightbox */
.photo-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  columns:unset;
  column-gap:normal;
  width:min(1040px,100%);
  margin:0 auto;
}
.photo-card{
  flex:0 0 calc((100% - 36px)/4);
  aspect-ratio:1 / 1;
  margin:0;
  overflow:hidden;
}
.photo-card button{
  display:block;
  width:100%;
  height:100%;
}
.photo-card img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
/* La lightbox usa lo stesso file sorgente senza ritaglio, mantenendo il formato originale. */
.lightbox img{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:86vh;
  object-fit:contain;
}
@media(max-width:880px){
  .photo-grid{gap:12px}
  .photo-card{flex-basis:calc((100% - 24px)/3)}
}
@media(max-width:560px){
  .photo-grid{gap:10px}
  .photo-card{flex-basis:calc((100% - 10px)/2)}
}

/* Review v60 — gallerie sottosezioni ordinate come la griglia della home */
.photo-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  columns:unset;
  column-gap:14px;
  width:100%;
  margin:0;
  align-items:start;
}
.photo-card{
  width:100%;
  aspect-ratio:1 / 1;
  margin:0;
  border-radius:18px;
  overflow:hidden;
}
.photo-card button{
  display:block;
  width:100%;
  height:100%;
}
.photo-card img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
@media(max-width:880px){
  .photo-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    column-gap:14px;
  }
}
@media(max-width:560px){
  .photo-grid{
    grid-template-columns:1fr;
    gap:14px;
    column-gap:14px;
  }
  .photo-card{
    border-radius:18px;
  }
}


/* Review v61 — mobile 2 colonne e navigazione lightbox */
@media(max-width:560px){
  /* Home: due schede per riga, mantenendo il principio della griglia desktop */
  #territorio .story-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:auto;
    gap:10px;
  }
  #territorio .story{
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:1 / 1;
    border-radius:14px;
  }
  #territorio .story span{
    left:11px;
    bottom:10px;
    font-size:.86rem;
    line-height:1.08;
  }

  /* Gallerie: due miniature quadrate per riga anche su telefono */
  .photo-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    column-gap:10px;
  }
  .photo-card{border-radius:14px}
}

/* Frecce bianche semitrasparenti nella visualizzazione ingrandita */
.lightbox-nav{
  position:fixed;
  top:50%;
  z-index:125;
  transform:translateY(-50%);
  width:54px;
  height:54px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:rgba(255,255,255,.82);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2.35rem;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.lightbox-nav:hover,
.lightbox-nav:focus-visible{
  background:rgba(255,255,255,.22);
  color:#fff;
  outline:none;
}
.lightbox-prev{left:22px}
.lightbox-next{right:22px}
@media(max-width:680px){
  .lightbox-nav{
    width:44px;
    height:44px;
    font-size:2rem;
    background:rgba(255,255,255,.14);
  }
  .lightbox-prev{left:8px}
  .lightbox-next{right:8px}
}

/* Revisione v64 — logo completo e tappe attorno alle mappe */
.hero-logo{
  border-radius:0!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  overflow:visible!important;
  clip-path:none!important;
  padding:0!important;
}
.map-section{background:#f7f2ec;color:var(--ink)}
.map-section .wrap{width:min(1540px,calc(100% - 36px))}
.map-section .section-head p{color:var(--muted)}
.map-section .eyebrow{color:var(--red)}
.map-section .map-tabs .btn-ghost{color:var(--ink)!important;border-color:#cfc7bd!important;background:#fff}
.route-stats{background:#fff;color:#4d4d4d;border-color:var(--line);box-shadow:0 8px 24px rgba(0,0,0,.04)}
.route-stats strong{color:var(--ink)}
.route-layout{display:grid;grid-template-columns:300px minmax(500px,1fr) 300px;grid-template-areas:"left map right";gap:18px;align-items:start}
#routeStagesLeft{grid-area:left}#mapFrame{grid-area:map}#routeStagesRight{grid-area:right}
.route-layout .map-frame{position:sticky;top:130px;align-self:start;box-shadow:0 12px 30px rgba(0,0,0,.09)}
.route-stage-column h3{margin:0 0 10px;font-size:1.02rem;letter-spacing:-.01em;color:var(--ink)}
.route-stage-list{display:grid;gap:9px}
.route-stage-card{background:#fff;border:1px solid var(--line);border-left:4px solid #232323;border-radius:13px;padding:11px 12px;box-shadow:0 5px 16px rgba(0,0,0,.035)}
.route-stage-card.is-variant{border-left-color:var(--red);background:#fffafa}
.route-stage-heading{display:grid;gap:2px;margin-bottom:8px}.route-stage-heading>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:var(--red)}.route-stage-heading strong{font-size:.84rem;line-height:1.22;color:#282828}
.route-stage-metrics,.route-stage-ratings{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.route-stage-metrics{padding-top:7px;border-top:1px solid #ece7e1}.route-stage-ratings{margin-top:6px}
.route-stage-metrics span,.route-stage-ratings span{display:grid;gap:1px;min-width:0}.route-stage-card small{font-size:.62rem;line-height:1.15;color:#777;text-transform:uppercase;letter-spacing:.045em}.route-stage-metrics b{font-size:.76rem;color:#333;white-space:nowrap}.route-stage-ratings b{font-size:.76rem;line-height:1;color:#b0060d;letter-spacing:-.06em;white-space:nowrap}
.route-prep{background:#fff;color:#444;border-color:var(--line);box-shadow:0 8px 24px rgba(0,0,0,.035)}.route-prep h3,.route-prep strong{color:var(--ink)}.route-prep p{color:#5f5f5f}
@media(max-width:1180px){
  .route-layout{grid-template-columns:1fr 1fr;grid-template-areas:"map map" "left right"}
  .route-layout .map-frame{position:relative;top:auto}
}
@media(max-width:680px){
  .map-section .wrap{width:min(100% - 24px,var(--max))}
  .route-layout{grid-template-columns:1fr;grid-template-areas:"map" "left" "right";gap:20px}
  .route-stage-column h3{font-size:1.08rem;margin-top:2px}
  .route-stage-card{padding:13px 14px}.route-stage-heading strong{font-size:.92rem}.route-stage-metrics b,.route-stage-ratings b{font-size:.82rem}
}
