
:root{color-scheme:dark;--navy:#031633;--blue:#092957;--gold:#ffad17;--text:#f7f8fc;--muted:#c3d0df}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--navy);color:var(--text);font:16px/1.6 Arial,Helvetica,sans-serif}a{color:inherit}a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}.top{position:sticky;top:0;z-index:4;background:#03132df5;border-bottom:1px solid #ffffff24;backdrop-filter:blur(14px)}.nav{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{text-decoration:none;color:#fff;text-transform:uppercase;font-size:.92rem;font-weight:800;letter-spacing:.08em;line-height:1.3;max-width:270px}.brand:hover{color:var(--gold)}.links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.links a{text-decoration:none;font-size:.9rem;font-weight:700;padding:8px 12px;border-radius:2px}.links a:hover,.links a[aria-current=page]{background:#183965;color:var(--gold)}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--gold);background:var(--gold);color:#071a35!important;text-decoration:none;padding:12px 20px;border-radius:3px;font-weight:800;line-height:1.2;transition:background .2s}.button:hover{background:#ffc453}.button.secondary{background:transparent;color:#fff!important}.button.secondary:hover{background:#ffad1722}.hero-art{display:block;width:100%;height:auto}.service-hero{background:radial-gradient(circle at 85% 0%,#16447b,#061b3a 48%,#031633);border-bottom:1px solid #ffffff20}.hero-body{padding:65px 0 78px}.hero-body h1{font-size:clamp(2.3rem,5vw,4.6rem);line-height:1.08;max-width:820px;margin:14px 0 20px}.hero-body p{max-width:700px;color:#e0e9f5;font-size:1.17rem;margin:0 0 27px}.eyebrow{text-transform:uppercase;color:var(--gold);font-weight:800;font-size:.84rem;letter-spacing:.2em}.actions{display:flex;gap:12px;flex-wrap:wrap}.section{padding:78px 0}.section h2{font-size:clamp(2rem,3.6vw,3rem);line-height:1.15;margin:10px 0 20px}.intro{max-width:740px;color:var(--muted);font-size:1.08rem;margin:0 0 30px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.detail{padding:27px;border:1px solid #7194bc44;border-top:3px solid var(--gold);background:linear-gradient(150deg,#102f5d,#061d3e)}.detail h3{font-size:1.35rem;margin:0 0 10px}.detail p{margin:0;color:var(--muted)}.work{background:#071c3a;border-block:1px solid #ffffff20}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.photo-grid figure{margin:0;background:#0b2b54;border:1px solid #7194bc44;overflow:hidden}.photo-grid img{display:block;width:100%;height:245px;object-fit:cover}.photo-grid figcaption{padding:13px 15px;color:#e5eef9;font-size:.92rem}.other-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.other{display:block;text-decoration:none;border:1px solid #7194bc44;background:#0b2b54;padding:24px;transition:transform .2s,border-color .2s}.other:hover{transform:translateY(-3px);border-color:var(--gold)}.other strong{display:block;color:var(--gold);font-size:1.3rem;margin-bottom:6px}.other span{color:var(--muted)}.about{background:#081f42;border-block:1px solid #ffffff19}.about p{color:var(--muted);max-width:780px}.contact{background:radial-gradient(circle at 85% 0%,#16447b,#061b3a 48%,#031633)}.contact-box{border-top:3px solid var(--gold);display:flex;justify-content:space-between;align-items:center;gap:32px;padding:36px;background:#0a2a53}.contact-box h2{margin:7px 0 12px}.contact-box p{color:var(--muted);margin:0}.contact-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}.footer{border-top:1px solid #ffffff2c;padding:30px 0;color:var(--muted);font-size:.9rem}.footer-inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.footer a{color:var(--gold)}@media(max-width:900px){.nav{align-items:flex-start;flex-direction:column;padding:15px 0;gap:10px}.links{justify-content:flex-start}.links a:first-child{padding-left:0}.detail-grid,.other-grid{grid-template-columns:repeat(2,1fr)}.photo-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.wrap{width:min(100% - 32px,1180px)}.top{position:static}.nav{padding:14px 0}.brand{font-size:.82rem}.links{gap:3px}.links a{font-size:.79rem;padding:7px 8px}.hero-body{padding:42px 0 54px}.hero-body p{font-size:1.05rem}.section{padding:58px 0}.detail-grid,.other-grid{grid-template-columns:1fr}.photo-grid{gap:9px}.photo-grid img{height:145px}.photo-grid figcaption{padding:10px;font-size:.84rem}.contact-box{display:block;padding:25px}.contact-actions{justify-content:flex-start;margin-top:22px}.contact-actions .button{width:100%}}

/* Glide between service pages in browsers supporting cross-document view transitions. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:300ms ease-in both glide-out}
::view-transition-new(root){animation:380ms ease-out both glide-in}
@keyframes glide-out{to{opacity:.35;transform:translateX(-7%)}}
@keyframes glide-in{from{opacity:.35;transform:translateX(7%)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}::view-transition-old(root),::view-transition-new(root){animation:none}}

/* Service navigation left; direct contact actions right. */
.nav{gap:16px}.links{justify-content:flex-start;gap:4px}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}.header-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border:1px solid #6584ac;text-decoration:none;border-radius:3px;font-size:.88rem;font-weight:700;white-space:nowrap}.header-actions a:hover{border-color:var(--gold);color:var(--gold)}.header-actions .call{background:var(--gold);border-color:var(--gold);color:#071a35}.header-actions .call:hover{background:#ffc453;color:#071a35}
@media(max-width:900px){.nav{flex-direction:row;align-items:center;justify-content:space-between;gap:6px;padding:12px 0}.links{justify-content:flex-start}.header-actions{margin-left:0}}
@media(max-width:600px){.nav{align-items:stretch}.links{width:100%;justify-content:space-between}.links a{padding:7px 5px;font-size:.78rem}.header-actions{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.header-actions a{font-size:.8rem;padding:8px 4px}}

/* Match all three contact actions. */
.header-actions a,.header-actions .call{background:var(--gold);border-color:var(--gold);color:#071a35}
.header-actions a:hover,.header-actions .call:hover{background:#ffc453;border-color:#ffc453;color:#071a35}

/* A fixed branded canvas remains behind the scrolling page content. */
body{isolation:isolate}body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:#031633 url('assets/nebula-brand.png') center 84px / 100% auto no-repeat}.hero-art{width:100%;aspect-ratio:1672/941;height:auto}.service-hero{background:rgba(3,22,51,.9)}.section{background:rgba(3,22,51,.9)}.work{background:rgba(7,28,58,.9)}.about{background:rgba(8,31,66,.92)}.contact{background:rgba(3,22,51,.9)}.footer{background:rgba(3,22,51,.95)}
@media(max-width:900px){body::before{background-position:center 116px}}@media(max-width:600px){body::before{background-position:center 116px}}
/* Keep the artwork smaller and proportional on large screens. */
body::before{background-size:min(88vw,1400px) auto}.hero-art{width:88%;max-width:1400px;margin-inline:auto}
@media(max-width:600px){body::before{background-size:94vw auto}.hero-art{width:94%}}
/* Larger desktop artwork, fitted to the usable browser viewport. */
@media(min-width:901px){body::before{background-size:min(98vw,1800px,calc((100svh - 84px)*1.9)) auto}.hero-art{width:min(98vw,1800px,calc((100svh - 84px)*1.9));max-width:none}}

.opening-hours{display:flex;gap:28px;flex-wrap:wrap;margin-top:22px}.opening-hours p{font-size:1rem}.opening-hours strong{color:var(--gold)}

.emergency-phone{display:inline-block;margin-top:4px;font-weight:700;color:var(--gold)}

.emergency-phone.button{display:inline-flex;margin-top:10px;max-width:100%;text-align:center;line-height:1.4}

/* Keep the emergency call-out number immediately below the main phone. */
.contact-actions{flex-direction:column;align-items:stretch;flex-wrap:nowrap}.contact-actions .emergency-phone.button{margin-top:0}

/* Responsive layout shared by every service page. */
html{scroll-padding-top:110px;-webkit-text-size-adjust:100%}
img{max-width:100%}
.nav,.contact-box,.footer-inner{min-width:0}
.links a,.header-actions a,.button{min-height:44px}
.contact-box>div:first-child{flex:1;min-width:0}
.contact-actions{flex:0 1 330px;min-width:0}
.contact-actions .button{white-space:normal;text-align:center;overflow-wrap:anywhere}
.footer-inner{overflow-wrap:anywhere}
.detail-grid,.other-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1000px){
 .nav{flex-direction:column;align-items:stretch;gap:10px;padding:12px 0}
 .links{justify-content:center}
 .header-actions{justify-content:center;margin-left:0}
 body::before{background-position:center 130px;background-size:94vw auto}
 .hero-art{width:94%;max-width:1400px}
 .contact-box{flex-wrap:wrap}
 .contact-actions{flex-basis:100%;max-width:380px}
}
@media(max-width:700px){
 html{scroll-padding-top:20px}
 .top{position:relative}
 .wrap{width:calc(100% - 32px)}
 .nav{flex-direction:column;align-items:stretch;gap:10px}
 .links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%}
 .links a,.links a:first-child{display:flex;justify-content:center;align-items:center;padding:10px 6px;font-size:.9rem;text-align:center;background:#102d51}
 .links a[aria-current=page]{background:#183965}
 .header-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:6px}
 .header-actions a{font-size:.82rem;padding:10px 4px;white-space:normal;text-align:center}
 body::before{background-position:center 170px;background-size:94vw auto}
 .hero-art{width:94%;aspect-ratio:1672/941}
 .hero-body{padding:36px 0 44px}
 .hero-body h1{font-size:clamp(2rem,7vw,3rem)}
 .hero-body p{font-size:1.05rem}
 .eyebrow{font-size:.75rem;letter-spacing:.13em}
 .section{padding:44px 0}
 .detail-grid,.other-grid{grid-template-columns:1fr}
 .detail,.other{padding:22px}
 .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .photo-grid img{height:auto;aspect-ratio:4/3}
 .contact-box{display:block;padding:24px}
 .contact-actions{max-width:none;margin-top:24px}
 .contact-actions .button{width:100%}
 .opening-hours{gap:20px}
 .footer-inner{flex-direction:column;gap:12px}
}
@media(max-width:380px){.photo-grid{grid-template-columns:1fr}.actions .button{width:100%}.contact-box{padding:20px}}
@media(prefers-reduced-motion:reduce){.button,.other{transition:none}}

.admin-form{display:grid;gap:18px;max-width:600px;margin:24px 0}.admin-form label{display:grid;gap:6px}.admin-form input,.admin-form select{font:inherit;max-width:100%;width:100%;padding:12px;background:#031633;color:white;border:1px solid #6584ac;border-radius:3px}.admin-form button{cursor:pointer}.photo-grid form{margin-top:12px}
