:root{--ev:#1F3A2E;--cr:#F6EDE0;--crd:#E4DCCB;--oat:#E0D0BE;--tc:#A14A3B;--in:#2E3F57;--um:#6B4A35;--sg:#6B7B63;--mar:#6B2A27;--red:#B3392F;--sun:#E58B5A;--amb:#C98A2B;--sgt:#DCE3D5;
--bg:var(--cr);--fg:var(--ev);--muted:#34443B;--card:var(--crd);--imgbg:#fff;--accent:var(--tc);--accent-fg:var(--cr);--line:var(--ev);
--hero-bg:var(--cr);--hero-fg:var(--ev);--display:'Playfair Display',Georgia,serif;--display-style:normal;--display-weight:500;--display-case:none;--display-track:-.01em;
--radius:2px;--btn-radius:2px;--card-shadow:none;--card-border:1px solid rgba(31,58,46,.12);--sans:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;--pad:64px}
[data-theme=fall]{--bg:var(--cr);--fg:var(--um);--muted:#5A4434;--card:var(--oat);--accent:var(--tc);--hero-bg:var(--um);--hero-fg:var(--cr);--display-style:italic;--radius:2px;--card-shadow:none;--card-border:0;--line:var(--um)}
[data-theme=holiday]{--bg:var(--cr);--fg:var(--mar);--muted:#4E2522;--card:var(--crd);--accent:var(--mar);--hero-bg:var(--mar);--hero-fg:var(--cr);--radius:4px;--btn-radius:4px;--card-shadow:none;--card-border:0;--line:var(--mar)}
[data-theme=roundtrip]{--bg:var(--in);--fg:var(--cr);--muted:#DCE3EC;--card:#D8DEE6;--accent:var(--sun);--accent-fg:var(--in);--hero-bg:var(--in);--hero-fg:var(--cr);--radius:2px;--card-shadow:none;--card-border:0;--line:var(--cr)}
[data-theme=cmc]{--bg:var(--cr);--fg:var(--ev);--card:var(--crd);--accent:var(--red);--accent-fg:var(--cr);--hero-bg:var(--ev);--hero-fg:var(--cr);--display:'Barlow Condensed','Arial Narrow',sans-serif;--display-weight:700;--display-case:uppercase;--display-track:.005em;--radius:0;--btn-radius:0;--card-shadow:none;--card-border:1px solid rgba(31,58,46,.2)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:17px;line-height:1.55;transition:background .25s,color .25s}
img{max-width:100%;display:block}a{color:inherit}button{font:inherit}
.skip{position:absolute;left:-999px;top:0;background:var(--ev);color:var(--cr);padding:12px 16px;z-index:9}.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.loading{padding:120px 24px;text-align:center;font-family:var(--display);font-size:28px}
.wrap{padding-left:var(--pad);padding-right:var(--pad)}
.display{font-family:var(--display);font-style:var(--display-style);font-weight:var(--display-weight);text-transform:var(--display-case);letter-spacing:var(--display-track);line-height:.95;margin:0}
.kicker{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.muted{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 30px;border-radius:var(--btn-radius);text-decoration:none;font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;border:1px solid transparent;cursor:pointer}
.btn-primary{background:var(--fg);color:var(--bg)}.btn-accent{background:var(--accent);color:var(--accent-fg)}
.btn-outline{background:transparent;border-color:currentColor;color:inherit}.btn:hover{opacity:.88}.btn[disabled]{opacity:.5;cursor:not-allowed}
.hero-dark .btn-primary{background:var(--hero-fg);color:var(--hero-bg)}
[data-theme=cmc] .btn{font-family:'Barlow Condensed',sans-serif;font-size:18px;letter-spacing:.06em}
/* ticker + headers */
.ticker{background:var(--ev);color:var(--cr);font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:flex;justify-content:center;gap:48px;padding:11px 24px;white-space:nowrap;overflow:hidden}
.hdr{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px var(--pad);border-bottom:1px solid rgba(31,58,46,.14)}
.hdr nav{display:flex;gap:34px;font-weight:500;font-size:14px;letter-spacing:.08em;text-transform:uppercase}.hdr nav a,.hdr .icons a{text-decoration:none;padding:10px 0}
.hdr .icons{display:flex;gap:22px;align-items:center;font-weight:500;font-size:15px}
.cartpill{font-weight:600}
.logo-wm{height:26px;width:auto}
.snsbar{background:var(--ev);color:var(--cr);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 var(--pad);min-height:52px;font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.snsbar nav{display:flex;gap:26px;overflow-x:auto}.snsbar a{text-decoration:none;padding:15px 0;border-bottom:2px solid transparent;white-space:nowrap;opacity:.8}.snsbar a.on{border-color:var(--cr);opacity:1}
.snsbar .logo-wm{height:16px}
.menu-btn{display:none;background:none;border:0;width:48px;height:48px;align-items:center;justify-content:center;color:inherit;cursor:pointer}
/* home hero */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:40px var(--pad) 96px}
.hero h1{font-size:clamp(64px,8.8vw,128px);margin-bottom:28px}
.hero p{font-size:21px;max-width:520px;margin:0 0 34px}
.pill{display:inline-block;border:2px solid currentColor;border-radius:999px;padding:8px 18px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:26px}
.collage{position:relative;height:620px}
.collage .slab{position:absolute;right:0;bottom:20px;width:70%;height:76%;background:var(--sg);border-radius:8px}
.collage .c{position:absolute;border:2px solid var(--ev);border-radius:8px;box-shadow:6px 6px 0 var(--ev);background:#fff;overflow:hidden;padding:12px}
.collage .c img{width:100%;aspect-ratio:1/1;object-fit:contain}
.collage .c1{left:0;top:40px;width:48%;transform:rotate(-4deg)}.collage .c2{right:10px;top:0;width:40%;transform:rotate(3deg)}.collage .c3{left:24%;bottom:0;width:54%;transform:rotate(-2deg)}
.sticker{position:absolute;right:30px;bottom:70px;width:148px;height:148px;border-radius:50%;background:var(--tc);color:var(--cr);border:2px solid var(--ev);display:flex;align-items:center;justify-content:center;text-align:center;transform:rotate(12deg);font-weight:700;font-size:15px;letter-spacing:.12em;line-height:1.3;text-transform:uppercase;padding:16px}
.marquee{background:var(--in);color:var(--cr);font-family:'Playfair Display',serif;font-style:italic;font-size:40px;line-height:1;padding:22px 0;white-space:nowrap;overflow:hidden;text-align:center}
.marquee span{margin:0 26px}
@media (prefers-reduced-motion:no-preference){.marquee .track{display:inline-block;animation:mq 40s linear infinite}@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}}
/* sections */
.sec{padding:96px var(--pad)}.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:36px;flex-wrap:wrap}
.sec-head h2{font-size:clamp(44px,5.6vw,80px)}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.tile{display:flex;flex-direction:column;justify-content:space-between;min-height:440px;border-radius:8px;padding:32px;position:relative;overflow:hidden;text-decoration:none}
.tile .t-name{position:relative;font-size:52px;line-height:1;margin-bottom:16px}
.tile .go{position:relative;font-weight:600;font-size:15px;border-bottom:2px solid currentColor;display:inline-block;padding-bottom:3px}
.tile .motif{position:absolute;right:0;top:20px;width:100%;height:65%;pointer-events:none}
.tile-core{background:var(--crd);color:var(--ev)}.tile-fall{background:var(--um);color:var(--cr)}.tile-holiday{background:var(--mar);color:var(--cr)}
.tile-roundtrip{background:var(--in);color:var(--cr)}.tile-cmc{background:var(--ev);color:var(--cr)}
.tile-fall .t-name{font-family:'Playfair Display',serif;font-style:italic;font-weight:500}.tile-core .t-name,.tile-holiday .t-name{font-family:'Playfair Display',serif;font-weight:500}
.tile-roundtrip .t-name{font-family:Yellowtail,cursive;font-size:68px}.tile-cmc .t-name{font-family:'Barlow Condensed',sans-serif;font-weight:700;text-transform:uppercase;font-size:68px;line-height:.92;margin-bottom:40px}
.fairisle{height:28px;background-color:var(--ev);background-image:linear-gradient(135deg,var(--red) 25%,transparent 25%),linear-gradient(225deg,var(--red) 25%,transparent 25%),linear-gradient(315deg,var(--red) 25%,transparent 25%),linear-gradient(45deg,var(--red) 25%,transparent 25%);background-size:28px 28px;background-position:-14px 0,-14px 0,0 0,0 0}
.tile .fairisle{position:absolute;left:0;right:0;bottom:0}
.soon{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
/* product grid */
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px}.grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pcard{text-decoration:none;display:flex;flex-direction:column;gap:14px;color:var(--fg)}
.pimg{background:var(--imgbg);border-radius:var(--radius);border:var(--card-border);overflow:hidden;aspect-ratio:1/1}
.pimg img{width:100%;height:100%;object-fit:cover}
.pcard .pn{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.pcard .ptitle{font-family:var(--display);font-style:var(--display-style);font-weight:var(--display-weight);text-transform:var(--display-case);font-size:23px;line-height:1.15}
[data-theme=cmc] .pcard .ptitle{font-size:26px}
.pcard .pprice{font-weight:600;font-size:16px;white-space:nowrap}
.empty{padding:48px;border:2px dashed currentColor;border-radius:var(--radius);text-align:center}
/* chips */
.chips{display:flex;flex-wrap:wrap;gap:14px}.chip{display:inline-flex;align-items:center;min-height:54px;padding:0 28px;border:2px solid var(--ev);border-radius:999px;text-decoration:none;font-weight:600;font-size:18px;background:var(--cr)}
.chip:nth-child(odd){background:var(--crd)}
/* group + story + signup */
.gather{background:var(--sgt);display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.gather h2{font-size:clamp(44px,5vw,68px);margin:0 0 20px}
.gather .tees{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.gather .tees div{border:2px solid var(--ev);border-radius:8px;box-shadow:5px 5px 0 var(--ev);background:var(--oat);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.gather .tees img{width:46%}
.story{background:var(--ev);color:var(--cr);display:grid;grid-template-columns:auto 1fr;gap:72px;align-items:center}
.story img{width:280px}.story .big{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(44px,5.8vw,84px);line-height:.98;margin-bottom:28px}
.signup{background:var(--crd);display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap}
.signup h2{font-size:clamp(40px,5vw,72px)}
/* footer */
.ft{background:var(--ev);color:var(--cr);padding:72px var(--pad) 36px}
.ft .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.ft h4{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--oat);margin:0 0 14px}
.ft a{display:block;text-decoration:none;padding:7px 0;font-size:15px}
.ft .sub{border-top:1px solid rgba(246,237,224,.3);margin-top:48px;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--oat)}
/* collection hero */
.chero{background:var(--hero-bg);color:var(--hero-fg);padding:72px var(--pad) 88px;position:relative;overflow:hidden}
.chero .inner{position:relative;max-width:820px}
.chero h1{font-size:clamp(72px,11vw,170px);margin:6px 0 24px;line-height:.88}
[data-theme=roundtrip] .chero h1{font-family:Yellowtail,cursive;text-transform:none;font-weight:400;font-size:clamp(110px,16vw,240px);line-height:1}
.chero p{font-size:21px;max-width:560px;margin:0 0 32px;opacity:.92}
.chero .motif{position:absolute;right:0;top:0;width:55%;height:100%;pointer-events:none}
.cmc-tag{display:inline-block;background:var(--red);color:var(--cr);font-weight:700;font-size:14px;letter-spacing:.16em;text-transform:uppercase;padding:9px 16px}
.band{background:var(--hero-bg);color:var(--hero-fg);padding:88px var(--pad);display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center}
[data-theme=fall] .band{background:var(--tc)}
.band .display{font-size:clamp(48px,6.5vw,96px)}
.more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.more a{min-height:170px;border-radius:8px;padding:26px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none}
/* product page */
.pdp{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;padding:48px var(--pad) 96px;align-items:start}
.gallery .main{background:var(--imgbg);border-radius:var(--radius);border:var(--card-border);overflow:hidden;aspect-ratio:1/1}
.gallery .main img{width:100%;height:100%;object-fit:cover}
.thumbs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:12px}
.thumbs button{padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;background:#fff;cursor:pointer;aspect-ratio:1/1}
.thumbs button.on{border-color:var(--fg)}.thumbs img{width:100%;height:100%;object-fit:cover}
.pdp h1{font-size:clamp(40px,4.4vw,64px);margin:8px 0 14px}
.price{font-size:24px;font-weight:600;margin-bottom:26px}
.opt{margin-bottom:24px}.opt legend{font-weight:600;font-size:15px;margin-bottom:10px;padding:0}.opt fieldset{border:0;padding:0;margin:0}
.opts{display:flex;flex-wrap:wrap;gap:10px}
.ob{min-width:52px;min-height:48px;padding:0 16px;border:2px solid var(--fg);border-radius:var(--btn-radius);background:transparent;color:var(--fg);font-weight:600;cursor:pointer}
.ob.on{background:var(--fg);color:var(--bg)}
.sw{width:48px;height:48px;border-radius:50%;border:2px solid rgba(0,0,0,.25);cursor:pointer;padding:0;position:relative}
.sw.on{outline:3px solid var(--fg);outline-offset:3px}
.qty{display:inline-flex;align-items:center;border:2px solid var(--fg);border-radius:var(--btn-radius);margin-right:12px}
.qty button{width:48px;height:48px;background:none;border:0;color:inherit;font-size:20px;cursor:pointer}.qty span{min-width:28px;text-align:center;font-weight:600}
.addrow{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:26px}
.desc{font-size:16px;line-height:1.6}.desc ul{padding-left:20px}
.note{font-size:14px;margin-top:18px}
/* cart */
.cart{padding:48px var(--pad) 96px;display:grid;grid-template-columns:1.3fr .7fr;gap:56px;align-items:start}
.cline{display:grid;grid-template-columns:110px 1fr auto;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid rgba(31,58,46,.2)}
.cline img{width:110px;height:110px;object-fit:cover;border-radius:8px;background:#fff}
.cline .t{font-family:'Playfair Display',serif;font-size:22px;line-height:1.2}
.linkbtn{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;padding:10px 0;font-size:14px}
.summary{background:var(--crd);border-radius:8px;padding:28px}.summary .row{display:flex;justify-content:space-between;margin-bottom:10px}
.err{color:#8E2A20;font-weight:600;margin-top:12px}
.page{padding:64px var(--pad) 96px;max-width:900px}
.page h1{font-size:clamp(48px,6vw,80px);margin-bottom:28px}
/* mobile */
@media (max-width:900px){
 :root{--pad:20px}
 .hdr nav{display:none}.menu-btn{display:inline-flex}.hdr nav.open{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:var(--bg);padding:12px 20px;gap:0;z-index:5;border-bottom:2px solid var(--fg)}
 .hdr{position:relative;padding:8px 8px 8px 20px}.hdr .icons .hide-sm{display:none}
 .hero,.gather,.story,.band,.pdp,.cart{grid-template-columns:1fr}
 .hero{padding-bottom:56px}.collage{height:420px}.sticker{width:96px;height:96px;font-size:11px;right:6px}
 .tiles{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:280px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--pad));padding:0 var(--pad) 8px}
 .tile{min-height:340px;scroll-snap-align:start}.tile .t-name{font-size:40px}.tile-roundtrip .t-name{font-size:54px}.tile-cmc .t-name{font-size:50px}
 .grid,.grid.g3{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.pcard .ptitle{font-size:18px}
 .more{grid-template-columns:1fr}.ft .cols{grid-template-columns:1fr 1fr}.story img{width:120px}
 .sec{padding:56px var(--pad)}.marquee{font-size:26px;padding:16px 0}.chero .motif{width:100%;opacity:.35}
 .snsbar{padding:0 12px}.snsbar nav{gap:18px}
 .cline{grid-template-columns:80px 1fr;}.cline img{width:80px;height:80px}.cline .r{grid-column:2}
}

/* ---- refined home ---- */
.hero2{display:grid;grid-template-columns:1fr 1fr;min-height:640px;border-bottom:1px solid rgba(31,58,46,.14)}
.hero2 .txt{padding:96px var(--pad);display:flex;flex-direction:column;justify-content:center}
.hero2 h1{font-size:clamp(48px,5.6vw,84px);line-height:1.02;margin:22px 0 24px;max-width:620px}
.hero2 p{font-size:19px;max-width:470px;margin:0 0 36px}
.hero2 .pic{background:var(--crd);display:flex;align-items:center;justify-content:center;padding:56px;overflow:hidden}
.hero2 .pic img{width:100%;max-width:560px;aspect-ratio:1/1;object-fit:cover;background:#fff}
.textlink{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding:4px 0}
.btnrow{display:flex;flex-wrap:wrap;gap:26px;align-items:center}
.rule{height:1px;background:rgba(31,58,46,.14);border:0;margin:0}
.ccards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.ccard{text-decoration:none;display:flex;flex-direction:column;gap:18px}
.ccard .art{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:40px;overflow:hidden}
.ccard .art img{height:100%;width:auto;max-width:100%;object-fit:contain;background:#fff;aspect-ratio:1/1}
.ccard .cn{font-size:34px;line-height:1.1}
.ccard .meta{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.ccard-core .art{background:var(--crd)}.ccard-cmc .art{background:var(--ev)}.ccard-fall .art{background:var(--um)}.ccard-holiday .art{background:var(--mar)}.ccard-roundtrip .art{background:var(--in)}
.ccard-core .cn,.ccard-holiday .cn{font-family:'Playfair Display',serif;font-weight:500}.ccard-fall .cn{font-family:'Playfair Display',serif;font-style:italic;font-weight:500}
.ccard-cmc .cn{font-family:'Barlow Condensed',sans-serif;font-weight:700;text-transform:uppercase;font-size:38px}.ccard-roundtrip .cn{font-family:Yellowtail,cursive;font-size:42px}
.story2{background:var(--ev);color:var(--cr);text-align:center;padding:120px var(--pad)}
.story2 img{width:84px;margin:0 auto 34px}
.story2 .big{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(36px,4.4vw,60px);line-height:1.08;max-width:900px;margin:0 auto}
.story2 p{max-width:560px;margin:28px auto 0;font-size:18px;color:#D8D3C6}
.pcard .ptitle{font-size:20px}
.pcard .pprice{font-size:15px;font-weight:500}
.chero{padding:96px var(--pad) 96px}
.chero h1{font-size:clamp(56px,7.5vw,112px)}
[data-theme=cmc] .chero h1{font-size:clamp(64px,9vw,136px)}
.cmc-tag{font-size:12px;padding:7px 12px}
.ft{padding:64px var(--pad) 32px}
@media (max-width:900px){.hero2{grid-template-columns:1fr}.hero2 .txt{padding:56px var(--pad)}.hero2 .pic{padding:28px}.ccards{grid-template-columns:1fr}.story2{padding:80px var(--pad)}}

.hero2 .pic.photo{padding:0;background:var(--crd)}
.hero2 .pic.photo img{width:100%;height:100%;max-width:none;aspect-ratio:auto;object-fit:cover;background:transparent}
.story3{display:grid;grid-template-columns:1fr 1fr;background:var(--ev);color:var(--cr)}
.story3 .ph img{width:100%;height:100%;object-fit:cover;min-height:560px}
.story3 .tx{padding:96px var(--pad);display:flex;flex-direction:column;justify-content:center}
.story3 .mono{width:64px;margin-bottom:32px}
.story3 .big{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(36px,4vw,58px);line-height:1.08}
.story3 p{max-width:520px;margin:26px 0 0;font-size:18px;color:#D8D3C6}
.mood{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:72px var(--pad)}
.mood figure{margin:0}.mood img{width:100%;aspect-ratio:1/1;object-fit:cover}
.mood figcaption{margin-top:14px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
@media (max-width:900px){.story3{grid-template-columns:1fr}.story3 .ph img{min-height:0;aspect-ratio:4/5}.story3 .tx{padding:56px var(--pad)}.mood{grid-template-columns:1fr 1fr 1fr;gap:10px;padding:40px var(--pad)}.mood figcaption{font-size:10px}.hero2 .pic.photo img{aspect-ratio:4/5}}

/* ---- custom reunion request ---- */
.custom{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:56px var(--pad) 96px;align-items:start}
.cpreview{position:sticky;top:24px}
.previewbox{background:#EFE6D8;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;padding:8%}
.previewbox svg{width:100%;height:auto;display:block}
.frow{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.frow label{font-size:14px;font-weight:600}
.frow input,.frow select,.frow textarea{font:inherit;font-size:16px;padding:12px 14px;border:1px solid rgba(31,58,46,.45);border-radius:2px;background:#fff;color:var(--fg);min-height:48px;box-sizing:border-box;width:100%}
.frow textarea{min-height:110px;resize:vertical}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sent{border:1px solid rgba(31,58,46,.3);padding:28px;background:#fff}
.custom-cta{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center;border-top:1px solid rgba(31,58,46,.14)}
.custom-thumb{aspect-ratio:1/1;background:#EFE6D8 url(/art/family-reunion-preview.svg) center/78% no-repeat}
@media (max-width:900px){.custom,.custom-cta{grid-template-columns:1fr}.cpreview{position:static}.fgrid{grid-template-columns:1fr}}

.pvar{font-size:14px;margin-top:4px}

/* ---- versions of one design ---- */
.pimg{position:relative}
.pbadge{position:absolute;top:12px;left:12px;background:var(--fg);color:var(--bg);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:7px 11px;border-radius:999px;line-height:1}
.pthumbs{display:flex;gap:6px;flex-wrap:wrap}
.pthumbs span{width:38px;height:38px;overflow:hidden;border-radius:6px;background:#fff;display:block}
.pthumbs img,.vimg img{width:100%;height:100%;object-fit:cover;transform:scale(1.75);transform-origin:50% 52%;display:block}
.vnow{font-size:18px;font-weight:600;margin:-4px 0 6px;opacity:.85}
.vpick{border:2px solid var(--fg);border-radius:var(--btn-radius);padding:16px;margin:20px 0 8px}
.vhead{display:flex;justify-content:space-between;align-items:baseline;width:100%;padding:0 6px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:14px}
.vhead .vcount{font-weight:500;letter-spacing:0;text-transform:none;opacity:.8}
.vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.vt{display:flex;flex-direction:column;gap:8px;padding:6px;border:3px solid transparent;border-radius:10px;background:transparent;color:var(--fg);cursor:pointer;text-align:center;font:inherit;font-weight:600;font-size:14px;line-height:1.25}
.vt .vimg{aspect-ratio:1;overflow:hidden;border-radius:6px;background:#fff;display:block}
.vt:hover{border-color:color-mix(in srgb,var(--fg) 35%,transparent)}
.vt.on{border-color:var(--fg)}
.vt:focus-visible{outline:3px solid var(--fg);outline-offset:2px}
@media (max-width:900px){.vgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.vgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.vt{font-size:12px;padding:4px}}
