/* Tidewater Studio — warm coastal stylesheet (original, Sterling Desk 2026) */
:root{
  --bg:#fdf8f1; --paper:#fffcf7; --linen:#f7ead8; --sand:#efd9bc; --drift:#9a5236; --line:#ecdcc6;
  --ink:#1d2b45; --text:#3a332d; --muted:#6b5d50; --brass:#b8893f; --accent:#b4532f; --on-accent:#fdf8f1;
  --coral:#e08a68; --apricot:#f2b48f; --sea:#8fc1b5; --sea-ink:#2f6e69; --shadow:rgba(122,74,38,.28);
  --ok:#3f7a5e; --warn:#9a6a1f; --bad:#a3442e;
  --fd:"Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --fb:"DM Sans", "Helvetica Neue", Arial, sans-serif;
  --r:18px; --r-lg:26px;
  --wrap:1240px; --gut:clamp(20px,4vw,52px); --ease:cubic-bezier(.22,.8,.3,1);
  color-scheme:light;
}
[data-theme="dark"]{
  --bg:#16213a; --paper:#1b2843; --linen:#1e2c48; --sand:#2b3a58; --drift:#f2b48f; --line:#2e3d5c;
  --ink:#fbefe2; --text:#e8dccd; --muted:#c4b4a2; --brass:#d9b06a; --accent:#e8936f; --on-accent:#16213a;
  --coral:#e8936f; --apricot:#f2b48f; --sea:#8fc1b5; --sea-ink:#9fd0c5; --shadow:rgba(0,0,0,.45);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:300 16px/1.75 var(--fb);letter-spacing:.01em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,canvas{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
input,select,textarea{font:inherit;color:inherit}
b,strong{font-weight:500}
::selection{background:var(--sand);color:var(--ink)}
:focus-visible{outline:1px solid var(--brass);outline-offset:3px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:8px 14px;z-index:100}
.skip:focus{left:8px}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.wrap.wide{max-width:1480px}
.center{text-align:center}
.muted{color:var(--muted)}
.small{font-size:.86rem;line-height:1.65}
small{font-size:.82em}
[hidden]{display:none!important}

/* type */
.display,.h1,.h2,.h3,.h4{font-family:var(--fd);font-weight:400;color:var(--ink);letter-spacing:.005em;margin:0 0 .5em;line-height:1.12}
.display{font-size:clamp(2.6rem,5.6vw,4.9rem);line-height:1.04;font-weight:400}
.h1{font-size:clamp(2.4rem,4.6vw,3.9rem)}
.h2{font-size:clamp(1.9rem,3vw,2.7rem)}
.h3{font-size:clamp(1.45rem,2vw,1.8rem)}
.h4{font-size:1.3rem}
.h2 em,.h1 em,.display em{font-style:italic}
.lead{font-size:1.08rem;color:var(--muted);max-width:60ch;margin:0 0 1.4em}
.label{font:400 .7rem/1.6 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--drift);margin:0 0 1.1em}
.statement{font-family:var(--fd);font-size:clamp(1.55rem,2.6vw,2.2rem);line-height:1.38;color:var(--ink);margin:0 0 1.2em;font-weight:400}
.tag-sample{display:inline-block;font:400 .62rem/1 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--brass);border:1px solid color-mix(in srgb,var(--brass) 45%,transparent);padding:4px 7px 3px;margin-left:8px;vertical-align:middle;white-space:nowrap}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 28px;font:400 .74rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;border:1px solid transparent;transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease);white-space:nowrap;text-align:center}
.btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3}
.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn-primary:hover{background:transparent;color:var(--ink)}
.btn-line{border-color:var(--ink);color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--bg)}
.btn-light{background:#fdf8f1;color:#1d2b45;border-color:#fdf8f1}
.btn-light:hover{background:transparent;color:#fff;border-color:#fff}
.btn-sm{min-height:40px;padding:0 18px;font-size:.66rem}
.btn-block{width:100%}
.text-link,.link-btn{display:inline-flex;align-items:center;gap:10px;font:400 .72rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);padding:10px 0;border-bottom:1px solid var(--brass);transition:gap .4s var(--ease),opacity .4s}
.text-link:hover{gap:14px}
.text-link svg,.link-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.2}
.icon-btn{width:40px;height:40px;display:inline-grid;place-items:center;color:var(--ink);transition:opacity .3s}
.icon-btn:hover{opacity:.6}
.icon-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.2}

/* ribbon + header */
.demo-ribbon{background:var(--linen);color:var(--muted);text-align:center;font:400 .62rem/1.5 var(--fb);letter-spacing:.2em;text-transform:uppercase;padding:8px 16px;border-bottom:1px solid var(--line)}
.topbar{position:sticky;top:0;z-index:40;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:16px var(--gut);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{display:inline-flex}
.wm{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1;color:var(--ink)}
.wm-name{font:400 1.7rem/1 var(--fd);letter-spacing:.02em}
.wm-sub{font:400 .56rem/1 var(--fb);letter-spacing:.5em;text-transform:uppercase;color:var(--drift);margin-top:6px;padding-left:2px}
.links{display:flex;justify-content:center;gap:clamp(18px,2.4vw,36px)}
.links a{font:400 .7rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--text);padding:8px 0;border-bottom:1px solid transparent;transition:border-color .4s,color .4s}
.links a:hover,.links a.on{border-color:var(--brass);color:var(--ink)}
.actions{display:flex;align-items:center;gap:6px}
.actions .btn{margin-left:10px}
.theme-toggle .i-moon{display:none}
[data-theme="dark"] .theme-toggle .i-sun{display:none}
[data-theme="dark"] .theme-toggle .i-moon{display:inline}
.menu-btn{display:none}
.sheet{position:fixed;inset:0;z-index:60;background:var(--bg);overflow-y:auto;animation:fade .5s var(--ease)}
.sheet-in{padding:18px var(--gut) 40px;min-height:100%;display:flex;flex-direction:column}
.sheet-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}
.sheet-links{display:flex;flex-direction:column;margin:18px 0 28px}
.sheet-links a{font:400 1.55rem/1.2 var(--fd);color:var(--ink);padding:12px 0;border-bottom:1px solid var(--line)}
.sheet-links a.on{font-style:italic}
.sheet-foot{margin-top:auto}

/* sections */
main{display:block}
.sec{padding-top:clamp(64px,9vw,128px);padding-bottom:0}
.sec-head{margin-bottom:clamp(28px,4vw,52px);max-width:720px}
.sec-head.row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;max-width:none}
.sec-head .h2{margin-bottom:.25em}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
.band-linen{background:var(--linen);margin-top:clamp(64px,9vw,128px);padding-bottom:clamp(64px,9vw,128px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ph{display:block;overflow:hidden;background:var(--sand)}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease),opacity .6s}
.reveal{opacity:0;transform:translateY(12px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.reveal.in{opacity:1;transform:none}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* hero */
.hero{position:relative;height:calc(100svh - 110px);min-height:520px;max-height:940px;overflow:hidden;background:#3a2c22;color:#fff;display:flex;align-items:flex-end}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.hero-slide.is-on{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:78% 50%;display:block}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(36,24,16,.5) 0%,rgba(36,24,16,.3) 28%,rgba(36,24,16,.08) 44%,rgba(36,24,16,0) 56%),linear-gradient(180deg,rgba(36,24,16,.1) 0%,rgba(36,24,16,0) 35%,rgba(36,24,16,.5) 100%)}
.hero .label{text-shadow:0 1px 12px rgba(0,0,0,.25)}
.hero-copy{position:relative;z-index:1;padding-bottom:clamp(48px,8vh,96px)}
.hero-copy .label{color:rgba(255,255,255,.86)}
.hero .display{color:#fff;max-width:9.5ch;font-size:clamp(2.4rem,4.4vw,4.1rem);margin-bottom:.6em}
.hero-copy .label{max-width:26rem;line-height:1.9}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px}
.hero .link-btn{color:#fff;border-color:rgba(255,255,255,.6)}
.hero-note{position:absolute;right:var(--gut);bottom:clamp(48px,8vh,96px);z-index:1;color:rgba(255,255,255,.8)!important;margin:0;text-align:right;max-width:none;white-space:nowrap}
.intro-in{max-width:860px;margin:0 auto;text-align:center}

/* home work grid */
.work{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(14px,2vw,28px)}
.work-i{display:block;text-align:left}
.work-i .ph{aspect-ratio:4/5}
.work-i:hover img{transform:scale(1.03)}
.work-i .cap{display:block;font:400 .66rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:14px}
.w0{grid-column:span 7}.w0 .ph{aspect-ratio:3/2}
.w1{grid-column:span 5}.w1 .ph{aspect-ratio:auto;height:calc(100% - 30px)}
.w2,.w3,.w4,.w5{grid-column:span 3}
.w2 .ph,.w3 .ph,.w4 .ph,.w5 .ph{aspect-ratio:4/5}

/* commissions cards */
.s-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,36px) clamp(14px,2vw,28px)}
.s-card{display:block}
.s-card .ph{aspect-ratio:4/5}
.s-card:hover img{transform:scale(1.03)}
.s-body{display:flex;flex-direction:column;padding-top:16px;border-top:0}
.s-body b{font:400 1.45rem/1.2 var(--fd);color:var(--ink)}
.s-body small{color:var(--muted);font-size:.8rem;margin:4px 0 10px}
.s-price{font:400 .66rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--drift)}
.s-price em{font-style:normal;color:var(--ink)}
.s-card.off,tr.off,.tab.off{display:none}

/* timeline */
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(18px,2.4vw,32px)}
.timeline li{border-top:1px solid var(--line);padding-top:22px}
.step-n{font:italic 400 1.15rem/1 var(--fd);color:var(--brass)}
.timeline h3{font:400 1.45rem/1.2 var(--fd);color:var(--ink);margin:14px 0 8px}
.timeline p{margin:0;color:var(--muted);font-size:.92rem}

/* before / after */
.ticks{list-style:none;padding:0;margin:1.4em 0}
.ticks li{padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.ticks li:first-child{border-top:1px solid var(--line)}
.moods{margin-top:28px}
.mood{font:400 .7rem/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;padding:10px 0;margin-right:22px;color:var(--muted);border-bottom:1px solid transparent;transition:color .4s,border-color .4s}
.mood.on,.mood:hover{color:var(--ink);border-color:var(--brass)}
.ba{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--sand);user-select:none}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0);filter:saturate(.55) contrast(.86) brightness(1.04)}
.ba[data-mood="pastel"] .ba-after{filter:brightness(1.07) saturate(.82) contrast(.92)}
.ba[data-mood="cinema"] .ba-after{filter:sepia(.18) contrast(1.06) saturate(.9)}
.ba[data-mood="mono"] .ba-after{filter:grayscale(1) contrast(1.05)}
.ba-lab{position:absolute;top:18px;font:400 .62rem/1 var(--fb);letter-spacing:.22em;text-transform:uppercase;color:#fff;background:rgba(20,24,30,.38);padding:7px 10px;z-index:2}
.ba-lab.l{left:18px}.ba-lab.r{right:18px}
.ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:3;margin:0}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:1px;background:#fff;z-index:2;pointer-events:none}
.ba-handle::after{content:"";position:absolute;top:50%;left:50%;width:38px;height:38px;border:1px solid #fff;border-radius:50%;transform:translate(-50%,-50%);background:rgba(20,24,30,.18)}

/* forms */
.form{display:flex;flex-direction:column;gap:18px}
.fld{display:flex;flex-direction:column;gap:8px;margin:0 0 4px}
.fld>span{font:400 .66rem/1.4 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--drift)}
input:not([type=checkbox]):not([type=range]):not([type=file]),select,textarea{width:100%;min-height:46px;padding:10px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--ink);font-weight:300;transition:border-color .3s}
textarea{resize:vertical;min-height:80px}
select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--drift) 50%),linear-gradient(135deg,var(--drift) 50%,transparent 50%);background-position:calc(100% - 10px) 52%,calc(100% - 5px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:24px}
select option{background:var(--paper);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink)}
input.err,textarea.err{border-color:var(--bad)!important}
.check{display:flex;gap:12px;align-items:flex-start;font-size:.92rem;cursor:pointer}
.check input{margin-top:6px;accent-color:var(--ink);width:15px;height:15px;flex:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:400 .68rem/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;padding:12px 16px;border:1px solid var(--line);color:var(--text);transition:border-color .3s,background .3s,color .3s}
.chip:hover{border-color:var(--drift)}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.seg{display:flex;flex-wrap:wrap;border:1px solid var(--line)}
.seg button{flex:1 1 0;min-width:120px;padding:12px 10px;font-size:.84rem;border-right:1px solid var(--line);transition:background .3s,color .3s}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--ink);color:var(--bg)}
.card{background:var(--paper);border:1px solid var(--line);padding:clamp(24px,3vw,40px)}

/* estimator */
.estimator-card{display:grid;grid-template-columns:1.25fr 1fr;border:1px solid var(--line);background:var(--paper)}
.est-left{padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;gap:18px}
.est-left .h2{margin-bottom:.2em}
.est-right{padding:clamp(28px,4vw,56px);background:var(--linen);border-left:1px solid var(--line)}
.est-total{font:400 clamp(2.6rem,4.4vw,3.6rem)/1 var(--fd);color:var(--ink);margin:0 0 10px}
.est-inc{list-style:none;padding:0;margin:18px 0 26px;font-size:.9rem}
.est-inc li{padding:8px 0;border-bottom:1px solid var(--line)}
.estimator-card.compact{grid-template-columns:1fr}
.estimator-card.compact .est-right{border-left:0;border-top:1px solid var(--line)}

/* promo + availability */
.promo{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);background:var(--paper);align-self:stretch}
.promo img{width:100%;height:100%;object-fit:cover;min-height:300px}
.promo-b{padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;justify-content:center}
.promo-b p{color:var(--muted)}
.promo.off{display:none}
.countdown{font-size:.82rem;letter-spacing:.02em;margin:0 0 18px}
.avail .h3{margin-bottom:22px}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;color:var(--muted);margin-top:14px}
.lg{display:inline-block;width:9px;height:9px;margin-right:-8px;border:1px solid var(--drift)}
.lg.open{background:transparent;border-color:var(--ink)}
.lg.limited{background:var(--sand);border-color:var(--sand)}
.lg.booked{background:var(--line);border-color:var(--line)}

/* calendar */
.cal{border:1px solid var(--line);background:var(--paper);padding:18px}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.cal-head b{font:400 1.25rem/1 var(--fd);color:var(--ink)}
.cal-head button{width:34px;height:34px;font-size:1.3rem;color:var(--ink);border:1px solid var(--line)}
.cal-head button:disabled{opacity:.3;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{font:400 .6rem/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--drift);text-align:center;padding:6px 0}
.cal-d{aspect-ratio:1;max-height:56px;width:100%;font-size:.88rem;display:grid;place-items:center;border:1px solid transparent;color:var(--ink);transition:background .3s,border-color .3s}
.cal-d.open{border-color:var(--line)}
.cal-d.open:not(:disabled):hover,.cal-d.limited:not(:disabled):hover{border-color:var(--ink)}
.cal-d.limited{background:var(--linen);border-color:var(--sand)}
.cal-d.booked,.cal-d.blocked{color:var(--drift);text-decoration:line-through;opacity:.55}
.cal-d.blocked{background:repeating-linear-gradient(135deg,transparent 0 5px,var(--line) 5px 6px);opacity:.8}
.cal-d.past{color:var(--drift);opacity:.35}
.cal-d.today{box-shadow:inset 0 -2px 0 var(--brass)}
.cal-d.sel{background:var(--ink)!important;color:var(--bg)!important;border-color:var(--ink)}
.cal-d:disabled{cursor:default}
.cal.mini .cal-d{max-height:44px;font-size:.8rem}

/* zones */
.zones{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.zone{padding:28px 28px 8px 0}
.zone+.zone{padding-left:28px;border-left:1px solid var(--line)}
.zone h3{font:400 1.6rem/1.2 var(--fd);color:var(--ink);margin:0 0 10px}
.zone p{color:var(--muted);margin:0 0 14px}
.zone b{font:400 .66rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}

/* testimonials */
.t-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 80px)/3);gap:40px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}
.t-card{margin:0;scroll-snap-align:start;border-top:1px solid var(--drift);padding-top:26px}
.t-card blockquote{margin:0 0 22px;font:400 1.3rem/1.5 var(--fd);color:var(--ink)}
.t-card figcaption{display:flex;flex-direction:column;gap:4px}
.t-card figcaption b{font:400 .7rem/1.4 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.t-card figcaption span{font-size:.8rem;color:var(--muted)}

/* loyalty */
.loyal{display:grid;grid-template-columns:1.2fr 1fr auto;gap:clamp(24px,5vw,72px);align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(36px,5vw,64px) 0}
.loyal .h2{margin-bottom:.4em}
.loyal p{margin:0}
.loyal-steps{list-style:none;margin:0;padding:0}
.loyal-steps li{display:flex;gap:16px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.loyal-steps b{font:italic 400 1.05rem/1 var(--fd);color:var(--brass);min-width:22px}

/* feed */
.feed{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(8px,1vw,14px)}
.feed-i{aspect-ratio:1;overflow:hidden;background:var(--sand)}
.feed-i img{width:100%;height:100%;object-fit:cover;transition:opacity .5s}
.feed-i:hover img{opacity:.85}

/* CTA band + footer */
.cta-band{margin-top:clamp(72px,10vw,140px);background:var(--linen);border-top:1px solid var(--line)}
.cta-in{text-align:center;padding-top:clamp(56px,8vw,104px);padding-bottom:clamp(56px,8vw,104px);max-width:860px}
.cta-in .h2{margin-bottom:1em}
.cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.foot{background:var(--linen);border-top:1px solid var(--line);padding:clamp(48px,6vw,80px) 0 28px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:clamp(24px,4vw,56px)}
.foot-grid a:not(.brand):not(.qc){display:block;padding:5px 0;font-size:.9rem;color:var(--text)}
.foot-grid a:not(.brand):not(.qc):hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--brass)}
.foot-brand .small{margin:18px 0}
.foot-h{font:400 .66rem/1.4 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--drift);margin:6px 0 14px}
.quick-contact{display:flex;gap:6px}
.qc{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);color:var(--ink);transition:border-color .3s}
.qc:hover{border-color:var(--ink)}
.qc svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.2}
.news{display:flex;gap:12px;align-items:flex-end}
.news input{flex:1}
.foot-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:48px;padding-top:22px;border-top:1px solid var(--line)}
.foot-base a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}

/* inner page hero */
.page-hero{padding-top:clamp(56px,8vw,112px);padding-bottom:clamp(28px,4vw,48px);border-bottom:1px solid var(--line);margin-bottom:0}
.page-hero .h1{max-width:18ch}
.page-hero .hero-cta{margin-top:8px}
.about-hero{border-bottom:0}

/* portfolio */
.filters{display:flex;flex-wrap:wrap;gap:6px 26px;margin-top:22px}
.filters .chip{border:0;padding:8px 0;border-bottom:1px solid transparent;background:none;color:var(--muted)}
.filters .chip.on{background:none;color:var(--ink);border-color:var(--brass)}
.masonry{columns:3 320px;column-gap:clamp(16px,2vw,28px);padding-top:clamp(36px,5vw,64px);margin-bottom:24px}
.m-item{display:block;width:100%;break-inside:avoid;margin:0 0 clamp(22px,3vw,40px);text-align:left;position:relative;animation:fade .9s var(--ease) both}
.m-item img{width:100%;height:auto;background:var(--sand);transition:opacity .5s}
.m-item:hover img{opacity:.9}
.m-meta{display:flex;justify-content:space-between;gap:12px;padding-top:12px;align-items:baseline}
.m-meta b{font:400 1.1rem/1.3 var(--fd);color:var(--ink)}
.m-meta small{font:400 .6rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--drift);white-space:nowrap}
.m-play{position:absolute;top:16px;right:16px;width:44px;height:44px;border:1px solid rgba(255,255,255,.85);border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(20,24,30,.2)}
.m-play svg{width:14px;height:14px;margin-left:2px}

/* lightbox, modals */
.lightbox{position:fixed;inset:0;z-index:80;background:rgba(14,18,24,.96);display:grid;grid-template-columns:72px 1fr 72px;align-items:center;animation:fade .4s var(--ease)}
.lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;max-height:100vh;padding:56px 0 24px}
.lb-media img,.lb-media video{max-height:calc(100vh - 140px);max-width:100%;width:auto;margin:0 auto}
.lb-cap{color:#efe9df;font:400 1.15rem/1.3 var(--fd);text-align:center}
.lb-cap small{display:block;font:400 .6rem/1.6 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:#a9a397;margin-top:4px}
.lb-nav{color:#efe9df;font-size:2.4rem;font-weight:200;height:100%;opacity:.7}
.lb-nav:hover{opacity:1}
.lb-close{position:absolute;top:14px;right:14px;color:#efe9df;z-index:2}
.modal,.reel-modal{position:fixed;inset:0;z-index:80;background:rgba(14,18,24,.6);display:grid;place-items:center;padding:20px;animation:fade .4s var(--ease)}
.modal-box{position:relative;background:var(--paper);width:min(560px,100%);max-height:90vh;overflow:auto;padding:clamp(28px,4vw,44px);border:1px solid var(--line)}
.modal-x{position:absolute;top:10px;right:10px}
.reel-modal{background:rgba(14,18,24,.94)}
.reel-box{position:relative;width:min(1100px,100%)}
.reel-box video{width:100%}
.reel-close{position:absolute;top:-48px;right:0;color:#efe9df}
.drop{display:block;border:1px dashed var(--drift);padding:28px;text-align:center;cursor:pointer;color:var(--muted)}
.drop input{display:block;margin:0 auto 10px;max-width:100%}
.proof-prev{max-height:160px;margin-top:12px}

/* toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);background:var(--ink);color:var(--bg);font-size:.86rem;padding:14px 22px;opacity:0;pointer-events:none;transition:opacity .5s var(--ease),transform .5s var(--ease);z-index:90;max-width:calc(100vw - 32px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* sessions */
.tabs{display:flex;flex-wrap:wrap;gap:4px 28px;border-bottom:1px solid var(--line);margin-bottom:clamp(28px,4vw,48px)}
.tab{font:400 .7rem/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:16px 0;border-bottom:1px solid transparent;margin-bottom:-1px;transition:color .3s,border-color .3s}
.tab.on,.tab:hover{color:var(--ink);border-color:var(--ink)}
.sd-top{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:center;margin-bottom:clamp(36px,5vw,64px)}
.sd-top img{width:100%;aspect-ratio:4/5;object-fit:cover}
.sd-top .lead{margin-bottom:1em}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);margin-bottom:36px;background:var(--paper)}
.tier{position:relative;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column}
.tier+.tier{border-left:1px solid var(--line)}
.tier.pop{background:var(--linen)}
.tier h3{font:400 1.7rem/1.1 var(--fd);color:var(--ink);margin:0 0 12px}
.badge{position:absolute;top:18px;right:18px;font:400 .58rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}
.price{font:400 2.3rem/1 var(--fd);color:var(--ink);margin:0 0 18px}
.price small{display:block;font:400 .6rem/1.6 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--drift);margin-top:8px}
.tier ul{list-style:none;padding:0;margin:0 0 26px;flex:1;font-size:.92rem}
.tier li{padding:9px 0;border-bottom:1px solid var(--line)}
.table-wrap{overflow-x:auto;border-top:1px solid var(--ink)}
.cmp,.price-tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.cmp th,.cmp td,.price-tbl th,.price-tbl td{text-align:left;padding:14px 16px 14px 0;border-bottom:1px solid var(--line);vertical-align:top}
.cmp thead th,.price-tbl thead th{font:400 .62rem/1.4 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--drift)}
.cmp tbody th{font:400 1.12rem/1.3 var(--fd);color:var(--ink);white-space:nowrap}
.addon-list{list-style:none;padding:0;margin:0}
.addon-list li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.addon-list b{font-weight:400;color:var(--ink)}

/* quiz */
.quiz-card{max-width:780px;margin:0 auto;border:1px solid var(--line);background:var(--paper);padding:clamp(28px,5vw,64px)}
.q-progress{height:1px;background:var(--line);margin-bottom:36px}
.q-progress i{display:block;height:1px;background:var(--ink);width:0;transition:width .8s var(--ease)}
.q-opts{display:flex;flex-direction:column;margin-top:18px}
.q-opt{text-align:left;padding:18px 0;border-bottom:1px solid var(--line);font:400 1.3rem/1.3 var(--fd);color:var(--ink);transition:padding .4s var(--ease),color .3s}
.q-opt:first-child{border-top:1px solid var(--line)}
.q-opt:hover,.q-opt:focus-visible{padding-left:12px}
.q-result{text-align:center}
.q-result img{width:min(420px,100%);aspect-ratio:4/5;object-fit:cover;margin:24px auto}
.q-result .hero-cta{margin:20px 0}
.q-result em{font-style:italic}

/* booking */
.b-steps{list-style:none;display:flex;padding:0;margin:0 0 clamp(28px,4vw,48px);border-bottom:1px solid var(--line);counter-reset:s;overflow-x:auto}
.b-steps li{counter-increment:s;flex:1;padding:14px 0;font:400 .64rem/1 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--drift);border-bottom:1px solid transparent;margin-bottom:-1px;white-space:nowrap;cursor:default}
.b-steps li::before{content:counter(s,upper-roman) ". ";font:italic 400 .95rem/1 var(--fd);letter-spacing:0;color:var(--brass)}
.b-steps li.on{color:var(--ink);border-color:var(--ink)}
.b-steps li.done{color:var(--text);cursor:pointer}
.b-grid{display:grid;grid-template-columns:1fr 340px;gap:clamp(28px,4vw,56px);align-items:start}
.b-pane{display:none}
.b-pane.on{display:block;animation:fade .6s var(--ease)}
.pick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pick{text-align:left;border:1px solid var(--line);background:var(--paper);transition:border-color .3s}
.pick img{width:100%;aspect-ratio:1;object-fit:cover}
.pick span{display:flex;flex-direction:column;padding:12px 14px 14px}
.pick b{font:400 1.08rem/1.25 var(--fd);color:var(--ink)}
.pick small{color:var(--muted);font-size:.74rem;margin-top:4px}
.pick.on,.pick:hover{border-color:var(--ink)}
.pick.on{box-shadow:inset 0 0 0 1px var(--ink)}
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:32px}
.tier-pick{text-align:left;border:1px solid var(--line);background:var(--paper);padding:22px;display:flex;flex-direction:column;gap:6px;transition:border-color .3s}
.tier-pick b{font:400 1.4rem/1.2 var(--fd);color:var(--ink)}
.tier-pick .tp{font:400 1.1rem/1 var(--fd);color:var(--brass)}
.tier-pick small{color:var(--muted);font-size:.78rem;line-height:1.55}
.tier-pick.on,.tier-pick:hover{border-color:var(--ink)}
.tier-pick.on{box-shadow:inset 0 0 0 1px var(--ink)}
.slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.slot{border:1px solid var(--line);padding:12px 16px;font-size:.86rem;background:var(--paper);transition:border-color .3s}
.slot:hover:not(:disabled){border-color:var(--ink)}
.slot.gold{border-color:color-mix(in srgb,var(--brass) 55%,var(--line))}
.slot.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.slot:disabled{opacity:.35;text-decoration:line-through;cursor:default}
.b-nav{display:flex;justify-content:space-between;gap:12px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.b-summary{position:sticky;top:96px;background:var(--linen);border:1px solid var(--line);padding:28px}
.b-summary h3{font:400 1.5rem/1.2 var(--fd);color:var(--ink);margin:0 0 16px}
.sum-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.88rem}
.sum-row span{color:var(--muted)}
.sum-row b{font-weight:400;color:var(--ink);text-align:right}
.sum-total{font:400 2.4rem/1 var(--fd);color:var(--ink);margin:20px 0 6px}
.sum-dep{display:block;font:400 .64rem/1.5 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:10px}
.review{border-top:1px solid var(--line);margin-bottom:22px}
.pay-demo{background:var(--linen);padding:18px 20px;border-left:1px solid var(--brass)}
.pay-demo p{margin:0}
.b-done{text-align:center;padding:clamp(28px,4vw,56px) clamp(12px,3vw,40px);border:1px solid var(--line);background:var(--paper);animation:fade .8s var(--ease)}
.b-done .h2{max-width:20ch;margin-left:auto;margin-right:auto}
.ref{font:400 clamp(1.6rem,3vw,2.2rem)/1 var(--fd);letter-spacing:.12em;color:var(--ink);margin:4px 0 22px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:inline-block;min-width:min(340px,100%)}
.done-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}

/* portal + studio */
.login-card{max-width:460px;margin:0 auto;border:1px solid var(--line);background:var(--paper);padding:clamp(28px,4vw,44px)}
.p-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px}
.p-pane,.o-pane{display:none}
.p-pane.on,.o-pane.on{display:block;animation:fade .5s var(--ease)}
.list{border-top:1px solid var(--line);margin-bottom:16px}
.item{display:flex;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.item h3{font:400 1.3rem/1.3 var(--fd);color:var(--ink);margin:0 0 6px}
.item p{margin:2px 0;color:var(--muted);font-size:.88rem}
.item-act{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;flex:none;max-width:52%}
.status{display:inline-block;font:400 .58rem/1 var(--fb);letter-spacing:.18em;text-transform:uppercase;padding:5px 8px 4px;border:1px solid currentColor;margin-left:8px;vertical-align:middle}
.status.ok{color:var(--ok)}.status.warn{color:var(--warn)}.status.bad{color:var(--bad)}
.bar{height:2px;background:var(--line);margin:14px 0}
.bar i{display:block;height:100%;background:var(--brass)}
.g-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.g-item{position:relative;overflow:hidden;background:var(--sand)}
.g-open{display:block;width:100%}
.g-open img{width:100%;aspect-ratio:4/5;object-fit:cover}
.watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:400 .7rem/1 var(--fb);letter-spacing:.5em;color:rgba(255,255,255,.7);pointer-events:none}
.g-tools{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:flex-end;gap:2px;padding:8px;background:linear-gradient(transparent,rgba(14,18,24,.35))}
.g-tools button,.g-tools a{width:34px;height:34px;display:grid;place-items:center;color:#fff}
.g-tools svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3}
.fav.on svg{fill:#fff}
.circle-card{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.points{font:400 2.4rem/1.1 var(--fd);color:var(--ink)}
.code-box{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.code-box code{font:400 .9rem/1 var(--fb);letter-spacing:.16em;padding:12px 14px;border:1px dashed var(--drift)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--paper);margin-bottom:28px}
.kpi{padding:22px 24px}
.kpi+.kpi{border-left:1px solid var(--line)}
.kpi b{display:block;font:400 2rem/1.1 var(--fd);color:var(--ink)}
.kpi span{font:400 .6rem/1.5 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--drift)}
.price-tbl input[type=number]{width:96px;min-height:36px;display:inline-block;margin-left:4px}
.switch{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;border:1px solid var(--drift);border-radius:22px;transition:background .3s}
.switch span::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--drift);transition:transform .3s,background .3s}
.switch input:checked+span{background:var(--ink);border-color:var(--ink)}
.switch input:checked+span::after{transform:translateX(18px);background:var(--bg)}
.order-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.o-tile{position:relative;border:1px solid var(--line);background:var(--paper);cursor:grab}
.o-tile img{width:100%;aspect-ratio:1;object-fit:cover}
.o-tile.hid img{opacity:.3}
.o-tile.drag{opacity:.4}.o-tile.over{border-color:var(--ink)}
.o-n{position:absolute;top:6px;left:6px;font-size:.7rem;background:var(--paper);padding:2px 7px}
.o-act{display:flex;justify-content:space-between;border-top:1px solid var(--line)}
.o-act button{flex:1;padding:8px 0;font-size:.72rem;letter-spacing:.06em;color:var(--ink)}
.o-act button+button{border-left:1px solid var(--line)}

/* gifts */
.gift-split{align-items:start}
.gift-preview canvas{width:100%;height:auto;border:1px solid var(--line);box-shadow:0 30px 60px -40px rgba(31,42,58,.35)}

/* stories */
.stories{display:grid;gap:clamp(48px,7vw,96px)}
.story{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:center}
.story:nth-child(even) .ph{order:2}
.story .ph{aspect-ratio:4/5}
.story-text p{color:var(--muted);margin:0 0 1em}
.story-text p:nth-child(n+2){display:none}
.story.open .story-text p{display:block}

/* guide */
.pals{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.pal{border:1px solid var(--line);background:var(--paper);padding:12px;text-align:left;transition:border-color .3s}
.pal:hover{border-color:var(--ink)}
.sw{display:flex;height:52px;margin-bottom:10px}
.sw i{flex:1}
.pal b{font:400 1.08rem/1 var(--fd);color:var(--ink)}
.checklist{display:flex;flex-direction:column}
.checklist .check{padding:12px 0;border-bottom:1px solid var(--line)}
.dos{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.dos ul{list-style:none;padding:0;margin:0}
.dos li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.92rem;color:var(--muted)}

/* faq */
.faq{max-width:860px}
.qa{border-bottom:1px solid var(--line)}
.qa:first-child{border-top:1px solid var(--line)}
.qa summary{list-style:none;display:flex;justify-content:space-between;gap:20px;cursor:pointer;padding:22px 0;font:400 1.3rem/1.35 var(--fd);color:var(--ink)}
.qa summary::-webkit-details-marker{display:none}
.qa summary span{font:300 1.3rem/1 var(--fb);color:var(--brass);transition:transform .4s var(--ease)}
.qa[open] summary span{transform:rotate(45deg)}
.qa p{margin:0 0 24px;color:var(--muted);max-width:68ch}
.search-fld{max-width:420px;margin-top:10px}

/* about */
.about-stack{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end}
.about-stack img{width:100%;aspect-ratio:4/5;object-fit:cover}
.about-stack .as2{margin-bottom:-48px}
.vals{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.vals .card{padding:28px}
.kit{max-width:860px}

/* contact */
.contact-btns{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--paper)}
.cbtn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:36px 20px;text-align:center;transition:background .4s}
.cbtn+.cbtn{border-left:1px solid var(--line)}
.cbtn:hover{background:var(--linen)}
.cbtn svg{width:22px;height:22px;fill:none;stroke:var(--ink);stroke-width:1.1}
.cbtn b{font:400 1.35rem/1.2 var(--fd);color:var(--ink)}
.cbtn small{color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
.hours{list-style:none;padding:0;margin:0 0 18px}
.hours li{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.hours b{font-weight:400;color:var(--ink)}

/* 404 */
.nf{text-align:center;padding-top:clamp(80px,12vw,160px);max-width:760px}
.nf .lead{margin-left:auto;margin-right:auto}
.nf .hero-cta{justify-content:center}

/* responsive */
@media (max-width:1100px){
  .t-track{grid-auto-columns:calc((100% - 40px)/2)}
  .links{display:none}
  .menu-btn{display:inline-grid}
  .topbar{grid-template-columns:1fr auto}
  .s-grid{grid-template-columns:repeat(2,1fr)}
  .timeline{grid-template-columns:repeat(2,1fr)}
  .loyal{grid-template-columns:1fr 1fr}
  .loyal>.text-link{grid-column:1/-1;justify-self:start}
  .pick-grid{grid-template-columns:repeat(3,1fr)}
  .b-grid{grid-template-columns:1fr}
  .b-summary{position:static}
  .vals{grid-template-columns:repeat(2,1fr)}
  .order-grid{grid-template-columns:repeat(4,1fr)}
  .promo{grid-template-columns:1fr}
  .promo img{min-height:220px;max-height:280px}
}
@media (max-width:760px){
  body{font-size:15.5px}
  .hide-sm{display:none!important}
  .topbar{padding:12px var(--gut)}
  .wm-name{font-size:1.45rem}
  .hero{height:auto;min-height:0;max-height:none;background:#1d2b45}
  .hero-media{position:relative;inset:auto;aspect-ratio:4/5;max-height:62svh;width:100%}
  .hero-slide img{object-position:50% 50%}
  .hero-scrim{display:none}
  .hero .display{max-width:none;font-size:clamp(2.3rem,10vw,3rem)}
  .hero-copy{padding-top:32px}
  .hero-note{position:relative;right:auto;bottom:auto;white-space:normal}
  .hero{flex-direction:column;justify-content:flex-end;align-items:stretch}
  .hero-copy{padding-bottom:18px}
  .hero-note{padding:0 var(--gut) 28px;text-align:left;max-width:none}
  .sec-head.row{flex-direction:column;align-items:flex-start}
  .split,.estimator-card,.sd-top,.story,.circle-card,.gift-split{grid-template-columns:1fr}
  .story:nth-child(even) .ph{order:0}
  .est-right{border-left:0;border-top:1px solid var(--line)}
  .work{grid-template-columns:repeat(2,1fr)}
  .w0{grid-column:1/-1}.w1{grid-column:1/-1}.w1 .ph{height:auto;aspect-ratio:4/5}
  .w2,.w3,.w4,.w5{grid-column:span 1}
  .s-grid{grid-template-columns:1fr 1fr;gap:28px 14px}
  .s-body b{font-size:1.2rem}
  .timeline{grid-template-columns:1fr}
  .zones{grid-template-columns:1fr}
  .zone,.zone+.zone{padding:24px 0 8px;border-left:0}
  .zone+.zone{border-top:1px solid var(--line)}
  .t-track{grid-auto-columns:85%;gap:24px}
  .loyal{grid-template-columns:1fr}
  .feed{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
  .foot-grid>div:last-child{grid-column:1/-1}
  .row2{grid-template-columns:1fr}
  .tiers{grid-template-columns:1fr}
  .tier+.tier{border-left:0;border-top:1px solid var(--line)}
  .pick-grid{grid-template-columns:repeat(2,1fr)}
  .tier-grid{grid-template-columns:1fr}
  .item{flex-direction:column}
  .item-act{max-width:none;justify-content:flex-start}
  .gal{grid-template-columns:repeat(2,1fr)}
  .kpis{grid-template-columns:1fr 1fr}
  .kpi:nth-child(3){border-left:0}
  .kpi:nth-child(n+3){border-top:1px solid var(--line)}
  .order-grid{grid-template-columns:repeat(3,1fr)}
  .vals,.dos,.pals{grid-template-columns:1fr}
  .contact-btns{grid-template-columns:1fr}
  .cbtn+.cbtn{border-left:0;border-top:1px solid var(--line)}
  .masonry{columns:1}
  .lightbox{grid-template-columns:44px 1fr 44px}
  .about-stack .as2{margin-bottom:0}
  .b-steps li{font-size:.58rem;letter-spacing:.12em;padding-right:12px}
  .seg button{min-width:0;font-size:.8rem}
  .btn{padding:0 22px}
  .news{flex-direction:column;align-items:stretch}
}
@media (prefers-reduced-motion:reduce){
  .hero-slide{transition:none}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
@media print{.topbar,.demo-ribbon,.foot,.cta-band,.toast{display:none}}


/* =========================================================
   WARM COASTAL LAYER (Oct 2026 refresh): warmth, life, invitation
   ========================================================= */
body{font:400 17px/1.8 var(--fb);letter-spacing:0;color:var(--text)}
.display,.h1,.h2,.h3,.h4,.statement{font-family:var(--fd);font-variation-settings:"SOFT" 50;font-optical-sizing:auto;letter-spacing:-.01em}
.display{font-weight:350;line-height:1.06}
.h1,.h2{font-weight:380}
.h3,.h4{font-weight:420}
.h1 em,.h2 em,.h3 em,.statement em,.display em{font-style:italic;font-weight:340;color:var(--accent)}
[data-theme="dark"] .h1 em,[data-theme="dark"] .h2 em,[data-theme="dark"] .statement em{color:var(--apricot)}
.lead{font-size:1.14rem;line-height:1.8;color:var(--muted)}
.label{font:500 .72rem/1.6 var(--fb);letter-spacing:.18em;color:var(--drift)}
.small{font-size:.9rem}
.sec-intro{font:italic 400 1.22rem/1.55 var(--fd);color:var(--muted);max-width:46ch;margin:.2em 0 0}
.sec-head.row .sec-intro{margin-bottom:0}
.statement{font-weight:360;line-height:1.42}
::selection{background:var(--apricot);color:#1d2b45}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* buttons: soft and inviting */
.btn{border-radius:999px;font:500 .76rem/1 var(--fb);letter-spacing:.14em;min-height:50px;padding:0 30px;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 10px 24px -14px var(--accent)}
.btn-primary:hover{background:#9c4526;border-color:#9c4526;color:#fdf8f1}
[data-theme="dark"] .btn-primary:hover{background:var(--apricot);border-color:var(--apricot);color:#16213a}
.btn-line{border-color:color-mix(in srgb,var(--ink) 55%,transparent)}
.btn-light{background:#fdf8f1;color:#1d2b45;border-color:#fdf8f1}
.btn-light:hover{background:#fff;color:#1d2b45;border-color:#fff}
.text-link,.link-btn{font:500 .74rem/1 var(--fb);letter-spacing:.14em;border-bottom:1.5px solid var(--coral)}
.text-link:hover{color:var(--accent)}
.chip,.mood,.seg button,.tab{border-radius:999px}

/* header + ribbon */
.demo-ribbon{background:var(--ink);color:#f6e3cf;border:0;letter-spacing:.16em}
[data-theme="dark"] .demo-ribbon{background:#0f1830}
.topbar{background:color-mix(in srgb,var(--bg) 90%,transparent);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.wm-name{font:420 1.75rem/1 var(--fd);font-style:italic;letter-spacing:-.005em;font-variation-settings:"SOFT" 100}
.wm-sub{color:var(--drift);letter-spacing:.42em;font-weight:500}
.links a{font:500 .74rem/1 var(--fb);letter-spacing:.14em}
.links a:hover,.links a.on{border-color:var(--coral);color:var(--accent)}
[data-theme="dark"] .links a:hover,[data-theme="dark"] .links a.on{color:var(--apricot)}
.sheet-links a{font-family:var(--fd)}

/* hero: warm grade, subline */
.hero-slide img{filter:saturate(1.08) sepia(.06) contrast(1.02)}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,170,110,.10),rgba(240,120,80,.08));mix-blend-mode:soft-light;pointer-events:none}
.hero .display{max-width:11ch;font-size:clamp(2.4rem,4.1vw,3.9rem)}
.hero .hero-note{position:static;margin:26px 0 0;padding:0;text-align:left;white-space:normal;color:rgba(253,233,214,.9)!important}
.hero .display em{color:#fff}
.hero-sub{color:rgba(255,255,255,.92);font:400 1.12rem/1.6 var(--fb);max-width:32ch;margin:-.2em 0 1.8em;text-shadow:0 1px 14px rgba(0,0,0,.25)}
.hero .label{color:#fde9d6}

/* photography: warm grade, rounded corners, gentle lift */
.ph,.work-i .ph,.s-card .ph,.feed-i,.promo,.ba,.story .ph,.about-stack img,.collage img,.g-item,.m-item,.q-result img,.masonry .item{border-radius:var(--r);overflow:hidden}
.ph img,.feed-i img,.promo img,.collage img,.about-stack img,.story img,.g-item img,.masonry img,.q-result img,.m-item img{filter:saturate(1.08) sepia(.07) contrast(1.02) brightness(1.01)}
.ph{background:var(--sand)}
.work-i,.s-card,.feed-i,.zone,.t-card,.card,.masonry .item,.story{transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.work-i:hover,.s-card:hover,.feed-i:hover,.masonry .item:hover{transform:translateY(-6px)}
.work-i:hover .ph,.s-card:hover .ph,.masonry .item:hover{box-shadow:0 22px 40px -22px var(--shadow)}
.work-i:hover .ph img,.s-card:hover .ph img{transform:scale(1.035)}
.card{border-radius:var(--r-lg);background:var(--paper);border-color:var(--line)}
.card:hover{box-shadow:0 22px 44px -30px var(--shadow)}
.estimator-card,.promo,.avail .cal,.quiz-card,.login-card,.circle-card,.gift-preview canvas,.modal-box,.b-summary{border-radius:var(--r-lg)}
.estimator-card{overflow:hidden;box-shadow:0 30px 60px -40px var(--shadow)}
.est-right{background:linear-gradient(160deg,#f9e6d2,#fbefe2 55%,#e8f1ee)}
[data-theme="dark"] .est-right{background:linear-gradient(160deg,#22304d,#1e2c48)}
.zone{background:var(--paper);border-radius:var(--r);padding:28px!important;border:1px solid var(--line)!important}
.zone:hover{transform:translateY(-4px);box-shadow:0 22px 40px -28px var(--shadow)}
.zone b{color:var(--sea-ink)}
.t-card{background:var(--paper);border-radius:var(--r);padding:30px 28px!important;border:0!important;box-shadow:0 18px 40px -32px var(--shadow)}
.t-card blockquote{font-family:var(--fd);font-style:italic;font-weight:360}
.t-card figcaption b{color:var(--accent)}
.timeline li{border-top-color:var(--coral)!important}
.tag-sample{border-radius:999px;color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}

/* warm bands */
.band-linen{background:linear-gradient(180deg,#f8ead8 0%,#fbf1e4 70%,#fdf8f1 100%);border:0}
[data-theme="dark"] .band-linen{background:linear-gradient(180deg,#1e2c48,#1a2640)}
.testi-sec{background:linear-gradient(180deg,#e9f2ef 0%,#f6efe4 100%)}
[data-theme="dark"] .testi-sec{background:linear-gradient(180deg,#1b2b40,#1a2640)}
.cta-band{background:radial-gradient(120% 140% at 15% 0%,#f7d7bf 0%,#f9e7d4 45%,#e6f0ec 100%)!important;border:0!important}
[data-theme="dark"] .cta-band{background:linear-gradient(160deg,#22304d,#1b2b40)!important}
.foot{background:#1d2b45;color:#eadccb;border:0}
[data-theme="dark"] .foot{background:#0f1830}
.foot a,.foot .wm,.foot .wm-name,.foot .foot-h,.foot b{color:#fbefe2}
.foot .muted,.foot small,.foot p,.foot .small{color:#d6c6b3}
.foot .wm-sub,.foot .label{color:var(--apricot)}
.foot input{color:#fbefe2;border-color:rgba(251,239,226,.35)}
.foot input::placeholder{color:#c9b8a5}
.foot .btn-line{border-color:#f2b48f;color:#fbefe2}
.foot .btn-line:hover{background:#f2b48f;color:#1d2b45}
.foot .icon-btn,.foot .cbtn{color:#fbefe2}

/* intro collage */
.intro-grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(36px,6vw,96px);align-items:center}
.intro-grid .intro-in{text-align:left;margin:0;max-width:none}
.collage{position:relative;padding-bottom:18%}
.collage .c1{width:80%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-lg);box-shadow:0 30px 60px -36px var(--shadow)}
.collage .c2{position:absolute;right:0;bottom:0;width:50%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--r);border:8px solid var(--bg);box-shadow:0 24px 50px -30px var(--shadow)}
.collage .c-note{position:absolute;left:6%;bottom:4%;font:italic 400 1rem/1.3 var(--fd);color:var(--muted)}
.collage::before{content:"";position:absolute;width:42%;aspect-ratio:1;right:6%;top:-6%;border-radius:50%;background:radial-gradient(circle,#f8d4b8 0%,rgba(248,212,184,0) 70%);z-index:-1}
.intro{position:relative;z-index:0}

/* reveal: a touch more motion, still gentle */
.reveal{transform:translateY(22px);transition:opacity 1s var(--ease),transform 1s var(--ease)}

@media (max-width:760px){
  body{font-size:16.5px}
  .intro-grid{grid-template-columns:1fr}
  .hero .display{max-width:none;font-size:clamp(2.3rem,10vw,3rem)}
  .hero-sub{margin-bottom:1.4em}
  .hero-copy .label{letter-spacing:.1em;font-size:.68rem}
  .hero{background:#1d2b45}
}
@media (prefers-reduced-motion:reduce){
  .work-i:hover,.s-card:hover,.feed-i:hover,.zone:hover,.btn:hover,.masonry .item:hover{transform:none}
}
.foot .foot-grid a:not(.brand):not(.qc){color:#eadccb}
.foot .foot-grid a:not(.brand):not(.qc):hover{color:#fff;text-decoration-color:var(--apricot)}
.foot .foot-h{color:var(--apricot)}
.foot .foot-base{border-top-color:rgba(251,239,226,.18);color:#d6c6b3}
.foot .foot-base a{color:#fbefe2;text-decoration-color:rgba(242,180,143,.6)}
.foot .qc{color:#fbefe2;border-color:rgba(251,239,226,.35)}
.zones{gap:20px;border-top:0}
.cal-d{border-radius:10px}
.cal-d.sel{background:var(--accent)!important;color:var(--on-accent)!important;border-color:var(--accent)}
.cal-d.limited{background:#fbe6d6;border-color:#f3cdb3}
[data-theme="dark"] .cal-d.limited{background:#2b3a58;border-color:#3a4a6a}
.collage-about{display:block;padding-bottom:14%}
.collage-about .as1{width:78%;aspect-ratio:4/5;border-radius:var(--r-lg);box-shadow:0 30px 60px -36px var(--shadow)}
.collage-about .as2{position:absolute;right:0;bottom:0;width:48%;aspect-ratio:1;margin:0!important;border:8px solid var(--bg);border-radius:var(--r)}
.collage-about .c-note{position:absolute;left:4%;bottom:2%;font:italic 400 1rem/1.3 var(--fd);color:var(--muted)}
.pull{margin:0 auto;max-width:900px;text-align:center;font:italic 360 clamp(1.5rem,2.6vw,2.2rem)/1.45 var(--fd);color:var(--ink);padding:clamp(36px,5vw,64px) clamp(20px,5vw,64px);border-radius:var(--r-lg);background:radial-gradient(120% 140% at 10% 0%,#f8dcc6 0%,#fbefe2 55%,#e6f0ec 100%)}
[data-theme="dark"] .pull{background:linear-gradient(160deg,#22304d,#1b2b40)}
