:root{
  --ink:#241F19;
  --parchment:#F2E9D6;
  --parchment-deep:#E9DCC0;
  --card:#FBF7EC;
  --terracotta:#9C3B1D;
  --terracotta-deep:#7A2E15;
  --adriatic:#1D3A4A;
  --adriatic-deep:#12262F;
  --gold:#B98A2E;
  --laurel:#4E6B47;
  --rosso:#6E2A2A;
  --line:rgba(36,31,25,0.14);
  --shadow: 0 12px 30px -14px rgba(36,31,25,0.35);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation:none !important; transition:none !important;} }
body{
  margin:0; background:var(--parchment); color:var(--ink);
  font-family:'Inter',sans-serif; font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Fraunces',serif; margin:0; letter-spacing:-0.01em;}
a{color:inherit;}
.mono{font-family:'JetBrains Mono',monospace;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}

/* ---------- NAV ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(242,233,214,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1120px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; gap:22px; overflow-x:auto;
}
.nav-brand{display:flex; align-items:center; gap:8px; text-decoration:none; white-space:nowrap; margin-right:8px;}
.nav-icon{width:26px; height:26px; object-fit:contain; flex:none;}
.nav-brand .rl{font-family:'Fraunces',serif; font-weight:700; font-size:1.15rem; color:var(--terracotta-deep);}
.nav-brand .rest{font-family:'JetBrains Mono',monospace; font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase; opacity:0.7;}
.nav-links{display:flex; gap:4px; flex-wrap:nowrap;}
.nav-links a{
  text-decoration:none; font-size:0.82rem; letter-spacing:0.06em; text-transform:uppercase;
  padding:8px 12px; border-radius:999px; white-space:nowrap; color:var(--ink); opacity:0.75;
}
.nav-links a:hover{opacity:1; background:var(--parchment-deep);}
.nav-links a.current{opacity:1; background:var(--terracotta); color:#fff;}

/* ---------- HERO ---------- */
.hero{
  position:relative; padding:100px 24px 90px; text-align:center; overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(156,59,29,0.16), transparent 55%),
    radial-gradient(ellipse at 85% 15%, rgba(29,58,74,0.14), transparent 55%),
    var(--parchment);
}
.hero-eyebrow{font-family:'JetBrains Mono',monospace; font-size:0.78rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--terracotta-deep); margin-bottom:18px;}
.hero h1{font-size:clamp(2.6rem, 6vw, 5rem); font-weight:600; line-height:0.98;}
.hero h1 em{font-style:italic; font-weight:500; color:var(--terracotta);}
.hero p{max-width:560px; margin:22px auto 0; font-size:1.08rem; color:rgba(36,31,25,0.72);}
.hero-map{margin-top:44px; display:flex; justify-content:center;}
.skyline{width:min(720px,100%); height:auto;}

/* small page hero (destination pages) */
.page-hero{padding:70px 24px 44px; text-align:left;}
.page-hero .wrap{max-width:1120px;}
.page-hero .hero-eyebrow{margin-bottom:14px;}
.page-hero h1{font-size:clamp(2.4rem,5vw,4rem);}
.page-hero p{margin:16px 0 0; max-width:640px; font-size:1.05rem; color:rgba(36,31,25,0.72);}

/* ---------- ABOUT ---------- */
.about{padding:70px 0 90px; background:var(--card); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.about-grid{display:grid; grid-template-columns:1fr 1.4fr; gap:50px; align-items:center;}
.about-mark{
  width:100%; aspect-ratio:1; border-radius:20px; background:linear-gradient(160deg,var(--terracotta-deep),var(--terracotta));
  display:flex; align-items:center; justify-content:center; color:#fff; position:relative; overflow:hidden;
}
.about-mark .initials{font-family:'Fraunces',serif; font-size:5rem; font-weight:700; letter-spacing:-0.02em;}
.about-mark img{width:62%; height:62%; object-fit:contain;}
.about h2{font-size:clamp(1.9rem,3.6vw,2.6rem); margin-bottom:18px;}
.about p{font-size:1.02rem; color:rgba(36,31,25,0.82); margin:0 0 14px;}
.about .signoff{font-family:'Fraunces',serif; font-style:italic; font-size:1.15rem; color:var(--terracotta-deep); margin-top:20px;}
@media (max-width:760px){ .about-grid{grid-template-columns:1fr;} .about-mark{max-width:220px; margin:0 auto;} }

/* ---------- REGION LANDING CARDS (index page) ---------- */
.dest-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; margin-top:20px;}
.dest-card{
  position:relative; border-radius:18px; padding:30px 26px; color:#fff; text-decoration:none;
  min-height:200px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; box-shadow:var(--shadow);
}
.dest-card .tag{font-family:'JetBrains Mono',monospace; font-size:0.7rem; letter-spacing:0.16em; text-transform:uppercase; opacity:0.85;}
.dest-card h3{font-size:1.7rem; margin-top:6px;}
.dest-card .note{font-size:0.85rem; opacity:0.85; margin-top:8px;}
.dest-card.roma{background:linear-gradient(160deg,var(--terracotta-deep),var(--terracotta));}
.dest-card.firenze{background:linear-gradient(160deg,#5c4413,var(--gold));}
.dest-card.venezia{background:linear-gradient(160deg,var(--adriatic-deep),var(--adriatic));}
.dest-card.prosecco{background:linear-gradient(160deg,#2e3d29,var(--laurel));}
.dest-card:hover{transform:translateY(-2px); transition:transform 0.15s ease;}

/* ---------- REGION BAND (destination pages) ---------- */
.region-band{padding:70px 24px 56px; color:#fff; position:relative; overflow:hidden;}
.region-band .wrap{position:relative; z-index:2;}
[data-theme="roma"] .region-band{background:linear-gradient(160deg,var(--terracotta-deep),var(--terracotta));}
[data-theme="firenze"] .region-band{background:linear-gradient(160deg,#5c4413,var(--gold));}
[data-theme="venezia"] .region-band{background:linear-gradient(160deg,var(--adriatic-deep),var(--adriatic));}
[data-theme="prosecco"] .region-band{background:linear-gradient(160deg,#2e3d29,var(--laurel));}
.region-tag{font-family:'JetBrains Mono',monospace; font-size:0.75rem; letter-spacing:0.18em; text-transform:uppercase; opacity:0.85;}
.region-title{font-size:clamp(2.1rem,4.4vw,3.4rem); font-weight:600; margin-top:10px;}
.region-sub{max-width:620px; margin-top:14px; opacity:0.92; font-size:1.02rem;}

.section-label{
  font-family:'JetBrains Mono',monospace; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--terracotta-deep); margin:52px 0 18px; display:flex; align-items:center; gap:10px;
}
[data-theme="firenze"] .section-label{color:#7a5c17;}
[data-theme="venezia"] .section-label{color:var(--adriatic);}
[data-theme="prosecco"] .section-label{color:var(--laurel);}
.section-label::after{content:""; flex:1; height:1px; background:var(--line); order:2;}
.section-label .chevron{order:3; margin-left:4px; font-size:0.8em;}

.card-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px;}
.place-card{
  background:var(--card); border:1px solid var(--line); border-radius:14px; padding:20px 22px;
  box-shadow:var(--shadow); display:flex; flex-direction:column; gap:8px;
}
.place-card h4{font-size:1.08rem; font-weight:600;}
.place-card .addr{font-size:0.78rem; color:rgba(36,31,25,0.55);}
.place-card p{margin:0; font-size:0.92rem; color:rgba(36,31,25,0.82);}
.place-links{margin-top:auto; padding-top:10px; display:flex; gap:14px; flex-wrap:wrap;}
.place-links a{
  font-size:0.76rem; text-decoration:none; font-weight:600; letter-spacing:0.03em;
  color:var(--terracotta-deep); display:inline-flex; align-items:center; gap:5px;
}
[data-theme="firenze"] .place-links a{color:#7a5c17;}
[data-theme="venezia"] .place-links a{color:var(--adriatic);}
[data-theme="prosecco"] .place-links a{color:var(--laurel);}
.place-links a:hover{text-decoration:underline;}

.pick{position:relative;}
.pick::before{
  content:"favorite"; position:absolute; top:-11px; left:18px; background:var(--terracotta);
  color:#fff; font-family:'JetBrains Mono',monospace; font-size:0.62rem; letter-spacing:0.1em;
  text-transform:uppercase; padding:3px 9px; border-radius:999px;
}
[data-theme="firenze"] .pick::before{background:var(--gold);}
[data-theme="venezia"] .pick::before{background:var(--adriatic);}
[data-theme="prosecco"] .pick::before{background:var(--laurel);}

.aside-note{font-size:0.9rem; color:rgba(36,31,25,0.65); margin:14px 0 26px; font-style:italic;}

/* ---------- ACCORDION ---------- */
.chevron{display:inline-block; transition:transform 0.2s ease;}
details[open] .chevron{transform:rotate(180deg);}

.accordion{border-bottom:1px solid var(--line);}
.accordion > summary{cursor:pointer; list-style:none;}
.accordion > summary::-webkit-details-marker{display:none;}
.accordion > summary::marker{content:"";}
details.accordion > summary.section-label{margin:0; padding:44px 0 18px;}
.accordion-body{padding-bottom:44px;}

/* ---------- ITINERARIES (Roma page) ---------- */
.itin-section{background:var(--ink); color:var(--parchment); padding-top:80px; padding-bottom:80px;}
.itin-section[open]{padding-bottom:100px;}
.itin-section > summary{cursor:pointer; list-style:none;}
.itin-section > summary::-webkit-details-marker{display:none;}
.itin-section > summary::marker{content:"";}
.itin-section .region-title{display:flex; align-items:center; gap:16px;}
.itin-section .chevron{font-size:1.4rem; font-family:'JetBrains Mono',monospace;}
.itin-section .region-tag{color:rgba(242,233,214,0.6);}
.itin-section .region-title{color:#fff;}
.itin-section .region-sub{color:rgba(242,233,214,0.75);}
.itin-body > .wrap{padding-top:0;}

.day-tabs{display:flex; gap:10px; margin:40px 0 36px; flex-wrap:wrap;}
.day-tab{
  font-family:'JetBrains Mono',monospace; font-size:0.85rem; letter-spacing:0.05em;
  background:transparent; border:1px solid rgba(242,233,214,0.35); color:var(--parchment);
  padding:10px 20px; border-radius:999px; cursor:pointer;
}
.day-tab.active{background:var(--terracotta); border-color:var(--terracotta); color:#fff;}
.itin-plan{display:none;}
.itin-plan.active{display:block;}

.ticket{
  background:var(--card); color:var(--ink); border-radius:16px; margin-bottom:26px;
  display:grid; grid-template-columns:120px 1fr; overflow:hidden; box-shadow:var(--shadow);
  position:relative;
}
.ticket::before{
  content:""; position:absolute; left:120px; top:0; bottom:0; width:0;
  border-left:2px dashed rgba(36,31,25,0.25); transform:translateX(-1px);
}
.ticket-stub{
  background:var(--terracotta-deep); color:#fff; padding:22px 16px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  text-align:center;
}
.ticket-stub .day-num{font-family:'Fraunces',serif; font-size:2.2rem; font-weight:600; line-height:1;}
.ticket-stub .day-code{font-family:'JetBrains Mono',monospace; font-size:0.68rem; letter-spacing:0.15em; opacity:0.8;}
.ticket-body{padding:22px 26px 20px;}
.ticket-body h4{font-size:1.25rem; font-weight:600; margin-bottom:4px;}
.ticket-body .day-theme{font-size:0.8rem; color:rgba(36,31,25,0.55); font-family:'JetBrains Mono',monospace; letter-spacing:0.04em; margin-bottom:16px;}

.slot{display:grid; grid-template-columns:96px 1fr; gap:14px; padding:11px 0; border-top:1px solid var(--line);}
.slot:first-of-type{border-top:none;}
.slot-time{font-family:'JetBrains Mono',monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--terracotta-deep); padding-top:2px;}
.slot-content b{font-weight:600;}
.slot-content p{margin:3px 0 0; font-size:0.9rem; color:rgba(36,31,25,0.78);}
.slot.meal .slot-time{color:var(--laurel);}
.slot.break .slot-time{color:var(--gold);}

@media (max-width:640px){
  .ticket{grid-template-columns:1fr;}
  .ticket::before{display:none;}
  .ticket-stub{flex-direction:row; justify-content:flex-start; gap:12px; padding:14px 20px;}
  .slot{grid-template-columns:80px 1fr;}
}

.optional-box{ margin-top:34px; border:1px solid rgba(242,233,214,0.25); border-radius:14px; padding:22px 26px; }
.optional-box h5{font-family:'JetBrains Mono',monospace; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:12px;}
.optional-box p{margin:0 0 12px; font-size:0.92rem; color:rgba(242,233,214,0.82);}
.optional-box a{color:#fff; font-weight:600; text-decoration:underline;}

footer{padding:50px 24px; text-align:center; font-size:0.85rem; color:rgba(36,31,25,0.5);}
footer a{color:var(--terracotta-deep); text-decoration:none; font-weight:600;}
