/* ============================================================
   CRESCENT FLORAL & GIFTS — shared stylesheet
   Palette: Crescent Teal #44616B · Dahlia Raspberry #A8275C ·
   Linen #FAF7F2 · Spruce Ink #22333B · Leaf Green #5F7752 ·
   Teal Mist #E8EEEC
   Fonts: Sentient (display, Fontshare) · Karla (body, Google)
   ============================================================ */

:root{
  --teal:#44616B;
  --teal-deep:#3A535C;
  --rasp:#A8275C;
  --rasp-deep:#8E1F4D;
  --linen:#FAF7F2;
  --ink:#22333B;
  --leaf:#5F7752;
  --mist:#E8EEEC;
  --white:#FFFFFF;
  --disp:'Sentient', Georgia, 'Times New Roman', serif;
  --body:'Karla', 'Segoe UI', Tahoma, sans-serif;
  --hairline-ink:rgba(34,51,59,.14);
  --hairline-leaf:rgba(95,119,82,.28);
  --hairline-linen:rgba(250,247,242,.22);
  --radius:10px;
}

*,*::before,*::after{box-sizing:border-box}
html{
  background-color:#44616B;
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}
body{
  margin:0;
  background-color:var(--linen);
  color:var(--ink);
  font-family:var(--body);
  font-size:1.0625rem;
  line-height:1.65;
  font-weight:400;
  padding-top:env(safe-area-inset-top,0px);
}
img{max-width:100%;display:block}
[id]{scroll-margin-top:128px}

/* paper noise overlay (DS §6) — below the sticky header (z 1000) */
body::before{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:900;
  opacity:.04;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ---------- type ---------- */
h1,h2,h3{font-family:var(--disp);font-weight:500;line-height:1.12;margin:0 0 .6em;color:var(--ink)}
h1{font-size:clamp(2.2rem,4.6vw,3.4rem)}
h2{font-size:clamp(1.8rem,3vw,2.4rem)}
h3{font-size:clamp(1.35rem,1.8vw,1.6rem)}
p{margin:0 0 1em;max-width:68ch}
.mega{font-family:var(--disp);font-weight:300;font-size:clamp(3.5rem,9vw,7rem);line-height:.92;letter-spacing:-.01em}
.eyebrow{
  font-family:var(--body);font-weight:700;font-size:.8125rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--leaf);
  margin:0 0 .9rem;
}
.on-teal .eyebrow,.band-teal .eyebrow{color:var(--mist)}
.lede{font-size:1.125rem;max-width:62ch}

.wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
section{position:relative}
.sec{padding-block:96px}
.sec-slim{padding-block:64px}
.bg-mist{background-color:var(--mist)}
.band-teal{background-color:var(--teal);color:var(--linen)}
.band-teal h1,.band-teal h2,.band-teal h3{color:var(--white)}
.band-teal p{color:var(--linen)}

/* ---------- links & buttons ---------- */
a{color:var(--teal);text-decoration-color:rgba(68,97,107,.4);text-underline-offset:3px;transition:color .18s ease-out,text-decoration-color .18s ease-out}
a:hover{color:var(--rasp);text-decoration-color:var(--rasp)}
:focus-visible{outline:2px solid var(--rasp);outline-offset:3px;border-radius:2px}
.band-teal :focus-visible,.site-footer :focus-visible,.site-header .ribbon :focus-visible{outline-color:var(--white)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--body);font-weight:700;font-size:1rem;line-height:1;
  border:none;border-radius:6px;padding:.95rem 1.7rem;cursor:pointer;
  text-decoration:none;min-height:44px;
  transition:background-color .2s ease-out,color .2s ease-out,transform .2s ease-out,border-color .2s ease-out;
}
.btn:active{transform:translateY(0) scale(.99)}
.btn-rasp{background-color:var(--rasp);color:var(--white)}
.btn-rasp:hover{background-color:var(--rasp-deep);color:var(--white);transform:translateY(-1px)}
.btn-linen{background-color:var(--linen);color:var(--teal)}
.btn-linen:hover{background-color:var(--white);color:var(--teal-deep);transform:translateY(-1px)}
.btn-ghost{background-color:transparent;color:var(--teal);border:1.5px solid var(--teal)}
.btn-ghost:hover{border-color:var(--rasp);color:var(--rasp);transform:translateY(-1px)}

.arrow-link{
  display:inline-flex;align-items:center;gap:.4rem;
  font-weight:700;text-decoration:none;color:var(--teal);
  position:relative;padding-bottom:2px;min-height:44px;
}
.arrow-link::after{
  content:'';position:absolute;left:0;right:0;bottom:8px;height:2px;
  background-color:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform .18s ease-out;
}
.arrow-link:hover{color:var(--rasp)}
.arrow-link:hover::after{transform:scaleX(1)}
.band-teal .arrow-link,.site-footer .arrow-link{color:var(--linen)}
.band-teal .arrow-link:hover,.site-footer .arrow-link:hover{color:var(--white)}

.ext-ico{width:12px;height:12px;flex:none;opacity:.75}
.ico{width:18px;height:18px;flex:none}

.tel-line{font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap}
.tel-line:hover{color:var(--rasp)}

/* ---------- seam ornament (static stem-and-leaf) ---------- */
.seam{display:flex;justify-content:center;padding-top:8px;margin-bottom:-24px}
.seam svg{opacity:.85}
.band-teal .seam svg path{stroke:var(--mist)}
.band-teal .seam svg .leaf-fill{fill:var(--mist)}

/* ============================================================
   HEADER — two-tier shopkeeper header
   ============================================================ */
.site-header{position:sticky;top:0;z-index:1000}
.ribbon{
  background-color:var(--teal);color:var(--linen);
  padding-top:calc(.45rem + env(safe-area-inset-top,0px));padding-bottom:.45rem;
}
body{padding-top:0}
.ribbon-in{display:flex;align-items:center;gap:1rem}
.ribbon-msg{margin:0;font-size:.8125rem;font-weight:500;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cutoff-chip{
  margin-left:auto;
  display:inline-flex;align-items:center;gap:.45rem;
  background-color:var(--linen);color:var(--teal);
  border-radius:999px;padding:.28rem .85rem;
  font-size:.8125rem;font-weight:700;white-space:nowrap;
}
.js .cutoff-chip{animation:chipIn .5s ease-out 1}
@keyframes chipIn{from{opacity:0}to{opacity:1}}
.cutoff-chip .dot{width:7px;height:7px;border-radius:50%;background-color:var(--rasp);flex:none}
.cutoff-chip.is-quiet .dot{background-color:var(--leaf)}
.ribbon-tel{
  display:inline-flex;align-items:center;gap:.45rem;color:var(--linen);
  font-weight:700;font-size:.875rem;text-decoration:none;padding:.35rem .25rem;
}
.ribbon-tel:hover{color:var(--white)}
.ribbon-tel .ico{width:15px;height:15px}

.mainbar{background-color:var(--linen);transition:box-shadow .18s ease-out}
.scrolled .mainbar{box-shadow:0 1px 0 rgba(34,51,59,.1),0 6px 18px rgba(34,51,59,.07)}
.mainbar-in{display:flex;align-items:center;gap:clamp(1rem,2.5vw,2.4rem);padding-block:.8rem}

.lockup{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink)}
.lockup-mark{width:44px;height:36px;fill:var(--teal);flex:none}
.lockup-words{display:flex;flex-direction:column;line-height:1.02}
.lockup-name{font-family:var(--disp);font-weight:500;font-size:1.45rem;letter-spacing:.01em;color:var(--ink)}
.lockup-sub{font-family:var(--disp);font-weight:400;font-size:.83rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.lockup:hover .lockup-mark{fill:var(--rasp)}
.lockup-mark{transition:fill .2s ease-out}

.prim-nav{display:flex;align-items:center;gap:clamp(.9rem,1.8vw,1.7rem);margin-left:auto}
.nl{
  font-weight:500;font-size:1rem;color:var(--ink);text-decoration:none;
  padding:.65rem .15rem;position:relative;white-space:nowrap;
}
.nl::after{
  content:'';position:absolute;left:0;right:0;bottom:4px;height:2px;
  background-color:var(--rasp);transform:scaleX(0);transform-origin:left;
  transition:transform .18s ease-out;
}
.nl:hover{color:var(--rasp)}
.nl:hover::after{transform:scaleX(1)}
.page-flowers .nl-flowers,.page-weddings .nl-weddings,.page-shop .nl-shop,.page-story .nl-story{color:var(--rasp)}
.page-flowers .nl-flowers::after,.page-weddings .nl-weddings::after,.page-shop .nl-shop::after,.page-story .nl-story::after{transform:scaleX(1)}

.btn-order{flex:none}
.ham{
  display:none;background:none;border:none;cursor:pointer;color:var(--ink);
  width:44px;height:44px;align-items:center;justify-content:center;padding:0;
  border-radius:6px;
}
.ham:hover{color:var(--rasp)}
.ham .ico-x{display:none}
.menu-open .ham .ico-x{display:block}
.menu-open .ham .ico-menu{display:none}

/* mobile panel */
.mpanel{
  position:fixed;inset:0;z-index:-1;background-color:var(--linen);
  transform:translateY(-102%);visibility:hidden;
  transition:transform .24s ease-out,visibility 0s linear .24s;
  overflow-y:auto;
  padding:calc(120px + env(safe-area-inset-top,0px)) clamp(24px,7vw,48px) 48px;
}
.menu-open .mpanel{transform:translateY(0);visibility:visible;transition:transform .24s ease-out}
body.menu-open{overflow:hidden}
.mpanel-links{display:flex;flex-direction:column;gap:.3rem;margin-bottom:2rem}
.mpanel-links a{
  font-family:var(--disp);font-weight:500;font-size:1.8rem;color:var(--ink);
  text-decoration:none;padding:.55rem 0;border-bottom:1px solid var(--hairline-ink);
}
.mpanel-links a:hover{color:var(--rasp)}
.mpanel-meta{display:flex;flex-direction:column;gap:1.1rem}
.mpanel-meta .tel-line{font-size:1.2rem}
.mpanel-hours{font-size:.95rem;color:var(--ink);opacity:.85;margin:0}

/* ============================================================
   THE CRESCENT STEM (signature) + scroll reveals
   ============================================================ */
.stem-wrap{position:absolute;top:0;left:0;width:100%;z-index:40;pointer-events:none;display:none;overflow:hidden}
.stem-wrap.stem-on{display:block}
.stem-path{fill:none;stroke-width:2.5;stroke-linecap:round}
.stem-leaf{opacity:0;transform:scale(.2);transition:opacity .2s ease-out,transform .2s ease-out;transform-box:fill-box}
.stem-leaf.lleft{transform-origin:100% 100%}
.stem-leaf.lright{transform-origin:0% 100%}
.stem-leaf.open{opacity:1;transform:scale(1)}
.stem-lotus path{opacity:0;transform:scale(.15);transition:opacity .24s ease-out,transform .24s ease-out;transform-box:fill-box;transform-origin:50% 100%}
.stem-lotus.bloom path{opacity:1;transform:scale(1)}
.stem-lotus.bloom path:nth-child(1){transition-delay:0ms}
.stem-lotus.bloom path:nth-child(2){transition-delay:120ms}
.stem-lotus.bloom path:nth-child(3){transition-delay:240ms}
.stem-lotus.bloom path:nth-child(4){transition-delay:360ms}
.stem-lotus.bloom path:nth-child(5){transition-delay:480ms}

.js .rv{opacity:0;transform:translateY(12px);transition:opacity .25s ease-out,transform .25s ease-out;transition-delay:var(--d,0ms)}
.js .rv.in{opacity:1;transform:translateY(0)}

/* ============================================================
   INDEX — hero "The Shop Window"
   ============================================================ */
.hero{position:relative;overflow:hidden}
.hero-band{
  position:absolute;left:0;right:0;bottom:0;height:31%;
  background-color:var(--teal);transform-origin:left;
}
.js .hero-band{transform:scaleX(0);transition:transform .5s ease-out .15s}
.js .loaded .hero-band,.js.loaded .hero-band{transform:scaleX(1)}
.hero-grid{
  display:grid;grid-template-columns:45fr 55fr;column-gap:clamp(32px,5vw,72px);
  align-items:center;min-height:min(88vh,800px);
  padding-block:clamp(40px,6vh,64px) clamp(56px,8vh,88px);
  position:relative;z-index:1;
}
.js .hero-copy > *{opacity:0;transform:translateY(12px);transition:opacity .5s ease-out,transform .5s ease-out;transition-delay:calc(var(--i,0)*80ms)}
.js .loaded .hero-copy > *{opacity:1;transform:translateY(0)}
.hero-copy h1{margin-bottom:.5em}
.hero-copy h1 em{font-style:italic;color:var(--rasp)}
.hero-sub{font-size:1.125rem;max-width:46ch}
.hero-cta{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-top:1.6rem}
.hero-tel{font-size:.95rem}

.hero-art{margin:0;position:relative;display:flex;flex-direction:column;align-items:center;gap:14px}
.js .hero-art{opacity:0;transform:translateY(16px);transition:opacity .6s ease-out,transform .6s ease-out}
.js .loaded .hero-art{opacity:1;transform:translateY(0)}
.arch{
  width:100%;max-width:620px;
  border:1px solid rgba(68,97,107,.45);border-radius:999px 999px 16px 16px;
  padding:8px;background-color:var(--linen);
}
.arch-in{
  border:1px solid rgba(68,97,107,.5);border-radius:992px 992px 10px 10px;
  overflow:hidden;aspect-ratio:1/1.06;
}
.arch-in img{width:100%;height:100%;object-fit:cover;object-position:46% 52%}
.hero-chip{
  display:inline-flex;align-items:center;gap:.5rem;
  background-color:var(--linen);color:var(--teal);
  border:1px solid rgba(68,97,107,.35);border-radius:999px;
  padding:.42rem 1.1rem;font-size:.85rem;font-weight:700;letter-spacing:.02em;
}

/* same-day fact band */
.factbar{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}
.fact{padding:.4rem clamp(1rem,3vw,2.5rem);font-weight:500;font-size:1rem;text-align:center}
.fact + .fact{border-left:1px solid var(--hairline-leaf)}
.fact strong{color:var(--teal)}

/* from the cooler */
.cooler-head{display:flex;align-items:baseline;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.cooler-head p{margin:0}
.cooler-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,3.5vw,40px)}
.cooler-side{display:grid;gap:clamp(24px,3.5vw,40px);align-content:start;margin-top:40px}
.ptile{margin:0}
.ptile a{display:block;text-decoration:none;color:var(--ink)}
.pframe{overflow:hidden;border-radius:var(--radius);background-color:var(--mist)}
.pframe img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease-out}
.ptile a:hover .pframe img{transform:scale(1.02)}
.ptile-lg .pframe{aspect-ratio:4/5;max-height:620px}
.ptile-sm .pframe{aspect-ratio:4/3}
.pcap{padding:.8rem .15rem 0}
.pname{font-family:var(--disp);font-weight:500;font-size:1.3rem;line-height:1.2;display:flex;align-items:center;gap:.5rem}
.ptile a:hover .pname{color:var(--rasp)}
.pmeta{font-size:.9rem;color:rgba(34,51,59,.78);margin-top:.15rem}

/* occasions directory */
.occ-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(40px,6vw,96px);max-width:980px}
.occ{
  display:flex;align-items:center;gap:.9rem;
  font-family:var(--disp);font-style:italic;font-weight:500;font-size:1.5rem;
  color:var(--ink);text-decoration:none;
  padding:.7rem .2rem;border-bottom:1px solid var(--hairline-leaf);
  min-height:44px;
}
.occ .leaf-glyph{width:17px;height:17px;fill:var(--leaf);flex:none;transition:fill .18s ease-out}
.occ:hover{color:var(--rasp)}
.occ:hover .leaf-glyph{fill:var(--rasp)}
.occ .ext-ico{margin-left:auto}

/* heritage band */
.heritage{overflow:hidden}
.heritage-grid{display:grid;grid-template-columns:auto 1fr;gap:clamp(32px,6vw,96px);align-items:center;position:relative;z-index:1}
.heritage .mega{color:var(--white)}
.heritage p{max-width:54ch}
.ghost-lotus{position:absolute;right:-50px;bottom:-60px;width:clamp(280px,30vw,460px);height:auto;fill:var(--white);opacity:.08;pointer-events:none}

/* teasers */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,64px);align-items:center}
.split-photo{margin:0}
.split-photo .pframe img{aspect-ratio:4/3;width:100%;object-fit:cover}
.split-photo figcaption{font-size:.85rem;color:rgba(34,51,59,.7);padding-top:.6rem}
.split .pull-sm{
  font-family:var(--disp);font-style:italic;font-size:1.2rem;line-height:1.45;
  border-left:3px solid var(--rasp);padding-left:1.1rem;margin:1.4rem 0;
  color:var(--ink);max-width:44ch;
}
.split .pull-sm cite{display:block;font-family:var(--body);font-style:normal;font-size:.85rem;opacity:.75;margin-top:.4rem}

.gift-teaser-list{font-size:1.1rem;max-width:60ch}

/* reviews */
.rev-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(40px,6vw,88px);align-items:start}
.rev-stat .mega{color:var(--teal)}
.rev-stat p{font-weight:700;color:var(--ink);margin-top:.6rem}
.rev-quotes{display:flex;flex-direction:column;gap:2.2rem}
.rev-quotes blockquote{
  margin:0;position:relative;padding-left:2.4rem;
  font-family:var(--disp);font-style:italic;font-weight:400;font-size:1.3rem;line-height:1.5;
}
.rev-quotes blockquote::before{
  content:'\201C';position:absolute;left:0;top:-.35rem;
  font-family:var(--disp);font-size:3.2rem;line-height:1;color:var(--rasp);
}
.rev-quotes cite{display:block;font-family:var(--body);font-style:normal;font-size:.875rem;font-weight:700;color:rgba(34,51,59,.7);margin-top:.55rem}

/* visit */
.visit-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,5vw,64px);align-items:start}
.nap{font-style:normal;margin-bottom:1.6rem}
.nap a{font-weight:500}
.hours-dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1.6rem;margin:0 0 1.8rem;max-width:320px}
.hours-dl dt{font-weight:700}
.hours-dl dd{margin:0}
.map-shell{position:relative;border-radius:var(--radius);overflow:hidden;background-color:var(--mist);min-height:300px}
.map-shell .map-skel{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--teal);font-weight:700;font-size:.9rem;letter-spacing:.04em;
}
.map-shell iframe{position:relative;width:100%;height:300px;border:0;display:block;opacity:0;transition:opacity .3s ease-out}
.map-shell iframe.map-on{opacity:1}

/* forms */
.form-card{background-color:var(--mist);border-radius:14px;padding:clamp(24px,3.5vw,38px)}
.band-teal .form-card,.bg-mist .form-card{background-color:var(--linen)}
.field{margin-bottom:1.15rem}
.field label{display:block;font-weight:700;font-size:.9rem;margin-bottom:.35rem}
.field input,.field textarea,.field select{
  width:100%;padding:.8rem .95rem;
  border:1px solid rgba(34,51,59,.28);border-radius:8px;
  background-color:var(--white);color:var(--ink);
  font-family:var(--body);font-size:1rem;
  transition:border-color .15s ease-out;
  min-height:44px;
}
.field textarea{min-height:120px;resize:vertical}
.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{border-color:var(--rasp)}
.form-note{font-size:.9rem;margin:.9rem 0 0}
.form-note.ok{color:var(--leaf);font-weight:700}
.form-note.err{color:var(--rasp);font-weight:700}
.btn .spin{display:none;width:17px;height:17px}
.btn.is-busy .spin{display:block;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.form-micro{font-size:.9rem;color:rgba(34,51,59,.75);margin-top:1rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.4rem}
.form-grid .span2{grid-column:1/-1}

/* ============================================================
   FOOTER — 5-block weighted on Crescent Teal
   ============================================================ */
.site-footer{background-color:var(--teal);color:var(--linen)}
.foot-grid{
  display:grid;grid-template-columns:1.45fr .95fr .75fr 1.2fr 1.35fr;
  gap:clamp(24px,3vw,40px);padding-block:80px 64px;
}
.fb h3{
  font-family:var(--body);font-weight:700;font-size:.8125rem;
  letter-spacing:.08em;text-transform:uppercase;color:rgba(250,247,242,.65);
  margin:0 0 1.1rem;
}
.fb{min-width:0}
.fb + .fb{border-left:1px solid var(--hairline-linen);padding-left:clamp(18px,2vw,32px)}
.foot-lockup{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}
.foot-lockup svg{width:42px;height:34px;fill:var(--white);flex:none}
.foot-lockup span{font-family:var(--disp);font-weight:500;font-size:1.25rem;color:var(--white);line-height:1.15}
.fb-brand p{color:rgba(250,247,242,.9);font-size:.975rem;max-width:30ch}
.foot-social{display:flex;flex-direction:column;gap:.45rem;margin-top:1.1rem}
.foot-social a{
  display:inline-flex;align-items:center;gap:.55rem;color:var(--linen);
  text-decoration:none;font-size:.9rem;font-weight:500;padding:.3rem 0;min-height:32px;
}
.foot-social a:hover{color:var(--white);text-decoration:underline;text-underline-offset:3px}
.foot-social .ico{width:16px;height:16px}
.fb-explore ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}
.fb-explore a{color:var(--linen);text-decoration:none;font-size:.95rem;padding:.18rem 0;display:inline-block}
.fb-explore a:hover{color:var(--white);text-decoration:underline;text-underline-offset:3px}
.fb-hours dl{display:grid;grid-template-columns:auto 1fr;gap:.3rem .9rem;margin:0;font-size:.95rem}
.fb-hours dt{font-weight:700;color:var(--white)}
.fb-hours dd{margin:0;color:rgba(250,247,242,.9)}
.fb-visit address{font-style:normal;font-size:.95rem;color:rgba(250,247,242,.92);line-height:1.6}
.fb-visit a{color:var(--linen)}
.fb-visit a:hover{color:var(--white)}
.fb-visit .delivery-line{font-size:.875rem;color:rgba(250,247,242,.8);margin-top:.8rem}
.fb-news p{font-size:.9rem;color:rgba(250,247,242,.85);max-width:32ch}
.news-form{display:flex;gap:.5rem;margin-top:.9rem;flex-wrap:wrap}
.news-form .form-note{flex-basis:100%;margin:.3rem 0 0;color:var(--white)}
.news-form .form-note.ok{color:#CFE3C4}
.news-form input{
  flex:1;min-width:0;padding:.7rem .85rem;border:1px solid rgba(250,247,242,.35);
  border-radius:6px;background-color:rgba(250,247,242,.08);color:var(--white);
  font-family:var(--body);font-size:.95rem;min-height:44px;
  transition:border-color .15s ease-out,background-color .15s ease-out;
}
.news-form input::placeholder{color:rgba(250,247,242,.55)}
.news-form input:focus-visible{border-color:var(--white);background-color:rgba(250,247,242,.14)}
.news-form .btn{padding:.7rem 1.1rem;font-size:.9rem}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.legal{background-color:var(--ink)}
.legal-in{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  padding-block:1.1rem;
}
.legal-in p{margin:0;font-size:.8125rem;color:rgba(250,247,242,.6);max-width:none}
.legal-in a{color:rgba(250,247,242,.75)}
.legal-in a:hover{color:var(--white)}

/* ============================================================
   FLOWERS page
   ============================================================ */
.page-head{padding-block:72px 64px}
.page-head h1{margin-bottom:.35em}
.page-head p{margin:0;font-size:1.1rem}

.order-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,5vw,72px);align-items:start}
.order-call .huge-tel{
  display:inline-block;font-family:var(--disp);font-weight:500;
  font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.1;color:var(--teal);
  text-decoration:none;margin:.2rem 0 .9rem;
}
.order-call .huge-tel:hover{color:var(--rasp)}
.order-online{
  background-color:var(--mist);border-radius:14px;
  padding:clamp(24px,3vw,36px);margin-top:48px;
}
.order-online h3{margin-bottom:.5em}
.order-online p{font-size:.975rem}

.dir-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(40px,5vw,80px)}
.dir-item{
  display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;
  padding:1rem .2rem;border-bottom:1px solid var(--hairline-leaf);
  text-decoration:none;color:var(--ink);min-height:44px;
}
.dir-item .leaf-glyph{width:15px;height:15px;fill:var(--leaf);flex:none;align-self:center}
.dir-name{font-family:var(--disp);font-style:italic;font-weight:500;font-size:1.35rem;line-height:1.2}
.dir-desc{font-size:.9rem;color:rgba(34,51,59,.75)}
.dir-price{margin-left:auto;font-size:.875rem;font-weight:700;color:var(--teal);white-space:nowrap;display:inline-flex;align-items:center;gap:.35rem}
a.dir-item:hover .dir-name{color:var(--rasp)}
a.dir-item:hover .leaf-glyph{fill:var(--rasp)}

.sympathy-sec p{font-size:1.15rem;max-width:58ch}

.faq details{border-bottom:1px solid var(--hairline-ink)}
.faq summary{
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
  padding:1.15rem .1rem;cursor:pointer;list-style:none;
  font-family:var(--disp);font-weight:500;font-size:1.25rem;min-height:44px;
  transition:color .15s ease-out;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--rasp)}
.faq summary .ico{transition:transform .2s ease-out;color:var(--leaf)}
.faq details[open] summary .ico{transform:rotate(180deg)}
.faq details p{padding:0 .1rem 1.2rem}

.cta-band-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.cta-band-in h2{margin:0}
.cta-actions{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}
.cta-actions .tel-line{color:var(--linen);font-size:1.05rem}
.cta-actions .tel-line:hover{color:var(--white)}

/* ============================================================
   WEDDINGS page
   ============================================================ */
.wed-head{position:relative}
.wed-banner{width:100%;aspect-ratio:21/9;max-height:520px;object-fit:cover;object-position:50% 46%}
.wed-panel{
  position:absolute;left:clamp(20px,6vw,84px);bottom:-52px;
  background-color:var(--teal);color:var(--linen);
  padding:clamp(26px,3.5vw,42px) clamp(28px,4vw,52px);
  max-width:560px;border-radius:var(--radius);
}
.wed-panel h1{color:var(--white);margin:0}
.wed-panel .eyebrow{color:var(--mist)}
.wed-after{padding-top:148px}

.steps{list-style:none;margin:0;padding:0;max-width:880px}
.steps li{
  display:grid;grid-template-columns:88px 1fr;gap:clamp(16px,3vw,32px);
  align-items:baseline;padding:1.7rem 0;border-bottom:1px solid var(--hairline-leaf);
}
.step-num{font-family:var(--disp);font-weight:300;font-size:3rem;line-height:1;color:var(--leaf)}
.steps h3{margin-bottom:.25em}
.steps p{margin:0}

.pull-band blockquote{
  margin:0;max-width:880px;
  font-family:var(--disp);font-style:italic;font-weight:400;
  font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.45;
}
.pull-band blockquote::before{content:'\201C';color:var(--rasp);font-size:1.4em;line-height:0;vertical-align:-.32em;margin-right:.12em}
.pull-band cite{display:block;font-family:var(--body);font-style:normal;font-size:.9rem;font-weight:700;color:rgba(34,51,59,.7);margin-top:1rem}
.pull-band .pull-tag{font-weight:500;font-size:1.05rem;margin-top:1.4rem}

.proof-fig{margin:0}
.proof-fig img{width:100%;border-radius:var(--radius);aspect-ratio:16/9;object-fit:cover}
.proof-fig figcaption{font-size:.9rem;color:rgba(34,51,59,.72);padding-top:.7rem}

/* ============================================================
   SHOP page
   ============================================================ */
.gift-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}
.gift-block{
  border:1px solid var(--hairline-leaf);border-radius:var(--radius);
  padding:clamp(20px,2.5vw,30px);min-height:150px;
  display:flex;flex-direction:column;justify-content:flex-end;gap:.3rem;
  background-color:var(--linen);
}
.gift-block.g3{grid-column:span 3;min-height:190px}
.gift-block.g2{grid-column:span 2}
a.gift-block{text-decoration:none;color:var(--ink);transition:border-color .2s ease-out}
a.gift-block:hover{border-color:var(--rasp)}
a.gift-block:hover .gift-name{color:var(--rasp)}
.gift-name{font-family:var(--disp);font-weight:500;font-size:1.4rem;line-height:1.15;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;transition:color .18s ease-out}
.g3 .gift-name{font-size:1.75rem}
.gift-desc{font-size:.9rem;color:rgba(34,51,59,.75);margin:0;max-width:none}
.gift-block .leaf-glyph{width:15px;height:15px;fill:var(--leaf)}
.gift-block.alt{background-color:var(--mist);border-color:transparent}

.rlg-band{text-align:left;overflow:hidden}
.rlg-lockup{
  font-family:var(--disp);font-weight:500;
  font-size:clamp(2.1rem,6.5vw,4.6rem);letter-spacing:.1em;
  color:var(--white);line-height:1.05;margin:0 0 1rem;text-transform:uppercase;
}
.rlg-band p{max-width:56ch}

.plants-split .split-photo{max-width:640px;justify-self:end}
.plants-split .split-photo img{aspect-ratio:1/1;border-radius:var(--radius);object-fit:cover}

.visit-strip{display:flex;align-items:center;gap:clamp(1.2rem,3vw,2.6rem);flex-wrap:wrap}
.visit-strip p{margin:0;font-weight:500}
.visit-strip .sep{width:1px;height:22px;background-color:var(--hairline-leaf)}

/* ============================================================
   STORY page
   ============================================================ */
.story-head{padding-block:88px 72px;position:relative}
.story-head .mega{color:var(--teal);margin-bottom:.15em}
.story-head h1{margin-bottom:.4em}
.story-head p:not(.mega){margin:0;font-size:1.1rem}

.timeline{position:relative;max-width:920px;margin-inline:auto}
.t-entry{
  display:grid;grid-template-columns:1fr 130px 1fr;
  align-items:start;padding:2.4rem 0;
}
.t-entry .t-date{font-family:var(--disp);font-weight:500;font-size:2rem;line-height:1.05;color:var(--teal)}
.t-entry .t-body h3{margin-bottom:.3em}
.t-entry .t-body p{margin:0}
.t-entry:nth-child(odd) .t-date{grid-column:1;text-align:right}
.t-entry:nth-child(odd) .t-body{grid-column:3}
.t-entry:nth-child(even) .t-date{grid-column:3;text-align:left}
.t-entry:nth-child(even) .t-body{grid-column:1;text-align:right;justify-self:end}
.t-entry:nth-child(even) .t-body p{margin-left:auto}

.story-split .split-photo{max-width:600px}
.story-split .split-photo img{border-radius:var(--radius);object-fit:cover}
.tracy-prose p{max-width:62ch}

/* ============================================================
   Breakpoints — 1024 / 768 / 640 / 480 (named collapses)
   ============================================================ */
@media (max-width:1023px){
  .prim-nav{display:none}
  .ham{display:inline-flex}
  .mainbar-in{gap:1rem}
  .btn-order{margin-left:auto}
  .stem-wrap{display:none !important}
  .t-entry{grid-template-columns:1fr;padding:1.6rem 0}
  .t-entry:nth-child(odd) .t-date,.t-entry:nth-child(even) .t-date{grid-column:1;text-align:left}
  .t-entry:nth-child(odd) .t-body,.t-entry:nth-child(even) .t-body{grid-column:1;text-align:left;justify-self:start}
  .t-entry:nth-child(even) .t-body p{margin-left:0}
  .timeline{border-left:2px solid var(--leaf);padding-left:20px}
}

@media (max-width:768px){
  body{font-size:1rem}
  .sec{padding-block:64px}
  .sec-slim{padding-block:48px}
  [id]{scroll-margin-top:108px}

  .ribbon-msg{display:none}
  .ribbon-tel-num{display:none}
  .ribbon-tel{padding:.35rem .4rem}
  .cutoff-chip{margin-left:0;margin-right:auto}

  /* hero collapse: photo-top, arch kept, band hidden (chip carries the teal echo) */
  .hero-grid{grid-template-columns:1fr;row-gap:30px;min-height:0;padding-block:28px 56px}
  .hero-art{order:-1}
  .hero-band{display:none}
  .arch{max-width:520px}
  .arch-in{aspect-ratio:auto;height:52vh;max-height:440px}
  .hero-chip{background-color:var(--teal);color:var(--linen);border-color:var(--teal)}

  .factbar{grid-template-columns:1fr}
  .fact{text-align:left;padding:.55rem .2rem}
  .fact + .fact{border-left:none;border-top:1px solid var(--hairline-leaf)}

  .cooler-grid{grid-template-columns:1fr}
  .cooler-side{margin-top:0}
  .ptile-lg .pframe{max-height:520px}

  .occ-grid{grid-template-columns:1fr}
  .occ{font-size:1.35rem}

  .heritage-grid{grid-template-columns:1fr;gap:20px}

  .split,.order-grid,.visit-grid,.rev-grid{grid-template-columns:1fr}
  .split-photo{order:-1}
  .order-online{margin-top:0}
  .visit-grid .form-card{order:2}

  .dir-grid{grid-template-columns:1fr}

  .foot-grid{grid-template-columns:1fr 1fr;padding-block:56px 44px}
  .fb-brand{grid-column:1/-1;border-left:none}
  .fb + .fb{border-left:none;padding-left:0}

  .wed-banner{aspect-ratio:auto;height:40vh;max-height:360px}
  .wed-panel{position:static;max-width:none;border-radius:0;margin:0}
  .wed-after{padding-top:64px}

  .gift-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gift-block.g3,.gift-block.g2{grid-column:span 1}
  .g3 .gift-name{font-size:1.4rem}
  .plants-split .split-photo{justify-self:start}
}

@media (max-width:640px){
  .form-grid{grid-template-columns:1fr}
  .legal-in{justify-content:flex-start}
}

@media (max-width:480px){
  .foot-grid{grid-template-columns:1fr}
  .order-rest{display:none}
  .btn-order{padding:.85rem 1.15rem}
  .lockup-name{font-size:1.25rem}
  .lockup-mark{width:36px;height:29px}
  .steps li{grid-template-columns:52px 1fr}
  .step-num{font-size:2.2rem}
  .news-form{flex-direction:column}
  .hero-cta{align-items:flex-start;flex-direction:column;gap:1rem}
}

/* ============================================================
   Reduced motion — gates EVERYTHING (plan F5)
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}
  .js .rv,.js .hero-copy > *,.js .hero-art{opacity:1;transform:none;transition:none}
  .js .hero-band{transform:none;transition:none}
  .js .cutoff-chip{animation:none}
  .stem-leaf,.stem-lotus path{opacity:1;transform:none;transition:none}
}
