
/* Layout: full-bleed Rainier hero, then a calm editorial rhythm: frost bands for story, fir-green bands for the big moments. */
:root{
  --fir:#173D1C; --fir-deep:#0F2A13;
  --frost:#F3F6F3; --snow:#FFFFFF;
  --ink:#1B2620; --muted:#56645B; --line:#D5DED7;
  --berry:#B23A48; --tag-pink:#F2B8C6;
  --on-fir:#F3F6F3; --on-fir-muted:#B9C9BC;
  --draft-bg:#FFF4D6; --draft-fg:#6B4E00; --mark:#173D1C; --mark-filter:none;
  --display:"Libre Caslon Display","Libre Caslon Text",Georgia,serif;
  --serif:"Libre Caslon Text",Georgia,serif;
  --sans:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --frost:#121A15; --snow:#18221C; --ink:#E7EEE9; --muted:#A6B5AB; --line:#2C3A31;
  --fir:#1D4A24; --fir-deep:#0C1A0F; --berry:#E06A78; --tag-pink:#E9A3B4;
  --on-fir:#EEF3EF; --on-fir-muted:#AFC2B3; --draft-bg:#3A2F10; --draft-fg:#F5D78A; --mark:#CFE0D2; --mark-filter:brightness(0) invert(.88); color-scheme:dark}}
:root[data-theme="dark"]{
  --frost:#121A15; --snow:#18221C; --ink:#E7EEE9; --muted:#A6B5AB; --line:#2C3A31;
  --fir:#1D4A24; --fir-deep:#0C1A0F; --berry:#E06A78; --tag-pink:#E9A3B4;
  --on-fir:#EEF3EF; --on-fir-muted:#AFC2B3; --draft-bg:#3A2F10; --draft-fg:#F5D78A; --mark:#CFE0D2; --mark-filter:brightness(0) invert(.88); color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--frost);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;text-wrap:balance;margin:0}
p{margin:0}
a{color:inherit}
img{display:block}
:focus-visible{outline:3px solid var(--berry);outline-offset:3px;border-radius:4px}
.wrap{max-width:1160px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--berry)}
.cap{font-size:11.5px;color:var(--muted);margin-top:7px}
section{padding-block:clamp(60px,8vw,104px)}
.sechead{display:grid;gap:12px;margin-bottom:clamp(28px,4vw,48px);max-width:660px}
.sechead h2{font-size:clamp(32px,4.4vw,50px)}
.sechead p{color:var(--muted);font-size:17px}
.btn{display:inline-flex;align-items:center;gap:8px;font:600 15px/1 var(--sans);padding:14px 20px;border-radius:999px;text-decoration:none;border:0;cursor:pointer}
.btn.fir{background:var(--fir);color:var(--on-fir)}
.btn.light{background:#fff;color:#173D1C}
.btn.ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.link{font-weight:600;text-decoration:none;border-bottom:1.5px solid var(--berry);padding-bottom:2px}

.draftbar{background:var(--draft-bg);color:var(--draft-fg);font-size:13.5px}
.draftbar .wrap{padding-block:9px}

/* seasonal strip */
.season{background:var(--fir-deep);color:var(--on-fir);font-size:14.5px}
.season .wrap{padding-block:10px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;justify-content:center;text-align:center}
.season a{color:var(--tag-pink);font-weight:600}

header.site{background:var(--snow);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand .mark{width:46px;height:38px;object-fit:contain;filter:var(--mark-filter)}
.brand span{font:22px/1 var(--serif)}
nav.top{display:flex;gap:4px 22px;align-items:center;font-size:14.5px;font-weight:500}
nav.top a{text-decoration:none;color:var(--muted)}
nav.top a.btn{color:var(--on-fir);padding:11px 16px;font-size:14px}
@media (max-width:820px){nav.top a:not(.btn){display:none}}

/* hero */
.hero{position:relative;color:#fff;background:#2b3d4a;padding:0}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,26,.35) 0%,rgba(8,18,26,0) 35%,rgba(8,18,26,.05) 55%,rgba(8,18,26,.7) 100%)}
.hero .wrap{position:relative;z-index:1;padding-block:clamp(200px,34vw,420px) clamp(36px,6vw,64px);display:grid;gap:18px}
.hero h1{font-size:clamp(40px,7vw,86px);max-width:12ch;text-shadow:0 2px 24px rgba(0,0,0,.3)}
.hero .lede{font:clamp(17px,2vw,20px)/1.5 var(--serif);max-width:46ch;color:#EEF3EF}
.hero .hero-tag{justify-self:start;color:#fff;background:rgba(10,22,14,.55);padding:8px 12px;border-radius:999px;backdrop-filter:blur(4px)}
.hero .ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.hero .credit{position:absolute;right:max(12px,env(safe-area-inset-right,0px));bottom:10px;z-index:1;font-size:11px;color:rgba(255,255,255,.75)}

/* facts */
.facts{background:var(--snow);border-bottom:1px solid var(--line);padding-block:0}
.facts dl{margin:0;display:grid;grid-template-columns:repeat(4,1fr)}
.facts dl>div{padding:26px 18px;border-left:1px solid var(--line);display:grid;gap:4px}
.facts dl>div:first-child{border-left:0}
.facts dt{order:2;font-size:14px;color:var(--muted)}
.facts dd{order:1;margin:0;font:clamp(28px,3.6vw,40px)/1 var(--display);color:var(--mark)}
@media (max-width:760px){.facts dl{grid-template-columns:repeat(2,1fr)}.facts dl>div:nth-child(3){border-left:0}.facts dl>div:nth-child(n+3){border-top:1px solid var(--line)}}

/* story */
.story .grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:center}
@media (max-width:860px){.story .grid{grid-template-columns:1fr}}
.story .copy{display:grid;gap:16px;max-width:54ch}
.story .copy p{font-size:17px}
.story .copy p.big{font:clamp(20px,2.2vw,24px)/1.45 var(--serif)}
.story img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}

/* ceremony options */
.cere{background:var(--snow);border-block:1px solid var(--line)}
.opts{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media (max-width:980px){.opts{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.opts{grid-template-columns:1fr}}
.opt{display:grid;gap:12px;align-content:start}
.opt img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px}
.opt .meta{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.opt h3{font-size:25px}
.opt .cap-n{font:600 12.5px/1 var(--sans);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.opt p{color:var(--muted);font-size:15px}
.opt .when{font-size:13px;font-weight:600;color:var(--berry);letter-spacing:.02em}
.cere .foot{margin-top:28px;color:var(--muted);max-width:720px}

/* reception */
.recep{background:var(--fir);color:var(--on-fir)}
.recep .eyebrow{color:var(--tag-pink)}
.recep .sechead p{color:var(--on-fir-muted)}
.recep .grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}
@media (max-width:860px){.recep .grid{grid-template-columns:1fr}}
.recep figure{margin:0}
.recep figure img{width:100%;height:100%;object-fit:cover;border-radius:6px}
.recep .fd img{aspect-ratio:3/2}
.recep .st img{aspect-ratio:2/3;max-height:100%}
.recep .cap{color:var(--on-fir-muted)}
.incl{margin-top:clamp(32px,4vw,48px);display:grid;grid-template-columns:repeat(3,1fr);gap:22px 36px}
@media (max-width:860px){.incl{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.incl{grid-template-columns:1fr}}
.incl h3{font:600 17px/1.3 var(--sans);color:var(--on-fir)}
.incl p{color:var(--on-fir-muted);font-size:15px;margin-top:4px}

/* cottage */
.cottage .grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
@media (max-width:860px){.cottage .grid{grid-template-columns:1fr}}
.cottage img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px}
.cottage .copy{display:grid;gap:14px;max-width:52ch}
.cottage .copy p{color:var(--muted);font-size:17px}

.cot-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.cot-thumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}
/* reviews */
.reviews{background:var(--snow);border-block:1px solid var(--line)}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
@media (max-width:860px){.quotes{grid-template-columns:1fr}}
blockquote{margin:0;display:grid;gap:14px;align-content:start}
blockquote p{font:19px/1.5 var(--serif)}
blockquote p::before{content:"“";display:block;font:64px/0.6 var(--display);color:var(--berry);margin-bottom:10px}
blockquote footer{font-weight:600;font-size:14px;color:var(--muted)}

/* mosaic */
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(120px,15vw,200px);gap:10px}
.mosaic figure{margin:0;position:relative;overflow:hidden;border-radius:5px}
.mosaic img{width:100%;height:100%;object-fit:cover}
.mosaic figcaption{position:absolute;left:8px;bottom:6px;font-size:10.5px;color:rgba(255,255,255,.85);text-shadow:0 1px 3px rgba(0,0,0,.6)}
.m1{grid-column:span 3;grid-row:span 2}.m2{grid-column:span 3}.m3{grid-column:span 2}.m4{grid-column:span 1}
.m5{grid-column:span 2}.m6{grid-column:span 2}.m7{grid-column:span 2}
@media (max-width:720px){.mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.mosaic figure{grid-column:span 1!important;grid-row:span 1!important}.mosaic .m1{grid-column:span 2!important;grid-row:span 2!important}}

/* booking */
.book .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:start}
@media (max-width:860px){.book .grid{grid-template-columns:1fr}}
ol.how{list-style:none;padding:0;margin:0;display:grid;gap:20px;counter-reset:s}
ol.how li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;gap:14px}
ol.how li::before{content:counter(s);font:22px/42px var(--display);text-align:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--mark)}
ol.how h3{font:600 18px/1.3 var(--sans);margin-top:10px}
ol.how p{color:var(--muted);margin-top:4px}
.book .seasons{background:var(--snow);border:1px solid var(--line);border-radius:10px;padding:clamp(20px,3vw,30px);display:grid;gap:14px}
.book .seasons h3{font-size:26px}
.book .seasons p{color:var(--muted)}
.book .seasons img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px}

/* tour CTA */
.tour{position:relative;color:#fff;padding:0;background:#3b2a3a}
.tour>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tour::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,20,30,.72) 0%,rgba(15,20,30,.35) 60%,rgba(15,20,30,.1) 100%)}
.tour .wrap{position:relative;z-index:1;padding-block:clamp(80px,12vw,150px);display:grid;gap:16px;justify-items:start}
.tour h2{font-size:clamp(34px,5vw,60px);max-width:14ch}
.tour p{max-width:44ch;color:#EEF3EF;font-size:17px}
.tour .row{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.tour .credit{position:absolute;right:max(12px,env(safe-area-inset-right,0px));bottom:10px;z-index:1;font-size:11px;color:rgba(255,255,255,.75)}

footer.site{background:var(--fir-deep);color:var(--on-fir-muted);font-size:14.5px}
footer.site .wrap{padding-block:44px;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:28px}
@media (max-width:760px){footer.site .wrap{grid-template-columns:1fr}}
footer.site strong{display:block;color:var(--on-fir);font:22px/1 var(--serif);font-weight:400;margin-bottom:10px}
footer.site h4{margin:0 0 10px;font:600 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--on-fir)}
footer.site ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
footer.site a{text-decoration:none}
footer.site .fine{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;font-size:13px}

@media (prefers-reduced-motion:no-preference){
  .hero h1,.hero .lede,.hero .ctas{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
  .hero .lede{animation-delay:.12s}.hero .ctas{animation-delay:.24s}
  @keyframes rise{from{transform:translateY(14px);opacity:.01}to{transform:none;opacity:1}}
}

[hidden]{display:none!important}
