/* Truebridge Pest Control: theme.css (generated by scripts/build-website-templates.mjs from config.js; do not edit by hand) */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body { margin: 0; background: #f2f8f3; color: #12261c; font: 18px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
svg { max-width: 100%; flex: none; }
a { color: #c8372a; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: #a12d22; }
:focus-visible { outline: 3px solid #c8372a; outline-offset: 2px; }
h1, h2, h3 { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 .5em; text-wrap: balance; color: #12261c; }
h1 { font-size: clamp(2.5rem, 4.6vw, 4rem); line-height: 1.04; }
h2 { font-size: clamp(2rem, 3vw, 2.75rem); }
h3 { font-size: 1.5rem; line-height: 1.2; }
p, ul, ol, dl { margin: 0 0 1em; }
ul, ol { padding: 0; list-style: none; }
.bs-wrap { max-width: 1264px; margin: 0 auto; padding: 0 32px; }
.bs-skip { position: absolute; left: 12px; top: -80px; z-index: 60; background: #12261c; color: #f2f8f3; padding: 12px 20px; border-radius: 500px; font-weight: 600; }
.bs-skip:focus { top: 12px; color: #f2f8f3; }
.bs-skip:focus-visible { outline: 3px solid #ff4f40; outline-offset: 2px; }
.bs-eyebrow { display: block; font: 700 16px/1.3 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; letter-spacing: 0; color: #c8372a; margin: 0 0 12px; }
.bs-lede { font-size: 20px; line-height: 1.45; color: #5d666d; max-width: 60ch; }
.bs-note { color: #5d666d; max-width: 68ch; font-size: 16px; }
.bs-meta { color: #5d666d; font-size: 16px; margin: 0 0 10px; }
.bs-more { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; text-decoration: none; }
.bs-more:hover { text-decoration: underline; }
.bs-h2 { margin-bottom: .7em; }

/* pills */
.bs-pill { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 24px; border-radius: 500px; background: #12261c; color: #f2f8f3; font: 600 16px/1.2 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; text-decoration: none; text-align: center; border: 2px solid #12261c; }
.bs-pill:hover { background: rgb(18 38 28 / 0.86); color: #f2f8f3; }
.bs-pill--ghost { background: transparent; color: #12261c; border-color: #12261c; }
.bs-pill--ghost:hover { background: #ffffff; color: #12261c; }
.bs-pill--white { background: #ffffff; color: #12261c; border-color: #ffffff; }
.bs-pill--white:hover { background: #f2f8f3; color: #12261c; }
.bs-pill--white:focus-visible { outline: 3px solid #ff4f40; outline-offset: 2px; }

/* demo strip */
.demo-strip--bastion { background: #12261c; color: #f2f8f3; text-align: center; font-size: 14px; line-height: 1.4; padding: 10px 16px; }
.demo-strip--bastion a { color: #ff8a7e; }
.demo-strip--bastion a:focus-visible { outline: 3px solid #ff4f40; outline-offset: 2px; }

/* header: sticky 72 px mint bar */
.bs-head { position: sticky; top: 0; z-index: 40; background: #f2f8f3; border-bottom: 1px solid #d3e0d6; }
.bs-head__in { max-width: 1264px; margin: 0 auto; padding: 0 32px; min-height: 72px; display: flex; align-items: center; gap: 24px; }
.bs-mark { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; font-size: 26px; line-height: 1; color: #c8372a; text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; }
.bs-mark:hover { color: #a12d22; }
.bs-nav ul { display: flex; gap: 2px; margin: 0; }
.bs-nav a, .bs-menu__panel a { color: #12261c; text-decoration: none; font-weight: 600; }
.bs-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 500px; font-size: 16px; }
.bs-nav a:hover { background: rgb(18 38 28 / 0.06); color: #12261c; }
.bs-nav a[aria-current="page"] { background: #ffffff; color: #12261c; }
.bs-head__acts { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.bs-head__tel { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; min-width: 44px; justify-content: center; padding: 0 6px; color: #12261c; font-weight: 700; text-decoration: none; white-space: nowrap; }
.bs-head__tel:hover { color: #12261c; text-decoration: underline; }
.bs-menu { position: relative; display: none; }
.bs-menu summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 500px; background: #ffffff; border: 1px solid #d3e0d6; font-weight: 600; }
.bs-menu summary::-webkit-details-marker { display: none; }
.bs-menu[open] summary { background: #12261c; color: #f2f8f3; border-color: #12261c; }
.bs-menu__panel { position: absolute; right: 0; top: calc(100% + 12px); width: min(320px, calc(100vw - 32px)); background: #ffffff; border: 1px solid #d3e0d6; border-radius: 32px; padding: 12px 24px; }
.bs-menu__panel ul { margin: 0; }
.bs-menu__panel li + li { border-top: 1px solid #d3e0d6; }
.bs-menu__panel a { display: flex; align-items: center; min-height: 56px; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.bs-menu__panel a[aria-current="page"] { color: #c8372a; }

/* sections */
.bs-sec { padding: 88px 0; }
.bs-sec--first { padding-top: 24px; }
.bs-sh { max-width: 68ch; margin-bottom: 40px; }
.bs-sh h2 { margin-bottom: .3em; }
.bs-sh .bs-lede { margin: 0; }
.bs-split { display: grid; grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; }
.bs-split .bs-sh { margin: 0; }

/* hero: the link list is the hero */
.bs-hero { padding: 56px 0 88px; }
.bs-hero__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); grid-template-areas: "head stamp" "list card"; column-gap: 64px; row-gap: 32px; }
.bs-hero__head { grid-area: head; }
.bs-hero__head h1 { margin-bottom: .35em; }
.bs-hero__head h1 .bs-eyebrow { font-size: 18px; margin-bottom: 16px; max-width: 40ch; }
.bs-hero__head .bs-lede { margin-bottom: 20px; }
/* Phones only: the stamp falls below the list there, so the licence label is repeated as a small badge under the h1. */
.bs-hero__lic { display: none; }
.bs-hero__list { grid-area: list; }
.bs-hero__stamp { grid-area: stamp; align-self: center; justify-self: center; }
.bs-hero__card { grid-area: card; align-self: start; }
.bs-urgent { display: flex; gap: 12px; align-items: flex-start; margin: 0; font-size: 16px; color: #12261c; }
.bs-urgent span { text-wrap: pretty; }
.bs-urgent svg { color: #ff4f40; margin-top: 1px; }
.bs-urgent--hero { display: inline-flex; padding: 12px 22px; background: #ffffff; border-radius: 500px; font-weight: 600; max-width: 100%; }

/* link list */
.bs-picks { margin: 0; border-top: 1px solid #d3e0d6; }
.bs-picks li { border-bottom: 1px solid #d3e0d6; }
.bs-pick { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto 24px; grid-template-areas: "g name price go"; align-items: center; column-gap: 20px; min-height: 76px; padding: 10px 16px 10px 8px; color: #c8372a; text-decoration: none; border-radius: 32px; }
.bs-pick:hover { background: #ffffff; color: #a12d22; }
.bs-pick .bs-glyph { grid-area: g; }
.bs-pick__name { grid-area: name; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; font-size: 34px; line-height: 1.12; text-wrap: balance; }
.bs-pick__price { grid-area: price; color: #12261c; font-weight: 600; font-size: 18px; white-space: nowrap; text-align: right; }
.bs-pick__go { grid-area: go; display: inline-flex; color: #ff4f40; }
.bs-picks--sm .bs-pick { min-height: 64px; }
.bs-picks--sm .bs-pick__name { font-size: 24px; }
.bs-pick--post { grid-template-columns: minmax(0, 1fr) auto 24px; grid-template-areas: "name price go"; padding-left: 8px; }
.bs-pick--post .bs-pick__price { color: #5d666d; font-weight: 400; font-size: 16px; }
.bs-glyph { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; color: #ff4f40; }
.bs-glyph__n { font: 700 11px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; fill: #c8372a; stroke: none; }
.bs-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0 24px; }
.bs-points { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 0; font-size: 16px; }
.bs-points li { display: flex; align-items: center; gap: 8px; }
.bs-points svg { color: #ff4f40; }

/* stamp */
.bs-stamp { position: relative; width: 192px; height: 192px; color: #ff4f40; flex: none; }
.bs-stamp__ring { position: absolute; inset: 0; width: 100%; height: 100%; }
.bs-stamp__ring text { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; fill: #c8372a; letter-spacing: .04em; }
.bs-stamp__in { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 104px; margin: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; color: #12261c; font-size: 16px; line-height: 1.15; font-weight: 700; text-wrap: balance; }
.bs-stamp__in svg { color: #ff4f40; }
.bs-stamp__in--long { font-size: 14px; }

/* hero panel card */
.bs-panel { background: #ffffff; border-radius: 64px; padding: 44px 40px 40px; }
.bs-panel h2 { font-size: 28px; margin-bottom: 20px; }
.bs-panel dl { margin: 0 0 20px; }
.bs-panel dl div { display: grid; grid-template-columns: 28px 1fr; column-gap: 14px; padding: 14px 0; border-top: 1px solid #d3e0d6; }
.bs-panel dl svg { grid-row: 1 / span 2; color: #ff4f40; }
.bs-panel dt { font-weight: 700; }
.bs-panel dd { margin: 0; color: #5d666d; font-size: 16px; }
.bs-panel p { margin: 0; padding: 20px 22px; background: rgb(211 224 214 / 0.55); border-radius: 32px; font-size: 16px; color: #12261c; }

/* trust card */
.bs-trust { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; background: #ffffff; border-radius: 64px; padding: 48px 24px; }
.bs-trust li { padding: 0 28px; }
.bs-trust li + li { border-left: 1px solid #d3e0d6; }
.bs-trust__ico { color: #ff4f40; margin-bottom: 16px; }
.bs-trust h3 { font-size: 22px; }
.bs-trust p { margin: 0; color: #5d666d; font-size: 16px; }
.bs-note--lic { margin-top: 24px; }

/* steps */
.bs-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; margin: 0; }
.bs-steps li { border-top: 2px solid #ff4f40; padding-top: 20px; }
.bs-steps__n { display: block; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; font-size: 56px; line-height: 1; color: #c8372a; margin-bottom: 16px; }
.bs-steps h3 { font-size: 22px; margin-bottom: .35em; }
.bs-steps p { margin: 0; color: #5d666d; font-size: 16px; }
.bs-steps--one { grid-template-columns: 1fr; gap: 24px; }
.bs-steps--one li { display: grid; grid-template-columns: 56px 1fr; column-gap: 16px; border-top: 1px solid #d3e0d6; padding-top: 18px; }
.bs-steps--one .bs-steps__n { grid-row: 1 / span 2; font-size: 36px; margin: 0; }
.bs-steps--one li:first-child { border-top: 2px solid #ff4f40; }

/* service cards */
.bs-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0; }
.bs-card { position: relative; background: #ffffff; border-radius: 64px; padding: 40px 36px 36px; display: flex; flex-direction: column; }
.bs-card .bs-glyph { margin: 0 0 16px -4px; }
.bs-card h3 { font-size: 26px; margin-bottom: .4em; }
.bs-card h3 a { color: #c8372a; text-decoration: none; }
.bs-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 64px; }
.bs-card h3 a:focus-visible { outline: none; }
.bs-card:focus-within { outline: 3px solid #c8372a; outline-offset: 3px; }
.bs-card:hover h3 a { color: #a12d22; text-decoration: underline; }
.bs-card p { color: #5d666d; font-size: 16px; }
.bs-card__price { margin: auto 0 0; padding-top: 16px; border-top: 1px solid #d3e0d6; display: flex; justify-content: space-between; align-items: center; color: #12261c !important; font-weight: 700; font-size: 18px !important; }
.bs-card__price span { display: inline-flex; color: #ff4f40; }

/* price board */
.bs-board { background: #ffffff; border-radius: 64px; padding: 24px; }
.bs-tier { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(0, 3fr); gap: 32px; align-items: start; padding: 32px; border-radius: 40px; position: relative; }
.bs-tier + .bs-tier::before { content: ""; position: absolute; left: 32px; right: 32px; top: 0; border-top: 1px solid #d3e0d6; }
.bs-tier--pick { background: rgb(211 224 214 / 0.55); }
.bs-tier--pick::before, .bs-tier--pick + .bs-tier::before { display: none; }
.bs-tier h3 { font-size: 26px; margin-bottom: 10px; }
.bs-tier__note { margin: 0; color: #5d666d; font-size: 16px; }
.bs-tier__feat { margin: 0; font-size: 16px; }
.bs-tier__price { margin: 0; text-align: right; color: #5d666d; font-size: 16px; }
.bs-tier__price strong { display: block; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; font-size: 56px; line-height: 1; color: #12261c; margin-bottom: 8px; }
.bs-badge { display: inline-block; margin: 0 0 12px; padding: 4px 10px; background: #ffffff; border: 1.5px solid #ff4f40; border-radius: 4px; color: #c8372a; font-size: 14px; font-weight: 700; line-height: 1.3; }
.bs-badge--plain { border-color: #d3e0d6; color: #5d666d; margin: 0; }
.bs-sec--pricing .bs-note { margin: 24px 0 0; }
.bs-ticks { margin: 0; }
.bs-ticks li { position: relative; padding-left: 32px; margin-bottom: 10px; }
.bs-ticks li::before { content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path d='M16 3.5l10 3.75V15c0 6.4-4.4 11-10 13.5C10.4 26 6 21.4 6 15V7.25z' fill='none' stroke='%23ff4f40' stroke-width='2.4' stroke-linejoin='round'/><path d='M11.5 16l3.3 3.3 6-6.5' fill='none' stroke='%23ff4f40' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / contain no-repeat; }

/* testimonials */
.bs-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0; }
.bs-quotes li { background: #ffffff; border-radius: 32px; padding: 36px 32px 32px; display: flex; flex-direction: column; }
.bs-quotes li::before { content: "\201C"; font: 700 80px/1 Georgia, "Times New Roman", serif; line-height: .8; height: 40px; color: #ff4f40; }
.bs-quotes blockquote { margin: 0 0 20px; flex: 1; }
.bs-quotes blockquote p { margin: 0; font-size: 18px; }
.bs-quotes__who { margin: 0 0 12px; color: #5d666d; font-size: 16px; }
.bs-quotes__who strong { color: #12261c; }
.bs-quotes .bs-badge { align-self: flex-start; }

/* faq: Monzo's single-column help list */
.bs-faq { border-top: 1px solid #d3e0d6; margin-bottom: 16px; }
.bs-faq details { border-bottom: 1px solid #d3e0d6; }
.bs-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 76px; padding: 14px 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; font-size: 22px; line-height: 1.25; }
.bs-faq summary::-webkit-details-marker { display: none; }
.bs-faq summary::after { content: "+"; flex: none; width: 44px; height: 44px; border-radius: 500px; background: #ffffff; color: #12261c; display: flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 400; }
.bs-faq details[open] summary::after { content: "\2212"; background: #12261c; color: #f2f8f3; }
.bs-faq details p { margin: 0; padding: 0 64px 24px 0; color: #5d666d; max-width: 68ch; }
.bs-faqpage { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 64px; align-items: start; }
.bs-faqpage__side { position: sticky; top: 104px; background: #ffffff; border-radius: 64px; padding: 44px 40px 36px; }
.bs-faqpage__side h2 { font-size: 22px; margin-bottom: 4px; }
.bs-faqpage__side p:last-child { margin: 0; }
.bs-faqpage__side .bs-hours div { flex-direction: column; gap: 2px; }
.bs-faqpage__side .bs-hours dd { text-align: left; }
.bs-faqpage__side .bs-urgent { margin-bottom: 24px; }
.bs-faqpage__side .bs-pill { width: 100%; }

/* areas and hours */
.bs-areas { display: grid; grid-template-columns: 7fr 5fr; gap: 56px; background: #ffffff; border-radius: 64px; padding: 48px 56px; }
.bs-areas h3 { font-size: 22px; margin-bottom: 16px; }
.bs-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.bs-chips li { padding: 10px 18px; border-radius: 500px; background: rgb(211 224 214 / 0.55); font-weight: 600; font-size: 16px; }
.bs-hours { margin: 0 0 20px; border-top: 1px solid #d3e0d6; }
.bs-hours div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid #d3e0d6; font-size: 16px; }
.bs-hours dt { font-weight: 700; }
.bs-hours dd { margin: 0; color: #5d666d; text-align: right; }

/* posts */
.bs-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0; }
.bs-posts article { position: relative; height: 100%; background: #ffffff; border-radius: 32px; padding: 32px; display: flex; flex-direction: column; }
.bs-posts h3 { font-size: 24px; }
.bs-posts h3 a { color: #c8372a; text-decoration: none; }
.bs-posts h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 32px; }
.bs-posts h3 a:focus-visible { outline: none; }
.bs-posts article:focus-within { outline: 3px solid #c8372a; outline-offset: 3px; }
.bs-posts article:hover h3 a { color: #a12d22; text-decoration: underline; }
.bs-posts p { color: #5d666d; font-size: 16px; }
.bs-posts__more { margin: auto 0 0; display: flex; align-items: center; gap: 8px; color: #12261c !important; font-weight: 700; }
.bs-posts__more span { display: inline-flex; color: #ff4f40; }

/* cta band */
.bs-cta { background: #12261c; color: #f2f8f3; padding: 96px 0; }
.bs-cta h2 { color: #f2f8f3; font-size: clamp(2.25rem, 3.6vw, 3.25rem); }
.bs-cta p { max-width: 52ch; font-size: 20px; line-height: 1.45; }
.bs-cta a:focus-visible { outline: 3px solid #ff4f40; outline-offset: 2px; }
.bs-cta__grid { display: grid; gap: 48px; align-items: center; }
.bs-cta__grid--form { grid-template-columns: 1fr 1fr; gap: 64px; }
.bs-cta__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin: 32px 0 0; }
.bs-cta__tel { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; color: #ff8a7e; font-weight: 700; font-size: 22px; text-decoration: none; }
.bs-cta__tel:hover { color: #f2f8f3; }
.bs-formcard { background: #ffffff; color: #12261c; border-radius: 64px; padding: 48px; }
.bs-formcard--band .qform input[type="text"], .bs-formcard--band .qform input[type="tel"], .bs-formcard--band .qform textarea { background: #f2f8f3; }

/* inner page head */
.bs-pagehead { padding: 40px 0 56px; }
.bs-pagehead__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 64px; align-items: center; }
.bs-pagehead__grid--solo { grid-template-columns: minmax(0, 1fr); max-width: 828px; }
.bs-pagehead h1 { margin-bottom: .35em; }
.bs-pagehead .bs-lede { margin-bottom: .6em; max-width: 64ch; }
.bs-byline { margin-top: 16px; }
.bs-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 16px; font-size: 16px; }
.bs-crumbs li + li::before { content: "/"; margin-right: 10px; color: #5d666d; }
.bs-crumbs a { display: inline-flex; align-items: center; min-height: 44px; }
.bs-crumbs [aria-current] { color: #5d666d; }
.bs-pricecard { width: 340px; background: #ffffff; border-radius: 64px; padding: 44px 40px 36px; display: flex; flex-direction: column; align-items: stretch; gap: 16px; text-align: center; }
.bs-pricecard__price { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; font-size: 44px; line-height: 1.05; margin: 0 0 8px; color: #12261c; }
.bs-pricecard__tel { display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-height: 44px; color: #12261c; font-weight: 700; text-decoration: none; }
.bs-pricecard__tel:hover { color: #12261c; text-decoration: underline; }

/* service detail */
.bs-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.bs-detail h2 { font-size: 32px; }
.bs-detail__inc { background: #ffffff; border-radius: 64px; padding: 48px; }
.bs-signs { margin: 0; border-top: 1px solid #d3e0d6; }
.bs-signs li { position: relative; padding: 16px 0 16px 40px; border-bottom: 1px solid #d3e0d6; font-size: 20px; line-height: 1.4; }
.bs-signs li::before { content: ""; position: absolute; left: 4px; top: 22px; width: 16px; height: 16px; border: 2px solid #ff4f40; border-radius: 50%; }
.bs-others h2 { font-size: 32px; }
.bs-prose { max-width: 68ch; font-size: 20px; line-height: 1.55; }
.bs-prose p:first-child { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; font-size: 26px; line-height: 1.35; letter-spacing: -0.01em; }
.bs-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0; }
.bs-values li { background: #ffffff; border-radius: 64px; padding: 44px 40px; }
.bs-values h3 { font-size: 24px; }
.bs-values p { margin: 0; color: #5d666d; font-size: 16px; }

/* pricing table */
.bs-tablewrap { overflow-x: auto; background: #ffffff; border-radius: 32px; padding: 8px 24px; }
.bs-table { width: 100%; min-width: 620px; border-collapse: collapse; }
.bs-table th, .bs-table td { text-align: left; padding: 18px 16px; border-bottom: 1px solid #d3e0d6; vertical-align: top; font-size: 16px; }
.bs-table tbody tr:last-child th, .bs-table tbody tr:last-child td { border-bottom: 0; }
.bs-table thead th { color: #5d666d; font-weight: 700; font-size: 14px; }
.bs-table tbody th { font-weight: 700; font-size: 18px; }
.bs-table tbody th a { display: inline-flex; align-items: center; min-height: 44px; margin: -8px 0; }
.bs-table td { color: #5d666d; }
.bs-table__price { white-space: nowrap; color: #12261c !important; font-weight: 700; text-align: right !important; }

/* post */
.bs-sec--article .bs-wrap { max-width: 828px; }
.bs-article { max-width: 68ch; font-size: 19px; }
.bs-article h2 { margin-top: 1.5em; font-size: 30px; }
.bs-article ul { margin-bottom: 1.2em; }
.bs-article li { position: relative; padding-left: 32px; margin-bottom: 10px; }
.bs-article li::before { content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path d='M16 3.5l10 3.75V15c0 6.4-4.4 11-10 13.5C10.4 26 6 21.4 6 15V7.25z' fill='none' stroke='%23ff4f40' stroke-width='2.4' stroke-linejoin='round'/><path d='M11.5 16l3.3 3.3 6-6.5' fill='none' stroke='%23ff4f40' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / contain no-repeat; }
.bs-callout { margin-top: 48px; background: #ffffff; border-radius: 64px; padding: 40px 48px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 32px; }
.bs-callout__name { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; font-size: 26px; margin: 0; }
.bs-callout__name a { text-decoration: none; }
.bs-callout__name a:hover { text-decoration: underline; }
.bs-callout__price { margin: 0; color: #5d666d; grid-column: 1; }
.bs-callout .bs-pill { grid-column: 2; grid-row: 1 / span 2; }
.bs-others--posts { max-width: 68ch; margin-top: 64px; }

/* contact */
.bs-contact { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; align-items: stretch; }
.bs-contact .bs-formcard { display: flex; flex-direction: column; }
.bs-contact .qform { flex: 1 1 auto; display: flex; flex-direction: column; }
.bs-contact .qform__field--wide { flex: 1 1 auto; }
.bs-contact .qform textarea { flex: 1 1 auto; }
.bs-contact .qform__foot { margin-top: 0; }
.bs-contact__info { background: #ffffff; border-radius: 64px; padding: 44px 44px 32px; }
.bs-contact__info h2 { font-size: 22px; margin: 28px 0 12px; }
.bs-contact__info h2:first-child { margin-top: 0; }
.bs-plain { margin: 0; font-size: 16px; }
.bs-plain li { padding: 4px 0; overflow-wrap: anywhere; }
.bs-plain a { display: inline-flex; align-items: center; min-height: 44px; }
.bs-contact__tel { display: inline-flex; align-items: center; gap: 10px; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 700; letter-spacing: -0.02em; font-size: 28px; color: #12261c; text-decoration: none; }
.bs-contact__tel svg { color: #ff4f40; }
.bs-contact__info .bs-chips { margin-bottom: 24px; }
.bs-contact__info .bs-urgent { margin-bottom: 8px; }

/* footer */
.bs-foot { background: #12261c; color: #f2f8f3; padding: 80px 0 40px; }
.bs-foot a { color: #f2f8f3; text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.bs-foot a:hover { color: #ff8a7e; text-decoration: underline; }
.bs-foot a:focus-visible { outline: 3px solid #ff4f40; outline-offset: 2px; }
.bs-foot__cols { display: grid; grid-template-columns: 1.6fr 1.2fr 1fr 1.4fr; gap: 40px; }
.bs-foot h2 { font-size: 15px; letter-spacing: 0; color: #ff8a7e; margin-bottom: 8px; }
.bs-foot__about h2 { font-size: 26px; color: #f2f8f3; letter-spacing: -0.02em; margin-bottom: 12px; }
.bs-foot__h2b { margin-top: 20px; }
.bs-foot ul { margin: 0; font-size: 16px; }
.bs-foot li { line-height: 1.4; }
.bs-foot__cols li:not(:has(a)) { padding: 6px 0; }
.bs-foot p { color: #f2f8f3; font-size: 16px; max-width: 40ch; }
.bs-foot__strip { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 48px 0 24px; padding: 24px 0; border-top: 1px solid rgb(242 248 243 / 0.2); border-bottom: 1px solid rgb(242 248 243 / 0.2); font-size: 16px; font-weight: 600; }
.bs-foot__strip li { display: flex; align-items: center; gap: 10px; }
.bs-foot__strip svg { color: #ff4f40; }
.bs-foot__base { margin: 0; font-size: 16px; max-width: none !important; }
.bs-foot__base a { color: #ff8a7e; display: inline; }

/* bottom bar: S only */
.bs-dock { display: none; }

/* enquiry form (form.js hooks) */
.qform { display: block; }
.qform__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.qform__field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; min-width: 0; }
.qform__row .qform__field { margin-bottom: 0; }
.qform__field--wide { grid-column: 1 / -1; }
.qform label { font-weight: 700; font-size: 16px; color: #12261c; }
.qform .req { color: #c8372a; }
.qform input[type="text"], .qform input[type="email"], .qform input[type="tel"], .qform textarea { width: 100%; min-height: 52px; padding: 12px 20px; font: inherit; font-size: 17px; color: #12261c; background: #f2f8f3; border: 1px solid #5d666d; border-radius: 24px; }
.qform textarea { min-height: 132px; resize: vertical; }
.qform input:focus, .qform textarea:focus { border-color: #c8372a; }
.qform__hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.qform__hint { margin: 0 0 16px; font-size: 16px; color: #5d666d; }
.qform__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 8px; }
.qform button[type="submit"] { min-height: 52px; padding: 0 32px; background: #12261c; color: #f2f8f3; border: 0; border-radius: 500px; font: 600 17px/1.2 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; cursor: pointer; }
.qform button[type="submit"]:hover { background: rgb(18 38 28 / 0.86); }
.qform button[type="submit"]:disabled { opacity: .6; cursor: progress; }
.qform__status { margin: 0; flex: 1 1 200px; font-weight: 600; font-size: 16px; color: #12261c; }
.qform__status:empty { display: none; }
.qform__status--busy { color: #5d666d; }
.qform__status--ok { color: #12261c; border-left: 3px solid #ff4f40; padding-left: 12px; }
.qform__status--err { color: #a4161a; border-left: 3px solid #a4161a; padding-left: 12px; }

/* motion: interactive elements only */
@media (prefers-reduced-motion: no-preference) {
  .bs-pill, .bs-nav a, .bs-pick, .bs-menu summary, .qform button[type="submit"], .bs-faq summary::after { transition: color 150ms, background-color 150ms, border-color 150ms, transform 150ms; }
  .bs-pick__go, .bs-card__price span, .bs-posts__more span { transition: transform 150ms; }
  .bs-pick:hover .bs-pick__go, .bs-card:hover .bs-card__price span, .bs-posts article:hover .bs-posts__more span { transform: translateX(4px); }
}

/* L, narrow: number hides behind the phone icon */
@media (max-width: 1179px) {
  .bs-head__tel span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .bs-head__tel { width: 44px; height: 44px; padding: 0; border-radius: 500px; background: #ffffff; border: 1px solid #d3e0d6; }
  .bs-nav a { padding: 0 11px; }
  .bs-hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 40px; }
  .bs-hero .bs-pick__name { font-size: 28px; }
  .bs-panel { padding: 40px 32px 32px; }
}

/* M: 640 to 1023 */
@media (max-width: 1023px) {
  .bs-nav { display: none; }
  .bs-menu { display: block; }
  .bs-hero__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "list" "stamp" "card"; }
  .bs-hero__stamp { justify-self: end; align-self: auto; margin: 0 24px -96px 0; position: relative; z-index: 1; }
  .bs-hero__card .bs-panel h2 { padding-right: 150px; }
  .bs-pagehead__side { display: none; }
  .bs-pagehead__side--price { display: block; }
  .bs-pagehead__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .bs-pricecard { width: auto; max-width: 420px; }
  .bs-split, .bs-detail, .bs-contact, .bs-cta__grid--form, .bs-areas, .bs-faqpage { grid-template-columns: 1fr; gap: 40px; }
  .bs-faqpage__side { position: static; max-width: 480px; }
  .bs-trust { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .bs-trust li:nth-child(3) { border-left: 0; }
  .bs-steps { grid-template-columns: 1fr 1fr; }
  .bs-cards, .bs-posts, .bs-quotes, .bs-values { grid-template-columns: 1fr 1fr; }
  .bs-tier { grid-template-columns: 1fr auto; }
  .bs-tier__feat { grid-column: 1 / -1; grid-row: 2; }
  .bs-foot__cols { grid-template-columns: 1fr 1fr; }
}

/* S: under 640 */
@media (max-width: 639px) {
  body { font-size: 17px; }
  .bs-wrap, .bs-head__in { padding: 0 16px; }
  .bs-head__in { gap: 12px; min-height: 64px; }
  .bs-mark { font-size: 22px; }
  .bs-head__acts { gap: 8px; }
  .bs-head__book { display: none; }
  .bs-sec { padding: 56px 0; }
  .bs-sec--first { padding-top: 8px; }
  h1 { font-size: 40px; }
  h2 { font-size: 30px; }
  .bs-lede, .bs-cta p, .bs-prose { font-size: 18px; }
  .bs-hero { padding: 32px 0 56px; }
  .bs-hero__head h1 .bs-eyebrow { font-size: 16px; }
  .bs-urgent--hero { border-radius: 28px; padding: 14px 18px; }
  .bs-pick { grid-template-columns: 32px minmax(0, 1fr) 24px; grid-template-areas: "g name go" "g price go"; column-gap: 14px; row-gap: 2px; min-height: 72px; padding: 12px 4px; border-radius: 24px; }
  .bs-pick .bs-glyph { width: 32px; height: 32px; align-self: center; }
  .bs-pick .bs-glyph svg { width: 28px; height: 28px; }
  .bs-pick__name, .bs-picks--sm .bs-pick__name, .bs-hero .bs-pick__name { font-size: 24px; }
  .bs-pick__price { text-align: left; font-size: 16px; }
  .bs-pick--post { grid-template-columns: minmax(0, 1fr) 24px; grid-template-areas: "name go" "price go"; }
  .bs-pick--post .bs-pick__name { font-size: 20px; }
  .bs-actions { margin-top: 24px; }
  .bs-actions .bs-pill { flex: 1 1 100%; }
  .bs-points { flex-direction: column; }
  .bs-stamp { width: 172px; height: 172px; }
  .bs-hero__lic { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 16px; padding: 8px 16px 8px 12px; background: #ffffff; border-radius: 500px; color: #12261c; font-size: 16px; font-weight: 700; line-height: 1.3; }
  .bs-hero__lic svg { color: #ff4f40; }
  .bs-stamp__in { width: 100px; }
  .bs-stamp__in svg { display: none; }
  .bs-hero__stamp { margin: 0 8px -86px 0; }
  .bs-hero__card .bs-panel h2 { padding-right: 128px; }
  .bs-panel, .bs-trust, .bs-card, .bs-board, .bs-areas, .bs-values li, .bs-detail__inc, .bs-formcard, .bs-contact__info, .bs-callout, .bs-pricecard { border-radius: 32px; }
  .bs-panel { padding: 32px 24px 24px; }
  .bs-panel h2 { font-size: 24px; }
  .bs-trust { grid-template-columns: 1fr; row-gap: 0; padding: 8px 24px; }
  .bs-trust li { padding: 22px 0; display: grid; grid-template-columns: 32px 1fr; column-gap: 14px; align-items: center; }
  .bs-trust__ico { margin: 0; width: 30px; height: 30px; }
  .bs-trust h3 { margin: 0; font-size: 20px; }
  .bs-trust p { grid-column: 1 / -1; margin-top: 8px; }
  .bs-trust li + li { border-left: 0; border-top: 1px solid #d3e0d6; }
  .bs-steps, .bs-cards, .bs-posts, .bs-quotes, .bs-values { grid-template-columns: 1fr; }
  .bs-steps { gap: 0; }
  .bs-steps li { display: grid; grid-template-columns: 48px 1fr; column-gap: 12px; padding: 20px 0; border-top: 1px solid #d3e0d6; }
  .bs-steps li:first-child { border-top: 2px solid #ff4f40; }
  .bs-steps__n { grid-row: 1 / span 2; font-size: 36px; margin: 0; }
  .bs-steps h3 { font-size: 20px; }
  .bs-cards { gap: 16px; }
  .bs-card { padding: 24px 24px 20px; display: grid; grid-template-columns: 36px 1fr; column-gap: 12px; align-items: center; }
  .bs-card .bs-glyph { margin: 0; width: 36px; height: 36px; }
  .bs-card .bs-glyph svg { width: 28px; height: 28px; }
  .bs-card h3 { margin: 0; font-size: 22px; }
  .bs-card p { grid-column: 1 / -1; margin: 10px 0 14px; }
  .bs-card .bs-card__price { margin: 0; padding-top: 12px; }
  .bs-card h3 a::after { border-radius: 32px; }
  .bs-board { padding: 8px; }
  .bs-tier { display: flex; flex-direction: column; gap: 14px; padding: 24px 18px; border-radius: 24px; }
  .bs-tier + .bs-tier::before { left: 18px; right: 18px; }
  .bs-tier__price { order: 2; }
  .bs-tier__feat { order: 3; }
  .bs-tier__price { text-align: left; }
  .bs-tier__price strong { font-size: 44px; }
  .bs-faq summary { font-size: 19px; min-height: 68px; }
  .bs-faq details p { padding-right: 0; }
  .bs-areas { padding: 32px 24px; gap: 32px; }
  .bs-detail__inc, .bs-formcard, .bs-contact__info, .bs-faqpage__side { padding: 32px 22px; border-radius: 32px; }
  .bs-detail h2, .bs-others h2 { font-size: 26px; }
  .bs-signs li { font-size: 18px; }
  .bs-prose p:first-child { font-size: 22px; }
  .bs-values li { padding: 32px 24px; }
  .bs-callout { grid-template-columns: 1fr; padding: 28px 24px; gap: 12px; }
  .bs-callout .bs-pill { grid-column: 1; grid-row: auto; }
  .bs-tablewrap { padding: 4px 20px; border-radius: 32px; }
  .bs-table, .bs-table tbody { display: block; min-width: 0; }
  .bs-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .bs-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; row-gap: 6px; padding: 16px 0; border-bottom: 1px solid #d3e0d6; }
  .bs-table tbody tr:last-child { border-bottom: 0; }
  .bs-table th, .bs-table td { display: block; padding: 0; border: 0; }
  .bs-table td:not(.bs-table__price) { grid-column: 1 / -1; grid-row: 2; }
  .bs-table__price { grid-column: 2; grid-row: 1; }
  .bs-cta { padding: 64px 0; }
  .bs-cta__tel { font-size: 20px; }
  .bs-contact__tel { font-size: 24px; }
  .bs-foot { padding: 56px 0 120px; }
  .bs-foot__cols { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
  .bs-foot__about, .bs-foot__cols > div:last-child { grid-column: 1 / -1; }
  .bs-foot__strip { margin-top: 32px; }
  .bs-quotes blockquote p { font-size: 17px; }
  .bs-quotes li { padding: 28px 24px 24px; }
  .bs-dock { display: flex; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 50; align-items: center; gap: 8px; padding: 8px 8px 8px 22px; background: #ffffff; border-radius: 64px; box-shadow: 0 0 10px rgb(0 0 0 / .1); }
  .bs-dock::before { content: ""; position: absolute; left: 10px; top: 14px; bottom: 14px; width: 2px; border-radius: 2px; background: #ff4f40; }
  .bs-dock__call { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 12px; color: #12261c; font-weight: 700; text-decoration: none; }
  .bs-dock__call svg { color: #ff4f40; }
  .bs-dock__book { flex: 1; }
  .qform__row { grid-template-columns: 1fr; }
  .qform button[type="submit"] { width: 100%; }
}
