:root{--paper:#faf6ef;--paper-deep:#f1eadd;--ink:#1a1612;--ink-soft:#4a4239;--ink-mute:#75695a;--hairline:#d9cfbf;--hairline-deep:#b9ad97;--accent:#8a3a23;--accent-deep:#6a2b18;--serif:'Fraunces','Cambria',Georgia,'Times New Roman',serif;--sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;--fs-eyebrow:0.72rem;--fs-body:1.0625rem;--fs-lead:clamp(1.05rem,1.6vw,1.2rem);--fs-h3:1.4rem;--fs-h2:clamp(1.5rem,3.2vw,2rem);--fs-h1:clamp(2.1rem,5vw,3rem);--fs-display:clamp(2.6rem,7vw,4rem);--col-narrow:38rem;--col-wide:72rem;--col-edge:1.5rem}
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
html,body{overflow-x:clip}
body{margin:0;font-family:var(--sans);font-size:var(--fs-body);line-height:1.6;color:var(--ink);background:var(--paper)}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--hairline-deep);text-decoration-thickness:1px;text-underline-offset:0.18em;transition:text-decoration-color 120ms ease}
@media (hover:hover){a:hover{text-decoration-color:var(--accent)}}
::selection{background:var(--accent);color:var(--paper)}
.skip-link{position:absolute;top:0;left:0;padding:0.75rem 1.25rem;background:var(--accent);color:var(--paper);font-family:var(--sans);font-size:0.95rem;font-weight:600;text-decoration:none;transform:translateY(-100%);transition:transform 150ms ease;z-index:1000}
.skip-link:focus{transform:translateY(0);outline:3px solid var(--ink);outline-offset:-3px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;font-variation-settings:'opsz' 144;letter-spacing:-0.01em;line-height:1.1;color:var(--ink);margin:0;text-wrap:balance}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3)}
.display{font-family:var(--serif);font-size:var(--fs-display);font-weight:400;font-variation-settings:'opsz' 144,'SOFT' 30;letter-spacing:-0.02em;line-height:1.0;text-wrap:balance}
.eyebrow{font-family:var(--sans);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent);margin:0 0 1rem}
.lead{font-size:var(--fs-lead);line-height:1.5;color:var(--ink-soft);max-width:var(--col-narrow);text-wrap:pretty}
.prose{max-width:var(--col-narrow);font-size:var(--fs-body);line-height:1.7}
.prose p{margin:0 0 1.1em;text-wrap:pretty}
.prose p:last-child{margin-bottom:0}
.site-footer{border-top:1px solid var(--hairline);background:var(--paper);margin-top:5rem}
.site-footer__inner{max-width:var(--col-wide);margin:0 auto;padding:2rem var(--col-edge);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:0.85rem;color:var(--ink-mute)}
.site-footer__inner a{color:var(--ink-soft)}
.container{max-width:var(--col-wide);margin:0 auto;padding:0 var(--col-edge)}
.container--narrow{max-width:var(--col-narrow);margin:0 auto;padding:0 var(--col-edge)}
.section-title{font-family:var(--serif);font-weight:500;font-size:var(--fs-h3);margin:3rem 0 1.5rem;padding-bottom:0.6rem;border-bottom:1px solid var(--hairline)}
.sticky-cta .btn{flex:1;padding:0.85rem 0.5rem;text-align:center}
@media (max-width:719.98px){body{padding-bottom:4.5rem}}
.form-field{display:flex;flex-direction:column;margin-bottom:1.4rem}
.form-field label{font-family:var(--sans);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:0.4rem}
.form-field .optional{font-weight:400;letter-spacing:0.06em;text-transform:none;color:var(--ink-mute)}
.form-field input,.form-field textarea,.form-field select{font:inherit;width:100%;padding:0.65rem 0.8rem;background:#fff;border:1px solid var(--hairline-deep);color:var(--ink);border-radius:2px}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--accent);outline:none}
.form-field input:focus-visible,.form-field textarea:focus-visible,.form-field select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.form-field textarea{resize:vertical;min-height:6rem}
.form-field .error{font-size:0.85rem;color:var(--accent-deep);margin-top:0.3rem}
.btn{display:inline-block;padding:0.85rem 1.8rem;background:var(--ink);color:var(--paper);border:1px solid var(--ink);font:inherit;font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:0.18em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:background 120ms ease,color 120ms ease;border-radius:0}
@media (hover:hover){.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}}
.btn:active{transform:translateY(1px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
@media (hover:hover){.btn--ghost:hover{background:var(--ink);color:var(--paper)}}
.alert{border-left:3px solid var(--accent);padding:0.9rem 1.2rem;font-size:1rem;background:var(--paper-deep);margin-bottom:2rem;font-family:var(--serif);font-style:italic;color:var(--ink-soft)}
.error-page{text-align:center;padding:6rem 1rem 5rem}
.error-page__code{font-family:var(--serif);font-size:6rem;font-weight:400;font-variation-settings:'opsz' 144;color:var(--accent);margin:0;line-height:1;letter-spacing:-0.04em}
.error-page__msg{font-size:1.2rem;margin-top:1rem;color:var(--ink-soft);font-family:var(--serif);font-style:italic}
.auth-wrap .lead{font-size:0.95rem;margin-bottom:2rem}
.marketing__hero{padding:5rem 0 3rem}
.marketing__hero-text{max-width:38rem}
.section{padding:4rem 0;border-top:1px solid var(--hairline)}
.section--bare{padding:4rem 0}
.section-heading{display:grid;grid-template-columns:14rem 1fr;gap:2rem;margin-bottom:2.5rem}
.section-heading h2{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:400;line-height:1.05;margin:0;max-width:16ch}
@media (max-width:720px){.section-heading{grid-template-columns:1fr;gap:0.4rem}}
.numbered-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0}
.numbered-list>li{padding:1.5rem 1.5rem 1.5rem 0;border-top:1px solid var(--hairline);position:relative}
.numbered-list>li::before{content:counter(item,decimal-leading-zero);counter-increment:item;font-family:var(--serif);font-size:0.85rem;font-weight:500;color:var(--accent);display:block;margin-bottom:0.6rem;font-variant-numeric:tabular-nums}
.numbered-list{counter-reset:item}
.numbered-list h3{font-family:var(--serif);font-size:1.15rem;font-weight:500;margin:0 0 0.4rem}
.numbered-list p{margin:0;color:var(--ink-soft);font-size:0.95rem;line-height:1.55}
.faq-list{max-width:var(--col-narrow)}
.faq-list details{border-top:1px solid var(--hairline);padding:1.2rem 0}
.faq-list details:last-of-type{border-bottom:1px solid var(--hairline)}
.faq-list summary{font-family:var(--serif);font-size:1.1rem;font-weight:500;cursor:pointer;list-style:none;display:flex;align-items:center}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list details p{margin:0.8rem 0 0;color:var(--ink-soft);font-size:1rem;line-height:1.6;max-width:56ch}
.endmatter{text-align:center;padding:5rem 0 4rem;border-top:1px solid var(--hairline)}
.endmatter h2{font-family:var(--serif);font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:400;margin:0 0 0.8rem}
.endmatter p{color:var(--ink-soft);margin:0 0 2rem;font-size:1.1rem}
.dash-content .lead{font-size:var(--fs-lead);color:var(--ink-soft);margin:0 0 2rem;max-width:56ch}
.dash-form .form-field{margin-bottom:1.4rem}
.dash-section .lead{margin:0 0 1rem;color:var(--ink-soft)}
.hero .eyebrow,.hero .orientation__lead{color:rgba(255,255,255,.8)}
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.faq-list details{transition:background 120ms ease;padding:1.2rem;margin:0 -1.2rem;border-radius:4px}
.faq-list details:hover{background:var(--paper-deep)}
.faq-list summary{cursor:pointer;font-family:var(--serif);font-size:1.05rem;font-weight:500;color:var(--ink);margin:0;display:flex;align-items:center;gap:0.6rem;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::before{content:'+';font-family:var(--serif);color:var(--accent);font-size:1.3rem;font-weight:400;line-height:1;flex:0 0 auto;transition:transform 150ms ease}
.faq-list details[open] summary::before{content:'−'}
.faq-list details p{margin:0.8rem 0 0;color:var(--ink-soft);line-height:1.6}
.site-footer{border-top:2px solid var(--accent-deep)}
@keyframes pulse{0%,100%{opacity:0.4}50%{opacity:1}}
.error-page__msg{font-family:var(--serif);font-size:var(--fs-h2);font-weight:400;margin:0.5rem 0 1rem}
.error-page__action{margin-top:2rem}
.error-page__action a{font-family:var(--sans);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:0.18em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--hairline-deep);padding-bottom:0.2rem;transition:color 120ms ease,border-color 120ms ease}
.error-page__action a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.filter-rail .btn{border-radius:999px}
.star-rating .form-field__label{display:block;font-family:var(--sans);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:0.5rem}
@media (min-width:900px){.caterer-layout__aside .section-title{font-size:1.05rem;margin-top:1.5rem;margin-bottom:0.5rem}}
/* 3. Footer links had ~16px tap height. Grow the hit area without
      shifting the rendered layout. */
.site-footer__inner a{
  display:inline-block;
  padding:0.875rem 0.5rem;
  margin:-0.875rem -0.5rem;
}
