:root{--bg:#070707;--panel:#10100f;--line:#34342e;--gold:#b98526;--gold-light:#d4aa54;--white:#f4f2ed;--muted:#bfbbb3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding-top:88px;background:var(--bg);color:var(--white);font:16px/1.5 "DM Sans",sans-serif}.site-header{height:88px;position:fixed;z-index:9;top:0;left:0;right:0;display:flex;align-items:center;gap:27px;padding:0 5vw;background:#000;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--white);text-decoration:none;font:800 29px/1 Manrope,sans-serif;letter-spacing:-.09em}.brand img{width:58px;height:58px;object-fit:cover;background:#000}.brand span{color:var(--gold-light)}nav{display:flex;gap:21px;margin-left:auto;align-items:center}nav a{font-size:13px;font-weight:700;text-decoration:none;color:#d4d0c7}nav a:hover,nav a.active{color:var(--gold-light)}.prices-link{padding:0 19px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.call-top{padding:11px 15px;background:var(--gold);color:#000;text-decoration:none;font-size:13px;font-weight:800}.menu{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:620px;border-bottom:1px solid var(--line)}.hero-copy{padding:125px 10% 80px 12vw;align-self:center}.eyebrow{margin:0 0 17px;color:var(--gold-light);font-size:12px;font-weight:800;letter-spacing:.11em}.eyebrow.dark{color:#4e3508}.hero h1,h2{font:800 clamp(48px,6vw,86px)/.96 Manrope,sans-serif;letter-spacing:-.08em;margin:0}.hero-copy>p:not(.eyebrow){font-size:18px;color:var(--muted);max-width:500px;margin:25px 0 32px}.buttons{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;gap:20px;align-items:center;padding:15px 18px;border:1px solid #5c594f;color:#fff;text-decoration:none;font-size:13px;font-weight:800}.button.gold{background:var(--gold);border-color:var(--gold);color:#000}.hero-logo{background:#000;border-left:1px solid var(--line);display:grid;place-items:center;position:relative;padding:50px}.hero-logo img{width:min(390px,90%);aspect-ratio:1;object-fit:cover;background:#000;filter:contrast(1.3) brightness(.85)}.hero-logo p{position:absolute;bottom:27px;margin:0;font:700 13px Manrope,sans-serif;letter-spacing:.12em}.trust{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.trust span{padding:21px;text-align:center;border-right:1px solid var(--line);font-weight:800}.trust span:before{content:"✓";color:var(--gold-light);margin-right:9px}.quick-links{display:flex;align-items:center;gap:28px;padding:25px 12vw;border-bottom:1px solid var(--line)}.quick-links p{margin:0;color:var(--muted)}.quick-links a{font-size:14px;font-weight:800;color:#fff;text-decoration:none}.quick-links a:last-child{color:var(--gold-light)}.gold-section{padding:104px 12vw;background:linear-gradient(135deg,#9f6f1a,#c7993e 52%,#956510);color:#080808;border-bottom:1px solid #72500f}.about{display:grid;grid-template-columns:.8fr 1.2fr 1fr;gap:7vw}.gold-section h2{font-size:clamp(43px,5vw,72px)}.gold-section p{max-width:46ch;font-size:18px}.gold-section strong{font-size:1.08em}.no-from{padding-left:16px;border-left:3px solid #111;font-size:20px!important}.small-points{border-top:1px solid #76520e}.small-points p{padding:15px 0;margin:0;border-bottom:1px solid #76520e;font-size:14px}.small-points b{display:block;font-size:18px}.emergency,.replacements{padding:110px 12vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;border-bottom:1px solid var(--line)}.round-icon{width:64px;height:64px;border:1px solid var(--gold-light);border-radius:50%;display:grid;place-items:center;margin-bottom:25px}.round-icon svg{width:37px;fill:none;stroke:var(--gold-light);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.emergency h2 span,.replacements h2 span{color:var(--gold-light)}.emergency ul{padding:0;margin:31px 0;list-style:none}.emergency li{padding:10px 0 10px 25px;position:relative;border-bottom:1px solid var(--line);color:var(--muted)}.emergency li:before{content:"✓";position:absolute;left:0;color:var(--gold-light)}.priority{color:var(--gold-light);font-weight:800}.rates h3{font:800 15px Manrope,sans-serif;letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px}.rate-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rate-cards article{border:1px solid #6d531e;padding:18px 8px;display:grid;justify-items:center;gap:4px;text-align:center}.rate-cards svg{width:34px;height:34px;fill:none;stroke:var(--gold-light);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.rate-cards b{font:700 20px Manrope,sans-serif}.rate-cards span{font-size:12px;color:var(--muted)}.rate-cards strong{font:800 37px Manrope,sans-serif;color:var(--gold-light);letter-spacing:-.08em;margin-top:18px}.destructive{margin-top:14px;padding:16px 18px;border-left:3px solid var(--gold-light);background:#12110f;color:var(--muted);font-size:14px}
.additional-door-note{margin:14px 0 0;padding:16px 18px;border-left:3px solid var(--gold-light);background:#12110f;color:var(--muted);font:14px/1.5 "DM Sans",sans-serif}.additional-door-note b{color:var(--gold-light)}.destructive b,.destructive strong{color:var(--gold-light)}.upgrade{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw}.upgrade h2{font-size:clamp(43px,5vw,72px)}.facts{margin-top:27px;border-top:1px solid #76520e}.facts article{min-height:94px;padding:13px 0;border-bottom:1px solid #76520e;display:grid;grid-template-columns:115px 1fr;align-items:center;gap:13px}.facts b{font:800 54px/.8 Manrope,sans-serif;letter-spacing:-.08em}.facts span{font-size:15px;font-weight:700}.sources{font-size:12px!important;margin-top:24px!important}.sources a{color:#080808;font-weight:800;margin-right:15px}.replacements>div:first-child>p:last-child{max-width:400px;color:var(--muted);font-size:17px}.lock-list{display:grid;gap:12px;align-self:center}.lock-list article{display:grid;grid-template-columns:220px 1fr auto;gap:18px;align-items:center;border:1px solid #69521f;padding:15px}.lock-list svg{width:200px;height:80px;fill:none;stroke:#f4f2ed;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.lock-list div{display:grid}.lock-list b{font:700 18px Manrope,sans-serif}.lock-list span{color:var(--muted);font-size:13px}.lock-list strong{font:800 39px Manrope,sans-serif;letter-spacing:-.08em;color:var(--gold-light)}.or-bar{padding:26px 12vw;background:#10100e;border-bottom:1px solid var(--line);display:flex;gap:20px;align-items:center}.or-bar b{font:800 31px Manrope,sans-serif;color:var(--gold-light)}.or-bar span{color:var(--muted)}.upgrade-cards{padding:68px 12vw 108px;display:grid;grid-template-columns:1fr 1fr;gap:14px;border-bottom:1px solid var(--line)}.upgrade-cards article{border:1px solid #69521f;padding:27px}.upgrade-cards p{font-size:12px;font-weight:800;letter-spacing:.08em}.upgrade-cards strong{display:block;margin:26px 0 10px;color:var(--gold-light);font:800 46px Manrope,sans-serif;letter-spacing:-.08em}.upgrade-cards span{display:block;color:#f4f2ed;font-size:14px;font-weight:700}.upgrade-cards span b{display:block;color:var(--gold-light);font-size:20px;letter-spacing:.1em;margin-bottom:7px}.contact{padding:90px 12vw;display:flex;align-items:center;justify-content:space-between;gap:40px}.contact h2{font-size:56px}.contact>div:first-child>p:last-child{color:var(--muted);max-width:500px}.whatsapp{display:block;margin-top:16px;color:var(--gold-light);font-size:13px;font-weight:800;text-decoration:none}.qr{width:235px;margin-top:25px;padding:16px;border:2px dashed var(--gold-light);display:grid;grid-template-columns:55px 1fr;gap:10px;color:var(--muted);font-size:11px}.qr span{background:var(--white);color:#000;display:grid;place-items:center;font-weight:900;font-size:13px}.qr p{margin:0}.qr b{display:block;color:#fff;font-size:13px;margin-bottom:4px}footer{padding:30px 12vw;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px;align-items:center;border-top:1px solid var(--line)}footer .brand{font-size:25px}footer .brand img{height:48px;width:48px}footer p,footer>a:not(.brand){font-size:13px;color:var(--muted);margin:0}@media(max-width:900px){body{padding-top:72px}.site-header{height:72px;padding:0 20px}.brand{font-size:25px}.brand img{width:47px;height:47px}.menu{display:grid;gap:5px;border:0;background:none;margin-left:auto}.menu i{display:block;width:22px;height:2px;background:var(--gold-light)}nav{display:none;position:absolute;top:71px;left:0;right:0;background:#000;border-bottom:1px solid var(--line);padding:20px;flex-direction:column;align-items:stretch}.site-header.open nav{display:flex}.call-top{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:78px 24px 55px}.hero-logo{min-height:340px;border:0;border-top:1px solid var(--line)}.hero-logo img{width:270px}.hero-logo p{font-size:10px}.trust{grid-template-columns:1fr}.trust span{border-right:0;border-bottom:1px solid var(--line);padding:15px}.quick-links{padding:22px 24px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.quick-links p{grid-column:1/-1}.gold-section,.emergency,.replacements,.upgrade{padding:76px 24px;grid-template-columns:1fr;gap:38px}.rate-cards{gap:6px}.rate-cards article{padding:13px 5px}.rate-cards strong{font-size:30px}.facts article{grid-template-columns:100px 1fr}.lock-list article{grid-template-columns:1fr auto;gap:10px}.lock-list svg{grid-column:1/-1;width:185px}.or-bar{padding:23px 24px}.upgrade-cards{padding:55px 24px 76px;grid-template-columns:1fr}.contact{display:block;padding:75px 24px}.contact h2{font-size:49px}.contact>div:last-child{margin-top:30px}.qr{width:100%}footer{padding:28px 24px;grid-template-columns:1fr;gap:18px}}
.lock-list .leaflet-lock{width:200px;height:80px;object-fit:contain;object-position:center}
.lock-list .nightlatch-icon{width:111px;height:76px;margin-left:46px;object-fit:fill}
@media(max-width:900px){.lock-list .leaflet-lock{grid-column:1/-1;width:185px;height:80px}}
@media(max-width:900px){.lock-list .nightlatch-icon{width:111px;height:76px;margin-left:38px;object-fit:fill}}
@media(max-width:900px){.qr{display:none}}
.brand{letter-spacing:-.045em}.brand strong{white-space:nowrap}.brand strong span{display:inline-block;margin-left:3px;letter-spacing:-.02em}
:root{--gold:#c69334;--gold-light:#dbb15a}.gold-section{background:linear-gradient(135deg,#b37c22,#d1a24d 52%,#aa741c);border-color:#8c611e}.lock-list .leaflet-lock:not(.nightlatch-icon){filter:brightness(1.45) contrast(1.2)}.arrow-icon{display:inline-block;width:14px;height:14px;position:relative;vertical-align:-2px;flex:0 0 14px}.arrow-icon:before{content:"";position:absolute;right:1px;top:1px;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor}.arrow-icon:after{content:"";position:absolute;right:1px;top:8px;width:11px;height:2px;background:currentColor;transform:rotate(-45deg);transform-origin:right center}.whatsapp .arrow-icon{margin-left:6px}
:root{--gold:#c69334;--gold-light:#dbb15a}.gold-section{background:linear-gradient(135deg,#b37c22,#d1a24d 52%,#aa741c);border-color:#8c611e}.lock-list .leaflet-lock:not(.nightlatch-icon){filter:brightness(1.45) contrast(1.2)}.arrow-icon{display:inline-block;width:14px;height:14px;position:relative;vertical-align:-2px;flex:0 0 14px}.arrow-icon:before{content:"";position:absolute;right:1px;top:1px;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor}.arrow-icon:after{content:"";position:absolute;right:1px;top:8px;width:11px;height:2px;background:currentColor;transform:rotate(-45deg);transform-origin:right center}.whatsapp .arrow-icon{margin-left:6px}.contact .button.whatsapp{display:inline-flex;margin-top:14px;color:#fff}
:root{--gold:#c69334;--gold-light:#dbb15a}.gold-section{background:linear-gradient(135deg,#b37c22,#d1a24d 52%,#aa741c);border-color:#8c611e}.lock-list .leaflet-lock:not(.nightlatch-icon){filter:brightness(1.45) contrast(1.2)}.arrow-icon{display:inline-block;width:14px;height:14px;position:relative;vertical-align:-2px;flex:0 0 14px}.arrow-icon:before{content:"";position:absolute;right:1px;top:1px;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor}.arrow-icon:after{content:"";position:absolute;right:1px;top:8px;width:11px;height:2px;background:currentColor;transform:rotate(-45deg);transform-origin:right center}.whatsapp .arrow-icon{margin-left:6px}.contact .button.whatsapp{display:inline-flex;margin-top:14px;color:#fff}svg.arrow-icon{width:15px;height:15px;position:static;vertical-align:middle;flex:0 0 15px}svg.arrow-icon:before,svg.arrow-icon:after{display:none}svg.arrow-icon path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
:root{--gold:#c69334;--gold-light:#dbb15a}.gold-section{background:linear-gradient(135deg,#b37c22,#d1a24d 52%,#aa741c);border-color:#8c611e}.lock-list .leaflet-lock:not(.nightlatch-icon){filter:brightness(1.45) contrast(1.2)}.arrow-icon{display:inline-block;width:14px;height:14px;position:relative;vertical-align:-2px;flex:0 0 14px}.arrow-icon:before{content:"";position:absolute;right:1px;top:1px;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor}.arrow-icon:after{content:"";position:absolute;right:1px;top:8px;width:11px;height:2px;background:currentColor;transform:rotate(-45deg);transform-origin:right center}.whatsapp .arrow-icon{margin-left:6px}.contact .button.whatsapp{display:inline-flex;margin:0 0 0 12px;color:#fff}svg.arrow-icon{width:15px;height:15px;position:static;vertical-align:middle;flex:0 0 15px}svg.arrow-icon:before,svg.arrow-icon:after{display:none}svg.arrow-icon path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media(max-width:900px){.contact .button.whatsapp{display:flex;width:max-content;margin:12px 0 0}}
:root{--gold:#d1a24d;--gold-light:#e0b963}.gold-section{background:#d1a24d;border-color:#9c6e1f}.hero-logo img{filter:contrast(1.12) brightness(1.03)}.site-header .brand img{filter:contrast(1.06) brightness(1.06)}.source-strip .arrow-icon{width:12px;height:12px;margin-left:3px;vertical-align:-1px}
:root{--gold:#d1a24d;--gold-light:#e0b963}.gold-section{background:#d1a24d;border-color:#9c6e1f}.hero-logo{background:var(--bg)}.hero-logo img{filter:contrast(1.12) brightness(1.03)}.site-header .brand img{filter:contrast(1.06) brightness(1.06)}.source-strip .arrow-icon{width:12px;height:12px;margin-left:3px;vertical-align:-1px}
:root{--gold:#d1a24d;--gold-light:#e0b963}.gold-section{background:#d1a24d;border-color:#9c6e1f}.hero-logo{background:var(--bg)}.hero-logo img,.site-header .brand img{filter:none}.source-strip .arrow-icon{width:12px;height:12px;margin-left:3px;vertical-align:-1px}
.rates .care-note{margin:14px 0 0;padding:16px 18px;border-left:3px solid #f4f2ed;background:#12110f;color:var(--muted);font-size:14px;font-weight:400;line-height:1.5}
.weekend-rate{margin-top:12px;min-height:74px;padding:13px 18px;border:1px solid var(--gold);background:#000;display:grid;grid-template-columns:32px minmax(0,1fr) 32px;gap:14px;align-items:center;text-align:center}.weekend-rate>svg{width:32px;height:32px;fill:none;stroke:var(--gold-light);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.weekend-day{fill:var(--gold-light);stroke:none;font:800 7px "DM Sans",sans-serif;letter-spacing:.04em;text-anchor:middle}.weekend-rate strong{display:block;color:var(--white);font:800 19px/1.1 Manrope,sans-serif;letter-spacing:.055em}.weekend-rate strong span{color:var(--gold-light);margin-left:5px;white-space:nowrap}.weekend-rate small{display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.3}@media(max-width:900px){.weekend-rate{min-height:68px;padding:12px 10px;grid-template-columns:28px minmax(0,1fr) 28px;gap:8px}.weekend-rate>svg{width:28px;height:28px}.weekend-rate strong{font-size:16px;letter-spacing:.035em}.weekend-rate small{font-size:11px}.weekend-day{font-size:6.8px}}
.brand img,.hero-logo img{object-fit:contain;background:transparent}.weekend-rate{background:transparent}.price-table>.weekend-rate{margin-top:0;min-height:66px;border:0;border-left:2px solid var(--gold);border-bottom:1px solid var(--line)}
.rates .weekend-rate strong{font:700 20px/1.1 Manrope,sans-serif;letter-spacing:normal}.price-table .weekend-price span{font-weight:800}.price-table .weekend-price b{white-space:nowrap;margin-left:18px}
.rates .weekend-rate strong span{font:800 20px/1 Manrope,sans-serif;letter-spacing:-.08em}
.rates .weekend-rate{border-color:#6d531e}.weekend-rate .weekend-marks{fill:none;stroke:var(--gold-light);stroke-width:1.5;stroke-linecap:round}.price-table .night-price{border-bottom:1px solid var(--line)}.price-table .weekend-price{position:relative;margin-top:0;border-top:0}
.rates .weekend-inline{display:flex;align-items:baseline;justify-content:center;gap:18px;white-space:nowrap}.rates .weekend-inline strong{color:var(--white);font:700 20px/1.1 Manrope,sans-serif;letter-spacing:normal}.rates .weekend-inline small{margin:0;color:var(--muted);font:400 12px/1.2 "DM Sans",sans-serif}.rates .weekend-inline b{color:var(--gold-light);font:800 20px/1 Manrope,sans-serif;letter-spacing:-.08em}@media(max-width:900px){.rates .weekend-inline{gap:8px}.rates .weekend-inline strong{font-size:20px}.rates .weekend-inline small{font-size:12px}}
.rates .weekend-rate{display:flex;justify-content:center}.rates .weekend-rate>svg:last-child{display:none}
@media(max-width:900px){.rates .weekend-rate{padding:13px 18px;gap:14px}.rates .weekend-inline{gap:18px}}
@media(max-width:1100px){.emergency h2{font-size:0;line-height:0}.emergency h2>*{display:none}.emergency h2::before,.emergency h2::after{display:block;white-space:pre;font:800 clamp(48px,6vw,86px)/.96 Manrope,sans-serif;letter-spacing:-.08em}.emergency h2::before{content:"Get back\A in,";color:var(--white)}.emergency h2::after{content:"It’s as\A simple as\A that.";color:var(--gold-light)}}
.rates-priority{margin:26px 0 0;padding:0 2px;color:var(--gold-light);font-size:16px;line-height:1.5}.replacement-intro{max-width:420px!important;line-height:1.5}.replacement-intro span{display:block}.replacement-intro span+span{margin-top:8px}.price-table .service-name{display:grid;gap:3px}.price-table .service-name small{color:var(--muted);font-size:12px;font-weight:400}

/* Discreet, accessible privacy information. */
footer{grid-template-columns:1.2fr 1fr 1fr auto}
.privacy-open{appearance:none;border:0;background:transparent;padding:8px 0;color:var(--gold-light);font:700 13px "DM Sans",sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.privacy-open:hover,.privacy-open:focus-visible{color:var(--white)}
.privacy-modal{width:min(700px,calc(100% - 40px));max-height:min(760px,calc(100dvh - 48px));margin:auto;padding:0;border:1px solid #6d531e;border-left:7px solid var(--gold);border-radius:4px;background:var(--panel);color:var(--white);box-shadow:0 28px 90px #000c;overflow:auto}
.privacy-modal::backdrop{background:#000b;backdrop-filter:blur(2px)}
.privacy-modal-inner{position:relative;padding:42px 48px 44px}
.privacy-close{position:absolute;top:19px;right:20px;width:38px;height:38px;border:0;background:transparent;color:var(--muted);font:400 28px/1 "DM Sans",sans-serif;cursor:pointer}
.privacy-close:hover,.privacy-close:focus-visible{color:var(--white)}
.privacy-modal h2{margin:0;font:800 clamp(35px,5vw,49px)/1 Manrope,sans-serif;letter-spacing:-.055em}
.privacy-modal .eyebrow{margin-right:52px}
.privacy-lead{margin:14px 0 26px;color:var(--gold-light);font:700 23px/1.25 Manrope,sans-serif}
.privacy-copy{padding-top:23px;border-top:1px solid var(--line)}
.privacy-copy p{margin:0 0 17px;color:#d4d0c7;font-size:15px;line-height:1.65}
.privacy-copy a{color:var(--gold-light);font-weight:700}
.privacy-contact{margin:16px 0 0;color:var(--muted);font-size:13px}.privacy-contact a{color:inherit;text-decoration:none}.privacy-contact a:hover,.privacy-contact a:focus-visible{color:var(--white);text-decoration:underline}
.privacy-details{margin-top:17px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.privacy-details summary{padding:15px 2px;color:var(--gold-light);font:700 13px Manrope,sans-serif;cursor:pointer;list-style-position:inside}.privacy-details[open] summary{border-bottom:1px solid var(--line)}.privacy-details>div{padding:17px 2px 18px}.privacy-details p{margin:0 0 12px;color:#d4d0c7;font-size:13px;line-height:1.55}.privacy-details strong{color:var(--white)}.privacy-ico{display:inline-block;margin-top:2px;color:var(--gold-light);font-size:12px;font-weight:700;text-underline-offset:3px}
.privacy-tagline{margin:26px 0 0;padding:18px 21px;background:var(--gold);color:#080808;font:800 16px/1.45 Manrope,sans-serif}
body.privacy-opened{overflow:hidden}
@media(max-width:900px){footer{grid-template-columns:1fr}.privacy-open{width:max-content}}
@media(max-width:700px){.privacy-modal{width:100%;max-width:none;max-height:82dvh;margin:auto 0 0;border-width:1px 0 0;border-left:0;border-top:5px solid var(--gold);border-radius:12px 12px 0 0}.privacy-modal-inner{padding:31px 24px max(30px,env(safe-area-inset-bottom))}.privacy-modal h2{font-size:36px}.privacy-lead{font-size:20px}.privacy-copy p{font-size:14px}.privacy-tagline{font-size:15px}.privacy-close{top:13px;right:13px}.privacy-close:focus-visible{outline:none;color:var(--white)}}
.hero-copy>h1+p:not(.eyebrow){margin-top:22px}.gold-section h2+p,.replacements h2+p,.contact h2+p{margin-top:22px}.emergency h2+ul{margin-top:22px}
.about h2+p{margin-bottom:0}.about h2+p+.no-from{margin-top:22px}
@media(max-width:900px){.hero-copy>h1+p br{display:none}}
/* Mobile only: place the emergency reassurance line within the existing space before the next section without changing section spacing. */
@media(max-width:900px){.rates .rates-priority{transform:none;margin-bottom:0}}


/* v194: grouped Good / Better / Best upgrade presentation */
.upgrade-options{padding:48px 12vw 108px;border-bottom:1px solid var(--line)}
.upgrade-lock-group{max-width:1180px;margin:0 auto}
.upgrade-lock-group+.upgrade-lock-group{margin-top:58px}
.upgrade-lock-marker{width:270px;height:108px;margin:0 auto 26px;display:flex;align-items:center;justify-content:center;position:relative}
.upgrade-lock-marker:after{content:"";position:absolute;left:50%;bottom:0;width:82px;height:1px;background:var(--gold-light);transform:translateX(-50%)}
.upgrade-lock-marker img{width:220px;height:88px;object-fit:contain;filter:brightness(1.5) contrast(1.22)}
.upgrade-lock-marker.rim-marker img{width:122px;height:82px;object-fit:fill;filter:none}
.upgrade-options .upgrade-cards{padding:0;border-bottom:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.upgrade-options .upgrade-cards article{position:relative;min-height:240px}
.upgrade-options .upgrade-cards article>p{margin:0;color:var(--muted);font:800 10px/1 "DM Sans",sans-serif;letter-spacing:.11em}
.upgrade-options .upgrade-cards span b,.upgrade-options .upgrade-cards .maximum-title{color:var(--gold-light)}
.upgrade-options .upgrade-cards span .feature-carry{display:inline;color:var(--gold-light);font-size:inherit;font-weight:800}
.popular-card{border-color:var(--gold-light)!important}
.popular-badge{position:absolute;top:18px;right:18px;padding:7px 10px 6px;background:var(--gold-light);color:#080706;font:800 9px/1 "DM Sans",sans-serif;letter-spacing:.11em;white-space:nowrap}
.popular-card>p{padding-right:108px}
@media(max-width:900px){
  .upgrade-options{padding:42px 24px 76px}
  .upgrade-lock-group+.upgrade-lock-group{margin-top:50px}
  .upgrade-lock-marker{width:230px;height:100px;margin-bottom:25px}
  .upgrade-lock-marker img{width:195px;height:82px}
  .upgrade-lock-marker.rim-marker img{width:112px;height:76px}
  .upgrade-options .upgrade-cards{grid-template-columns:1fr;gap:24px}
  .upgrade-options .upgrade-cards article{min-height:0}
  .popular-badge{position:static;display:inline-block;align-self:flex-start;margin:0 0 15px;padding:7px 10px 6px}
  .popular-card>p{padding-right:0}
}


/* Security-upgrade anchor offset for fixed header */
#security-upgrades{scroll-margin-top:88px}
@media(max-width:900px){#security-upgrades{scroll-margin-top:72px}}

/* Emphasis for additional-door percentage */
.additional-door-percent{color:var(--gold-light);font-size:inherit}
/* v207: keep the rim/nightlatch illustration marker identical to the Euro marker and MOST POPULAR border */
.upgrade-lock-marker.rim-marker:after{width:82px;height:1px;background:var(--gold-light)}

/* v211: footer legal links — horizontal on desktop, neatly stacked on mobile.
   Terms intentionally reuses the complete privacy modal system so its desktop/mobile
   sizing, bottom-sheet behaviour, close control, backdrop, typography and scrolling match. */
.footer-legal{display:flex;flex-direction:row;align-items:center;gap:16px;white-space:nowrap}
.footer-legal button{appearance:none;border:0;background:transparent;padding:4px 0;font:700 13px "DM Sans",sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.footer-legal .terms-open{color:var(--white)}
.footer-legal .privacy-open{color:var(--gold-light)}
.footer-legal button:hover,.footer-legal button:focus-visible{color:var(--white)}
.terms-copy strong{color:var(--white)}
body.terms-opened{overflow:hidden}
@media(max-width:900px){.footer-legal{width:max-content;flex-direction:column;align-items:flex-start;gap:1px;white-space:normal}}


/* v213: Vehicle Entry is a standalone service; divider separates it from the core locksmith navigation. */
.nav-divider{width:1px;height:20px;background:var(--line);margin:0 4px;flex:0 0 1px}
.vehicle-hero{min-height:430px;padding:88px 12vw 72px;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:7vw;border-bottom:1px solid var(--line)}
.vehicle-hero h1{margin:0;font:800 clamp(48px,6vw,80px)/.95 Manrope,sans-serif;letter-spacing:-.08em}.vehicle-hero h1 span{color:var(--gold-light)}.vehicle-hero-copy>p:last-child{max-width:600px;margin-top:24px;color:var(--muted);font-size:18px}.vehicle-hero-icon{justify-self:end;width:min(250px,28vw);aspect-ratio:1;border:1px solid var(--line);display:grid;place-items:center}.vehicle-hero-icon svg{width:62%;fill:none;stroke:var(--gold-light);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.vehicle-rates{border-bottom:1px solid var(--line)}
/* Spread every footer item across the row instead of bunching the legal links together. */
footer{grid-template-columns:1.25fr 1fr 1fr auto auto;column-gap:clamp(28px,4vw,72px)}.footer-legal{display:contents}.footer-legal button{white-space:nowrap}
/* Keep Privacy exactly as before; only Terms receives the white-frame/yellow-title treatment. */
.terms-modal{border-color:var(--white);border-left-color:var(--white)}
.terms-modal h2{color:var(--gold-light)}
.terms-modal .privacy-tagline{background:var(--white);color:#080808}
.terms-copy strong{color:var(--gold-light)}
@media(max-width:900px){nav .nav-divider{width:100%;height:1px;margin:6px 0;background:var(--line)}.vehicle-hero{min-height:0;padding:76px 24px 64px;grid-template-columns:1fr;gap:34px}.vehicle-hero-icon{justify-self:start;width:150px}footer{grid-template-columns:1fr;gap:18px}.footer-legal{display:flex;width:max-content;flex-direction:column;align-items:flex-start;gap:14px}.footer-legal button{padding:0}}
@media(max-width:700px){.terms-modal{border-top-color:var(--white)}}


/* v214: Prices and Vehicle Entry are both standalone destinations, separated cleanly from core sections and from each other. */
nav .prices-link{padding:0;border-left:0;border-right:0}
.standalone-nav{padding:0 2px}
.quick-links .standalone-quick{color:var(--gold-light)}
@media(max-width:900px){.quick-links .standalone-quick{color:var(--gold-light)}}

/* v215: standalone page navigation emphasis */
@media(min-width:901px){nav .standalone-nav{color:var(--gold-light)}}

/* v216: preserve v209 desktop nav spacing while keeping standalone page dividers. */
@media(min-width:901px){
  nav .prices-link{padding:0 19px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
  nav .vehicle-nav{padding:0 19px 0 0;border-right:1px solid var(--line)}
}
/* Give the About heading a little extra ink room above without moving or resizing it. */
.about h2{padding-top:6px;margin-top:-6px;overflow:visible}

/* v217: Vehicle Entry continues the Emergency Entry visual language without a separate hero. */
.vehicle-rates{border-top:0}
.vehicle-rates .vehicle-icon svg{width:39px;stroke-width:2.5}
@media(max-width:1100px){
  .vehicle-rates h2{font:800 clamp(48px,6vw,86px)/.96 Manrope,sans-serif;letter-spacing:-.08em}
  .vehicle-rates h2>*{display:inline}
  .vehicle-rates h2::before,.vehicle-rates h2::after{content:none;display:none}
}

.vehicle-rates .care-note b{color:var(--white);font-weight:800}.vehicle-vat-note{margin:14px 0 0;color:var(--muted);font-size:14px}


/* v219: compact vehicle intro and vehicle-entry refinements */
.vehicle-intro{padding:58px 12vw 52px;border-bottom:1px solid var(--line);background:#0b0b0a}
.vehicle-intro h1{margin:0;max-width:900px;font:800 clamp(38px,4.6vw,64px)/.98 Manrope,sans-serif;letter-spacing:-.07em}
.vehicle-intro>p:last-child{max-width:690px;margin:20px 0 0;color:var(--muted);font-size:17px}
.vehicle-rates h2{font:800 clamp(48px,6vw,86px)/.96 Manrope,sans-serif;letter-spacing:-.08em}
.vehicle-rates h2 .vehicle-white{color:var(--white)}
.vehicle-rates .care-note b{color:var(--gold-light);font-weight:800}
.vehicle-vat-note{margin:14px 0 0;padding:16px 18px;border-left:3px solid var(--white);background:#12110f;color:var(--muted);font-size:14px;line-height:1.5}
.vehicle-rates .vehicle-icon svg{width:38px;stroke-width:2.35}
@media(max-width:1100px){
  .vehicle-rates h2{font-size:clamp(48px,6vw,86px);line-height:.96}
  .vehicle-rates h2>*{display:inline}
  .vehicle-rates h2::before,.vehicle-rates h2::after{content:none!important;display:none!important}
}
@media(max-width:900px){
  .vehicle-intro{padding:48px 24px 44px}
  .vehicle-intro h1{font-size:clamp(40px,11vw,58px)}
  .vehicle-intro>p:last-child{font-size:16px}
}
\n\n/* v238: footer — keep Lock717 and Privacy as the outer anchors, with the three items between them evenly spaced. */\n@media(min-width:901px){\n  footer{grid-template-columns:auto 1fr 1fr 1fr auto;column-gap:0}\n  footer>.brand{justify-self:start}\n  footer>p{justify-self:center;text-align:center}\n  footer>a:not(.brand){justify-self:center;text-align:center}\n  footer>.footer-legal{display:contents}\n  footer>.footer-legal .terms-open{justify-self:center}\n  footer>.footer-legal .privacy-open{justify-self:end}\n}\n@media(max-width:900px){\n  footer{display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:34px 32px}\n  footer>.brand{margin-bottom:22px}\n  footer>p,footer>a:not(.brand),footer>.footer-legal .terms-open{margin-bottom:18px}\n  footer>.footer-legal{display:contents}\n  footer>.footer-legal button{width:max-content}\n  footer>.footer-legal .privacy-open{margin-top:0}\n}\n
/* Terms header hierarchy */
.terms-modal .eyebrow,.terms-modal .privacy-lead{color:var(--white)}

/* v246: keep standalone Prices and Car Entry links permanently gold in the mobile menu. */
@media(max-width:900px){
  nav .standalone-nav{color:var(--gold-light)}
}

/* v249: mobile nav matches desktop hierarchy — no active marker; standalone pages stay gold with subtle full-width dividers. */
@media(max-width:900px){
  nav .standalone-nav{
    color:var(--gold-light);
    position:relative;
    margin-top:8px;
    padding-top:14px;
  }
  nav .standalone-nav::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:1px;
    background:rgba(255,255,255,.24);
  }
}

/* v253: mobile dropdown width and spacing refinement.
   Keep the panel compact while preserving the original 21px nav rhythm.
   Standalone dividers sit in the existing gap instead of adding extra space. */
@media(max-width:900px){
  nav{
    left:auto;
    right:0;
    width:min(78vw,320px);
  }
  nav .standalone-nav{
    margin-top:0;
    padding-top:0;
  }
  nav .standalone-nav::after{
    top:-11px;
  }
}

/* v254: slimmer mobile dropdown, positioned fully below the fixed header. */
@media(max-width:900px){
  nav{
    top:72px;
    left:auto;
    right:12px;
    width:50vw;min-width:195px;
    padding:18px 20px;
    border-left:1px solid var(--line);
  }
}

/* v258: mobile dropdown refinement — flush right and slightly more vertical breathing room. */
@media(max-width:900px){
  nav{
    right:0;
    width:50vw;
    min-width:195px;
    gap:25px;
  }
  nav .standalone-nav::after{
    top:-13px;
  }
}

/* v259: preserve separate f/i characters in the About heading. */
.about .no-fi-ligature{font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0}


/* v260: quick-link arrows, mobile intro alignment and section anchor starts. */
.quick-links .quick-arrow-right{
  display:inline-block;
  transform:rotate(-90deg);
  transform-origin:center;
}
#about,#emergency,#upgrade,#replacements{
  scroll-margin-top:88px;
}
@media(max-width:900px){
  .quick-links>p{
    text-align:center;
    justify-self:center;
    width:100%;
  }
  #about,#emergency,#upgrade,#replacements{
    scroll-margin-top:72px;
  }
}

/* v261: Car Entry scope emphasis. */
.car-scope-highlight{
  color:var(--gold-light);
  font-weight:800;
}

/* v263: About Me Prices link uses its existing arrow, rotated to point right. */
.about-price-arrow{display:inline-block;transform:rotate(90deg);transform-origin:center}

/* v264: mobile menu presentation only — same size/position/content, clearer separation while open. */
@media(max-width:900px){
  .menu-backdrop{
    position:fixed;
    z-index:7;
    top:72px;
    left:0;
    right:0;
    bottom:0;
    background:rgba(0,0,0,.34);
    -webkit-backdrop-filter:blur(3px);
    backdrop-filter:blur(3px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease;
  }
  .site-header.open + .menu-backdrop{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  nav{
    display:flex;
    background:rgba(10,10,9,.94);
    -webkit-backdrop-filter:blur(14px) saturate(115%);
    backdrop-filter:blur(14px) saturate(115%);
    border-left:1px solid rgba(255,255,255,.24);
    border-bottom:1px solid rgba(255,255,255,.24);
    border-radius:0;
    box-shadow:-2px 3px 10px rgba(255,255,255,.05);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateX(10px);
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
  }
  .site-header.open nav{
    display:flex;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(0);
  }

  .menu i{transition:transform .18s ease,opacity .18s ease}
  .site-header.open .menu i:first-child{transform:translateY(3.5px) rotate(45deg)}
  .site-header.open .menu i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
}

/* v280: mobile menu taps keep each link's normal colour; preserve all other tap/menu effects. */
@media(max-width:900px){
  nav a:not(.standalone-nav):hover,
  nav a:not(.standalone-nav):active,
  nav a:not(.standalone-nav):focus{
    color:#d4d0c7;
  }
}

/* v296: keep the f and r separate in the Car Entry hero word “front”. */
.vehicle-hero-line .no-fr-ligature{font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0}

/* v298: separate the f/r in the Car Entry hero word “front” without altering the rest of the title. */
.vehicle-hero-line .no-fr-ligature .front-f{display:inline-block;margin-right:.025em}

/* v299: tiny local separation for the r/y pair in the large Car Entry hero; glyphs remain unchanged. */
.vehicle-page-hero .entry-r{display:inline-block;margin-right:.025em}

/* v300: give the r/y pair in “Entry” enough optical clearance to match the other separated letter pairs in the hero. */
.vehicle-page-hero .entry-r{margin-right:.055em}

/* v303: on mobile, keep the footer home-link hit area to the visible logo + LOCK717 only. */
@media(max-width:900px){
  footer>.brand{
    width:max-content;
    max-width:100%;
    align-self:flex-start;
    flex:none;
  }
}

/* v306: force the Terms & Conditions eyebrow to true white. */
.terms-modal .terms-eyebrow{color:#fff!important}

/* v311: source links only underline while actively clicked/tapped. */
.source-strip a,
.privacy-ico{
  text-decoration:none;
}
.source-strip a:focus,
.source-strip a:focus-visible,
.privacy-ico:focus,
.privacy-ico:focus-visible{
  text-decoration:none;
}
.source-strip a:active,
.privacy-ico:active{
  text-decoration:underline;
  text-underline-offset:3px;
}
@media (hover:hover) and (pointer:fine){
  .source-strip a:hover,
  .privacy-ico:hover{
    text-decoration:underline;
    text-underline-offset:3px;
  }
}

/* v323: centre external/source arrows vertically beside their text, preserving v313 sizing. */
.source-strip .arrow-icon,
.privacy-ico .arrow-icon{
  vertical-align:middle;
}

/* v324: match ICO text-to-arrow spacing to Why Upgrade source links. */
.privacy-ico .arrow-icon{margin-left:3px}

/* v328: two-line Bank Holiday label while preserving rate-card alignment. */
.rate-cards .bank-holiday-label{line-height:1.15}

/* v329: Evening and Night are the two primary rate cards; Bank Holiday returns to the full-width add-on bar. */
.rates .two-rate-cards{grid-template-columns:repeat(2,1fr)}

/* v330: lock the Evening/Night card content to identical rows so icon, title, time and price line up exactly. */
.rates .two-rate-cards article{
  grid-template-rows:34px 30px 18px auto;
  align-items:center;
}
.rates .two-rate-cards article>svg{
  align-self:center;
}
.rates .two-rate-cards article>b,
.rates .two-rate-cards article>span,
.rates .two-rate-cards article>strong{
  align-self:center;
}
.rates .two-rate-cards article>strong{
  margin-top:18px;
}
.rates .rate-cards article{
  grid-template-rows:34px 30px 18px auto;
  align-items:center;
}
.rates .rate-cards article>svg,
.rates .rate-cards article>b,
.rates .rate-cards article>span,
.rates .rate-cards article>strong{
  align-self:center;
}

/* NHS and emergency-services thank-you, positioned with the relevant entry rates. */
.service-thanks{
  margin:14px 0 0;
  padding:18px 20px;
  border:1px solid #6d531e;
  background:transparent;
}
.service-thanks>span{
  display:block;
  color:var(--gold-light);
  font:800 11px/1.2 Manrope,sans-serif;
  letter-spacing:.1em;
}
.service-thanks>strong{
  display:block;
  margin-top:7px;
  color:var(--white);
  font:800 21px/1.2 Manrope,sans-serif;
}
.service-thanks>p{
  margin:7px 0 0;
  color:#d6d1c7;
  font-size:14px;
  line-height:1.5;
}
.service-thanks>small{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.pricing-notes>.service-thanks{margin:0}

/* v352: compensate for the moon artwork's higher visual centre. */
.rates .two-rate-cards article:nth-child(2)>svg{transform:translateY(4px)}

/* v351: distribute all five footer items evenly from Lock717 to Privacy. */
@media(min-width:901px){
  footer{grid-template-columns:auto repeat(3,minmax(0,1fr)) auto;column-gap:0}
  footer>.brand{justify-self:start}
  footer>p,footer>a:not(.brand){justify-self:center;text-align:center}
  footer>.footer-legal{display:contents}
  footer>.footer-legal .terms-open{justify-self:center}
  footer>.footer-legal .privacy-open{justify-self:end}
}
@media(max-width:900px){
  footer{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:34px 32px}
  footer>.brand,footer>p,footer>a:not(.brand),footer>.footer-legal .terms-open{margin:0}
  footer>.footer-legal{display:contents}
  footer>.footer-legal button{width:max-content;margin:0;padding:0}
}

/* v355: exact equal free space between the five footer items. */
@media(min-width:901px){
  footer{display:flex;align-items:center;justify-content:space-between;gap:0}
  footer>.footer-legal{display:contents}
  footer>p,footer>a:not(.brand),footer>.footer-legal button{margin:0}
}
@media(max-width:900px){
  footer{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
  footer>.footer-legal{display:contents}
  footer>.brand,footer>p,footer>a:not(.brand),footer>.footer-legal button{margin:0}
}
