/* Stonoview — warm, light, tan. Serif display, humanist sans body. */
:root{
  --cream:#f7f1e6; --paper:#fcf8f1; --sand:#e9dcc6; --tan:#d4bb95; --tan-deep:#b8956a;
  --ink:#332a1f; --ink-soft:#6b5b48; --line:#e2d4bd; --accent:#7a5b32; --accent-ink:#5a4123;
  --green:#5f7a4a; --green-soft:#e7eedf; --warn:#a8632b; --warn-soft:#f7e5d4; --error:#9b3b2e; --error-soft:#f6e0dc; --info-soft:#efe6d6;
  --radius:12px; --shadow:0 1px 2px rgba(60,40,10,.06),0 8px 24px -12px rgba(60,40,10,.18);
  --serif:"Fraunces",Georgia,"Times New Roman",serif; --sans:"Source Sans 3","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:17px/1.55 var(--sans);
  background-image:radial-gradient(ellipse at top,#fdf9f2 0,var(--cream) 60%)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;letter-spacing:-.01em;color:var(--ink)}
h1{font-size:clamp(2rem,4vw,3rem);margin:.2em 0 .4em}h2{font-size:1.6rem;margin:1.6em 0 .6em}h3{font-size:1.2rem;margin:1em 0 .4em}
p{margin:.5em 0 1em}.muted{color:var(--ink-soft)}.small{font-size:.9rem}.center{text-align:center}
code{background:var(--sand);padding:.1em .45em;border-radius:6px;font-size:.95em;letter-spacing:.04em}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}.wrap.wide{max-width:1200px}
main.wrap{min-height:60vh;padding-top:24px;padding-bottom:64px}

/* header / footer */
.site-header{background:rgba(252,248,241,.9);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
.brand{font-family:var(--serif);font-weight:700;font-size:1.5rem;color:var(--ink);display:flex;align-items:center;gap:10px}
.brand-mark{width:28px;height:28px;border-radius:8px;background:var(--tan);position:relative;display:inline-block}
.brand-mark::after{content:"";position:absolute;inset:7px 6px 5px;background:var(--paper);clip-path:polygon(50% 0,100% 45%,100% 100%,0 100%,0 45%)}
nav a{margin-left:18px;color:var(--ink-soft);font-weight:600;font-size:.98rem}nav a:hover{color:var(--ink);text-decoration:none}
.nav-cta{background:var(--sand);padding:8px 14px;border-radius:999px;color:var(--accent-ink)!important}
.site-footer{background:var(--sand);border-top:1px solid var(--line);color:var(--ink-soft);font-size:.95rem;padding:36px 0 24px}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px;line-height:1.9}.foot strong{color:var(--ink);font-family:var(--serif);font-size:1.1rem}
.legal-line{margin-top:24px;padding-top:18px;border-top:1px solid var(--tan);font-size:.85rem;line-height:1.5}

/* hero */
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;padding:28px 0 8px}.hero-solo{grid-template-columns:1fr;max-width:720px}
.hero-photo{margin:0;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);background:var(--sand)}.hero-photo img{display:block;width:100%;height:100%;max-height:420px;object-fit:cover}
.hero-photo figcaption{font-size:.85rem;color:var(--ink-soft);padding:8px 14px;background:var(--paper)}
.photo-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin:28px 0 8px}.photo-strip figure{max-width:320px}.photo-strip figure{margin:0;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--paper)}.photo-strip img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.photo-strip figcaption{font-size:.8rem;color:var(--ink-soft);padding:6px 10px}
.photo-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:28px}.photo-admin figure{margin:0;padding:12px}.photo-admin img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.photo-admin figcaption{margin:8px 0;font-weight:600}.photo-admin .upload{align-self:start}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700;color:var(--tan-deep);margin:0 0 6px}
.lede{font-size:1.2rem;color:var(--ink-soft);max-width:60ch}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}

/* cards & grids */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}
a.card{display:block;color:inherit}a.card:hover{text-decoration:none;border-color:var(--tan);transform:translateY(-1px)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.biz-card h3{margin:.4em 0 .2em}.biz-card-head{display:flex;gap:6px}.biz-meta{color:var(--ink-soft);font-size:.92rem;margin:0}
.chip{display:inline-block;background:var(--sand);color:var(--accent-ink);font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.02em}
.chip-feat{background:var(--green-soft);color:var(--green)}.chip-soft{background:transparent;border:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;align-items:baseline}
.three-up{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}.three-up h3{margin-top:0}
.cat-row{display:flex;flex-wrap:wrap;gap:10px}
.cat{background:var(--paper);border:1px solid var(--line);padding:8px 14px;border-radius:999px;color:var(--ink);font-weight:600;font-size:.95rem}
.cat span{color:var(--tan-deep);margin-left:4px}.cat-empty{color:var(--ink-soft);font-weight:500}.cat:hover{text-decoration:none;border-color:var(--tan)}
.page-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;margin:8px 0 24px}
.empty{text-align:center;padding:48px 16px;color:var(--ink-soft)}

/* buttons & forms */
.btn{display:inline-block;background:var(--sand);color:var(--accent-ink);border:1px solid var(--tan);padding:10px 18px;border-radius:10px;font:600 1rem var(--sans);cursor:pointer;text-decoration:none!important;line-height:1.2}
.btn:hover{background:var(--tan);color:var(--ink)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-ink);color:#fff}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink-soft)}.btn-ghost:hover{background:var(--sand)}
.btn-danger{background:transparent;border-color:var(--error-soft);color:var(--error)}.btn-danger:hover{background:var(--error-soft)}
.btn-small{padding:6px 12px;font-size:.88rem;border-radius:8px}.btn-big{padding:14px 28px;font-size:1.1rem}.btn-block{display:block;width:100%;text-align:center;margin-top:6px}
button.link{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;padding:0;text-decoration:underline}
.form h3{margin-top:1.4em}.form-actions{margin-top:16px}
.field{display:block;margin:0 0 14px}.field>span{display:block;font-weight:600;font-size:.92rem;margin-bottom:4px}.field em{color:var(--error);font-style:normal}
.field small{display:block;color:var(--ink-soft);font-size:.85rem;margin-top:3px}
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 12px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--tan);border-color:var(--tan-deep)}
input[type=radio],input[type=checkbox]{width:auto}.check{display:flex;gap:8px;align-items:center;margin:12px 0}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tiny{width:64px}
.pay-options{display:grid;gap:8px;margin:8px 0 14px}
.pay-opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.pay-opt:has(input:checked){border-color:var(--accent);background:var(--info-soft)}.pay-opt small{display:block;color:var(--ink-soft)}
.auth{max-width:440px;margin:24px auto}.auth h1{font-size:1.9rem}
.flash{padding:12px 16px;border-radius:10px;margin:0 0 18px;background:var(--info-soft);border:1px solid var(--line)}
.flash.ok{background:var(--green-soft);border-color:#c9d8b9}.flash.warn{background:var(--warn-soft)}.flash.error{background:var(--error-soft);color:var(--error)}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.82rem;font-weight:700}
.pill.ok{background:var(--green-soft);color:var(--green)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.info{background:var(--info-soft);color:var(--accent-ink)}
.inline{display:inline}.inline .btn{margin-right:6px}

/* business page */
.biz-head{padding:8px 0 8px}.biz-body{display:grid;grid-template-columns:1fr 320px;gap:36px;align-items:start}
.biz-main h2{margin-top:1.2em}.biz-side h3{margin:1em 0 .2em;font-size:1rem}.biz-side h3:first-child{margin-top:0}
.services{list-style:none;padding:0;margin:0}
.services li{padding:14px 0;border-bottom:1px solid var(--line)}
.services p{margin:2px 0 0;font-size:.92rem}.price{font-family:var(--serif);font-size:1.25rem;font-weight:600;white-space:nowrap}.price small{font:.8rem var(--sans);color:var(--ink-soft)}
.coupon-box{background:var(--info-soft);border:1px dashed var(--tan-deep);border-radius:var(--radius);padding:4px 20px 12px;margin-top:24px}.coupon-box h2{margin-top:.8em;font-size:1.25rem}
.coupon-box ul{padding-left:18px}

/* order */
.back{display:inline-block;margin-bottom:8px;color:var(--ink-soft)}
.order-grid{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}
.summary .row,.receipt .row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line)}
.row.total{font-weight:700;font-size:1.1rem;border-bottom:0}.row.ok{color:var(--green)}
.receipt{max-width:420px;margin:20px auto;text-align:left}

/* dashboard */
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.dash-head h1{margin:.1em 0 .3em}
.dash-status{display:flex;gap:10px;align-items:center}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:10px 0 24px;overflow-x:auto}
.tabs a{padding:10px 14px;color:var(--ink-soft);font-weight:600;border-bottom:3px solid transparent;white-space:nowrap}.tabs a.on{color:var(--ink);border-color:var(--accent)}.tabs a:hover{text-decoration:none;color:var(--ink)}
.badge{background:var(--accent);color:#fff;border-radius:999px;padding:0 7px;font-size:.75rem}
.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;align-items:start}.two-col h2{margin-top:.2em}
.list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.dim{opacity:.6}
.svc-form .cols{grid-template-columns:2fr 1fr 1fr;margin-bottom:8px}.svc-form input{margin-bottom:0}.svc-form>input{margin:8px 0}
.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-actions .check{margin:0}
.table{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:.95rem}
.table th{text-align:left;background:var(--sand);padding:10px 12px;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.table td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:top}
.order-row{display:flex;justify-content:space-between;gap:16px;margin-bottom:12px}.order-row.canceled,.order-row.done{opacity:.7}
.order-side{text-align:right;min-width:150px}.order-side form{display:grid;gap:6px;margin-top:8px}.note{font-style:italic;color:var(--ink-soft);margin-top:4px}
.notice{margin-bottom:10px}.notice.unread{border-left:4px solid var(--accent)}pre.plain{font:inherit;white-space:pre-wrap;margin:6px 0 0;color:var(--ink-soft)}
details.danger{margin-top:28px;color:var(--ink-soft)}details.danger summary{cursor:pointer}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:12px}.stats strong{display:block;font-family:var(--serif);font-size:1.6rem}.stats small{color:var(--ink-soft)}

/* prose / pricing */
.prose{max-width:720px;margin:0 auto}.prose h2{margin-top:1.4em}.prose li{margin:.3em 0}
.price-card{max-width:520px;margin:20px auto;text-align:center;padding:32px}
.price-big{font-family:var(--serif);font-size:3.4rem;font-weight:700;color:var(--accent-ink)}.price-big small{font:600 1.1rem var(--sans);color:var(--ink-soft)}
.checks{list-style:none;padding:0;text-align:left;margin:20px auto;max-width:400px}.checks li{padding:6px 0 6px 28px;position:relative}.checks li::before{content:"✓";position:absolute;left:4px;color:var(--green);font-weight:700}

@media (max-width:820px){
  .biz-body,.order-grid,.two-col{grid-template-columns:1fr}
  .three-up{grid-template-columns:1fr}.foot{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}
  .cols{grid-template-columns:1fr}.svc-form .cols{grid-template-columns:1fr 1fr}.svc-form .cols input:first-child{grid-column:1/-1}
  .order-row{flex-direction:column}.order-side{text-align:left}
  nav a{margin-left:12px;font-size:.9rem}.nav{height:58px}
}
@media (max-width:520px){h1{font-size:1.9rem}}
/* honeypot: off-screen, never shown to people */
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.cf-turnstile{margin:8px 0 12px}
/* v5: business photos, ratings, schedule, referrals */
.biz-card.has-cover{padding-top:0;overflow:hidden}.biz-card .cover{display:block;width:calc(100% + 44px);margin:0 -22px 14px;aspect-ratio:16/9;object-fit:cover}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0 20px}.gallery a{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--sand)}
.gallery a.lead{grid-column:span 2;grid-row:span 2}.gallery img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}.gallery a.lead img{aspect-ratio:auto;min-height:100%}
.rating{white-space:nowrap}.stars{color:#c9932e;letter-spacing:.05em}.stars.big{font-size:1.8rem;margin:.2em 0}
.reviews{margin-top:36px}.review .stars{font-size:1.1rem}.review p{margin:.4em 0}
.star-pick{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px;margin:12px 0 4px}.star-pick input{display:none}
.star-pick label{font-size:2.2rem;color:var(--line);cursor:pointer;line-height:1}.star-pick label:hover,.star-pick label:hover~label,.star-pick input:checked~label{color:#c9932e}
.sched{list-style:none;padding:0;margin:4px 0}.sched li{display:flex;gap:10px;font-size:.92rem;padding:2px 0}.sched li span{width:34px;font-weight:700;color:var(--ink-soft)}.sched li.off{color:var(--ink-soft);opacity:.7}
.sched-table td{padding:6px 8px}.sched-table .check{margin:0}
.referral-box{border-style:solid;background:var(--green-soft);border-color:#c9d8b9}.referral-card{max-width:420px;margin:16px auto;text-align:center;background:var(--green-soft);border-color:#c9d8b9}
.code-big{font-family:var(--serif);font-size:2rem;font-weight:700;letter-spacing:.08em;margin:.2em 0;color:var(--accent-ink)}
@media (max-width:820px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery a.lead{grid-column:span 2;grid-row:auto}}

/* v6: banner hero — photo band with an overlapping card, so the headline never fights the picture */
.hero-band{margin:-24px calc(50% - 50vw) 0;width:100vw;background:var(--sand)}
.hero-img{display:block;width:100%;height:clamp(260px,38vw,520px);object-fit:cover;object-position:center 35%}
.hero-panel{position:relative;z-index:1;width:min(1040px,100% - 32px);margin:-120px auto 0;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 40px -18px rgba(60,40,10,.35),0 1px 2px rgba(60,40,10,.06);padding:32px 36px 28px}
.hero-panel h1{font-size:clamp(2.2rem,4.4vw,3.4rem);max-width:15ch;margin:.15em 0 .3em}
.hero-panel .lede{max-width:56ch;margin:0 0 .6em}
.hero-search{display:flex;gap:8px;max-width:600px;margin-top:16px;background:#fff;padding:6px;border-radius:12px;border:1px solid var(--tan)}
.hero-search input{border:0;background:transparent;font-size:1.05rem;padding:8px 10px}.hero-search input:focus{outline:none}
.hero-search:focus-within{outline:2px solid var(--tan);border-color:var(--tan-deep)}
.hero-search .btn{white-space:nowrap}
.hero-links{margin:14px 0 0;color:var(--ink-soft)}
.no-photo .hero-panel{margin-top:16px}
.section-head a{white-space:nowrap}
@media (max-width:820px){
  .hero-img{height:min(56vw,320px);object-position:center 45%}
  .hero-panel{margin-top:-40px;padding:22px 20px 20px;border-radius:14px}
  .hero-search{max-width:none;padding:4px}.hero-search .btn{padding:10px 14px}
}
@media (max-width:600px){.nav{height:56px}.brand{font-size:1.35rem}}
/* v7: rater round 1 */
.hero-band{background:var(--cream)}
.hero-panel{width:min(1008px,100% - 32px);display:grid;grid-template-columns:1.25fr .9fr;gap:36px;align-items:center}
.hero-points{list-style:none;margin:0;padding:22px 0 22px 30px;border-left:1px solid var(--line);display:grid;gap:18px}
.hero-points li{display:grid;gap:2px;padding-left:22px;position:relative}
.hero-points li::before{content:"";position:absolute;left:0;top:.45em;width:10px;height:10px;border-radius:50%;background:var(--tan-deep)}
.hero-points strong{font-family:var(--serif);font-size:1.1rem}.hero-points span{color:var(--ink-soft);font-size:.95rem;line-height:1.45}
a.biz-card-empty{border-style:dashed;background:transparent;box-shadow:none;display:flex;flex-direction:column;justify-content:center}.biz-card-empty h3{margin-top:0}
/* nav: links on wide screens, a menu on phones (no JS: <details>) */
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;width:40px;height:40px;display:grid;place-content:center;gap:5px;border-radius:10px;border:1px solid var(--line);background:var(--paper)}
.menu summary::-webkit-details-marker{display:none}.menu summary span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px}
.menu-panel{position:absolute;right:0;top:48px;min-width:220px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px;display:grid;z-index:20}
.menu-panel a{padding:10px 12px;border-radius:8px;color:var(--ink);font-weight:600;margin:0}.menu-panel a:hover{background:var(--sand);text-decoration:none}
/* business page */
.biz-head{padding:0 0 4px}.biz-head .chips{margin:0 0 8px}.biz-head h1{margin-top:0}
.services li.svc{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"name price act" "desc price act";gap:2px 20px;align-items:center;padding:16px 0}
.svc-name{grid-area:name;font-weight:700}.svc-desc{grid-area:desc;margin:0;font-size:.92rem;color:var(--ink-soft)}.svc-price{grid-area:price}.svc-act{grid-area:act}
/* booking form */
.coupon-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.coupon-row .btn{margin-top:26px}
.total-line{background:var(--info-soft);border:1px solid var(--line);border-radius:10px;padding:8px 14px;margin:6px 0 16px}
.total-line .row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--line)}.total-line .row:last-child{border-bottom:0}
.pay-static{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ink-soft)}
@media (max-width:820px){
  .hero-panel{grid-template-columns:1fr;gap:8px}.hero-points{border-left:0;border-top:1px solid var(--line);padding:18px 0 0;gap:12px}
  .svc-desc{margin-bottom:6px}
  .filters button{grid-column:1/-1}
  .desktop-only{display:none}
}
@media (max-width:600px){
  .nav-links{display:none}.menu{display:block}
}
/* v8: rater round 2 */
.points-strip{display:none;list-style:none;margin:14px 0 0;padding:0;gap:6px 18px;flex-wrap:wrap;color:var(--ink-soft);font-size:.92rem}
.points-strip li{padding-left:16px;position:relative}.points-strip li::before{content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;border-radius:50%;background:var(--tan-deep)}
.mobile-only{display:none}
.svc-price{min-width:118px;text-align:right;font-variant-numeric:tabular-nums}.svc-price small{display:block;font:.78rem var(--sans);color:var(--ink-soft);margin-top:-2px}
.pay-static{background:transparent;border:0;padding:4px 0 0;font-size:.95rem}
.h-book{font-size:clamp(1.7rem,3.2vw,2.4rem);margin-top:0}.order .eyebrow{margin-bottom:2px}
@media (min-width:821px){.span-2{grid-column:span 2}.span-3{grid-column:span 3}}
@media (max-width:820px){
  .hero-points{display:none}.points-strip{display:flex}
  .mobile-only{display:block}.contact-line{margin:4px 0 0}.contact-line .btn{margin:0 6px 6px 0}
  .services li.svc{grid-template-columns:1fr auto;grid-template-areas:"name price" "desc desc" "act act";gap:4px 14px;align-items:start}
  .svc-act{justify-self:end}.svc-act .btn{display:inline-block;padding:8px 22px}
  .section-head{flex-direction:column;align-items:flex-start;gap:0}.section-head h2{margin-bottom:.2em}.section-head a{margin-bottom:12px}
  .biz-head .lede{margin-bottom:.4em}.biz-main h2{margin-top:1.2em}
}
/* v9: rater round 3 */
.nav-btn{border:1px solid var(--tan-deep);color:var(--accent-ink)!important;padding:7px 14px;border-radius:999px}.nav-btn:hover{background:var(--sand)}
.biz-card-empty{justify-content:center;gap:10px}.biz-card-empty h3{margin:0 0 4px}.biz-card-empty p{margin:0}.biz-card-empty .btn{align-self:flex-start;margin-top:6px}
a.span-2,a.span-3{flex-direction:row;align-items:center;justify-content:space-between}.span-2 .btn,.span-3 .btn{align-self:center;margin:0 0 0 24px;white-space:nowrap}
.points-strip{font-size:.98rem;line-height:1.5;gap:8px 22px}.points-strip li{padding-left:18px}.points-strip li::before{width:8px;height:8px;top:.55em}
.count{font:600 1rem var(--sans);color:var(--ink-soft);background:var(--sand);padding:2px 10px;border-radius:999px;vertical-align:middle;margin-left:6px}
/* one section rhythm on the business page */
.biz-head{margin-bottom:8px}.biz-head .lede{margin-bottom:.3em}.biz-main>section{margin-top:40px}.biz-main>section:first-of-type{margin-top:28px}.biz-main section h2{margin-top:0}
.h-book{font-size:clamp(1.45rem,3.2vw,2.4rem);line-height:1.2}
@media (max-width:820px){
  .services li.svc{grid-template-areas:"name price" "desc act";align-items:center;gap:2px 14px}.svc-desc{margin:0;align-self:center}.svc-act{align-self:center}
  .contact-line .btn{padding:9px 16px}
  .biz-main>section{margin-top:32px}.biz-main>section:first-of-type{margin-top:22px}
  a.span-2,a.span-3{flex-direction:column;align-items:flex-start}.span-2 .btn,.span-3 .btn{margin:6px 0 0}
}
@media (max-width:600px){.nav-btn{display:none}}
/* v10: final polish after round 4 */
.svc-price small,.price small{font-size:.82rem;color:#5c4d3b}.biz-meta{color:#5c4d3b}
.nav-btn{padding:9px 16px}
a.span-2,a.span-3{align-self:start}a.span-2 .btn,a.span-3 .btn{align-self:center}a.biz-card-empty .btn{align-self:flex-start}
input[type=date],input[type=number]{font-family:var(--sans);color:var(--ink)}input[type=date]::-webkit-calendar-picker-indicator{opacity:.6}
input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
/* v11: header spans the full window; the page content stays on the 1040px grid */
.site-header .wrap.nav{max-width:none;padding:0 28px}
@media (max-width:820px){.site-header .wrap.nav{padding:0 16px}}
/* v12: setup checklist + payment simulator */
.setup{max-width:720px;margin:20px auto}.setup .page-head h2{margin:0}
.checklist{list-style:none;padding:0;margin:12px 0 18px;display:grid;gap:6px}.checklist a{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:10px;color:inherit}.checklist a:hover{background:var(--sand);text-decoration:none}
.checklist .tick{flex:0 0 26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-content:center;font-weight:700;color:#fff;margin-top:2px}.checklist .done .tick{background:var(--green);border-color:var(--green)}
.checklist small{display:block;color:var(--ink-soft)}
.sim-banner{border:2px dashed var(--warn);background:var(--warn-soft)}
.sim-card .row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line)}.sim-card .row.total{font-weight:700;font-size:1.1rem;border-bottom:0}
.fake-card{display:flex;justify-content:space-between;font-family:ui-monospace,monospace;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:14px 0;color:var(--ink-soft)}
/* v13: templates wizard, info/page split, inline photos, swipeable carousel */
.wizard-head{max-width:720px;margin:8px auto 20px;text-align:center}.wizard-head h1{margin:.1em 0 .3em}
.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
a.tpl{display:flex;flex-direction:column;gap:4px;min-height:190px}.tpl-icon{font-size:1.8rem;line-height:1;margin-bottom:6px}.tpl h3{margin:0}.tpl p{margin:0}.tpl-meta{margin-top:auto!important;font-size:.82rem;color:var(--tan-deep);font-weight:700;padding-top:10px}
a.tpl-blank{border-style:dashed;background:transparent;box-shadow:none}
.tab-intro{margin:-6px 0 16px}
.content-editor{grid-template-columns:1.1fr 1fr}.content-editor .form h3:first-child{margin-top:0}
.photo-panel h3{margin-top:0;display:flex;justify-content:space-between;align-items:baseline}
.empty-photo{border:2px dashed var(--line);border-radius:12px;padding:28px 18px;text-align:center;color:var(--ink-soft);margin-bottom:14px}
.file-drop{display:flex;gap:12px;align-items:center;border:2px dashed var(--tan);border-radius:12px;padding:14px;cursor:pointer;background:var(--paper);margin:14px 0 10px}
.file-drop input{width:auto;flex:0 0 auto;max-width:190px;font-size:.85rem}.file-drop span{display:grid}.file-drop small{color:var(--ink-soft)}
.caption-row{grid-template-columns:1fr auto;gap:8px}.caption-row .btn{white-space:nowrap}
.thumb-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:8px}.thumb-list li{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
.thumb-list img{width:64px;height:48px;object-fit:cover;border-radius:6px}.thumb-cap{font-size:.92rem}
/* carousel */
.carousel{position:relative;border-radius:14px;overflow:hidden;background:var(--sand);border:1px solid var(--line);margin:4px 0 22px}
.carousel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}.carousel-track::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;scroll-snap-align:start;margin:0;position:relative}.slide img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;user-select:none}
.slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 10px;color:#fff;font-size:.9rem;background:linear-gradient(transparent,rgba(30,20,10,.65))}
.car-btn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(252,248,241,.9);color:var(--ink);font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:var(--shadow);display:none}
.car-btn.prev{left:12px}.car-btn.next{right:12px}.car-btn:hover{background:#fff}
.car-dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:6px}.car-dots button{width:8px;height:8px;border-radius:50%;border:0;background:rgba(255,255,255,.55);padding:0;cursor:pointer}.car-dots button[aria-selected=true]{background:#fff;width:20px;border-radius:4px}
.car-count{position:absolute;top:10px;right:12px;background:rgba(30,20,10,.55);color:#fff;font-size:.78rem;padding:3px 8px;border-radius:999px}
.carousel:hover .car-btn,.carousel:focus-within .car-btn{display:block}
#preview .slide img{aspect-ratio:4/3}
@media (max-width:820px){.content-editor{grid-template-columns:1fr}.car-btn{display:none!important}.slide figcaption{display:none}}
/* v14: styled file picker, compact template rows on phones */
.file-drop input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.file-drop{position:relative}
.file-icon{flex:0 0 44px;height:44px;border-radius:50%;background:var(--sand);display:grid;place-content:center;font-size:1.6rem;color:var(--accent-ink)}
.file-drop:hover,.file-drop:focus-within{border-color:var(--tan-deep);background:var(--info-soft)}.file-name{display:block;font-size:.85rem;color:var(--accent-ink);font-weight:600;margin-top:2px}.file-drop.has-file{border-style:solid}
@media (max-width:820px){
  .tpl-grid{grid-template-columns:1fr;gap:10px}
  a.tpl{flex-direction:row;align-items:center;min-height:0;gap:14px;padding:14px 16px}.tpl-icon{margin:0;flex:0 0 36px;text-align:center}.tpl h3{font-size:1.05rem}.tpl p.small{display:none}.tpl-meta{padding-top:2px;margin:0!important}
  a.tpl>span:not(.tpl-icon),a.tpl .tpl-body{display:block}
  .wizard-head{text-align:left;margin-bottom:12px}
}
.tpl-body{display:flex;flex-direction:column;gap:4px;flex:1}.tpl-body .tpl-meta{margin-top:auto!important}
/* v15: editor round 2 */
.tpl-icon{width:44px;height:44px;border-radius:50%;background:var(--sand);color:var(--accent-ink);font:700 .95rem var(--serif);display:grid;place-content:center;letter-spacing:.04em}
.needs-you{background:var(--green-soft);border:1px solid #c9d8b9;border-radius:10px;padding:10px 14px;font-size:.95rem;text-align:left;display:inline-block}
::placeholder{color:#a3937f;font-style:italic;opacity:1}
.file-drop{flex-direction:row;gap:14px}.file-drop.drag{border-color:var(--green);background:var(--green-soft)}.file-preview{width:72px;height:54px;object-fit:cover;border-radius:8px;flex:0 0 72px}.file-drop.has-file .file-icon{display:none}
.caption-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}
.thumb-list li{grid-template-columns:64px 1fr;grid-template-areas:"img cap" "img act";gap:4px 12px;align-items:center}.thumb-list img{grid-area:img;height:52px}.thumb-cap{grid-area:cap;font-weight:600}.thumb-actions{grid-area:act;display:flex;gap:6px}.thumb-actions .btn[disabled]{opacity:.35;cursor:default}
.tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent)}
@media (min-width:821px){.tabs{-webkit-mask-image:none;mask-image:none}.thumb-list li{grid-template-columns:64px 1fr auto;grid-template-areas:"img cap act"}}
@media (max-width:820px){
  .file-drop{flex-direction:column;align-items:flex-start;gap:10px}.file-drop.has-file{flex-direction:row;align-items:center}
  .slide figcaption{display:block;font-size:.8rem;padding:20px 12px 8px}
  .desktop-only.tpl{display:none}
}
/* v16 */
.file-icon{flex:0 0 44px;width:44px;height:44px}
.caption-row[hidden]{display:none}
.slide figcaption{padding:20px 14px 30px}.car-dots{bottom:9px}
@media (max-width:820px){.slide figcaption{padding:18px 12px 26px}}
/* v17: editor round 2 leftovers */
.car-btn{display:block;background:rgba(252,248,241,.75)}.car-dots button{width:10px;height:10px;position:relative}.car-dots button::after{content:"";position:absolute;inset:-8px}.car-dots button[aria-selected=true]{width:24px}
@media (max-width:820px){.car-btn{display:none!important}}
.tpl{position:relative}.tpl-cta{display:block;color:var(--accent);font-weight:600;margin-top:6px}.tpl .chev{display:none}
a.tpl:hover{border-color:var(--tan-deep)}
@media (max-width:820px){.tpl-cta{display:none}.tpl .chev{display:block;position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:1.6rem;color:var(--tan-deep)}a.tpl{padding-right:40px}.tpl-blank.desktop-only{display:flex}}
.notice-bar{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;background:var(--sand);border:1px solid var(--tan);border-radius:10px;padding:8px 14px;margin-bottom:16px;font-size:.92rem;color:var(--accent-ink)}.notice-bar a{margin-left:auto;font-weight:700}
.tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 64px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 64px),transparent)}
@media (min-width:821px){.tabs{-webkit-mask-image:none;mask-image:none}}
.field em{color:var(--accent);font-style:normal}
.tips{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.92rem}.tips h4{margin:0 0 6px;font-family:var(--serif);color:var(--ink)}.tips ul{padding-left:18px;margin:0}.tips li{margin:3px 0}
textarea[name=tagline]{resize:none;min-height:0}
/* v18: customer-first home, inline photos, requests */
.nav-quiet{color:var(--ink-soft)!important;font-weight:500!important}
.inline-photo{margin:14px 0}.inline-photo img{display:block;width:100%;border-radius:12px;border:1px solid var(--line)}.inline-photo figcaption{font-size:.85rem;color:var(--ink-soft);margin-top:6px}
.inline-photo.side{float:right;width:min(42%,260px);margin:4px 0 10px 18px}.inline-photo.wide{clear:both}
.biz-main section::after{content:"";display:block;clear:both}
.svc-photo{grid-area:img;width:72px;height:54px;object-fit:cover;border-radius:8px}
.services li.svc:has(.svc-photo){grid-template-columns:auto 1fr auto auto;grid-template-areas:"img name price act" "img desc price act"}
.photo-pick{width:auto;max-width:200px;padding:6px 8px;font-size:.9rem}
.home-reviews .review{display:block;color:inherit}.home-reviews .review p{margin:.4em 0}
.request-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:36px;background:var(--green-soft);border-color:#c9d8b9}.request-cta h2{margin:0 0 .2em}.request-cta p{margin:0}
.for-biz{margin:28px 0 0}
.request-form{max-width:680px;margin:0 auto}.request{margin-bottom:14px}.request-head{margin-bottom:6px}.reply-form{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
@media (max-width:820px){
  .request-cta{flex-direction:column;align-items:flex-start}
  .services li.svc:has(.svc-photo){grid-template-columns:auto 1fr auto;grid-template-areas:"img name price" "img desc act"}.svc-photo{width:56px;height:42px}
  .inline-photo.side{float:none;width:100%;margin:10px 0}
  nav .nav-quiet{display:none}
}
.inline-photo.wide img{max-height:420px;object-fit:cover}
/* v19: customer-first round 2 */
.biz-card .cover-empty{display:grid;place-content:center;background:linear-gradient(160deg,var(--sand),#e2d2b6);color:var(--tan-deep);font:700 1.6rem var(--serif);letter-spacing:.06em}
.grid-2{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));max-width:720px}
.photo-row{display:grid;grid-template-columns:minmax(180px,38%) 1fr;gap:18px;align-items:center;margin:8px 0 14px}.photo-row p{margin:0}.inline-photo.block{margin:0}
.svc-photo-empty{display:block;background:transparent}
.services:not(.has-photos) .svc-photo-empty{display:none}
.services.has-photos li.svc{grid-template-columns:auto 1fr auto auto;grid-template-areas:"img name price act" "img desc price act"}
.token-legend{font-size:.85rem;color:var(--ink-soft);margin:-6px 0 14px;line-height:1.7}.token-legend .tok{display:inline-block;margin-right:10px}.token-legend code{font-size:.8rem}
.thumb-cap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.requests-wrap{max-width:760px;margin:0 auto}.request-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:820px){
  .photo-row{grid-template-columns:96px 1fr;gap:12px;align-items:start}.photo-row .inline-photo img{aspect-ratio:1;object-fit:cover}
  .inline-photo.side{float:left;width:120px;margin:4px 14px 6px 0}.inline-photo.wide img{max-height:200px}
  .services.has-photos li.svc{grid-template-columns:auto 1fr auto;grid-template-areas:"img name price" "img desc act"}
}
/* v20: final nits */
.thumb-img{position:relative;grid-area:img;display:block;width:64px}.thumb-img img{width:64px;height:52px}
.cover-badge{position:absolute;left:0;bottom:0;background:var(--accent);color:#fff;font-size:.62rem;font-weight:700;padding:2px 6px;border-radius:0 6px 0 6px;letter-spacing:.04em}
.flash-insert{outline:2px solid var(--green);transition:outline .3s}
.inline-photo.wide img{aspect-ratio:3/2;max-height:420px}.inline-photo.wide.after-photo{max-width:60%}.inline-photo.wide.after-photo img{max-height:320px}
.photo-row .inline-photo figcaption{font-size:.78rem;color:var(--tan-deep);margin-top:4px}
.svc-photo-empty{display:grid;place-content:center;background:linear-gradient(160deg,var(--sand),#e2d2b6);color:var(--tan-deep);font:700 .8rem var(--serif)}
@media (max-width:820px){.inline-photo.wide.after-photo{max-width:100%}.photo-row .inline-photo figcaption{display:none}}
/* v21: replies, scheduling, flyer */
.review-reply{margin-top:10px;padding:10px 12px;border-left:3px solid var(--tan);background:var(--info-soft);border-radius:0 8px 8px 0;font-size:.95rem}.review-reply strong{display:block;font-size:.85rem;color:var(--accent-ink);margin-bottom:2px}.review-reply p{margin:0}
.sched-row{display:flex;gap:6px;align-items:center}.sched-row input{width:auto;padding:6px 8px;font-size:.88rem}
.order-side form{display:grid;gap:6px}


/* v23: the flyer — letter sheet, everything inside a 0.4in safe margin */
.flyer-body{background:#e8e2d6;margin:0;padding:24px;font-family:var(--sans);color:var(--ink)}
.flyer-tools{max-width:8.5in;margin:0 auto 16px;display:flex;gap:10px;align-items:center}
.fl{--fl-accent:#7a5b32;--fl-tint:#e9dcc6;width:8.5in;height:11in;margin:0 auto;background:#fff;box-shadow:0 10px 40px -12px rgba(50,35,15,.35);padding:.4in;box-sizing:border-box;display:grid;grid-template-rows:auto auto auto 1fr auto auto;gap:0;overflow:hidden;position:relative;color:#2b2318}
.fl-band{display:flex;justify-content:space-between;align-items:center;padding:.1in .22in;background:var(--fl-accent);color:#fff;border-radius:10px;font:700 .72rem var(--sans);letter-spacing:.12em;text-transform:uppercase}
.fl-photo{height:2.6in;overflow:hidden;background:var(--fl-tint);border-radius:0 0 12px 12px;margin-top:.1in}.fl-photo img{width:100%;height:100%;object-fit:cover;display:block}
.fl-head{padding:.26in 0 .12in}.fl-head h1{font:900 2.5rem/1.06 var(--serif);margin:0;letter-spacing:-.012em;color:var(--fl-accent);max-width:7in}
.fl-sub{font-size:1.12rem;color:#3f3527;margin:.1in 0 0;max-width:6.4in;line-height:1.35}
.fl-cta{margin:.14in 0 0;font-size:1.05rem;padding:.09in .16in;background:var(--fl-tint);border-left:5px solid var(--fl-accent);border-radius:0 8px 8px 0;display:inline-block}.fl-cta b{color:var(--fl-accent)}
.fl-body{display:grid;grid-template-columns:1fr 2.2in;gap:.32in;padding:.14in 0 .06in;align-items:start;min-height:0;overflow:hidden}
.fl-svc{display:flex;justify-content:space-between;gap:.25in;padding:.11in 0;border-bottom:1px solid #d9cbb3;align-items:baseline}
.fl-svc strong{display:block;font-size:1.06rem}.fl-svc span{display:block;font-size:.9rem;color:#4b3f31;margin-top:2px}
.fl-price{font:700 1.4rem var(--serif);color:var(--fl-accent);white-space:nowrap;text-align:right}.fl-price small{display:block;font:.76rem var(--sans);color:#4b3f31;font-weight:600}
.fl-note{margin:.14in 0 0;font-size:.92rem;color:#3f3527;font-style:italic}
.fl-quote{margin:.22in 0 0;padding:.14in .18in;background:var(--fl-tint);border-radius:10px}.fl-quote p{margin:.04in 0;font:500 1.05rem/1.4 var(--serif)}.fl-quote small{color:#4b3f31;font-size:.8rem}
.fl-stars{color:#b8860b;letter-spacing:.05em}
.fl-side{display:grid;gap:.14in;text-align:center;align-content:start}
.fl-qr{background:#fff;border:2px solid var(--fl-tint);border-radius:14px;padding:.14in .14in .1in;display:grid;gap:.08in;justify-items:center}.fl-qr svg{width:1.7in;height:1.7in;padding:.06in;box-sizing:content-box}
.fl-qr span{font:700 .95rem var(--sans);color:var(--fl-accent);word-break:break-all}
.fl-rating{font-size:.9rem;color:#3f3527}
.fl-contact{display:grid;gap:1px}.fl-k{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#5c4d3b}.fl-contact strong{font-size:1.02rem}.fl-email{font-size:.86rem!important;word-break:break-all}
.fl-coupon{margin:.1in 0 .16in;border:3px dashed var(--fl-accent);border-radius:14px;padding:.14in .22in;display:flex;gap:.28in;align-items:center;background:#fff}
.fl-coupon-code{font:900 1.65rem var(--serif);letter-spacing:.06em;color:var(--fl-accent);white-space:nowrap}.fl-coupon strong{font-size:1.05rem}.fl-coupon small{color:#3f3527;line-height:1.35}
.fl-tabs{display:grid;grid-template-columns:repeat(7,1fr);border-top:2px dashed #9a7a52;height:1.15in;align-self:end}
.fl-tabs span{border-right:2px dashed #9a7a52;display:flex;justify-content:center;align-items:center;gap:3px;padding:.05in 0;overflow:hidden}.fl-tabs span:last-child{border-right:0}
.fl-tabs b,.fl-tabs i{writing-mode:vertical-rl;transform:rotate(180deg);font-style:normal;white-space:nowrap;max-height:1.05in;overflow:hidden}
.fl-tabs b{font-size:.8rem;color:#2b2318}.fl-tabs i{font-size:.74rem;color:#3f3527;font-weight:600}
.fl-foot{align-self:end;text-align:center;padding:.14in 0 0;font-size:.85rem;color:#3f3527;border-top:1px solid #d9cbb3}
/* density */
.fl.dense .fl-photo{height:2.1in}.fl.tight .fl-photo{height:1.7in}
.fl.dense .fl-head h1,.fl.tight .fl-head h1{font-size:2.15rem}.fl.dense .fl-head,.fl.tight .fl-head{padding-top:.18in}
.fl.dense .fl-svc{padding:.08in 0}.fl.tight .fl-svc{padding:.05in 0}.fl.tight .fl-svc span{display:none}.fl.dense .fl-svc span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:3.6in}
.fl.dense .fl-price,.fl.tight .fl-price{font-size:1.2rem}
.fl.roomy.no-photo .fl-head h1{font-size:3rem}.fl.roomy .fl-svc{padding:.16in 0}.fl.roomy .fl-svc strong{font-size:1.2rem}.fl.roomy .fl-price{font-size:1.7rem}.fl.roomy.no-photo .fl-qr svg{width:2in;height:2in}
/* dashboard preview */
.flyer-editor{display:grid;grid-template-columns:380px 1fr;gap:24px;align-items:start}
.flyer-preview{background:#e8e2d6;border-radius:14px;padding:20px;overflow:hidden}
.flyer-scale{width:calc(8.5in * .68);height:calc(11in * .68)}.flyer-scale .fl{transform:scale(.68);transform-origin:top left;box-shadow:0 6px 24px -10px rgba(50,35,15,.4)}
.flyer-form .btn-block{margin-top:6px}
@media (max-width:1100px){.flyer-editor{grid-template-columns:1fr}.flyer-scale{width:calc(8.5in * .5);height:calc(11in * .5)}.flyer-scale .fl{transform:scale(.5)}}
@media (max-width:600px){.flyer-scale{width:calc(8.5in * .4);height:calc(11in * .4)}.flyer-scale .fl{transform:scale(.4)}}
@media print{.no-print{display:none!important}.flyer-body{background:#fff;padding:0}.fl{box-shadow:none;margin:0;width:8.5in;height:11in}@page{size:letter portrait;margin:0}}
/* coupons table */
.rule-chips{display:flex;flex-wrap:wrap;gap:4px}.rule-chips .chip{font-size:.7rem;padding:2px 8px;background:var(--info-soft)}
.coupon-table td{vertical-align:middle}.nowrap{white-space:nowrap}
.more{display:inline-block;position:relative}.more summary{list-style:none;cursor:pointer}.more summary::-webkit-details-marker{display:none}
.more-panel{position:absolute;right:0;top:36px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:grid;gap:4px;z-index:5;min-width:130px}.more-panel .btn{width:100%;text-align:left}
/* v23b */
.fl-side,.fl-contact,.fl-services{min-width:0}.fl-qr{max-width:100%;box-sizing:border-box}.fl-qr svg{max-width:100%}
.fl-qr span{word-break:normal;overflow-wrap:anywhere;font-size:.88rem}
.fl.roomy.no-photo .fl-qr svg{width:1.85in;height:1.85in}
.fl-why{margin:.2in 0 0;display:grid;gap:.05in;font-size:.95rem;color:#3f3527}.fl-why strong{color:var(--fl-accent);font-family:var(--serif);font-size:1.1rem;margin-bottom:.03in}.fl-why span{padding-left:.22in;position:relative}.fl-why span::before{content:"✓";position:absolute;left:0;color:var(--fl-accent);font-weight:700}
.fl.roomy .fl-body{align-items:stretch}.fl.roomy .fl-services{display:flex;flex-direction:column}.fl.roomy .fl-quote{margin-top:auto}
.fl.roomy.no-photo .fl-head{padding-top:.3in}.fl.roomy.no-photo .fl-sub{font-size:1.25rem}.fl.roomy.no-photo .fl-cta{font-size:1.12rem}
/* v23c */
.fl-head h1{text-wrap:balance}
.fl.dense .fl-svc span{white-space:normal;overflow:visible;text-overflow:clip;max-width:none;line-height:1.25}
.fl-tabs{height:1.45in}.fl-tabs b,.fl-tabs i{max-height:1.3in;overflow:visible}
.fl-body{align-items:stretch}.fl-side{grid-template-rows:1fr auto auto;height:100%}.fl-qr{align-content:center}
.rule-chips .chip-place{background:transparent;border:1px solid var(--tan);color:var(--ink-soft)}
/* v23d: keep the side column whole when there is a photo */
.fl.has-photo .fl-photo{height:2.4in}.fl.has-photo .fl-qr svg{width:1.45in;height:1.45in}.fl.has-photo .fl-qr{padding:.1in .1in .08in}
.fl-tabs{height:1.35in}.fl-tabs b,.fl-tabs i{max-height:1.22in}
.fl-side{grid-template-rows:auto auto auto;align-content:space-between}
/* v23e: density wins over the photo rule */
.fl.has-photo.dense .fl-photo{height:2.05in}.fl.has-photo.tight .fl-photo{height:1.7in}
.fl.dense .fl-cta,.fl.tight .fl-cta{font-size:.98rem;padding:.07in .14in;margin-top:.1in}.fl.dense .fl-head,.fl.tight .fl-head{padding-bottom:.08in}
.fl.dense .fl-body,.fl.tight .fl-body{padding-top:.1in}
.fl.has-photo.dense .fl-photo{height:1.85in}.fl.dense .fl-coupon{padding:.11in .2in;margin-bottom:.12in}.fl.dense .fl-note{margin-top:.1in}
/* v23f: rater round 3 */
.fl-tabs{height:1.6in}.fl-tabs b,.fl-tabs i{max-height:1.45in}
.fl.has-photo.dense .fl-photo{height:1.7in}.fl.has-photo .fl-photo{height:2.2in}.fl.has-photo.tight .fl-photo{height:1.5in}
.fl-side{align-content:start;gap:.1in;height:auto}.fl-body{align-items:start}
.fl-coupon{margin-bottom:.28in!important}
.fl-head h1.h-sm{font-size:2.1rem}.fl-head h1.h-xs{font-size:1.85rem}.fl.roomy.no-photo .fl-head h1.h-sm{font-size:2.45rem}.fl.roomy.no-photo .fl-head h1.h-xs{font-size:2.1rem}
.fl-band,.fl-photo,.fl-qr,.fl-coupon,.fl-quote,.fl-cta{border-radius:4px}.fl-photo{border-radius:0 0 4px 4px}.fl-cta{border-radius:0 4px 4px 0}
/* v23g: final flyer notes */
.fl.has-photo.dense .fl-photo{height:2.25in}.fl-photo img{object-position:center top}
.fl-cta{display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box}.fl-arrow{font-weight:700;color:var(--fl-accent);margin-left:.2in}
.fl-quote{text-align:left;margin-top:.06in;padding:.12in .14in}.fl-quote p{font-size:.98rem}
.trim-note{margin:-6px 0 12px}
/* v23h: fit four services + note + coupon with a 2.1in photo that keeps its top edge */
.fl.has-photo.dense .fl-photo{height:2.1in}.fl.has-photo.dense .fl-head{padding-top:.14in;padding-bottom:.06in}.fl.has-photo.dense .fl-svc{padding:.065in 0}
.fl.has-photo.dense .fl-coupon{margin-bottom:.25in!important;padding:.1in .2in}.fl.has-photo.dense .fl-cta{margin-top:.08in}.fl.has-photo.dense .fl-body{padding-top:.08in}
.fl.has-photo.dense .fl-photo{height:1.95in}
/* v24: dashboard overview + wrapping phone tabs */
.overview{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;align-items:start}
.ov-head{display:flex;justify-content:space-between;align-items:baseline}.ov-head h3,.ov-side h3{margin:0 0 8px}.ov-side h3{margin-top:18px}.ov-side h3:first-child{margin-top:0}
.ov-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.ov-actions{display:flex;gap:6px;flex-shrink:0}
.ov-bookings h4{margin:18px 0 4px;font-family:var(--serif)}
.todo{margin-bottom:16px;background:var(--green-soft);border-color:#c9d8b9}.todo ul{margin:6px 0 0;padding-left:20px}.todo li{margin:2px 0}
@media (max-width:820px){
  .overview{grid-template-columns:1fr}.ov-row{flex-direction:column;align-items:flex-start}
  .tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:0;overflow:visible;-webkit-mask-image:none;mask-image:none;margin:8px 0 18px}
  .tabs a{padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:.9rem}.tabs a.on{background:var(--accent);color:#fff;border-color:var(--accent)}
}
.svc-cols label small{display:block;font-size:.72rem;color:var(--ink-soft);margin-bottom:2px}.order-box{display:flex;gap:6px;align-items:center}.order-box small{color:var(--ink-soft)}
a.notice{display:block;color:inherit}.notice-body{margin:4px 0 0;color:var(--ink-soft);font-size:.92rem}
.date-note{display:block;margin-top:4px;color:var(--accent-ink)}input:invalid + .date-note{color:var(--error)}
/* v24b: twelve tabs fit on desktop; wrap below 1100px */
.tabs a{padding:10px 11px;font-size:.93rem}
@media (max-width:1100px) and (min-width:821px){.tabs{flex-wrap:wrap;overflow:visible}.tabs a{padding:8px 10px}}
@media (max-width:820px){.dash-status{flex-wrap:wrap}.dash-status .pill{white-space:normal}}
/* v24c: two-row tabs, balanced overview, share row */
.dash-state{margin:0;font-size:.92rem;color:var(--ink-soft);display:flex;align-items:center;gap:6px}.dash-state .dot{width:8px;height:8px;border-radius:50%;background:var(--tan-deep)}.dash-state.ok .dot{background:var(--green)}.dash-state.warn .dot{background:var(--warn)}
.dash-head{align-items:flex-start}
.tabs{-webkit-mask-image:none;mask-image:none;overflow:visible;flex-wrap:wrap}
.tabs-daily{margin:14px 0 0;border-bottom:0}.tabs-daily a{font-size:1rem;padding:10px 14px}
.tabs-setup{margin:0 0 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:2px 0}.tabs-setup a{font-size:.9rem;padding:8px 11px;border-bottom-width:2px}
.tabs-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);padding:12px 10px 0 0;font-weight:700}
.overview{grid-template-columns:1.4fr 1fr}.ov-col{display:grid;gap:16px;align-content:start}.overview .card h3{margin-top:0}
.share-row{display:flex;gap:6px}.share-row input{font-family:ui-monospace,monospace;font-size:.9rem;background:var(--paper)}
.checklist .chev{margin-left:auto;color:var(--tan-deep);font-size:1.3rem;align-self:center}
@media (max-width:820px){
  .tabs-daily,.tabs-setup{display:flex;flex-wrap:wrap;gap:6px;border:0;padding:0}.tabs-daily{margin:10px 0 6px}.tabs-setup{margin:0 0 16px}
  .tabs-label{flex-basis:100%;padding:6px 0 0}
  .tabs-daily a{padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:.95rem}.tabs-daily a.on{background:var(--accent);color:#fff;border-color:var(--accent)}
  .tabs-setup a{padding:5px 10px;font-size:.85rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-soft)}.tabs-setup a.on{background:var(--sand);color:var(--ink);border-color:var(--tan)}
  .dash-status{width:100%}.dash-status .btn{flex:1;text-align:center}
}
/* v24d: phone overview is one column */
@media (max-width:820px){.overview{grid-template-columns:1fr}.ov-head{flex-wrap:wrap;gap:4px}}
/* v24e: final dashboard notes */
.inbox-sample .sample{opacity:.55;pointer-events:none}
.todo-rows{display:grid;gap:8px;margin-top:8px}.todo-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.todo-row>span{font-weight:600}
.dash-head{align-items:flex-end}.dash-status{margin-bottom:6px}
.checklist .chev{font-size:1.5rem;color:var(--accent)}.checklist a:active{background:var(--sand)}
/* set-up tabs: always open on desktop; a disclosure on phones */
.tabs-setup-wrap{margin:0 0 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:4px}
.tabs-setup-wrap>summary{list-style:none;cursor:default;pointer-events:none;padding:12px 10px 12px 0}.tabs-setup-wrap>summary::-webkit-details-marker{display:none}.tabs-setup-wrap>summary span{display:none}
.tabs-setup{margin:0;border:0;padding:0;flex:1}
@media (max-width:820px){
  .tabs-setup-wrap{display:block;border:0;margin:0 0 14px}.tabs-setup-wrap>summary{pointer-events:auto;cursor:pointer;padding:6px 0;display:inline-flex;gap:6px;align-items:center}.tabs-setup-wrap>summary span{display:inline;font-size:1.1rem;transition:transform .15s}.tabs-setup-wrap[open]>summary span{transform:rotate(90deg)}
  .tabs-setup{margin-top:6px}
}
/* v25: billing tab */
.bill-grid{margin-bottom:20px}.bill-grid .card h2{margin-top:0;font-size:1.3rem}
.bill-state{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.08rem;margin:0 0 10px}.bill-state .dot{width:10px;height:10px;border-radius:50%;background:var(--tan-deep)}.bill-state.ok .dot{background:var(--green)}.bill-state.warn .dot{background:var(--warn)}.bill-state.info .dot{background:var(--accent)}
.bill-facts{margin:8px 0 14px;display:grid;gap:6px}.bill-facts div{display:grid;grid-template-columns:130px 1fr;gap:10px;font-size:.95rem}.bill-facts dt{color:var(--ink-soft)}.bill-facts dd{margin:0}
.bill-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.btn-quiet{color:var(--ink-soft);border-color:transparent}.btn-quiet:hover{border-color:var(--line)}
.bill-how{margin-top:14px;color:var(--ink-soft);font-size:.92rem}.bill-how summary{cursor:pointer;color:var(--accent);font-weight:600}
.bill-table td,.bill-table th{padding:8px 10px}
/* v25b: billing on phones */
@media (max-width:820px){
  .bill-table th:nth-child(2),.bill-table td:nth-child(2){display:none}.bill-table td,.bill-table th{padding:8px 6px;font-size:.9rem}
  .bill-facts div{grid-template-columns:104px 1fr;gap:8px}.bill-facts dt{font-size:.85rem}
  .bill-actions .btn{flex:1;text-align:center}
}

/* v25c */
.pay-rows{list-style:none;margin:0;padding:0}.pay-rows li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.pay-rows li:first-child{border-top:0}.pay-rows .pill{vertical-align:middle}
.cancel-line{margin:14px 0 0;color:var(--ink-soft)}.cancel-line form{display:inline}.cancel-line button.link{font-weight:600}
@media (max-width:820px){.tabs-setup a.on{background:var(--accent);color:#fff;border-color:var(--accent)}}
/* v26: referral toggles, manual payouts, request grid + offers */
.indent{margin-left:26px}.payout-method{margin-top:14px}.payout-method .check{align-items:flex-start;margin:10px 0}.payout-method .check small{color:var(--ink-soft)}
.notify-card{margin-bottom:14px}.notify-card summary{cursor:pointer}.cat-checks{display:flex;flex-wrap:wrap;gap:4px 18px;margin:10px 0}.cat-checks .check{margin:4px 0}
.req-filters{grid-template-columns:220px auto;margin:0 0 18px}
.req-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.req-card{padding:0;overflow:hidden;display:flex;flex-direction:column}.req-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.req-body{padding:14px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}.req-body p{margin:.3em 0}.req-body .btn{align-self:flex-start;margin-top:auto}
.req-card.mine{flex-direction:row;gap:18px;padding:16px;align-items:flex-start}.req-card.mine img{width:180px;aspect-ratio:4/3;object-fit:cover;border-radius:10px;flex:0 0 180px}
.req-page{max-width:900px;margin:0 auto}
.offer-form{margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}
.offer{display:flex;flex-direction:column;gap:6px}.offer.accepted{border-color:var(--green)}.offer-head{display:flex;justify-content:space-between;align-items:center}.offer-price{font:700 1.6rem var(--serif);color:var(--accent-ink)}.offer-price small{display:block;font:.85rem var(--sans);color:var(--ink-soft)}
.pay-options.compact{gap:6px;margin:6px 0 10px}.pay-options.compact .pay-opt{padding:8px 10px}
@media (max-width:820px){.req-card.mine{flex-direction:column}.req-card.mine img{width:100%;flex:auto}.req-filters{grid-template-columns:1fr}}
/* v26b */
.req-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.req-nophoto{display:grid;place-content:center;aspect-ratio:4/3;background:var(--sand);color:var(--ink-soft);font-size:.9rem}
.req-filters{grid-template-columns:220px max-content}.req-body .pill{align-self:flex-start}
/* v26c: offer panel, done section, camera icon, dimmed sub-fields */
.offer-panel{grid-column:1/-1;border-color:var(--tan-deep);background:var(--info-soft)}.offer-panel h3{margin-top:0}.cols.three{grid-template-columns:1fr 1fr 1.4fr}
.done-requests{margin-top:24px}.done-requests>summary{cursor:pointer;color:var(--ink-soft);font-weight:600;margin-bottom:12px}.done-requests .req-card{opacity:.75}
.dim{opacity:.45}.file-icon.cam svg{display:block}
@media (max-width:820px){.cols.three{grid-template-columns:1fr}.offer-panel{grid-column:auto}}
/* v26d: rater polish */
.offer-rows{display:grid;gap:12px}.offer{display:grid;grid-template-columns:200px 1fr 220px;gap:18px;align-items:start}.offer-who{display:grid;gap:4px}.offer-note{margin:0}.offer-side{display:grid;gap:8px}.offer .accept-form{margin:0}
.req-grid.two{grid-template-columns:repeat(2,minmax(280px,1fr));max-width:900px}
.done-requests.card{padding:14px 18px}.done-requests>summary{margin:0}.done-requests[open]>summary{margin-bottom:14px}
.offer-panel{background:var(--paper);border-color:var(--line);border-left:4px solid var(--accent)}
.dim input,.dim select,.dim textarea{background:var(--cream);color:var(--ink-soft)}
.payout-method .check small{font-size:.86rem}.link-word{color:var(--accent);text-decoration:underline;font-weight:600}.payout-method[open]>summary .link-word{display:none}
@media (max-width:820px){.offer{grid-template-columns:1fr}.req-grid.two{grid-template-columns:1fr}}

.locked{background:var(--sand)!important;color:var(--ink-soft);cursor:not-allowed}.report-line{margin-top:18px}

/* v27: photo collections on the public page */
.photo-collection{display:grid;gap:10px;margin:14px 0}.photo-collection.n2{grid-template-columns:1fr 1fr}.photo-collection.n3{grid-template-columns:repeat(3,1fr)}.photo-collection.n4{grid-template-columns:repeat(2,1fr)}
.photo-collection figure{margin:0}.photo-collection img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.photo-collection figcaption{font-size:.82rem;color:var(--ink-soft);margin-top:4px}
@media (max-width:820px){.photo-collection.n3{grid-template-columns:1fr 1fr}}
/* v27: visual page editor */
.ed{margin:-8px 0 0}.ed-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.ed-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ed-menu{position:relative}.ed-menu summary{list-style:none;cursor:pointer}.ed-menu summary::-webkit-details-marker{display:none}
.ed-menu-panel{position:absolute;left:0;top:40px;z-index:20;width:min(560px,92vw);background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.ed-menu-panel p{grid-column:1/-1;margin:4px 6px 0}
.ed-tpl{text-align:left;background:transparent;border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer;font:inherit;color:inherit;display:grid;gap:2px}.ed-tpl small{color:var(--ink-soft)}.ed-tpl:hover{background:var(--sand)}
.ed-body{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start}
.ed-canvas{padding:28px 34px 22px;min-height:60vh}.ed-label{margin:0 0 4px;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--tan-deep);font-weight:700}.ed-label + .ed-blocks,.ed-label + .ed-tagline{margin-top:2px}
.ed-tagline{font-size:1.5rem;margin:0 0 22px;padding:6px 8px;border-radius:8px;outline:none;min-height:1.4em}.ed-tagline:focus{background:var(--info-soft)}
[contenteditable][data-placeholder]:empty::before{content:attr(data-placeholder);color:#a3937f;font-style:italic}
.ed-blocks{display:grid;gap:10px;min-height:120px;padding:4px 0;border-radius:10px}.ed-blocks.over{outline:2px dashed var(--tan-deep);outline-offset:6px}
.ed-block{position:relative;padding:8px 36px 8px 30px;border-radius:10px;border:1px solid transparent}.ed-block:hover{border-color:var(--line)}
.ed-block.over{outline:2px solid var(--green);outline-offset:2px;background:var(--green-soft)}.ed-block.over-top{box-shadow:0 -3px 0 0 var(--accent)}.ed-block.over-bottom{box-shadow:0 3px 0 0 var(--accent)}
.ed-handle{position:absolute;left:6px;top:10px;color:var(--tan-deep);cursor:grab;font-size:.9rem;letter-spacing:-2px;user-select:none;opacity:.5}.ed-block:hover .ed-handle{opacity:1}
.ed-x{position:absolute;right:6px;top:6px;border:0;background:transparent;color:var(--ink-soft);font-size:1.2rem;cursor:pointer;opacity:0;line-height:1}.ed-block:hover .ed-x{opacity:1}.ed-x:hover{color:var(--error)}
.ed-textarea{outline:none;line-height:1.55;padding:4px 6px;border-radius:6px;min-height:1.6em}.ed-textarea:focus{background:var(--info-soft)}
.ed-photos{display:grid;gap:8px}.ed-photos.n2{grid-template-columns:1fr 1fr}.ed-photos.n3{grid-template-columns:repeat(3,1fr)}.ed-photos.n4{grid-template-columns:repeat(2,1fr)}
.ed-pic{margin:0;position:relative}.ed-pic img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:grab}.ed-photos.n2 .ed-pic img,.ed-photos.n3 .ed-pic img,.ed-photos.n4 .ed-pic img{aspect-ratio:4/3}
.ed-pic figcaption{font-size:.85rem;color:var(--ink-soft);padding:4px 6px;outline:none;border-radius:6px;min-height:1.4em}.ed-pic figcaption:focus{background:var(--info-soft);color:var(--ink)}
.ed-pic-x{position:absolute;right:6px;top:6px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(252,248,241,.9);cursor:pointer;opacity:0}.ed-pic:hover .ed-pic-x{opacity:1}
.ed-cover{position:absolute;left:8px;top:8px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:999px}
.ed-empty{border:2px dashed var(--tan);background:var(--paper)}.ed-drop-hint{padding:26px 12px;text-align:center;color:var(--ink-soft);display:grid;gap:2px}.ed-drop-hint strong{color:var(--accent-ink)}
.ed-add{margin-top:14px;display:flex;gap:8px}.ed-blank{padding:24px;text-align:center}
.ed-side{position:sticky;top:80px;max-height:calc(100vh - 100px);overflow:auto}.ed-side h3{margin:0 0 4px;display:flex;justify-content:space-between;align-items:baseline}
.ed-library{display:grid;gap:8px;margin:10px 0 12px;padding:6px;border-radius:10px}.ed-library.over{outline:2px dashed var(--tan-deep)}
.ed-lib-item{display:grid;grid-template-columns:64px 1fr auto auto;gap:8px;align-items:center;padding:4px;border-radius:8px;border:1px solid var(--line);background:var(--paper);cursor:grab}.ed-lib-item:active{cursor:grabbing}.ed-lib-item.placed{opacity:.55}.ed-lib-item img{width:64px;height:48px;object-fit:cover;border-radius:6px;pointer-events:none}
.ed-lib-meta{display:grid;font-size:.85rem;line-height:1.25}.ed-lib-meta small{color:var(--ink-soft)}
.ed-star{border:0;background:transparent;font-size:1.15rem;color:var(--line);cursor:pointer;padding:2px 4px}.ed-star.on,.ed-star:hover{color:#c9932e}.ed-lib-x{border:0;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:1.1rem}.ed-lib-x:hover{color:var(--error)}
.ed.dragging .ed-empty{background:var(--green-soft);border-color:var(--green)}
@media (max-width:900px){.ed-body{grid-template-columns:1fr}.ed-side{position:static;max-height:none;order:-1}.ed-canvas{padding:18px 16px}.ed-block{padding:8px 30px 8px 24px}.ed-x,.ed-pic-x{opacity:1}}
/* v27b: editor polish + phone tap-to-place */
.ed-canvas{min-height:0;padding-bottom:24px}
.ed-handle{opacity:.4}.ed-x{opacity:0}.ed-block:hover .ed-x,.ed-block:focus-within .ed-x{opacity:.8}
.ed-textarea:hover,.ed-pic figcaption:hover{outline:1px dashed var(--tan);outline-offset:2px}
.ed-photos-btn,.ed-sheet{display:none}
@media (max-width:900px){
  .ed-side{order:2;display:none}.ed-side.open{display:block}
  .ed-photos-btn{display:inline-flex;gap:6px;align-items:center;position:fixed;right:16px;bottom:16px;z-index:30;box-shadow:var(--shadow);border-radius:999px;padding:12px 18px}.ed-count-badge{background:rgba(255,255,255,.25);border-radius:999px;padding:0 8px;font-size:.8rem}
  .ed-top{position:sticky;top:56px;z-index:25;background:var(--cream);padding:8px 0;margin:0 -16px 10px;padding-left:16px;padding-right:16px}.ed-crumb{display:none}.ed-tools{width:100%;justify-content:space-between}.ed-tools .btn-primary{margin-left:auto}
  .ed-lib-item{cursor:pointer}.ed-lib-item img{pointer-events:none}.ed-lib-meta small::after{content:" · tap to place"}
  .ed-pic-x,.ed-x{display:none}.ed-block .ed-x{display:block;opacity:.6}
  .ed-sheet{display:block;position:fixed;inset:0;background:rgba(51,42,31,.45);z-index:40}.ed-sheet[hidden]{display:none}
  .ed-sheet-box{position:absolute;left:0;right:0;bottom:0;background:var(--paper);border-radius:16px 16px 0 0;padding:16px;display:grid;gap:8px;max-height:80vh;overflow:auto}
  .ed-sheet-head{display:flex;gap:10px;align-items:center}.ed-sheet-head img{width:56px;height:42px;object-fit:cover;border-radius:6px}
  .ed-sheet-box button[data-place],.ed-sheet-box button[data-act]{text-align:left;font:inherit;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--ink)}.ed-sheet-box .sheet-cover{background:var(--info-soft)}
}
/* v27c */
.ed-menu-panel{left:auto;right:0}
@media (max-width:900px){
  .ed-tools{flex-wrap:nowrap;gap:6px}.ed-tools .btn{padding:8px 10px;font-size:.85rem;white-space:nowrap}.ed-state{font-size:.75rem;margin-left:auto}
  .ed-menu-panel{position:fixed;left:16px;right:16px;top:110px;width:auto;grid-template-columns:1fr;max-height:70vh;overflow:auto}
}

/* v27d */
.desk-only{display:inline}.phone-only{display:none}.ed-drop-hint .btn{margin:8px auto 0;justify-self:center}.ed-tpl-blank{border-style:dashed}
.biz-head .lede{text-wrap:balance}
@media (max-width:900px){.desk-only{display:none}.phone-only{display:inline}.ed-tagline{font-size:1.2rem}}

/* v28: nav sign out + admin */
.nav-form{display:inline;margin-left:18px}.nav-signout{background:none;border:0;font:inherit;font-weight:600;color:var(--ink-soft);cursor:pointer;padding:0}.nav-signout:hover{color:var(--ink)}
.nav-admin{color:var(--warn)!important}
.menu-signout{background:none;border:0;font:inherit;font-weight:600;color:var(--ink-soft);cursor:pointer;padding:10px 12px;text-align:left;width:100%}.menu-panel form{display:contents}
@media (max-width:600px){.nav-form{display:none}}

/* v28b */
.pay-choice{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:10px 0}.pay-choice>div{border:1px solid var(--line);border-radius:10px;padding:12px 14px}.pay-choice p{margin:4px 0 8px}
.fl-quote{overflow:hidden}.fl.dense .fl-quote,.fl.tight .fl-quote{display:none}
@media (max-width:820px){.pay-choice{grid-template-columns:1fr}}
.fl.has-photo .fl-quote{display:none}

/* v29: capacity + waitlist */
.full-banner{margin:8px 0 12px}.waitlist{margin-bottom:16px}.waitlist h3{margin-top:0;display:flex;justify-content:space-between}
