  /* CSS estratto in style.css — qui restano solo le variabili per compatibilità
     con eventuali override inline. */
  :root{
    --marmo:#EDE6D6;
    --marmo-scuro:#DED0B0;
    --marmo-riga:#C9B98F;
    --pompeiano:#9E2B25;
    --pompeiano-scuro:#7A1F1B;
    --oro:#B8935A;
    --oro-chiaro:#D4B788;
    --porpora:#4A2545;
    --bronzo:#5C6B57;
    --basalto:#1F1B16;
    --basalto-soft:#35302A;
    --ombra: 0 10px 30px rgba(31,27,22,0.18);
    --font-display:'Cinzel', serif;
    --font-body:'Cormorant Garamond', serif;
    --font-ui:'Jost', sans-serif;
  }
  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  html,body{overflow-x:hidden; max-width:100%;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  }
  body{margin:0; background:var(--marmo); color:var(--basalto); font-family:var(--font-body); font-size:21px; line-height:1.6; zoom:0.95;}
  h1,h2,h3{font-family:var(--font-display); margin:0; color:var(--basalto); font-weight:600; letter-spacing:.01em;}
  p{margin:0;}
  a{color:inherit;}
  img,svg{display:block; max-width:100%;}
  button{font-family:var(--font-ui); cursor:pointer;}
  :focus-visible{outline:2px solid var(--pompeiano); outline-offset:3px;}

  .eyebrow{font-family:var(--font-ui); text-transform:uppercase; letter-spacing:.22em; font-size:.78rem; font-weight:600; color:var(--pompeiano); margin:0 0 .6rem;}
  .section-heading{max-width:760px; margin:0 auto 3rem; padding:0 1.5rem; text-align:center;}
  .section-heading h2{font-size:clamp(1.8rem,3.4vw,2.6rem);}
  .section-sub{font-style:italic; color:var(--basalto-soft); opacity:.85; margin-top:.7rem; font-size:1.3rem;}

  .laurel-ornament{display:flex; align-items:center; justify-content:center; gap:.6rem; margin:1rem 0 1.4rem; opacity:.85;}
  .laurel-ornament svg{width:34px; height:34px; color:var(--oro);}

  .site-header{position:sticky; top:0; z-index:50; background:rgba(237,230,214,0.92); backdrop-filter:blur(6px); border-bottom:1px solid var(--marmo-riga);}
  .header-inner{max-width:1180px; margin:0 auto; padding:.85rem 1.5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;}
  .brand{display:flex; align-items:center; gap:.6rem; text-decoration:none;}
  .brand svg{width:34px; height:34px; color:var(--pompeiano);}
  .brand span{font-family:var(--font-display); font-size:1.15rem; letter-spacing:.08em; color:var(--basalto); text-transform:none;}
  .main-nav{display:flex; gap:1.7rem; flex-wrap:wrap;}
  .main-nav a{font-family:var(--font-ui); font-size:.92rem; text-transform:uppercase; letter-spacing:.08em; text-decoration:none; color:var(--basalto-soft); border-bottom:1px solid transparent; padding-bottom:2px; transition:border-color .2s, color .2s;}
  .main-nav a:hover{color:var(--pompeiano); border-color:var(--pompeiano);}
  .btn-ghost-small{background:transparent; border:1px solid var(--basalto); color:var(--basalto); font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; padding:.5rem 1rem; border-radius:6px; text-decoration:none; display:inline-block; transition:background .2s, color .2s;}
  .btn-ghost-small:hover{background:var(--basalto); color:var(--marmo);}
  .nav-toggle{display:none; align-items:center; justify-content:center; width:44px; height:44px; padding:0; background:transparent; border:none; color:var(--basalto); cursor:pointer; flex-shrink:0;}
  .nav-toggle svg{width:44px; height:44px;}
  .nav-toggle circle{transition:stroke .2s;}
  .nav-toggle:hover circle, .nav-toggle:focus-visible circle{stroke:var(--pompeiano);}
  .nav-toggle .bar{stroke:currentColor; stroke-width:2; stroke-linecap:round; transform-box:fill-box; transform-origin:center; transition:transform .25s ease, opacity .2s ease;}
  .nav-toggle.is-active .bar-top{transform:translateY(5px) rotate(45deg);}
  .nav-toggle.is-active .bar-mid{opacity:0;}
  .nav-toggle.is-active .bar-bot{transform:translateY(-5px) rotate(-45deg);}

  .lang-switch{position:relative;}
  .lang-switch-btn{
    display:inline-flex; align-items:center; gap:.4rem;
    background:transparent; border:1px solid var(--basalto); color:var(--basalto);
    padding:.45rem .7rem; border-radius:20px; cursor:pointer;
    font-family:var(--font-ui); font-size:.8rem; text-transform:uppercase; letter-spacing:.06em;
    transition:border-color .2s, background .2s;
  }
  .lang-switch-btn:hover, .lang-switch-btn:focus-visible{border-color:var(--oro); background:rgba(184,147,90,.08);}
  .lang-flag{font-size:1.05rem; line-height:1;}
  .lang-caret{width:10px; height:7px; color:var(--bronzo); transition:transform .2s;}
  .lang-switch.is-open .lang-caret{transform:rotate(180deg);}
  .lang-switch-menu{
    list-style:none; margin:0; padding:.4rem; position:absolute; top:calc(100% + 8px); right:0;
    background:var(--marmo); border:1px solid var(--oro); border-radius:8px;
    min-width:150px; box-shadow:0 12px 28px rgba(31,27,22,.18);
    opacity:0; visibility:hidden; transform:translateY(-6px);
    transition:opacity .2s, transform .2s, visibility .2s; z-index:60;
  }
  .lang-switch.is-open .lang-switch-menu{opacity:1; visibility:visible; transform:translateY(0);}
  .lang-switch-menu li{
    display:flex; align-items:center; gap:.6rem; padding:.55rem .7rem; border-radius:5px;
    font-family:var(--font-ui); font-size:.88rem; color:var(--basalto); cursor:pointer;
    transition:background .15s;
  }
  .lang-switch-menu li:hover, .lang-switch-menu li.is-active{background:rgba(184,147,90,.12);}
  .lang-switch-menu li .lang-flag{font-size:1.15rem;}
  @media (max-width:780px){
    .lang-switch-menu{right:auto; left:0;}
  }

  .hero{position:relative; overflow:hidden; background:#171410; color:var(--marmo); padding:7.5rem 1.5rem 4rem; text-align:center;}
  .hero-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; pointer-events:none;}
  /* Velo scuro sopra il video: garantisce contrasto sufficiente per il testo
     indipendentemente da quanto è chiara o movimentata l'immagine sotto. */
  .hero-overlay{position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(180deg, rgba(23,20,16,.55) 0%, rgba(23,20,16,.65) 50%, rgba(23,20,16,.8) 100%);}
  /* Vignettatura ovale: scurisce appena i bordi del video per dare
     profondità e concentrare lo sguardo sul centro. */
  .hero::before{content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
    background:radial-gradient(ellipse 75% 65% at 50% 45%,
      rgba(23,20,16,0) 55%,
      rgba(23,20,16,.35) 100%);}
  /* Onda di marmo che "sommerge" l'hero come acqua versata in un bicchiere.
     Il bordo superiore dell'onda è un'unica curva che oscilla nel tempo
     (moto pseudo-casuale, non sinusoidale fisso) e che sale con lo scroll
     fino a coprire l'hero. La vigna dorata è disegnata ESATTAMENTE lungo
     lo stesso bordo, così il confine dell'onda e quello della vigna
     coincidono sempre. */
  .hero-wave{
    position:absolute; left:0; right:0; bottom:0;
    height:100%;
    z-index:3;
    pointer-events:none;
    overflow:visible;
  }
  .hero-wave svg{position:absolute; left:0; right:0; bottom:0; width:100%; height:100%; display:block;}
  .hero-wave .wave-fill{fill:var(--marmo);}
  .hero-wave .wave-vine{stroke:var(--oro); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
  /* Le foglie e le bacche vivono in un SVG separato con scaling uniforme
     (preserveAspectRatio="xMidYMid slice"), così mantengono le loro
     proporzioni naturali anche se l'onda sottostante è stirata. */
  .hero-wave .wave-leaf{fill:var(--oro); opacity:.85;}
  .hero-wave .wave-berry{fill:var(--oro);}
  @media (prefers-reduced-motion: reduce){
    .hero-wave .wave-vine{stroke-width:1.6;}
  }
  .hero-content{position:relative; z-index:2; max-width:760px; margin:0 auto;}
  .hero .eyebrow{color:var(--oro-chiaro); text-shadow:0 1px 6px rgba(0,0,0,.7);}
  .hero h1{font-size:clamp(2.6rem,7vw,5rem); color:var(--marmo); font-weight:700; letter-spacing:.03em; text-transform:none; text-shadow:0 2px 14px rgba(0,0,0,.75); animation:riseIn .9s ease-out both;}
  .hero-tagline{font-size:clamp(1.15rem,2vw,1.5rem); font-style:italic; color:var(--marmo); opacity:.95; max-width:560px; margin:1.3rem auto 0; text-shadow:0 1px 8px rgba(0,0,0,.8); animation:riseIn .9s .15s ease-out both;}
  .hero-cta{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:2.4rem; animation:riseIn .9s .3s ease-out both;}
  @keyframes riseIn{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);} }

  .btn-primary, .btn-secondary{font-family:var(--font-ui); font-size:1.05rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; padding:1.05rem 2.2rem; border-radius:6px; text-decoration:none; display:inline-block; transition:transform .2s, box-shadow .2s, background .2s, color .2s; border:1px solid var(--oro);}
  .btn-primary{background:var(--oro); color:var(--basalto); box-shadow:0 4px 14px rgba(0,0,0,.35);}
  .btn-primary:hover{background:var(--oro-chiaro); transform:translateY(-2px); box-shadow:0 8px 18px rgba(184,147,90,.45);}
  .btn-secondary{background:rgba(23,20,16,.35); color:var(--marmo); border-color:var(--marmo-scuro); backdrop-filter:blur(2px);}
  .btn-secondary:hover{background:rgba(237,230,214,.15); border-color:var(--oro); transform:translateY(-2px);}
  @media (prefers-reduced-motion: reduce){
    .hero-video{display:none;}
  }

  .entablature{max-width:1180px; margin:0 auto; padding:0 1.5rem;}
  .entablature .band-line{height:2px; background:var(--oro);}
  .entablature .dentils{height:12px; margin:2px 0; background-image:repeating-linear-gradient(to right, var(--oro) 0 9px, transparent 9px 18px); opacity:.55;}

  section{padding:5rem 0;}

  /* ---- Welcome ---- */
  .welcome{position:relative; padding:5.5rem 1.5rem 2rem; text-align:center; overflow:hidden;}
  .welcome::before{
    content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
    width:1px; height:3.5rem; background:linear-gradient(180deg, transparent, var(--oro));
  }
  .welcome-inner{max-width:820px; margin:0 auto; position:relative;}
  .welcome .eyebrow{color:var(--pompeiano); font-size:1rem; letter-spacing:.28em;}
  /* "Roma" nell'eyebrow: la parola è più grande del resto, in un serif
     da incisione (Cinzel) e nel rosso pompeiano. Un sottile filo d'oro
     sfalsato dietro le lettere suggerisce il taglio dello scalpello
     (come nelle iscrizioni romane), mentre sotto corre un piccolo
     svolazzo classico con due punti alle estremità. */
/* --- Stile "Roma" originale in rosso pompeiano --- */
  .welcome-roma {
    position: relative;
    display: inline-block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.7em;
    line-height: 1;
    letter-spacing: .06em;
    text-transform: uppercase; /* Mantiene un po' di stile classico */
    color: var(--pompeiano);
    padding: 0 .14em .18em;
    text-shadow: 
      0.5px 0.5px 0 rgba(122,31,27,.28), 
      -0.6px -0.6px 0 rgba(184,147,90,.35);
    vertical-align: baseline;
  }
  .welcome-roma::after {
    content: '';
    position: absolute;
    left: -.05em; right: -.05em; bottom: 0;
    height: .28em;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'><path d='M4 6 C 30 2, 55 8, 60 5 S 90 2, 116 6' fill='none' stroke='%239E2B25' stroke-width='1.4' stroke-linecap='round'/><circle cx='3' cy='6' r='1.4' fill='%239E2B25'/><circle cx='117' cy='6' r='1.4' fill='%239E2B25'/></svg>") center/100% 100% no-repeat;
    opacity: .9;
    pointer-events: none;
  }
/* --- Effetto "Luce Massiccia" --- */
  @keyframes aura-massiccia {
    0%, 100% { 
      filter: drop-shadow(0 0 5px rgba(184, 147, 90, 0.4)); 
    }
    50% { 
      /* Unisce un fascio d'oro intenso a un alone rosso pompeiano */
      filter: drop-shadow(0 0 35px rgba(184, 147, 90, 1)) drop-shadow(0 0 20px rgba(158, 43, 37, 0.8)); 
    }
  }
  .eyebrow-hero {
    animation: aura-massiccia 3s infinite ease-in-out;
  }
/* --- Effetto "Respiro" per il testo di benvenuto --- */
  @keyframes welcome-breath {
    0%, 100% { 
      opacity: 0.85; 
      filter: drop-shadow(0 0 0px rgba(184, 147, 90, 0));
    }
    50% { 
      opacity: 1; 
      filter: drop-shadow(0 4px 18px rgba(184, 147, 90, 0.45));
    }
  }
  .welcome-breath {
    animation: welcome-breath 4s ease-in-out infinite;
  }
  @media (prefers-reduced-motion: reduce) {
    .welcome-roma { text-shadow: 0.5px 0.5px 0 rgba(122,31,27,.28); }
  }
  @media (prefers-reduced-motion: reduce) {
    .welcome-roma { filter: drop-shadow(0px 1px 2px rgba(31,27,22,.4)); }
  }
  @media (prefers-reduced-motion: reduce){
    .welcome-roma{text-shadow:0.5px 0.5px 0 rgba(122,31,27,.28);}
  }
  .welcome-line{
    font-family:var(--font-display); font-weight:600;
    font-size:clamp(1.9rem,4.2vw,3.1rem); line-height:1.25; letter-spacing:.01em;
    color:var(--basalto); margin:0;
  }
  .welcome-line em{font-style:italic; color:var(--pompeiano); font-family:var(--font-body); font-weight:500;}
  .welcome-sub{
    font-family:var(--font-body); font-style:italic;
    font-size:clamp(1.3rem,2vw,1.6rem); color:var(--basalto-soft);
    max-width:620px; margin:1.4rem auto 0; opacity:.9;
  }
  .welcome-ornament{display:flex; align-items:center; justify-content:center; gap:.8rem; margin-top:1.4rem; color:var(--oro);}
  .welcome-ornament .rule{height:1px; width:60px; background:currentColor; opacity:.6;}
  .welcome-ornament svg{width:22px; height:22px;}

  /* ---- About / Bio ---- */
  .about{padding-top:2rem;}
  .about-grid{max-width:1100px; margin:0 auto; padding:0 1.5rem; display:grid; grid-template-columns:.85fr 1.15fr; gap:4rem; align-items:center;}
  .about-portrait-wrap{position:relative; margin:0 auto; max-width:360px; width:100%;}
  .about-portrait-wrap::before{
    content:''; position:absolute; inset:18px -18px -18px 18px;
    border:1px solid var(--oro); border-radius:2%; z-index:0;
  }
  .about-portrait{
    position:relative; z-index:1; aspect-ratio:1/1; border-radius:2%;
    background:var(--marmo-scuro); border:6px double var(--oro);
    display:flex; align-items:center; justify-content:center;
    box-shadow:var(--ombra); overflow:hidden;
  }
  .about-portrait img{width:100%; height:100%; object-fit:cover; color:var(--basalto-soft);}
  .about-portrait-caption{
    position:relative; z-index:1; margin-top:1.6rem; text-align:center;
    font-family:var(--font-ui); font-size:.78rem; text-transform:uppercase;
    letter-spacing:.18em; color:var(--bronzo);
  }
  .about-text h2{font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:1.1rem;}
  .about-text p{font-size:1.35rem; margin-bottom:1.4rem; color:var(--basalto-soft); line-height:1.65;}
  .about-quote{
    position:relative; margin:0 0 1.6rem; padding:.2rem 0 .2rem 1.6rem;
    border-left:3px solid var(--oro);
    font-family:var(--font-body); font-style:italic;
    font-size:1.45rem; line-height:1.5; color:var(--basalto);
  }
  .about-quote::before{
    content:'\201C'; position:absolute; left:.4rem; top:-.6rem;
    font-family:var(--font-display); font-size:3rem; color:var(--oro); opacity:.35; line-height:1;
  }
  .credentials{list-style:none; margin:1.8rem 0 0; padding:0; display:grid; gap:.85rem;}
  .credentials li{
    font-family:var(--font-ui); font-size:1.02rem; color:var(--basalto);
    padding-left:1.7rem; position:relative; line-height:1.4;
  }
  .credentials li::before{
    content:''; position:absolute; left:0; top:.55em; width:9px; height:9px;
    background:var(--pompeiano); transform:rotate(45deg);
  }
  .btn-about-more{display:inline-block; margin-top:2rem; font-family:var(--font-ui); font-size:.95rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; padding:.85rem 1.8rem; border:1px solid var(--pompeiano); color:var(--pompeiano); background:transparent; border-radius:6px; text-decoration:none; transition:background .2s, color .2s, transform .2s;}
  .btn-about-more:hover{background:var(--pompeiano); color:var(--marmo); transform:translateY(-2px);}

  .tours-grid{max-width:1120px; margin:0 auto; padding:0 1.5rem; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:2.8rem;}
  .tour-card{position:relative; background:var(--marmo-scuro); border:1px solid var(--marmo-riga); border-radius:8px; box-shadow:var(--ombra); display:flex; flex-direction:column; overflow:hidden; transition:transform .25s, box-shadow .25s, border-color .25s;}
  .tour-card:hover{transform:translateY(-4px); border-color:var(--oro); box-shadow:0 16px 34px rgba(31,27,22,.24);}
  .tour-card.is-inactive{opacity:.72;}
  .tour-card.has-detail{cursor:pointer;}
  .card-stretched-link{position:absolute; inset:0; z-index:1; border-radius:8px;}
  .card-stretched-link:focus-visible{outline:2px solid var(--pompeiano); outline-offset:-2px;}
  .card-corner{position:absolute; top:10px; left:10px; width:26px; height:26px; color:var(--oro); opacity:.55; z-index:3;}
  .card-stamps{position:absolute; top:14px; right:14px; z-index:3; display:flex; flex-direction:column; gap:.4rem; align-items:flex-end;}

  /* Metà superiore della card: foto di copertina con titolo e info in overlay. */
  .card-media{position:relative; aspect-ratio:16/10; overflow:hidden; background:linear-gradient(160deg,#241E17 0%, #1F1B16 55%, #171410 100%);}
  .card-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease;}
  .tour-card:hover .card-media img{transform:scale(1.04);}
  .card-media-overlay{position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:flex-end; padding:1.6rem 1.7rem; color:var(--marmo); background:linear-gradient(180deg, rgba(23,20,16,.15) 0%, rgba(23,20,16,.6) 45%, rgba(23,20,16,.92) 100%);}
  .card-media-overlay h3{font-size:2rem; line-height:1.25; color:var(--marmo); text-shadow:0 2px 12px rgba(0,0,0,.9); padding-right:2.5rem; margin:0; overflow-wrap:anywhere; word-break:break-word;}
  .card-media-meta{display:flex; flex-direction:column; gap:.6rem; font-family:var(--font-ui); font-size:1.2rem; font-weight:500; line-height:1.4; color:#F5EFE2; margin-top:.9rem; max-height:0; opacity:0; overflow:hidden; transition:max-height .3s ease, opacity .25s ease, margin-top .3s ease; text-shadow:0 1px 6px rgba(0,0,0,.9);}
  .card-media-meta span{display:flex; align-items:flex-start; gap:.65rem;}
  .card-media-meta svg{width:23px; height:23px; flex-shrink:0; color:var(--oro-chiaro); margin-top:.1rem;}
  /* Le info compaiono solo su dispositivi con puntatore reale (mouse/trackpad).
     Su touch (telefono/tablet) restano nascoste: niente hover, niente reveal. */
  @media (hover:hover) and (pointer:fine){
    .tour-card:hover .card-media-meta, .tour-card:focus-within .card-media-meta{max-height:320px; opacity:1;}
  }

  /* Metà inferiore: descrizione, posti, prezzo, bottone. */
  .card-body{padding:1.8rem 1.9rem 1.9rem; display:flex; flex-direction:column; gap:1.1rem; flex-grow:1;}
  .stamp{font-family:var(--font-ui); font-weight:600; font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; padding:.32rem .6rem; border-radius:50px; border:2px double currentColor; white-space:nowrap; animation:stampIn .45s ease-out both; transform:rotate(var(--r,-3deg)); background:var(--marmo); box-shadow:0 2px 6px rgba(31,27,22,.15);}
  @keyframes stampIn{ from{opacity:0; transform:rotate(var(--r,-3deg)) scale(1.5);} to{opacity:1; transform:rotate(var(--r,-3deg)) scale(1);} }
  .stamp-nuovo{color:var(--oro-chiaro); background:#2b241a; box-shadow:0 2px 6px rgba(184,147,90,.3);}
  .stamp-ultimi{color:var(--pompeiano);}
  .stamp-esaurito{color:var(--marmo); background:var(--pompeiano-scuro); border-color:var(--pompeiano-scuro);}
  .stamp-sospeso{color:var(--bronzo);}
  .stamp-modificato{color:var(--porpora);}
  .stamp-annullato{color:var(--marmo); background:var(--basalto); border-color:var(--basalto);}

  .tour-desc{font-size:1.35rem; color:var(--basalto-soft); flex-grow:1; line-height:1.6;}
  .tour-footer{display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.4rem;}
  .tour-price{font-family:var(--font-display); font-size:1.9rem; color:var(--basalto);}
  .tour-price small{font-family:var(--font-ui); font-size:.85rem; color:var(--bronzo); display:block; text-transform:uppercase; letter-spacing:.05em;}
  .spots-bar-wrap{margin-top:.2rem;}
  .spots-label{font-family:var(--font-ui); font-size:1rem; color:var(--bronzo); margin-bottom:.4rem; display:block;}
  .spots-bar{height:6px; background:var(--marmo-riga); border-radius:4px; overflow:hidden;}
  .spots-bar-fill{height:100%; background:var(--oro); transition:width .4s;}
  .spots-bar-fill.full{background:var(--pompeiano);}

  .btn-book{position:relative; z-index:2; display:block; text-align:center; width:auto; align-self:center; padding:1.05rem 2.4rem; margin-top:.5rem; font-family:var(--font-ui); font-size:1.08rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; background:var(--pompeiano); color:var(--marmo); border:1px solid var(--pompeiano); border-radius:6px; text-decoration:none; transition:background .2s, transform .2s;}
  .btn-book:hover{background:var(--pompeiano-scuro); transform:translateY(-1px);}
  .btn-book[disabled]{background:transparent; color:var(--bronzo); border-color:var(--marmo-riga); cursor:not-allowed; pointer-events:none;}
  .empty-note{grid-column:1/-1; text-align:center; font-style:italic; color:var(--bronzo); padding:2rem; font-size:1.15rem;}

  /* ---- Categorie (sostituisce la vecchia sezione archivio) ---- */
  .categories-grid{max-width:1120px; margin:0 auto; padding:0 1.5rem; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.6rem;}
  .category-tile{position:relative; display:block; aspect-ratio:4/3; border-radius:8px; overflow:hidden; text-decoration:none; color:var(--marmo); background:linear-gradient(160deg,#241E17 0%, #1F1B16 55%, #171410 100%); box-shadow:var(--ombra); transition:transform .25s, box-shadow .25s;}
  .category-tile:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(31,27,22,.28);}
  .category-tile img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease;}
  .category-tile:hover img{transform:scale(1.05);}
  .category-tile-overlay{position:absolute; inset:0; display:flex; align-items:flex-end; padding:1.2rem 1.3rem; background:linear-gradient(180deg, rgba(23,20,16,.1) 0%, rgba(23,20,16,.55) 55%, rgba(23,20,16,.9) 100%);}
  .category-tile-name{font-family:var(--font-display); font-size:1.5rem; font-weight:600; color:var(--marmo); text-shadow:0 2px 10px rgba(0,0,0,.85); line-height:1.2;}
  .category-tile-count{display:block; font-family:var(--font-ui); font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; color:var(--oro-chiaro); margin-top:.35rem; text-shadow:0 1px 6px rgba(0,0,0,.9);}
  @media (max-width:980px){ .categories-grid{grid-template-columns:repeat(2, minmax(0,1fr));} }
  @media (max-width:600px){ .categories-grid{grid-template-columns:1fr; gap:1.2rem;} .category-tile-name{font-size:1.3rem;} }

  /* ---- Tour Privati (sezione secondaria dopo i tour attivi) ---- */
  /* La sezione ha bordi ondulati: il colore del marmo delle altre sezioni
     "entra" sopra e sotto con un profilo a onde, e la rampicante dorata
     segue esattamente quel profilo. */
  .private-tours{position:relative; overflow:hidden; padding:6rem 1.5rem 6.5rem; background:var(--marmo-scuro);}
  .private-tours-inner{position:relative; z-index:2; max-width:820px; margin:0 auto; text-align:center;}
  /* Rampicante dorata ai bordi superiore e inferiore: segue l'onda del
     bordo della sezione e si mimetizza con i toni del marmo. */
  .private-tours-vine{position:absolute; left:0; right:0; height:90px; pointer-events:none; z-index:3; color:var(--oro); opacity:.7;}
  .private-tours-vine.top{top:0;}
  .private-tours-vine.bottom{bottom:0; transform:scaleY(-1);}
  .private-tours-vine svg{width:100%; height:100%; display:block;}
  /* Effetto "crescita": il tronco si disegna progressivamente tramite
     stroke-dashoffset, mentre foglie, viticci e bacche compaiono in
     sequenza con scale + opacity. Il progresso (0→1) è pilotato via JS
     in base alla posizione della sezione rispetto al centro del viewport. */
  .private-tours-vine .vine-trunk{
    stroke-dasharray: var(--vine-len, 2000);
    stroke-dashoffset: var(--vine-len, 2000);
    transition: stroke-dashoffset .1s linear;
  }
  .private-tours-vine .vine-leaf,
  .private-tours-vine .vine-tendril,
  .private-tours-vine .vine-berry{
    opacity:0;
    transform-box:fill-box;
    transform-origin:center;
    transform:scale(.2);
    transition:opacity .35s ease-out, transform .35s ease-out;
  }
  .private-tours-vine.is-grown .vine-leaf,
  .private-tours-vine.is-grown .vine-tendril,
  .private-tours-vine.is-grown .vine-berry{
    opacity:1;
    transform:scale(1);
  }
  @media (prefers-reduced-motion: reduce){
    .private-tours-vine .vine-trunk{stroke-dashoffset:0 !important; transition:none;}
    .private-tours-vine .vine-leaf,
    .private-tours-vine .vine-tendril,
    .private-tours-vine .vine-berry{opacity:1 !important; transform:none !important; transition:none;}
  }
  /* Onda di stacco: un SVG che riempie con il colore del marmo la parte
     superiore/inferiore della sezione, lasciando intravedere il marmo-scuro
     della sezione al di sotto del profilo ondulato. */
  .private-tours-wave{position:absolute; left:0; right:0; height:90px; pointer-events:none; z-index:2; color:var(--marmo);}
  .private-tours-wave.top{top:0;}
  .private-tours-wave.bottom{bottom:0; transform:scaleY(-1);}
  .private-tours-wave svg{width:100%; height:100%; display:block;}
  /* Colonne decorative ai lati: si muovono in parallasse con lo scroll. */
  .private-tours-deco{position:absolute; top:0; bottom:0; width:140px; pointer-events:none; z-index:1; opacity:.4; color:var(--oro);}
  .private-tours-deco.left{left:0;}
  .private-tours-deco.right{right:0;}
  .private-tours-deco.right svg{transform:scaleX(-1);}
  .private-tours-deco svg{position:absolute; left:50%; top:50%; width:100%; height:auto; margin-left:-50%; margin-top:-50%; will-change:transform; transition:transform .05s linear;}
  @media (max-width:900px){ .private-tours-deco{display:none;} }
  @media (prefers-reduced-motion: reduce){
    .private-tours-deco svg{transform:none !important; transition:none;}
    .private-tours-deco.right svg{transform:scaleX(-1) !important;}
  }
  .private-tours h2{font-size:clamp(1.5rem,2.8vw,2.1rem); margin-bottom:.9rem;}
  .private-tours p{font-size:1.25rem; color:var(--basalto-soft); line-height:1.6; max-width:640px; margin:0 auto;}
  .private-tours-actions{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:1.8rem;}

  /* ---- Sezione Buoni Regalo (home) ---- */
  .gift-section{
    position:relative;
    background:
      radial-gradient(circle at 15% 20%, rgba(212,183,136,.28), transparent 55%),
      radial-gradient(circle at 85% 80%, rgba(122,31,27,.35), transparent 60%),
      linear-gradient(135deg, #9e2b25 0%, #a35a45 45%, #9e2b25 100%);
    color:var(--marmo);
    padding:9rem 1.5rem;
    margin-top:6rem;
    margin-bottom:6rem;
    overflow:hidden;
  }
  .gift-section::before{
    content:'';
    position:absolute; inset:0;
    background-image:
        repeating-linear-gradient(45deg, rgba(39, 31, 18, 0.07) 0 2px, #00000005 2px 14px);
    pointer-events:none;
  }
  /* Cornice decorativa ai bordi superiore e inferiore: un fregio classico
     con meandro greco, foglie d'alloro e filo d'oro. Sostituisce il fade
     precedente e stacca la sezione dal marmo circostante con un elemento
     ornamentale coerente con il resto del sito. */
  .gift-ornament{
    position:absolute; left:0; right:0; height:56px;
    pointer-events:none; z-index:3; color:var(--oro-chiaro);
  }
  .gift-ornament.top{top:0;}
  .gift-ornament.bottom{bottom:0; transform:scaleY(-1);}
  .gift-ornament svg{width:100%; height:100%; display:block;}
  .gift-ornament .orn-rule{stroke:currentColor; stroke-width:1.2; opacity:.85;}
  .gift-ornament .orn-meander{stroke:currentColor; stroke-width:1.4; fill:none; opacity:.9;}
  .gift-ornament .orn-leaf{fill:currentColor; opacity:.85;}
  .gift-ornament .orn-berry{fill:currentColor;}
  .gift-ornament .orn-diamond{fill:currentColor; opacity:.9;}
  .gift-section-inner{position:relative; z-index:2;}
  .gift-section-inner{
    position:relative;
    max-width:1100px; margin:0 auto;
    display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center;
  }
  /* Effetto di apparizione con lo scroll: la sezione entra in scena con
     un fade + leggera salita quando raggiunge il viewport. Riusa il
     pattern .reveal-init / .is-visible già usato dalle altre sezioni,
     ma con una transizione più lunga e un piccolo scale per dare
     più presenza. */
  .gift-section.reveal-init{
    opacity:0;
    transform:translateY(40px) scale(.98);
    transition:opacity 1.1s ease-out, transform 1.1s ease-out;
  }
  .gift-section.reveal-init.is-visible{
    opacity:1;
    transform:translateY(0) scale(1);
  }
  @media (prefers-reduced-motion: reduce){
    .gift-section.reveal-init{opacity:1; transform:none; transition:none;}
  }
  .gift-eyebrow{
    font-family:var(--font-ui); text-transform:uppercase; letter-spacing:.24em;
    font-size:.78rem; font-weight:600; color:var(--oro-chiaro); margin:0 0 .8rem;
    text-shadow:0 1px 6px rgba(0,0,0,.4);
  }
  .gift-section h2{
    font-family:var(--font-display); font-size:clamp(2rem,4vw,3rem);
    margin:0 0 1.2rem; color:var(--marmo); line-height:1.15;
  }
  .gift-lead{
    font-family:var(--font-body); font-size:1.25rem; font-style:italic;
    color:rgba(237,230,214,.85); margin:0 0 2rem; max-width:34rem;
  }
  .gift-packages-preview{display:flex; gap:1rem; margin-bottom:2rem; flex-wrap:wrap;}
  .gift-pkg{
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    min-width:88px; padding:1rem 1.2rem;
    background:rgba(237,230,214,.05);
    border:1px solid rgba(212,183,136,.55);
    border-radius:8px;
    transition:transform .2s, border-color .2s, background .2s;
  }
  .gift-pkg:hover{transform:translateY(-3px); border-color:var(--oro-chiaro); background:rgba(212,183,136,.14);}
  .gift-pkg-num{font-family:var(--font-display); font-size:2rem; color:var(--oro-chiaro); line-height:1;}
  .gift-pkg-label{font-family:var(--font-ui); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(237,230,214,.75); margin-top:.3rem;}
  .gift-section-actions{display:flex; gap:1rem; flex-wrap:wrap;}
  .gift-cta{
    display:inline-block; font-family:var(--font-ui); font-size:.95rem; font-weight:600;
    text-transform:uppercase; letter-spacing:.1em;
    padding:1rem 2rem; border-radius:6px;
    background:var(--oro); color:#3a1a12; text-decoration:none;
    border:1px solid var(--oro-chiaro);
    box-shadow:0 8px 24px rgba(184,147,90,.35);
    transition:transform .15s, box-shadow .2s, background .2s;
  }
  .gift-cta:hover{background:var(--oro-chiaro); transform:translateY(-2px); box-shadow:0 12px 30px rgba(184,147,90,.5);}

  .gift-section-visual{display:flex; justify-content:center;}
  .gift-card{
    width:100%; max-width:340px; aspect-ratio:1.6/1;
    background:linear-gradient(135deg, #f4ecd8 0%, #e8dcc0 100%);
    border-radius:14px; padding:1.4rem;
    display:flex; flex-direction:column; justify-content:space-between;
    color:#2a0f0d;
    box-shadow:0 20px 50px rgba(0,0,0,.5), 0 0 0 1px rgba(184,147,90,.6);
    transform:rotate(-3deg);
    transition:transform .3s;
  }
  .gift-card:hover{transform:rotate(0deg) scale(1.02);}
  .gift-card-top{display:flex; justify-content:space-between; align-items:center;}
  .gift-card-brand{font-family:var(--font-display); font-size:1rem; letter-spacing:.05em; color:#7A1F1B;}
  .gift-card-tag{font-family:var(--font-ui); font-size:.65rem; text-transform:uppercase; letter-spacing:.12em; color:#7A1F1B; border:1px solid #7A1F1B; padding:.15rem .5rem; border-radius:20px;}
  .gift-card-body{display:flex; flex-direction:column; align-items:center; margin:.5rem 0;}
  .gift-card-label{font-family:var(--font-ui); font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; color:#5C6B57;}
  .gift-card-number{font-family:var(--font-display); font-size:3.5rem; line-height:1; color:#9E2B25;}
  .gift-card-bottom{display:flex; align-items:center; gap:.6rem; border-top:1px dashed rgba(122,31,27,.4); padding-top:.7rem;}
  .gift-card-qr{font-size:1.6rem; color:#2a0f0d;}
  .gift-card-hint{font-family:var(--font-ui); font-size:.7rem; color:#5C6B57; letter-spacing:.04em;}

  @media (max-width:820px){
    .gift-section{padding:6rem 1.2rem; margin-top:3.5rem; margin-bottom:3.5rem;}
    .gift-section-inner{grid-template-columns:1fr; gap:2rem;}
    .gift-section-visual{order:-1;}
    .gift-card{max-width:280px; transform:rotate(-2deg);}
  }
  .private-tours-actions .btn-primary,
  .private-tours-actions .btn-secondary{font-size:.95rem; padding:.9rem 1.8rem;}
  .private-tours-actions .btn-secondary{background:transparent; color:var(--pompeiano); border-color:var(--pompeiano);}
  .private-tours-actions .btn-secondary:hover{background:rgba(158,43,37,.08); border-color:var(--pompeiano);}
  .private-tours-actions .btn-wa{background:#25D366; border-color:#25D366; color:#0b2b16; box-shadow:0 4px 14px rgba(37,211,102,.35);}
  .private-tours-actions .btn-wa:hover{background:#1ebe5a; border-color:#1ebe5a; box-shadow:0 8px 18px rgba(37,211,102,.45);}
  @media (max-width:600px){
    .private-tours-wave, .private-tours-vine {height: 40px;}
    .private-tours{padding:4.5rem 1.25rem 5rem;}
    .private-tours p{font-size:1.1rem;}
    .private-tours-actions{flex-direction:column; align-items:stretch; gap:0.9rem}
    .private-tours-actions a{width:100%; text-align:center;}
  }

  /* ---- Carosello Notizie ---- */
  .news-section{position:relative; padding:5rem 0 5.5rem; background:var(--marmo); overflow:hidden;}
  .news-carousel{position:relative; overflow:hidden; padding:1rem 0;}
  .news-carousel::before,
  .news-carousel::after{
    content:''; position:absolute; top:0; bottom:0; width:12%; z-index:3; pointer-events:none;
  }
  .news-carousel::before{left:0; background:linear-gradient(90deg, var(--marmo) 0%, rgba(237,230,214,0) 100%);}
  .news-carousel::after{right:0; background:linear-gradient(270deg, var(--marmo) 0%, rgba(237,230,214,0) 100%);}
  .news-track{display:flex; gap:1.6rem; width:max-content; will-change:transform; animation:newsScroll 90s linear infinite;}
  .news-carousel:hover .news-track,
  .news-carousel:focus-within .news-track{animation-play-state:paused;}
  @keyframes newsScroll{
    from{transform:translate3d(0,0,0);}
    to{transform:translate3d(-50%,0,0);}
  }
  @media (prefers-reduced-motion: reduce){
    .news-track{animation:none; overflow-x:auto; padding:0 1.5rem;}
  }
  .news-card{
    position:relative; flex:0 0 auto; width:340px; aspect-ratio:4/3;
    border-radius:10px; overflow:hidden; text-decoration:none; color:var(--marmo);
    background:linear-gradient(160deg,#241E17 0%, #1F1B16 55%, #171410 100%);
    box-shadow:var(--ombra); transition:transform .3s ease, box-shadow .3s ease;
  }
  .news-card:hover, .news-card:focus-visible{transform:translateY(-4px); box-shadow:0 18px 36px rgba(31,27,22,.28);}
  .news-card img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    transition:opacity .5s ease, transform .6s ease;
  }
  .news-card:hover img, .news-card:focus-visible img{opacity:0; transform:scale(1.06);}
  .news-card-overlay{
    position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
    padding:1.4rem 1.5rem; z-index:2;
    background:linear-gradient(180deg, rgba(23,20,16,.15) 0%, rgba(23,20,16,.55) 55%, rgba(23,20,16,.92) 100%);
    transition:background .4s ease;
  }
  .news-card:hover .news-card-overlay, .news-card:focus-visible .news-card-overlay{
    background:linear-gradient(180deg, rgba(74,37,69,.55) 0%, rgba(31,27,22,.85) 55%, rgba(23,20,16,.96) 100%);
  }
  .news-card-title{
    font-family:var(--font-display); font-size:1.35rem; line-height:1.25; color:var(--marmo);
    text-shadow:0 2px 10px rgba(0,0,0,.85); margin:0;
  }
  .news-card-excerpt{
    font-family:var(--font-body); font-style:italic; font-size:1.05rem; line-height:1.4;
    color:var(--marmo-scuro); margin:.5rem 0 0;
    max-height:0; opacity:0; overflow:hidden;
    transition:max-height .4s ease, opacity .35s ease, margin-top .35s ease;
  }
  .news-card-cta{
    display:inline-flex; align-items:center; gap:.4rem; margin-top:.9rem;
    font-family:var(--font-ui); font-size:.82rem; text-transform:uppercase; letter-spacing:.08em;
    color:var(--oro-chiaro); opacity:0; transform:translateY(6px);
    transition:opacity .35s ease, transform .35s ease;
  }
  .news-card:hover .news-card-excerpt, .news-card:focus-visible .news-card-excerpt{
    max-height:120px; opacity:1;
  }
  .news-card:hover .news-card-cta, .news-card:focus-visible .news-card-cta{
    opacity:1; transform:translateY(0);
  }
  @media (hover:none){
    .news-card img{opacity:.55;}
    .news-card-excerpt{max-height:120px; opacity:1;}
    .news-card-cta{opacity:1; transform:none;}
  }
  @media (max-width:600px){
    .news-card{width:260px;}
    .news-card-title{font-size:1.15rem;}
    .news-card-excerpt{font-size:.95rem;}
    .news-section{padding:3.5rem 0 4rem;}
  }

  .site-footer{background:var(--basalto); color:var(--marmo-scuro); padding:3.5rem 1.5rem 2rem;}
  .footer-inner{max-width:1000px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr 1fr; gap:2rem;}
  .footer-inner h4{font-family:var(--font-ui); text-transform:uppercase; letter-spacing:.08em; font-size:.95rem; color:var(--oro-chiaro); margin-bottom:1rem;}
  .footer-inner p, .footer-inner a{font-size:1.15rem; color:var(--marmo-scuro); text-decoration:none; display:block; margin-bottom:.55rem; line-height:1.5;}
  .footer-inner a:hover{color:var(--oro-chiaro);}
  .footer-bottom{max-width:1000px; margin:2.5rem auto 0; padding-top:1.5rem; border-top:1px solid var(--basalto-soft); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem;}
  .footer-monogram{display:flex; align-items:center; gap:.6rem; font-family:var(--font-display); letter-spacing:.15em; font-size:.85rem; color:var(--bronzo);}
  .footer-monogram svg{width:26px; height:26px; color:var(--oro);}
  .footer-fine{font-family:var(--font-ui); font-size:.78rem; color:var(--bronzo);}
  .footer-legal{font-family:var(--font-ui); font-size:.78rem; color:var(--bronzo); margin-top:.4rem;}
  .footer-legal a{color:var(--bronzo); text-decoration:none; border-bottom:1px solid transparent; display:inline; margin:0 .2rem;}
  .footer-legal a:hover{color:var(--oro-chiaro); border-color:var(--oro-chiaro);}
  .visually-hidden{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
  .footer-admin-link{display:none; font-family:var(--font-ui); font-size:.78rem; color:var(--bronzo); text-decoration:none; border-bottom:1px solid transparent;}
  .footer-admin-link:hover{color:var(--oro-chiaro); border-color:var(--oro-chiaro);}

  .toast{position:fixed; bottom:1.5rem; right:1.5rem; background:var(--basalto); color:var(--marmo); font-family:var(--font-ui); font-size:.9rem; padding:.9rem 1.3rem; border-radius:3px; border-left:4px solid var(--pompeiano); box-shadow:0 12px 28px rgba(0,0,0,.3); opacity:0; transform:translateY(10px); pointer-events:none; transition:opacity .3s, transform .3s; z-index:100; max-width:320px;}
  .toast.show{opacity:1; transform:translateY(0);}

  /* Fade-in molto leggero delle sezioni al primo ingresso nel viewport.
     Solo opacità (nessun transform): non altera il layout né la reattività.
     Se JS è disattivato o IntersectionObserver non è disponibile, la classe
     .reveal-init non viene mai aggiunta e le sezioni restano visibili. */
  .reveal-init{opacity:0; transform:translateY(14px); transition:opacity .8s ease-out, transform .8s ease-out;}
  .reveal-init.is-visible{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal-init{opacity:1; transform:none; transition:none;}
  }

  @media (max-width:980px){
    .tours-grid{grid-template-columns:1fr; gap:2rem;}
    section{padding:4rem 0;}
  }
  @media (max-width:820px){
    .about-grid{grid-template-columns:1fr; text-align:center; gap:2.5rem;}
    .about-portrait-wrap{max-width:280px;}
    .about-quote{text-align:left;}
    .credentials li{text-align:left;}
    .footer-inner{grid-template-columns:1fr; text-align:center;}
    .hero{padding:5.5rem 1.5rem 4rem;}
  }
  @media (max-width:600px){
    /* Su telefono l'hero deve occupare quasi tutto lo schermo: così la
       sezione successiva non si intravede subito sotto il titolo. */
    .hero{
      min-height:calc(100svh - 64px);
      display:flex;
      align-items:center;
      justify-content:center;
      padding:5rem 1.25rem 4rem;
    }
    .hero-content{width:100%;}
  }
  @media (max-width:780px){
    .nav-toggle{display:inline-flex;}
    .admin-link-header{display:none;}
    .footer-admin-link{display:inline-block;}
    .main-nav{
      position:absolute; top:100%; left:0; right:0;
      flex-direction:column; align-items:stretch; gap:0;
      background:var(--marmo); border-bottom:1px solid var(--marmo-riga);
      max-height:0; overflow:hidden; opacity:0; padding:0 1.5rem;
      transition:max-height .3s ease, opacity .25s ease;
    }
    .main-nav.is-open{max-height:340px; opacity:1; padding:.5rem 1.5rem 1rem;}
    .main-nav a{width:100%; padding:.9rem 0; border-bottom:1px solid var(--marmo-riga);}
    .main-nav a:last-child{border-bottom:none;}
  }
  @media (max-width:600px){
    body{font-size:18px;}
    section{padding:3.2rem 0;}
    .section-heading{margin-bottom:2.2rem;}
    .hero-cta{flex-direction:column; align-items:stretch;}
    .hero-cta a{width:100%; text-align:center;}
    .tours-grid{grid-template-columns:1fr; gap:1.4rem;}
    .card-body{padding:1.4rem 1.3rem 1.5rem;}
    .card-media-overlay{padding:1.2rem 1.3rem;}
    .card-media-overlay h3{font-size:1.6rem;}
    .card-media-meta{font-size:1.05rem;}
    .tour-desc{font-size:1.2rem;}
    .tour-price{font-size:1.6rem;}
    .about-portrait-wrap{max-width:220px;}
    .about-portrait-wrap::before{inset:12px -12px -12px 12px;}
    /* La sezione di benvenuto parte più in basso: niente biografia a metà
       schermo subito dopo l'hero. */
    #chi-sono{padding-top:3rem;}
    .welcome{padding:3.5rem 1.25rem 1.5rem;}
    .welcome::before{height:2.2rem;}
    .about{padding-top:1.5rem;}
    .about-quote{font-size:1.25rem; padding-left:1.3rem;}
  }
  @media (max-width:380px){
    .hero h1{font-size:2rem;}
    .hero-tagline{font-size:1.05rem;}
    .brand span{font-size:.98rem;}
    .btn-ghost-small{padding:.4rem .75rem; font-size:.74rem;}
    .main-nav a{font-size:.82rem;}
    .card-media-overlay h3{font-size:1.4rem; padding-right:0;}
    .card-media-meta{font-size:1rem;}
    .card-stamps{position:static; align-items:flex-start; margin-bottom:.4rem;}
  }
