:root{
  --blue:#173c6e;
  --blue-dark:#0e284c;
  --red:#c9453a;
  --cream:#f6f1e7;
  --sand:#e5d7c3;
  --ink:#1d2733;
  --muted:#66717d;
  --white:#fff;
  --radius:18px;
  --shadow:0 18px 45px rgba(14,40,76,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.65}
img{display:block;width:100%}
a{color:inherit;text-decoration:none}
.topbar{position:fixed;z-index:20;top:0;left:0;right:0;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:rgba(14,40,76,.92);backdrop-filter:blur(14px);color:white}
.brand{font-family:"Lora",serif;font-size:1.2rem;font-weight:600}
.mainnav{display:flex;gap:1.4rem;font-size:.92rem}
.mainnav a{opacity:.84}.mainnav a:hover{opacity:1}
.menu-button{display:none;background:transparent;border:1px solid rgba(255,255,255,.5);color:white;padding:.5rem .8rem;border-radius:999px}
.hero{height:100vh;min-height:720px;position:relative;display:flex;align-items:flex-end;color:white;overflow:hidden}
.hero>img{position:absolute;inset:0;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,25,50,.82) 0%,rgba(8,25,50,.42) 52%,rgba(8,25,50,.12) 100%),linear-gradient(0deg,rgba(8,25,50,.45),transparent 45%)}
.hero-content{position:relative;z-index:2;padding:0 7vw 10vh;max-width:850px}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-weight:700;font-size:.76rem;margin:0 0 .8rem}.eyebrow.dark{color:var(--red)}
h1,h2{font-family:"Lora",serif;line-height:1.08;margin:.1em 0 .5em}h1{font-size:clamp(3.5rem,8vw,7.5rem)}h2{font-size:clamp(2rem,4vw,3.8rem)}
.lead{font-size:1.35rem;font-style:italic;margin-bottom:2rem}
.primary-button{display:inline-block;background:var(--red);color:white;padding:.9rem 1.35rem;border-radius:999px;font-weight:700}
.section{padding:7rem 7vw;max-width:1500px;margin:auto}.section-heading{max-width:720px;margin-bottom:3rem}.section-heading.light{color:white}
.intro-grid,.feature-grid,.landscape-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:5vw;align-items:center}.intro-copy{font-size:1.2rem}
.photo-card{background:white;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.photo-card img{height:430px;object-fit:cover}.photo-card.tall img{height:620px}.photo-card figcaption{padding:.8rem 1rem;color:var(--muted);font-size:.85rem}
.tip-card{margin-top:2rem;background:#fff4d6;border-left:5px solid #e6a72e;padding:1.2rem 1.4rem;border-radius:0 12px 12px 0}.tip-card p{margin:.35rem 0 0}.tip-label{font-weight:800;color:#9b6500;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em}
.quick-start{background:white;max-width:none}.quick-start>*{max-width:1290px;margin-left:auto;margin-right:auto}.steps-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}.step{background:var(--cream);padding:1.4rem;border-radius:14px;border-top:5px solid var(--blue)}.step span{font-weight:800;color:var(--red)}.step h3{margin:.5rem 0;font-size:1.1rem}.step p{font-size:.92rem;margin:0}
.feature-copy{max-width:620px}.check-list{padding:0;list-style:none}.check-list li{position:relative;padding:.55rem 0 .55rem 1.7rem}.check-list li:before{content:"✓";position:absolute;left:0;color:var(--red);font-weight:800}.notice,.warning{padding:1rem 1.2rem;border-radius:12px;margin-top:1.4rem}.notice{background:#eaf1fb;border-left:5px solid var(--blue)}.warning{background:#fde9e5;border-left:5px solid var(--red)}
.blue-section,.departure{background:var(--blue);max-width:none}.blue-section>*{max-width:1290px;margin-left:auto;margin-right:auto}.light-copy{color:white}.reverse{grid-template-columns:.9fr 1.1fr}.number-list{counter-reset:item;padding:0;list-style:none}.number-list li{counter-increment:item;padding:.7rem 0 .7rem 3rem;position:relative}.number-list li:before{content:counter(item);position:absolute;left:0;top:.55rem;width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:var(--red);font-weight:800}
.gallery-three{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}.gallery-three .photo-card img{height:300px}.two-column-notes{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.small-note{color:var(--muted);font-style:italic}
.photo-break{padding:0;max-width:none;position:relative;height:70vh;min-height:520px;overflow:hidden}.photo-break img{height:100%;object-fit:cover}.quote-panel{position:absolute;left:7vw;bottom:7vh;background:rgba(14,40,76,.92);color:white;padding:1.5rem 2rem;border-radius:var(--radius);font-family:"Lora",serif;font-size:clamp(1.8rem,4vw,3.5rem)}.quote-panel p{margin:0}
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:2rem}.mini-grid div{background:white;padding:1rem;border-radius:12px}.mini-grid strong,.mini-grid span{display:block}.mini-grid span{font-size:.85rem;color:var(--muted)}.wide img{height:520px}
.departure>*{max-width:1290px;margin-left:auto;margin-right:auto}.departure-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;color:white}.departure-grid label{background:rgba(255,255,255,.1);padding:1rem;border-radius:12px}.departure-grid input{transform:scale(1.25);margin-right:.7rem}
.closing{position:relative;max-width:none;padding:0;height:80vh;min-height:600px;overflow:hidden}.closing>img{height:100%;object-fit:cover}.closing-card{position:absolute;right:7vw;bottom:8vh;background:rgba(246,241,231,.96);padding:2rem 2.3rem;border-radius:var(--radius);max-width:470px;box-shadow:var(--shadow)}.address{font-weight:700;color:var(--blue)}
footer{display:flex;justify-content:space-between;gap:1rem;padding:2rem 7vw;background:var(--blue-dark);color:white}
@media(max-width:1000px){.steps-grid{grid-template-columns:repeat(2,1fr)}.intro-grid,.feature-grid,.landscape-grid,.reverse{grid-template-columns:1fr}.gallery-three{grid-template-columns:1fr 1fr}.mainnav{display:none;position:absolute;top:70px;right:0;left:0;flex-direction:column;background:var(--blue-dark);padding:1.2rem 7vw}.mainnav.open{display:flex}.menu-button{display:block}.photo-card.tall img{height:500px}}
@media(max-width:650px){.section{padding:5rem 5vw}.hero-content{padding:0 5vw 8vh}.hero{min-height:640px}.steps-grid,.gallery-three,.two-column-notes,.departure-grid,.mini-grid{grid-template-columns:1fr}.photo-card img,.photo-card.tall img,.wide img{height:340px}.quote-panel{left:5vw;right:5vw;bottom:5vh}.closing-card{left:5vw;right:5vw;bottom:5vh}.closing{height:720px}footer{flex-direction:column}}
