/* Four Seasons — Bluebird layout (2026-09-13). Loaded only by pages whose <main> carries .bb-page.
   Copies Bluebird's LAYOUT (BLUEBIRD-STRUCTURE-REFERENCE.md §2-§8), keeps Four Seasons' own palette
   (navy #0B2432 / #14365c, orange #ED833C, ice #eaf6fb) and Montserrat. Every rule is scoped under
   .bb-page so no other template can be affected. */

/* ---------- bands ---------- */
.bb-page .bb-body > .bb-band, .bb-page .bb-body > section.bb-band, .bb-page .bb-body > section.bvg-reviewproof { box-sizing: border-box; width: 100% !important; max-width: none !important; margin: 0 !important; padding: clamp(52px, 6vw, 84px) 24px !important; border: 0 !important; }
.bb-page .bb-wrap { max-width: 1180px; margin: 0 auto; }
.bb-page .bb-band.bb-white { background: #fff !important; }
.bb-page .bb-band.bb-pale { background: #eaf6fb !important; }
.bb-page .bb-band.bb-dark { background: linear-gradient(150deg, #0B2432 0%, #14365c 100%) !important; color: #d6e2ea; }
.bb-page .bb-band.bb-dark h2, .bb-page .bb-band.bb-dark h3 { color: #fff !important; }
.bb-page .bb-band.bb-dark p, .bb-page .bb-band.bb-dark li { color: #d6e2ea; }
.bb-page .bb-band.bb-dark a:not(.bvg-btn) { color: #fff; }
.bb-page .bb-band h2 { font-size: clamp(26px, 2.7vw, 36px); line-height: 1.18; margin: 0 0 16px; }
.bb-page .bb-center-head > .bb-wrap > h2, .bb-page .bb-center-head > .bb-wrap > .bvg-eyebrow-row, .bb-page .bb-center > .bb-wrap > h2, .bb-page .bb-center > .bb-wrap > .bvg-eyebrow-row { text-align: center; justify-content: center; display: flex; }
.bb-page .bb-center-head > .bb-wrap > h2, .bb-page .bb-center > .bb-wrap > h2 { display: block; max-width: 860px; margin-left: auto; margin-right: auto; margin-bottom: 30px; }
.bb-page .bb-body .bvg-eyebrow-row { margin: 0 0 12px; display: flex; }
.bb-page .bb-body .bvg-crumbs { max-width: 1180px; margin: 0 auto; padding: 14px 24px 0; }

/* ---------- 2-column photo | card rows (reference §8) ---------- */
.bb-page .bb-row { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 34px; align-items: stretch; }
.bb-page .bb-row-rev { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
.bb-page .bb-row-rev > .bb-media { order: 2; }
.bb-page .bb-row-nomedia { grid-template-columns: 1fr; }
.bb-page .bb-media { position: relative; border-radius: 16px; overflow: hidden; min-height: 440px; background: #0B2432; box-shadow: 0 10px 28px rgba(11, 36, 50, .16); }
.bb-page .bb-media > figure { position: absolute; inset: 0; margin: 0 !important; }
.bb-page .bb-media > figure > img, .bb-page .bb-media > img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-height: none !important; object-fit: cover; object-position: center 55%; border-radius: 0 !important; margin: 0 !important; aspect-ratio: auto !important; }
.bb-page .bb-media > figure > figcaption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0 !important; padding: 44px 22px 16px; font-size: 13.5px !important; line-height: 1.45; color: #fff !important; background: linear-gradient(180deg, rgba(11, 36, 50, 0) 0%, rgba(11, 36, 50, .88) 55%); text-align: left; }
.bb-page .bb-card { border-radius: 16px; padding: 42px 44px; align-self: center; min-width: 0; }
.bb-page .bb-card-dark { align-self: stretch; background: linear-gradient(150deg, #0B2432 0%, #14365c 100%) !important; color: #d6e2ea; display: flex; flex-direction: column; justify-content: center; }
.bb-page .bb-card-dark h2, .bb-page .bb-card-dark h3, .bb-page .bb-card-dark b, .bb-page .bb-card-dark strong, .bb-page .bb-card-dark .bvg-feature-title, .bb-page .bb-card-dark th { color: #fff !important; }
.bb-page .bb-card-dark p, .bb-page .bb-card-dark li, .bb-page .bb-card-dark td, .bb-page .bb-card-dark caption { color: #d6e2ea !important; }
.bb-page .bb-card-dark a:not(.bvg-btn) { color: #ffd2b0 !important; }
.bb-page .bb-card-plain { padding: 8px 6px; }
.bb-page .bb-card > h2:first-child, .bb-page .bb-card > .bvg-eyebrow-row + h2 { margin-top: 0; }
.bb-page .bb-card p { max-width: 68ch; }
.bb-page .bb-card .bvg-lead { font-size: 17px; }
.bb-page .bb-card-dark .bvg-eyebrow { background: rgba(237, 131, 60, .16) !important; color: #ED833C !important; }
/* nested dark components inside a dark card flatten */
.bb-page .bb-card-dark .bvg-feature-card, .bb-page .bb-card-dark .bvg-card-navy, .bb-page .bb-card-dark .bvg-trust-box, .bb-page .bb-card-dark .bvg-dir-card { background: rgba(255, 255, 255, .05) !important; border: 1px solid rgba(255, 255, 255, .12) !important; padding: 18px 20px !important; border-radius: 12px; }
.bb-page .bb-card-dark details.bvg-acc { background: rgba(255, 255, 255, .06) !important; border: 1px solid rgba(255, 255, 255, .14) !important; }
.bb-page .bb-card-dark details.bvg-acc summary { color: #fff !important; }
.bb-page .bb-card-dark details.bvg-acc p { color: #cfdde6 !important; }
.bb-page .bb-card .bvg-split, .bb-page .bb-card .bvg-mini-grid, .bb-page .bb-card .bvg-trust, .bb-page .bb-card .bvg-trust ~ * { width: auto !important; max-width: none !important; margin-left: 0 !important; }
.bb-page .bb-card .bvg-mini-grid { grid-template-columns: 1fr 1fr; }
.bb-page .bb-card .bvg-trust { display: grid !important; grid-template-columns: 1fr 1fr; gap: 14px; }
.bb-page .bb-card table { width: 100%; font-size: 14.5px; }
.bb-page .bb-card-dark table th, .bb-page .bb-card-dark table td { border-color: rgba(255, 255, 255, .16) !important; background: transparent !important; }

/* ---------- "Keep reading" disclosure ---------- */
.bb-page details.bb-more { margin-top: 20px; }
.bb-page details.bb-more > summary { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; font-weight: 700; font-size: 14.5px; line-height: 1.3; padding: 10px 18px; border-radius: 999px; border: 1.5px solid currentColor; color: #14365c; max-width: 100%; }
.bb-page details.bb-more > summary::-webkit-details-marker { display: none; }
.bb-page details.bb-more > summary::after { content: "+"; font-size: 1.2em; line-height: 1; color: #ED833C; }
.bb-page details.bb-more[open] > summary::after { content: "\2013"; }
.bb-page .bb-card-dark details.bb-more > summary, .bb-page .bb-dark details.bb-more > summary { color: #fff; }
.bb-page .bb-more-body { margin-top: 18px; text-align: left; }
.bb-page .bb-more-body > h3 { margin: 22px 0 8px; font-size: 19px; }
.bb-page .bb-more-body > h3:first-child { margin-top: 0; }
.bb-page .bb-more-body p { max-width: 72ch; }
.bb-page .bb-dark .bb-more-body { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12); border-radius: 16px; padding: 22px 26px; }
.bb-page .bb-more-figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 16px 0; }
.bb-page .bb-more-figs figure { margin: 0; }
.bb-page .bb-more-figs img { width: 100%; height: 170px !important; object-fit: cover; border-radius: 10px; }
.bb-page .bb-more-figs figcaption { font-size: 12.5px; line-height: 1.4; margin-top: 6px; }
.bb-page .bb-dark .bb-more-figs figcaption, .bb-page .bb-card-dark .bb-more-figs figcaption { color: #c9d8e3 !important; }

/* ---------- reviews (kept high) ---------- */
.bb-page .bb-body > .bvg-reviewproof.bb-reviews, .bb-page .bb-body > section.bvg-reviewproof { margin: 0 !important; padding: clamp(46px, 5vw, 72px) max(24px, calc((100% - 1180px) / 2)) !important; }
.bb-page .bb-reviews .bvg-review-band { margin-top: 30px; text-align: center; }

/* ---------- how it works (reference §6): dark band, white "Step : 0N" cards ---------- */
.bb-page section.bb-steps-band { box-sizing: border-box; width: 100% !important; margin: 0 !important; padding: clamp(52px, 6vw, 84px) 24px !important; background: linear-gradient(150deg, #0B2432 0%, #14365c 100%) !important; text-align: center; }
.bb-page .bb-steps-band h2 { color: #fff !important; }
.bb-page .bb-steps-band .bvg-eyebrow { background: rgba(237, 131, 60, .16) !important; color: #ED833C !important; }
.bb-page .bb-steps-band .bvg-eyebrow-row { justify-content: center; }
.bb-page ol.bb-steps { counter-reset: bbstep; list-style: none; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 22px !important; margin: 30px 0 0 !important; padding: 0 !important; text-align: center; }
.bb-page ol.bb-steps > li { counter-increment: bbstep; background: #fff !important; border: 0 !important; border-radius: 16px !important; padding: 26px 22px 24px !important; box-shadow: 0 10px 30px rgba(0, 0, 0, .18); color: #4d5c69; }
.bb-page ol.bb-steps > li::before { content: "Step : 0" counter(bbstep) !important; position: static !important; display: inline-block !important; width: auto !important; height: auto !important; background: #ED833C !important; color: #fff !important; font-weight: 800 !important; font-size: 12.5px !important; letter-spacing: .03em; padding: 6px 16px !important; border-radius: 999px !important; margin: 0 0 14px !important; }
.bb-page .bb-band.bb-dark ol.bb-steps > li h3, .bb-page ol.bb-steps > li h3 { color: #14365c !important; font-size: 18px !important; margin: 0 0 8px !important; }
.bb-page .bb-band.bb-dark ol.bb-steps > li p, .bb-page ol.bb-steps > li p { color: #4d5c69 !important; text-align: center !important; font-size: 15px; line-height: 1.6; margin: 0 !important; }
.bb-page .bb-steps-band .bvg-offer-cta { margin: 30px 0 0; }
.bb-page.bb-home section.bb-steps-home ol.bb-steps > li { background: #fff !important; }

/* ---------- FAQ: pale band, dark pill rows, row 1 open ---------- */
.bb-page section.bb-faq { box-sizing: border-box; width: 100% !important; margin: 0 !important; padding: clamp(52px, 6vw, 84px) 24px !important; background: #eaf6fb !important; }
.bb-page .bb-faq .bb-wrap { max-width: 900px; }
.bb-page .bb-faq h2 { text-align: center; }
.bb-page .bb-faq .bb-wrap > h3 { text-align: center; margin: 34px 0 14px; font-size: 20px; color: #0B2432; }
.bb-page .bb-faq details.bvg-acc { background: #fff !important; border: 0 !important; border-radius: 12px !important; box-shadow: 0 3px 12px rgba(11, 36, 50, .08); padding: 0 !important; margin: 12px 0 !important; overflow: hidden; width: auto !important; max-width: none !important; }
.bb-page .bb-faq details.bvg-acc > summary { background: #0B2432; color: #fff !important; padding: 16px 52px 16px 22px !important; font-weight: 700; }
.bb-page .bb-faq details.bvg-acc > summary::after { color: #ED833C !important; right: 20px !important; }
.bb-page .bb-faq details.bvg-acc > :not(summary) { padding: 0 22px; }
.bb-page .bb-faq details.bvg-acc > p:first-of-type { padding-top: 16px; }
.bb-page .bb-faq details.bvg-acc > :last-child { padding-bottom: 18px; }

/* ---------- service areas: dark band, text + pills LEFT | map RIGHT ---------- */
.bb-page .bb-areas-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 48px; align-items: stretch; text-align: left; }
.bb-page .bb-areas-nomap { grid-template-columns: 1fr; }
.bb-page .bb-areas-text .bvg-eyebrow { background: rgba(237, 131, 60, .16) !important; color: #ED833C !important; }
.bb-page .bb-areas-text h3 { font-size: 19px; margin: 18px 0 8px; }
.bb-page .bb-areas-text p { max-width: 64ch; }
.bb-page .bb-areas .bvg-chips { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; margin: 20px 0 !important; }
.bb-page .bb-areas .bvg-chips a { justify-content: flex-start; padding: 11px 14px !important; font-size: 14.5px !important; border-radius: 999px !important; background: #ED833C !important; color: #fff !important; }
.bb-page .bb-areas .bvg-chips a::before { flex-basis: 22px !important; height: 22px !important; border-radius: 999px !important; }
.bb-page .bb-areas ul.bvg-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; margin: 16px 0 !important; }
.bb-page .bb-areas ul.bvg-svc-grid li { padding: 12px 14px 12px 50px !important; }
.bb-page .bb-areas-map { border-radius: 16px; overflow: hidden; min-height: 420px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); }
.bb-page .bb-areas-map iframe { display: block; width: 100% !important; height: 100% !important; min-height: 420px; border: 0; }
.bb-page .bb-areas-map .bvg-areamap { height: 100%; }
.bb-page .bb-areas details.bb-more { margin-top: 34px; }
.bb-page .bb-areas .bb-more-body .bvg-dir-grid, .bb-page .bb-areas .bb-more-body ul.bvg-svc-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; }
.bb-page .bb-areas .bb-more-body .bvg-dir-card { background: rgba(255, 255, 255, .06) !important; padding: 14px 16px !important; }

/* ---------- city: services in this town ---------- */
.bb-page .bb-svc-links { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; margin: 18px 0 8px !important; }
.bb-page .bb-svc-links > li, .bb-page .bb-svc-links > .bvg-dir-card { background: #0B2432 !important; border-radius: 10px !important; padding: 12px 14px 12px 50px !important; font-size: 14.5px !important; }
.bb-page .bb-svc-links > .bvg-dir-card { padding: 14px 16px !important; }
.bb-page .bb-svc-links a { color: #fff !important; }
.bb-page .bb-svc-links .bvg-dir-card h3 { font-size: 16px !important; margin: 0 0 4px !important; }
.bb-page .bb-svc-links .bvg-dir-card p { font-size: 14px !important; color: #c9d8e3 !important; }

/* ---------- city: town knowledge panel (reference §5.5) ---------- */
.bb-page .bb-town-panel { max-width: 960px; margin: 0 auto; background: #fff; border: 1px solid #d6e2ea; border-radius: 16px; padding: 38px 44px; box-shadow: 0 6px 20px rgba(11, 36, 50, .06); text-align: left; }
.bb-page .bb-town-panel > h2:first-child, .bb-page .bb-town-panel > .bvg-eyebrow-row + h2 { text-align: left; }

/* ---------- directions (reference §5.9) ---------- */
.bb-page .bb-directions .bb-wrap > h2 { text-align: center; }
.bb-page .bb-directions .bb-wrap > p { text-align: center; max-width: 760px; margin: -10px auto 26px; }
.bb-page .bb-dir-maps { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 22px !important; margin: 0 !important; }
.bb-page .bb-dir-maps .bvg-dir-card { background: #0B2432 !important; border-radius: 16px !important; padding: 0 0 18px !important; overflow: hidden; text-align: center; }
.bb-page .bb-dir-maps .bvg-dir-card .bvg-map-frame { order: -1; }
.bb-page .bb-dir-maps .bvg-dir-card { display: flex; flex-direction: column; }
.bb-page .bb-dir-maps .bvg-map-frame iframe { display: block; width: 100% !important; height: 260px !important; border: 0; }
.bb-page .bb-dir-maps .bvg-dir-card h3 { display: inline-block; align-self: center; background: #ED833C; color: #fff !important; border-radius: 999px; padding: 6px 16px !important; margin: 16px 0 10px !important; font-size: 15px !important; }
.bb-page .bb-dir-more { margin: 26px auto 0; max-width: 1180px; text-align: left; }
.bb-page .bb-dir-more > h3 { text-align: center; margin: 10px 0 12px; font-size: 20px; }
.bb-page .bb-dir-text { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 16px !important; margin: 0 0 14px !important; }
.bb-page .bb-dir-text .bvg-dir-card { background: #eaf6fb !important; border-radius: 12px !important; padding: 16px 18px !important; }
.bb-page .bb-dir-text .bvg-dir-card h3 { color: #0B2432 !important; font-size: 16px !important; }
.bb-page .bb-dir-text .bvg-dir-card p { color: #1c2b36 !important; font-size: 15px !important; }
.bb-page .bb-dir-more .bvg-routes, .bb-page .bb-dir-more > .bvg-route { background: #f4f8fb; border-radius: 12px; padding: 14px 18px; font-size: 15px; }

/* ---------- mid-page CTA strip (<=1 per page) ---------- */
.bb-page section.bb-strip-band { background: #3E6C94 !important; text-align: center; padding: 44px 24px !important; }
.bb-page .bb-strip-band h2 { color: #fff !important; font-size: clamp(22px, 2.3vw, 30px); }
.bb-page .bb-strip-band p { color: #eef4f8 !important; max-width: 760px; margin-left: auto; margin-right: auto; }
.bb-page .bb-strip-band a:not(.bvg-btn) { color: #fff !important; text-decoration: underline; }
.bb-page .bb-strip-band .bvg-btn { margin: 6px 5px !important; }

/* ---------- hubs ---------- */
.bb-page .bb-towns .bb-town-cards, .bb-page .bb-towns .bvg-dir-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 14px !important; margin: 10px 0 30px !important; }
.bb-page .bb-towns a.bvg-dir-card { display: flex !important; align-items: center; justify-content: center; min-height: 74px; background: #0B2432 !important; color: #fff !important; text-align: center; text-transform: uppercase; letter-spacing: .04em; font-weight: 800; font-size: 14px; border-radius: 12px !important; padding: 16px !important; text-decoration: none; }
.bb-page .bb-towns a.bvg-dir-card:hover { background: #14365c !important; }
.bb-page .bb-towns .bb-wrap > h3 { text-align: center; margin: 26px 0 12px; font-size: 20px; color: #0B2432; }
.bb-page .bb-towns .bb-loc-cards { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 16px !important; }
.bb-page .bb-towns .bvg-loc-card { background: #0B2432 !important; border: 0 !important; border-radius: 14px !important; text-align: center; }
.bb-page .bb-towns .bvg-loc-card h3, .bb-page .bb-towns .bvg-loc-card h3 a { color: #fff !important; text-transform: uppercase; letter-spacing: .04em; }
.bb-page .bb-towns .bvg-loc-card p { color: #c9d8e3 !important; }
.bb-page .bb-svc-cards { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }

/* ---------- home ---------- */
.bb-page.bb-home .bb-why .bb-row { margin-top: 10px; }
.bb-page.bb-home .bb-why .bb-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bb-page.bb-home section.bb-areas { box-sizing: border-box; width: 100% !important; margin: 0 !important; padding: clamp(52px, 6vw, 84px) 24px !important; }

/* ---------- mobile: one column, IMAGE FIRST, no horizontal overflow ---------- */
@media (max-width: 1020px) {
  .bb-page ol.bb-steps { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .bb-page .bb-towns .bb-town-cards, .bb-page .bb-towns .bvg-dir-grid, .bb-page .bb-towns .bb-loc-cards { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .bb-page .bb-dir-maps, .bb-page .bb-dir-text { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 860px) {
  .bb-page .bb-row, .bb-page .bb-row-rev, .bb-page .bb-areas-grid { grid-template-columns: 1fr; gap: 0; }
  .bb-page .bb-row > .bb-media, .bb-page .bb-row-rev > .bb-media { order: -1; min-height: 250px; border-radius: 16px 16px 0 0; }
  .bb-page .bb-card { padding: 26px 22px; border-radius: 0 0 16px 16px; }
  .bb-page .bb-card-plain { padding: 22px 4px 0; }
  .bb-page .bb-row-nomedia > .bb-card { border-radius: 16px; }
  .bb-page .bb-areas-map { margin-top: 26px; min-height: 300px; }
  .bb-page .bb-areas-map iframe { min-height: 300px; }
  .bb-page .bb-areas .bvg-chips, .bb-page .bb-svc-links, .bb-page .bb-more-figs, .bb-page .bb-card .bvg-mini-grid, .bb-page .bb-card .bvg-trust { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .bb-page .bb-town-panel { padding: 24px 20px; }
  .bb-page .bb-areas .bb-more-body .bvg-dir-grid, .bb-page .bb-areas .bb-more-body ul.bvg-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 560px) {
  .bb-page ol.bb-steps, .bb-page .bb-dir-maps, .bb-page .bb-dir-text, .bb-page .bb-svc-links, .bb-page .bb-card .bvg-mini-grid, .bb-page .bb-card .bvg-trust, .bb-page .bb-areas ul.bvg-svc-grid, .bb-page .bb-areas .bb-more-body .bvg-dir-grid, .bb-page .bb-areas .bb-more-body ul.bvg-svc-grid { grid-template-columns: 1fr !important; }
  .bb-page .bb-towns .bb-town-cards, .bb-page .bb-towns .bvg-dir-grid, .bb-page .bb-towns .bb-loc-cards, .bb-page .bb-areas .bvg-chips { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .bb-page .bb-more-figs { grid-template-columns: 1fr 1fr !important; }
  .bb-page .bb-more-figs img { height: 120px !important; }
  .bb-page details.bb-more > summary { font-size: 13.5px; }
}

.bb-page .bb-dir-more strong, .bb-page .bb-dir-more b { color: #0B2432 !important; }
.bb-page .bb-dir-more .bvg-routes { color: #1c2b36; }
.bb-page .bb-dir-more > p { text-align: center; max-width: 760px; margin: 0 auto 14px; }
.bb-page .bb-body .bvg-trust, .bb-page .bb-body .bvg-trust ~ *, .bb-page .bb-body .bvg-trust ~ details.bvg-acc { width: auto !important; max-width: none !important; margin-left: 0 !important; }
.bb-page .bb-town-panel .bvg-trust { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 860px) { .bb-page .bb-town-panel .bvg-trust { grid-template-columns: 1fr; } }
