.herogrid{grid-template-columns:1fr 1fr;align-items:start}
.dm{background:#f8f9fb;color:#111318;border:1px solid #dfe4eb;border-radius:12px;box-shadow:0 22px 60px rgba(0,0,0,.32);overflow:hidden;font:500 12px/1.4 var(--sans,Inter,Arial,sans-serif)}
.dm-bar{display:flex;justify-content:space-between;align-items:center;height:38px;padding:0 14px;background:#fff;border-bottom:1px solid #e1e5eb}
.dm-bar b{font:800 14px var(--display);letter-spacing:.04em}.dm-bar b i{font-style:normal;color:var(--red)}
.dm-bar span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#657182}
.dm-bar span:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#27aa6d;margin-right:5px}
.dm-body{padding:14px}
.dm-card{background:#fff;border:1px solid #e0e5ec;border-radius:8px;padding:10px 12px}
.dm-h{font:700 15px var(--display);margin:0 0 6px}
.dm-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid #edf0f4}
.dm-row:first-child{border-top:0}.dm-row>span:first-child{flex:1}
.dm-tag{display:inline-block;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:800;background:#f9e8ea;color:#a40f18;white-space:nowrap}
.dm-tag.g{background:#e8f6ef;color:#258057}.dm-tag.y{background:#fff4d3;color:#7c5900}.dm-tag.b{background:#e8eef9;color:#2b4f9e}
.dm-grid{display:grid;gap:8px}.dm-grid.g2{grid-template-columns:1fr 1fr}.dm-grid.g3{grid-template-columns:repeat(3,1fr)}
.dm-col{background:#eef1f5;border-radius:8px;padding:8px}
.dm-col h5{font:700 12px var(--display);letter-spacing:.04em;margin:0 0 6px;text-transform:uppercase;color:#3c414c}
.dm-col .dm-card{margin-top:6px;padding:7px 8px;font-size:11px}
.dm-bubble{padding:8px 10px;border-radius:10px;background:#edf0f4;max-width:90%}
.dm-bubble.me{background:#fff;border:1px solid #e0e5ec}
.dm-cite{font-size:10px;color:#a40f18;font-weight:800;margin-top:4px}
.dm-bar2{height:6px;border-radius:6px;background:#e7ebf0;overflow:hidden}.dm-bar2 i{display:block;height:100%;background:#a40f18}
.dm-metric small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7f8996;display:block}
.dm-metric strong{font:700 26px var(--display)}
.dm-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.dm-d{height:30px;border:1px solid #e3e7ed;background:#fff;border-radius:5px;text-align:center;padding-top:7px;font-size:10px}
.dm-d.o{background:#eaf7f0;color:#247a54;border-color:#bfe3cf;font-weight:800}.dm-d.f{background:#f9eaec;color:#9e1a23}
.dm-btn{display:inline-block;background:#111318;color:#fff;border-radius:6px;padding:7px 12px;font-size:11px;font-weight:800;text-align:center}
.dm-btn.r{background:#a40f18}
.dm-note{margin-top:10px;font-size:11px;color:#9aa3b0}
@media(max-width:860px){.herogrid{grid-template-columns:1fr}}
.mnav{display:none}@media(max-width:980px){.mnav{display:block;order:3}.mobile-service{display:none!important}.mnav summary{list-style:none;cursor:pointer;width:44px;height:44px;border:1px solid #d6dae1;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#fff}.mnav summary::-webkit-details-marker{display:none}.mnav summary span,.mnav summary span:before,.mnav summary span:after{display:block;width:20px;height:2px;background:#1b222c;border-radius:2px;content:"";position:relative}.mnav summary span:before{position:absolute;top:-6px}.mnav summary span:after{position:absolute;top:6px}.mnav[open] summary span{background:transparent}.mnav[open] summary span:before{top:0;transform:rotate(45deg)}.mnav[open] summary span:after{top:0;transform:rotate(-45deg)}.mnav-panel{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid #d6dae1;box-shadow:0 18px 30px rgba(0,0,0,.18);padding:8px 16px 16px;z-index:40}.mnav-panel a{display:block;padding:14px 4px;font-size:17px;font-weight:700;color:#1b222c;border-bottom:1px solid #eceef2}.mnav-panel a:last-child{border-bottom:0}.nav .navright{gap:10px}}
/* headings: calmer scale so long titles stay at 2 to 3 lines */
h2{font-size:clamp(34px,4.3vw,54px);line-height:1.04;text-wrap:balance}
.servicebox h2{font-size:clamp(34px,4.3vw,52px)}
.cta h2{font-size:clamp(36px,4.8vw,60px)}
.hero h1,.uk-hero h1{text-wrap:balance}
h3{text-wrap:balance}
p,li{text-wrap:pretty}
.hero h1{font-size:clamp(42px,5.6vw,72px)}
@media(min-width:981px){.headrow{grid-template-columns:1.3fr .7fr}}
.headrow p{padding-bottom:4px}
/* long-form pages: headings sized for reading, with room above and below */
.prose h2{font-size:clamp(28px,3vw,38px);line-height:1.12;margin:52px 0 14px}
.prose h2:first-child{margin-top:0}
.prose h3{margin:30px 0 8px}
.prose p+ul,.prose p+ol{margin-top:6px}
/* second call to action: lead form next to the booking button */
.btn.k9-plan{background:transparent!important;color:#fff!important;border:2px solid rgba(255,255,255,.75)!important;margin-left:12px}
.btn.k9-plan:hover{background:rgba(255,255,255,.12)!important}
@media(max-width:700px){.btn.k9-plan{margin:12px 0 0;display:inline-flex}}
/* leads engine heading sits too close to its copy */
.leadsgrid h2{margin-bottom:22px}
/* home hero form: keep the privacy note under the intro, not stranded at the bottom */
.hero-lead small{align-self:start}
.hero-lead{grid-template-rows:auto 1fr}
@media(max-width:980px){.hero-lead{grid-template-rows:none}}
/* service cards: links line up at the bottom, labels never strand an arrow */
.ideas .idea{display:flex;flex-direction:column}
.ideas .idea>p:has(.cardlink){margin-top:auto!important;padding-top:14px}
.cardlink{display:inline-block}
/* demo mock-ups: example note belongs under the mock-up */
.herogrid>.dm{align-self:end}
.herogrid>.dm-note{grid-column:2;margin:-6px 0 0;text-align:left}
@media(max-width:860px){.herogrid>.dm-note{grid-column:auto;margin-top:10px}}
#k9home .k9nav{padding:13px 30px}#k9home .k9nav img{height:62px}
@media(max-width:700px){.headrow{gap:16px}footer a,.cardlink,.text-link,.textlink{display:inline-block;padding:7px 0}.footlinks{gap:2px 18px}}