/* ===================== Caoimhe & Mike — Wedding Website ===================== */
/* Design system: old-world Italian elegance, handmade paper, letterpress stationery. */

:root{
  --burgundy:#522228;       /* primary: buttons, headings, decorative accents, nav text on light */
  --burgundy-soft:#55242B;  /* section headings, card titles */
  --ivory:#F7F2EA;          /* text on dark, hero titles, buttons on burgundy */
  --paper:#F2ECE4;          /* main page background */
  --card-bg:#FBF7F1;        /* card background, slightly lighter than page */
  --border:#DED3C5;         /* card borders, dividers, rules */
  --body-text:#3D2A28;      /* paragraphs, descriptions */
  --gold:#B08A4A;           /* sparing accent: small rules, icons, hover underline */
  --nav-hover-hero:#E8D8C6; /* nav link hover while over hero imagery */
  --nav-hover-scrolled:#8E5C63; /* nav link hover once scrolled to stationery bar */
  --shadow-warm:rgba(45,20,20,.08);
  --ink:23,10,12; /* warm near-black used for photo scrims, in place of cool gray/black */
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--paper);
  font-family:'EB Garamond',serif;
  color:var(--body-text);
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }

/* ---------- Nav ---------- */
.site-nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:44px;
  padding:30px 48px;
  flex-wrap:wrap;
  background:transparent;
  border-bottom:1px solid transparent;
  box-shadow:0 4px 16px rgba(45,20,20,0);
  transition:background-color .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.site-nav a{
  position:relative;
  font-family:'EB Garamond',serif;
  font-size:13.5px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ivory);
  text-decoration:none;
  padding-bottom:4px;
  white-space:nowrap;
  transition:color .3s ease;
}
.site-nav a:hover{ color:var(--nav-hover-hero); }
.site-nav a.active::after{
  content:'';
  position:absolute;
  left:6%; right:6%; bottom:0;
  height:.5px;
  background:var(--gold);
}
.site-nav.scrolled{
  background:var(--ivory);
  border-bottom-color:var(--border);
  box-shadow:0 4px 16px var(--shadow-warm);
}
.site-nav.scrolled a{ color:var(--burgundy); }
.site-nav.scrolled a:hover{ color:var(--nav-hover-scrolled); }

/* ---------- Nav: mobile hamburger toggle ---------- */
.nav-toggle{
  display:none;
  position:relative;
  z-index:41;
  width:44px; height:44px;
  padding:0; margin:0; border:0; background:transparent; cursor:pointer;
}
.nav-toggle span{
  position:absolute; left:12px; right:12px; height:1.5px;
  background:var(--ivory);
  transition:background-color .3s ease;
}
.nav-toggle span:nth-child(1){ top:15px; }
.nav-toggle span:nth-child(2){ top:21.5px; }
.nav-toggle span:nth-child(3){ top:28px; }
.site-nav.scrolled .nav-toggle span{ background:var(--burgundy); }

/* ---------- Nav: full-screen mobile overlay ---------- */
.mobile-menu{
  position:fixed; inset:0; z-index:40;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--burgundy);
  opacity:0; visibility:hidden;
  transition:opacity .4s ease, visibility 0s linear .4s;
}
.mobile-menu.open{
  opacity:1; visibility:visible;
  transition:opacity .4s ease, visibility 0s linear 0s;
}
.mobile-menu-close{
  position:absolute; top:26px; right:24px;
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border:0; background:transparent; cursor:pointer;
  color:var(--ivory); font-family:'EB Garamond',serif; font-size:30px; line-height:1;
  transition:color .25s ease;
}
.mobile-menu-close:hover{ color:var(--nav-hover-hero); }
.mobile-menu-links{
  display:flex; flex-direction:column; align-items:center;
  gap:28px;
}
.mobile-menu-links a{
  font-family:'Cormorant Garamond',serif;
  font-size:34px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ivory);
  text-decoration:none;
  transition:color .25s ease;
}
.mobile-menu-links a:hover,
.mobile-menu-links a.active{ color:var(--nav-hover-hero); }
.mobile-menu-divider{ width:64px; height:1px; background:var(--gold); margin:44px 0 32px; }
.mobile-menu-info{ text-align:center; }
.mobile-menu-venue{ font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--ivory); margin-bottom:10px; }
.mobile-menu-location{ font-family:'EB Garamond',serif; font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--ivory); opacity:.85; margin-bottom:10px; }
.mobile-menu-date{ font-family:'EB Garamond',serif; font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); }

body.menu-open{ overflow:hidden; }

/* ---------- Buttons (available for RSVP forms / calls to action) ---------- */
.btn{
  display:inline-block;
  font-family:'EB Garamond',serif;
  font-size:13.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-decoration:none;
  padding:16px 34px;
  background:var(--burgundy);
  color:var(--ivory);
  border:1px solid var(--burgundy);
  transition:background-color .25s ease;
}
.btn:hover{ background:#5A2831; }

/* ---------- Home: Hero ---------- */
.hero{ position:relative; height:760px; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 40%; }
.hero-scrim-1{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(var(--ink),.55) 0%, rgba(var(--ink),.28) 30%, rgba(var(--ink),.48) 60%, rgba(var(--ink),.86) 100%); }
.hero-scrim-2{ position:absolute; inset:0; background:radial-gradient(80% 58% at 50% 50%, rgba(var(--ink),.5) 0%, rgba(var(--ink),0) 70%); }
.hero-inner{ position:relative; height:100%; display:flex; align-items:center; justify-content:center; padding:48px 40px; }
.hero-oval-wrap{ position:relative; width:min(1040px,100%); aspect-ratio:1366/768; }
.hero-oval-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 14px 34px rgba(var(--ink),.4)); }

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ---------- Home: Letter to guests ---------- */
.letter-section{ position:relative; height:800px; overflow:hidden; margin-top:-2px; }
.letter-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.letter-overlay{ position:absolute; inset:0; background:radial-gradient(120% 120% at 50% 32%, rgba(82,18,38,.12), rgba(var(--ink),.5)); }
.letter-text{
  position:relative; z-index:1; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:6% 12%; max-width:900px; margin:0 auto; color:var(--ivory);
}
.letter-script{ font-family:'Pinyon Script',cursive; font-weight:400; font-size:80px; line-height:1; color:var(--ivory); margin-bottom:20px; }
.letter-text p{ margin:0 0 15px; font-family:'Cormorant Garamond',serif; font-variant:small-caps; font-size:18px; letter-spacing:.045em; line-height:1.62; color:var(--ivory); }
.letter-signoff{ font-family:'Cormorant Garamond',serif; font-variant:small-caps; font-size:clamp(12.5px,1.18vw,16px); letter-spacing:.06em; color:var(--ivory); margin-top:6px; }
.letter-signature{ font-family:'Pinyon Script',cursive; font-weight:400; font-size:clamp(28px,2.9vw,40px); line-height:1; color:var(--ivory); margin-top:10px; }

/* ---------- RSVP placeholder page ---------- */
body.rsvp-page{ overflow:hidden; }
.rsvp-section{ position:relative; height:100vh; overflow:hidden; }
.rsvp-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.rsvp-overlay{ position:absolute; inset:0; background:radial-gradient(120% 120% at 50% 32%, rgba(82,18,38,.12), rgba(var(--ink),.5)); }
.rsvp-inner{ position:relative; z-index:1; height:100%; display:flex; align-items:center; justify-content:center; padding:40px; }
.rsvp-graphic{ width:min(900px,80%); height:auto; filter:drop-shadow(0 14px 34px rgba(var(--ink),.4)); }

/* ---------- Home: Closing banner ---------- */
.closing-section{ position:relative; height:800px; overflow:hidden; }
.closing-inner{ position:relative; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:60px 40px; }
.closing-collage{ max-width:1231px; width:100%; height:auto; filter:drop-shadow(0 14px 34px rgba(var(--ink),.4)); }

/* ---------- Details / The Weekend ---------- */
.details-page{ background:var(--burgundy); }
.details-header{ position:relative; padding:140px 64px 46px; text-align:center; }
.details-eyebrow{ font-family:'EB Garamond',serif; font-size:13px; letter-spacing:.42em; text-transform:uppercase; color:var(--ivory); margin-bottom:52px; }
.details-title{ margin:0; font-family:'Pinyon Script',cursive; font-weight:400; font-size:clamp(58px,8.2vw,116px); line-height:1; color:var(--ivory); }
.header-rule{ width:64px; height:1px; background:var(--gold); margin:28px auto 0; }
.details-subtitle{ margin:26px auto 0; max-width:680px; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:20px; line-height:1.5; color:var(--ivory); }

.weekend-schedule{ padding:24px 0 0; }
.weekend-row{ display:grid; grid-template-columns:1fr 1fr; min-height:520px; }
.weekend-photo{ width:100%; height:100%; min-height:520px; object-fit:cover; object-position:center; }
.weekend-panel{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:64px 8%; }
.weekend-panel.on-light{ background:var(--paper); }
.weekend-panel.on-dark{ background:var(--burgundy); }
.weekend-day{ font-family:'EB Garamond',serif; font-size:12.5px; letter-spacing:.32em; text-transform:uppercase; margin-bottom:14px; color:var(--gold); }
.weekend-title{ margin:0; font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(34px,3.6vw,54px); line-height:1.05; letter-spacing:.1em; text-transform:uppercase; }
.weekend-panel.on-light .weekend-title{ color:var(--burgundy-soft); }
.weekend-panel.on-dark .weekend-title{ color:var(--ivory); }
.weekend-note{ margin:22px 0 26px; max-width:360px; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:19px; line-height:1.5; }
.weekend-panel.on-light .weekend-note{ color:var(--body-text); }
.weekend-panel.on-dark .weekend-note{ color:var(--ivory); }
.weekend-details{ display:flex; flex-direction:column; gap:8px; font-family:'EB Garamond',serif; font-size:13px; letter-spacing:.22em; text-transform:uppercase; }
.weekend-panel.on-light .weekend-details{ color:var(--body-text); }
.weekend-panel.on-dark .weekend-details{ color:var(--ivory); }

.info-columns{ position:relative; padding:30px 64px 110px; }
.info-columns-inner{ max-width:980px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:0; color:var(--ivory); text-align:center; }
.info-col{ padding:0 48px; }
.info-col + .info-col{ border-left:1px solid var(--border); }
.info-ornament{ font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--gold); margin-bottom:18px; }
.info-label{ font-family:'EB Garamond',serif; font-size:13px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.info-heading{ font-family:'Cormorant Garamond',serif; font-size:32px; color:var(--ivory); margin-bottom:14px; }
.info-body{ margin:0; font-family:'EB Garamond',serif; font-size:16px; line-height:1.8; color:var(--ivory); }

/* ---------- Light page banner (Travel / Stay / Como) ---------- */
.page-banner{ position:relative; height:440px; overflow:hidden; }
.page-banner-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-banner-scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(var(--ink),.66) 0%, rgba(var(--ink),.32) 45%, rgba(var(--ink),.6) 100%); }
.page-banner-inner{ position:relative; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding-top:40px; }
.page-banner-eyebrow{ font-family:'EB Garamond',serif; font-size:13px; letter-spacing:.42em; text-transform:uppercase; color:var(--ivory); margin-bottom:16px; }
.page-banner-title{ margin:0; font-family:'Cormorant Garamond',serif; font-weight:500; font-size:72px; color:var(--ivory); }
.page-banner-rule{ width:80px; height:1px; background:var(--gold); margin-top:22px; }

.page-banner.with-frame{ height:520px; }
.page-banner.with-frame .page-banner-inner{ padding-top:0; }
.page-banner-frame-wrap{ position:relative; width:min(460px,84%); aspect-ratio:1/1; margin-top:0; }
.page-banner-frame-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 10px 26px rgba(var(--ink),.4)); }
.page-banner-frame-title{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  text-align:center; margin:0; padding:27% 19%;
  font-family:'Pinyon Script',cursive; font-weight:400; font-size:clamp(48px,6.5vw,84px); line-height:1.15; color:var(--ivory);
}

.intro-section{ background:var(--paper); padding:90px 64px 40px; text-align:center; }
.intro-inner{ max-width:680px; margin:0 auto; }
.intro-heading{ margin:0 0 18px; font-family:'Cormorant Garamond',serif; font-weight:500; font-size:46px; color:var(--burgundy-soft); }
.intro-body{ margin:0; font-family:'EB Garamond',serif; font-size:18px; line-height:1.9; color:var(--body-text); }

/* ---------- Plain dark header (no photo banner) — matches .details-header ---------- */
.plain-header{ background:var(--burgundy); padding:140px 64px 46px; text-align:center; }
.plain-header-title{ margin:0; font-family:'Pinyon Script',cursive; font-weight:400; font-size:clamp(58px,8.2vw,116px); line-height:1; color:var(--ivory); }
.plain-header-body{ margin:26px auto 0; max-width:680px; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:20px; line-height:1.5; color:var(--ivory); }

/* ---------- Repeatable titled subsection (e.g. Where to Stay: Como / Cernobbio) ---------- */
.subsection-header{ background:var(--paper); max-width:680px; margin:0 auto; padding:70px 64px 36px; text-align:center; }
.subsection-header.with-divider{ border-top:1px solid var(--border); padding-top:80px; }
.subsection-title{ margin:0 0 14px; font-family:'Cormorant Garamond',serif; font-weight:500; font-size:38px; color:var(--burgundy-soft); }
.subsection-rule{ width:56px; height:1px; background:var(--gold); margin:0 auto 22px; }
.subsection-body{ margin:0; font-family:'EB Garamond',serif; font-size:17px; line-height:1.85; color:var(--body-text); }

/* ---------- Travel: airports ---------- */
.airports-section{ background:var(--paper); padding:34px 64px 30px; }
.airports-inner{ max-width:1080px; margin:0 auto; }
.section-label{ text-align:center; font-family:'EB Garamond',serif; font-size:13px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); margin-bottom:34px; }
.airport-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.airport-card{ background:var(--card-bg); border:1px solid var(--border); padding:34px 36px; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.airport-card:hover{ transform:translateY(-6px); border-color:var(--gold); box-shadow:0 14px 28px var(--shadow-warm); }
.airport-card-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.airport-name{ font-family:'Cormorant Garamond',serif; font-size:30px; color:var(--burgundy-soft); }
.airport-code{ font-family:'EB Garamond',serif; font-size:14px; letter-spacing:.2em; color:var(--gold); }
.airport-rule{ width:46px; height:1px; background:var(--gold); margin:14px 0; }
.airport-distance{ font-family:'EB Garamond',serif; font-size:16px; color:var(--body-text); }
.airport-note{ margin:10px 0 0; font-family:'EB Garamond',serif; font-size:16px; line-height:1.75; color:var(--body-text); }

/* ---------- Travel: train / car ---------- */
.info-cards-section{ background:var(--paper); padding:52px 64px 96px; }
.info-cards-inner{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.dark-card{ background:var(--burgundy); color:var(--ivory); padding:42px 44px; border:1px solid transparent; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.dark-card:hover{ transform:translateY(-6px); border-color:var(--gold); box-shadow:0 14px 28px var(--shadow-warm); }
.dark-card-label{ font-family:'EB Garamond',serif; font-size:13px; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.dark-card p{ margin:0; font-family:'EB Garamond',serif; font-size:16.5px; line-height:1.85; color:var(--ivory); }

/* ---------- Stay / Como: card grids ---------- */
.cards-section{ background:var(--paper); padding:10px 64px 96px; }
.cards-inner{ max-width:1120px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.content-card{
  display:flex; flex-direction:column;
  height:560px;
  background:var(--card-bg); border:1px solid var(--border);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.content-card:hover{ transform:translateY(-6px); border-color:var(--gold); box-shadow:0 14px 28px var(--shadow-warm); }
.card-photo{
  width:100%; height:230px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(135deg, rgba(178,138,74,.10), rgba(178,138,74,.10) 10px, rgba(178,138,74,.04) 10px, rgba(178,138,74,.04) 20px);
  border-bottom:1px solid var(--border);
  font-family:'EB Garamond',serif; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold);
  text-align:center; padding:0 20px;
}
.card-photo:has(img){ padding:0; }
.card-photo img{ width:100%; height:100%; object-fit:cover; }
.card-body{ display:flex; flex-direction:column; flex:1; min-height:0; padding:26px 28px 32px; }
.card-tag{ font-family:'EB Garamond',serif; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; flex-shrink:0; }
.card-name{ font-family:'Cormorant Garamond',serif; font-size:27px; line-height:1.15; color:var(--burgundy-soft); flex-shrink:0; }
.card-rule{ width:40px; height:1px; background:var(--gold); margin:14px 0; flex-shrink:0; }
.card-note{ margin:0; font-family:'EB Garamond',serif; font-size:15.5px; line-height:1.75; color:var(--body-text); flex-shrink:0; }
.card-spacer{ flex:1 1 auto; }
.card-btn{
  align-self:flex-start;
  flex-shrink:0;
  padding:12px 24px;
  font-family:'EB Garamond',serif; font-size:12.5px; letter-spacing:.12em; text-transform:uppercase;
  text-decoration:none;
  color:var(--ivory); background:var(--burgundy);
  border:1px solid var(--burgundy); border-radius:4px;
  transition:all .25s ease;
}
.card-btn:hover{
  background:#5A2831;
  color:var(--ivory);
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(45,20,20,.10);
}

/* ---------- Como: hidden gems ---------- */
.gems-section{ background:var(--paper); padding:10px 64px 96px; }
.gems-inner{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.gem-card{ background:var(--card-bg); border:1px solid var(--border); padding:32px 36px; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.gem-card:hover{ transform:translateY(-6px); border-color:var(--gold); box-shadow:0 14px 28px var(--shadow-warm); }
.gem-card-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.gem-name{ font-family:'Cormorant Garamond',serif; font-size:26px; color:var(--burgundy-soft); }
.gem-tag{ font-family:'EB Garamond',serif; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); white-space:nowrap; }
.gem-rule{ width:40px; height:1px; background:var(--gold); margin:14px 0; }
.gem-note{ margin:0; font-family:'EB Garamond',serif; font-size:15.5px; line-height:1.75; color:var(--body-text); }

/* ---------- Como: perfect day itinerary ---------- */
.itinerary-section{ background:var(--paper); padding:10px 64px 100px; }
.itinerary-inner{ max-width:720px; margin:0 auto; }
.itinerary-item{ display:flex; gap:32px; padding:28px 0; border-top:1px solid var(--border); }
.itinerary-item:first-child{ border-top:none; padding-top:6px; }
.itinerary-time{ flex:0 0 130px; font-family:'EB Garamond',serif; font-size:12.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); padding-top:6px; }
.itinerary-text{ flex:1; margin:0; font-family:'Cormorant Garamond',serif; font-size:21px; line-height:1.6; color:var(--body-text); }

/* ===================== Responsive ===================== */

/* Nav — tablet: still one row, slightly tighter spacing (text size unchanged) */
@media (max-width: 1199px) and (min-width: 768px){
  .site-nav{ gap:28px; padding:26px 32px; }
}

@media (max-width: 900px){
  .hero{ height:620px; }
  .hero-inner{ padding-left:0; padding-right:0; }

  .rsvp-inner{ padding:20px; }
  .rsvp-graphic{ width:100%; }

  .letter-section{ height:auto; padding:90px 24px; }
  .letter-text{ padding:0; }
  .letter-script{ font-size:56px; }

  .closing-section{ height:auto; }
  .closing-inner{ padding:48px 0; }
  .closing-collage{ width:100%; }

  .details-header{ padding:108px 24px 33px; }
  .plain-header{ padding:108px 24px 33px; }
  .subsection-header{ padding:56px 24px 30px; }
  .subsection-header.with-divider{ padding-top:64px; }

  .weekend-row{ grid-template-columns:1fr; min-height:0; }
  .weekend-row .weekend-photo{ min-height:320px; order:1; }
  .weekend-row .weekend-panel{ order:2; padding:48px 8%; }

  .info-columns-inner{ grid-template-columns:1fr; gap:56px; }
  .info-col + .info-col{ border-left:none; border-top:1px solid var(--border); padding-top:48px; }

  .page-banner{ height:320px; }
  .page-banner.with-frame{ height:460px; }
  .page-banner-frame-wrap{ width:min(340px,84%); margin-top:0; }
  .page-banner-title{ font-size:48px; }

  .airport-grid{ grid-template-columns:1fr; }
  .info-cards-inner{ grid-template-columns:1fr; }
  .cards-inner{ grid-template-columns:1fr 1fr; gap:20px; }
  .gems-inner{ grid-template-columns:1fr; }
  .itinerary-item{ gap:20px; }
}

@media (max-width: 560px){
  .cards-inner{ grid-template-columns:1fr; }
  .hero-oval-wrap{ width:100%; }
  .itinerary-item{ flex-direction:column; gap:6px; }
  .itinerary-time{ flex:none; }
}

/* Nav — mobile: hamburger + full-screen overlay replaces the row of links */
@media (max-width: 767px){
  .site-nav{ justify-content:flex-end; padding:22px 24px; gap:0; }
  .site-nav a:not(.nav-toggle){ display:none; }
  .nav-toggle{ display:block; }
}
