:root{--red:#c81026;--ink:#202126;--muted:#61646c;--paper:#f5f6f7;--line:#dedfe3;--gutter:max(6%,calc((100vw - 1240px)/2))}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:white;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.75}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:5px}.skip{position:fixed;top:-100px;background:white;color:#111;padding:12px;z-index:99}.skip:focus{top:10px}.header{min-height:90px;padding:14px var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:25px;background:#000;color:white;border-bottom:1px solid #292929}.brand{display:block;flex-shrink:0}.logo-crop{display:block;width:148px;height:48px;overflow:hidden;position:relative}.logo-crop img{position:absolute;width:230px;height:auto;max-width:none;left:-42px;top:-116px}.header nav{display:flex;align-items:center;gap:30px;font-size:.875rem}.header nav>a{padding:10px 0;color:#dedee1}.header nav>a:hover{color:#fff;text-decoration:underline;text-underline-offset:7px}.header nav .nav-contact{padding:10px 18px;border:1px solid #595959;color:white}.nav-contact span{margin-left:22px}.menu-button{display:none}.hero{padding:0 var(--gutter);background:#f5f6f7}.hero-top{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:20px 0;color:var(--muted);font-size:.75rem;letter-spacing:.12em}.hero-content{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;padding:66px 0}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.14em;color:var(--red);margin:0 0 22px}.hero h1{font-size:clamp(3rem,5vw,4.8rem);letter-spacing:-.045em;line-height:1.13;font-weight:750;margin:0}.hero h1 span{display:block;font-size:.56em;letter-spacing:-.03em;font-weight:500;margin-top:10px;color:#43454c}.hero-desc{font-size:1.125rem;color:var(--muted);max-width:520px;margin:26px 0 30px}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px}.button{display:inline-flex;gap:25px;align-items:center;justify-content:space-between;padding:14px 20px;font-size:.875rem;font-weight:700;line-height:1.6;transition:background .2s}.red{background:var(--red);color:white}.red:hover{background:#a60a1d}.dark{background:var(--ink);color:white}.dark:hover{background:#3f4147}.text-link{font-size:.875rem;border-bottom:1px solid #9b9da4;padding:5px 0}.text-link span{margin-left:10px}.hero-art{background:#000;color:white;border-radius:2px;padding:25px 26px;min-width:0;box-shadow:0 18px 45px #20212612}.art-index{display:block;font-size:.75rem;color:#a9a9ae;letter-spacing:.12em}.hero-logo{position:relative;width:100%;aspect-ratio:1.8;overflow:hidden;margin:15px 0}.hero-logo img{position:absolute;width:145%;max-width:none;height:auto;left:-22.5%;top:50%;transform:translateY(-50%)}.art-bottom{display:flex;flex-direction:column;gap:9px;border-top:1px solid #353535;padding-top:19px}.art-bottom>span:first-child{font-size:1.0625rem;color:#eee}.brand-location{font-size:.75rem;color:#aaa;letter-spacing:.12em}.hero-bottom{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding:25px 0;gap:25px;color:var(--muted);font-size:.875rem}.hero-bottom>span{padding-left:24px;border-left:1px solid #d3d5d9}.hero-bottom>span:first-child{padding-left:0;border:0}.hero-bottom strong{font-size:1.125rem;display:block;color:var(--ink);font-weight:600;line-height:1.5;margin-bottom:2px}.section{padding:88px var(--gutter)}h2{font-size:clamp(2rem,3.1vw,2.875rem);font-weight:650;letter-spacing:-.035em;line-height:1.2;margin:0}h2 span{color:#70737b}.intro{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}.intro-copy>p{margin:0 0 20px;color:var(--muted)}.intro-copy>p:first-child{font-size:1.125rem;color:#34363d}.facts{display:flex;gap:55px;border-top:1px solid var(--line);margin-top:30px;padding-top:25px}.facts>div{display:flex;flex-direction:column}.facts strong{font-size:2.375rem;line-height:1.3;font-weight:600;letter-spacing:-.035em}.facts strong span{font-size:1.0625rem;font-weight:400;letter-spacing:0}.facts>div>span{font-size:.8125rem;color:var(--muted);margin-top:6px}.services{background:var(--paper);border-top:1px solid #e8e9eb;border-bottom:1px solid #e8e9eb}.section-head{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:38px}.section-head>p{max-width:315px;color:var(--muted);margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.service{background:white;padding:28px;display:flex;flex-direction:column;border:1px solid var(--line);border-top:3px solid var(--red);border-radius:2px}.service-top{display:flex;gap:15px;justify-content:space-between;align-items:center;margin-bottom:27px;font-size:.75rem;color:var(--muted)}.service-top>span:first-child{color:var(--red);font-weight:700}.service-tag{letter-spacing:.06em}.service h3{font-size:1.75rem;line-height:1.2;letter-spacing:-.03em;font-weight:600;margin:0 0 22px;min-height:68px}.service>p{color:var(--muted);margin:0 0 23px}.service ul{list-style:none;margin:0 0 25px;padding:0;font-size:.875rem}.service li{border-bottom:1px solid #ececef;padding:9px 0}.service>a{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.875rem;font-weight:600;color:var(--red)}.service>a:hover{text-decoration:underline;text-underline-offset:4px}.spaces{display:grid;grid-template-columns:.9fr 1.4fr;gap:72px;background:white}.space-heading>p:last-child{color:var(--muted);max-width:285px;margin-top:25px}.floors article{padding:25px 0;display:grid;grid-template-columns:42px 1fr auto;gap:22px;border-top:1px solid var(--line)}.floors article:last-child{border-bottom:1px solid var(--line)}.floor-number{font-size:1.5rem;font-weight:500;color:var(--red);line-height:1.5}.floors h3{font-size:1.125rem;font-weight:600;line-height:1.4;margin:0 0 8px}.floors p{font-size:1rem;color:var(--muted);margin:0}.floor-label{font-size:.75rem;color:#70737b;white-space:nowrap;margin-top:5px}.contact{background:#202126;color:white;display:grid;grid-template-columns:1.1fr 1fr;gap:95px}.contact .eyebrow{color:#ff8290}.contact h2 span{color:#b3b5bd}.contact-lead>p:not(.eyebrow){max-width:430px;color:#c1c3cb;margin:25px 0 28px}.contact .dark{background:white;color:#202126}.contact .dark:hover{background:#e3e4e8}.contact-details{align-self:center;min-width:0}.contact-details>a,.contact-details>div{position:relative;display:flex;flex-direction:column;padding:22px 35px 22px 0;border-bottom:1px solid #4a4c54}.contact-details>a:first-child{border-top:1px solid #4a4c54}.contact-details span:first-child{font-size:.75rem;letter-spacing:.13em;color:#bfc1c9;margin-bottom:6px}.contact-details strong{font-size:1.65rem;font-weight:500;line-height:1.5;overflow-wrap:anywhere}.contact-details .contact-arrow{position:absolute;right:0;top:35px;font-size:1.5rem;color:#bfc1c9}.contact-details p{font-size:.875rem;color:#bfc1c9;margin:7px 0 0}.contact-details a:hover strong{text-decoration:underline;text-underline-offset:5px}footer{padding:30px var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:30px;color:#686b74;font-size:.75rem}footer p{margin:0}.footer-name{font-size:1.25rem;color:var(--ink);font-weight:750}.footer-name span{display:inline;font-size:.875rem;letter-spacing:.025em;font-weight:400;margin-left:.4em}footer>a:last-child{font-size:.875rem;white-space:nowrap}
@media(max-width:1050px){.hero-content{gap:35px}.intro{gap:40px}.service{padding:22px}.spaces{gap:35px}.contact{gap:50px}.header nav{gap:20px}.floors article{grid-template-columns:35px 1fr;gap:18px}.floor-label{display:none}}
@media(max-width:760px){:root{--gutter:6%}.header{position:relative;z-index:10;min-height:80px;padding-top:12px;padding-bottom:12px}.menu-button{display:flex;gap:14px;color:white;background:transparent;border:1px solid #62626a;padding:9px 13px;font-size:.875rem}.header nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 6%;background:#000;border-top:1px solid #333;flex-direction:column;align-items:stretch;gap:6px}.header nav.open{display:flex}.header nav .nav-contact{margin-top:8px}.hero-top{font-size:.75rem;letter-spacing:.04em;flex-wrap:wrap;gap:3px 16px;padding:15px 0}.hero-content{grid-template-columns:1fr;gap:32px;padding:38px 0}.hero h1{font-size:3.125rem}.hero h1 span{font-size:.56em}.hero-desc{font-size:1rem;margin:22px 0}.eyebrow{margin-bottom:18px}.hero-art{padding:22px;max-width:500px;width:100%}.hero-logo{aspect-ratio:2.7;margin:16px auto}.art-bottom{flex-direction:row;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px}.art-bottom>span:first-child{font-size:.9375rem}.hero-bottom{gap:12px;padding:23px 0;font-size:.8125rem}.hero-bottom>span{padding-left:12px}.hero-bottom strong{font-size:1rem}.section{padding:55px var(--gutter)}h2{font-size:2rem}.intro,.spaces,.contact{grid-template-columns:1fr;gap:30px}.facts{gap:35px;justify-content:space-between}.facts strong{font-size:2.125rem}.section-head{display:block;margin-bottom:30px}.section-head>p{max-width:none;margin-top:20px}.service-grid{grid-template-columns:1fr;gap:18px}.service{padding:26px}.service h3{min-height:0;font-size:1.625rem}.service h3 br{display:none}.service h3 br::after{content:' '}.service-top{margin-bottom:20px}.service>p{margin-bottom:18px}.space-heading>p:last-child{max-width:none}.floors article{padding:22px 0}.contact-details strong{font-size:1.5rem}footer{flex-wrap:wrap;gap:20px}footer p{order:3;width:100%}.footer-name{margin-right:auto}}
@media(max-width:380px){.hero h1{font-size:2.7rem}.hero-bottom{grid-template-columns:1fr;gap:12px}.hero-bottom>span{border:0;padding-left:0}.hero-bottom strong{display:inline;margin-right:5px}.facts{flex-wrap:wrap}.actions{gap:16px}.brand-location{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Restrained brand sizing and text-only navigation. */
.brand{width:112px}.logo-crop{width:112px;height:38px}.logo-crop img{width:175px;left:-32px;top:-88px}.hero-logo{width:64%;max-width:245px;aspect-ratio:2.15;margin:44px auto}.hero-logo img{width:145%;left:-22.5%}.art-index{font-size:.75rem;letter-spacing:.08em}.footer-name{font-size:1.0625rem}.button{gap:0}.service>a{justify-content:flex-start}.contact-details>a,.contact-details>div{padding-right:0}
@media(max-width:760px){.hero-logo{max-width:190px;margin:28px auto}.hero-art{padding:22px}.art-bottom{flex-direction:column;align-items:flex-start}.menu-button{min-height:44px;min-width:65px;justify-content:center}.hero-content{gap:28px}}

/* H3 brand surfaces and restrained motion. */
:root{--red:#c81026;--ink:#202020;--muted:#616161;--paper:#f5f5f5;--line:#dedede;--ease:cubic-bezier(.22,.61,.36,1)}
body{background:#fff}.hero{background:linear-gradient(145deg,#fff 5%,#f6f6f6 60%,#f2eeee 100%)}
.hero-top{border-color:#dedede}.hero h1 span{color:#434343}.hero-art{position:relative;isolation:isolate;overflow:hidden;background:#000;border:1px solid #292929;box-shadow:0 18px 45px #00000012}
.hero-art::before{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 100% 0%,#c810262b,transparent 68%);animation:brand-light 2.4s var(--ease) both;pointer-events:none}
.hero-logo img{mix-blend-mode:screen}.hero-top,.hero-bottom{color:#616161}.hero-bottom>span{border-color:#d3d3d3}.hero-bottom strong{color:#202020}
.intro{background:linear-gradient(180deg,#f2eeee 0%,#fff 110px)}h2 span{color:#707070}.intro-copy>p:first-child{color:#343434}
.services{background:linear-gradient(180deg,#fff,#f5f5f5 100px,#f5f5f5 calc(100% - 80px),#fff);border-color:transparent}.spaces{background:#fff}
.contact{background:linear-gradient(155deg,#242424 0%,#171717 75%,#27080c 100%);border-top:3px solid #c81026}.contact .eyebrow{color:#fff}.contact h2 span{color:#b5b5b5}.contact-lead>p:not(.eyebrow){color:#c5c5c5}.contact-details>a,.contact-details>div{border-color:#4a4a4a}.contact-details span:first-child,.contact-details p{color:#c3c3c3}.contact .dark{color:#202020}.contact .dark:hover{background:#e5e5e5}
footer{background:linear-gradient(180deg,#f5f5f5,#fff 85px);color:#686868}
.button,.service,.hero-art,.header nav>a,.text-link,.service>a,.contact-details>a,.footer-name{transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),box-shadow .4s var(--ease),transform .4s var(--ease)}
.button{border-radius:3px}.red{background:linear-gradient(120deg,#c81026,#ad0c20)}.red:hover{background:linear-gradient(120deg,#b80d22,#93091b);box-shadow:0 7px 18px #c8102620}.service{border-radius:4px}.service:focus-within{border-color:#c81026;box-shadow:0 10px 28px #00000008}.header nav>a:hover{text-decoration:none;color:#fff}.header nav .nav-contact:hover{border-color:#c81026;background:#c81026}.text-link:hover{color:#c81026;border-color:#c81026}.contact-details>a:hover{color:white;background:#ffffff05}.contact-details a:hover strong{text-decoration:none}
@media(hover:hover) and (pointer:fine){.service:hover{transform:translateY(-5px);border-color:#c81026;box-shadow:0 14px 32px #0000000a}.button:hover{transform:translateY(-2px)}.hero-art:hover{box-shadow:0 22px 48px #0000001c}.text-link:hover{transform:translateX(2px)}}
.reveal-in{animation:section-enter .7s var(--ease) both;animation-delay:var(--reveal-delay,0ms)}
.hero-copy{animation:section-enter .75s var(--ease) both}.hero-art{animation:section-enter .9s var(--ease) both}
@keyframes section-enter{from{opacity:.3;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes brand-light{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.service:hover,.button:hover,.text-link:hover{transform:none}}

/* Continuous charcoal surfaces, with restrained H3 red accents. */
:root{color-scheme:dark;--ink:#f2f2f2;--muted:#bcbcbc;--paper:#202020;--line:#393939;--accent-text:#ff7888}
body{background:#151515;color:var(--ink)}
.hero{background:radial-gradient(ellipse at 90% 12%,#c8102626,transparent 55%),linear-gradient(180deg,#101010,#191919)}
.hero-top,.hero-bottom{color:#bcbcbc;border-color:#393939}.hero h1 span{color:#d5d5d5}.hero-bottom>span{border-color:#444}.hero-bottom strong{color:#f2f2f2}
.eyebrow{color:var(--accent-text)}.hero-art{border-color:#3c2b2d;box-shadow:0 18px 45px #00000040}.hero-art::before{background:radial-gradient(ellipse at 100% 0%,#c8102633,transparent 68%)}
.intro{background:linear-gradient(180deg,#191919,#212121)}h2 span{color:#b9b9b9}.intro-copy>p:first-child{color:#e1e1e1}.facts{border-color:#404040}
.services{background:linear-gradient(180deg,#212121,#1b1b1b 50%,#171717);border-color:transparent}.service{background:linear-gradient(145deg,#292929,#222);border-color:#414141;border-top-color:var(--red);box-shadow:0 8px 24px #0000001a}.service-top>span:first-child,.service>a{color:var(--accent-text)}.service li{border-color:#424242}.service:focus-within{border-color:#d63b4d;box-shadow:0 12px 30px #00000035}
.spaces{background:linear-gradient(180deg,#171717,#1c1c1c)}.floor-number{color:var(--accent-text)}.floor-label{color:#b8b8b8}.floors article,.floors article:last-child{border-color:#404040}
.contact{background:radial-gradient(ellipse at 95% 100%,#c810261a,transparent 65%),linear-gradient(180deg,#1c1c1c,#100c0d);border-top:1px solid #553037}.contact .eyebrow{color:var(--accent-text)}.contact .dark{background:linear-gradient(120deg,#c81026,#ad0c20);color:#fff}.contact .dark:hover{background:linear-gradient(120deg,#b80d22,#93091b)}
.text-link{color:#eee;border-color:#777}.text-link:hover{color:var(--accent-text);border-color:var(--accent-text)}.service>a:hover{color:#ffadba}
footer{background:#100c0d;color:#b6b6b6;border-top:1px solid #39272a}.footer-name{color:#f2f2f2}footer>a:last-child{color:#d5d5d5}
@media(hover:hover) and (pointer:fine){.service:hover{border-color:#b83a49;border-top-color:#c81026;box-shadow:0 16px 36px #00000040}.hero-art:hover{box-shadow:0 22px 48px #00000055}}

/* Authentic H3 exterior photograph from Canva. */
.hero-art.exterior{margin:0;padding:0;width:100%;max-width:460px;justify-self:end;position:relative;aspect-ratio:4/5;border:1px solid #493034;border-radius:4px;overflow:hidden;background:#181818}
.hero-art.exterior::before{display:none}.exterior-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 63%;transition:transform .8s var(--ease)}
.exterior figcaption{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;gap:3px;padding:55px 24px 23px;background:linear-gradient(transparent,#000000e8);color:#fff;line-height:1.5}.exterior figcaption span:first-child{font-size:1rem;font-weight:600}.exterior figcaption span:last-child{font-size:.8125rem;color:#ddd}
@media(hover:hover) and (pointer:fine){.exterior:hover .exterior-photo{transform:scale(1.025)}}
@media(max-width:760px){.hero-art.exterior{justify-self:start;max-width:100%;aspect-ratio:1/1}.exterior-photo{object-position:50% 67%}.exterior figcaption{padding:45px 20px 18px}}
@media(prefers-reduced-motion:reduce){.exterior:hover .exterior-photo{transform:none}}

/* Softer surfaces and scroll-triggered call-to-action motion. */
:root{--ease:cubic-bezier(.2,.65,.3,1)}
.hero{background:radial-gradient(ellipse at 90% 15%,#c810261d,transparent 62%),linear-gradient(180deg,#141414,#1d1d1d)}
.intro{background:linear-gradient(180deg,#1d1d1d,#232323)}.services{background:linear-gradient(180deg,#232323,#1d1d1d 70%,#1b1b1b)}.spaces{background:linear-gradient(180deg,#1b1b1b,#202020)}
.contact{background:radial-gradient(ellipse at 100% 100%,#c8102614,transparent 70%),linear-gradient(180deg,#202020,#141112);border-top-color:#ffffff0f}footer{background:#141112;border-top-color:#ffffff12}
.service{border-radius:18px;border:1px solid #ffffff17;border-top:2px solid #c8102699;background:linear-gradient(145deg,#2b2b2b,#242424);box-shadow:0 12px 35px #00000018}
.button{border-radius:12px;padding:15px 23px;box-shadow:0 5px 18px #00000018}.header nav .nav-contact,.menu-button{border-radius:10px}.hero-art.exterior{border-radius:22px;border-color:#ffffff17;box-shadow:0 18px 48px #0000002b}
.contact-details>a{border-radius:10px;padding-left:14px;padding-right:14px;margin-left:-14px;margin-right:-14px}.contact-details>div{padding-left:0}.floors article{border-color:#ffffff17}.hero-top,.hero-bottom,.facts{border-color:#ffffff17}
.service>a{min-height:44px;align-items:center;border-radius:8px}.button:active{transform:scale(.98)}.service>a:focus-visible{outline-offset:3px}
.reveal-in.button,.reveal-in.text-link,.service>a.reveal-in{animation:button-arrive .65s var(--ease) both;animation-delay:.12s}
@keyframes button-arrive{from{opacity:.4;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(hover:hover) and (pointer:fine){.service:hover{transform:translateY(-3px);border-color:#c8102680;box-shadow:0 18px 38px #00000028}.button:hover{transform:translateY(-2px);box-shadow:0 10px 24px #c8102624}.service>a:hover{background:#c8102610}}
@media(max-width:760px){.hero-art.exterior{border-radius:18px}.service{border-radius:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.button:active,.button:hover{transform:none}}

/* Landscape stock photography, composed around the training equipment. */
.hero-content{grid-template-columns:1fr 1.15fr;gap:48px}.hero-art.exterior{max-width:600px;aspect-ratio:4/3}.exterior-photo{object-position:50% 66%}
@media(max-width:760px){.hero-content{grid-template-columns:1fr;gap:30px}.hero-art.exterior{max-width:100%;aspect-ratio:4/3}.exterior-photo{object-position:50% 66%}}

/* Opening hours and social links. */
.opening-hours h3{margin:0 0 16px;font-size:1.125rem;font-weight:600}.opening-hours dl{margin:0;display:grid;gap:10px}.opening-hours dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.opening-hours dt{font-size:1rem;color:#c3c3c3}.opening-hours dd{margin:0;font-size:1rem;color:#fff;font-variant-numeric:tabular-nums}.social-links{display:flex;align-items:center;gap:18px;font-size:.875rem}.social-links a{padding:10px 0;transition:color .25s}.social-links a:hover{color:var(--accent-text)}.social-links a:focus-visible{outline-offset:4px}
@media(max-width:760px){.social-links{width:100%;order:2}footer>a:last-child{order:1}footer p{order:3}}

/* Clearly separated sections with soft H3-red seams. */
main>.section{position:relative;isolation:isolate}
main>.section::before{content:'';position:absolute;top:0;left:var(--gutter);right:var(--gutter);height:1px;background:linear-gradient(90deg,transparent,#ffffff24 20%,#c8102680 50%,#ffffff24 80%,transparent);pointer-events:none}
main>.section::after{content:'';position:absolute;top:0;left:0;right:0;height:64px;background:radial-gradient(ellipse at 50% 0%,#c810260a,transparent 72%);z-index:-1;pointer-events:none}
.intro{background:linear-gradient(180deg,#1d1d1d,#272727 100px,#272727 calc(100% - 70px),#202020)}
.services{background:linear-gradient(180deg,#202020,#191919 100px,#191919 calc(100% - 70px),#202020)}
.spaces{background:linear-gradient(180deg,#202020,#262626 100px,#262626 calc(100% - 70px),#202020)}
.contact{border-top:0;background:radial-gradient(ellipse at 100% 100%,#c8102614,transparent 70%),linear-gradient(180deg,#202020,#171717 100px,#141112)}
.social-links{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.social-links .social-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex:0 0 46px;padding:0;border:1px solid #ffffff24;border-radius:12px;background:#ffffff04;color:#e8e8e8;transition:color .25s,background-color .25s,border-color .25s,transform .25s}.social-icon svg{display:block}.social-links .social-icon:hover,.social-links .social-icon:focus-visible{color:#fff;background:#c81026;border-color:#c81026;transform:translateY(-2px)}.contact-details>.contact-social{padding:22px 0}.contact-social .social-links{margin:0}
@media(max-width:760px){main>.section::after{height:44px}.contact-social .social-links{width:auto}.social-links .social-icon{width:48px;height:48px;flex-basis:48px}}
@media(prefers-reduced-motion:reduce){.social-links .social-icon:hover,.social-links .social-icon:focus-visible{transform:none;transition:none}}

/* Corporate navigation: consistent spacing, soft hover and red underline. */
.header nav{gap:6px;padding:5px;border:1px solid #ffffff12;border-radius:14px;background:#ffffff03}
.header nav>a{position:relative;display:inline-flex;justify-content:center;align-items:center;min-height:46px;padding:11px 18px;border:1px solid transparent;border-radius:10px;font-size:.875rem;font-weight:500;letter-spacing:.01em;color:#d5d5d5;text-decoration:none;transition:color .25s var(--ease),background-color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}
.header nav>a::after{content:'';position:absolute;left:18px;right:18px;bottom:5px;height:2px;border-radius:2px;background:#e31b35;transform:scaleX(0);transform-origin:center;transition:transform .3s var(--ease)}
.header nav>a:hover,.header nav>a:focus-visible{color:#fff;background:#ffffff08;border-color:#ffffff10;text-decoration:none}
.header nav>a:hover::after,.header nav>a:focus-visible::after{transform:scaleX(1)}
.header nav .nav-contact{margin-left:8px;padding:11px 20px;border:1px solid #c8102680;background:#c8102617;color:#fff;border-radius:10px}
.header nav .nav-contact:hover,.header nav .nav-contact:focus-visible{background:#c810262d;border-color:#e31b35}
.header nav>a:active{transform:translateY(1px)}
@media(max-width:1000px) and (min-width:761px){.header nav>a{padding-left:13px;padding-right:13px}.header nav .nav-contact{margin-left:3px;padding-left:15px;padding-right:15px}}
@media(max-width:760px){.header nav{padding:16px 6% 20px;border:0;border-top:1px solid #ffffff12;border-bottom:1px solid #ffffff12;border-radius:0 0 16px 16px;background:#111;gap:7px;box-shadow:0 16px 25px #00000035}.header nav>a{justify-content:flex-start;padding:12px 16px;min-height:48px;border-radius:9px}.header nav>a::after{left:16px;right:auto;width:34px;transform-origin:left}.header nav .nav-contact{margin:4px 0 0;padding:12px 16px}}
@media(prefers-reduced-motion:reduce){.header nav>a,.header nav>a::after{transition:none}.header nav>a:active{transform:none}}

/* Interactive map contained within the existing contact column. */
.contact-details>.location{padding-bottom:26px;min-width:0}.location .map-frame{margin-top:20px;width:100%;height:270px;border-radius:16px;overflow:hidden;border:1px solid #ffffff24;background:#242424;isolation:isolate;color-scheme:light}.map-frame iframe{display:block;width:100%;height:100%;border:0}.location .map-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:18px}.map-actions .button{font-size:.875rem;padding:12px 18px}.map-actions .text-link{font-size:.875rem;color:#eee}.map-actions .text-link:hover{color:var(--accent-text)}
@media(max-width:760px){.location .map-frame{height:250px;border-radius:14px}.location .map-actions{gap:14px}.map-actions>a{min-height:44px;display:inline-flex;align-items:center}}

/* Daily hours balance the map column with a shared bottom baseline. */
.contact{align-items:stretch}.contact-lead{display:flex;flex-direction:column;min-width:0;border-bottom:1px solid #4a4a4a;padding-bottom:26px}.contact-lead>.button{align-self:flex-start}.contact-lead>.opening-hours{margin-top:auto;padding-top:40px}.opening-hours h3{margin-bottom:18px}.opening-hours dl{gap:0}.opening-hours dl>div{padding:10px 0;border-bottom:1px solid #ffffff12;gap:20px}.opening-hours dl>div:last-child{border-bottom:0}.opening-hours dt{color:#c9c9c9}.opening-hours dd{white-space:nowrap}
.contact-details{align-self:stretch;display:flex;flex-direction:column;min-width:0;border-bottom:1px solid #4a4a4a}.contact-details>.location{flex:1;border-bottom:0;padding-bottom:26px;display:flex;flex-direction:column}.location .map-frame{flex:1;min-height:270px;max-height:360px}.location .map-actions{margin-top:auto;padding-top:18px}.contact-details>a:first-child{border-top:0}
@media(max-width:760px){.contact{gap:32px}.contact-lead>.opening-hours{margin-top:30px;padding-top:0}.contact-lead{padding-bottom:24px}.opening-hours dl>div{padding:10px 0}.location .map-frame{flex:none;height:250px;min-height:250px;max-height:none}.location .map-actions{margin-top:0;padding-top:18px}}

/* Keep the footer wordmark together with balanced baseline alignment. */
footer{flex-wrap:wrap}.footer-name{white-space:nowrap;line-height:1.5}
@media(max-width:380px){.footer-name{font-size:1rem}.footer-name span{letter-spacing:0;margin-left:.2em}}

/* Place map controls above the map; align both columns without bottom rules. */
.contact-lead,.contact-details{border-bottom:0;padding-bottom:0}
.contact-details>.location{padding-bottom:0;border-bottom:0}
.location .map-actions{margin-top:4px;padding-top:0;margin-bottom:20px}
.location .map-frame{margin-top:auto;max-height:none;min-height:270px}
.opening-hours dl>div:last-child{padding-bottom:0}
@media(max-width:760px){.contact-lead{padding-bottom:0}.location .map-actions{margin-top:4px;padding-top:0}.location .map-frame{margin-top:0;height:280px;min-height:280px}}

/* Separate navigation layers on a neutral charcoal masthead. */
.header{position:relative;isolation:isolate;min-height:104px;padding:21px var(--gutter);gap:32px;background:linear-gradient(180deg,#1b1c1f,#17181b);border:0;box-shadow:0 8px 24px #00000012}
.header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#ffffff0f 25%,#ffffff0f 75%,transparent);pointer-events:none}
.brand{width:200px;display:flex;align-items:center;flex-shrink:0}.brand-mark{display:block;width:100%;height:auto;max-height:67px;object-fit:contain;object-position:left center}
.header nav{gap:12px;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.header nav>a,.header nav .nav-contact{position:relative;isolation:isolate;min-height:48px;padding:13px 19px;margin:0;border:0;border-radius:5px;background:linear-gradient(160deg,#313237,#26272c);box-shadow:inset 0 1px 0 #ffffff10,0 4px 0 #101114,0 8px 14px #00000018;font-size:.9375rem;font-weight:500;letter-spacing:.01em;color:#e0e0e2;transition:color .25s ease,background .25s ease,box-shadow .25s ease,transform .25s ease}
.header nav>a+a::before{content:none}
.header nav>a::after{left:19px;right:19px;bottom:0;height:2px;border-radius:1px;background:#e51b36;transform:scaleX(0);transform-origin:center;transition:transform .28s ease}
.header nav>a:hover,.header nav>a:focus-visible,.header nav .nav-contact:hover,.header nav .nav-contact:focus-visible{background:linear-gradient(160deg,#3b3c42,#2e2f34);box-shadow:inset 0 1px 0 #ffffff20,0 6px 0 #101114,0 12px 20px #00000025;border:0;color:#fff;transform:translateY(-2px);text-decoration:none}
.header nav>a:hover::after,.header nav>a:focus-visible::after{transform:scaleX(1)}
.header nav>a:active{transform:translateY(1px);box-shadow:inset 0 1px 0 #ffffff12,0 2px 0 #101114}
.header nav .nav-contact{background:linear-gradient(150deg,#49272e,#342128);color:#ffc6cf}
.header nav .nav-contact:hover,.header nav .nav-contact:focus-visible{background:linear-gradient(150deg,#603039,#44262e)}
.hero-content{padding-top:76px;padding-bottom:76px}.hero h1 span{font-weight:400}
@media(min-width:761px) and (max-width:1000px){.header{gap:24px}.header nav{gap:8px}.header nav>a,.header nav .nav-contact{padding:13px 12px;font-size:.875rem}.header nav>a::after{left:12px;right:12px}.brand{width:174px}}
@media(max-width:760px){.header{z-index:10;min-height:88px;padding-top:17px;padding-bottom:17px;gap:20px}.brand{width:164px}.brand-mark{max-height:55px}.menu-button{padding:10px 14px;min-height:44px;border:0;border-radius:5px;background:#2b2c31;box-shadow:inset 0 1px #ffffff10,0 3px 0 #101114;color:#e7e7e7;align-items:center;gap:12px}.menu-button::after{content:'';width:18px;height:8px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;transition:height .2s ease}.menu-button[aria-expanded=true]::after{height:2px}.header nav{top:100%;padding:16px 6% 24px;background:#17181b;border:0;border-radius:0;gap:12px;box-shadow:0 20px 28px #00000030}.header nav>a,.header nav .nav-contact{padding:14px 18px;margin:0;min-height:50px}.header nav>a::after{left:18px;right:18px;width:auto;bottom:0}.hero-content{padding-top:38px;padding-bottom:42px}}
@media(max-width:380px){.header{gap:12px}.brand{width:148px}}
@media(prefers-reduced-motion:reduce){.header nav>a,.header nav>a::after,.menu-button::after{transition:none}.header nav>a:hover,.header nav>a:focus-visible,.header nav>a:active{transform:none}}

/* Edge-to-edge H3 photograph, dark behind the copy and open on the right. */
.hero{position:relative;isolation:isolate;overflow:hidden;background:#171719}
.hero-art.h3-exterior-hero{position:absolute;inset:0;z-index:0;width:100%;height:100%;max-width:none;margin:0;padding:0;aspect-ratio:auto;border:0;border-radius:0;background:#171719;box-shadow:none;animation:none;overflow:hidden;pointer-events:none;-webkit-mask-image:none;mask-image:none}
.hero-art.h3-exterior-hero:hover{box-shadow:none}
.hero-art.h3-exterior-hero::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#171719f5 0%,#171719eb 18%,#171719cf 34%,#171719a6 47%,#17171970 59%,#17171938 71%,#17171912 84%,transparent 100%),linear-gradient(0deg,#1d1d1d 0%,#17171985 10%,#17171926 24%,transparent 42%),linear-gradient(180deg,#17181b1a,transparent 28%)}
.h3-exterior-hero .exterior-photo{position:relative;left:12%;width:124%;max-width:none;height:100%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%);mask-image:linear-gradient(90deg,transparent,#000 24%);object-fit:cover;object-position:50% 48%;transform-origin:50% 48%;transform:scale(1);transition:none}
.h3-exterior-hero.photo-ready .exterior-photo{animation:h3-photo-arrive 4.8s cubic-bezier(.2,.55,.35,1) both}
@keyframes h3-photo-arrive{from{transform:scale(1);opacity:.8}to{transform:scale(1.035);opacity:1}}
.hero-content{position:relative;z-index:2;display:flex;align-items:center;min-height:620px;padding:88px 0 82px;gap:0}
.hero-copy{width:min(52%,560px)}
.hero-desc{color:#dedee0}.hero .text-link{color:#f0f0f0;border-color:#a3a3a7}
.hero-bottom{position:relative;z-index:2;border-top-color:#ffffff26;color:#d2d2d5;padding-top:26px;padding-bottom:30px}
.hero-bottom strong{color:#fff}.hero-bottom>span{border-color:#ffffff26}
@media(min-width:761px) and (max-width:1000px){.hero-content{min-height:600px;padding-top:66px;padding-bottom:66px}.hero-copy{width:56%}.hero-art.h3-exterior-hero::after{background:linear-gradient(90deg,#171719fa 0%,#171719ed 24%,#171719cf 40%,#171719a6 53%,#17171966 65%,#17171926 78%,transparent 100%),linear-gradient(0deg,#1d1d1d,transparent 42%)}}
/* Mobile uses normal document flow: copy, clear photo, then facility details. */
@media(max-width:760px){
 .hero{display:flex;flex-direction:column;padding:0;background:#1d1d1d}
 .hero-content{order:1;display:block;min-height:0;padding:42px var(--gutter) 20px}
 .hero-copy{width:100%;max-width:none;min-width:0}
 .hero h1{font-size:clamp(2.4rem,9.5vw,3.4rem);line-height:1.12}
 .hero-desc{max-width:520px;font-size:1rem;line-height:1.75}
 .hero .actions{gap:16px 22px;flex-wrap:wrap}
 .hero-art.h3-exterior-hero{order:2;position:relative;inset:auto;width:100%;height:auto;aspect-ratio:16/10;min-height:210px;flex-shrink:0}
 .h3-exterior-hero .exterior-photo{left:0;width:100%;height:100%;object-position:54% 50%;transform-origin:54% 50%;-webkit-mask-image:none;mask-image:none}
 .hero-art.h3-exterior-hero::after{background:linear-gradient(180deg,#1d1d1d 0%,#1d1d1d66 10%,transparent 26%,transparent 74%,#1d1d1d70 90%,#1d1d1d 100%)}
 .hero-bottom{order:3;margin:0 var(--gutter);padding-top:22px;padding-bottom:28px;min-width:0}
 .hero-bottom>span{min-width:0}
}
@media(prefers-reduced-motion:reduce){.h3-exterior-hero.photo-ready .exterior-photo,.h3-exterior-hero:hover .exterior-photo,.h3-exterior-hero .exterior-photo{animation:none;transform:none;opacity:1}}

/* The same hero photograph continues underneath the translucent masthead. */
:root{--header-height:112px}
.header{position:absolute;top:0;left:0;right:0;z-index:20;background:linear-gradient(90deg,#171719b8,#17171980 55%,#17171938);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:none}
.header::after{background:linear-gradient(90deg,transparent,#ffffff14,transparent)}
.hero{padding-top:var(--header-height)}
@media(max-width:760px){
 :root{--header-height:90px}
 .header{position:relative;inset:auto;background:#1b1c1f;-webkit-backdrop-filter:none;backdrop-filter:none}
 .hero{padding-top:0}
 .hero-art.h3-exterior-hero{order:1;position:relative;inset:auto;min-height:0;height:auto;aspect-ratio:1672/941}
 .h3-exterior-hero .exterior-photo{display:block;width:100%;height:auto;object-fit:contain;object-position:center;transform:none}
 .h3-exterior-hero.photo-ready .exterior-photo{animation:h3-mobile-photo-reveal .8s ease-out both}
 .hero-art.h3-exterior-hero::after{background:linear-gradient(180deg,#17171926,transparent 38%,transparent 70%,#1d1d1d85 90%,#1d1d1d 100%)}
 .hero-content{order:2;padding-top:28px}
 .hero-bottom{order:3}
}

@keyframes h3-mobile-photo-reveal{from{opacity:.8}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.h3-exterior-hero.photo-ready .exterior-photo{animation:none;opacity:1}}

/* Scroll-triggered return-to-top control with safe mobile spacing. */
.back-to-top{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;justify-content:center;width:50px;height:50px;padding:0;border:1px solid #ffffff24;border-radius:14px;background:#c81026;color:#fff;box-shadow:0 6px 20px #00000040;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,background-color .2s ease,visibility .25s}
.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.back-to-top:hover{background:#a90d20;transform:translateY(-3px)}
.back-to-top:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:760px){.back-to-top{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));width:48px;height:48px;border-radius:12px}}
@media(prefers-reduced-motion:reduce){.back-to-top,.back-to-top:hover,.back-to-top.is-visible{transition:none;transform:none}}

/* Footer social icons occupy the space on the right. */
footer{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:28px;row-gap:14px;align-items:center}
footer .footer-name{grid-column:1;grid-row:1;order:initial;margin:0;justify-self:start;min-width:0}
footer .social-links{grid-column:2;grid-row:1;order:initial;width:auto;justify-self:end;justify-content:flex-end;flex-wrap:nowrap;gap:12px}
footer p{grid-column:1 / -1;grid-row:2;order:initial;width:auto;margin:0;line-height:1.6}
@media(max-width:600px){footer{column-gap:16px;row-gap:18px}footer .footer-name{grid-column:1 / -1}footer .social-links{grid-column:2;grid-row:2}footer p{grid-column:1;grid-row:2;min-width:0}}
