/* The Lemon Plans — site styles.
   Tokens first; everything else reads from them.
   Type: Minor Third scale (1.2), weights 400/500/600 only.
   Spacing: 4/8 grid. Breakpoint: one query, 768px (medium); 1280px is the content cap. */
@font-face{font-family:"Bricolage";src:url(/assets/fonts/bricolage-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Playfair";src:url(/assets/fonts/playfair-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Playfair";src:url(/assets/fonts/playfair-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}

:root{
  /* colour: canvas (L0), sheet (L1), head (L1 header/tab), one accent (leaf) + lemon highlight */
  --paper:#F3F6F0; --sheet:#FFFFFF; --head:#E8EDE5; --ink:#13231B; --muted:#4A5951; --faint:#5F6E66;
  --leaf:#1F5F4A; --leaf-hover:#174A39; --leaf-ink:#FFFFFF; --leaf-soft:#E3EEE7;
  --grid:#D5DDD2; --grid-strong:#B9C4B5; --lemon:#F2C94C; --pith:#FFF2BF; --pith-ink:#3D3205;
  --focus:#9A7405; --danger:#B42318; --edge:none;
  --display:"Bricolage","Inter",ui-sans-serif,system-ui,sans-serif;
  --text:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  /* type scale (rem) */
  --t-meta:.75rem; --t-sec:.875rem; --t-body:1rem; --t-1:1.2rem; --t-2:1.44rem; --t-3:1.728rem; --t-4:2.074rem; --t-5:2.488rem; --t-6:2.986rem; --t-7:3.583rem;
  /* spacing */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s6:24px; --s8:32px; --s12:48px; --s16:64px; --s24:96px;
  --vp-wide:1280px; --gutter:16px; --radius:12px; --radius-sm:8px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0E1512; --sheet:#151F1A; --head:#1A2520; --ink:#E4ECE7; --muted:#A9B6AE; --faint:#93A199;
    --leaf:#8FD9B4; --leaf-hover:#A9E5C7; --leaf-ink:#0B1310; --leaf-soft:#18271F;
    --grid:#27352E; --grid-strong:#3A4A42; --pith:#3B3413; --pith-ink:#FFE89A; --focus:#F2C94C; --danger:#FF9C8F;
    --edge:inset 0 1px 0 rgba(255,255,255,.05);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0E1512; --sheet:#151F1A; --head:#1A2520; --ink:#E4ECE7; --muted:#A9B6AE; --faint:#93A199;
  --leaf:#8FD9B4; --leaf-hover:#A9E5C7; --leaf-ink:#0B1310; --leaf-soft:#18271F;
  --grid:#27352E; --grid-strong:#3A4A42; --pith:#3B3413; --pith-ink:#FFE89A; --focus:#F2C94C; --danger:#FF9C8F;
  --edge:inset 0 1px 0 rgba(255,255,255,.05);
  color-scheme:dark;
}

/* Wedding pages: same structure, their own palette and display face */
.wed{
  --paper:#FBF6F4; --sheet:#FFFFFF; --head:#F4E8E8; --ink:#2B1E23; --muted:#5E4C53; --faint:#6F5D64;
  --leaf:#8E3553; --leaf-hover:#732A43; --leaf-ink:#FFFFFF; --leaf-soft:#F6E4E9;
  --grid:#EADBDC; --grid-strong:#D7C2C5; --pith:#FBEFD9; --pith-ink:#4A3510; --focus:#8E3553;
  --sage:#4F6B5B;
  --display:"Playfair",Georgia,"Times New Roman",serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .wed{
    --paper:#161113; --sheet:#1F181B; --head:#271E22; --ink:#F2E8EB; --muted:#C2B1B7; --faint:#AE9CA3;
    --leaf:#F0A9BC; --leaf-hover:#F6C2D0; --leaf-ink:#1E1216; --leaf-soft:#2E2026;
    --grid:#35292E; --grid-strong:#4A3A40; --pith:#3A2F1A; --pith-ink:#F8DFA8; --focus:#F0A9BC; --sage:#A6C4B2;
  }
}
:root[data-theme="dark"] .wed{
  --paper:#161113; --sheet:#1F181B; --head:#271E22; --ink:#F2E8EB; --muted:#C2B1B7; --faint:#AE9CA3;
  --leaf:#F0A9BC; --leaf-hover:#F6C2D0; --leaf-ink:#1E1216; --leaf-soft:#2E2026;
  --grid:#35292E; --grid-strong:#4A3A40; --pith:#3A2F1A; --pith-ink:#F8DFA8; --focus:#F0A9BC; --sage:#A6C4B2;
}
@media (min-width:768px){:root{--gutter:32px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--t-body)/1.6 var(--text);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.15;letter-spacing:-.015em;margin:0;text-wrap:balance}
p{margin:0}
strong{font-weight:600}
.wrap{max-width:var(--vp-wide);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-9999px;top:var(--s2);z-index:50;background:var(--leaf);color:var(--leaf-ink);padding:var(--s3) var(--s4);border-radius:var(--radius-sm);font-weight:600;text-decoration:none}
.skip:focus{left:var(--s3)}
.num{font-variant-numeric:tabular-nums}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.note{font-size:var(--t-sec);color:var(--faint)}

/* ---------- Header ---------- */
.top{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding-top:var(--s3);padding-bottom:var(--s3)}
.brand{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;text-decoration:none;color:var(--leaf);font-family:"Bricolage",var(--text);font-weight:600;font-size:var(--t-1);letter-spacing:-.01em}
.brand svg{width:32px;height:32px;flex:none}
.brand .sub{font-family:"Playfair",Georgia,serif;font-style:italic;font-weight:500;color:var(--ink);font-size:var(--t-1)}
.top-links{display:flex;align-items:center;gap:var(--s1)}
.top-links>a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--t-sec);font-weight:500;color:var(--muted);text-decoration:none;padding:0 var(--s3);border-radius:var(--radius-sm)}
.top-links>a:hover{color:var(--ink);background:var(--head)}
.themetog{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--grid);background:var(--sheet);color:var(--muted);place-items:center;cursor:pointer;padding:0}
.js .themetog{display:grid}
.themetog:hover{color:var(--ink);border-color:var(--grid-strong)}
.themetog svg{width:18px;height:18px;display:block}

/* Narrow: categories live in a menu */
.menu{position:relative}
.menu summary{list-style:none;display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s3);border:1px solid var(--grid);border-radius:var(--radius-sm);background:var(--sheet);font-size:var(--t-sec);font-weight:500;cursor:pointer}
.menu summary::-webkit-details-marker{display:none}
.menu summary svg{width:16px;height:16px}
.menu ul{list-style:none;margin:0;padding:var(--s2);position:absolute;right:0;top:calc(100% + var(--s2));z-index:30;width:min(280px,calc(100vw - 32px));background:var(--sheet);border:1px solid var(--grid-strong);border-radius:var(--radius);box-shadow:0 8px 24px rgba(19,35,27,.07),var(--edge)}
.menu a{display:flex;align-items:center;min-height:44px;padding:0 var(--s3);border-radius:var(--radius-sm);text-decoration:none}
.menu a:hover,.menu a[aria-current="page"]{background:var(--head)}
.menu a[aria-current="page"]{font-weight:600}

/* Medium+: categories drawn as spreadsheet tabs */
.tabs{display:none;border-bottom:1px solid var(--grid)}
.tabs ul{list-style:none;margin:0 auto;padding:0 var(--gutter);max-width:var(--vp-wide);display:flex;flex-wrap:wrap;gap:var(--s1)}
.tabs a{display:flex;align-items:center;min-height:44px;position:relative;top:1px;padding:0 var(--s4);font-size:var(--t-sec);font-weight:500;color:var(--muted);text-decoration:none;background:var(--head);border:1px solid var(--grid);border-radius:var(--radius-sm) var(--radius-sm) 0 0;white-space:nowrap}
.tabs a:hover{color:var(--ink)}
.tabs a[aria-current="page"]{background:var(--paper);border-bottom-color:var(--paper);color:var(--ink);font-weight:600}
.tabs a[aria-current="page"]::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--leaf);border-radius:var(--radius-sm) var(--radius-sm) 0 0}
@media (min-width:768px){.tabs{display:block}.menu{display:none}}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;padding:var(--s3) var(--s6);border-radius:var(--radius-sm);border:1px solid var(--leaf);background:var(--leaf);color:var(--leaf-ink);font:600 var(--t-body)/1.2 var(--text);text-decoration:none;cursor:pointer;text-align:center}
.btn:hover{background:var(--leaf-hover);border-color:var(--leaf-hover)}
.btn-quiet{background:transparent;color:var(--leaf)}
.btn-quiet:hover{background:var(--leaf-soft);border-color:var(--leaf)}
.btn-sm{min-height:44px;padding:var(--s2) var(--s4);font-size:var(--t-sec)}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s8);align-items:center}

/* ---------- Panels (L1) ---------- */
.panel{background:var(--sheet);border:1px solid var(--grid);border-radius:var(--radius);box-shadow:var(--edge)}

/* ---------- Hero ---------- */
.hero{display:grid;gap:var(--s8);padding-top:var(--s12);padding-bottom:var(--s16);align-items:center}
@media (min-width:768px){.hero{grid-template-columns:1.05fr .95fr;gap:var(--s12);padding-top:var(--s16);padding-bottom:var(--s24)}}
.hero h1{font-size:var(--t-6);line-height:1.1;letter-spacing:-.025em;max-width:13ch}
@media (min-width:768px){.hero h1{font-size:var(--t-7)}}
.lead{font-size:var(--t-1);line-height:1.5;color:var(--muted);margin-top:var(--s6);max-width:46ch}
.facts{list-style:none;padding:0;margin:var(--s8) 0 0;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s6);font-size:var(--t-sec);color:var(--muted)}
.facts li{display:inline-flex;align-items:center;gap:var(--s2)}
.facts svg{width:16px;height:16px;color:var(--leaf);flex:none;transform:translateY(-1px)}

/* The live sheet */
.sheet{margin:0;overflow:hidden;font-size:var(--t-body)}
.fx{display:flex;align-items:center;gap:var(--s3);border-bottom:1px solid var(--grid);padding:var(--s2) var(--s3);font-size:var(--t-sec);color:var(--muted);min-height:40px}
.fx-ref{min-width:32px;font-weight:600;color:var(--ink)}
.fx-sym{font-style:italic;font-family:Georgia,serif;color:var(--faint);border-left:1px solid var(--grid);padding-left:var(--s3)}
.fx output{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sheet table{width:100%;border-collapse:collapse;table-layout:fixed}
.sheet th,.sheet td{border-bottom:1px solid var(--grid);border-right:1px solid var(--grid);padding:0;height:48px;vertical-align:middle}
.sheet td:last-child,.sheet th:last-child{border-right:0}
.sheet thead th{background:var(--head);height:28px;font-size:var(--t-meta);font-weight:500;color:var(--faint)}
.sheet tbody th{background:var(--head);width:32px;font-size:var(--t-meta);font-weight:500;color:var(--faint)}
.sheet .col-b{width:44%}
.sheet td>label,.sheet td>span{display:block;padding:0 var(--s3);line-height:1.3}
.sheet .hrow td{font-weight:600;font-size:var(--t-sec);color:var(--muted)}
.sheet .hrow td:last-child span{text-align:right}
.sheet input{width:100%;height:48px;border:0;margin:0;padding:0 var(--s3);background:transparent;color:var(--ink);font:500 var(--t-body) var(--text);font-variant-numeric:tabular-nums;text-align:right}
.sheet input:focus{outline:2px solid var(--leaf);outline-offset:-2px;border-radius:0;background:var(--leaf-soft)}
.sheet td output{display:block;padding:0 var(--s3);text-align:right;font-variant-numeric:tabular-nums}
.sheet .safe td{background:var(--pith);color:var(--pith-ink);font-weight:600}
.sheet .safe output{font-family:var(--display);font-size:var(--t-2);font-weight:600}
.sheet .perday td{color:var(--muted);font-size:var(--t-sec)}
.sheet.neg .safe output{color:var(--danger)}
.sheet figcaption{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;padding:0 var(--s3);background:var(--head);font-size:var(--t-sec);color:var(--muted)}
.sheet .sheettab{display:inline-block;background:var(--sheet);border:1px solid var(--grid);border-top:0;padding:var(--s1) var(--s4) var(--s2);border-radius:0 0 var(--radius-sm) var(--radius-sm);font-weight:600;color:var(--leaf);margin-top:-1px}
.sheet .hint{padding:var(--s2) 0}

/* ---------- Sections ---------- */
.section{padding-top:var(--s16);padding-bottom:var(--s16);border-top:1px solid var(--grid)}
.section-head{max-width:62ch;margin-bottom:var(--s8)}
.section-head h2{font-size:var(--t-4)}
@media (min-width:768px){.section-head h2{font-size:var(--t-5)}}
.section-head p{color:var(--muted);margin-top:var(--s3)}

/* Bundle ledger */
.bundle{display:grid;gap:var(--s8);align-items:start}
@media (min-width:768px){.bundle{grid-template-columns:1fr 1fr;gap:var(--s12)}}
.bundle h2{font-size:var(--t-4)}
@media (min-width:768px){.bundle h2{font-size:var(--t-5)}}
.bundle .lead{margin-top:var(--s3)}
.shot{border:1px solid var(--grid);border-radius:var(--radius);overflow:hidden;background:var(--sheet)}
.ledger{list-style:none;margin:var(--s6) 0 0;padding:var(--s2) var(--s6)}
.ledger li{display:flex;align-items:baseline;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--grid)}
.ledger .item{flex:1}
.ledger .item small{display:block;color:var(--faint);font-size:var(--t-sec)}
.ledger .amt{font-variant-numeric:tabular-nums;color:var(--muted)}
.ledger .sum .amt{text-decoration:line-through;text-decoration-thickness:1.5px}
.ledger .total{border-top:2px solid var(--ink);border-bottom:0;font-weight:600;font-size:var(--t-1)}
.ledger .total .amt{color:var(--ink);font-family:var(--display);font-weight:600;font-size:var(--t-3)}
.bundle .btn{margin-top:var(--s6)}

/* Free pick */
.freebie{display:grid;gap:var(--s6);align-items:center;margin-top:var(--s12);padding:var(--s6)}
@media (min-width:768px){.freebie{grid-template-columns:320px 1fr;gap:var(--s8);padding:var(--s8)}}
.freebie h3{font-size:var(--t-3)}
.freebie p{color:var(--muted);margin-top:var(--s2);max-width:56ch}
.freebie .cta-row{margin-top:var(--s6)}

/* Category index */
.catlist{list-style:none;margin:0;padding:var(--s2) var(--s6);display:grid;gap:0 var(--s12)}
@media (min-width:768px){.catlist{grid-template-columns:1fr 1fr}}
.catlist li{border-bottom:1px solid var(--grid)}
@media (min-width:768px){.catlist li:nth-last-child(-n+2){border-bottom:0}}
.catlist li:last-child{border-bottom:0}
.catlist a{display:grid;grid-template-columns:1fr auto;gap:var(--s1) var(--s4);align-items:center;padding:var(--s4) 0;text-decoration:none}
.catlist h3{font-size:var(--t-2);grid-column:1}
.catlist p{grid-column:1;color:var(--muted);font-size:var(--t-sec)}
.catlist .count{grid-column:2;grid-row:1/span 2;font-variant-numeric:tabular-nums;color:var(--faint);font-size:var(--t-sec);text-align:right}
.catlist a:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.15em}

/* App rows */
.apps{list-style:none;margin:0;padding:0 var(--s6)}
.apps li{display:grid;gap:var(--s4);padding:var(--s6) 0;border-bottom:1px solid var(--grid)}
.apps li:last-child{border-bottom:0}
@media (min-width:768px){.apps li{grid-template-columns:200px 1fr auto;align-items:center;gap:var(--s8)}}
.apps img{border:1px solid var(--grid);border-radius:var(--radius-sm)}
.apps h3{font-size:var(--t-1)}
.apps p{color:var(--muted);margin-top:var(--s2);font-size:var(--t-sec);max-width:60ch}
.apps .actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}

/* Formats */
.formats{display:grid;gap:var(--s8)}
@media (min-width:768px){.formats{grid-template-columns:repeat(3,1fr);gap:var(--s8)}}
.formats h3{font-size:var(--t-1)}
.formats p{color:var(--muted);margin-top:var(--s2)}
.formats>div{border-top:2px solid var(--leaf);padding-top:var(--s4)}

/* FAQ */
.faq{max-width:800px;padding:0 var(--s6)}
.faq details{border-bottom:1px solid var(--grid)}
.faq details:last-child{border-bottom:0}
.faq summary{cursor:pointer;list-style:none;padding:var(--s4) var(--s8) var(--s4) 0;min-height:56px;font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:var(--s1);top:var(--s3);font:400 var(--t-2)/1 var(--text);color:var(--leaf)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{padding:0 0 var(--s4);color:var(--muted);max-width:68ch}

/* CTA band */
.band{display:grid;gap:var(--s6);align-items:center;padding:var(--s8)}
@media (min-width:768px){.band{grid-template-columns:1fr auto;padding:var(--s8) var(--s12)}}
.band h2{font-size:var(--t-3)}
.band p{color:var(--muted);margin-top:var(--s2);max-width:60ch}
.band .cta-row{margin-top:0}

/* ---------- Category page ---------- */
.cat-head{padding-top:var(--s12);padding-bottom:var(--s8)}
.cat-head h1{font-size:var(--t-5);letter-spacing:-.02em;max-width:20ch}
@media (min-width:768px){.cat-head h1{font-size:var(--t-6)}}
.cat-head p{color:var(--muted);font-size:var(--t-1);line-height:1.5;margin-top:var(--s4);max-width:62ch}
.cat-head .note{margin-top:var(--s3);font-size:var(--t-sec);line-height:1.6}
.grid{list-style:none;margin:0;padding:0 0 var(--s16);display:grid;gap:var(--s6)}
@media (min-width:768px){.grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}
.card{display:flex;flex-direction:column;padding:var(--s4)}
.card img{border:1px solid var(--grid);border-radius:var(--radius-sm)}
.card .fmt{margin-top:var(--s4);font-size:var(--t-sec);color:var(--faint)}
.card h2,.card h3{font-size:var(--t-2);margin-top:var(--s1)}
.card h2 a,.card h3 a{display:block;text-decoration:none}
.card h2 a:hover,.card h3 a:hover{text-decoration:underline}
.card .sum{color:var(--muted);margin-top:var(--s2);font-size:var(--t-sec);flex:1}
.price{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s1) var(--s3);margin-top:var(--s4)}
.price .now{font-family:var(--display);font-weight:600;font-size:var(--t-2);font-variant-numeric:tabular-nums}
.price s{color:var(--faint);font-variant-numeric:tabular-nums}
.price .why{font-size:var(--t-sec);color:var(--faint);flex-basis:100%}
.card .actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s4)}
.crosslink{padding-top:var(--s8);padding-bottom:var(--s16);border-top:1px solid var(--grid)}
.crosslink p{color:var(--muted);max-width:68ch}
.crosslink a{font-weight:600;color:var(--leaf)}

/* ---------- Prose pages ---------- */
.prose{max-width:70ch;padding-top:var(--s12);padding-bottom:var(--s16)}
.prose h1{font-size:var(--t-5);letter-spacing:-.02em}
@media (min-width:768px){.prose h1{font-size:var(--t-6)}}
.prose h2{font-size:var(--t-2);margin-top:var(--s12)}
.prose h3{font-size:var(--t-1);margin-top:var(--s8)}
.prose p,.prose ul,.prose ol{margin-top:var(--s4)}
.prose ul,.prose ol{padding-left:1.25em}
.prose li{margin-top:var(--s2)}
.prose .meta{color:var(--faint);margin-top:var(--s3);font-size:var(--t-sec)}
.prose a{color:var(--leaf);font-weight:500}
.prose .lead{margin-top:var(--s4)}

/* ---------- Footer ---------- */
.foot{border-top:1px solid var(--grid);padding-top:var(--s12);padding-bottom:var(--s12);color:var(--muted);font-size:var(--t-sec)}
.foot-grid{display:grid;gap:var(--s8)}
@media (min-width:768px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr}}
.foot h2{font-family:var(--text);font-size:var(--t-sec);font-weight:600;letter-spacing:0;color:var(--ink);margin-bottom:var(--s1)}
.foot ul{list-style:none;margin:0;padding:0}
.foot li a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.foot a:hover{text-decoration:underline;color:var(--ink)}
.foot-blurb{margin-top:var(--s3);max-width:40ch}
.foot .small{margin-top:var(--s8);font-size:var(--t-meta);line-height:1.4;color:var(--faint)}

/* ---------- Wedding pages ---------- */
.wed h1,.wed h2,.wed h3{letter-spacing:-.005em}
.wed .hero h1{max-width:15ch;letter-spacing:-.01em}
.wed .brand{color:var(--leaf)}
.wed .tabs a[aria-current="page"]::before{background:var(--leaf)}
.wsub{border-bottom:1px solid var(--grid)}
.wsub ul{list-style:none;margin:0 auto;padding:0 var(--gutter);max-width:var(--vp-wide);display:flex;flex-wrap:wrap;gap:0 var(--s1)}
.wsub a{display:flex;align-items:center;min-height:44px;padding:0 var(--s3);font-size:var(--t-sec);font-weight:500;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}
.wsub a:hover{color:var(--ink)}
.wsub a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--leaf);font-weight:600}
.wed-hero-shot{display:grid;gap:var(--s3);margin:0}
.wed-hero-shot img{border:1px solid var(--grid);border-radius:var(--radius)}
.wed-hero-shot figcaption{font-size:var(--t-sec);color:var(--faint)}
.duo{display:grid;gap:var(--s6)}
@media (min-width:768px){.duo{grid-template-columns:1fr 1fr}}
.compare-wrap{overflow-x:auto;margin-top:var(--s8)}
.compare{width:100%;min-width:560px;border-collapse:collapse;font-size:var(--t-sec)}
.compare caption{text-align:left;padding:var(--s4) var(--s6);font-weight:600;font-size:var(--t-body)}
.compare th,.compare td{padding:var(--s3) var(--s6);border-top:1px solid var(--grid);text-align:left;vertical-align:top}
.compare thead th{background:var(--head);font-weight:600}
.compare tbody th{font-weight:500;width:34%}
.compare td{color:var(--muted)}
.split{display:grid;gap:var(--s8);align-items:start}
@media (min-width:768px){.split{grid-template-columns:.9fr 1.1fr;gap:var(--s12)}}
.calc label{display:block;font-weight:600;font-size:var(--t-sec)}
.calc .field{display:flex;align-items:center;margin-top:var(--s2);border:1px solid var(--grid-strong);border-radius:var(--radius-sm);background:var(--sheet);max-width:280px}
.calc .field span{padding:0 0 0 var(--s4);color:var(--muted)}
.calc input{flex:1;min-width:0;height:48px;border:0;background:transparent;color:var(--ink);font:500 var(--t-1) var(--text);font-variant-numeric:tabular-nums;padding:0 var(--s3)}
.calc input:focus{outline:none}
.calc .field:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.splitlist{list-style:none;margin:0;padding:var(--s2) var(--s6)}
.splitlist li{display:grid;grid-template-columns:1fr auto auto;gap:var(--s4);align-items:center;padding:var(--s2) 0;border-bottom:1px solid var(--grid);font-size:var(--t-sec)}
.splitlist li:last-child{border-bottom:0}
.splitlist .bar{grid-column:1/-1;height:4px;border-radius:2px;background:var(--head);overflow:hidden;margin-top:calc(var(--s1) * -1)}
.splitlist .bar i{display:block;height:100%;background:var(--leaf)}
.splitlist .pct{color:var(--faint);font-variant-numeric:tabular-nums;min-width:3.5ch;text-align:right}
.splitlist .amt{font-variant-numeric:tabular-nums;font-weight:600;min-width:9ch;text-align:right}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:var(--s4)}
@media (min-width:768px){.timeline{grid-template-columns:repeat(2,1fr)}}
.timeline>li{padding:var(--s6)}
.timeline h3{font-size:var(--t-2)}
.timeline .when{font-size:var(--t-sec);color:var(--faint);margin-top:var(--s1)}
.timeline ul{margin:var(--s3) 0 0;padding-left:1.1em}
.timeline ul li{margin-top:var(--s1)}
.tips{list-style:none;margin:0;padding:0 var(--s6)}
.tips li{padding:var(--s4) 0;border-bottom:1px solid var(--grid)}
.tips li:last-child{border-bottom:0}
.tips strong{display:block}
.tips span{color:var(--muted);font-size:var(--t-sec)}
.guides{list-style:none;margin:0;padding:0 var(--s6)}
.guides li{border-bottom:1px solid var(--grid)}
.guides li:last-child{border-bottom:0}
.guides a{display:block;padding:var(--s4) 0;text-decoration:none}
.guides strong{font-family:var(--display);font-size:var(--t-2);font-weight:600}
.guides span{display:block;color:var(--muted);font-size:var(--t-sec);margin-top:var(--s1)}
.guides a:hover strong{text-decoration:underline}

@media print{.tabs,.menu,.themetog,.foot,.wsub{display:none}}

/* ---------- Breadcrumbs, related blocks, guides ---------- */
.crumbs ol{list-style:none;margin:0 0 var(--s2);padding:0;display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);font-size:var(--t-sec);color:var(--faint)}
.crumbs li{display:inline-flex;align-items:center;gap:var(--s2)}
.crumbs li+li::before{content:"/";color:var(--grid-strong)}
.crumbs a{color:var(--muted);display:inline-flex;align-items:center;min-height:44px}
.wrap>.crumbs{padding-top:var(--s6)}
.related{padding-top:var(--s8);padding-bottom:var(--s8)}
.related>h2{font-size:var(--t-3);margin-bottom:var(--s6)}
.related .note{margin:calc(var(--s3) * -1) 0 var(--s6);max-width:68ch}
.related .grid{padding-bottom:0}
.spacer{height:var(--s16)}
.guides-wrap{padding-bottom:var(--s16)}
.guide{padding-bottom:var(--s8)}
.prose .table-wrap{overflow-x:auto;margin-top:var(--s6)}
.prose table{width:100%;border-collapse:collapse;font-size:var(--t-sec);font-variant-numeric:tabular-nums}
.prose caption{text-align:left;padding:var(--s3) var(--s4);font-weight:600;color:var(--ink)}
.prose th,.prose td{padding:var(--s2) var(--s4);border-top:1px solid var(--grid);text-align:left;vertical-align:top}
.prose thead th{background:var(--head);font-weight:600}
.prose blockquote{margin:var(--s6) 0 0;padding:var(--s4) var(--s6);border-left:3px solid var(--leaf);background:var(--sheet);color:var(--muted)}
.prose .disclaimer{margin-top:var(--s12);padding-top:var(--s4);border-top:1px solid var(--grid)}
.grid.duo{grid-template-columns:1fr}
@media (min-width:768px){.grid.duo{grid-template-columns:1fr 1fr}}
.timeline .by{display:block;font-weight:600;color:var(--leaf)}
.timeline.full{padding-bottom:var(--s8)}
.timeline.full h2{font-size:var(--t-2)}
.datecalc{margin-top:var(--s6)}
.datecalc input{font-size:var(--t-body)}
.wb-more{margin-top:var(--s6)}
.wb-more a,.note a{color:var(--leaf);font-weight:500}

/* Narrow header: the library link moves into the menu; wedding pages show the lemon + "Wedding" */
.brand{white-space:nowrap}
.themetog,.menu summary{flex:none}
.menu .sep{border-top:1px solid var(--grid);margin-top:var(--s1);padding-top:var(--s1)}
@media (max-width:767.98px){
  .top-links>.lib{display:none}
  .brand:has(.sub) .name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
.sheet thead th:first-child{width:32px}
@media (max-width:767.98px){.guide .crumbs li:last-child{display:none}}

/* Wedding floor plan feature */
.fp-shot{margin:0;display:grid;gap:var(--s3)}
.fp-shot figcaption{font-size:var(--t-sec);color:var(--faint)}
.vid-grid{display:grid;gap:var(--s6);align-items:start}
.vid{margin:0;display:grid;gap:var(--s3)}
.vid video{display:block;width:100%;height:auto;border-radius:var(--radius);background:var(--sheet);border:1px solid var(--grid)}
.vid figcaption{font-size:var(--t-sec);color:var(--faint)}
.vid-tall{max-width:340px;justify-self:center;width:100%}
@media (min-width:768px){.vid-grid{grid-template-columns:3.16fr 1fr}.vid-tall{max-width:none}}
.fp-grid{display:grid;gap:var(--s6);margin-top:var(--s8);align-items:start}
@media (min-width:768px){.fp-grid{grid-template-columns:1.3fr 1fr}}
.fp-list{list-style:none;margin:0;padding:0 var(--s6)}
.fp-list li{padding:var(--s4) 0;border-bottom:1px solid var(--grid)}
.fp-list li:last-child{border-bottom:0}
.fp-list strong{display:block}
.fp-list span{color:var(--muted);font-size:var(--t-sec)}
.fp-cta{padding:var(--s8)}
.fp-cta h3{font-size:var(--t-3)}
.fp-cta p{color:var(--muted);margin-top:var(--s3)}
.fp-cta .cta-row{margin-top:var(--s6)}
/* generated by tools/build.py: wedding split bars */
.splitlist .bar i.w1{width:4%}.splitlist .bar i.w2{width:8%}.splitlist .bar i.w3{width:12%}.splitlist .bar i.w4{width:16%}.splitlist .bar i.w5{width:20%}.splitlist .bar i.w6{width:24%}.splitlist .bar i.w7{width:28%}.splitlist .bar i.w8{width:32%}.splitlist .bar i.w10{width:40%}.splitlist .bar i.w12{width:48%}.splitlist .bar i.w15{width:60%}.splitlist .bar i.w20{width:80%}.splitlist .bar i.w22{width:88%}.splitlist .bar i.w25{width:100%}.splitlist .bar i.w30{width:120%}.splitlist .bar i.w35{width:140%}
