/* Brickstone Chimney Sweep: "Petrol & Coral" design system. Warm-white page, petrol teal ink, coral call panels. Rounded 10px corners, bento tiles, floating header and call bar. Mobile first. */
@font-face{font-family:"Sora";src:url(/fonts/sora-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Sora";src:url(/fonts/sora-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Karla";src:url(/fonts/karla-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Karla";src:url(/fonts/karla-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --ink:#0a3340;--ink-2:#0f4c5c;--ink-3:#4b6b73;
  --stone:#f6efe5;--stone-2:#efe5d6;--mortar:#ddd2c1;--line:#e4dacb;--white:#fff;
  --page:#fcf8f3;
  --text:#17313a;--muted:#4a5f66;
  --accent:#0f4c5c;--accent-2:#0a3a47;--accent-lt:#bfe3e5;
  --coral:#ff7a5c;--coral-2:#ff9a82;--coral-lt:#ffe1d8;
  --sage:#d4e7dc;--butter:#ffefc2;--teal-100:#dcebec;--teal-50:#ecf4f3;
  --buff:#ffe1d8;
  --focus:#0f4c5c;
  --r:10px;--r-lg:20px;
  --f-head:"Sora","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-body:"Karla",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:1160px;--gut:20px;
  --s1:.5rem;--s2:1rem;--s3:1.5rem;--s4:2.5rem;--s5:3.5rem;--s6:5.5rem;
  --bond:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='40'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.16' stroke-width='2'%3E%3Crect x='2' y='2' width='32' height='16' rx='4'/%3E%3Crect x='38' y='2' width='32' height='16' rx='4'/%3E%3Crect x='-16' y='22' width='32' height='16' rx='4'/%3E%3Crect x='20' y='22' width='32' height='16' rx='4'/%3E%3Crect x='56' y='22' width='32' height='16' rx='4'/%3E%3C/g%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
body{margin:0;background:var(--page);color:var(--text);font:400 1.125rem/1.6 var(--f-body);padding-bottom:92px;overflow-wrap:break-word}
@media (min-width:900px){body{padding-bottom:0}}
img,svg{max-width:100%;display:block}
a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:2px}
a:hover{color:var(--accent-2)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--f-head);color:var(--ink);line-height:1.15;margin:0 0 var(--s2);font-weight:700}
h1{font-size:clamp(1.9rem,6.2vw,3.3rem);letter-spacing:-.025em}
h2{font-size:clamp(1.55rem,3.6vw,2.4rem);letter-spacing:-.02em}
h3{font-size:1.15rem;font-weight:600;letter-spacing:-.01em}
p{margin:0 0 var(--s2)}
ul,ol{margin:0 0 var(--s2);padding-left:1.25rem}
li{margin-bottom:.35rem}
address{font-style:normal}
.bk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bk-skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--white);padding:.7rem 1.1rem;z-index:99;font-weight:700;border-radius:var(--r)}
.bk-skip:focus{left:12px;color:var(--white)}
.bk-wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.bk-i{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.bk-pending{font-style:italic;opacity:.85}
.bk-ribbon{background:var(--butter);color:var(--ink);font-size:.9rem;padding:.45rem 0;text-align:center;position:relative;z-index:41}

/* ---------- floating header ---------- */
.bk-hdr{position:sticky;top:0;z-index:40;padding:0;background:var(--white);border-bottom:3px solid var(--coral,#ff7a59)}
.bk-hdr__in.bk-wrap{display:flex;align-items:center;gap:.6rem;min-height:64px;position:relative;background:transparent;padding:0 16px;max-width:1220px}
.bk-logo{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ink);white-space:nowrap}
.bk-logo:hover{color:var(--ink)}
.bk-logo__mark{width:36px;height:auto;flex:none}
.bk-logo__txt{font:700 1.45rem/1 var(--f-head);letter-spacing:-.03em;color:var(--ink)}
.bk-logo__txt b{font-weight:600;color:var(--accent)}
.bk-nav{display:none}
.bk-nav a{display:block;font:700 1.05rem/1.2 var(--f-body);color:var(--ink);text-decoration:none;padding:1rem 1.1rem;border-radius:8px}
.bk-nav a:hover{background:var(--teal-50);color:var(--ink)}
.bk-nav a[aria-current]{background:var(--teal-100)}
.bk-btn.bk-hdr__call{margin-left:auto;min-height:46px;min-width:46px;padding:.5rem .8rem;font-size:1rem;white-space:nowrap}
.bk-hdr__call span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.bk-menu{display:flex;align-items:center;gap:.5rem;min-height:46px;min-width:46px;justify-content:center;padding:0 .8rem;background:var(--teal-100);color:var(--ink);border:0;border-radius:var(--r);cursor:pointer;font:700 1rem/1 var(--f-body)}
.bk-menu:hover{background:var(--accent-lt)}
.bk-menu__lbl{display:none}
.bk-menu__bars,.bk-menu__bars::before,.bk-menu__bars::after{display:block;width:20px;height:2.5px;border-radius:2px;background:currentColor;position:relative;content:""}
.bk-menu__bars::before{position:absolute;top:-6px}.bk-menu__bars::after{position:absolute;top:6px}
.bk-nav.is-open{display:block;position:absolute;left:0;right:0;top:calc(100% + 8px);background:var(--white);border-radius:14px;padding:8px;box-shadow:0 22px 40px -16px rgba(10,51,64,.5),0 0 0 1px rgba(10,51,64,.06)}
.bk-nav.is-open a{padding:1rem 1rem;font-size:1.15rem}
@media (min-width:700px){.bk-hdr__call span{position:static;width:auto;height:auto;clip:auto;overflow:visible}.bk-menu__lbl{display:inline}}
@media (min-width:1120px){
  .bk-hdr{padding-top:0}
  .bk-hdr__in.bk-wrap{gap:.8rem;min-height:70px}
  .bk-nav,.bk-nav.is-open{display:flex;position:static;margin-left:auto;background:none;box-shadow:none;padding:0;gap:.1rem;border-radius:0}
  .bk-nav a,.bk-nav.is-open a{padding:.7rem .85rem;font-size:1.02rem}
  .bk-btn.bk-hdr__call{margin-left:.4rem;padding:.6rem 1.2rem}
  .bk-menu{display:none}
}

/* ---------- breadcrumbs ---------- */
.bk-crumbs{max-width:none}
.bk-crumbs ol{list-style:none;padding:0;margin:0 auto;max-width:calc(var(--wrap) - 2*var(--gut));display:flex;flex-wrap:wrap;gap:0 .5rem;font-size:.95rem;color:var(--muted);min-height:44px;align-items:center}
.bk-crumbs li{margin:0;padding:.35rem 0}
.bk-crumbs li+li::before{content:"\203A";margin-right:.5rem;color:var(--ink-3)}
.bk-crumbs a{color:var(--muted)}
.bk-crumbs a:hover{color:var(--accent)}

/* ---------- buttons ---------- */
.bk-callbox{display:flex;flex-wrap:wrap;gap:.75rem;margin:var(--s3) 0 0}
.bk-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:54px;padding:.75rem 1.4rem;border:2px solid var(--coral);border-radius:var(--r);background:var(--coral);color:var(--ink);font:700 1.02rem/1.15 var(--f-head);text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s,box-shadow .15s;text-align:center}
.bk-btn:hover{background:var(--coral-2);border-color:var(--coral-2);color:var(--ink);transform:translateY(-2px);box-shadow:0 10px 18px -10px rgba(10,51,64,.55)}
.bk-btn:active{transform:none;box-shadow:none}
.bk-btn--soft{background:transparent;color:var(--ink);border-color:var(--ink-2)}
.bk-btn--soft:hover{background:var(--ink-2);border-color:var(--ink-2);color:var(--white)}
.bk-btn--ink{background:var(--ink);border-color:var(--ink);color:var(--white)}
.bk-btn--ink:hover{background:var(--ink-2);border-color:var(--ink-2);color:var(--white)}
.bk-btn--block{width:100%}
.bk-btn[disabled]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.bk-ftr :focus-visible,.bk-tile--teal :focus-visible,.bk-bar :focus-visible,.bk-visit :focus-visible,.bk-contact__side :focus-visible{outline-color:var(--white)}
.bk-callpanel :focus-visible,.bk-nudge :focus-visible{outline-color:var(--ink)}

/* ---------- kicker / tag: plain tinted label, no rule ---------- */
.bk-kicker,.bk-tag{display:inline-block;font:700 .95rem/1.2 var(--f-body);color:var(--ink);background:var(--teal-100);padding:.3rem .7rem;border-radius:6px;margin:0 0 var(--s2)}

/* ---------- hero ---------- */
.bk-hero{background:var(--teal-50);padding:var(--s4) 0 var(--s4);border-radius:0 0 var(--r-lg) var(--r-lg);margin:0 10px;position:relative}
.bk-hero>.bk-wrap>*:last-child{margin-bottom:0}
.bk-hero h1 em{font-style:normal;background:linear-gradient(transparent 64%,var(--coral-lt) 64%,var(--coral-lt) 92%,transparent 92%)}
.bk-lede{font-size:1.2rem;color:var(--muted);max-width:60ch}
.bk-hero .bk-lede{color:var(--text)}
.bk-hero--slim{padding:var(--s3) 0}
.bk-hero--slim .bk-lede{max-width:none}
.bk-hero .bk-form,.bk-hero .bk-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:var(--s3);color:var(--text)}
.bk-hero .bk-card a{color:var(--accent)}
.bk-hero .bk-post__meta{color:var(--accent)}
.bk-h1__kw{display:block;font:700 clamp(1.05rem,1rem + .3vw,1.25rem)/1.3 var(--f-body);letter-spacing:0;color:var(--accent);margin-bottom:.6rem}
.bk-hero__note{list-style:none;padding:0;margin:var(--s3) 0 0;display:flex;flex-wrap:wrap;gap:.5rem}
.bk-hero__note li{margin:0;padding:.4rem .8rem;border-radius:6px;background:var(--white);font:700 .98rem/1.3 var(--f-body);color:var(--ink);box-shadow:0 0 0 1px var(--line)}

/* home hero: headline on the left, the whole right half is the call panel */
.bk-hero--home{display:grid;grid-template-columns:minmax(0,1fr);background:transparent;border-radius:0;margin:0;padding:0}
.bk-hero__main{padding:var(--s4) var(--gut) var(--s3)}
.bk-hero__call{padding:0 10px 10px;display:flex}
.bk-callpanel{flex:1;min-width:0;background:var(--coral) var(--bond);color:var(--ink);border-radius:var(--r-lg);padding:var(--s4) var(--s3);display:flex;flex-direction:column;justify-content:center;gap:.4rem}
.bk-callpanel__lbl{margin:0;font:700 1.15rem/1.2 var(--f-body);color:var(--ink)}
.bk-callpanel__num{display:block;font:700 clamp(1.85rem,8.4vw,3.6rem)/1.05 var(--f-head);letter-spacing:-.035em;color:var(--ink);text-decoration:none;white-space:nowrap;padding:.1rem 0}
.bk-callpanel__num:hover{color:var(--white);text-decoration:underline;text-decoration-thickness:3px}
.bk-callpanel__num--text{font-size:clamp(1.55rem,6.4vw,2.6rem);white-space:normal;letter-spacing:-.025em}
.bk-callpanel__sub{margin:.3rem 0 var(--s2);font-size:1.1rem;max-width:34ch}
.bk-callpanel .bk-btn{align-self:flex-start}
@media (min-width:960px){
  .bk-hero--home{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:560px}
  .bk-hero__main{padding:var(--s5) var(--s5) var(--s5) max(var(--gut),calc(50vw - 580px + var(--gut)));align-self:center}
  .bk-hero__call{padding:12px 0 12px 0}
  .bk-callpanel{border-radius:var(--r-lg) 0 0 var(--r-lg);padding:var(--s5) max(var(--s4),calc(50vw - 580px)) var(--s5) var(--s5);margin-left:0}
  .bk-callpanel__num{font-size:clamp(2.6rem,3.9vw,4.2rem)}
  .bk-callpanel__num--text{font-size:clamp(2rem,3vw,3rem)}
}

/* ---------- sections ---------- */
.bk-sec{padding:var(--s5) 0}
@media (min-width:900px){.bk-sec{padding:var(--s6) 0}}
.bk-sec--tight{padding:var(--s4) 0}
.bk-sec--surface,.bk-sec--lilac{background:var(--stone);margin:0 10px;border-radius:var(--r-lg)}
.bk-sec--plum{background:transparent}
section[aria-labelledby]:not(.bk-sec):not(.bk-hero){padding:var(--s5) 0}
@media (min-width:900px){section[aria-labelledby]:not(.bk-sec):not(.bk-hero){padding:var(--s6) 0}}
.bk-head{max-width:760px;margin-bottom:var(--s4)}
.bk-head h2{margin-bottom:.5rem}
.bk-head .bk-lede{margin:0}
.bk-split{display:grid;gap:var(--s4)}
.bk-prose{max-width:68ch}
.bk-prose h2{margin-top:var(--s4)}
.bk-prose h2:first-child,.bk-prose .bk-kicker+h2{margin-top:0}
.bk-prose ul li::marker{color:var(--coral)}
.bk-prose ol li::marker{font-weight:700;color:var(--accent)}

/* ---------- services: bento ---------- */
.bk-bento{list-style:none;padding:0;margin:0;display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
.bk-tile{margin:0;display:flex}
.bk-tile a{position:relative;display:flex;flex-direction:column;justify-content:flex-end;width:100%;min-height:190px;padding:var(--s3);border-radius:14px;text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .18s,box-shadow .18s}
.bk-tile a:hover{transform:translateY(-4px);box-shadow:0 18px 28px -16px rgba(10,51,64,.55);color:var(--ink)}
.bk-tile h3{font:700 1.3rem/1.2 var(--f-head);margin:0 0 .5rem;max-width:16ch}
.bk-tile p{margin:0 0 .9rem;font-size:1.05rem;max-width:34ch}
.bk-tile__go{font:700 1rem/1 var(--f-body);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.bk-tile__go::after{content:" \2192";text-decoration:none;display:inline-block}
.bk-tile--teal a{background:var(--ink-2);color:var(--white);min-height:300px}
.bk-tile--teal h3{color:var(--white);font-size:clamp(1.6rem,4.4vw,2.3rem);max-width:13ch}
.bk-tile--teal a:hover{color:var(--white)}
.bk-tile--teal p{color:#d8ecee}
.bk-tile__art{position:absolute;right:22px;bottom:0;width:96px;height:auto;fill:var(--ink);stroke:#7fc3c8;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.95}
.bk-tile__smoke{fill:none;stroke:var(--coral)}
.bk-tile--teal h3,.bk-tile--teal p{position:relative}
.bk-tile--teal h3,.bk-tile--teal p{max-width:calc(100% - 120px)}
.bk-tile--sand a{background:var(--stone-2)}
.bk-tile--coral a{background:var(--coral-lt)}
.bk-tile--sage a{background:var(--sage)}
@media (min-width:640px){
  .bk-bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bk-tile--lg{grid-column:1/-1}
  .bk-tile--sand{grid-column:1/-1}
  .bk-tile__art{width:150px;right:36px}
  .bk-tile--teal a{min-height:340px}
}
@media (min-width:960px){
  .bk-bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:210px 210px;gap:14px}
  .bk-tile--lg{grid-column:1/3;grid-row:1/3}
  .bk-tile--sand{grid-column:3/5;grid-row:1}
  .bk-tile--coral{grid-column:3;grid-row:2}
  .bk-tile--sage{grid-column:4;grid-row:2}
  .bk-tile a,.bk-tile--teal a{min-height:0;height:100%}
  .bk-tile--sand h3{max-width:22ch}
  .bk-tile__art{width:190px;right:44px}
  .bk-tile--teal h3,.bk-tile--teal p{max-width:calc(100% - 230px)}
}
.bk-tiles{list-style:none;padding:0;margin:var(--s3) 0 0;display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
@media (min-width:700px){.bk-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- visit timeline ---------- */
.bk-sec--flow{background:var(--teal-100);margin:0 10px;border-radius:var(--r-lg)}
.bk-flow{list-style:none;padding:0;margin:0;display:grid;gap:var(--s3);counter-reset:step;position:relative}
.bk-flow li{position:relative;margin:0;padding:0 0 0 64px;counter-increment:step}
.bk-flow li::before{content:"";position:absolute;left:21px;top:44px;bottom:calc(-1 * var(--s3));width:3px;background:var(--ink-2);opacity:.35}
.bk-flow li:last-child::before{display:none}
.bk-flow__dot{position:absolute;left:0;top:0;width:46px;height:46px;border-radius:50%;background:var(--ink-2);color:var(--white);display:grid;place-items:center;box-shadow:0 0 0 5px var(--teal-100),0 0 0 8px var(--coral)}
.bk-flow__dot::before{content:counter(step);font:700 1.15rem/1 var(--f-head)}
.bk-flow h3{margin:.55rem 0 .3rem}
.bk-flow p{margin:0;color:var(--text)}
@media (min-width:860px){
  .bk-flow{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
  .bk-flow li{padding:64px 0 0}
  .bk-flow li::before{left:46px;right:calc(-1 * var(--s3));top:21px;bottom:auto;width:auto;height:3px}
  .bk-flow h3{margin-top:0}
}

/* ---------- year: calendar tabs ---------- */
.bk-cal{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){.bk-cal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:980px){.bk-cal{grid-template-columns:repeat(4,minmax(0,1fr))}}
.bk-cal__m{border-radius:var(--r);padding:var(--s3);border-top:10px solid var(--ink-2);background:var(--white);box-shadow:0 0 0 1px var(--line)}
.bk-cal__m h3{font-size:1.3rem}
.bk-cal__m p{margin:0}
.bk-cal__m--spring{background:var(--sage);border-top-color:#5f9c82}
.bk-cal__m--summer{background:var(--butter);border-top-color:#e0b43c}
.bk-cal__m--fall{background:var(--coral-lt);border-top-color:var(--coral)}
.bk-cal__m--winter{background:var(--teal-100);border-top-color:var(--ink-2)}

/* ---------- cards ---------- */
.bk-cards{display:grid;gap:12px}
.bk-card{display:block;background:var(--white);padding:var(--s3);border-radius:var(--r);box-shadow:0 0 0 1px var(--line);color:var(--text);text-decoration:none}
.bk-card h3{margin-bottom:.4rem}
.bk-card p:last-child{margin-bottom:0}
a.bk-card{transition:transform .15s,box-shadow .15s}
a.bk-card:hover{transform:translateY(-3px);box-shadow:0 0 0 2px var(--coral),0 14px 24px -16px rgba(10,51,64,.45);color:var(--text)}
a.bk-card h3{color:var(--ink)}
.bk-card--soft{background:var(--stone)}
.bk-card--warn{background:var(--butter);box-shadow:0 0 0 1px #e8cf7a}
.bk-card--warn h3::before{content:"!";display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--butter);margin-right:.55rem;font:700 1rem/1 var(--f-head)}
.bk-ticks{list-style:none;padding:0}
.bk-ticks li{position:relative;padding-left:1.8rem}
.bk-ticks li::before{content:"";position:absolute;left:0;top:.45em;width:14px;height:14px;border-radius:50%;background:var(--coral)}

/* ---------- house types ---------- */
.bk-houses{display:grid;gap:var(--s3)}
.bk-house{padding:var(--s3);background:var(--white);border-radius:var(--r-lg);box-shadow:0 0 0 1px var(--line)}
.bk-house--new{background:var(--teal-50)}
@media (min-width:860px){.bk-house{padding:var(--s4)}}
.bk-house__pic{width:120px;height:80px;margin-bottom:var(--s2)}
.bk-house h3{font-size:1.4rem}
.bk-house__label{font:700 .95rem/1.2 var(--f-body);color:var(--accent);margin:0 0 var(--s1)}

/* ---------- visit day ---------- */
.bk-visit{display:grid;gap:var(--s3);background:var(--ink-2);color:#e3f1f2;padding:var(--s4) var(--s3);border-radius:var(--r-lg)}
@media (min-width:860px){.bk-visit{padding:var(--s5) var(--s4);align-items:start}}
.bk-visit h2,.bk-visit h3{color:var(--white)}
.bk-visit .bk-ticks li::before{background:var(--coral)}
.bk-visit p{color:#e3f1f2}
.bk-visit a:not(.bk-btn){color:var(--white)}

/* ---------- towns: plain linked names with a dot ---------- */
.bk-townlist{list-style:none;padding:0;margin:0;columns:1;column-gap:var(--s4)}
@media (min-width:700px){.bk-townlist{columns:2}}
.bk-townlist li{break-inside:avoid;padding:.7rem 0;margin:0;border-bottom:1px dashed var(--mortar)}
.bk-townlist b,.bk-townlist a{font:600 1.1rem/1.2 var(--f-head);color:var(--ink);display:block}
.bk-townlist span{color:var(--muted);font-size:1rem;display:block}
.bk-towns{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:0 1rem}
.bk-towns li{margin:0}
.bk-towns a,.bk-towns span{display:flex;align-items:center;gap:.6rem;padding:.55rem .15rem;color:var(--ink);text-decoration:none;font:700 1.08rem/1.3 var(--f-body);min-height:46px}
.bk-towns i{width:9px;height:9px;border-radius:50%;background:var(--coral);flex:none;transition:transform .15s}
.bk-towns a:hover{color:var(--accent);text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:3px}
.bk-towns a:hover i{transform:scale(1.5)}
.bk-towns span[aria-current]{background:var(--teal-100);border-radius:6px;padding-left:.6rem}
.bk-towns--svc{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));margin-bottom:var(--s3)}
.bk-towns--svc a{border-bottom:1px solid var(--line)}
.bk-townrows{display:grid;gap:var(--s3)}
.bk-townrow{background:var(--white);border-radius:var(--r);box-shadow:0 0 0 1px var(--line);padding:var(--s2) var(--s3)}
.bk-townrow h3{font-size:1.1rem;margin-bottom:.4rem}
.bk-towns__h{font:700 1.05rem/1.2 var(--f-head);color:var(--ink);margin:var(--s2) 0 .4rem}
.bk-split .bk-towns{align-content:start}

/* ---------- FAQ: cards ---------- */
.bk-faq{display:grid;gap:12px;align-items:start}
.bk-faq details{background:var(--white);border-radius:var(--r);box-shadow:0 0 0 1px var(--line);transition:box-shadow .15s}
.bk-faq details[open]{box-shadow:0 0 0 2px var(--ink-2)}
.bk-faq summary{list-style:none;cursor:pointer;padding:1rem 3.6rem 1rem 1.1rem;font:600 1.05rem/1.35 var(--f-head);color:var(--ink);position:relative;min-height:60px;display:flex;align-items:center;border-radius:var(--r)}
.bk-faq summary::-webkit-details-marker{display:none}
.bk-faq summary::after{content:"+";position:absolute;right:.9rem;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:var(--coral);color:var(--ink);display:grid;place-items:center;font:700 1.35rem/1 var(--f-body)}
.bk-faq details[open] summary::after{content:"\2212";background:var(--ink-2);color:var(--white)}
.bk-faq summary:hover{background:var(--teal-50)}
.bk-faq details>p,.bk-faq details>div{padding:0 1.1rem 1.1rem;margin:0}
.bk-qa{display:grid;gap:12px}
.bk-qa details{padding:var(--s3);background:var(--white);border-radius:var(--r);box-shadow:0 0 0 1px var(--line)}
.bk-qa summary{list-style:none;font:600 1.1rem/1.3 var(--f-head);color:var(--ink);margin-bottom:.6rem;pointer-events:none}
.bk-qa summary::-webkit-details-marker{display:none}
.bk-qa details p{margin:0}
@media (min-width:860px){.bk-faq,.bk-qa{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- contact block / band ---------- */
.bk-contact{display:grid;border-radius:var(--r-lg);background:var(--white);box-shadow:0 0 0 1px var(--line);overflow:hidden}
.bk-contact__side{background:var(--ink-2);color:#e3f1f2;padding:var(--s4) var(--s3)}
@media (min-width:900px){.bk-contact__side{padding:var(--s5) var(--s4)}}
.bk-contact__side h2,.bk-contact__side h3{color:var(--white)}
.bk-contact__form{padding:var(--s4) var(--s3)}
@media (min-width:900px){.bk-contact__form{padding:var(--s5) var(--s4)}}
.bk-band{display:grid;gap:var(--s4);background:var(--teal-50);border-radius:var(--r-lg);padding:var(--s4) var(--s3)}
@media (min-width:900px){.bk-band{padding:var(--s5) var(--s4);align-items:center}}
.bk-band .bk-lede{color:var(--text)}

/* ---------- forms ---------- */
.bk-form{display:grid;gap:var(--s2)}
.bk-band .bk-form{background:var(--white);padding:var(--s3);border-radius:var(--r)}
.bk-field label{display:block;font:700 1.02rem/1.3 var(--f-body);color:var(--ink);margin-bottom:.35rem}
.bk-field label span{font-weight:400;color:var(--muted)}
.bk-field input,.bk-field select,.bk-field textarea{width:100%;font:inherit;color:var(--text);background:var(--white);border:2px solid var(--ink-3);border-radius:8px;padding:.7rem .9rem;min-height:52px;appearance:none}
.bk-field select{background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230a3340' stroke-width='2'/%3E%3C/svg%3E") right .9rem center no-repeat;padding-right:2.4rem}
.bk-field input:focus,.bk-field select:focus,.bk-field textarea:focus{outline:3px solid var(--coral);outline-offset:1px;border-color:var(--ink-2)}
.bk-hp{position:absolute;left:-9999px}

/* ---------- table ---------- */
.bk-tablewrap{overflow-x:auto;border-radius:var(--r);box-shadow:0 0 0 1px var(--line);background:var(--white);margin-bottom:var(--s2)}
.bk-table{width:100%;border-collapse:collapse;font-size:1rem}
.bk-table th{background:var(--ink-2);color:var(--white);text-align:left;font:600 .98rem/1.3 var(--f-head);padding:.8rem 1rem}
.bk-table td{padding:.8rem 1rem;border-top:1px solid var(--line);vertical-align:top}
.bk-table tr:nth-child(even) td{background:var(--page)}
.bk-facts{display:grid;gap:12px}
@media (min-width:800px){.bk-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
.bk-fact{background:var(--teal-50);padding:var(--s3);border-radius:var(--r)}
.bk-fact b{display:block;font:700 1.5rem/1.1 var(--f-head);color:var(--ink);margin-bottom:.4rem}
.bk-nap{display:flex;gap:.5rem;align-items:flex-start}
.bk-nap .bk-i{margin-top:.25em;color:var(--accent)}
.bk-callbox+.bk-nap{margin-top:var(--s3)}

/* ---------- mid-page nudge: ticket card with stamp ---------- */
.bk-nudge-wrap{padding:var(--s4) 0}
.bk-nudge{position:relative;display:grid;gap:var(--s2);align-items:center;background:var(--coral-lt);border-radius:var(--r-lg);padding:var(--s4) var(--s3) var(--s3);box-shadow:0 0 0 2px var(--coral) inset}
.bk-nudge__stamp{position:absolute;top:-14px;left:var(--s3);background:var(--ink);color:var(--white);font:700 .95rem/1 var(--f-body);padding:.5rem .8rem;border-radius:6px;transform:rotate(-2deg)}
.bk-nudge__disc{width:56px;height:56px;border-radius:50%;background:var(--coral);display:grid;place-items:center;color:var(--ink)}
.bk-nudge__disc .bk-i{width:26px;height:26px}
.bk-nudge__line{margin:0;font:600 clamp(1.1rem,1rem + .6vw,1.35rem)/1.4 var(--f-head);color:var(--ink)}
.bk-nudge__act{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}
.bk-nudge .bk-btn{background:var(--ink);border-color:var(--ink);color:var(--white)}
.bk-nudge .bk-btn:hover{background:var(--ink-2);border-color:var(--ink-2);color:var(--white)}
.bk-nudge__alt{font-weight:700;color:var(--ink)}
@media (min-width:860px){.bk-nudge{grid-template-columns:auto minmax(0,1fr) auto;gap:var(--s3);padding:var(--s4)}.bk-nudge__act{align-items:flex-end}}

/* ---------- trust: tick rows in a soft panel ---------- */
.bk-trust__h{margin-bottom:var(--s3)}
.bk-trust{list-style:none;padding:var(--s3);margin:0;display:grid;gap:var(--s2) var(--s4);background:var(--teal-50);border-radius:var(--r-lg)}
@media (min-width:760px){.bk-trust{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bk-trust li{margin:0;display:flex;gap:.8rem;align-items:flex-start}
.bk-trust__ck{flex:none;width:26px;height:26px;border-radius:50%;background:var(--ink-2);position:relative;margin-top:.1rem}
.bk-trust__ck::after{content:"";position:absolute;left:8px;top:5px;width:6px;height:11px;border:solid var(--white);border-width:0 3px 3px 0;transform:rotate(45deg)}
.bk-trust b{display:block;font:600 1.08rem/1.3 var(--f-head);color:var(--ink);margin-bottom:.2rem}
.bk-trust span{display:block;color:var(--muted);font-size:1.02rem}

.bk-fine{display:block;color:var(--muted);font-size:.95rem}
.bk-src__h{font-weight:700;margin-bottom:.4rem}
.bk-src ul{padding-left:1.2rem;margin:0}
.bk-h3{font:600 1.25rem/1.2 var(--f-head)}
.bk-hero .bk-card .bk-h3{color:var(--ink)}
.bk-map{border-radius:var(--r);overflow:hidden;box-shadow:0 0 0 1px var(--line);background:var(--white);height:clamp(280px,50vw,400px)}
.bk-map iframe{display:block;width:100%;height:100%;border:0}

/* ---------- footer: inset petrol card ---------- */
.bk-ftr{margin:var(--s5) 10px 10px;color:#d5e8ea}
.bk-ftr__card{background:var(--ink-2);border-radius:var(--r-lg);padding:var(--s4) var(--s3);display:grid;gap:var(--s4);max-width:1220px;margin:0 auto}
.bk-ftr .bk-logo,.bk-ftr .bk-logo:hover{color:var(--white)}
.bk-ftr .bk-logo__txt,.bk-ftr .bk-logo__txt b{color:var(--white)}
.bk-ftr__lead p{margin:var(--s2) 0 0;max-width:36ch}
.bk-ftr__h{display:block;font:600 1.05rem/1 var(--f-head);color:var(--white);margin-bottom:var(--s2)}
.bk-ftr__col a{display:block;color:#e8f4f5;text-decoration:none;padding:.4rem 0;min-height:44px}
.bk-ftr__col a:hover{color:var(--white);text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:3px}
.bk-ftr__tel{margin:var(--s3) 0 var(--s1)!important}
.bk-ftr__tel a{display:inline-flex;align-items:center;gap:.6rem;font:700 clamp(1.4rem,5.4vw,2rem)/1.2 var(--f-head);letter-spacing:-.02em;color:var(--white);text-decoration:none}
.bk-ftr__tel .bk-i{color:var(--coral)}
.bk-ftr__tel a:hover{color:var(--coral-2)}
.bk-ftr__lead address,.bk-ftr__hours{color:#d5e8ea;margin:0 0 var(--s1)}
.bk-ftr__base{font-size:.95rem;color:var(--muted);margin:var(--s2) 0 0;text-align:center}
.bk-ftr__base a{color:var(--muted)}
@media (min-width:640px){.bk-ftr__card{padding:var(--s5) var(--s4)}}
@media (min-width:900px){.bk-ftr__card{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s5)}}

/* ---------- sticky mobile call bar: floating, inset, rounded ---------- */
.bk-bar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:50;display:flex;gap:8px}
.bk-bar a{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:60px;border-radius:14px;text-decoration:none;font:700 1.1rem/1.15 var(--f-head);text-align:center;padding:0 1rem;box-shadow:0 12px 26px -8px rgba(10,51,64,.6);transition:transform .15s,background .15s}
.bk-bar__call{flex:1 1 auto;background:var(--coral);color:var(--ink)}
.bk-bar__call:hover{background:var(--coral-2);color:var(--ink);transform:translateY(-2px)}
.bk-bar__call svg{flex:none}
.bk-bar__book{flex:0 0 auto;background:var(--ink);color:var(--white)}
.bk-bar__book:hover{background:var(--ink-2);color:var(--white)}
@media (min-width:900px){.bk-bar{display:none}}

/* grid safety: children may shrink below their content width (no sideways scroll on phones) */
.bk-split,.bk-houses,.bk-cards,.bk-band,.bk-contact,.bk-townrows,.bk-visit{grid-template-columns:minmax(0,1fr)}
.bk-split>*,.bk-houses>*,.bk-cards>*,.bk-band>*,.bk-contact>*,.bk-ftr__card>*,.bk-visit>*{min-width:0}
@media (min-width:700px){.bk-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.bk-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}.bk-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:860px){.bk-houses,.bk-townrows{grid-template-columns:repeat(2,minmax(0,1fr))}.bk-visit{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:900px){.bk-split{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start}.bk-band{grid-template-columns:repeat(2,minmax(0,1fr))}.bk-contact{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}
.bk-split .bk-cards{grid-template-columns:minmax(0,1fr)}
.bk-ftr .bk-logo__mark rect[fill="#0f4c5c"]{fill:#fff}

/* Online booking, blog and office view. Loaded after site.css (the build joins the two). Running Bond: square, ruled, ink + cobalt. */
[hidden]{display:none!important}
.bk-steps{padding-left:1.4rem}
.bk-steps li{margin-bottom:.7rem}
.bk-steps li::marker{font-family:var(--f-head);font-weight:800;color:var(--accent)}
.bk-booklay,.bk-contact{grid-template-columns:minmax(0,1fr)}
.bk-booklay{display:grid;gap:var(--s4)}
@media (min-width:980px){.bk-booklay{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}.bk-booklay__side{position:sticky;top:110px}}
@media (min-width:900px){.bk-contact{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.bk-contact__stick{position:sticky;top:110px}}
.bk-booklay__main{background:var(--white);border:1px solid var(--ink);border-top:6px solid var(--ink);padding:var(--s3)}
@media (min-width:700px){.bk-booklay__main{padding:var(--s4)}}
.bk-booklay__side{display:grid;gap:var(--s2)}
.bk-sched{min-width:0}
.bk-sched__step{margin-bottom:var(--s3)}
.bk-sched__h{display:flex;align-items:center;gap:.7rem;font-size:1.2rem;margin-bottom:.8rem}
.bk-sched__n{display:inline-grid;place-items:center;width:32px;height:32px;background:var(--ink);color:var(--white);font:800 .95rem/1 var(--f-head);flex:none}
.bk-sched__hint,.bk-sched__err{color:var(--muted);margin:0}
.bk-sched__err{color:#8a1f1f}
/* reserve the loaded height so the calendar does not push the page down (CLS) */
.bk-days{display:flex;gap:.55rem;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 2px 10px;margin:0 -2px;scrollbar-width:thin;min-height:7rem}
.bk-day{flex:0 0 76px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.7rem .3rem .6rem;border:2px solid var(--mortar);background:var(--white);color:var(--ink);cursor:pointer;font-family:var(--f-body);position:relative;transition:transform .12s,border-color .12s}
.bk-day:hover:not([disabled]){transform:translateY(-2px);border-color:var(--ink)}
.bk-day__dow{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bk-day__num{font:800 1.6rem/1.05 var(--f-head)}
.bk-day__mon{font-size:.8rem;font-weight:700}
.bk-day__tag{font-size:.7rem;color:var(--muted)}
.bk-day[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.bk-day[aria-pressed="true"] .bk-day__dow,.bk-day[aria-pressed="true"] .bk-day__tag{color:var(--accent-lt)}
.bk-day[disabled]{cursor:not-allowed;background:repeating-linear-gradient(135deg,var(--stone) 0 6px,#fff 6px 12px);opacity:.7}
@media (min-width:700px){.bk-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible;padding:0;margin:0;min-height:16.8rem;align-content:start}.bk-day{flex:none}}
.bk-wins{display:grid;gap:.6rem}
@media (min-width:560px){.bk-wins{grid-template-columns:repeat(2,1fr)}}
.bk-win{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;padding:.9rem 1rem;border:2px solid var(--mortar);background:var(--white);color:var(--text);cursor:pointer;font:inherit;min-height:60px}
.bk-win b{font:800 1.08rem/1.2 var(--f-head);color:var(--ink)}
.bk-win span{font-size:.95rem;color:var(--muted)}
.bk-win:hover:not([disabled]){border-color:var(--ink)}
.bk-win[aria-pressed="true"]{background:var(--buff);border-color:var(--ink)}
.bk-win[disabled]{cursor:not-allowed;opacity:.55}
.bk-sched__form{border-top:3px solid var(--ink);padding-top:var(--s3)}
.bk-sched__chosen{margin:0;background:var(--buff);border-left:6px solid var(--ink);padding:.8rem 1rem;display:flex;flex-direction:column;gap:.1rem}
.bk-sched__chosen span{font:700 .78rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bk-sched__chosen b{font:800 1.1rem/1.3 var(--f-head);color:var(--ink)}
.bk-sched__grid{display:grid;gap:var(--s2)}
@media (min-width:640px){.bk-sched__grid{grid-template-columns:1fr 1fr}}
.bk-sched__status{margin:var(--s2) 0 0;font-weight:700;color:var(--ink)}
.bk-sched__status:empty{display:none}
.bk-sched__done{background:var(--stone);border:1px solid var(--ink);padding:var(--s3);outline:0}
.bk-sched__badge{display:inline-block;background:var(--ink);color:var(--white);font:700 .78rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;padding:.45rem .7rem;margin-bottom:var(--s1)}
.bk-contact__ticks{margin-top:var(--s3)}
.bk-contact__ticks li::before{background:var(--accent-lt)}
.bk-contact__side a:not(.bk-btn){color:var(--accent-lt);font-weight:700}
.bk-hero .bk-sched,.bk-sec--lilac .bk-sched{color:var(--text)}

/* office view */
.bk-of{max-width:860px}
.bk-of__signin{max-width:380px}
.bk-of__list{display:grid;gap:var(--s2);margin-bottom:var(--s4)}
.bk-of__visit{background:var(--stone);border:1px solid var(--line);border-left:6px solid var(--ink);padding:var(--s3)}
.bk-of__line{margin:0 0 .3rem;display:flex;gap:.6rem}
.bk-of__line b{min-width:5.5rem;font-family:var(--f-head);color:var(--ink)}
.bk-of__closeform{max-width:520px;grid-template-columns:1fr 1fr;align-items:end}
.bk-of__closeform .bk-btn{grid-column:1/-1}
.bk-of__closed{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);background:var(--stone);border:1px solid var(--line);padding:.6rem 1rem}

/* blog */
.bk-posts{display:grid;gap:var(--s2)}
@media (min-width:760px){.bk-posts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.bk-posts{grid-template-columns:repeat(3,minmax(0,1fr))}}
.bk-post{display:flex;flex-direction:column;gap:.4rem}
.bk-post h3{margin:0}
.bk-post p{margin:0;flex:1;color:var(--muted)}
.bk-post__date,.bk-post__meta{font:700 .82rem/1.3 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.bk-post__more{display:inline-flex;align-items:center;gap:.35rem;font-weight:700;color:var(--accent)}
.bk-post__more .bk-i{width:18px;height:18px}
.bk-article{max-width:720px}
.bk-article h2{margin-top:var(--s4)}
.bk-src{font-size:.92rem;border-top:3px solid var(--ink);margin-top:var(--s4);padding-top:var(--s2)}
.bk-src ol{padding-left:1.2rem}
.bk-src li{margin-bottom:.35rem;overflow-wrap:anywhere}
.bk-band .bk-towns+p{margin-top:.8rem}
.bk-logo__mark{flex-shrink:0}

/* v2 shape overrides: rounded, tinted, no ruled lines */
.bk-booklay__main{border:0;border-radius:var(--r-lg);box-shadow:0 0 0 1px var(--line);background:var(--white)}
.bk-sched__n{border-radius:50%}
.bk-day,.bk-win{border-radius:var(--r);border-color:var(--line)}
.bk-day:hover:not([disabled]),.bk-win:hover:not([disabled]){border-color:var(--ink-2)}
.bk-day[aria-pressed="true"]{background:var(--ink-2);border-color:var(--ink-2)}
.bk-win[aria-pressed="true"]{background:var(--coral-lt);border-color:var(--coral)}
.bk-sched__form{border-top:0;padding-top:0}
.bk-sched__chosen{border-left:0;border-radius:var(--r);background:var(--coral-lt)}
.bk-sched__done{border:0;border-radius:var(--r);box-shadow:0 0 0 2px var(--ink-2)}
.bk-sched__badge{border-radius:6px;background:var(--ink-2);letter-spacing:0;font-size:.9rem}
.bk-of__visit{border:0;border-radius:var(--r);box-shadow:0 0 0 1px var(--line)}
.bk-of__closed{border:0;border-radius:var(--r)}
.bk-src{border-top:0;border-radius:var(--r);background:var(--teal-50);padding:var(--s2) var(--s3)}
.bk-post__date,.bk-post__meta{letter-spacing:0;text-transform:none;font-size:.95rem;color:var(--accent)}
.bk-day__dow,.bk-sched__chosen span{letter-spacing:0}
