:root{color-scheme:light dark;
  --background: oklch(1 0 0);
  --foreground: oklch(0.145 0 0);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.145 0 0);
  --border: oklch(0.922 0 0);
  --muted: oklch(0.97 0 0);
  --muted-foreground: oklch(0.556 0 0);
  --primary: oklch(0.59 0.197 282);
  --primary-foreground: oklch(0.985 0 0);
  --color-text: #0F172A;
  --radius: 0.75rem;
  --gradient-purple: linear-gradient(135deg, #6D5DF6 0%, #5B4FF0 45%, #4F46E5 100%);
  --gradient-blue:   linear-gradient(135deg, #3B82F6 0%, #2563EB 45%, #1D4ED8 100%);
  --gradient-green:  linear-gradient(135deg, #10B981 0%, #059669 45%, #047857 100%);
  --gradient-amber:  linear-gradient(135deg, #F59E0B 0%, #D97706 45%, #B45309 100%);
  --gradient-red:    linear-gradient(135deg, #EF4444 0%, #DC2626 45%, #B91C1C 100%);
  --gradient-cyan:   linear-gradient(135deg, #06B6D4 0%, #0891B2 45%, #0E7490 100%);
  --accent-purple: #6D5DF6;
  --accent-blue:   #3B82F6;
  --accent-green:  #10B981;
  --accent-amber:  #F59E0B;
  --accent-red:    #EF4444;
  --accent-cyan:   #06B6D4;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.12);
  /* Full palette + type scale derived from whichever --tpl-accent/
     --tpl-gradient the page-level <style> block sets (see pageShell) — one
     declaration, no per-accent branching downstream. Mirrored in
     components/site-preview/site-preview.css and site-template/app/globals.css
     so all three render paths stay in lockstep. */
  --tpl-accent-wash: color-mix(in oklab, var(--tpl-accent) 6%, var(--background));
  --tpl-accent-tint: color-mix(in oklab, var(--tpl-accent) 14%, var(--background));
  --tpl-accent-line: color-mix(in oklab, var(--tpl-accent) 32%, var(--border));
  --tpl-accent-ink: #fff;
  --tpl-display: clamp(2.75rem, 2.1rem + 3.2vw, 4.75rem);
  --tpl-h1: clamp(2rem, 1.7rem + 1.5vw, 2.75rem);
  --tpl-h2: clamp(1.5rem, 1.35rem + 0.75vw, 1.875rem);
  --tpl-body-lg: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
  --tpl-quote: clamp(1.5rem, 1.2rem + 1.4vw, 2.125rem);
  /* One spacing + surface scale for every home section, so the page has a
     single vertical rhythm instead of five hand-tuned paddings, and every
     template alternates ground/raised bands the same way. */
  --tpl-section-y: clamp(4.5rem, 3.2rem + 4vw, 7.5rem);
  --tpl-measure: 36rem;
  --tpl-surface-alt: color-mix(in oklab, var(--muted) 55%, var(--background));
  --tpl-card-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 10px 26px -14px rgba(15, 23, 42, 0.22);
  --tpl-card-shadow-hover: 0 2px 4px rgba(15, 23, 42, 0.05), 0 20px 42px -18px rgba(15, 23, 42, 0.32);
}
@media (prefers-color-scheme: dark) {
  :root{
    --background: oklch(0.145 0 0);
    --foreground: oklch(0.985 0 0);
    --card: oklch(0.205 0 0);
    --card-foreground: oklch(0.985 0 0);
    --border: oklch(1 0 0 / 10%);
    --muted: oklch(0.269 0 0);
    --muted-foreground: oklch(0.708 0 0);
    --primary: oklch(0.68 0.175 282);
    --primary-foreground: oklch(0.145 0 0);
}
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.6}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,figure,blockquote{margin:0}
h1,h2,h3{font-weight:600;letter-spacing:-0.025em;line-height:1.1}
h1{letter-spacing:-0.035em}
p strong{font-weight:600;color:var(--foreground)}
ul{padding:0;list-style:none}
img,svg{display:block}
.icon{width:20px;height:20px;flex-shrink:0}
.nav{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border);background:var(--background)}
.nav-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;max-width:72rem;margin-inline:auto;position:relative}
.nav-links{display:none;align-items:center;gap:2rem}
.nav-toggle-input{display:none}
.nav-toggle-label{cursor:pointer;display:flex;align-items:center}
.nav-mobile-panel{display:none;flex-direction:column;gap:.25rem;position:absolute;inset-inline:0;top:100%;border-bottom:1px solid var(--border);background:var(--background);padding:1rem 1.5rem}
.nav-toggle-input:checked ~ .nav-mobile-panel{display:flex}
.nav-mobile-panel a{padding:.5rem 0;font-size:.875rem}
@media (min-width:768px){
  .nav-links{display:flex}
  .nav-toggle{display:none}
}
.btn{display:inline-flex;align-items:center;height:2.5rem;padding:0 1.25rem;border-radius:.5rem;font-size:.875rem;font-weight:600;white-space:nowrap;border:none;cursor:pointer}
.btn-white{background:#fff;color:var(--color-text);box-shadow:var(--shadow-lg)}
.btn-accent{background:var(--tpl-accent);color:#fff}
.btn-pill{border-radius:999px}
.btn-lg{height:3rem;padding:0 1.75rem;font-size:1rem}
/* Scroll reveal is pure CSS and opt-in only: fully visible by default
   (works with JS disabled, in every browser), animates only where
   scroll-driven animations are supported — nothing depends on JS to
   become visible. Mirrors components/site-preview/site-preview.css. */
@supports (animation-timeline: view()) {
  [data-reveal]{animation:tpl-reveal linear both;animation-timeline:view();animation-range:entry 0% cover 25%}
  @keyframes tpl-reveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
  @media (prefers-reduced-motion: reduce){[data-reveal]{animation:none}}
}
@keyframes tpl-fade-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.tpl-hero-enter{animation:tpl-fade-up .8s cubic-bezier(.22,1,.36,1) both}
.tpl-hero-enter-delay{animation-delay:.12s}
@media (prefers-reduced-motion: reduce){.tpl-hero-enter{animation:none}}
/* Legal / terms page — utilitarian and shared across all three templates
   (each supplies its own page-header + page wrapper around it). */
.tpl-legal{max-width:44rem;margin-inline:auto}
.tpl-legal__section + .tpl-legal__section{margin-top:2.5rem}
.tpl-legal__section h2{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}
.tpl-legal__section p{color:var(--muted-foreground);line-height:1.7}
.tpl-legal__section p + p{margin-top:.75rem}
/* FAQ page — simple list (no accordion/JS), shared across all templates
   (each supplies its own page-header + page wrapper around it). */
.tpl-faq{max-width:44rem;margin-inline:auto}
.tpl-faq__item + .tpl-faq__item{margin-top:2rem}
.tpl-faq__q{font-size:1.1rem;font-weight:600;margin-bottom:.5rem}
.tpl-faq__a{color:var(--muted-foreground);line-height:1.7}
/* Per-offering detail page — shared body, wrapped by each template's chrome. */
.tpl-offering{max-width:44rem;margin-inline:auto}
.tpl-offering__media{width:100%;max-height:20rem;object-fit:cover;border-radius:.75rem;margin-bottom:1.5rem}
.tpl-offering p{color:var(--muted-foreground);line-height:1.75}
.tpl-offering p + p{margin-top:.9rem}
.tpl-offering__features{margin:1.75rem 0 0;padding:0;list-style:none;display:grid;gap:.6rem}
.tpl-offering__features li{padding:.7rem 1rem;border:1px solid var(--border);border-radius:.6rem;background:var(--card);line-height:1.55}
.tpl-offering__features li::before{content:"\2713";color:var(--tpl-accent);font-weight:700;margin-right:.6rem}
.tpl-offering__commerce{margin-top:2.25rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.tpl-offering__contact{color:var(--tpl-accent);font-weight:600}
.tpl-offering__others{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font-size:.9rem}
.tpl-offering__others span{color:var(--muted-foreground)}
.tpl-offering__others a{color:var(--tpl-accent)}
.tpl-offering__more{display:inline-block;margin-top:.5rem;font-size:.9rem;font-weight:600;color:var(--tpl-accent)}
/* Lead-capture form — shared across templates' contact pages. */
.tpl-lead-form{margin:1.75rem auto;max-width:34rem;text-align:left;display:grid;gap:1rem}
.tpl-lead-form label{display:grid;gap:.35rem;font-size:.85rem;font-weight:600}
.tpl-lead-form input,.tpl-lead-form textarea,.tpl-lead-form select{font:inherit;padding:.65rem .8rem;border:1px solid var(--border);border-radius:.55rem;background:var(--card);color:var(--foreground);width:100%}
.tpl-lead-form input:focus,.tpl-lead-form textarea:focus,.tpl-lead-form select:focus{outline:2px solid var(--tpl-accent);outline-offset:1px}
.tpl-lead-form__row{display:grid;gap:1rem}
@media (min-width:560px){.tpl-lead-form__row{grid-template-columns:1fr 1fr}}
.tpl-lead-form__hp{position:absolute;left:-9999px;height:0;width:0;opacity:0}
.tpl-lead-form button{justify-self:start}
.tpl-lead-form__status{min-height:1.25rem;font-size:.9rem;color:var(--muted-foreground)}
.tpl-lead-form__consent{font-size:.8rem;color:var(--muted-foreground)}
.tpl-lead-form__consent a{color:inherit;text-decoration:underline}
/* Directory — optional linked list on the about page, shared across templates. */
.tpl-directory{margin-top:3rem}
.tpl-directory__heading{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}
.tpl-directory__intro{color:var(--muted-foreground);line-height:1.7;margin-bottom:1.25rem;max-width:44rem}
.tpl-directory__list{display:grid;gap:.75rem}
.tpl-directory__item{display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:.75rem;background:var(--card)}
.tpl-directory__link{font-weight:600;color:var(--tpl-accent);width:fit-content}
.tpl-directory__link:hover{text-decoration:underline;text-underline-offset:3px}
.tpl-directory__desc{font-size:.875rem;color:var(--muted-foreground)}
.tpl-logo-mark{height:1.6em;width:1.6em;border-radius:22%;vertical-align:middle;margin-right:.45em}
.tpl-powered-by{display:block;margin-top:.75rem;font-size:.75rem;color:var(--muted-foreground)}
/* --- Home-page primitives -------------------------------------------------
   Token-driven and template-agnostic: every template composes its home
   sections out of these, so a custom accent or a new template inherits the
   same typographic hierarchy, icon treatment, and section rhythm. */
.tpl-eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--tpl-accent)}
.tpl-eyebrow::before{content:"";display:block;width:1.75rem;height:2px;border-radius:2px;background-image:var(--tpl-gradient)}
.tpl-section-head{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;max-width:44rem}
.tpl-section-head--center{margin-inline:auto;align-items:center;text-align:center}
.tpl-section-head__title{font-size:var(--tpl-h1);line-height:1.12;letter-spacing:-0.03em;text-wrap:balance}
.tpl-section-head__lede{max-width:var(--tpl-measure);font-size:var(--tpl-body-lg);line-height:1.65;color:var(--muted-foreground);text-wrap:pretty}
/* Wide screens set a left-aligned head as a magazine deck: heading in the
   first column, lede in the second, instead of one narrow ragged stack with
   half the row empty. */
@media (min-width:1024px){
  .tpl-section-head:not(.tpl-section-head--center){display:grid;grid-template-columns:1.05fr 1fr;column-gap:4rem;align-items:start;max-width:none}
  .tpl-section-head:not(.tpl-section-head--center) .tpl-eyebrow{grid-column:1/-1;justify-self:start}
  .tpl-section-head:not(.tpl-section-head--center) .tpl-section-head__lede{padding-top:.4rem}
}
/* The icon an ignition run picks per feature, given a real container:
   accent-tinted tile, hairline rim, inset highlight. */
.tpl-icon-tile{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.875rem;height:2.875rem;border-radius:.9rem;color:var(--tpl-accent);background:var(--tpl-accent-tint);border:1px solid var(--tpl-accent-line);box-shadow:inset 0 1px 0 rgba(255,255,255,.28)}
.tpl-icon-tile .icon{width:1.3rem;height:1.3rem}
.tpl-icon-tile--plain{width:auto;height:auto;border:none;background:none;box-shadow:none;border-radius:0}
/* The home highlight as a designed pull-quote — gradient rule, display
   size, measured line length, attributed to the business itself. */
.tpl-quote{display:flex;flex-direction:column;gap:1.35rem;max-width:46rem}
.tpl-quote::before{content:"";display:block;width:3.5rem;height:.3rem;border-radius:999px;background-image:var(--tpl-gradient)}
.tpl-eyebrow + .tpl-quote::before{display:none}
.tpl-quote--center{margin-inline:auto;align-items:center;text-align:center}
.tpl-quote__text{font-size:var(--tpl-quote);font-weight:500;line-height:1.32;letter-spacing:-0.02em;text-wrap:pretty}
.tpl-quote__text strong{font-weight:600;color:var(--tpl-accent)}
.tpl-quote__by{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--muted-foreground)}
.tpl-card-hover{transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,border-color .25s ease}
.tpl-card-hover:hover{transform:translateY(-3px);box-shadow:var(--tpl-card-shadow-hover);border-color:var(--tpl-accent-line)}
@media (prefers-reduced-motion: reduce){.tpl-card-hover{transition:none}.tpl-card-hover:hover{transform:none}}
/* Section shell + the feature grid every template's home page is built from.
   Cards flow into a responsive grid; a feature that drew a gallery image
   spans the full row as a media block. Templates re-skin these (borders,
   radius, ground) without re-implementing the layout. */
.tpl-section{padding:var(--tpl-section-y) 1.5rem}
.tpl-section--alt{background:var(--tpl-surface-alt)}
.tpl-section__inner{max-width:72rem;margin-inline:auto}
.tpl-features__grid{margin-top:3.25rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}
.tpl-feature{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;padding:1.75rem;border:1px solid var(--border);border-radius:1rem;background:var(--card);box-shadow:var(--tpl-card-shadow)}
.tpl-feature__num{font-size:.75rem;font-weight:600;letter-spacing:.14em;color:var(--muted-foreground)}
.tpl-feature h3{font-size:1.1875rem;letter-spacing:-0.015em}
.tpl-feature p{max-width:34rem;font-size:.9375rem;line-height:1.65;color:var(--muted-foreground);text-wrap:pretty}
.tpl-feature--media{grid-column:1/-1;padding:0;overflow:hidden}
.tpl-feature__media{width:100%;aspect-ratio:16/7;object-fit:cover}
.tpl-feature__body{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;padding:1.75rem}
@media (min-width:768px){
  .tpl-feature--media{flex-direction:row;align-items:stretch;gap:0}
  .tpl-feature--media .tpl-feature__media{width:44%;aspect-ratio:auto;min-height:16rem}
  .tpl-feature__body{flex:1;justify-content:center;padding:2.75rem}
  .tpl-feature--reverse{flex-direction:row-reverse}
}

.storefront-logo{font-size:1.125rem;font-weight:800}
.storefront-nav{backdrop-filter:blur(8px)}
.storefront-nav-links{gap:1.5rem}
.storefront-nav-links a{font-size:.875rem;font-weight:500;color:var(--muted-foreground)}
.storefront-nav-links a:hover{color:var(--foreground)}
.storefront-nav-links a.is-contact{border-radius:.5rem;padding:.5rem 1rem;color:#fff;font-weight:600;background:var(--tpl-accent)}
.storefront-hero{position:relative;isolation:isolate;display:flex;min-height:auto;align-items:center;overflow:hidden;text-align:center;color:#fff}
.storefront-hero--image{min-height:66svh}
.storefront-hero-field{color:var(--foreground);background:radial-gradient(60% 55% at 85% 0%, var(--tpl-accent-wash), transparent 62%),var(--background)}
.storefront-hero-field::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(color-mix(in oklab, var(--foreground) 8%, transparent) 1px, transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 72%);mask-image:linear-gradient(180deg,#000,transparent 72%);opacity:.55}
.storefront-hero__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.storefront-hero__scrim{position:absolute;inset:0;background-image:linear-gradient(180deg, color-mix(in oklab, var(--tpl-accent) 55%, transparent) 0%, rgba(0,0,0,.55) 100%)}
.storefront-hero__inner{position:relative;max-width:52rem;margin-inline:auto;padding:5rem 1.5rem}
.storefront-hero h1{font-size:var(--tpl-display);font-weight:600;letter-spacing:-0.03em;line-height:1.04}
.storefront-hero p{margin-top:1.25rem;max-width:40rem;margin-inline:auto;font-size:1.125rem;color:rgba(255,255,255,.9)}
.storefront-hero-field p{color:var(--muted-foreground)}
/* Retail skin: soft rounded cards on a tinted band, centred head. */
.storefront-features{background:radial-gradient(60% 50% at 50% 0%, var(--tpl-accent-wash), transparent 70%),var(--background)}
.storefront-features .tpl-feature{border-radius:1.25rem;padding:2rem;border-color:color-mix(in oklab, var(--foreground) 10%, transparent)}
.storefront-features .tpl-feature h3{font-weight:700}
.storefront-features .tpl-feature--media{border-radius:1.5rem}
.storefront-stats{color:#fff;background-image:var(--tpl-gradient)}
.storefront-stats__inner{display:grid;grid-template-columns:repeat(1,1fr);gap:2rem;max-width:64rem;margin-inline:auto;padding:3.5rem 1.5rem;text-align:center}
@media (min-width:640px){.storefront-stats__inner{grid-template-columns:repeat(3,1fr)}}
.storefront-stats__value{font-size:2.5rem;font-weight:800}
@media (min-width:640px){.storefront-stats__value{font-size:3rem}}
.storefront-stats__label{margin-top:.5rem;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.85)}
.storefront-promise{display:flex;flex-direction:column;align-items:center;gap:1.75rem;max-width:52rem;margin-inline:auto;padding:var(--tpl-section-y) 1.5rem;text-align:center}
.storefront-cta-field{border-top:1px solid var(--border);background:radial-gradient(50% 60% at 50% 0%, var(--tpl-accent-wash), transparent 65%),var(--background)}
.storefront-cta{position:relative;padding:5.5rem 1.5rem;text-align:center;color:var(--foreground)}
.storefront-cta__inner{position:relative;max-width:44rem;margin-inline:auto}
.storefront-cta h2{font-size:1.75rem;font-weight:600;letter-spacing:-0.02em}
@media (min-width:640px){.storefront-cta h2{font-size:2.25rem}}
.storefront-cta p{margin-top:.75rem;max-width:36rem;margin-inline:auto;color:var(--muted-foreground)}
.storefront-cta .btn{margin-top:1.5rem}
.storefront-page-header{padding:5rem 1.5rem;text-align:center;color:var(--foreground)}
@media (min-width:640px){.storefront-page-header{padding:6rem 1.5rem}}
.storefront-page-header__eyebrow{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--tpl-accent)}
.storefront-page-header h1{margin-top:.75rem;font-size:var(--tpl-h1);font-weight:600;letter-spacing:-0.03em}
.storefront-page{max-width:72rem;margin-inline:auto;padding:4rem 1.5rem}
.storefront-about-story{max-width:56rem;margin-inline:auto}
.storefront-about-story p{font-size:1.125rem;line-height:1.7;color:var(--muted-foreground)}
.storefront-about-story p + p{margin-top:1.25rem}
.storefront-values{max-width:56rem;margin-inline:auto;margin-top:3rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.storefront-values__card{border-radius:1rem;background:var(--card);padding:1.25rem;text-align:center;box-shadow:var(--shadow-sm);border:1px solid color-mix(in oklab, var(--foreground) 10%, transparent)}
.storefront-values__bar{margin-inline:auto;height:.5rem;width:2.5rem;border-radius:999px;background-image:var(--tpl-gradient)}
.storefront-values h3{margin-top:1rem;font-weight:700}
.storefront-values p{margin-top:.375rem;font-size:.875rem;color:var(--muted-foreground)}
.storefront-offerings{margin-top:0;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.storefront-offerings__card{display:flex;flex-direction:column;overflow:hidden;border-radius:1rem;background:var(--card);box-shadow:var(--shadow-sm);border:1px solid color-mix(in oklab, var(--foreground) 10%, transparent)}
.storefront-offerings__media{height:10rem;width:100%;object-fit:cover}
.storefront-offerings__card-body{display:flex;flex:1;flex-direction:column;padding:1.5rem}
.storefront-offerings__card-body h3{font-size:1.125rem;font-weight:700}
.storefront-offerings__card-body p{margin-top:.375rem;flex:1;font-size:.875rem;color:var(--muted-foreground)}
.storefront-offerings__price{margin-top:1rem;display:inline-flex;width:fit-content;border-radius:999px;padding:.25rem .75rem;font-size:.875rem;font-weight:700;color:#fff;background-image:var(--tpl-gradient)}
.storefront-offerings__buy{margin-top:1rem;display:inline-flex;width:fit-content;align-items:center;justify-content:center;border-radius:999px;padding:.6rem 1.15rem;font-size:.875rem;font-weight:700;color:#fff;background-image:var(--tpl-gradient);box-shadow:var(--shadow-sm)}
.storefront-contact{max-width:36rem;margin-inline:auto;padding:6rem 1.5rem;text-align:center}
.storefront-contact__box{position:relative;isolation:isolate;overflow:hidden;border-radius:1.5rem;padding:2.5rem;color:#fff;box-shadow:var(--shadow-lg);background-image:var(--tpl-gradient)}
.storefront-contact__box::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 80% at 100% 0%, rgba(255,255,255,.25), transparent 55%)}
.storefront-contact__box h1{font-size:1.875rem;font-weight:800}
.storefront-contact__box p{margin-top:.75rem;max-width:28rem;margin-inline:auto;color:rgba(255,255,255,.9)}
.storefront-contact__box .btn{margin-top:1.5rem}
.storefront-contact__location{margin-top:1rem;font-size:.875rem;color:rgba(255,255,255,.8)}
.storefront-footer{background:var(--foreground)}
.storefront-footer__inner{display:grid;gap:2.5rem;max-width:72rem;margin-inline:auto;padding:3.5rem 1.5rem;grid-template-columns:1fr;color:#fff}
@media (min-width:640px){.storefront-footer__inner{grid-template-columns:repeat(3,1fr)}}
.storefront-footer__tagline{margin-top:.75rem;max-width:18rem;font-size:.875rem;color:rgba(255,255,255,.85)}
.storefront-footer__nav{display:flex;flex-direction:column;gap:.5rem}
.storefront-footer__nav a{font-size:.875rem;color:rgba(255,255,255,.85)}
.storefront-footer__nav a:hover{color:#fff}
.storefront-footer__contact{font-size:.875rem;color:rgba(255,255,255,.85)}
@media (min-width:640px){.storefront-footer__contact{text-align:right}}
.storefront-footer__contact a{color:rgba(255,255,255,.85)}
.storefront-footer__contact a:hover{color:#fff}
.storefront-footer__copy{border-top:1px solid rgba(255,255,255,.2);padding:1.25rem;text-align:center;font-size:.75rem;color:rgba(255,255,255,.8)}
