
:root{--red:#d80719;--black:#101113;--muted:#697078;--line:#e9e9eb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--black);font:16px/1.6 system-ui,-apple-system,Segoe UI,Arial,sans-serif}a{text-decoration:none;color:inherit}img{display:block;max-width:100%}button{font:inherit}.container{width:min(1170px,calc(100% - 44px));margin:auto}.top{border-bottom:1px solid var(--line);background:white}.header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 0}.brand img{width:236px;height:105px;object-fit:contain;object-position:left}.header-contact{display:flex;gap:24px;align-items:center;font-weight:700;font-size:14px}.header-contact a:hover,.contact-links a:hover{color:var(--red)}.header-contact .quote{background:var(--red);color:white;padding:12px 19px}.hero{min-height:590px;background:#151618;color:#fff;position:relative;overflow:hidden}.hero-image{position:absolute;inset:0 0 0 46%;background:url('assets/hero-extension.webp') center / cover no-repeat}.hero-image:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#151618 0%,rgba(21,22,24,.42) 26%,rgba(21,22,24,.07) 100%)}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#151618 0%,#151618 37%,rgba(21,22,24,.55) 60%,rgba(21,22,24,.14) 100%);pointer-events:none}.hero-content{position:relative;z-index:1;padding:100px 0 115px}.eyebrow{letter-spacing:.22em;color:#ff6471;font-size:12px;font-weight:800;text-transform:uppercase}.hero h1{font-size:clamp(58px,8vw,114px);letter-spacing:-.07em;line-height:.92;margin:26px 0 27px;font-weight:850}.hero h1 span{color:#ff2438}.hero p{max-width:500px;color:#e2e3e5;font-size:19px;line-height:1.7}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:15px 23px;font-weight:800;border:1px solid white;min-height:55px}.btn-primary{background:var(--red);border-color:var(--red);color:white}.btn-outline{color:white}.btn:hover{filter:brightness(1.12)}.trust{background:#f7f7f8;border-bottom:1px solid var(--line)}.trust-inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:24px 0;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.trust-inner span:before{content:'✓';color:var(--red);padding-right:12px}.section{padding:84px 0}.section-tag{color:var(--red);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.17em}.section h2{font-size:clamp(32px,5vw,54px);line-height:1.13;letter-spacing:-.055em;margin:12px 0 14px}.section-lede{max-width:690px;color:#585d66;margin:0 0 30px}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.shot{overflow:hidden;position:relative;background:#ddd;min-height:215px}.shot img{height:100%;width:100%;object-fit:cover;transition:transform .35s}.shot:hover img{transform:scale(1.03)}.shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 17px 15px;color:white;font-size:14px;font-weight:750;background:linear-gradient(transparent,rgba(0,0,0,.78))}.shot:first-child{grid-column:span 2;grid-row:span 2}.shot:first-child img{position:absolute;inset:0}.about{background:#f6f6f7}.about-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px}.about-image{height:380px;width:100%;object-fit:cover}.about p{color:#4f555e;font-size:17px}.contact{background:#111214;color:white}.contact h2{margin-bottom:16px}.contact p{color:#c8cbd0}.contact-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:32px}.contact-links a{display:inline-flex;align-items:center;gap:12px;border:1px solid #555;padding:15px 20px;font-weight:800;overflow-wrap:anywhere}.contact-links svg{color:#ff3146;flex-shrink:0}.footer{background:#0b0c0d;color:#aeb0b4;font-size:13px;padding:24px 0}.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}a:focus-visible{outline:3px solid #e00;outline-offset:4px}@media(max-width:850px){.header-contact{gap:10px}.header-contact .mail{display:none}.brand img{width:175px;height:75px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.about-grid{grid-template-columns:1fr;gap:26px}.about-image{height:330px}.hero:after{background:linear-gradient(90deg,rgba(21,22,24,.97),rgba(21,22,24,.72))}.hero-image{inset:0}.hero-content{padding:80px 0}}@media(max-width:530px){.header-contact .tel{display:none}.brand img{width:160px;height:70px}.hero h1{font-size:64px}.hero p{font-size:17px}.section{padding:62px 0}.gallery{gap:9px}.shot{min-height:160px}.shot:first-child{grid-column:span 2;grid-row:auto;min-height:230px}.shot figcaption{font-size:12px;padding:34px 10px 10px}.trust-inner{display:grid;gap:13px}.contact-links{display:grid}.contact-links a{width:100%}}

/* Gallery fix: remove browser figure margins which narrowed photo cards on phones. */
.gallery > figure.shot{margin:0;min-width:0;width:100%;display:block;isolation:isolate;}
.gallery{width:100%;min-width:0;align-items:stretch;}
.shot{margin:0;min-width:0;aspect-ratio:4 / 3;min-height:0;}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.shot figcaption{z-index:1;line-height:1.35;overflow-wrap:break-word;}
@media(max-width:530px){
 .gallery{grid-template-columns:minmax(0,1fr);gap:18px;}
 .shot,.shot:first-child{grid-column:auto;grid-row:auto;min-height:0;aspect-ratio:4 / 3;}
 .shot:first-child{aspect-ratio:16 / 11;}
 .shot figcaption{font-size:15px;padding:45px 16px 15px;}
 .section-lede{font-size:16px;line-height:1.65;}
}

/* Major patch v2: mobile, accessible gallery, enquiry and safety */
*,*::before,*::after{box-sizing:border-box}html{overflow-x:clip}img{max-width:100%}.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.shot{cursor:zoom-in;overflow:hidden}.shot:focus-visible{outline:4px solid #d50923;outline-offset:3px}.contact-links a:hover,.wa-link:hover{text-decoration:underline}.enquiry{display:grid;grid-template-columns:1fr 1.15fr;gap:42px;margin-top:48px;border-top:1px solid #404248;padding-top:36px}.enquiry h3{font-size:25px;margin:0 0 12px}.enquiry form{display:grid;gap:10px;min-width:0}.enquiry label{font-weight:700}.enquiry input,.enquiry textarea{display:block;width:100%;padding:13px;color:#171819;background:#fff;border:2px solid #dedee0;border-radius:3px;font:inherit}.enquiry input:focus-visible,.enquiry textarea:focus-visible{outline:3px solid #ff4056;outline-offset:2px}.enquiry .btn{border:0;cursor:pointer;margin-top:8px}.form-note{font-size:13px!important;color:#ddd!important}.wa-link{display:inline-block;border:1px solid #fff;padding:12px 16px;color:#fff;margin-top:10px}#photo-dialog{max-width:min(1000px,95vw);width:max-content;max-height:95vh;padding:15px;background:#141519;color:#fff;border:1px solid #5d6066;border-radius:6px}#photo-dialog::backdrop{background:rgba(0,0,0,.87)}#photo-large{display:block;max-width:100%;max-height:73vh;object-fit:contain;margin:auto}#close-photo{position:absolute;right:10px;top:6px;color:#fff;background:#111;border:1px solid #777;border-radius:4px;font-size:32px;cursor:pointer}#photo-label{text-align:center;margin:8px 0}.photo-nav{display:flex;gap:10px;justify-content:center}.photo-nav button{border:1px solid #777;color:#fff;background:#26272a;padding:10px;cursor:pointer}@media(max-width:850px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.enquiry{grid-template-columns:1fr}}@media(max-width:530px){.gallery{grid-template-columns:minmax(0,1fr)}.shot,.shot:first-child{grid-column:auto;grid-row:auto;aspect-ratio:4/3}.shot:first-child{aspect-ratio:16/11}.hero h1{font-size:clamp(48px,12vw,68px)}.enquiry{gap:18px}.contact-links a{min-width:0}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* v4 accessibility polish */
.gallery-help{margin:0 0 18px;color:#505761;font-size:14px}
.shot:focus-visible,#photo-dialog button:focus-visible,.btn:focus-visible{outline:3px solid #e71935;outline-offset:4px}
@media(max-width:530px){.header{gap:8px}.header-contact{flex-shrink:0}.header-contact .quote{font-size:12px;padding:11px 10px}.brand img{max-width:48vw;height:auto}.shot figcaption{font-size:14px}}

/* v5: accessible navigation and resilient mobile photo layout */
.skip-link{position:absolute;left:12px;top:-100px;z-index:10000;padding:12px 18px;background:#fff;color:#111;border:2px solid #d50923}
.skip-link:focus{top:12px}
:where(a,button,[role="button"]):focus-visible{outline:3px solid #e50927;outline-offset:4px}
.gallery>.shot{min-width:0;margin:0;overflow:hidden;cursor:zoom-in}
.gallery>.shot img{display:block;width:100%;height:100%;max-width:100%;object-fit:cover}
@media(max-width:530px){.gallery{grid-template-columns:minmax(0,1fr)!important}.gallery>.shot{min-width:0;width:100%}.gallery>.shot img{object-fit:cover}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:0.01ms!important;transition-duration:0.01ms!important}}

/* v7 enquiry page moved from inline styles to comply with Content Security Policy */
.enquiry-page{max-width:740px;padding:50px 0 90px}.enquiry-page form{display:grid;gap:12px}.enquiry-page label{font-weight:700}.enquiry-page input,.enquiry-page select,.enquiry-page textarea{width:100%;padding:13px;border:1px solid #737373;border-radius:5px;font:inherit}.enquiry-page .notice{padding:15px;border-left:4px solid #d80719;background:#f7f7f7}.enquiry-page .trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.enquiry-page button{cursor:pointer}.enquiry-page h1{line-height:1.12}.enquiry-page a{text-decoration:underline}
.enquiry-page .consent-label{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.enquiry-page .consent-checkbox{width:auto;margin-top:5px}

/* v8: reliable responsive gallery layout and focus ring */
.gallery{min-width:0}.gallery .shot{margin:0;min-width:0;overflow:hidden;cursor:zoom-in}.gallery .shot img{display:block;width:100%;height:100%;object-fit:cover;max-width:100%}.gallery .shot:focus-visible{outline:3px solid #ef233c;outline-offset:3px}.photo-nav button:focus-visible,#close-photo:focus-visible{outline:3px solid #ef233c;outline-offset:3px}
@media(max-width:600px){.gallery{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.gallery .shot{width:100%;max-width:100%;height:auto;min-height:0}.gallery .shot img{width:100%;height:260px;object-fit:cover}.gallery .shot figcaption{overflow-wrap:anywhere}.header-contact{min-width:0;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;scroll-behavior:auto!important;transition-duration:0.01ms!important}}
