/* Fresh Cut Social — original stylesheet */
:root{
  --blush:#F6D6D3; --cream:#F8F2E4; --softsage:#DCE3D3; --sage:#A9B89A; --green:#3F4F39; /* deep sage-olive */
  --rose:#9A3D61; /* peony */ --wine:#7E2F4F; /* peony hover */ --lilac:#D9CCE6;
  --ink:#2E3A2A; --line:rgba(46,58,42,.2);
  --display:"Anton",Impact,"Arial Narrow",sans-serif;
  --body:"Satoshi",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:12px; --wrap:1240px; --pad:clamp(20px,4vw,48px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);font-size:17px;line-height:1.6;color:var(--ink);background:var(--cream)}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--rose);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--green);color:#fff;padding:10px 16px;border-radius:99px;z-index:100}
.skip:focus{left:8px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.band{padding:clamp(64px,9vw,120px) 0}
.band--blush{background:var(--blush)} .band--cream{background:var(--cream)}
.band--green{background:var(--green);color:var(--cream)} .band--rose{background:var(--rose);color:#fff}
.band--wine{background:var(--wine);color:var(--cream)}
.band--sage{background:var(--sage)} .band--softsage{background:var(--softsage)} .band--lilac{background:var(--lilac);color:var(--ink)}
.band--sage h2,.band--softsage h2,.band--lilac h2{color:var(--green)} .band--lilac .eyebrow{color:var(--green)}
h1,h2,h3{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.95;letter-spacing:.01em;margin:0 0 .4em}
h1{font-size:clamp(52px,8.4vw,124px)} h2{font-size:clamp(40px,5.6vw,80px)} h3{font-size:clamp(28px,2.6vw,38px)}
.band--blush h1,.band--blush h2,.band--cream h2{color:var(--green)}
.eyebrow{font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px;color:var(--rose)}
.band--green .eyebrow,.band--wine .eyebrow{color:var(--blush)} .band--rose .eyebrow{color:var(--cream)}
.lead{font-size:clamp(18px,1.5vw,21px);max-width:34em}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;font:700 15px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  padding:17px 28px;border-radius:999px;background:var(--rose);color:#fff;border:2px solid var(--rose);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn .arr{transition:transform .25s ease}
.btn:hover .arr{transform:translateX(5px)}
.btn:hover{background:var(--wine);border-color:var(--wine)}
.btn--green{background:var(--green);border-color:var(--green)}
.btn--ghost{background:transparent;color:currentColor;border-color:currentColor}
.btn--ghost:hover{background:var(--green);color:var(--cream);border-color:var(--green)}
.btn--sm{padding:12px 20px;font-size:13px}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:var(--blush);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.hdr.scrolled{border-color:var(--line);box-shadow:0 6px 24px rgba(47,90,63,.08)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;gap:20px}
.brand img{height:64px;width:auto}
.nav{display:flex;gap:28px;align-items:center}
.nav a{text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.nav a.navlink:hover,.nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
@media(max-width:640px){.nav a.navlink{display:none}.nav{gap:0}.hdr .wrap{height:68px}.brand img{height:48px}}
.mnav{display:none}
@media(max-width:640px){.mnav{display:flex;justify-content:center;gap:26px;padding:0 0 10px;background:var(--blush)}
 .mnav a{font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--green)}
 .mnav a[aria-current=page]{text-decoration:underline;text-underline-offset:5px}}
/* hero */
.hero{background:var(--blush);padding:clamp(28px,5vw,64px) 0 clamp(48px,6vw,88px)}
.hero .wrap{display:grid;grid-template-columns:7fr 5fr;gap:clamp(28px,5vw,72px);align-items:center}
.hero h1{color:var(--green)}
.hero h1 em{font-style:normal;color:var(--rose)}
.hero .lead{margin:0 0 30px}
.hero-photo{border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 60px -30px rgba(63,79,57,.45)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero .meta{margin-top:22px;font-size:14px;font-weight:500;color:var(--green);opacity:.85}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr}.hero-photo{aspect-ratio:5/4;order:-1}}
/* marquee */
.marquee{background:var(--sage);color:var(--green);overflow:hidden;padding:18px 0;white-space:nowrap}
.marquee-track{display:inline-flex;animation:mq 32s linear infinite}
.marquee span{font-family:var(--display);font-size:clamp(22px,2.4vw,32px);text-transform:uppercase;letter-spacing:.03em;padding:0 22px}
.marquee span.dot{color:var(--rose);padding:0}
@keyframes mq{to{transform:translateX(-50%)}}
/* split */
.split{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,6vw,88px);align-items:center}
.split--rev{grid-template-columns:5fr 7fr}.split--rev .split-media{order:-1}
.split-media{border-radius:var(--r);overflow:hidden}
.split-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media(max-width:860px){.split,.split--rev{grid-template-columns:1fr}.split--rev .split-media{order:0}}
/* feature list */
.flist{list-style:none;margin:28px 0 34px;padding:0;border-top:1px solid var(--line)}
.flist li{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}
.flist strong{font-family:var(--display);font-weight:400;font-size:26px;text-transform:uppercase;color:var(--green);letter-spacing:.02em}
@media(max-width:520px){.flist li{grid-template-columns:1fr;gap:4px}}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px;padding:0;list-style:none}
.chips li{border:1.5px solid currentColor;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600}
/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,32px);margin-top:44px}
.card{background:var(--cream);color:var(--ink);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.card img{aspect-ratio:4/5;object-fit:cover;width:100%}
.card-body{padding:24px 24px 28px}
.card h3{color:var(--green);margin-bottom:.25em}
.card p{margin:0}
@media(max-width:860px){.cards{grid-template-columns:1fr}.card img{aspect-ratio:4/3}}
/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:44px 0 40px;padding:0;list-style:none;border-top:1px solid rgba(248,242,228,.35)}
.steps li{padding:28px 26px 8px 0;border-right:1px solid rgba(248,242,228,.25);padding-left:26px}
.steps li:first-child{padding-left:0}.steps li:last-child{border-right:0}
.steps .num{font-family:var(--display);font-size:64px;line-height:1;color:var(--blush);display:block;margin-bottom:12px}
.steps h3{font-size:26px;color:var(--cream)}
.steps p{margin:0;opacity:.9}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}.steps li:nth-child(2){border-right:0}.steps li:nth-child(3){padding-left:0}}
@media(max-width:560px){.steps{grid-template-columns:1fr}.steps li{border-right:0;padding:22px 0;border-bottom:1px solid rgba(248,242,228,.25)}}
/* gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:clamp(10px,1.4vw,18px);margin-top:40px}
.gallery figure{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--blush)}
.gallery figure.wide{grid-column:span 2;aspect-ratio:auto}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.gallery figure:hover img{transform:scale(1.04)}
@media(max-width:860px){.gallery{grid-template-columns:1fr 1fr}.gallery figure.wide{aspect-ratio:8/5}}
/* center CTA */
.center{text-align:center}.center .lead{margin:0 auto 32px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}.center .cta-row{justify-content:center}
/* about */
.story p{font-size:clamp(18px,1.4vw,20px);max-width:32em}
/* book */
.book{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,5vw,72px);align-items:start}
@media(max-width:900px){.book{grid-template-columns:1fr}}
form.inq{background:var(--cream);border-radius:var(--r);padding:clamp(24px,3.5vw,44px);box-shadow:0 20px 50px -30px rgba(47,90,63,.35)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.fgrid .full{grid-column:1/-1}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}}
label,.legend{display:block;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin-bottom:8px}
.req{color:var(--rose)}
input[type=text],input[type=email],input[type=tel],input[type=date],textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:13px 14px;transition:border-color .2s}
input:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,90,63,.15)}
textarea{min-height:150px;resize:vertical}
fieldset{border:0;margin:0;padding:0}
.checks{display:flex;flex-wrap:wrap;gap:10px}
.checks label{position:relative;margin:0;text-transform:none;letter-spacing:0;font-weight:600;font-size:15px;color:var(--ink)}
.checks input{position:absolute;opacity:0;width:1px;height:1px}
.checks span{display:inline-block;border:1.5px solid var(--green);border-radius:999px;padding:9px 16px;cursor:pointer;transition:background .2s,color .2s}
.checks input:checked+span{background:var(--green);color:var(--cream)}
.checks input:focus-visible+span{outline:3px solid var(--rose);outline-offset:2px}
.fnote{font-size:13px;opacity:.75;margin:16px 0 0}
.hp{position:absolute!important;left:-9999px}
.side-photo{border-radius:var(--r);overflow:hidden;margin-bottom:24px}
.side-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
.direct{background:var(--green);color:var(--cream);border-radius:var(--r);padding:30px}
.direct h2{font-size:34px;color:var(--cream)}
.direct ul{list-style:none;margin:0;padding:0}
.direct li{padding:14px 0;border-top:1px solid rgba(248,242,228,.25)}
.direct a{font-weight:700;text-underline-offset:4px}
.direct small{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
/* footer */
.ftr{background:var(--green);color:var(--cream);padding:72px 0 120px}
.ftr .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.ftr .big{font-family:var(--display);font-size:clamp(40px,5vw,72px);text-transform:uppercase;line-height:.95;margin:0 0 6px}
.ftr h4{font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px;opacity:.75}
.ftr ul{list-style:none;margin:0;padding:0}.ftr li{margin:0 0 8px}
.ftr a{text-decoration:none}.ftr a:hover{text-decoration:underline}
.ftr .legal{grid-column:1/-1;border-top:1px solid rgba(248,242,228,.25);padding-top:20px;font-size:13px;opacity:.7}
@media(max-width:760px){.ftr .wrap{grid-template-columns:1fr 1fr}.ftr .wrap>div:first-child{grid-column:1/-1}}
@media(min-width:761px){.ftr{padding-bottom:40px}}
/* mobile sticky CTA */
.mcta{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--cream);border-top:1px solid var(--line);
  transform:translateY(110%);transition:transform .3s ease;display:none}
.mcta .btn{width:100%;justify-content:center}
.mcta.show{transform:none}
@media(max-width:760px){.mcta{display:block}}
/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .marquee-track{animation:none}
  .btn .arr,.gallery img{transition:none}
}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gallery figure{position:relative}
.gallery figure.wide img{position:absolute;inset:0}

/* floral touches */
.card{border:1px solid rgba(63,79,57,.12)}
.chips li:nth-child(3n+1){background:var(--blush)} .chips li:nth-child(3n+2){background:var(--lilac)} .chips li:nth-child(3n){background:var(--softsage)}
.band--softsage .chips li:nth-child(3n){background:var(--cream)}
.hero h1 em{color:var(--rose)}
.direct{box-shadow:inset 0 0 0 6px var(--sage)}
.ftr .big{color:var(--blush)}
.band--sage{color:var(--ink)} .band--sage .eyebrow{color:var(--ink)} .band--sage .flist{border-color:rgba(46,58,42,.3)} .band--sage .flist li{border-color:rgba(46,58,42,.3)}
.band--sage .chips li{border-color:var(--ink);color:var(--ink)}
.gallery figure{background:var(--softsage)}
/* ---- contrast fixes: peony buttons always carry cream text ---- */
.btn,.nav a.btn,.nav a.btn:hover,.nav a.btn:focus-visible,.btn:hover,.btn:focus-visible,.btn:active{color:var(--cream)}
.nav a.btn{text-decoration:none}
.btn--green:hover,.btn--green:focus-visible{background:#2F3C2A;border-color:#2F3C2A;color:var(--cream)}
/* on the olive band, never put peony on green: use a blush pill instead */
.band--green .btn{background:var(--blush);border-color:var(--blush);color:var(--green)}
.band--green .btn:hover,.band--green .btn:focus-visible{background:var(--cream);border-color:var(--cream);color:var(--green)}
.btn--ghost{color:var(--green)}
.btn--ghost:hover,.btn--ghost:focus-visible{background:var(--green);border-color:var(--green);color:var(--cream)}
.btn:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.band--green .btn:focus-visible,.ftr a:focus-visible{outline-color:var(--blush)}
.marquee{color:var(--ink)} .marquee span.dot{color:var(--green)}
/* no translucent text: explicit colors instead of opacity */
.hero .meta,.steps p,.fnote,.direct small,.ftr h4,.ftr .legal{opacity:1}
.fnote{color:var(--ink)} .direct small{color:var(--blush)} .ftr h4,.ftr .legal{color:var(--blush)}
.steps p{color:var(--cream)} .hero .meta{color:var(--green)}

/* form helpers */
.help{font-size:14px;color:var(--ink);margin:6px 0 0}
.legend-sub{text-transform:none;letter-spacing:0;font-weight:500;color:var(--ink)}
.flex{display:flex!important;align-items:center;gap:8px;margin:10px 0 0!important;text-transform:none!important;letter-spacing:0!important;font-weight:600!important;font-size:15px!important;color:var(--ink)!important;cursor:pointer}
.flex input{width:18px;height:18px;accent-color:var(--green);margin:0}
.datewrap.is-flex input[type=date]{background:var(--cream);border-style:dashed}
.err{color:#7E2F4F;font-weight:700;font-size:14px;margin:10px 0 0}
fieldset.invalid .checks span{border-color:#7E2F4F;border-width:2px}
form.inq input,form.inq textarea,form.inq fieldset{scroll-margin-top:120px}

/* gallery: 3-col, wide hero tile + 4 singles */
.gallery{grid-template-columns:repeat(3,1fr)}
@media(max-width:860px){.gallery{grid-template-columns:1fr 1fr}}
.split-media.brandcard{background:var(--cream)}
.split-media.brandcard img{height:auto;aspect-ratio:1/1;object-fit:contain}
.other-wrap{margin-top:16px}

/* gallery v3: 4 equal tiles across, 2x2 on tablet/mobile */
.gallery{grid-template-columns:repeat(4,1fr)}
.gallery figure{aspect-ratio:4/5}
@media(max-width:860px){.gallery{grid-template-columns:1fr 1fr}}
.card img.pos-top{object-position:50% 18%}

/* gallery v4: 5 photos, 3-col; wide tile spans 2 cols (row 1), 3 singles (row 2). Mobile: wide full row + 2x2 */
.gallery{grid-template-columns:repeat(3,1fr)}
.gallery figure.wide{grid-column:span 2;aspect-ratio:auto}
@media(max-width:860px){.gallery{grid-template-columns:1fr 1fr}.gallery figure.wide{grid-column:1/-1;aspect-ratio:8/5}}
.gallery figure.mirror-tile img{object-position:50% 20%}
/* Events photo: full landscape source, art-directed per breakpoint */
.card img[src*="events-setup"]{object-position:19% 50%}
@media(max-width:860px){.card img[src*="events-setup"]{object-position:50% 50%}}
/* gallery v5: 4 photos — 4 equal tiles on desktop, 2x2 on tablet/mobile */
.gallery{grid-template-columns:repeat(4,1fr)}
.gallery figure{aspect-ratio:4/5}
@media(max-width:860px){.gallery{grid-template-columns:1fr 1fr}}
/* thanks page */
.thanks{min-height:62vh;display:flex;align-items:center}
.thanks .wrap{width:100%}
.thanks h1{font-family:var(--display);color:var(--green);text-transform:uppercase;font-size:clamp(56px,9vw,120px);line-height:.95;margin:.15em 0 .3em}
.thanks .eyebrow{color:var(--rose)}
@media(max-width:560px){.thanks .cta-row{flex-direction:column;align-items:stretch;max-width:340px;margin:0 auto}.thanks .btn{justify-content:center;white-space:nowrap;font-size:13px;letter-spacing:.04em}}

/* Flowers card: top two bucket rows (real photo, sharp) */
.card img[src*="flowers-sharp"]{object-position:6% 50%}@media(max-width:860px){.card img[src*="flowers-sharp"]{object-position:50% 20%}}
