/* =============================================================
   DESIGN TOKENS  —  palette drawn from the embroidery reference
   ============================================================= */
:root{
  --linen:        #F3ECDF;
  --linen-deep:   #EBE1CF;
  --paper:        #FBF7EF;
  --sage:         #8A9A78;
  --sage-deep:    #6E7E5C;
  --blush:        #D8A39B;
  --blush-soft:   #EAC9C3;
  --lavender:     #AFA2C6;
  --gold:         #C9A86A;
  --terracotta:   #C0744F;
  --terracotta-d: #A85F3D;
  --ink:          #463E34;
  --ink-soft:     #6A6055;
  --ink-faint:    #948A7C;
  --line:         #D9CDB8;
  --ok:           #6E7E5C;
  --err:          #B5654A;

  --r-sm: 10px; --r-md: 16px; --r-lg: 24px; --r-xl: 32px;
  --shadow-soft: 0 10px 30px -12px rgba(70,62,52,.25);
  --shadow-card: 0 18px 50px -22px rgba(70,62,52,.35);
  --maxw: 560px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--ink);
  font-size:16px;
  line-height:1.65;
  background-color:var(--linen);
  background-image:
    repeating-linear-gradient(45deg, rgba(160,145,120,.045) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(-45deg, rgba(160,145,120,.045) 0 1px, transparent 1px 22px),
    radial-gradient(circle at 20% 0%, rgba(216,163,155,.08), transparent 45%),
    radial-gradient(circle at 90% 30%, rgba(138,154,120,.08), transparent 40%);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* ---- Typography ---- */
h1,h2,h3{font-family:'Fraunces',serif;font-weight:500;line-height:1.15;color:var(--ink);margin:0 0 .4em;letter-spacing:-.01em;}
h1{font-size:clamp(2.1rem,7.5vw,2.9rem);}
h2{font-size:clamp(1.6rem,5.5vw,2.1rem);}
h3{font-size:1.18rem;}
p{margin:0 0 1em;}
.script{font-family:'Caveat',cursive;color:var(--blush);}
.eyebrow{
  font-family:'Inter';font-size:.72rem;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--sage-deep);margin-bottom:.6em;display:inline-block;
}
.muted{color:var(--ink-soft);}

/* ---- Layout ---- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;}
section{padding:56px 0;position:relative;}
.center{text-align:center;}

/* ---- Stitched border utility ---- */
.stitched{
  border:2px dashed var(--line);
  border-radius:var(--r-lg);
  background:var(--paper);
  position:relative;
}
.stitched::after{
  content:"";position:absolute;inset:6px;border:1px dashed rgba(217,205,184,.6);
  border-radius:calc(var(--r-lg) - 6px);pointer-events:none;
}

/* =============================================================
   BUTTONS
   ============================================================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:'Inter';font-weight:600;font-size:1rem;
  padding:16px 28px;border-radius:999px;border:none;cursor:pointer;
  text-decoration:none;line-height:1;min-height:52px;
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease;
  -webkit-tap-highlight-color:transparent;
}
.btn-primary{
  background:var(--terracotta);color:#fff;
  box-shadow:0 10px 22px -10px rgba(192,116,79,.8), inset 0 0 0 2px rgba(255,255,255,.18);
}
.btn-primary:hover{background:var(--terracotta-d);box-shadow:0 14px 26px -10px rgba(168,95,61,.85);}
.btn-primary:active{transform:translateY(1px);}
.btn-ghost{
  background:transparent;color:var(--ink);border:2px dashed var(--line);
}
.btn-ghost:hover{background:var(--linen-deep);}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.btn-block{display:flex;width:100%;}

/* =============================================================
   DECORATIVE SVG
   ============================================================= */
.deco{position:absolute;pointer-events:none;opacity:.9;z-index:0;}

/* =============================================================
   HEADER
   ============================================================= */
header.site{
  position:sticky;top:0;z-index:40;
  background:rgba(243,236,223,.82);backdrop-filter:blur(10px);
  border-bottom:1px dashed var(--line);
}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:62px;}
.logo{display:flex;align-items:center;gap:9px;text-decoration:none;}
.logo-mark{width:30px;height:30px;flex:none;}
.logo-name{font-family:'Fraunces';font-weight:500;font-size:1.22rem;color:var(--ink);}
.logo-name em{font-style:italic;color:var(--blush);}
.header-cta{font-size:.85rem;padding:10px 18px;min-height:40px;}

/* =============================================================
   HERO
   ============================================================= */
.hero{padding-top:42px;text-align:center;}
.hero .eyebrow{color:var(--blush);}
.hero h1{margin-bottom:.35em;}
.hero h1 em{font-style:italic;color:var(--sage-deep);}
.hero-sub{font-size:1.08rem;color:var(--ink-soft);max-width:430px;margin:0 auto 1.6em;}
.hero-frame{margin:8px auto 26px;max-width:280px;padding:14px;}

/* main vertical video (single hero video) */
.hero-video-frame{
  position:relative;border-radius:var(--r-md);overflow:hidden;
  aspect-ratio:9/16;
  background:linear-gradient(155deg,#efe6d6,#e0d4c0);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-card);
  border:6px solid var(--paper);
  outline:2px dashed var(--line);outline-offset:-10px;
  cursor:pointer;
}
.hero-video-frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply;opacity:.38;
  background:
    repeating-linear-gradient(45deg,rgba(160,145,120,.5) 0 1px,transparent 1px 5px),
    repeating-linear-gradient(-45deg,rgba(160,145,120,.5) 0 1px,transparent 1px 5px);
}
.hero-video-frame video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;z-index:2;
}
.hero-video-frame .play{
  width:72px;height:72px;border-radius:50%;
  background:rgba(251,247,239,.92);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px -6px rgba(70,62,52,.4);
  position:relative;z-index:1;
  transition:opacity .2s ease;
}
.hero-video-frame .play svg{margin-left:4px;}
.hero-video-frame.playing .play{opacity:0;pointer-events:none;}
.hero-video-frame.playing video{display:block;}
.hero-caption{font-family:'Caveat';font-size:1.25rem;color:var(--ink-soft);margin-top:10px;display:block;}

/* =============================================================
   GLOW CTA — draws attention to "Create yours" buttons
   ============================================================= */
.btn-glow{
  position:relative;
  animation:btnGlowPulse 2.4s ease-in-out infinite;
}
@keyframes btnGlowPulse{
  0%,100%{box-shadow:0 10px 22px -10px rgba(192,116,79,.8), 0 0 0 0 rgba(192,116,79,.55), inset 0 0 0 2px rgba(255,255,255,.18);}
  50%{box-shadow:0 10px 26px -8px rgba(192,116,79,.9), 0 0 0 10px rgba(192,116,79,0), inset 0 0 0 2px rgba(255,255,255,.18);}
}
@media (prefers-reduced-motion:reduce){
  .btn-glow{animation:none;}
}
.trust-row{
  display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;
  margin-top:18px;font-size:.85rem;color:var(--ink-soft);
}
.trust-row .dot{width:4px;height:4px;border-radius:50%;background:var(--line);}
.stars{color:var(--gold);letter-spacing:2px;}

/* =============================================================
   EXAMPLE VIDEO SECTION
   ============================================================= */
.example-section{background:var(--linen-deep);}
.example-video-wrap{
  max-width:280px;margin:24px auto 0;
}
.example-video-frame{
  position:relative;border-radius:var(--r-md);overflow:hidden;
  aspect-ratio:9/16;
  background:linear-gradient(155deg,#efe6d6,#e0d4c0);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-card);
  border:6px solid var(--paper);
  outline:2px dashed var(--line);outline-offset:-10px;
  cursor:pointer;
}
.example-video-frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply;opacity:.38;
  background:
    repeating-linear-gradient(45deg,rgba(160,145,120,.5) 0 1px,transparent 1px 5px),
    repeating-linear-gradient(-45deg,rgba(160,145,120,.5) 0 1px,transparent 1px 5px);
}
.example-video-frame video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;z-index:2;
}
.example-play{
  width:72px;height:72px;border-radius:50%;
  background:rgba(251,247,239,.92);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px -6px rgba(70,62,52,.4);
  position:relative;z-index:1;
  transition:opacity .2s ease;
}
.example-play svg{margin-left:4px;}
.example-video-frame.playing .example-play{opacity:0;pointer-events:none;}
.example-video-frame.playing video{display:block;}
.example-video-label{font-family:'Caveat';font-size:1.15rem;color:var(--ink-soft);margin-top:10px;display:block;}
.example-poem-excerpt{
  padding:24px 22px;margin-top:18px;
  position:relative;
}
.example-poem-excerpt .verse{
  font-family:'Fraunces';font-style:italic;
  font-size:1.12rem;line-height:1.75;
  color:var(--ink);margin:0 0 12px;
}
.example-poem-excerpt .attrib{
  font-family:'Caveat';font-size:1.15rem;color:var(--sage-deep);
}

/* =============================================================
   EMOTIONAL EXPLANATION
   ============================================================= */
.poem-quote{
  padding:34px 28px;text-align:center;margin-top:24px;
  background:var(--paper);
}
.poem-quote .verse{
  font-family:'Fraunces';font-style:italic;font-weight:400;
  font-size:1.22rem;line-height:1.7;color:var(--ink);margin:0;
}
.poem-quote .sig{font-family:'Caveat';font-size:1.3rem;color:var(--sage-deep);margin-top:18px;display:block;}

/* =============================================================
   WHO IS THIS FOR
   ============================================================= */
.for-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:10px;margin-top:24px;
}
.for-item{
  background:var(--paper);border:2px dashed var(--line);
  border-radius:var(--r-md);padding:18px 14px;
  font-family:'Fraunces';font-style:italic;font-size:1rem;
  color:var(--ink);text-align:center;transition:.18s;
  line-height:1.3;
}
.for-item:hover{background:var(--linen-deep);border-color:var(--blush-soft);}
.for-item .for-icon{display:block;font-size:1.3rem;margin-bottom:4px;}

/* leaner 2x3 matrix */
.for-grid-compact{
  grid-template-columns:repeat(2,1fr);
  gap:8px;margin-top:18px;
}
.for-grid-compact .for-item{
  padding:12px 8px;font-size:.86rem;line-height:1.25;
}
.for-grid-compact .for-item .for-icon{font-size:1.05rem;margin-bottom:2px;}
@media(min-width:600px){
  .for-grid-compact{grid-template-columns:repeat(3,1fr);}
}

/* =============================================================
   MEMORIAL TRIBUTE
   ============================================================= */
.memorial-section{
  background:linear-gradient(148deg, #463E34 0%, #574c41 100%);
}
.memorial-section .eyebrow{color:var(--blush-soft);}
.memorial-section h2{color:#FBF7EF;}
.memorial-inner{
  padding:40px 28px;
  border:2px dashed rgba(217,205,184,.3);
  border-radius:var(--r-xl);
  position:relative;
}
.memorial-inner::after{
  content:"";position:absolute;inset:8px;
  border:1px dashed rgba(217,205,184,.15);
  border-radius:calc(var(--r-xl) - 8px);
  pointer-events:none;
}
.memorial-inner p{color:rgba(251,247,239,.78);margin-bottom:1.2em;}
.memorial-inner .btn-primary{
  background:var(--blush);color:var(--ink);
  box-shadow:0 10px 22px -10px rgba(216,163,155,.7);
}
.memorial-inner .btn-primary:hover{background:var(--blush-soft);box-shadow:0 14px 26px -10px rgba(216,163,155,.6);}
.memorial-flowers{
  display:flex;justify-content:center;gap:16px;margin-bottom:22px;opacity:.65;
}

/* =============================================================
   HOW IT WORKS
   ============================================================= */
.steps{display:grid;gap:18px;margin-top:26px;}
.step{padding:24px 22px;text-align:center;}
.step .num{
  font-family:'Fraunces';font-style:italic;font-size:1.5rem;color:var(--blush);
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:50%;border:2px dashed var(--blush-soft);
  margin-bottom:12px;
}
.step h3{margin-bottom:.3em;}
.step p{font-size:.95rem;color:var(--ink-soft);margin:0;}

/* =============================================================
   TESTIMONIALS
   ============================================================= */
.tcards{display:grid;gap:16px;margin-top:24px;}
.tcard{padding:22px 22px;}
.tcard .stars{font-size:.95rem;margin-bottom:8px;display:block;}
.tcard p{font-size:.97rem;color:var(--ink);font-style:italic;margin:0 0 12px;font-family:'Fraunces';}
.tcard .who{display:flex;align-items:center;gap:10px;}
.tcard .avatar{width:34px;height:34px;border-radius:50%;background:var(--blush-soft);
  display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff;font-size:.85rem;flex:none;}
.tcard .name{font-size:.85rem;color:var(--ink-soft);}
.tcard .name strong{color:var(--ink);display:block;font-weight:600;}

/* =============================================================
   PRICING SECTION
   ============================================================= */
.pricing-section{background:var(--linen-deep);}
.price-card-wrap{max-width:360px;margin:24px auto 0;}
.price-display{
  display:flex;align-items:baseline;justify-content:center;
  gap:14px;margin-bottom:8px;
}
.price-was{
  font-family:'Fraunces';font-size:1.8rem;
  color:var(--ink-faint);text-decoration:line-through;
}
.price-now{
  font-family:'Fraunces';font-size:3.2rem;font-weight:600;
  color:var(--terracotta-d);line-height:1;
}
.price-now sup{font-size:1.5rem;vertical-align:super;}
.price-badge{
  display:inline-block;
  background:var(--blush-soft);color:var(--terracotta-d);
  font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:5px 14px;border-radius:999px;margin-bottom:20px;
}
.price-includes{list-style:none;padding:0;margin:0 0 24px;text-align:left;}
.price-includes li{
  padding:8px 0;font-size:.92rem;color:var(--ink-soft);
  border-bottom:1px dashed var(--line);
  display:flex;gap:10px;align-items:center;
}
.price-includes li:last-child{border-bottom:none;}
.price-includes .ic{color:var(--sage-deep);flex:none;font-size:1rem;}

/* =============================================================
   WIZARD
   ============================================================= */
.wizard-section{background:var(--linen-deep);border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);}
.wizard{padding:26px 22px 30px;}

.progress{display:flex;align-items:center;gap:6px;margin-bottom:24px;}
.progress .node{
  flex:none;width:26px;height:26px;border-radius:50%;border:2px dashed var(--line);
  background:var(--paper);display:flex;align-items:center;justify-content:center;
  font-size:.72rem;font-weight:700;color:var(--ink-faint);transition:.25s;
}
.progress .bar{flex:1;height:2px;background:var(--line);border-radius:2px;transition:.25s;}
.progress .node.active{border-style:solid;border-color:var(--terracotta);color:var(--terracotta);background:#fff;}
.progress .node.done{border-style:solid;border-color:var(--sage);background:var(--sage);color:#fff;}
.progress .bar.done{background:var(--sage);}

.step-panel{display:none;animation:fade .35s ease;}
.step-panel.active{display:block;}
@keyframes fade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

.step-head{margin-bottom:18px;}
.step-head .kicker{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-deep);font-weight:600;}
.step-head h3{font-size:1.45rem;margin:.2em 0 .15em;}
.step-head p{font-size:.92rem;color:var(--ink-soft);margin:0;}

label.field-label{display:block;font-size:.82rem;font-weight:600;color:var(--ink);margin:0 0 8px;}

/* text input */
.text-input{
  width:100%;border:2px dashed var(--line);border-radius:var(--r-md);
  background:var(--paper);padding:14px 16px;
  font-family:'Fraunces',serif;font-size:1.05rem;color:var(--ink);
  font-style:italic;transition:.18s;margin-bottom:4px;
}
.text-input:focus{outline:none;border-style:solid;border-color:var(--sage);background:#fff;}
.text-input::placeholder{color:var(--ink-faint);}

/* option grid (chips) */
.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px;}
.opt{
  border:2px dashed var(--line);background:var(--paper);border-radius:var(--r-sm);
  padding:14px 12px;text-align:center;cursor:pointer;font-size:.92rem;font-weight:500;
  color:var(--ink);transition:.18s;display:flex;align-items:center;justify-content:center;gap:7px;
  min-height:50px;user-select:none;
}
.opt:hover{background:var(--linen);}
.opt.selected{border-style:solid;border-color:var(--terracotta);background:#fff;
  box-shadow:0 6px 16px -10px rgba(192,116,79,.6);color:var(--terracotta-d);font-weight:600;}
.opt svg{flex:none;}

/* multi-photo slots */
.photo-slots{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:16px;}
.photo-slot{
  aspect-ratio:1;border:2px dashed var(--line);border-radius:var(--r-sm);
  background:var(--paper);display:flex;flex-direction:column;
  align-items:center;justify-content:center;cursor:pointer;transition:.18s;
  overflow:hidden;position:relative;font-size:.72rem;color:var(--ink-faint);text-align:center;gap:4px;
}
.photo-slot:hover{background:var(--linen);border-color:var(--sage);}
.photo-slot.has-photo{border-style:solid;border-color:var(--sage);}
.photo-slot img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:sepia(.32) saturate(1.12) contrast(1.04) brightness(1.03);display:none;
}
.photo-slot .remove-photo{
  position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;
  background:rgba(70,62,52,.75);color:#fff;border:none;cursor:pointer;font-size:13px;
  display:none;align-items:center;justify-content:center;z-index:2;line-height:1;
}
.photo-slot .slot-badge{
  font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sage-deep);margin-top:4px;
}
/* =============================================================
   PHOTO DROPZONE (premium upload area)
   ============================================================= */
.dropzone{
  position:relative;width:100%;margin-bottom:10px;
  border-radius:var(--r-md);
}
.dropzone-input{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;cursor:pointer;z-index:2;
}
.dropzone-label{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;text-align:center;
  border:2px dashed var(--line);border-radius:var(--r-md);
  background:var(--paper);padding:32px 18px;
  cursor:pointer;transition:.18s;
}
.dropzone:hover .dropzone-label,
.dropzone-input:focus + .dropzone-label{
  background:var(--linen);border-color:var(--sage);
}
.dropzone.has-files .dropzone-label{
  border-style:solid;border-color:var(--sage);background:#fff;
}
.dropzone.error .dropzone-label{
  border-style:solid;border-color:var(--err);
}
.dropzone-ico{
  width:52px;height:52px;border-radius:50%;
  background:var(--blush-soft);color:var(--terracotta-d);
  display:flex;align-items:center;justify-content:center;flex:none;
}
.dropzone.has-files .dropzone-ico{background:var(--sage);color:#fff;}
.dropzone-text{display:flex;flex-direction:column;gap:3px;}
.dropzone-text strong{font-size:.98rem;color:var(--ink);font-weight:600;}
.dropzone-sub{font-size:.8rem;color:var(--ink-faint);}
.photo-slot-hint{font-size:.8rem;color:var(--ink-faint);margin-bottom:16px;}

textarea.custom{
  width:100%;min-height:160px;resize:vertical;border:2px dashed var(--line);border-radius:var(--r-md);
  background:var(--paper);padding:14px;font-family:'Fraunces';font-size:1rem;line-height:1.6;color:var(--ink);
  font-style:italic;
}
textarea.custom:focus{outline:none;border-style:solid;border-color:var(--sage);background:#fff;}
.counter{display:flex;justify-content:space-between;font-size:.78rem;margin-top:6px;color:var(--ink-faint);}
.counter .count.ok{color:var(--ok);font-weight:600;}
.counter .count.err{color:var(--err);font-weight:600;}

/* delivery / upsell */
.delivery-card{
  border:2px dashed var(--line);background:var(--paper);border-radius:var(--r-md);
  padding:18px;cursor:pointer;margin-bottom:14px;transition:.18s;display:flex;gap:14px;align-items:flex-start;
}
.delivery-card:hover{background:var(--linen);}
.delivery-card.selected{border-style:solid;border-color:var(--terracotta);background:#fff;box-shadow:var(--shadow-soft);}
.delivery-card .radio{flex:none;width:22px;height:22px;border-radius:50%;border:2px dashed var(--line);margin-top:2px;position:relative;}
.delivery-card.selected .radio{border-style:solid;border-color:var(--terracotta);}
.delivery-card.selected .radio::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--terracotta);}
.delivery-card .body{flex:1;}
.delivery-card .top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.delivery-card .top strong{font-size:1rem;color:var(--ink);}
.delivery-card .price{font-family:'Fraunces';font-weight:600;font-size:1.05rem;color:var(--terracotta-d);white-space:nowrap;}
.delivery-card .desc{font-size:.85rem;color:var(--ink-soft);margin-top:3px;}
.badge-rush{display:inline-block;background:var(--blush-soft);color:var(--terracotta-d);font-size:.66rem;
  font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;margin-left:6px;}

/* nav buttons */
.wiz-nav{display:flex;gap:12px;margin-top:8px;}
.wiz-nav .btn{flex:1;}
.field-err{color:var(--err);font-size:.82rem;margin:-12px 0 14px;display:none;}
.field-err.show{display:block;}

/* =============================================================
   TRUST GUARANTEES (above checkout)
   ============================================================= */
.trust-guarantees{
  background:var(--linen-deep);border:2px dashed var(--line);
  border-radius:var(--r-md);padding:16px 18px;margin-bottom:18px;
}
.g-row{
  display:flex;align-items:center;gap:10px;
  padding:6px 0;font-size:.88rem;color:var(--ink-soft);
  border-bottom:1px dashed rgba(217,205,184,.5);
}
.g-row:last-child{border-bottom:none;}
.g-row .g-ic{flex:none;color:var(--sage-deep);font-size:1rem;}
.g-row strong{color:var(--ink);}

/* =============================================================
   FREE FOLK SONG PROMO (checkout step)
   ============================================================= */
.promo-banner{
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg, var(--blush-soft), var(--linen-deep));
  border:2px dashed var(--terracotta);border-radius:var(--r-md);
  padding:14px 16px;margin-top:16px;
  animation:promoPulse 2.4s ease-in-out infinite;
}
.promo-banner .promo-ico{font-size:1.6rem;flex:none;line-height:1;}
.promo-banner .promo-body{font-size:.86rem;color:var(--ink);line-height:1.45;}
.promo-banner .promo-timer{
  display:inline-block;font-family:'Fraunces';font-weight:600;
  background:var(--terracotta);color:#fff;border-radius:6px;
  padding:1px 8px;margin:0 2px;letter-spacing:.02em;
}
.promo-banner.promo-expired{
  background:var(--linen-deep);border-color:var(--line);animation:none;
}
.promo-banner.promo-expired .promo-body{color:var(--ink-soft);}
@keyframes promoPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(192,116,79,.35);}
  50%{box-shadow:0 0 0 8px rgba(192,116,79,0);}
}
@media (prefers-reduced-motion:reduce){
  .promo-banner{animation:none;}
}

/* =============================================================
   ORDER SUMMARY / CHECKOUT (final step)
   ============================================================= */
.summary{background:var(--paper);border-radius:var(--r-md);padding:20px;margin-bottom:18px;border:2px dashed var(--line);}
.summary h4{font-family:'Fraunces';font-size:1.15rem;margin:0 0 14px;}
.sum-row{display:flex;justify-content:space-between;font-size:.92rem;padding:7px 0;border-bottom:1px dashed var(--line);color:var(--ink-soft);}
.sum-row:last-of-type{border-bottom:none;}
.sum-row span:last-child{color:var(--ink);font-weight:500;text-align:right;max-width:60%;}
.sum-price-anchor{display:flex;align-items:baseline;gap:7px;justify-content:flex-end;}
.sum-price-was{font-size:.82rem;color:var(--ink-faint);text-decoration:line-through;}
.sum-price-now{color:var(--terracotta-d);font-weight:600;font-family:'Fraunces';font-size:1.1rem;}
.sum-launch{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:var(--blush-soft);color:var(--terracotta-d);padding:2px 7px;border-radius:999px;}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;padding-top:14px;border-top:2px dashed var(--line);}
.sum-total .lbl{font-weight:600;}
.sum-total .amt{font-family:'Fraunces';font-weight:600;font-size:1.7rem;color:var(--terracotta-d);}
.secure{display:flex;align-items:center;justify-content:center;gap:7px;font-size:.8rem;color:var(--ink-faint);margin-top:14px;}

/* =============================================================
   SAMPLE VOICE BUTTON
   ============================================================= */
.voice-sample{display:flex;align-items:center;gap:10px;width:100%;margin:2px 0 20px;
  border:2px dashed var(--line);background:var(--paper);border-radius:var(--r-md);padding:14px 16px;
  cursor:pointer;transition:.18s;color:var(--ink);font-weight:500;font-size:.92rem;text-align:left;}
.voice-sample:hover{background:var(--linen);border-color:var(--sage);}
.voice-sample:disabled{opacity:.5;cursor:not-allowed;}
.voice-sample .ico{flex:none;width:38px;height:38px;border-radius:50%;background:var(--blush-soft);
  display:flex;align-items:center;justify-content:center;color:var(--terracotta-d);}
.voice-sample.playing .ico{background:var(--terracotta);color:#fff;}
.voice-sample .sub{display:block;font-size:.76rem;color:var(--ink-faint);font-weight:400;}

/* =============================================================
   TRUST STRIP
   ============================================================= */
.trust-strip{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px;}
.trust-strip .pill{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--ink-soft);
  background:var(--paper);border:1px dashed var(--line);border-radius:999px;padding:7px 13px;}
.trust-strip .pill svg{color:var(--sage-deep);flex:none;}

/* delivery-by line */
.deliver-by{font-size:.82rem;color:var(--sage-deep);font-weight:600;margin-top:6px;display:inline-flex;align-items:center;gap:6px;}

/* =============================================================
   FAQ
   ============================================================= */
.faq{margin-top:22px;}
.faq details{border-bottom:1px dashed var(--line);padding:6px 0;}
.faq summary{cursor:pointer;list-style:none;padding:14px 2px;font-weight:600;color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.98rem;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary .pm{transition:.2s;color:var(--blush);font-size:1.4rem;line-height:1;flex:none;}
.faq details[open] summary .pm{transform:rotate(45deg);}
.faq .ans{padding:0 2px 16px;color:var(--ink-soft);font-size:.92rem;}

/* =============================================================
   FOOTER
   ============================================================= */
footer.site{background:var(--linen-deep);border-top:1px dashed var(--line);padding:40px 0 48px;text-align:center;}
footer .logo{justify-content:center;margin-bottom:10px;}
footer p{font-size:.82rem;color:var(--ink-faint);margin:0 0 6px;}
footer a{color:var(--sage-deep);text-decoration:none;}

/* =============================================================
   MODAL
   ============================================================= */
.modal-bg{position:fixed;inset:0;background:rgba(70,62,52,.5);backdrop-filter:blur(4px);
  display:none;align-items:center;justify-content:center;z-index:60;padding:22px;}
.modal-bg.show{display:flex;}
.modal{background:var(--paper);border-radius:var(--r-lg);padding:30px 26px;max-width:380px;text-align:center;
  box-shadow:var(--shadow-card);border:2px dashed var(--line);}
.modal h3{margin-bottom:.4em;}
.modal p{font-size:.92rem;color:var(--ink-soft);}

/* =============================================================
   SCROLL REVEAL
   ============================================================= */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s cubic-bezier(.22,.61,.36,1);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.18s}.reveal.d3{transition-delay:.28s}

/* =============================================================
   FLOATING PETALS
   ============================================================= */
.petals{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.petal{position:absolute;top:-20px;opacity:0;animation:fall linear infinite;}
@keyframes fall{
  0%{opacity:0;transform:translateY(-10px) rotate(0deg);}
  10%{opacity:.7;}90%{opacity:.5;}
  100%{opacity:0;transform:translateY(420px) rotate(220deg);}
}

/* =============================================================
   EMBROIDERED PHOTO PREVIEW
   ============================================================= */
.stylewrap{position:relative;display:inline-block;border-radius:var(--r-md);overflow:hidden;
  border:6px solid var(--paper);outline:2px dashed var(--line);outline-offset:-9px;box-shadow:var(--shadow-soft);}
.stylewrap img{display:block;max-width:100%;max-height:230px;transition:filter .4s ease;
  filter:sepia(.32) saturate(1.12) contrast(1.04) brightness(1.03);}
.stylewrap::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply;opacity:.5;
  background:
    repeating-linear-gradient(45deg, rgba(160,145,120,.5) 0 1px, transparent 1px 6px),
    repeating-linear-gradient(-45deg, rgba(160,145,120,.5) 0 1px, transparent 1px 6px);
  transition:opacity .4s ease;}
.stylewrap.raw img{filter:none;}
.stylewrap.raw::after{opacity:0;}

/* =============================================================
   STICKY MOBILE CTA BAR
   ============================================================= */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:45;
  background:rgba(251,247,239,.94);backdrop-filter:blur(12px);border-top:1px dashed var(--line);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  transform:translateY(140%);transition:transform .38s cubic-bezier(.22,.61,.36,1);
  box-shadow:0 -10px 28px -18px rgba(70,62,52,.5);}
.sticky-cta.show{transform:none;}
.sticky-cta .inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:12px;}
.sticky-cta .meta{flex:1;line-height:1.15;}
.sticky-cta .meta .p{font-family:'Fraunces';font-weight:600;color:var(--ink);font-size:1.02rem;}
.sticky-cta .meta .s{font-size:.74rem;color:var(--ink-soft);}
.sticky-cta .btn{padding:13px 22px;min-height:46px;white-space:nowrap;}

/* spinner */
.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;
  animation:spin .7s linear infinite;display:inline-block;}
@keyframes spin{to{transform:rotate(360deg);}}

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
  .reveal{opacity:1;transform:none;}
  .petals{display:none;}
}
@media(min-width:600px){
  .opt-grid{grid-template-columns:repeat(3,1fr);}
  .for-grid{grid-template-columns:repeat(3,1fr);}
  section{padding:70px 0;}
}
