:root {
  color-scheme: light;
  --wsb-bg: #FAF5F1;
  --wsb-surface: #FFFBF8;
  --wsb-surface-soft: #F6EFEE;
  --wsb-rose: #D68BA3;
  --wsb-rose-deep: #9C506A;
  --wsb-rose-soft: #F8E9EF;
  --wsb-mauve: #CFBFC8;
  --wsb-lilac: #E2D3DF;
  --wsb-ink: #342A32;
  --wsb-copy: #5D525A;
  --wsb-muted: #70636C;
  --wsb-line: #E7DDD6;
  --wsb-shadow: 0 20px 55px rgba(83, 61, 75, .09);
  --wsb-shadow-soft: 0 9px 28px rgba(83, 61, 75, .07);
}

html { scroll-behavior: smooth; }

body.page-links,
body.page-vendors,
body.page-checklist,
body.page-quote-request,
body.page-quote-template,
body.page-payment,
body.page-redirect,
body.page-admin {
  color: var(--wsb-ink);
  background:
    radial-gradient(circle at 8% 5%, rgba(226, 211, 223, .66), transparent 28rem),
    radial-gradient(circle at 92% 16%, rgba(248, 233, 239, .82), transparent 30rem),
    var(--wsb-bg);
  font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Segoe UI", sans-serif;
}

body.page-links a,
body.page-vendors a,
body.page-checklist a,
body.page-quote-request a,
body.page-quote-template a,
body.page-payment a,
body.page-redirect a,
body.page-admin a { -webkit-tap-highlight-color: transparent; }

/* Shared brand and navigation */
.page-vendors .topbar,
.page-checklist .topbar,
.page-quote-template .topbar {
  border-bottom: 1px solid rgba(231, 221, 214, .72);
  background: rgba(250, 245, 241, .86);
  box-shadow: 0 5px 22px rgba(83, 61, 75, .035);
  backdrop-filter: blur(20px) saturate(145%);
}

.page-vendors .brand img,
.page-checklist .brand img,
.page-quote-request .brand img,
.page-quote-template .brand img {
  border-radius: 13px;
  box-shadow: 0 7px 17px rgba(83, 61, 75, .09);
}

.page-vendors .brand,
.page-checklist .brand,
.page-quote-request .brand,
.page-quote-template .brand {
  color: var(--wsb-ink);
  letter-spacing: -.025em;
}

.page-vendors .button,
.page-checklist .button,
.page-quote-request .button,
.page-quote-template .button,
.page-payment main > a,
.page-admin main > a,
.page-redirect main > a {
  border-radius: 18px;
  border: 1px solid rgba(156, 80, 106, .2);
  color: var(--wsb-ink);
  background: linear-gradient(135deg, #F1CAD7, var(--wsb-lilac));
  box-shadow: 0 12px 26px rgba(125, 83, 103, .16);
  transition: transform .22s ease, box-shadow .22s ease, filter .22s ease;
}

.page-vendors .button:hover,
.page-checklist .button:hover,
.page-quote-request .button:hover,
.page-quote-template .button:hover,
.page-payment main > a:hover,
.page-admin main > a:hover,
.page-redirect main > a:hover {
  transform: translateY(-2px);
  box-shadow: 0 17px 34px rgba(125, 83, 103, .2);
  filter: saturate(1.04);
}

.page-vendors .button.secondary,
.page-vendors .button.dark,
.page-checklist .button.secondary,
.page-quote-request .button.ghost,
.page-quote-template .button.secondary {
  border: 1px solid var(--wsb-line);
  color: var(--wsb-ink);
  background: rgba(255, 251, 248, .88);
  box-shadow: 0 8px 20px rgba(83, 61, 75, .05);
}

/* Link hub */
.page-links {
  min-height: 100vh;
  overflow-x: hidden;
}

.page-links .page {
  max-width: 590px;
  padding: 42px 18px 32px;
  align-content: start;
}

.page-links .card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(231, 221, 214, .8);
  border-radius: 30px;
  padding: 30px;
  background: rgba(255, 251, 248, .91);
  box-shadow: var(--wsb-shadow);
  backdrop-filter: blur(24px) saturate(130%);
}

.page-links .card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 150px;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 20%, rgba(255, 255, 255, .88), transparent 35%),
    linear-gradient(135deg, rgba(248, 233, 239, .85), rgba(226, 211, 223, .58));
}

.page-links .profile { position: relative; gap: 13px; }
.page-links .profile img { width: 88px; height: 88px; border-radius: 24px; box-shadow: 0 14px 30px rgba(83, 61, 75, .13); }
.page-links h1 { color: var(--wsb-ink); font-size: 31px; letter-spacing: -.035em; }
.page-links .tagline { color: var(--wsb-copy); font-weight: 670; }

.page-links .audience,
.page-links .link,
.page-links .service-categories li,
.page-links .share-button {
  border-color: var(--wsb-line);
  background: rgba(255, 251, 248, .92);
}

.page-links .audiences { position: relative; gap: 11px; }
.page-links .audience { overflow: hidden; border-radius: 20px; padding: 17px; box-shadow: var(--wsb-shadow-soft); }
.page-links .audience:first-child { background: linear-gradient(145deg, #FFFBF8, #F8E9EF); }
.page-links .audience:last-child { background: linear-gradient(145deg, #FFFBF8, #EEE5EC); }
.page-links .audience::before {
  content: "";
  display: block;
  height: 72px;
  margin: -17px -17px 15px;
  background-position: center;
  background-size: cover;
}
.page-links .audience:first-child::before { background-image: linear-gradient(90deg, rgba(255,251,248,.08), rgba(255,251,248,.3)), url('/assets/visuals/wedding-bride-soft-v2.jpg'); background-position: center 34%; }
.page-links .audience:last-child::before { background-image: linear-gradient(90deg, rgba(255,251,248,.08), rgba(255,251,248,.3)), url('/assets/visuals/wedding-photographer-soft-v2.jpg'); background-position: center 40%; }
.page-links .audience b,
.page-links .service-categories li { color: var(--wsb-rose-deep); }
.page-links .audience p,
.page-links .service-guide p,
.page-links .store-note,
.page-links .share-status,
.page-links .link span,
.page-links .footer { color: var(--wsb-muted); }

.page-links .service-guide { border-color: var(--wsb-line); }
.page-links .service-categories li { padding: 7px 11px; }
.page-links .links { gap: 11px; }
.page-links .link { min-height: 72px; border-radius: 20px; padding: 12px 14px; box-shadow: 0 7px 19px rgba(83, 61, 75, .045); }
.page-links .link.primary { border-color: rgba(156,80,106,.2); color: var(--wsb-ink); background: linear-gradient(135deg, #F1CAD7, var(--wsb-lilac)); box-shadow: 0 15px 32px rgba(125,83,103,.17); }
.page-links .icon { border-radius: 14px; background: var(--wsb-mauve); }
.page-links .icon.app {
  background: linear-gradient(180deg, #22b9fa 0%, #0a84ff 58%, #0874dd 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .22),
    0 5px 13px rgba(10, 132, 255, .24);
}
.page-links .icon.play { color: var(--wsb-ink); background: var(--wsb-lilac); }
.page-links .share-button { border-radius: 18px; color: var(--wsb-rose-deep); }
.page-links .link:hover,
.page-links .share-button:hover { border-color: rgba(214, 139, 163, .58); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(83, 61, 75, .1); }

/* Vendor acquisition */
.page-vendors { --ink: var(--wsb-ink); --muted: var(--wsb-muted); --paper: var(--wsb-bg); --surface: var(--wsb-surface); --soft: var(--wsb-rose-soft); --line: var(--wsb-line); --rose: var(--wsb-rose); --rose-deep: var(--wsb-rose-deep); }
.page-vendors .hero { position: relative; isolation: isolate; color: var(--wsb-ink); background: linear-gradient(145deg, #FAF5F1 15%, #F8E9EF 58%, #E2D3DF); }
.page-vendors .hero::before { content: ""; position: absolute; z-index: -1; width: 430px; height: 430px; top: -180px; left: -130px; border-radius: 50%; background: rgba(255,255,255,.55); filter: blur(2px); }
.page-vendors .hero .wrap { min-height: 500px; padding-block: 54px; }
.page-vendors .eyebrow { color: var(--wsb-rose-deep); background: rgba(255,251,248,.72); border: 1px solid rgba(214,139,163,.25); }
.page-vendors .hero h1 { max-width: 620px; color: var(--wsb-ink); font-size: clamp(33px, 3.8vw, 42px); line-height: 1.16; }
.page-vendors .hero p { color: var(--wsb-copy); font-size: 16px; }
.page-vendors .section { padding-block: 58px; }
.page-vendors .section-head { max-width: 720px; margin-bottom: 23px; }
.page-vendors .section-head h2 { font-size: clamp(26px, 2.8vw, 32px); line-height: 1.24; letter-spacing: -.025em; }
.page-vendors .final { padding-block: 50px; }
.page-vendors .final h2 { font-size: clamp(26px, 3vw, 32px); line-height: 1.25; }
.page-vendors .hero-proof {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 28px;
  padding: 25px;
  color: var(--wsb-ink);
  background:
    linear-gradient(rgba(255,251,248,.88), rgba(255,251,248,.92)),
    url('/assets/visuals/wedding-photographer-soft-v2.jpg') center 38%/cover no-repeat;
  box-shadow: var(--wsb-shadow);
}
.page-vendors .hero-proof div { border-color: rgba(207,191,200,.42); }
.page-vendors .hero-proof span { color: var(--wsb-muted); }
.page-vendors .section.soft { background: rgba(255,251,248,.72); }
.page-vendors .card,
.page-vendors .step,
.page-vendors .compare article,
.page-vendors .price-card,
.page-vendors .calculator,
.page-vendors .region,
.page-vendors .faq details {
  border-color: var(--wsb-line);
  border-radius: 24px;
  background: rgba(255,251,248,.92);
  box-shadow: var(--wsb-shadow-soft);
}
.page-vendors .card .icon { border-radius: 16px; background: var(--wsb-rose-soft); }
.page-vendors .grid .card { overflow: hidden; }
.page-vendors .grid .card::before {
  content: "";
  display: block;
  height: 86px;
  margin: -22px -22px 17px;
  background-position: center;
  background-size: cover;
}
.page-vendors .grid .card:nth-child(1)::before { background-image: url('/assets/visuals/wedding-couple-soft-v2.jpg'); background-position: center 40%; }
.page-vendors .grid .card:nth-child(2)::before { background-image: url('/assets/visuals/wedding-video-soft-v2.jpg'); background-position: center 48%; }
.page-vendors .grid .card:nth-child(3)::before { background-image: url('/assets/visuals/wedding-album-soft-v2.jpg'); background-position: center 55%; }
.page-vendors .grid .card:nth-child(4)::before { background-image: url('/assets/visuals/wedding-iphone-snap-soft-v2.jpg'); background-position: center 44%; }
.page-vendors .step i { background: linear-gradient(135deg, var(--wsb-rose-deep), var(--wsb-rose)); }
.page-vendors .compare article.highlight { border-color: rgba(214,139,163,.45); background: linear-gradient(145deg, var(--wsb-surface), var(--wsb-rose-soft)); }
.page-vendors .notice { border-color: rgba(207,191,200,.55); background: rgba(226,211,223,.42); color: var(--wsb-copy); }
.page-vendors .price-card.recommended { border-color: var(--wsb-rose); box-shadow: 0 18px 42px rgba(184,103,129,.13); }
.page-vendors .price-card .tag { color: var(--wsb-rose-deep); background: var(--wsb-rose-soft); }
.page-vendors .calculator input { border-radius: 16px; background: var(--wsb-surface); }
.page-vendors .calc-results div { border-radius: 17px; background: var(--wsb-surface-soft); }
.page-vendors .final { color: var(--wsb-ink); background: linear-gradient(135deg, var(--wsb-lilac), var(--wsb-rose-soft)); }
.page-vendors .final p { color: var(--wsb-copy); }

/* Checklist */
.page-checklist { --ink: var(--wsb-ink); --muted: var(--wsb-muted); --paper: var(--wsb-bg); --surface: var(--wsb-surface); --line: var(--wsb-line); --rose: var(--wsb-rose); --rose-deep: var(--wsb-rose-deep); --soft: var(--wsb-rose-soft); }
.page-checklist .hero { position: relative; padding-top: 70px; }
.page-checklist .hero h1 { max-width: 690px; font-size: clamp(31px, 4vw, 40px); line-height: 1.2; }
.page-checklist .hero p { color: var(--wsb-copy); font-size: 16px; }
.page-checklist .hero::after { content: ""; display: block; width: 100%; height: 190px; margin-top: 27px; border-radius: 28px; background: linear-gradient(90deg, rgba(250,245,241,.06), rgba(250,245,241,.7)), url('/assets/visuals/wedding-ceremony-soft-v2.jpg') center 52%/cover; box-shadow: var(--wsb-shadow-soft); }
.page-checklist .eyebrow { color: var(--wsb-rose-deep); background: var(--wsb-rose-soft); }
.page-checklist .progress-card { border-color: var(--wsb-line); border-radius: 22px; background: rgba(255,251,248,.91); box-shadow: var(--wsb-shadow); backdrop-filter: blur(18px); }
.page-checklist .progress-card span { color: var(--wsb-rose-deep); }
.page-checklist .track { background: var(--wsb-lilac); }
.page-checklist .fill { background: linear-gradient(90deg, var(--wsb-mauve), var(--wsb-rose)); }
.page-checklist .category-nav a { border-color: var(--wsb-line); border-radius: 17px; background: var(--wsb-surface); box-shadow: 0 6px 16px rgba(83,61,75,.04); }
.page-checklist .section { border-color: var(--wsb-line); border-radius: 26px; background: rgba(255,251,248,.92); box-shadow: var(--wsb-shadow-soft); }
.page-checklist .section { overflow: hidden; }
.page-checklist .section::before {
  content: "";
  display: block;
  height: 70px;
  margin: -24px -24px 20px;
  background-position: center;
  background-size: cover;
}
.page-checklist #common::before { background-image: linear-gradient(90deg, rgba(255,251,248,.12), rgba(255,251,248,.35)), url('/assets/visuals/wedding-details-soft-v2.jpg'); background-position: center 48%; }
.page-checklist #snap::before { background-image: url('/assets/visuals/wedding-couple-soft-v2.jpg'); background-position: center 38%; }
.page-checklist #ceremonyVideo::before { background-image: url('/assets/visuals/wedding-video-soft-v2.jpg'); background-position: center 46%; }
.page-checklist #iphoneSnap::before { background-image: url('/assets/visuals/wedding-iphone-snap-soft-v2.jpg'); background-position: center 43%; }
.page-checklist .icon { border-radius: 16px; color: var(--wsb-rose-deep); background: var(--wsb-rose-soft); }
.page-checklist .checks label { border-color: rgba(231,221,214,.85); border-radius: 17px; background: var(--wsb-surface); transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.page-checklist .checks label:has(input:checked) { border-color: rgba(214,139,163,.48); background: var(--wsb-rose-soft); }
.page-checklist .checks label:hover { transform: translateY(-1px); }
.page-checklist .checks input { accent-color: var(--wsb-rose-deep); }
.page-checklist .memo { border-color: var(--wsb-line); border-radius: 17px; background: var(--wsb-surface); }
.page-checklist .notice { border-color: rgba(207,191,200,.6); color: var(--wsb-copy); background: rgba(226,211,223,.46); }

/* Customer quote draft */
.page-quote-request { --ink: var(--wsb-ink); --muted: var(--wsb-muted); --paper: var(--wsb-bg); --line: var(--wsb-line); --rose: var(--wsb-rose); --rose-deep: var(--wsb-rose-deep); }
.page-quote-request .wrap { max-width: 850px; padding-top: 24px; }
.page-quote-request .hero,
.page-quote-request .card { border-color: rgba(231,221,214,.78); border-radius: 28px; background: rgba(255,251,248,.92); box-shadow: var(--wsb-shadow); }
.page-quote-request .hero { position: relative; overflow: hidden; padding: 36px; }
.page-quote-request .hero::after { content: ""; position: absolute; width: 230px; height: 230px; right: -35px; bottom: -60px; border-radius: 50%; opacity: .85; background: linear-gradient(135deg, rgba(248,233,239,.08), rgba(226,211,223,.54)), url('/assets/visuals/wedding-bride-soft-v2.jpg') center 30%/cover; }
.page-quote-request .hero > * { position: relative; z-index: 1; max-width: 72%; }
.page-quote-request .eyebrow { color: var(--wsb-rose-deep); background: var(--wsb-rose-soft); }
.page-quote-request .proof { max-width: 100%; }
.page-quote-request .proof div,
.page-quote-request .how div { border-color: var(--wsb-line); border-radius: 17px; background: var(--wsb-surface-soft); }
.page-quote-request .card { padding: 29px; }
.page-quote-request .notice { border-color: rgba(207,191,200,.55); border-radius: 18px; color: var(--wsb-copy); background: rgba(226,211,223,.43); }
.page-quote-request input { border-color: var(--wsb-line); border-radius: 16px; background: var(--wsb-surface); }
.page-quote-request input:focus { border-color: var(--wsb-rose); outline-color: rgba(214,139,163,.14); }
.page-quote-request .choice { border-color: var(--wsb-line); border-radius: 20px; background: var(--wsb-surface); transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.page-quote-request .choice { min-height: 92px; overflow: hidden; padding-right: 88px; }
.page-quote-request .choice::after {
  content: "";
  position: absolute;
  inset: 8px 8px 8px auto;
  width: 68px;
  border-radius: 15px;
  background-position: center;
  background-size: cover;
  opacity: .92;
}
.page-quote-request .choice:nth-child(1)::after { background-image: url('/assets/visuals/wedding-couple-soft-v2.jpg'); background-position: 46% center; }
.page-quote-request .choice:nth-child(2)::after { background-image: url('/assets/visuals/wedding-video-soft-v2.jpg'); background-position: 60% center; }
.page-quote-request .choice:nth-child(3)::after { background-image: url('/assets/visuals/wedding-album-soft-v2.jpg'); background-position: 50% center; }
.page-quote-request .choice:nth-child(4)::after { background-image: url('/assets/visuals/wedding-iphone-snap-soft-v2.jpg'); background-position: 48% center; }
.page-quote-request .choice:has(input:checked) { border-color: rgba(214,139,163,.58); background: var(--wsb-rose-soft); }
.page-quote-request .choice:hover { transform: translateY(-2px); }
.page-quote-request .choice input { accent-color: var(--wsb-rose-deep); }
.page-quote-request .status { color: var(--wsb-rose-deep); }

/* Vendor quote template */
.page-quote-template { --ink: var(--wsb-ink); --muted: var(--wsb-muted); --paper: var(--wsb-bg); --surface: var(--wsb-surface); --line: var(--wsb-line); --rose: var(--wsb-rose-deep); --rose2: var(--wsb-rose); }
.page-quote-template .hero { position: relative; padding-top: 74px; }
.page-quote-template .hero h1 { max-width: 700px; font-size: clamp(31px, 4vw, 40px); line-height: 1.18; }
.page-quote-template .lead { max-width: 720px; color: var(--wsb-copy); font-size: 16px; }
.page-quote-template .hero::after { content: ""; display: block; height: 180px; margin-top: 28px; border-radius: 28px; background: linear-gradient(90deg, rgba(255,251,248,.62), rgba(255,251,248,.06)), url('/assets/visuals/wedding-video-soft-v2.jpg') center 46%/cover; box-shadow: var(--wsb-shadow-soft); }
.page-quote-template .eyebrow { color: var(--wsb-rose-deep); border-color: rgba(214,139,163,.35); background: var(--wsb-rose-soft); }
.page-quote-template .trust span,
.page-quote-template .category-guide article,
.page-quote-template .panel,
.page-quote-template .quote { border-color: var(--wsb-line); background: rgba(255,251,248,.92); box-shadow: var(--wsb-shadow-soft); }
.page-quote-template .trust span { border-radius: 15px; }
.page-quote-template .category-guide article { border-radius: 20px; }
.page-quote-template .category-guide article { overflow: hidden; }
.page-quote-template .category-guide article::before {
  content: "";
  display: block;
  height: 58px;
  margin: -15px -15px 13px;
  background-position: center;
  background-size: cover;
}
.page-quote-template .category-guide article:nth-child(1)::before { background-image: url('/assets/visuals/wedding-couple-soft-v2.jpg'); background-position: center 38%; }
.page-quote-template .category-guide article:nth-child(2)::before { background-image: url('/assets/visuals/wedding-video-soft-v2.jpg'); background-position: center 46%; }
.page-quote-template .category-guide article:nth-child(3)::before { background-image: url('/assets/visuals/wedding-album-soft-v2.jpg'); background-position: center 55%; }
.page-quote-template .category-guide article:nth-child(4)::before { background-image: url('/assets/visuals/wedding-iphone-snap-soft-v2.jpg'); background-position: center 43%; }
.page-quote-template .notice { border-color: rgba(207,191,200,.58); color: var(--wsb-copy); background: rgba(226,211,223,.43); }
.page-quote-template .panel,
.page-quote-template .quote { border-radius: 26px; }
.page-quote-template .field input,
.page-quote-template .field select,
.page-quote-template .field textarea { border-color: var(--wsb-line); border-radius: 15px; background: var(--wsb-surface); }
.page-quote-template .quote-head { color: var(--wsb-ink); background: linear-gradient(135deg, var(--wsb-lilac), var(--wsb-rose-soft)); }
.page-quote-template .quote-head p { color: var(--wsb-copy); }
.page-quote-template .total { border-radius: 19px; color: var(--wsb-ink); background: linear-gradient(135deg, var(--wsb-rose-soft), var(--wsb-lilac)); }
.page-quote-template .join { border: 1px solid rgba(207,191,200,.6); border-radius: 28px; color: var(--wsb-ink); background: linear-gradient(135deg, var(--wsb-lilac), var(--wsb-rose-soft)); }
.page-quote-template .join p { color: var(--wsb-copy); }

/* Payment, admin and redirect fallbacks */
.page-payment,
.page-redirect,
.page-admin { min-height: 100vh; display: grid; place-items: center; padding: 16px; }

.page-payment main,
.page-redirect main,
.page-admin main {
  width: min(560px, 100%);
  margin: 0;
  border: 1px solid rgba(231,221,214,.82);
  border-radius: 28px;
  padding: clamp(24px, 6vw, 36px);
  color: var(--wsb-ink);
  text-align: center;
  background: rgba(255,251,248,.93);
  box-shadow: var(--wsb-shadow);
}

.page-redirect main::before,
.page-admin main::before,
.page-payment main::before {
  content: "";
  display: block;
  width: 68px;
  height: 68px;
  margin: 0 auto 18px;
  border-radius: 20px;
  background: url('/assets/weddingsnapbid-icon-192.png?v=20260805-final') center/cover;
  box-shadow: 0 10px 24px rgba(83,61,75,.11);
}

.page-payment main > a,
.page-redirect main > a,
.page-admin main > a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; margin-top: 9px; padding: 0 18px; text-decoration: none; font-weight: 850; }
.page-payment p,
.page-redirect p,
.page-admin p { color: var(--wsb-copy); }
.page-payment dl { border-color: var(--wsb-line); border-radius: 19px; background: var(--wsb-surface-soft); text-align: left; }
.page-payment .badge { color: var(--wsb-rose-deep); background: var(--wsb-rose-soft); }
.page-payment .badge.warn { color: #745f69; background: var(--wsb-lilac); }
.page-payment .badge.danger { color: #8a4259; background: #f5dfe6; }

@keyframes wsb-rise {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

.page-links .card,
.page-vendors .hero > .wrap,
.page-checklist .hero,
.page-quote-request main,
.page-quote-template .hero > .wrap,
.page-payment main,
.page-admin main,
.page-redirect main { animation: wsb-rise .62s cubic-bezier(.2,.8,.2,1) both; }

@media (max-width: 640px) {
  .page-links .page { padding: 18px 12px 28px; }
  .page-links .card { border-radius: 26px; padding: 23px 17px; }
  .page-links .audiences { grid-template-columns: 1fr; }
  .page-vendors .hero .wrap { min-height: auto; }
  .page-vendors .hero .wrap { padding-block: 42px; }
  .page-vendors .hero h1 { font-size: 32px; }
  .page-vendors .hero p,
  .page-checklist .hero p,
  .page-quote-template .lead { font-size: 15px; }
  .page-vendors .section { padding-block: 44px; }
  .page-vendors .section-head h2 { font-size: 27px; }
  .page-vendors .final h2 { font-size: 27px; }
  .page-vendors .hero-proof { display: grid; }
  .page-checklist .hero::after,
  .page-quote-template .hero::after { height: 140px; border-radius: 22px; }
  .page-checklist .hero { padding-top: 42px; }
  .page-checklist .hero h1,
  .page-quote-template .hero h1 { font-size: 31px; }
  .page-quote-template .hero { padding-top: 46px; }
  .page-checklist .category-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-checklist .section { border-radius: 22px; }
  .page-checklist .section::before { margin: -18px -18px 18px; }
  .page-quote-request .hero { padding: 25px 21px 185px; }
  .page-quote-request .hero::after { width: 220px; height: 190px; right: -25px; bottom: -25px; }
  .page-quote-request .hero > * { max-width: 100%; }
  .page-quote-request .card { padding: 22px 17px; }
  .page-quote-template .panel,
  .page-quote-template .quote { border-radius: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-delay: 0s !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-delay: 0s !important;
    transition-duration: .01ms !important;
  }

  .page-links .link:hover,
  .page-links .share-button:hover,
  .page-vendors .button:hover,
  .page-checklist .button:hover,
  .page-checklist .checks label:hover,
  .page-quote-request .button:hover,
  .page-quote-request .choice:hover,
  .page-quote-template .button:hover,
  .page-payment main > a:hover,
  .page-admin main > a:hover,
  .page-redirect main > a:hover { transform: none; }
}

@media print {
  .page-quote-template .quote-head,
  .page-quote-template .total { color: #111; background: #fff; }
}
