
:root{
  --navy:#17324d;
  --navy-2:#0f2438;
  --rose:#c85a7c;
  --rose-dark:#a53e61;
  --blush:#f8e8ee;
  --petal:#fff6f8;
  --cream:#fffaf7;
  --ink:#24313c;
  --muted:#65717c;
  --line:#eadde2;
  --gold:#aa7c2b;
  --white:#ffffff;
  --shadow:0 18px 50px rgba(31,42,55,.10);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:linear-gradient(180deg,#fff 0,#fffafc 45%,#fff 100%);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height:1.65;
}
img{max-width:100%;display:block}
a{color:inherit}
.site-header{
  position:sticky;top:0;z-index:20;
  height:76px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(20px,5vw,72px);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(200,90,124,.12);
}
.brand{
  display:flex;align-items:center;gap:11px;
  text-decoration:none;color:var(--navy);
}
.brand-mark{
  display:grid;place-items:center;
  width:42px;height:42px;border-radius:50%;
  background:var(--blush);color:var(--rose);font-size:22px;
}
.brand strong{display:block;font-family:Georgia,serif;font-size:21px;line-height:1}
.brand small{display:block;font-size:9px;letter-spacing:.25em;margin-top:6px}
nav{display:flex;gap:28px;align-items:center}
nav a{text-decoration:none;font-weight:700;font-size:14px;color:var(--navy)}
nav a:hover{color:var(--rose)}
.nav-toggle{display:none;border:0;background:var(--blush);padding:10px 14px;border-radius:12px;font-weight:700;color:var(--navy)}
.hero{
  min-height:690px;
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(30px,5vw,80px);
  align-items:center;
  padding:clamp(60px,8vw,110px) clamp(20px,6vw,90px);
  background:
    radial-gradient(circle at 10% 10%, rgba(248,232,238,.95), transparent 32%),
    radial-gradient(circle at 90% 20%, rgba(255,239,225,.8), transparent 28%),
    #fff;
}
.hero-copy{max-width:760px}
.eyebrow{font-weight:900;letter-spacing:.16em;font-size:12px;color:var(--rose-dark);margin:0 0 12px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:var(--navy);line-height:1.1}
h1{font-size:clamp(46px,6.5vw,86px);font-weight:500;letter-spacing:-.035em;margin:.12em 0 .24em}
h2{font-size:clamp(34px,4.2vw,56px);font-weight:500;letter-spacing:-.025em;margin:.15em 0 .45em}
h3{font-size:23px;margin:0 0 .4em}
.lede{font-size:clamp(18px,2vw,23px);max-width:760px;color:#44515c}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin:30px 0}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:0 23px;border-radius:999px;
  text-decoration:none;font-weight:850;border:1px solid transparent;
  transition:.2s ease;font-size:15px;
}
.btn.primary{background:var(--navy);color:#fff;box-shadow:0 10px 24px rgba(23,50,77,.18)}
.btn.primary:hover{transform:translateY(-2px);background:var(--navy-2)}
.btn.secondary{background:#fff;border-color:#d8c7cd;color:var(--navy)}
.btn.secondary:hover{border-color:var(--rose);color:var(--rose-dark)}
.btn.disabled{opacity:.55;cursor:not-allowed}
.quick-facts{
  display:grid;grid-template-columns:repeat(4,1fr);
  margin-top:34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.quick-facts div{padding:18px 12px 18px 0}
.quick-facts strong{display:block;color:var(--navy);font-size:20px}
.quick-facts span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.hero-visual{position:relative}
.hero-visual:before{
  content:"";position:absolute;inset:-20px 20px 30px -20px;
  border-radius:32px;background:var(--blush);transform:rotate(-2deg);z-index:0
}
.hero-visual img{
  position:relative;z-index:1;border-radius:28px;
  box-shadow:var(--shadow);width:100%;aspect-ratio:1/1;object-fit:cover
}
.statement{
  text-align:center;background:var(--navy);color:#fff;
  padding:70px 20px;
}
.statement p:first-child{font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#f2c5d3;font-size:12px}
.statement h2{color:#fff;max-width:950px;margin:12px auto;font-size:clamp(30px,4vw,52px)}
.script{font-family:Georgia,serif;font-style:italic;color:#f6ceda;font-size:22px}
.section{max-width:1180px;margin:auto;padding:95px 24px}
.split{display:grid;grid-template-columns:1.3fr .7fr;gap:70px;align-items:center}
.split p{font-size:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow)}
.blossom-card{background:linear-gradient(145deg,#fff,#fff4f7)}
.blossom-card .petal{font-size:36px}
.price{font-family:Georgia,serif;font-size:44px;color:var(--rose-dark)}
.fine{font-size:12px!important;color:var(--muted)}
hr{border:0;border-top:1px solid var(--line);margin:20px 0}
.itinerary-section{max-width:1080px}
.section-heading{text-align:center;max-width:820px;margin:0 auto 50px}
.timeline{position:relative}
.timeline:before{content:"";position:absolute;left:40px;top:0;bottom:0;width:2px;background:linear-gradient(var(--rose),#efd6df)}
.day{display:grid;grid-template-columns:82px 1fr;gap:24px;position:relative;padding:0 0 32px}
.day>span{
  position:relative;z-index:2;width:82px;height:42px;border-radius:999px;
  display:grid;place-items:center;background:#fff;border:2px solid #efcbd7;
  color:var(--rose-dark);font-weight:900;font-size:13px;
}
.day>div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:23px 26px}
.day p{margin:0;color:#4d5964}
.day.featured>div{background:linear-gradient(135deg,#fff4f8,#fff);border-color:#eab5c6}
.day.featured>span{background:var(--rose);color:#fff;border-color:var(--rose)}
.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.details-grid h2{font-size:36px}
.checklist{list-style:none;padding:0;margin:24px 0 0}
.checklist li{position:relative;padding:11px 0 11px 32px;border-bottom:1px solid #f0e8eb}
.checklist li:before{position:absolute;left:0;top:11px;font-weight:900}
.checklist.yes li:before{content:"✓";color:#34735a}
.checklist.no li:before{content:"—";color:var(--rose-dark)}
.reserve{
  max-width:1180px;border-radius:30px;
  background:linear-gradient(125deg,var(--navy),#294d6e);
  color:#fff;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;
  margin-top:30px;margin-bottom:30px;padding:60px;
}
.reserve h2,.reserve .eyebrow{color:#fff}
.reserve .eyebrow{opacity:.78}
.reserve p{font-size:17px;color:#e5edf4}
.reserve-action{text-align:center}
.reserve-action .btn{background:#fff;color:var(--navy)}
.reserve-action .fine{color:#c9d5df;margin-top:10px}
.about{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
.about p{font-size:18px}
blockquote{
  margin:0;background:var(--blush);border-radius:28px;padding:42px;
  color:var(--navy);font-family:Georgia,serif;font-size:30px;line-height:1.35;
}
.book{display:grid;grid-template-columns:.42fr .58fr;gap:60px;align-items:center}
.book-image img{max-height:620px;margin:auto;border-radius:10px;box-shadow:var(--shadow)}
.book-sub{font-family:Georgia,serif;font-style:italic;font-size:22px;color:var(--rose-dark)}
.update-box{text-align:center;max-width:850px;border:1px dashed #d6a9b8;border-radius:26px;padding:48px;background:#fff8fa}
.update-box h2{font-size:40px}
footer{text-align:center;background:#0e2235;color:#d9e2e9;padding:48px 20px}
.footer-brand{font-family:Georgia,serif;font-size:30px;color:#fff}
footer p{margin:8px auto;max-width:760px}
footer .fine{color:#aebdca}
@media (max-width:900px){
  .site-header{height:68px}
  .nav-toggle{display:block}
  nav{
    display:none;position:absolute;left:16px;right:16px;top:76px;
    padding:18px;border-radius:18px;background:#fff;box-shadow:var(--shadow);
    flex-direction:column;align-items:stretch;gap:4px
  }
  nav.open{display:flex}
  nav a{padding:11px 8px}
  .hero,.split,.details-grid,.reserve,.about,.book{grid-template-columns:1fr}
  .hero{padding-top:55px;min-height:0}
  .hero-visual{max-width:620px;margin:auto}
  .quick-facts{grid-template-columns:repeat(2,1fr)}
  .reserve{margin-left:16px;margin-right:16px;padding:38px 26px}
  .book-image{max-width:360px;margin:auto}
}
@media (max-width:560px){
  .site-header{padding:0 15px}
  .brand strong{font-size:18px}
  .brand small{font-size:8px}
  .hero{padding-left:18px;padding-right:18px}
  h1{font-size:46px}
  .section{padding:70px 18px}
  .day{grid-template-columns:64px 1fr;gap:12px}
  .day>span{width:64px;height:38px;font-size:11px}
  .timeline:before{left:31px}
  .day>div{padding:20px}
  .card{padding:26px}
  blockquote{font-size:25px;padding:30px}
}
