@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Manrope:wght@400;500;600;700&display=swap');
:root { --ink:#202a25; --olive:#53634b; --gold:#c19a58; }
body, input, select, textarea { font-family:'Manrope',sans-serif; }
h1,h2,h3 { font-family:'Playfair Display',serif; letter-spacing:-.025em; color:var(--ink); }
h1 { font-size:clamp(3.4rem,7vw,6.4rem)!important; line-height:.98!important; }
h2 { font-size:clamp(2rem,4vw,3.2rem)!important; }
p { color:#515c55; }
.eyebrow { text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; font-weight:700; color:var(--olive); margin-bottom:1rem!important; }
.hero .content { background:linear-gradient(135deg,rgba(250,247,239,.97),rgba(250,247,239,.86)); }
.hero .image img { object-position:center; }
.button { border-radius:2px; letter-spacing:.08em; text-transform:uppercase; font-size:.72rem!important; }
.button.primary { background:var(--olive); box-shadow:inset 0 0 0 1px var(--olive)!important; }
.button:hover { background:var(--gold)!important; box-shadow:inset 0 0 0 1px var(--gold)!important; }
.spotlight .content { padding:5rem 4rem; }
.spotlight .image img { object-fit:cover; }
.note { border-left:3px solid var(--gold); padding-left:1rem; font-style:italic; }
.items section .icon.major { color:var(--olive); }
.gallery article .caption { background:rgba(29,39,32,.92); }
footer { font-size:.85rem; }
footer .copyright { font-size:.75rem; }
@media screen and (max-width:736px) { .spotlight .content { padding:2.5rem 1.5rem; } .hero .content { padding:3rem 1.5rem; } }

.audio-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-top:2rem}
.audio-list article{padding:1.5rem;border:1px solid rgba(127,127,127,.28);border-radius:.5rem}
.audio-list audio{width:100%;margin:.75rem 0}
.audio-list p{font-size:.95rem}
.gallery article .caption{max-height:100%;overflow:auto}
.small{font-size:.85rem;opacity:.8;margin-top:2rem}


/* Travel-journal redesign */
html { scroll-behavior:smooth; }
body { background:#f6f2e9; color:#242923; }
.travel-nav { position:absolute; z-index:20; top:0; left:0; width:100%; padding:1.35rem 4vw; display:flex; justify-content:space-between; align-items:center; color:#fff; background:linear-gradient(180deg,rgba(15,30,26,.72),transparent); font-size:.82rem; letter-spacing:.04em; }
.travel-nav a { border-bottom:0; color:inherit; margin-left:1.25rem; }
.travel-nav .brand { margin:0; font-family:Georgia,serif; font-size:1.15rem; letter-spacing:.02em; }
.travel-nav .brand span { margin-left:.5rem; font-size:.85rem; }
.hero .content { background:rgba(18,35,29,.35); color:white; text-shadow:0 1px 12px #18251f; }
.hero .content .button { text-shadow:none; }
.eyebrow,.journal-kicker { color:#9b6d37; font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.journal-intro { padding:7rem 8vw 5rem; max-width:1100px; margin:auto; }
.journal-intro h2 { font:clamp(2.5rem,6vw,5.4rem)/1.02 Georgia,serif; letter-spacing:-.04em; margin:.6rem 0 1.4rem; }
.journal-intro h2 em { color:#7a8b66; font-weight:400; }
.journal-intro>p { max-width:620px; font-size:1.15rem; }
.pullquote { border-left:3px solid #b27d42; margin-top:2.2rem; padding:.4rem 0 .4rem 1.2rem; font:italic 1.4rem Georgia,serif; color:#6f4930; }
.map-section { background:#e7e5d8; padding:5rem 8vw; display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.map-copy h2,.quote-strip h2 { font:clamp(2rem,4vw,3.6rem)/1.05 Georgia,serif; }
#map-detail { margin-top:1.5rem; padding:1rem 1.2rem; border-left:3px solid #b27d42; background:rgba(255,255,255,.55); min-height:4rem; }
.italy-map { max-width:460px; margin:auto; width:100%; }
.italy-map svg { width:100%; max-height:520px; overflow:visible; }
.italy-map .land { fill:#9cae8b; stroke:#f6f2e9; stroke-width:3; stroke-linejoin:round; }
.italy-map .island { fill:#9cae8b; stroke:#f6f2e9; stroke-width:3; }
.map-point { cursor:pointer; outline:none; }
.map-point circle { fill:#a65338; stroke:#fff8e9; stroke-width:3; transition:r .2s; }
.map-point:hover circle,.map-point:focus circle { r:11; fill:#633c2d; }
.map-point text { font: bold 11px Arial,sans-serif; fill:#29362b; paint-order:stroke; stroke:#e7e5d8; stroke-width:3px; stroke-linejoin:round; }
.map-caption { text-align:center; font-size:.75rem; opacity:.7; }
#maestri .gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; padding:0 5vw 5rem; }
#maestri .gallery article { background:#fffdf8; box-shadow:0 12px 32px rgba(45,45,32,.08); }
#maestri .gallery article .image { height:300px; display:block; overflow:hidden; }
#maestri .gallery article .image img { width:100%; height:100%; object-fit:cover; }
#maestri .gallery .caption { position:static; padding:1.5rem; color:#29312a; }
#maestri .gallery .caption h3 { font:1.45rem Georgia,serif; }
#maestri .gallery .caption p { font-size:.93rem; line-height:1.75; }
#maestri .gallery article:nth-child(6) { display:none; }
.quote-strip { padding:5rem 8vw; display:grid; grid-template-columns:1fr 1fr; gap:3rem; background:#283d32; color:#f7f1e5; }
.quote-strip span { font-size:.7rem; letter-spacing:.18em; color:#d7b17b; }
.quote-strip .fact { border-top:1px solid #617165; padding-top:1rem; color:#e0d1b5; }
.audio-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.audio-list article { padding:1.5rem; background:#fffdf8; border:1px solid #e5dfd1; text-align:left; }
.audio-list audio { width:100%; }
@media(max-width:736px) { .travel-nav { padding:1rem; align-items:flex-start; } .travel-nav>div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.35rem; } .travel-nav a { margin-left:.5rem; font-size:.7rem; } .travel-nav .brand span { display:none; } .journal-intro { padding:4rem 1.5rem; } .map-section,.quote-strip { grid-template-columns:1fr; padding:3rem 1.5rem; gap:1.5rem; } #maestri .gallery { grid-template-columns:1fr; padding:0 1rem 3rem; } #maestri .gallery article .image { height:260px; } .audio-list { grid-template-columns:1fr; } }

/* Readability update: calm contrast, generous spacing, clear hierarchy */
:root {
  --ink: #202923;
  --olive: #405b45;
  --gold: #98632f;
  --paper: #fbfaf6;
  --muted: #454e47;
}
html { scroll-behavior: smooth; }
body {
  background: var(--paper);
  color: var(--ink);
  font-size: 17px;
  line-height: 1.8;
  letter-spacing: 0;
}
p, li, .map-caption, .small { color: var(--muted); line-height: 1.85; }
p { margin-bottom: 1.25rem; }
h1, h2, h3, h4, h5, h6 { color: #202923; line-height: 1.2; letter-spacing: -.015em; }
h1 { font-size: clamp(2.8rem, 6vw, 5.4rem) !important; line-height: 1.04 !important; }
h2 { font-size: clamp(1.9rem, 3.5vw, 2.8rem) !important; line-height: 1.18 !important; margin-bottom: 1.25rem; }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem) !important; line-height: 1.3; }
.content, .inner { max-width: 1100px; }
.spotlight .content { padding: clamp(2.5rem, 5vw, 5rem); }
.spotlight .content p { max-width: 62ch; }
.eyebrow, .journal-kicker { color: #805322; letter-spacing: .12em; font-size: .78rem; line-height: 1.5; }
.travel-nav {
  position: absolute;
  padding: 1.1rem 5vw;
  background: linear-gradient(180deg, rgba(16, 30, 24, .88), rgba(16, 30, 24, .48));
  color: #fff;
  font-size: .92rem;
  letter-spacing: 0;
}
.travel-nav a { text-decoration: none; }
.travel-nav a:hover, .travel-nav a:focus-visible { text-decoration: underline; text-underline-offset: .25em; }
.hero .content {
  background: rgba(20, 34, 28, .68);
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,.35);
  padding: clamp(2rem, 5vw, 4rem);
}
.hero .content h1, .hero .content p, .hero .content .eyebrow { color: #fff; }
.hero .content .major { max-width: 34em; font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.8; }
.button { font-size: .82rem !important; letter-spacing: .04em; line-height: 1.45; min-height: 3.1rem; padding: .8rem 1.25rem; }
.button.primary, .hero .button { background: #405b45; box-shadow: inset 0 0 0 1px #405b45 !important; }
.button:hover, .button:focus-visible { background: #2d4332 !important; box-shadow: inset 0 0 0 1px #2d4332 !important; }
.journal-intro { max-width: 1000px; padding: clamp(4rem, 7vw, 7rem) 6vw; }
.journal-intro h2 { font-size: clamp(2.5rem, 5vw, 4.5rem) !important; line-height: 1.1 !important; }
.journal-intro>p { max-width: 58ch; font-size: 1.12rem; }
.map-section { background: #eeeee6; }
.map-copy p { max-width: 58ch; }
#map-detail { color: #26362b; line-height: 1.75; border-left-color: #805322; background: #fffefa; padding: 1.25rem; }
.italy-map .land, .italy-map .island { fill: #9cac91; }
.map-point text { font-size: 12px; fill: #1d2a20; stroke: #eeeee6; stroke-width: 3.5px; }
#maestri .gallery article { border: 1px solid #e5e2d9; box-shadow: 0 6px 20px rgba(34, 42, 34, .06); }
#maestri .gallery .caption { padding: 1.5rem 1.6rem 1.8rem; }
#maestri .gallery .caption p { font-size: 1rem; line-height: 1.8; }
.quote-strip { background: #263b2e; }
.quote-strip h2, .quote-strip p, .quote-strip .fact { color: #f8f5ec; line-height: 1.8; }
.audio-list { gap: 1rem; }
.audio-list article { border-radius: .35rem; padding: 1.5rem; }
.audio-list article h3 { margin-bottom: .65rem; }
.audio-list audio { display: block; min-height: 44px; }
a { text-underline-offset: .2em; }
a:focus-visible, button:focus-visible, .map-point:focus-visible { outline: 3px solid #a56e35; outline-offset: 4px; }
@media (max-width: 736px) {
  body { font-size: 16px; line-height: 1.8; }
  .travel-nav { position: absolute; gap: .6rem; }
  .travel-nav>div { gap: .5rem; }
  .travel-nav a { font-size: .78rem; }
  .hero .content { padding: 2rem 1.4rem; }
  .spotlight .content { padding: 2.5rem 1.4rem; }
  .journal-intro { padding: 3.5rem 1.4rem; }
  .map-section, .quote-strip { padding: 3rem 1.4rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
