
:root{--ink:#22262E;--ink-soft:#4C525C;--cream:#F8F5EF;--paper:#FFFFFF;--rose:#C25E4C;--rose-d:#A84A3A;
--gold:#D9A254;--sage:#7C8B66;--navy:#1B1F2A;--line:#E4DED2;--ice:#E8EEF1}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',Arial,sans-serif;font-size:17px;color:var(--ink-soft);background:var(--cream);line-height:1.7;-webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:'Fraunces',Georgia,serif;color:var(--ink);line-height:1.12;font-weight:600}
a{color:var(--rose);text-decoration:none}
img{max-width:100%}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px}
.narrow{max-width:780px}
.eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--rose)}
.eyebrow.light{color:var(--gold)}
.btn{display:inline-block;background:var(--rose);color:#fff;padding:15px 34px;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--rose);transition:all .25s}
.btn:hover{background:var(--rose-d);border-color:var(--rose-d);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55)}
.btn.ghost:hover{background:rgba(255,255,255,.12);transform:translateY(-1px)}
.btn.dark{background:var(--navy);border-color:var(--navy)}
.btn.dark:hover{background:#000}

/* nav */
nav{position:fixed;inset:0 0 auto 0;z-index:50;transition:all .3s;padding:22px 0}
nav .wrap{display:flex;align-items:center;justify-content:space-between}
nav.solid{background:rgba(248,245,239,.94);backdrop-filter:blur(10px);padding:12px 0;border-bottom:1px solid var(--line)}
.logo{font-family:'Fraunces',Georgia,serif;font-size:1.3rem;font-weight:700;letter-spacing:.12em;color:#fff;transition:color .3s}
.logo b{color:var(--gold);font-weight:700}
nav.solid .logo{color:var(--ink)}
nav ul{display:flex;gap:34px;list-style:none;align-items:center}
nav ul a{color:rgba(255,255,255,.85);font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;transition:color .2s}
nav ul a:hover{color:#fff}
nav.solid ul a{color:var(--ink-soft)}
nav.solid ul a:hover{color:var(--ink)}
nav ul a.cta{border:1px solid rgba(255,255,255,.5);padding:9px 18px}
nav.solid ul a.cta{border-color:var(--rose);color:var(--rose)}
nav.dark-page{--navlink:#2226}
nav.on-light .logo{color:var(--ink)}
nav.on-light ul a{color:var(--ink-soft)}

/* hero */
header.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--navy)}
header.hero .scene,header.page .scene{position:absolute;inset:0;width:100%;height:100%}
header.hero .wrap{position:relative;z-index:2;padding-bottom:11vh;padding-top:140px;width:100%}
header.hero h1{color:#fff;font-size:clamp(2.6rem,6vw,4.6rem);max-width:820px;margin:20px 0 22px;text-shadow:0 2px 30px rgba(0,0,0,.25)}
header.hero p.sub{font-size:1.15rem;max-width:600px;margin-bottom:34px;color:#F2EDE2;text-shadow:0 1px 14px rgba(0,0,0,.3)}
.cta-row{display:flex;gap:16px;flex-wrap:wrap}
.hero-meta{display:flex;gap:38px;flex-wrap:wrap;margin-top:52px;padding-top:26px;border-top:1px solid rgba(255,255,255,.25)}
.hero-meta div{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#EAE2D2}
.hero-meta b{display:block;font-family:'Fraunces',Georgia,serif;font-size:1.5rem;letter-spacing:0;text-transform:none;color:#fff}

/* page hero (interior) */
header.page{position:relative;padding:170px 0 90px;color:#fff;overflow:hidden;background:var(--navy)}
header.page .wrap{position:relative;z-index:2}
header.page h1{color:#fff;font-size:clamp(2.1rem,4.6vw,3.4rem);max-width:800px;margin-top:18px}
header.page p.sub{max-width:620px;margin-top:16px;color:#EFE9DC;font-size:1.08rem}

section{padding:96px 0}
section.tight{padding:64px 0}
.center{text-align:center}
.lede{font-size:1.16rem;max-width:700px}
.center .lede{margin:0 auto}
h2.title{font-size:clamp(1.9rem,3.4vw,2.7rem);margin:14px 0 18px}

/* reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}

/* tour cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:30px;margin-top:56px}
.card{background:var(--paper);display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(30,34,42,.05),0 12px 34px rgba(30,34,42,.07);transition:transform .3s,box-shadow .3s;border:1px solid var(--line)}
.card:hover{transform:translateY(-5px);box-shadow:0 2px 4px rgba(30,34,42,.06),0 24px 54px rgba(30,34,42,.13)}
.card .art{position:relative;height:190px;overflow:hidden}
.card .art svg{width:100%;height:100%;display:block}
.card .art .tag{position:absolute;top:14px;left:14px;background:rgba(248,245,239,.92);color:var(--ink);font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:6px 12px}
.card .body{padding:26px 28px 28px;flex:1;display:flex;flex-direction:column}
.card h3{font-size:1.35rem;margin-bottom:10px}
.card p{font-size:.96rem;margin-bottom:18px}
.specs{display:flex;gap:18px;flex-wrap:wrap;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:#8A8578;margin-bottom:20px}
.specs b{color:var(--ink)}
.card .go{margin-top:auto;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.card .go::after{content:" →";transition:margin .2s}
.card .go:hover::after{margin-left:6px}

/* values */
.values{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.vgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:44px;margin-top:56px}
.v{border-top:2px solid var(--rose);padding-top:22px}
.v .num{font-family:'Fraunces',Georgia,serif;font-size:.95rem;color:var(--rose);margin-bottom:10px}
.v h3{font-size:1.18rem;margin-bottom:10px}
.v p{font-size:.95rem}

/* quote band */
.quote{position:relative;background:var(--navy);color:#D8D3C6;text-align:center;overflow:hidden;padding:130px 0}
.quote .scene{position:absolute;inset:0;width:100%;height:100%;opacity:.55}
.quote .wrap{position:relative;z-index:2}
.quote blockquote{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.35;max-width:840px;margin:0 auto 26px;color:#F4EFE3}
.quote cite{font-style:normal;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.quote p.after{max-width:600px;margin:30px auto 0;color:#B9B3A4;font-size:1rem}

/* signup */
.signup{background:linear-gradient(180deg,var(--cream),#F1EBDF)}
.signup .box{background:var(--paper);border:1px solid var(--line);padding:70px 8%;text-align:center;box-shadow:0 20px 60px rgba(30,34,42,.08)}
.fine{font-size:.8rem;color:#9A9486;margin-top:16px}

/* detail pages */
.detail{max-width:820px}
.detail p{margin-bottom:20px;font-size:1.05rem}
.detail h2{font-size:1.7rem;margin:44px 0 16px}
.facts{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--rose);padding:30px 34px;margin:36px 0}
.facts div{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.98rem}
.facts div:last-child{border-bottom:none}
.facts b{color:var(--ink);min-width:110px}
.notice{background:#F6EAD8;border-left:3px solid var(--gold);padding:20px 26px;margin:36px 0;font-size:.95rem}
.faq h3{margin:30px 0 8px;font-size:1.12rem}

/* footer */
footer{background:var(--navy);color:#A9A499;padding:78px 0 40px;font-size:.9rem}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px;padding-bottom:48px;border-bottom:1px solid #2E3340}
footer .logo{font-size:1.1rem;color:#fff}
footer p{max-width:420px;margin-top:14px;font-size:.88rem}
footer h4{color:#E8E2D4;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;margin-bottom:18px;font-family:'Inter',Arial,sans-serif;font-weight:600}
footer li{list-style:none;margin-bottom:10px}
footer a{color:#A9A499}
footer a:hover{color:#fff}
.legal{padding-top:28px;font-size:.78rem;color:#7A766C;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
/* blog */
.postlist{margin-top:44px;border-top:1px solid var(--line)}
.postrow{display:block;padding:26px 6px;border-bottom:1px solid var(--line);transition:background .2s}
.postrow:hover{background:#FFFDF8}
.postrow .pdate{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:#9A9486;margin-bottom:6px}
.postrow h3{font-size:1.4rem;margin-bottom:8px}
.postrow p{color:var(--ink-soft);font-size:.98rem;max-width:720px}
.postrow .go{display:inline-block;margin-top:10px;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.empty-state{margin-top:44px;background:var(--paper);border:1px solid var(--line);padding:56px 8%;text-align:center}
article.prose{max-width:720px;margin:0 auto}
article.prose p{margin-bottom:22px;font-size:1.08rem;line-height:1.85}
article.prose h2{font-size:1.5rem;margin:42px 0 14px}
article.prose .pmeta{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:#9A9486;margin-bottom:34px}
article.prose figure{margin:34px 0}
article.prose figure img{width:100%;display:block;border:1px solid var(--line)}
article.prose figcaption{font-size:.82rem;color:#8A8578;margin-top:10px;font-style:italic}
.tripstats{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--sage);padding:22px 28px;margin:30px 0}
.tripstats div{display:flex;gap:14px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.tripstats div:last-child{border-bottom:none}
.tripstats b{color:var(--ink);min-width:120px}
.backlink{display:inline-block;margin-bottom:26px;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
@media(max-width:860px){nav ul{display:none}footer .cols{grid-template-columns:1fr}}
