/* Final shared layout layer: consistent spacing at every page template and viewport. */
:root{--page-gutter:6vw;--section-space:72px;--card-space:28px;--content-gap:28px}
@media(min-width:1640px){:root{--page-gutter:calc((100vw - 1440px)/2)}}
body{line-height:1.6}
header,.top,footer,.breadcrumb,.page-intro,main>section,main>.strip{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
main>section{padding-top:var(--section-space);padding-bottom:var(--section-space)}
main>.hero,main>.expanded-hero{padding:0}
.hero-copy,.expanded-service .hero-copy{padding:56px 32px 56px var(--page-gutter)}
.expanded-service .hero-copy{padding-top:56px;padding-bottom:56px}
.page-intro{padding-top:64px;padding-bottom:64px}
main p{margin-top:0;margin-bottom:20px}
main p:last-child{margin-bottom:0}
main h1{margin-top:0;margin-bottom:24px}
main h2{margin-top:0;margin-bottom:24px}
main h3{margin-top:28px;margin-bottom:14px}
.eyebrow{margin-bottom:18px;line-height:1.7}
.section-head{margin-bottom:32px;gap:32px}
.section-head h2,.content-heading h2{margin-bottom:0}
.service-content .content-heading{margin-bottom:28px}
.service-grid,.option-grid{gap:24px}
.service,.option-card{padding:var(--card-space)}
.service h3{margin-top:24px;margin-bottom:14px}
.option-card h3{margin-top:0;margin-bottom:16px}
.service p,.option-card p{margin-bottom:24px}
.service .explore,.option-card>a{margin-top:auto}
.copy-columns{gap:36px}
.brief-panel,.document-note,.project-example{padding:var(--card-space)}
.brief-panel h3,.document-note h3,.project-example h3{margin-top:0}
.ticks{margin-top:20px;margin-bottom:24px}
.ticks li{line-height:1.8;padding:14px 0}
.ticks li:first-child{padding-top:0}
.ticks li:last-child{padding-bottom:14px}
.brief-panel .ticks:last-child{margin-bottom:0}
.project-example{margin-bottom:28px}
.document-note{margin-top:28px}
.booking-steps{margin-top:28px;margin-bottom:28px;gap:24px}
.booking-steps li p{margin-top:14px;margin-bottom:0}
.route-table-wrap{margin-top:28px;margin-bottom:28px;min-width:0;width:100%}
.route-table{table-layout:auto;overflow-wrap:break-word}
.route-table th,.route-table td{line-height:1.8}
.route-table caption{line-height:1.7}
.expanded-service details{padding:18px 0}
.expanded-service details[open] summary{margin-bottom:14px}
.expanded-service details p{padding-right:0}
summary{overflow-wrap:break-word;cursor:pointer}
.enquiry{align-items:start}
.enquiry>div{min-width:0}
.enquiry-form{gap:22px 20px;align-items:start;margin:0}
.enquiry-form label{line-height:1.7;gap:8px}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{box-sizing:border-box;min-width:0;width:100%;margin:0;max-width:100%;font-size:16px}
.enquiry-form input[type=checkbox]{width:20px;max-width:20px;margin-top:3px}
.enquiry-form input[type=date]{display:block;-webkit-appearance:none;appearance:none;min-height:50px}
.enquiry-form input::-webkit-date-and-time-value{min-height:24px;text-align:left}
.enquiry-form textarea{min-height:140px}
.enquiry-form .consent{align-items:flex-start;column-gap:12px}
.enquiry-form .note,.enquiry-form .form-status{margin:0;line-height:1.7}
.enquiry-form button{margin:0}
.location-links>p{margin-bottom:0}
.location-grid{margin-top:28px;gap:0 32px}
.location-grid a{padding:20px 0;line-height:1.75}
.contact-options h3{margin-top:0}
.contact-lines{margin-top:24px}
.footer-top{gap:32px}
.footer-top h2{margin:0;line-height:1.3}
footer .logo-box::before{width:var(--page-gutter)}
.footer-links{margin-top:6px;padding-top:28px;padding-bottom:28px;gap:8px 24px}
.copyright{padding-top:24px;align-items:flex-start}
.copyright>a{overflow-wrap:break-word}
.whatsapp{padding:12px 18px;font-size:13px}
.hero-art{min-width:0}
.hero-art .art-label{line-height:1.7}
@media(min-width:961px) and (max-width:1199px){
 .hero-copy,.expanded-service .hero-copy{padding-right:24px}
 .hero h1{font-size:36px;line-height:1.25}
 .hero-actions{gap:12px}
 .hero-actions .button{font-size:13px;padding:14px 16px}
 .about,.enquiry,.detail{gap:32px}
}
@media(max-width:1050px){nav{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}}
@media(max-width:960px){
 :root{--section-space:56px;--card-space:26px}
 .hero-copy,.expanded-service .hero-copy{padding:48px var(--page-gutter)}
 .hero-art{min-height:280px;min-height:clamp(240px,40vw,360px)}
 .hero-actions{margin-top:26px}
 .page-intro{padding-top:52px;padding-bottom:52px}
 .section-head p{margin-top:20px}
 .copy-columns{gap:28px}
 .process{gap:28px}
 .footer-top{gap:28px}
 .footer-links{gap:8px 24px}
}
@media(max-width:800px){
 .copy-columns{grid-template-columns:minmax(0,1fr)}
 .service-content{padding-top:var(--section-space);padding-bottom:var(--section-space)}
 .service-content .content-heading{margin-bottom:24px}
}
@media(max-width:650px){
 :root{--section-space:44px;--card-space:22px}
 main p{margin-bottom:18px}
 main h1{margin-bottom:20px}
 main h2{margin-bottom:20px}
 main h3{margin-top:24px;margin-bottom:12px}
 .hero-copy,.expanded-service .hero-copy{padding:40px var(--page-gutter)}
 .hero h1{font-size:28px;line-height:1.35}
 .hero-actions{margin-top:24px;gap:14px}
 .hero-actions .button{min-height:48px}
 .page-intro{padding-top:44px;padding-bottom:44px}
 .service-grid,.option-grid{gap:20px}
 .service h3{margin-top:22px}
 .option-card h3,.brief-panel h3,.document-note h3,.project-example h3{margin-top:0}
 .service-content h2,.location-links h2{font-size:27px;line-height:1.35}
 .service-content p{font-size:15px;line-height:1.8}
 .eyebrow{font-size:10px;letter-spacing:1.7px;margin-bottom:16px}
 .copy-columns,.about,.detail,.enquiry{gap:28px}
 .route-table-wrap{margin-top:22px;margin-bottom:22px}
 .route-table{min-width:600px;font-size:13px}
 .route-table caption{font-size:12px}
 .route-table th,.route-table td{padding:16px}
 .booking-steps{grid-template-columns:minmax(0,1fr);gap:20px}
 .booking-steps li{display:flex;align-items:flex-start;gap:18px;padding-top:18px}
 .booking-steps li>span{flex-shrink:0;font-size:24px;line-height:1.5}
 .booking-steps li p{margin-top:2px}
 .document-note{margin-top:24px}
 .project-example{margin-bottom:24px}
 .expanded-service summary{font-size:15px;line-height:1.8}
 .enquiry-form{gap:20px}
 .enquiry-form .wide{grid-column:1/-1}
 .enquiry-form input,.enquiry-form select{min-height:50px;padding:12px}
 .enquiry-form input[type=checkbox]{min-height:20px;padding:0}
 .enquiry-form textarea{padding:12px;min-height:132px}
 .enquiry-form .consent{font-size:12px}
 .location-grid{margin-top:22px}
 .location-grid a{padding:18px 0}
 footer{padding-top:40px;padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
 .footer-top{gap:24px}
 .footer-links{padding-top:24px;padding-bottom:24px;gap:0}
 .footer-links a{padding:10px 0;line-height:1.6}
 .copyright{gap:12px;padding-top:22px}
 .whatsapp{min-height:44px;right:12px;bottom:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));padding:11px 16px;font-size:12px}
}
@media(max-width:359px){:root{--page-gutter:18px;--card-space:18px}.service-content h2,.location-links h2{font-size:25px}.top{font-size:9px}.hero h1{font-size:26px}}
@media(max-height:500px) and (max-width:1050px){header{height:72px}header img{width:175px}nav{max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px)}html{scroll-padding-top:88px}}
@media print{header{position:static}.menu,.whatsapp,.hero-art,.hero-actions,.enquiry-form{display:none!important}.hero{display:block;min-height:0}.hero-copy{padding:24px 0!important}main>section{padding:24px 0!important}.route-table-wrap{overflow:visible}.route-table{min-width:0}footer{padding:24px 0}.option-grid,.copy-columns{display:block}.option-card{break-inside:avoid;margin-bottom:16px}.hero,.enquiry,footer,.project-example{background:white!important;color:#202b61!important}.hero p,.enquiry p,.project-example p{color:#202b61!important}}
.delivery-fallback{line-height:1.8;font-size:14px;border:1px solid #8c95b4;padding:18px}.delivery-fallback[hidden]{display:none}.delivery-fallback a{margin:12px 14px 0 0}.delivery-fallback .text-link{display:inline-block}
footer .contact-lines a{font-size:20px;line-height:1.8;padding:10px 0;min-height:48px}footer .contact-lines .contact-icon{width:21px;height:21px}footer.home-footer .hf-contact-links>a{font-size:18px;line-height:1.9;padding:10px 0;min-height:48px}footer.home-footer .hf-contact-links .contact-icon{width:20px;height:20px}@media(max-width:650px){footer .contact-lines a,footer.home-footer .hf-contact-links>a{font-size:17px;line-height:1.8;overflow-wrap:anywhere}}
