/* Generated by scripts/style_delivery.py; edit the source stylesheets. */
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/barlow-400-latin-ext.woff2?v=122b24bc2a90') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/barlow-400-latin.woff2?v=b0a8ad37ac45') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/barlow-500-latin-ext.woff2?v=3facdf66b607') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/barlow-500-latin.woff2?v=cd759df8ef9e') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/barlow-600-latin-ext.woff2?v=b7f099c42196') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/barlow-600-latin.woff2?v=4b52ddd4836b') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/barlow-700-latin-ext.woff2?v=88c786d5fa87') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/barlow-700-latin.woff2?v=2d797dd8b35d') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* Source: styles.css */
/* Font stylesheets are linked directly from each page's head. */
.header .header-book{background:#005eb5;border-color:#005eb5}
.header .header-book:hover{background:var(--brand-dark);border-color:var(--brand-dark)}
.about-copy > .about-services-intro { margin-bottom: 8px; }
.about-services { display: grid; gap: 5px; margin: 0 0 20px; padding-left: 21px; list-style: disc; color: var(--muted); }
.about-services li::marker { color: var(--brand); }
@media (max-width: 850px) { .about-services { font-size: 16px; } }
:root{--brand:#005eb5;--brand-dark:#004b91;--ink:#101f29;--muted:#4d5b66;--pale:#f1f4f5;--line:#dce3e5;--heading:'Barlow Condensed',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;font-family:'Barlow',Arial,sans-serif;color:var(--ink);font-size:17px;line-height:1.5;background:#fff}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #dc9d17;outline-offset:5px}img{display:block;max-width:100%;height:auto}button{border:0}h1,h2,h3,p{margin-top:0}h2{font-family:var(--heading);font-size:35px;font-weight:700;line-height:1.1;letter-spacing:.1px;margin-bottom:20px}h3{font-size:21px;line-height:1.2}p{margin-bottom:20px}i[data-icon]{display:inline-flex;flex-shrink:0}i[data-icon] svg{width:34px;height:34px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}.container{width:min(1240px,calc(100% - 80px));margin-inline:auto}.header{background:#fff;position:relative;z-index:5;box-shadow:0 1px 0 #e5eaec}.header-inner{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:block;flex-shrink:0;width:258px}.brand img{width:100%;height:auto;filter:none}nav{display:flex;align-items:center;gap:25px;font-size:14px;font-weight:500}nav a{padding:12px 0;position:relative}nav a:after{content:'';height:2px;background:var(--brand);position:absolute;bottom:4px;left:0;right:100%;transition:right .2s}nav a:hover:after,nav a.active:after{right:0}.button{display:inline-flex;min-height:48px;justify-content:center;align-items:center;gap:25px;background:var(--brand);color:#fff;padding:13px 26px;border:1px solid var(--brand);border-radius:4px;font-size:15px;font-weight:600;transition:background .18s,transform .18s}.button:hover{background:var(--brand-dark);border-color:var(--brand-dark);transform:translateY(-1px)}.button-outline{border-color:#d2dde0;background:transparent;color:#fff}.button-outline:hover{background:#ffffff15;border-color:#fff}.button-light{background:#fff;color:var(--ink);border-color:#b9c9ce}.button-light:hover{color:#fff}.actions{display:flex;gap:15px;flex-wrap:wrap}.menu-toggle{display:none}.hero{position:relative;background:#0c1920;color:#fff}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#07171eda 0%,#081a204a 49%,transparent 78%)}.hero-inner{position:relative;z-index:1;min-height:560px;padding-block:46px}.hero-topline{position:absolute;right:0;top:25px;font-size:12px;letter-spacing:1.4px;font-weight:500}.hero-topline span{margin:0 13px;color:#a4b5bc}.hero-copy{max-width:550px}.accent-line{width:43px;height:4px;background:var(--brand);margin-bottom:16px}.hero .accent-line{background:#4aa6ff}.hero h1{font-family:var(--heading);font-weight:800;font-size:70px;letter-spacing:.2px;line-height:.93;margin-bottom:21px}.hero h1 span{color:#fff}.hero-copy>p{max-width:485px;font-size:18px;line-height:1.5;margin-bottom:25px}.benefits{padding-block:29px;border-bottom:1px solid #f0f3f4}.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.benefit{display:flex;gap:15px;align-items:center}.benefit i{color:var(--brand)}.benefit h2{font-family:inherit;font-size:16px;font-weight:600;line-height:1.2;margin:0 0 5px}.benefit p{font-size:13px;color:var(--muted);line-height:1.3;margin:0}.section-tint{background:var(--pale)}.about{padding-block:48px}.split{display:grid;grid-template-columns:1fr 1.08fr;gap:64px;align-items:center}.eyebrow{font-size:12px;letter-spacing:1.2px;font-weight:600;color:var(--brand-dark);margin-bottom:10px}.about-copy>p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.5;max-width:480px}.about .button{margin-top:5px}.credentials{display:flex;gap:25px;margin-top:32px}.credentials>div{display:flex;align-items:center;gap:11px;font-size:13px;line-height:1.4}.credentials i svg{width:30px;height:30px}.about-photo{position:relative;min-height:410px;height:100%;overflow:hidden}.about-photo>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:42% center}.photo-caption{position:absolute;right:0;bottom:26px;background:#071a23eb;color:#fff;padding:27px 25px;width:205px}.photo-caption p{font-family:var(--heading);font-size:34px;line-height:1.05;font-weight:700;margin-bottom:18px}.photo-caption span{font-size:16px;line-height:1.4;display:block}.section{padding-block:52px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:26px}.section-heading h2{margin-bottom:0}.text-link{display:inline-flex;align-items:center;gap:15px;font-size:12px;letter-spacing:.3px;font-weight:700;color:var(--brand-dark);padding:0;background:transparent}.text-link:hover{color:var(--ink)}.text-link span{font-size:21px;line-height:1}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{background:var(--pale);display:flex;flex-direction:column}.service-image{position:relative;aspect-ratio:2/1;overflow:hidden}.service-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.service-card:hover .service-image img{transform:scale(1.04)}.service-image>span{position:absolute;bottom:0;left:0;background:var(--brand);color:#fff;padding:3px 12px;font-size:13px;font-weight:600}.service-content{padding:24px 22px;display:flex;flex-direction:column;align-items:flex-start;flex:1}.service-content i{color:var(--ink);margin-bottom:16px}.service-content h3{font-size:19px;font-weight:600;margin-bottom:15px}.service-content p{font-size:15px;color:var(--muted);line-height:1.5;margin-bottom:22px}.service-content .text-link{margin-top:auto;font-size:11px;gap:10px}.equipment{padding-block:42px}.equipment-split{grid-template-columns:1.05fr 1fr}.machine-photo{background:#fff;position:relative;padding:10px 16px 40px}.machine-photo img{width:100%;height:330px;object-fit:contain}.photo-label{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:11px;letter-spacing:1.5px;color:var(--muted)}.equipment p:not(.eyebrow){color:var(--muted)}.checklist{list-style:none;padding:0;margin:25px 0 16px}.checklist li{position:relative;padding-left:25px;margin-bottom:10px;font-size:16px}.checklist li:before{content:'✓';position:absolute;left:0;color:var(--brand);font-weight:700}.small-note{font-size:13px}.outcomes{position:relative;color:#fff;background:linear-gradient(#0c2b4bed,#071a22f5),url('assets/hero.webp') center/cover;padding-block:36px}.outcome-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;text-align:center}.outcome-grid i{color:#4aa6ff;margin-bottom:12px}.outcome-grid i svg{width:38px;height:38px}.outcome-grid h2{font-family:inherit;font-size:14px;font-weight:600;margin-bottom:7px}.outcome-grid p{font-size:13px;color:#d3e3e4;margin:0}.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:85px}.faq-layout>div>p:not(.eyebrow){color:var(--muted);max-width:320px}.phone-link{font-size:24px;font-weight:600}.phone-link span{color:var(--brand);margin-left:12px}.faqs details{border-bottom:1px solid var(--line)}.faqs summary{cursor:pointer;padding:19px 28px 19px 0;font-size:16px;font-weight:600;position:relative;list-style:none}.faqs summary::-webkit-details-marker{display:none}.faqs summary:after{content:'+';position:absolute;right:2px;top:14px;font-size:25px;font-weight:400;color:var(--brand)}.faqs details[open] summary:after{content:'−'}.faqs details p{color:var(--muted);font-size:16px;margin-bottom:20px}.contact-cta{background:#091e28;color:#fff;padding-block:38px}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.contact-cta h2{font-size:37px;margin-bottom:10px}.contact-cta .eyebrow{color:#4aa6ff}.contact-cta p:last-child{font-size:16px;margin-bottom:0;color:#c7d7db}.contact-cta .actions{flex-shrink:0}.contact-cta .button{min-width:150px}footer{background:#fff}.footer-main{padding-block:36px;display:flex;justify-content:space-between;align-items:center;gap:30px}.footer-main .brand{width:240px}.footer-nav{display:flex;gap:25px;font-size:13px}.footer-nav a:hover,address a:hover{color:var(--brand-dark)}address{display:grid;gap:9px;font-size:13px;font-style:normal}address a,address>span{display:flex;gap:10px;align-items:center}address i{color:var(--brand-dark)}address i svg{width:17px;height:17px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-block:22px;font-size:12px;color:#65737e}.skip{position:fixed;left:20px;top:-100px;z-index:100;background:#fff;padding:10px}.skip:focus{top:10px}dialog{width:min(610px,calc(100% - 32px));max-height:90vh;overflow:auto;border:0;padding:30px;border-radius:7px;color:var(--ink);box-shadow:0 30px 100px #0005}dialog::backdrop{background:#041218b8;backdrop-filter:blur(3px)}.dialog-top{display:flex;gap:20px;align-items:start;justify-content:space-between}.dialog-top h2{font-size:31px;margin-bottom:18px}.close-dialog{background:var(--pale);border-radius:50%;font-size:28px;line-height:1;width:40px;height:40px;flex-shrink:0}.booking-options{display:grid;gap:10px;margin:25px 0}.booking-options a{display:flex;justify-content:space-between;align-items:center;gap:15px;border:1px solid var(--line);padding:16px 18px;border-radius:4px;font-size:17px;font-weight:600}.booking-options a:hover{border-color:var(--brand);background:var(--pale)}.booking-options small{display:block;font-size:13px;font-weight:400;color:var(--muted);margin-top:5px}.dialog-note{font-size:14px;color:var(--muted);margin-bottom:0}.dialog-note a{color:var(--brand-dark);text-decoration:underline}#service-photo{width:100%;height:220px;object-fit:cover;margin-bottom:22px}#service-description{color:var(--muted)}
@media(min-width:1500px){.hero-inner{min-height:610px;padding-top:65px}.hero h1{font-size:78px}}
@media(max-width:1120px){.container{width:calc(100% - 48px)}.header-inner{gap:20px}.brand{width:218px}nav{gap:17px;font-size:13px}.header-book{padding:12px 18px}.split{gap:35px}.benefit-grid{gap:16px}.benefit{gap:10px}.benefit h2{font-size:14px}.benefit p{font-size:12px}.credentials{gap:14px}.credentials>div{font-size:12px;gap:8px}.service-content{padding:20px 17px}.service-content h3{font-size:18px}.footer-main{flex-wrap:wrap}.footer-nav{margin-left:auto}.footer-main address{width:100%;display:flex;flex-wrap:wrap;justify-content:space-between}.faq-layout{gap:45px}}
@media(max-width:850px){.header-inner{min-height:88px}.brand{width:220px}.header-book{margin-left:auto}.menu-toggle{display:grid;gap:5px;padding:10px;background:transparent;order:3;width:42px;height:42px;align-content:center}.menu-toggle span{display:block;height:2px;width:23px;background:var(--ink)}nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;padding:15px 24px 25px;box-shadow:0 10px 20px #0001}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}nav a{font-size:16px;padding:13px}.hero-topline{font-size:10px;letter-spacing:.8px}.hero-inner{padding-block:50px;min-height:560px}.hero-copy{max-width:490px}.hero h1{font-size:67px}.hero-photo{object-position:65% center}.benefit-grid{grid-template-columns:1fr 1fr;gap:25px}.benefit h2{font-size:16px}.benefit p{font-size:13px}.split{grid-template-columns:1fr 1fr;gap:25px}.about-photo{min-height:450px}.credentials{flex-wrap:wrap;gap:15px}.credentials>div{font-size:12px}.about-copy>p:not(.eyebrow){font-size:16px}.photo-caption{width:180px;padding:22px}.service-grid{grid-template-columns:1fr 1fr;gap:20px}.service-content h3{font-size:21px}.service-content .text-link{font-size:12px}.section-heading{align-items:start}.section-heading .text-link{max-width:200px}.machine-photo img{height:300px}.outcome-grid{gap:18px}.outcome-grid h2{font-size:12px}.faq-layout{grid-template-columns:1fr 1.2fr;gap:30px}.contact-inner{align-items:start;flex-direction:column;gap:25px}.footer-bottom{flex-direction:column;gap:8px}h2{font-size:31px}}
@media(max-width:600px){.container{width:calc(100% - 36px)}html{scroll-padding-top:20px}.header-inner{min-height:78px;gap:8px}.brand{width:188px}.header-book{font-size:12px;padding:10px 12px;gap:8px;min-height:41px}.header-book>span{display:none}.menu-toggle{width:36px;padding:8px}.hero-inner{padding-block:45px;min-height:580px}.hero-topline{position:static;font-size:9px;letter-spacing:.6px;margin-bottom:26px}.hero-topline span{margin:0 6px}.hero h1{font-size:62px}.hero-copy>p{font-size:17px;max-width:380px}.hero-photo{object-position:61% center}.hero:after{background:linear-gradient(90deg,#07171ee8,#07171e42)}.hero .actions{gap:10px}.button{padding:12px 20px;font-size:14px;gap:20px}.benefits{padding-block:24px}.benefit-grid{gap:23px 12px}.benefit{align-items:start;gap:10px}.benefit i svg{width:29px;height:29px}.benefit h2{font-size:14px}.benefit p{font-size:12px}.split{grid-template-columns:1fr;gap:28px}.about{padding-block:34px}.about-photo{min-height:325px;order:2}.about-copy>p:not(.eyebrow){max-width:none}.credentials{flex-wrap:nowrap;justify-content:space-between;gap:8px;margin-top:28px}.credentials>div{gap:8px;font-size:11px}.credentials i svg{width:26px;height:26px}.photo-caption{bottom:20px;width:172px;padding:20px}.photo-caption p{font-size:30px}.photo-caption span{font-size:14px}.section{padding-block:35px}.section-heading{display:block;margin-bottom:22px}.section-heading>.text-link{margin-top:15px;max-width:none;font-size:11px}.service-grid{gap:14px}.service-image{aspect-ratio:1.5}.service-content{padding:18px 14px}.service-content h3{font-size:17px;line-height:1.25}.service-content p{font-size:14px;margin-bottom:18px}.service-content .text-link{font-size:10px;gap:7px}.service-content i svg{width:30px;height:30px}.equipment{padding-block:32px}.equipment-split{gap:30px}.machine-photo{order:2}.machine-photo img{height:290px}.outcomes{padding-block:30px}.outcome-grid{grid-template-columns:1fr 1fr;gap:30px 16px}.outcome-grid h2{font-size:12px}.outcome-grid p{font-size:12px}.faq-layout{grid-template-columns:1fr;gap:25px}.faq-layout>div>p:not(.eyebrow){max-width:none}.faqs summary{font-size:16px}.contact-cta{padding-block:32px}.contact-cta h2{font-size:33px}.contact-cta .actions{width:100%}.contact-cta .button{flex:1;min-width:0}.footer-main{padding-block:28px;gap:25px}.footer-main .brand{width:220px}.footer-nav{margin-left:0;width:100%;justify-content:space-between;font-size:14px}.footer-main address{display:grid;gap:13px;font-size:13px}.footer-bottom{font-size:11px}.eyebrow{font-size:11px}dialog{padding:22px}.dialog-top h2{font-size:28px}.booking-options a{font-size:15px;padding:14px}.booking-options small{font-size:12px}#service-photo{height:180px}}
@media(max-width:380px){.header-book{display:none}.menu-toggle{margin-left:auto}.service-grid{grid-template-columns:1fr}.service-image{aspect-ratio:2}.service-content h3{font-size:21px}.service-content p{font-size:16px}.service-content .text-link{font-size:12px}.credentials{flex-wrap:wrap;justify-content:flex-start;gap:16px}.hero h1{font-size:55px}.hero-topline{font-size:8px}.hero-topline span{margin:0 3px}.benefit-grid{grid-template-columns:1fr}.benefit h2{font-size:16px}.benefit p{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Keep the FAQ call arrow consistent on platforms that render Unicode as emoji. */
.faq-layout .phone-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.faq-layout .phone-arrow {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  color: var(--brand);
}

/* One corner radius for site images, their frames and card surfaces. */
:root { --surface-radius: 5px; }
img,
.hero,
.brand,
.about-photo,
.machine-photo,
.service-image,
.service-card,
.service-card-link,
.booking-card,
.customer-job,
.photo-caption,
.area-map,
.dpf-make-list li { border-radius: var(--surface-radius); }

/* Source: sections.css */
.wordmark{font-family:'Barlow',Arial,sans-serif;line-height:1.02;letter-spacing:-.8px;font-size:32px;font-weight:700}.wordmark span,.wordmark strong{display:block}.wordmark strong{color:var(--brand);font-size:27px;font-weight:600;margin-top:3px}.section{padding-block:76px}.about{padding-block:64px}.equipment{padding-block:64px}.service-grid{gap:24px}.business-stats{padding-block:42px;border-bottom:1px solid var(--line)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center}.stats-grid>div{display:flex;flex-direction:column;gap:6px}.stats-grid strong{font-size:42px;line-height:1.1;color:var(--brand-dark);font-weight:600}.stats-grid span{font-size:15px;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:75px}.service-detail h2,.contact-section h2{font-family:'Barlow',Arial,sans-serif;font-size:32px;line-height:1.2;font-weight:600;letter-spacing:-.5px}.service-detail p{color:var(--muted)}.detail-photo{width:100%;height:auto;aspect-ratio:1.2;object-fit:cover}.service-detail .checklist{margin:24px 0 30px}.service-detail .checklist li{margin-bottom:12px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:start}.contact-information>p:not(.eyebrow){color:var(--muted)}.contact-information .phone-link{display:block;margin:22px 0 5px}.contact-email{display:block;color:var(--brand-dark);font-size:16px;overflow-wrap:anywhere}.area-map{display:block;width:100%;height:270px;border:0;background:#e4e9ea;margin:28px 0 15px}.enquiry-form{margin:0;padding:32px;background:#fff}.enquiry-form h2{font-size:28px}.enquiry-form>p{color:var(--muted);font-size:16px}.enquiry-form label{display:flex;flex-direction:column;gap:7px;font-size:15px;font-weight:500;margin:0 0 20px;min-width:0}.enquiry-form input,.enquiry-form textarea{font:inherit;font-weight:400;font-size:16px;width:100%;border:1px solid #adbbc2;border-radius:3px;padding:11px 12px;background:#fff;color:var(--ink)}.enquiry-form input:focus-visible,.enquiry-form textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.enquiry-form textarea{resize:vertical;min-height:145px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.enquiry-form .form-note{font-size:14px;line-height:1.5;margin:20px 0 0}.enquiry-form .form-status{font-size:14px;margin:16px 0 0}.form-status:empty{display:none}#email-draft-link{font-size:14px;text-decoration:underline;color:var(--brand-dark)}.contact-section .text-link{font-size:12px}.footer-main .wordmark{width:240px}address{overflow-wrap:anywhere}
@media(max-width:1100px){.detail-grid,.contact-grid{gap:40px}}
@media(max-width:850px){.wordmark{font-size:29px}.wordmark strong{font-size:25px}.detail-grid{gap:30px}.contact-grid{grid-template-columns:1fr;gap:40px}.area-map{height:300px}.contact-information{max-width:none}.enquiry-form{max-width:none}.stats-grid strong{font-size:36px}.service-detail h2,.contact-section h2{font-size:29px}.stats-grid{gap:20px}.stats-grid span{font-size:14px}}
@media(max-width:600px){.wordmark{font-size:27px}.wordmark strong{font-size:23px}.section{padding-block:50px}.about,.equipment{padding-block:46px}.service-grid{gap:18px}.stats-grid{grid-template-columns:1fr 1fr;gap:30px 18px}.business-stats{padding-block:34px}.detail-grid{grid-template-columns:1fr;gap:30px}.detail-photo{aspect-ratio:1.45}.detail-reverse .detail-photo{order:2}.service-detail h2,.contact-section h2{font-size:29px}.contact-grid{gap:35px}.enquiry-form{padding:24px 20px}.form-row{grid-template-columns:1fr;gap:0}.contact-email{font-size:15px}.area-map{height:250px}.service-detail .checklist li{font-size:16px}.footer-main .wordmark{width:220px}}
@media(max-width:380px){.wordmark{font-size:28px}.wordmark strong{font-size:24px}.enquiry-form{padding:24px 16px}.contact-email{font-size:14px}}

/* Keep the approved vehicle lineup intact, with room for the hero copy. */
.hero{overflow:hidden;background:#242d33}
.hero-photo{width:100%;max-width:none;height:100%;object-fit:cover;object-position:right center}
.hero-inner{width:min(1760px,calc(100% - 80px));min-height:clamp(510px,33.333vw,680px);padding-block:40px}
.hero-copy{max-width:350px}
.hero h1{font-size:clamp(56px,4.3vw,78px)}
.hero-copy>p{font-size:17px;line-height:1.5}
.hero:after{background:linear-gradient(90deg,#101c25e6 0%,#101c2599 25%,#101c2526 46%,transparent 65%)}
.hero .actions{gap:12px}
.hero .button{padding:13px 20px;gap:18px}
@media(min-width:1101px) and (max-width:1530px){
  .hero-photo{object-fit:contain;object-position:center bottom}
  .hero:after{background:linear-gradient(90deg,#101c25e6 0%,#101c2599 25%,#101c2526 46%,transparent 65%),linear-gradient(#242d33 0%,transparent 22%)}
  .hero-topline{top:18px}
}
@media(max-width:1100px){
  .hero{display:flex;flex-direction:column;background:#17252e}
  .hero-inner{order:0;width:calc(100% - 48px);min-height:0;padding-block:38px}
  .hero-photo{position:relative;inset:auto;order:1;width:100%;height:auto;aspect-ratio:3 / 1;object-fit:contain}
  .hero:after{display:none}
  .hero-topline{position:static;font-size:10px;letter-spacing:.8px;margin-bottom:24px}
  .hero-copy{max-width:650px}
  .hero h1{font-size:60px;line-height:1;max-width:620px}
  .hero h1 br:nth-of-type(1),.hero h1 br:nth-of-type(3){display:none}
  .hero-copy>p{max-width:620px}
}
@media(max-width:600px){
  .hero-inner{width:calc(100% - 36px);padding-block:30px}
  .hero-topline{font-size:9px;letter-spacing:.5px;margin-bottom:22px}
  .hero-topline span{margin:0 5px}
  .hero h1{font-size:clamp(39px,10.8vw,60px);line-height:1.02}
  .hero-copy>p{font-size:16px;margin-bottom:22px}
  .hero .button{padding:12px 17px;font-size:14px;gap:14px}
  .hero-photo{aspect-ratio:2.25 / 1;object-fit:cover;object-position:right center}
}

/* Keep the small hero message legible over the sky and trees. */
.hero-topline{display:inline-block;max-width:100%;padding:9px 13px;background:rgba(13,28,37,.9);border-radius:3px;color:#fff;font-size:12px;font-weight:600;letter-spacing:.8px;line-height:1.6}
.hero-topline span{color:#d4e2e5}
@media(max-width:600px){.hero-topline{padding:9px 11px;font-size:11px;letter-spacing:.3px}}

/* Separate truck and machinery services without crowding the homepage cards. */
.service-grid.service-grid-separated{grid-template-columns:repeat(4,minmax(0,1fr))}
.service-grid-separated .service-image{aspect-ratio:3/2}
@media(max-width:1100px){.service-grid.service-grid-separated{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.service-grid.service-grid-separated{grid-template-columns:1fr}}

/* A consistent enquiry panel across home, contact and booking pages. */
.enquiry-form{padding:38px 40px;background:#fff;border:1px solid #d5e1e2;border-top:4px solid #005eb5;border-radius: var(--surface-radius);box-shadow:0 8px 26px #14283007}
.enquiry-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}
.enquiry-heading .eyebrow{font-size:12px;letter-spacing:1px;font-weight:600;margin:0 0 12px}
.enquiry-form .enquiry-heading h2{font-family:'Barlow',Arial,sans-serif;font-size:32px;font-weight:700;line-height:1.15;letter-spacing:-.5px;margin:0}
.enquiry-icon{display:flex;align-items:center;justify-content:center;flex:none;width:48px;height:48px;background:#e9f2fc;border-radius:5px;color:var(--brand-dark)}
.enquiry-icon i svg{width:26px;height:26px;stroke-width:1.5}
.enquiry-form .enquiry-intro{font-size:17px;line-height:1.6;color:var(--muted);margin:0 0 26px;max-width:410px}
.enquiry-details{margin:0 0 30px}
.enquiry-details>div{padding:16px 0;border-top:1px solid #e0e8e9}
.enquiry-details>div:last-child{border-bottom:1px solid #e0e8e9}
.enquiry-details dt{font-size:16px;font-weight:600;line-height:1.4;margin-bottom:4px}
.enquiry-details dd{font-size:15px;line-height:1.5;color:var(--muted);margin:0}
.enquiry-form .enquiry-button{width:100%;min-height:54px;justify-content:center;padding:14px 22px;background:#005eb5;border-color:#005eb5;font-size:16px}
.enquiry-form .enquiry-button:hover{background:var(--brand-dark);border-color:var(--brand-dark)}

.enquiry-form .form-note{margin:16px 0 0;font-size:14px;line-height:1.5;color:var(--muted)}
@media(max-width:1100px){.enquiry-form{padding:32px}.enquiry-heading{gap:18px}.enquiry-form .enquiry-heading h2{font-size:30px}}
@media(max-width:600px){.enquiry-form{padding:28px 24px}.enquiry-heading{gap:12px}.enquiry-form .enquiry-heading h2{font-size:28px}.enquiry-icon{width:40px;height:40px}.enquiry-icon i svg{width:24px;height:24px}.enquiry-form .enquiry-intro{font-size:16px}.enquiry-details{margin-bottom:26px}}
@media(max-width:380px){.enquiry-form{padding:26px 20px}.enquiry-form .enquiry-heading h2{font-size:26px}.enquiry-icon{width:36px;height:36px}}

/* Match the established darker teal for readable filled homepage actions. */
body:not(.inner-page) .button:not(.button-outline){background:#005eb5;border-color:#005eb5}
body:not(.inner-page) .button:not(.button-outline):hover{background:var(--brand-dark);border-color:var(--brand-dark)}

/* Preserve the filter housing and right-hand flange in the supplied wide photo. */
#dpf-assessment .detail-photo{aspect-ratio:16 / 9;object-fit:cover;object-position:right center}

/* Source: pages.css */
/* Shared multi-page navigation and spacious service-page layouts. */
.header-inner{gap:22px}.header nav{gap:18px;font-size:14px}.header nav>a{white-space:nowrap}
.services-menu{position:relative}.services-menu summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:12px 0;white-space:nowrap}.services-menu summary::-webkit-details-marker{display:none}.nav-chevron{display:block;flex:none;width:18px;height:18px;color:var(--brand-dark)}.services-menu[open] .nav-chevron{transform:rotate(180deg)}.services-menu summary.active{color:var(--brand-dark)}
.services-dropdown{position:absolute;top:100%;left:-20px;width:300px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 25px #101f2912;padding:10px;z-index:10}.services-dropdown a{display:block;padding:12px;font-size:15px;white-space:normal;border-radius:2px}.services-dropdown a:after{display:none}.services-dropdown a:hover,.services-dropdown a.active{background:var(--pale);color:var(--brand-dark)}
.footer-services{display:flex;flex-wrap:wrap;gap:14px 30px;padding-bottom:28px;font-size:14px}.footer-services a:hover{text-decoration:underline;color:var(--brand-dark)}
.page-width{max-width:1160px}.page-intro{padding:30px 0 78px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--muted);margin:0 0 46px}.breadcrumbs a:hover{color:var(--brand-dark);text-decoration:underline}
.page-intro-grid{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:65px}.inner-page h1{font-family:var(--heading);font-size:clamp(42px,4.4vw,64px);line-height:1.03;letter-spacing:-.4px;margin:0 0 25px;font-weight:700;max-width:700px}.inner-page .eyebrow{font-size:14px;letter-spacing:1px}.page-lead{color:var(--muted);font-size:19px;line-height:1.65;max-width:650px;margin-bottom:28px}.page-intro .actions{align-items:center;gap:20px}.inner-page .text-link{font-size:14px}.page-photo{margin:0}.page-photo img{display:block;width:100%;height:auto;aspect-ratio:2;object-fit:cover;border-radius: var(--surface-radius)}
.page-section{padding-block:78px}.inner-page h2{font-size:36px;line-height:1.15}.inner-page h3{font-size:20px;line-height:1.3;margin:0 0 16px;font-weight:600}.inner-page p{line-height:1.65}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.overview-grid>div>p:last-child{max-width:490px;color:var(--muted);margin-bottom:0}.overview-grid .checklist{margin:0}.overview-grid .checklist li{font-size:17px;margin-bottom:12px}
.process-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.service-steps{list-style:none;margin:0;padding:0}.service-steps li{display:flex;align-items:start;gap:24px;padding:25px 0;border-top:1px solid var(--line)}.service-steps li:first-child{padding-top:0;border-top:0}.service-steps li:last-child{padding-bottom:0}.step-number{font-family:var(--heading);font-size:29px;color:var(--brand-dark);line-height:1.1;min-width:30px}.service-steps h3{margin-bottom:8px}.service-steps p{color:var(--muted);margin:0}.inline-machine{margin:32px 0 0;max-width:240px}.inline-machine img{display:block;width:100%;height:auto}.inline-machine figcaption{font-size:14px;color:var(--muted);margin-top:16px;line-height:1.4}
.page-cta{background:var(--ink);color:#fff;padding:60px 0}.page-cta>.container{display:flex;align-items:center;justify-content:space-between;gap:55px}.page-cta>.container>div:first-child{max-width:590px}.page-cta .eyebrow{color:#80bfff}.page-cta h2{margin-bottom:14px}.page-cta p:last-child{color:#d1dcdf;margin-bottom:0}.page-cta .actions{flex-shrink:0;flex-direction:column;align-items:stretch;gap:12px}.page-cta .button{min-width:235px}
.related-services{padding:55px 0}.related-services h2{font-size:26px;margin-bottom:24px}.related-services>.container>div{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.related-services a{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:20px;font-size:16px;font-weight:500}.related-services a:hover{color:var(--brand-dark)}.related-services a span{color:var(--brand)}
.compact-intro{padding-bottom:48px}.compact-intro .page-lead{margin-bottom:0}.hours-title{margin-top:38px!important}.hours{max-width:400px;margin:0}.hours>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}.hours dd{margin:0;color:var(--muted);text-align:right}.contact-area{max-width:380px;color:var(--muted);margin-top:26px}.service-area{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.service-area p{color:var(--muted);max-width:400px}.service-area .area-map{margin:0;height:300px}.inner-page .contact-grid{gap:65px}.inner-page .enquiry-form h2{font-size:28px}
.booking-section{padding:0 0 75px}.booking-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.booking-card{border:1px solid var(--line);background:#fff;display:flex;flex-direction:column;scroll-margin-top:28px}.booking-card:target{outline:2px solid var(--brand);outline-offset:4px}.booking-card>img{display:block;width:100%;height:auto;aspect-ratio:2;object-fit:cover}.booking-card>div{padding:23px;display:flex;flex-direction:column;flex:1}.booking-card h2{font-family:inherit;font-size:21px;line-height:1.3;margin-bottom:24px}.booking-duration{font-size:14px;color:var(--muted);margin-bottom:10px}.booking-price{font-size:32px;font-weight:600;line-height:1.3!important;margin-top:auto;margin-bottom:22px}.booking-price>span,.booking-price small{display:block;font-size:15px;font-weight:400;color:var(--muted)}.booking-price>span:only-child{font-size:22px;color:var(--ink);font-weight:500}.booking-card .button{width:100%}.booking-note{font-size:14px;color:var(--muted);margin:20px 0 0}.booking-help{border-top:1px solid var(--line);padding-top:32px;margin-top:40px}.booking-help h2{font-size:28px}.booking-help p{color:var(--muted);margin-bottom:14px}.booking-help p a{color:var(--brand-dark);text-decoration:underline}
@media(min-width:851px) and (max-width:1200px){.header .brand{width:200px}.header-inner{gap:15px}.header nav{gap:15px}.header-book{display:none}}
@media(max-width:1000px){.page-intro-grid{gap:38px}.overview-grid{gap:55px}.process-grid{gap:50px}.booking-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-cta>.container{gap:30px}.page-cta .button{min-width:210px}.inner-page .contact-grid{gap:40px}}
@media(max-width:850px){.header nav{gap:0}.header nav>a{font-size:16px}.services-menu summary{padding:13px;font-size:16px}.services-dropdown{position:static;width:auto;box-shadow:none;margin:0 13px 10px;padding:4px 10px;border:0;border-left:2px solid var(--brand)}.services-dropdown a{font-size:15px;padding:11px}.page-intro-grid{grid-template-columns:1fr;gap:34px}.page-intro-grid>div{max-width:650px}.page-photo{max-width:650px}.page-intro{padding-bottom:50px}.page-section{padding-block:55px}.page-cta>.container{align-items:start;flex-direction:column}.page-cta .actions{flex-direction:row;flex-wrap:wrap}.page-cta .button{min-width:0}.service-area{gap:35px}.inner-page .contact-grid{grid-template-columns:1fr}.related-services>.container>div{grid-template-columns:1fr}.related-services a{padding-top:16px}.related-services{padding:40px 0}}
@media(max-width:600px){.header-inner{gap:8px}.header nav{max-height:calc(100svh - 78px);overflow-y:auto}.page-intro{padding-top:24px;padding-bottom:42px}.breadcrumbs{margin-bottom:30px;font-size:14px;gap:8px}.inner-page h1{font-size:43px;line-height:1.08}.inner-page h2{font-size:30px}.inner-page .eyebrow{font-size:13px}.page-lead{font-size:18px}.page-intro .actions{gap:18px}.page-section{padding-block:45px}.overview-grid,.process-grid,.service-area{grid-template-columns:1fr;gap:30px}.service-steps li{gap:20px}.process-grid>div>h2 br{display:none}.inline-machine{max-width:210px}.inner-page .contact-grid{gap:32px}.page-cta{padding-block:42px}.page-cta .actions{width:100%;align-items:stretch;flex-direction:column}.page-cta .button{width:100%}.page-cta h2{font-size:30px}.footer-services{display:grid;gap:13px}.booking-grid{grid-template-columns:1fr;gap:25px}.booking-card{max-width:450px;width:100%}.booking-card h2{font-size:24px;margin-bottom:20px}.booking-card .button{min-height:48px}.booking-price{font-size:32px}.booking-section{padding-bottom:45px}.booking-help h2{font-size:28px}.service-area .area-map{height:260px}.related-services h2{font-size:26px}.contact-area{margin-top:24px}.inner-page .enquiry-form{padding:26px 20px}.inner-page .contact-email{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* Source: dpf-page.css */
/* Soft-teal DPF service design. All overrides are scoped to this page. */
.dpf-page {
  --heading: 'Barlow', Arial, sans-serif;
  --dpf-hero: #f2f7fc;
  --dpf-panel: #e8f1fb;
  --dpf-tint: #f1f6fc;
  --dpf-button: #005eb5;
}
.dpf-page main { font-size: 1.125rem; }
.dpf-page .page-width { max-width: 1160px; }
.dpf-page main p { line-height: 1.65; }
.dpf-page main .eyebrow { font-size: .875rem; letter-spacing: .04em; font-weight: 600; color: var(--brand-dark); margin-bottom: 14px; }
.dpf-page main h2 { font-family: var(--heading); font-size: clamp(2rem, 3.25vw, 2.875rem); font-weight: 700; line-height: 1.1; letter-spacing: -.025em; margin-bottom: 26px; }
.dpf-page main h3 { font-family: var(--heading); font-size: 1.25rem; font-weight: 600; line-height: 1.3; margin: 0 0 12px; }
.dpf-page main .button { min-height: 50px; padding: 13px 28px; font-size: 1rem; background: var(--dpf-button); border-color: var(--dpf-button); }
.dpf-page main .button:hover { background: var(--brand-dark); border-color: var(--brand-dark); }
.dpf-page main .button-outline { background: transparent; border-color: #d2dde0; }
.dpf-page main .button-outline:hover { background: #ffffff15; border-color: #fff; }
.dpf-page .dpf-text-link { color: var(--brand-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.dpf-page .dpf-intro .dpf-call { min-width: 155px; color: var(--brand-dark); border-color: var(--brand-dark); text-decoration: none; white-space: nowrap; }
.dpf-page .dpf-intro .dpf-call:hover { background: var(--dpf-panel); color: var(--brand-dark); border-color: var(--brand-dark); }
.dpf-page .dpf-text-link { display: inline-flex; align-items: center; gap: 16px; font-size: 1rem; line-height: 1.5; }
.dpf-page .dpf-text-link:hover { color: var(--ink); text-decoration-thickness: 2px; }
.dpf-page .dpf-text-link span { flex: none; font-size: 1.25rem; }

.dpf-page .dpf-intro { background: var(--dpf-hero); padding-block: 70px; }
.dpf-page .dpf-intro-grid { display: grid; grid-template-columns: 1fr 1.08fr; align-items: center; gap: 72px; }
.dpf-page .dpf-intro h1 { font-family: var(--heading); font-size: clamp(3rem, 5vw, 4.375rem); font-weight: 700; line-height: 1.03; letter-spacing: -.025em; margin: 0 0 24px; }
.dpf-page .dpf-intro-copy > p:not(.eyebrow) { max-width: 465px; color: var(--muted); margin-bottom: 24px; }
.dpf-page .dpf-intro-copy > p.dpf-lead { font-size: 1.375rem; font-weight: 600; line-height: 1.35; color: var(--ink); margin-bottom: 22px; text-wrap: balance; }
.dpf-page .dpf-intro-copy .actions { align-items: center; gap: 32px; margin-top: 30px; }
.dpf-page .dpf-main-photo { margin: 0; }
.dpf-page .dpf-main-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--surface-radius); }
.dpf-page .dpf-features { border-bottom: 1px solid var(--line); }
.dpf-page .dpf-service-strip { list-style: none; margin-block: 0; padding: 34px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dpf-page .dpf-service-strip li { padding: 0 30px; text-align: center; }
.dpf-page .dpf-service-strip li + li { border-left: 1px solid var(--line); }
.dpf-page .dpf-service-strip strong { font-size: 1.25rem; font-weight: 600; line-height: 1.3; display: block; margin-bottom: 8px; }
.dpf-page .dpf-service-strip p { max-width: 250px; margin: 0 auto; color: var(--muted); font-size: 1rem; line-height: 1.45; }

.dpf-page .dpf-section { padding-block: 92px; }
.dpf-page .dpf-two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: start; }
.dpf-page .dpf-section-copy > p { color: var(--muted); margin-bottom: 26px; }
.dpf-page .dpf-section-copy > p:last-child { margin-bottom: 0; }
.dpf-page .dpf-explainer { padding-bottom: 52px; }
.dpf-page .dpf-symptoms { background: var(--dpf-panel); border-radius: var(--surface-radius); padding: 36px 38px; }
.dpf-page .dpf-symptoms h3 { font-size: 1.625rem; margin-bottom: 24px; }
.dpf-page .dpf-symptoms ul { list-style: none; margin: 0; padding: 0; }
.dpf-page .dpf-symptoms li { display: flex; align-items: baseline; gap: 17px; margin-bottom: 14px; color: var(--muted); font-size: 1.0625rem; }
.dpf-page .dpf-symptoms li > span { color: var(--brand-dark); font-size: 1.5rem; font-weight: 600; line-height: 1; flex: none; }
.dpf-page .dpf-symptoms p { border-top: 1px solid #cddbed; margin: 28px 0 0; padding-top: 24px; color: var(--muted); font-size: 1.0625rem; }

.dpf-page .dpf-process { padding-top: 36px; }
.dpf-page .dpf-section-heading { margin-bottom: 42px; }
.dpf-page .dpf-section-heading h2 { margin-bottom: 16px; }
.dpf-page .dpf-section-heading > p:last-child { margin-bottom: 0; color: var(--muted); font-size: 1.25rem; }
.dpf-page .dpf-process-grid { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 66px; padding: 0; margin: 0 0 36px; }
.dpf-page .dpf-process-grid > li { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 20px; border-top: 1px solid #cfdadd; padding-top: 24px; }
.dpf-page .dpf-process-grid > li > span { font-size: 1.875rem; font-weight: 600; line-height: 1.1; color: var(--brand-dark); }
.dpf-page .dpf-process-grid p { margin: 0; color: var(--muted); }

.dpf-page .dpf-benefits { background: #fff; padding-block: 76px 0; }
.dpf-page .dpf-benefits .dpf-two-column { align-items: start; padding-bottom: 64px; border-bottom: 1px solid var(--line); }
.dpf-page .dpf-benefits h2, .dpf-page .dpf-why h2 { margin-bottom: 0; }
.dpf-page .dpf-benefit-list { margin: 0; }
.dpf-page .dpf-benefit-list > div { padding-block: 20px; }
.dpf-page .dpf-benefit-list > div:first-child { padding-top: 0; }
.dpf-page .dpf-benefit-list > div:last-child { padding-bottom: 0; }
.dpf-page .dpf-benefit-list > div + div { border-top: 1px solid #d3deec; }
.dpf-page .dpf-benefit-list dt { font-size: 1.25rem; font-weight: 600; margin-bottom: 5px; }
.dpf-page .dpf-benefit-list dd { margin: 0; color: var(--muted); line-height: 1.6; }
.dpf-page .dpf-why { padding-block: 64px 80px; }
.dpf-page .dpf-mobile-visit .dpf-two-column { align-items: center; }
.dpf-page .dpf-mobile-visit .dpf-visit-photo { min-width: 0; width: 100%; max-width: 650px; margin: 0; justify-self: center; }
.dpf-page .dpf-visit-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; border-radius: var(--surface-radius); }
.dpf-page .dpf-mobile-visit .dpf-section-copy h2 { margin-bottom: 24px; letter-spacing: 0; }
.dpf-page .dpf-section.dpf-makes { padding-top: 0; }
.dpf-page .dpf-makes > .container { border-top: 1px solid var(--line); padding-top: 40px; }
.dpf-page .dpf-makes h2 { letter-spacing: 0; overflow-wrap: anywhere; }
.dpf-page .dpf-makes-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr)); width: min(100%, 680px); gap: 4px; margin-bottom: 24px; }
.dpf-page .dpf-makes-filters[hidden] { display: none; }
.dpf-page .dpf-makes-filters button { min-height: 48px; padding: 10px 12px; border: 0; border-bottom: 3px solid var(--line); border-radius: 0; background: transparent; color: var(--muted); font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.4; cursor: pointer; }
.dpf-page .dpf-makes-filters button:hover { background: var(--dpf-hero); color: var(--brand-dark); }
.dpf-page .dpf-makes-filters button[aria-pressed="true"] { border-bottom-color: var(--brand-dark); color: var(--brand-dark); background: var(--dpf-hero); }
.dpf-page .dpf-makes-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.dpf-page .dpf-makes-carousel { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 20px; margin-bottom: 28px; }
.dpf-page .dpf-makes-carousel.is-scrollable { grid-template-columns: 44px minmax(0, 1fr) 44px; }
.dpf-page .dpf-makes-arrow { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--brand-dark); font: inherit; font-size: 28px; line-height: 1; cursor: pointer; }
.dpf-page .dpf-makes-arrow[hidden] { display: none; }
.dpf-page .dpf-makes-arrow:hover:not(:disabled) { color: var(--ink); }
.dpf-page .dpf-makes-arrow:disabled { color: #abb7b9; cursor: default; }
.dpf-page .dpf-makes-intro { max-width: 700px; margin-bottom: 28px; color: var(--muted); }
.dpf-page .dpf-make-list { display: flex; min-width: 0; width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: none; -ms-overflow-style: none; list-style: none; padding: 0; margin: 0; }
.dpf-page .dpf-make-list::-webkit-scrollbar { display: none; width: 0; height: 0; }
.dpf-page .dpf-make-list li { display: flex; flex: 0 0 auto; flex-direction: column; align-items: center; justify-content: center; gap: 16px; min-width: 176px; padding: 24px 18px; border-block: 1px solid var(--line); border-right: 1px solid var(--line); background: #fff; font-size: 1.125rem; font-weight: 600; line-height: 1.4; white-space: nowrap; scroll-snap-align: start; }
.dpf-page .dpf-make-list li[hidden] { display: none; }
.dpf-page .dpf-make-list img { display: block; flex: none; width: 120px; height: 72px; object-fit: contain; }
.dpf-page .dpf-make-list li:first-child, .dpf-page .dpf-make-list li.is-first-visible { border-left: 1px solid var(--line); }
.dpf-page .dpf-make-list:focus-visible, .dpf-page .dpf-makes-arrow:focus-visible, .dpf-page .dpf-makes-filters button:focus-visible { outline: 3px solid #dc9d17; outline-offset: 4px; }
.dpf-page .dpf-makes-enquiry { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.dpf-page .dpf-makes-enquiry p { max-width: 660px; margin: 0; color: var(--muted); }
.dpf-page .dpf-makes-enquiry .dpf-text-link { flex: none; }
.dpf-page .dpf-faq { background: var(--dpf-hero); }
.dpf-page .dpf-faq > .container { max-width: 900px; }
.dpf-page .dpf-faq h2 { margin-bottom: 32px; }
.dpf-page .dpf-faq .faqs { min-width: 0; }
.dpf-page .dpf-faq .faqs details:first-child { border-top: 1px solid var(--line); }
.dpf-page .dpf-faq .faqs summary { padding: 22px 40px 22px 0; font-size: 1.125rem; line-height: 1.45; }
.dpf-page .dpf-faq .faqs summary::after { top: 50%; transform: translateY(-50%); right: 4px; color: var(--brand-dark); }
.dpf-page .dpf-faq .faqs details p { margin: 0 0 24px; font-size: 1.0625rem; line-height: 1.65; }
.dpf-page .dpf-faq .faqs a { color: var(--brand-dark); text-decoration: underline; text-underline-offset: 3px; }
.dpf-page .dpf-faq .faqs a:hover { text-decoration-thickness: 2px; }
.dpf-page .dpf-final-cta { background: #142830; color: #fff; padding-block: 54px; }
.dpf-page .dpf-final-cta > .container { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.dpf-page .dpf-final-cta h2 { font-size: 2.25rem; margin-bottom: 12px; }
.dpf-page .dpf-final-cta p { margin: 0; color: #d7e4e6; font-size: 1.0625rem; }
.dpf-page .dpf-final-cta .actions { flex: none; gap: 18px; }
.dpf-page .dpf-final-cta .button { min-width: 155px; }

@media (max-width: 1050px) {
  .dpf-page .dpf-intro-grid { gap: 40px; }
  .dpf-page .dpf-two-column { gap: 55px; }
  .dpf-page .dpf-symptoms { padding: 30px; }
  .dpf-page .dpf-process-grid { column-gap: 42px; }
  .dpf-page .dpf-final-cta > .container { align-items: start; flex-direction: column; gap: 28px; }
}
@media (max-width: 850px) {
  .dpf-page .dpf-makes-enquiry { flex-direction: column; align-items: start; gap: 18px; }
  .dpf-page .dpf-intro { padding-block: 52px; }
  .dpf-page .dpf-intro-grid { grid-template-columns: 1fr; gap: 36px; }
  .dpf-page .dpf-intro h1 { font-size: 3.5rem; }
  .dpf-page .dpf-intro h1 br { display: none; }
  .dpf-page .dpf-intro-copy > p:not(.eyebrow) { max-width: 610px; }
  .dpf-page .dpf-main-photo { max-width: 650px; }
  .dpf-page .dpf-service-strip li { padding-inline: 16px; }
  .dpf-page .dpf-service-strip strong { font-size: 1.125rem; }
  .dpf-page .dpf-two-column { grid-template-columns: 1fr; gap: 36px; }
  .dpf-page .dpf-section { padding-block: 64px; }
  .dpf-page .dpf-benefits { padding-bottom: 0; }
  .dpf-page .dpf-benefits .dpf-two-column { padding-bottom: 48px; }
  .dpf-page .dpf-why { padding-top: 48px; }
  .dpf-page .dpf-explainer { padding-bottom: 32px; }
  .dpf-page .dpf-process { padding-top: 32px; }
  .dpf-page .dpf-process-grid { column-gap: 32px; }
  .dpf-page .dpf-process-grid > li { grid-template-columns: 36px minmax(0, 1fr); gap: 14px; }
  .dpf-page main h2 br { display: none; }
}
@media (max-width: 600px) {
  .dpf-page .dpf-makes-carousel { gap: 8px; }
  .dpf-page .dpf-make-list li { min-width: 148px; padding: 20px 16px; font-size: 1rem; }
  .dpf-page .dpf-make-list img { width: 100px; height: 60px; }
  .dpf-page .dpf-makes > .container { padding-top: 32px; }
  .dpf-page main { font-size: 1.0625rem; }
  .dpf-page .dpf-intro { padding-block: 40px; }
  .dpf-page .dpf-intro h1 { font-size: 2.75rem; line-height: 1.06; }
  .dpf-page .dpf-intro-copy > p.dpf-lead { font-size: 1.25rem; }
  .dpf-page .dpf-intro-copy .actions { flex-direction: column; align-items: stretch; gap: 14px; margin-top: 26px; }
  .dpf-page main .button { padding-inline: 22px; }
  .dpf-page .dpf-service-strip { grid-template-columns: 1fr; padding-block: 10px; margin-block: 0; }
  .dpf-page .dpf-service-strip li { padding: 20px 0; text-align: left; }
  .dpf-page .dpf-service-strip li + li { border-left: 0; border-top: 1px solid var(--line); }
  .dpf-page .dpf-service-strip strong { margin-bottom: 6px; }
  .dpf-page .dpf-service-strip p { max-width: none; margin: 0; }
  .dpf-page .dpf-section { padding-block: 48px; }
  .dpf-page .dpf-benefits { padding-bottom: 0; }
  .dpf-page .dpf-benefits .dpf-two-column { padding-bottom: 40px; }
  .dpf-page .dpf-why { padding-top: 40px; }
  .dpf-page .dpf-explainer { padding-bottom: 24px; }
  .dpf-page .dpf-process { padding-top: 24px; }
  .dpf-page main h2 { font-size: 2rem; line-height: 1.13; }
  .dpf-page .dpf-symptoms { padding: 28px 24px; }
  .dpf-page .dpf-symptoms h3 { font-size: 1.5rem; }
  .dpf-page .dpf-symptoms li { gap: 13px; }
  .dpf-page .dpf-section-heading { margin-bottom: 30px; }
  .dpf-page .dpf-section-heading > p:last-child { font-size: 1.125rem; }
  .dpf-page .dpf-process-grid { grid-template-columns: 1fr; gap: 28px; margin-bottom: 30px; }
  .dpf-page .dpf-process-grid > li { padding-top: 24px; }
  .dpf-page .dpf-text-link { gap: 12px; }
  .dpf-page .dpf-final-cta { padding-block: 42px; }
  .dpf-page .dpf-final-cta h2 { font-size: 2rem; }
  .dpf-page .dpf-final-cta .actions { width: 100%; flex-direction: column; align-items: stretch; gap: 14px; }
}

/* Source: service-details.css */
/* Service-specific variations on the shared Mobile DPF Cleaning design. */
.dpf-page .dpf-main-photo .service-vehicle-photo { object-fit: contain; }
.dpf-page.service-machinery .dpf-intro h1 { font-size: 3rem; letter-spacing: 0; }
.dpf-page.service-machinery .dpf-intro h1 br { display: initial; }
.dpf-page.service-adblue .dpf-intro h1 { font-size: 3rem; letter-spacing: 0; }
.dpf-page.service-adblue .dpf-intro h1 br { display: initial; }
.dpf-page:is(.service-emissions, .service-egr, .service-fleet) .dpf-intro h1 { font-size: 3rem; letter-spacing: 0; }
.dpf-page:is(.service-emissions, .service-egr, .service-fleet) .dpf-main-photo img { aspect-ratio: 1672 / 941; }
.service-adblue .adblue-booking-actions .button-outline { color: var(--brand-dark); border-color: var(--brand-dark); }
.service-adblue .adblue-booking-actions .button-outline:hover { background: var(--dpf-panel); border-color: var(--brand-dark); }
.service-detail .service-process { padding-top: 24px; }
.service-detail .service-process .dpf-process-grid { margin-bottom: 0; }
.service-detail .service-process-four { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; }
.service-detail .service-process-four > li { display: block; }
.service-detail .service-process-four > li > span { display: block; margin-bottom: 20px; }
.service-detail .service-divider { border-top: 1px solid var(--line); padding-top: 64px; }
.service-detail .service-rates { margin: 0; }
.service-detail .service-rates > div { padding-block: 24px; border-bottom: 1px solid var(--line); }
.service-detail .service-rates > div:first-child { padding-top: 0; }
.service-detail .service-rates dt { font-size: 1.25rem; font-weight: 600; }
.service-detail .service-rates dd { margin: 8px 0 0; color: var(--muted); line-height: 1.6; }
.service-detail .service-rates dd a { margin-top: 12px; }
.service-detail .service-note { font-size: 1rem; color: var(--muted); margin: 22px 0 0; }
.service-detail .service-related { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 20px 32px; }
.service-off .dpf-main-photo img { aspect-ratio: 1672 / 941; }
.service-detail .service-steps-list { list-style: none; padding: 0; margin: 0; }
.service-detail .service-steps-list > li { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 20px; padding: 24px 0; border-top: 1px solid var(--line); }
.service-detail .service-steps-list > li > span { font-size: 1.5rem; line-height: 1.25; font-weight: 600; color: var(--brand-dark); }
.service-detail .service-steps-list h3 { margin-bottom: 8px; }
.service-detail .service-steps-list p { margin: 0; color: var(--muted); }
.service-detail .service-support-photo { margin: 32px 0 0; }
.service-detail .service-support-photo img { border-radius: var(--surface-radius); width: 100%; height: auto; }
.service-truck .truck-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "photo copy" "pricing pricing"; align-items: center; gap: 40px 64px; }
.service-truck .truck-service-grid > .dpf-section-copy { grid-area: copy; min-width: 0; }
.service-truck .truck-assessment h2, .service-truck .truck-mobile-service h2 { letter-spacing: 0; }
.service-truck .truck-service-photo { grid-area: photo; width: 100%; max-width: 600px; min-width: 0; margin: 0; }
.service-truck .truck-service-pricing { grid-area: pricing; min-width: 0; }
.service-truck .truck-service-pricing .service-rates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; }
.service-truck .truck-service-pricing .service-rates > div { padding-block: 24px; border-top: 1px solid var(--line); }
.service-detail .service-open-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px; list-style: none; padding: 0; margin: 0; }
.service-detail .service-open-list > li { padding-top: 22px; border-top: 2px solid #bad3ef; }
.service-detail .service-open-list p { color: var(--muted); margin: 0; }
.service-machinery .equipment-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.service-detail .service-category-link { color: var(--brand-dark); text-decoration: underline; text-underline-offset: 3px; }
.service-detail .service-category-link:hover { text-decoration-thickness: 2px; }
.service-detail .service-preparation { padding: 36px; background: var(--dpf-panel); border-radius: var(--surface-radius); }
.service-detail .service-preparation ul { padding-left: 22px; color: var(--muted); margin-bottom: 24px; }
.service-detail .service-preparation li { margin-bottom: 12px; padding-left: 4px; }
.service-detail .service-preparation p { color: var(--muted); }
.service-detail .service-preparation > :last-child { margin-bottom: 0; }
@media (max-width: 1050px) {
  .service-detail .service-process-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  .service-truck .truck-service-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "copy" "photo" "pricing"; gap: 28px; }
  .service-truck .truck-service-photo { justify-self: center; }
  .service-truck .truck-service-pricing .service-rates { gap: 28px; }
  .service-detail .service-divider { padding-top: 48px; }
  .service-detail .service-open-list { gap: 24px; }
}
@media (max-width: 600px) {
  .dpf-page.service-machinery .dpf-intro h1 { font-size: 2.5rem; }
  .dpf-page.service-adblue .dpf-intro h1 { font-size: 2.5rem; }
  .dpf-page:is(.service-emissions, .service-egr, .service-fleet) .dpf-intro h1 { font-size: 2.5rem; }
  .service-adblue .adblue-booking-actions .button { width: 100%; }
  .service-truck .truck-service-pricing .service-rates { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .service-truck .truck-service-pricing .service-rates > div + div { border-top: 0; }
  .service-detail .service-process-four { grid-template-columns: 1fr; }
  .service-detail .service-divider { padding-top: 40px; }
  .service-detail .service-related { flex-direction: column; align-items: start; }
  .service-detail .service-open-list { grid-template-columns: 1fr; }
  .service-detail .service-preparation { padding: 28px 24px; }
  .service-detail .service-steps-list > li { grid-template-columns: 32px minmax(0, 1fr); gap: 16px; }
}

/* Source: mobile-actions.css */
/* Whole-card links keep one keyboard stop and a visible focus outline per service. */
.service-card-link {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}
.service-card-link:hover .text-link { color: var(--ink); }
.service-card-link:focus-visible { outline: 3px solid #dc9d17; outline-offset: 4px; }
.mobile-actions { display: none; }

@media (max-width: 600px) {
  /* Reserve the full bar height, including the iPhone home-indicator inset. */
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  html { scroll-padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
  .mobile-actions {
    display: grid;
    grid-template-columns: 1fr 1.45fr;
    gap: 10px;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10;
    padding: 8px max(18px, env(safe-area-inset-right, 0px)) calc(8px + env(safe-area-inset-bottom, 0px)) max(18px, env(safe-area-inset-left, 0px));
    background: #fff;
    box-shadow: 0 -2px 12px #101f291a;
  }
  .mobile-actions .button {
    min-height: 48px;
    min-width: 0;
    padding: 10px 12px;
    gap: 10px;
    background: #005eb5;
    border-color: #005eb5;
    white-space: nowrap;
  }
  .mobile-actions .mobile-call { color: #004b91; background: #fff; }
  .mobile-actions i svg { width: 20px; height: 20px; }
  .mobile-actions .button:hover { background: #004b91; color: #fff; transform: none; }
  .header .header-inner { gap: 8px; }
  .header .brand { width: min(205px, calc(100vw - 174px)); }
  .header .header-book {
    display: inline-flex;
    flex-shrink: 0;
    min-height: 44px;
    padding: 10px 12px;
    white-space: nowrap;
    gap: 0;
  }
  .header .header-book .header-book-label { display: inline; }
  .header .header-book .header-book-extra { display: none; }
  .header .menu-toggle { flex: 0 0 44px; width: 44px; height: 44px; padding: 10px; margin-left: 0; }
  .header nav { max-height: calc(100svh - 78px - 64px - env(safe-area-inset-bottom, 0px)); }
}

@media print {
  .mobile-actions { display: none; }
  body { padding-bottom: 0; }
}

/* Source: brand.css */
/* Frame the supplied blue logo without changing its original artwork or canvas. */
.brand {
  position: relative;
  aspect-ratio: 2038 / 325;
  overflow: hidden;
  background: #fff;
}

.brand img {
  position: absolute;
  display: block;
  width: 106.575074%;
  max-width: none;
  height: auto;
  left: -3.434740%;
  top: -68.923077%;
  filter: none;
}

.footer-main .brand { width: 248px; max-width: 100%; }

/* Source: desktop.css */
/* A comfortable desktop scale; smaller screens retain their existing layout. */
@media (min-width: 1101px) {
  body { font-size: 16px; }
  .container { width: min(1120px, calc(100% - 64px)); }
  .header-inner { min-height: 84px; }
  .header .brand { width: 270px; }
  .button { min-height: 44px; padding: 11px 22px; }
  .footer-main { padding-block: 28px; }
  .footer-main .brand { width: 248px; }
  .footer-services { padding-bottom: 22px; }
  .footer-bottom { padding-block: 18px; }

  .hero-inner { width: min(1520px, calc(100% - 80px)); min-height: clamp(470px, 28vw, 540px); padding-block: 30px; }
  .hero h1 { font-size: 52px; line-height: .98; margin-bottom: 18px; }
  .hero-copy { max-width: 350px; margin-left: 24px; }
  .hero-copy > p { font-size: 16px; margin-bottom: 22px; }
  .hero-photo { left: auto; width: auto; max-width: 100%; object-fit: contain; object-position: right bottom; mask-image: linear-gradient(90deg, transparent, #000 16%); }
  .hero .button { padding: 11px 18px; }
  .benefits { padding-block: 22px; }

  body:not(.inner-page) .section { padding-block: 56px; }
  body:not(.inner-page) .about,
  body:not(.inner-page) .equipment { padding-block: 52px; }
  body:not(.inner-page) .split { gap: 48px; }
  body:not(.inner-page) .about-copy > p:not(.eyebrow) { font-size: 16px; }
  .about h2, .services h2, .equipment h2, .faq-layout h2, .contact-cta h2 { font-size: 32px; }
  .about-photo { min-height: 340px; }
  .photo-caption { width: 180px; padding: 20px; bottom: 20px; }
  .photo-caption p { font-size: 28px; margin-bottom: 12px; }
  .photo-caption span { font-size: 15px; }
  .credentials { margin-top: 24px; gap: 20px; }
  .section-heading { margin-bottom: 24px; }
  .service-grid { gap: 22px; }
  .service-grid-separated .service-image { aspect-ratio: 16 / 9; }
  .service-image img[src*="truck-mobile-service"],
  .service-image img[src*="machinery-mobile-service"] { object-position: center 15%; }
  .service-content { display: grid; grid-template-columns: 28px minmax(0, 1fr); grid-template-rows: auto 1fr auto; align-content: start; gap: 12px; padding: 18px; }
  .service-content > i { grid-area: 1 / 1; align-self: start; margin: 2px 0 0; }
  .service-content > i svg { width: 26px; height: 26px; }
  .service-content h3 { grid-area: 1 / 2; font-size: 18px; line-height: 1.25; margin: 0; }
  .service-content p { grid-column: 1 / -1; align-self: start; font-size: 16px; line-height: 1.5; margin: 0; }
  .service-content .text-link { grid-column: 1 / -1; align-self: end; font-size: 12px; margin: 0; }
  .machine-photo img { height: 290px; }
  .business-stats { padding-block: 30px; }
  .stats-grid strong { font-size: 34px; }
  body:not(.inner-page) .detail-grid,
  body:not(.inner-page) .contact-grid { gap: 52px; }
  body:not(.inner-page) .service-detail h2,
  .contact-section h2 { font-size: 28px; }
  .detail-photo { aspect-ratio: 3 / 2; }
  .service-detail .checklist { margin-block: 20px 24px; }
  .service-detail .checklist li { margin-bottom: 9px; }
  .faq-layout { gap: 60px; }
  .contact-cta { padding-block: 32px; }

  .enquiry-form { padding: 28px 30px; }
  .enquiry-form .enquiry-heading h2 { font-size: 28px; }
  .enquiry-heading { margin-bottom: 18px; }
  .enquiry-form .enquiry-intro { font-size: 16px; margin-bottom: 20px; }
  .enquiry-details { margin-bottom: 22px; }
  .enquiry-details > div { padding-block: 12px; }
  .enquiry-form .enquiry-button { min-height: 48px; padding: 11px 20px; }
  .area-map { height: 230px; }

  .page-width, .dpf-page .page-width { max-width: 1040px; }
  .inner-page h1 { font-size: 52px; margin-bottom: 20px; }
  .page-intro { padding-bottom: 56px; }
  .compact-intro { padding-bottom: 36px; }
  .breadcrumbs { margin-bottom: 30px; }
  .page-lead { font-size: 17px; }
  .page-section { padding-block: 56px; }
  .inner-page h2 { font-size: 30px; }
  .inner-page h3 { font-size: 18px; }
  .inner-page .contact-grid { gap: 52px; }
  .hours-title { margin-top: 28px !important; }
  .service-area { gap: 52px; }
  .service-area .area-map { height: 250px; }
  .booking-section { padding-bottom: 56px; }
  .booking-grid { gap: 20px; }
  .booking-card > div { padding: 18px; }
  .booking-card h2 { font-size: 19px; margin-bottom: 20px; }
  .booking-price { font-size: 28px; margin-bottom: 18px; }

  .dpf-page main { font-size: 16px; }
  .dpf-page main h2 { font-size: 36px; margin-bottom: 22px; }
  .dpf-page main h3 { font-size: 18px; }
  .dpf-page .dpf-intro { padding-block: 48px; }
  .dpf-page .dpf-intro-grid { gap: 48px; }
  .dpf-page .dpf-intro h1 { font-size: 56px; margin-bottom: 20px; }
  .dpf-page .dpf-intro-copy > p:not(.eyebrow) { margin-bottom: 20px; }
  .dpf-page .dpf-intro-copy > p.dpf-lead { font-size: 19px; }
  .dpf-page .dpf-intro-copy .actions { gap: 24px; margin-top: 24px; }
  .dpf-page main .button { min-height: 46px; padding: 11px 24px; font-size: 15px; }
  .dpf-page .dpf-service-strip { padding-block: 24px; }
  .dpf-page .dpf-service-strip li { padding-inline: 24px; }
  .dpf-page .dpf-service-strip strong { font-size: 18px; }
  .dpf-page .dpf-section { padding-block: 64px; }
  .dpf-page .dpf-two-column { gap: 64px; }
  .dpf-page .dpf-section-copy > p { margin-bottom: 22px; }
  .dpf-page .dpf-explainer { padding-bottom: 36px; }
  .dpf-page .dpf-process { padding-top: 24px; }
  .dpf-page .dpf-symptoms { padding: 26px 28px; }
  .dpf-page .dpf-symptoms h3 { font-size: 22px; margin-bottom: 20px; }
  .dpf-page .dpf-symptoms li, .dpf-page .dpf-symptoms p { font-size: 16px; }
  .dpf-page .dpf-section-heading { margin-bottom: 32px; }
  .dpf-page .dpf-section-heading > p:last-child { font-size: 18px; }
  .dpf-page .dpf-process-grid { gap: 28px 44px; }
  .dpf-page .dpf-process-grid > li { padding-top: 20px; gap: 16px; }
  .dpf-page .dpf-process-grid > li > span { font-size: 26px; }
  .dpf-page .dpf-benefits { padding-block: 56px 0; }
  .dpf-page .dpf-benefits .dpf-two-column { padding-bottom: 48px; }
  .dpf-page .dpf-benefits h2, .dpf-page .dpf-why h2 { margin-bottom: 0; }
  .dpf-page .dpf-benefit-list dt { font-size: 18px; }
  .dpf-page .dpf-why { padding-block: 48px 56px; }
  .dpf-page .dpf-faq .faqs summary { font-size: 16px; padding-block: 18px; }
  .dpf-page .dpf-faq .faqs details p { font-size: 16px; }
  .dpf-page .dpf-final-cta { padding-block: 40px; }
  .dpf-page .dpf-final-cta h2 { font-size: 30px; margin-bottom: 12px; }
  .dpf-page .dpf-final-cta p { font-size: 16px; }
  .service-detail .service-divider { padding-top: 48px; }
  .service-detail .service-process-four { gap: 24px; }
  .service-detail .service-process-four > li > span { margin-bottom: 16px; }
  .service-detail .service-preparation { padding: 28px; }
  .service-detail .service-steps-list > li { padding-block: 20px; }
  .service-detail .service-open-list { gap: 28px; }
  .service-detail .service-rates dt { font-size: 18px; }
}

/* Source: masthead.css */
/* Header and homepage banner proportions matched to the Southeast ECU site. */
.site-topbar { background: #112129; color: #c2cdd1; font-size: .75rem; letter-spacing: .055em; }
.site-topbar .container,
.header .header-inner,
.hero .hero-inner,
.hero-bottom .container { width: min(1180px, calc(100% - 96px)); margin-inline: auto; }
.site-topbar .container { display: flex; justify-content: space-between; align-items: center; min-height: 33px; gap: 20px; }
.site-topbar-tagline { font-size: .6875rem; font-weight: 600; letter-spacing: .13em; }
.header { position: sticky; top: 0; z-index: 20; box-shadow: 0 1px 0 #14232b0b; }
.header .header-inner { min-height: 92px; gap: 25px; }
.header .brand { width: 242px; border-radius: 0; }
.header nav { margin-left: auto; gap: 25px; font-size: .875rem; }
.header .header-book { display: inline-flex; min-height: 46px; padding: 10px 19px; border-radius: 3px; font-size: .9375rem; line-height: 1.6; }

.hero { display: block; position: relative; overflow: hidden; background: #101e26; color: #fff; border-radius: 0; }
.hero .hero-photo { position: absolute; inset: 0 0 44px auto; width: 82%; max-width: none; height: calc(100% - 44px); aspect-ratio: auto; object-fit: cover; object-position: right bottom; mask-image: linear-gradient(to right, transparent, #000 12%); border-radius: 0; }
.hero::after { display: block; position: absolute; inset: 0; background: linear-gradient(90deg, #101e26 0%, #101e26e8 27%, #101e2640 57%, #101e2610 100%); pointer-events: none; }
.hero .hero-inner { position: relative; z-index: 1; min-height: 584px; display: flex; align-items: center; padding: 0; }
.hero .hero-copy { position: relative; max-width: 570px; margin: 0; padding: 51px 0 55px; }
.hero .hero-copy > .hero-eyebrow { max-width: none; margin: 0 0 20px; color: #d1e5fa; font-size: .75rem; font-weight: 700; line-height: 1.5; letter-spacing: .16em; }
.hero-eyebrow::before { content: ''; display: block; width: 45px; height: 3px; margin-bottom: 20px; background: #4aa6ff; }
.hero h1 { font-family: var(--heading); font-size: clamp(3.7rem, 5.6vw, 5.5rem); font-weight: 700; line-height: .99; letter-spacing: .005em; margin: 0; }
.hero .hero-copy h1 br { display: initial; }
.hero h1 span { color: #4aa6ff; }
.hero .hero-copy > .hero-description { max-width: 392px; font-size: 1.0625rem; line-height: 1.7; color: #e3e9ec; margin: 24px 0 0; }
.hero .actions { display: flex; gap: 12px; margin-top: 27px; }
.hero .button { min-height: 52px; padding: 13px 24px; font-size: .9375rem; line-height: 1.6; border-radius: 3px; }
.hero .button-outline { background: transparent; border-color: #ffffff70; color: #fff; }
.hero .button-outline:hover { background: #ffffff12; border-color: #fff; }
.hero .hero-copy > .hero-note { margin: 18px 0 0; font-size: .8125rem; line-height: 1.6; color: #b3c2ca; }
.hero-bottom { position: relative; z-index: 1; background: #101e26df; border-top: 1px solid #ffffff15; color: #b6c6cd; }
.hero-bottom .container { display: flex; align-items: center; gap: 34px; min-height: 44px; font-size: .6875rem; font-weight: 600; line-height: 1.6; letter-spacing: .22em; }
.hero-bottom span:last-child { color: #4aa6ff; }

@media (min-width: 1450px) {
  .hero .hero-inner { min-height: 630px; }
  .hero h1 { font-size: 5.8rem; }
}
@media (max-width: 1100px) {
  .site-topbar .container, .header .header-inner, .hero .hero-inner, .hero-bottom .container { width: calc(100% - 60px); }
  .header .header-inner { gap: 17px; }
  .header .brand { width: 216px; }
  .header nav { gap: 17px; font-size: .8125rem; }
  .hero .hero-inner { min-height: 560px; }
}
@media (max-width: 900px) {
  .header .header-inner { min-height: 79px; }
  .header .header-book { margin-left: auto; }
  .header .menu-toggle { display: flex; flex-direction: column; gap: 5px; justify-content: center; order: 3; flex: 0 0 44px; width: 44px; height: 44px; padding: 11px; border: 1px solid var(--line); border-radius: 2px; background: transparent; }
  .header .menu-toggle span { width: 20px; height: 2px; background: var(--ink); }
  .header nav { display: none; position: absolute; left: 0; right: 0; top: 100%; margin: 0; padding: 20px 30px; background: #fff; box-shadow: 0 12px 20px #0001; max-height: calc(100dvh - 79px); overflow-y: auto; overscroll-behavior: contain; }
  .header nav.open { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
  .header nav > a, .header .services-menu summary { padding: 10px 0; font-size: 1rem; }
  .header .services-menu summary { justify-content: space-between; }
  .header .services-dropdown { position: static; width: auto; box-shadow: none; margin: 3px 0 10px; padding: 4px 0 4px 16px; border: 0; border-left: 2px solid var(--brand); }
  .header .services-dropdown a { padding: 10px 12px; font-size: .9375rem; white-space: normal; }
  .hero .hero-photo { object-position: right bottom; }
}
@media (max-width: 640px) {
  html { scroll-padding-top: 80px; }
  .site-topbar .container, .header .header-inner, .hero .hero-inner, .hero-bottom .container { width: calc(100% - 38px); }
  .site-topbar .container { justify-content: center; min-height: 29px; font-size: .625rem; letter-spacing: .03em; }
  .site-topbar-tagline { display: none; }
  .header .header-inner { min-height: 74px; gap: 8px; }
  .header .brand { width: min(205px, calc(100vw - 164px)); }
  .header .header-book { min-height: 44px; padding: 10px 12px; font-size: .8125rem; }
  .header .header-book .header-book-label { display: inline; }
  .header .header-book .header-book-extra { display: none; }
  .header nav { max-height: calc(100dvh - 74px - 64px - env(safe-area-inset-bottom, 0px)); }
  .hero .hero-inner { min-height: 630px; align-items: flex-start; }
  .hero .hero-copy { max-width: 100%; padding: 39px 0 calc(50vw + 24px); }
  .hero::after { background: linear-gradient(to bottom, #101e26 0%, #101e26 50%, #101e26e6 65%, transparent 88%); }
  .hero .hero-photo { inset: auto 0 40px; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: contain; object-position: center bottom; mask-image: none; }
  .hero h1 { font-size: clamp(3.5rem, 18.77vw, 4.4rem); }
  .hero .hero-copy > .hero-eyebrow { max-width: 290px; font-size: .64rem; letter-spacing: .13em; line-height: 1.7; margin-bottom: 19px; }
  .hero-eyebrow::before { margin-bottom: 18px; }
  .hero .hero-copy > .hero-description { max-width: 315px; font-size: 1rem; margin-top: 20px; line-height: 1.6; }
  .hero .actions { gap: 9px; margin-top: 25px; }
  .hero .button { font-size: .8125rem; padding: 11px 15px; min-height: 47px; }
  .hero .hero-copy > .hero-note { font-size: .75rem; margin-top: 16px; }
  .hero-bottom .container { gap: 0; justify-content: space-between; min-height: 40px; font-size: .56rem; letter-spacing: .13em; }
}

