/* Shared quiet material and motion language across the established public routes. */
body { --red:#dc252d; --red-light:#ff777e; --panel:#15171b; --font-display:var(--font-body); }
body:not(.home-body)::before { background:#090a0c; }
body:not(.home-body) .site-shell { background:#090a0c; }
.main-nav>a[href="/account.html"],.main-nav>a[href="#booking"],.main-nav>a[href="/#booking"] { animation:none; box-shadow:none; clip-path:none; }
.main-nav>a::before { display:none; }
.main-nav>a[href="/account.html"] { background:none; border:0; }
.main-nav>a[href="/account.html"]::after { display:none; }
.button { clip-path:none; box-shadow:none; }
.button-primary { background:var(--red); }
:is(a,button,input,select,textarea,summary):focus-visible { outline:2px solid #fff; outline-offset:4px; }
.packages-hero,.package-catalog,.gallery-page-main,.gallery-page-hero,.gift-cards-section { background:#0d0f12; }
.packages-hero::after,.packages-hero-summary::before,.package-detail-card::after { display:none; }
.packages-hero-summary,.package-detail-card,.package-detail-card.featured { background:#17191e; box-shadow:none; clip-path:none; border-color:#383c45; }
.package-detail-card:hover { background:#202329; }
.package-detail-card .package-icon { display:none; }
.package-detail-card p,.package-includes li { font-size:.875rem; line-height:1.65; }
.gallery-lightbox { background:#07080af5; }
.reveal { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
/* Service illustrations use real image elements for lazy loading and alt text. */
.package-shop-card .package-shop-visual { background-image:none; position:relative; overflow:hidden; }
.package-shop-card .package-shop-visual::before,.package-shop-card .package-shop-visual::after { content:none; }
.package-shop-visual > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.package-shop-visual > small { position:absolute; z-index:2; bottom:14px; left:16px; color:#fff; background:#111b; padding:4px 7px; font-size:.65rem; }
.booking-option-add .booking-package-image { width:80px; height:60px; object-fit:cover; border-radius:2px; margin-bottom:8px; }

/* One typography and material system for every public route and staff entry. */
body:not(.home-body) { background:#090a0c; color:#f1f1ed; }
body:not(.home-body) .utility-bar { display:none; }
body:not(.home-body) .site-shell { max-width:1600px; border:0; }
body:not(.home-body) .site-header { height:80px; padding-inline:4%; background:#090a0c; backdrop-filter:none; box-shadow:none; border-bottom:1px solid #30333a; }
body:not(.home-body) .brand,body:not(.home-body) .brand img { width:132px; height:auto; transform:none; }
body:not(.home-body) .main-nav { gap:clamp(.7rem,1.5vw,1.6rem); font-size:.875rem; font-weight:500; letter-spacing:0; text-transform:none; }
body:not(.home-body) .nav-call { clip-path:none; box-shadow:none; border-radius:0; }
body:not(.home-body) :is(h1,h2,h3),body:not(.home-body) .package-detail-card h3 {
  font-family:var(--font-body); font-weight:500; line-height:1.15; letter-spacing:-.04em; text-transform:none; text-shadow:none; overflow-wrap:anywhere;
}
body:not(.home-body) h1 { font-size:clamp(2.6rem,5.5vw,5.5rem); }
body:not(.home-body) h2 { font-size:clamp(2rem,3.5vw,3.5rem); }
body:not(.home-body) .package-detail-card h3 { font-size:clamp(1.5rem,2vw,2rem); }
body:not(.home-body) :is(h1,h2,h3) em { font-style:normal; color:inherit; }
body:not(.home-body) .button { font-size:.875rem; font-weight:600; letter-spacing:0; text-transform:none; border-radius:2px; }
body:not(.home-body) .eyebrow { font-size:.8125rem; line-height:1.5; font-weight:500; letter-spacing:.1em; }
body:not(.home-body) :is(.service-detail-hero,.service-detail-main,.member-hero,.member-auth,.member-dashboard,.legal-page,.booking-thanks,.packages-hero,.gallery-page-hero) { background:#0d0f12; border-color:#383c45; }
body:not(.home-body) :is(.service-detail-panel,.service-detail-note,.member-auth-card,.member-hero aside,.booking-reference-card,.booking-thanks-side,.gallery-page-hero-panel,.admin-card) { background:#17191e; border-color:#383c45; box-shadow:none; clip-path:none; }
body:not(.home-body) :is(.service-detail-copy>p:not(.eyebrow),.service-detail-includes,.service-detail-note p,.member-hero>div>p:not(.eyebrow),.member-auth-note,.package-description,.package-includes li,.booking-thanks>div>p) { font-size:1rem; line-height:1.7; color:#c4c7cf; }
body:not(.home-body) :is(.member-hero aside strong,.booking-thanks-side b,.booking-reference-card strong,.package-price,.package-shop-price) { line-height:1.2; letter-spacing:-.025em; text-transform:none; }
body:not(.home-body) .service-detail-copy,body:not(.home-body) .service-detail-panel { min-width:0; }
body:not(.home-body) .service-detail-visual { aspect-ratio:4/3; min-height:0; border:1px solid #383c45; box-shadow:none; }
body:not(.home-body) .service-detail-visual img { filter:none; }
body:not(.home-body) .service-detail-visual::after { background:linear-gradient(180deg,transparent 65%,#000b); }
body:not(.home-body) .service-detail-visual figcaption { font-size:.75rem; line-height:1.5; font-weight:500; letter-spacing:0; text-transform:none; flex-wrap:wrap; }
body:not(.home-body) .service-detail-facts span { font-size:.875rem; line-height:1.5; font-weight:500; letter-spacing:0; text-transform:none; border-color:#454952; }
body:not(.home-body) .service-detail-actions>.social-share { margin-top:1rem; padding-top:1rem; border-top:1px solid #383c45; }
body:not(.home-body) .service-detail-price { font:500 clamp(2.5rem,4vw,4rem)/1.15 var(--font-body)!important; overflow-wrap:anywhere; }
body:not(.home-body) .service-detail-price small { font:500 .875rem/1.6 var(--font-body); letter-spacing:0; text-transform:none; }
body:not(.home-body) .site-footer { padding-bottom:125px; }
.admin-shell h1 { font-size:clamp(2rem,4vw,3.2rem)!important; }
@media(max-width:760px) {
  body:not(.home-body) .site-header { height:auto; min-height:72px; padding-inline:6%; }
  body:not(.home-body) .main-nav { font-size:.9375rem; }
  body:not(.home-body) h1 { font-size:clamp(2.25rem,10vw,3.5rem); }
  body:not(.home-body) h2 { font-size:clamp(1.75rem,7vw,2.5rem); }
  body:not(.home-body) .member-hero aside strong { font-size:2.5rem; }
  body:not(.home-body) .service-detail-hero { padding-top:3rem; }
  body:not(.home-body) .service-detail-visual { max-width:100%; }
  body:not(.home-body) .booking-reference-card strong { font-size:1.5rem; overflow-wrap:anywhere; }
  body:not(.home-body) .confirmation-nav { flex-wrap:wrap; gap:.75rem; }
}

/* Public routes share the gallery's utility strip and navigation proportions. */
body:not(.home-body) .site-shell .utility-bar { display:flex; }
body:not(.home-body) .site-shell .site-header {
 height:80px;
 padding-inline:clamp(1.15rem,3.5vw,3.5rem);
 background:#090a0c;
 border-bottom:1px solid rgba(255,255,255,.12);
 box-shadow:none;
}
body:not(.home-body) .site-shell .brand,
body:not(.home-body) .site-shell .brand img { width:172px; height:56px; }
body:not(.home-body) .site-shell .main-nav {
 gap:clamp(.8rem,1.7vw,1.65rem);
 font-size:.64rem;
 font-weight:800;
 letter-spacing:.09em;
 text-transform:uppercase;
}
body:not(.home-body) .site-shell .main-nav>a { font-size:.64rem; text-transform:uppercase; }
body:not(.home-body) .site-shell .main-nav>a[href*="#booking"] {
 display:inline-flex;
 align-items:center;
 min-height:34px;
 padding:.68rem .86rem;
 border:1px solid rgba(255,255,255,.19);
 background:#171719;
 color:#fff;
}
body:not(.home-body) .site-shell .main-nav>a[href*="#booking"]:hover { border-color:var(--red-light); background:#241010; }
body:not(.home-body) .site-shell .main-nav .nav-call {
 display:inline-flex;
 min-height:34px;
 padding:.68rem .86rem;
 border:0;
 background:linear-gradient(135deg,#f22b24,#cf1014);
 color:#fff;
 box-shadow:0 8px 20px rgba(229,34,34,.2);
}
@media(max-width:760px) {
 body:not(.home-body) .site-shell .utility-bar { display:none; }
 body:not(.home-body) .site-shell .site-header { height:auto; min-height:72px; padding-inline:6%; }
 body:not(.home-body) .site-shell .brand,
 body:not(.home-body) .site-shell .brand img { width:142px; height:48px; }
 body:not(.home-body) .site-shell .main-nav>a[href*="#booking"] { min-height:auto; padding:.68rem .72rem; border:0; background:transparent; }
 body:not(.home-body) .site-shell .main-nav .nav-call { display:block; text-align:center; }
}

/* Header actions: make account access and booking unmistakable at a glance. */
.main-nav>a[href="/account.html"] {
 display:inline-flex;
 align-items:center;
 min-height:38px;
 padding:.72rem .95rem;
 border:1px solid #687488;
 border-radius:2px;
 background:linear-gradient(135deg,#28303b,#171b22);
 color:#fff;
 font-weight:800;
 letter-spacing:.08em;
 text-transform:uppercase;
 box-shadow:0 8px 22px rgba(54,70,91,.28), inset 0 1px 0 rgba(255,255,255,.1);
}
.main-nav>a[href="/account.html"]:hover { border-color:#f04b52; background:linear-gradient(135deg,#343d4b,#1d2028); color:#fff; box-shadow:0 10px 26px rgba(218,36,44,.2); }
.main-nav>a[href*="#booking"] {
 display:inline-flex;
 align-items:center;
 min-height:38px;
 padding:.72rem 1rem;
 border:1px solid #ff5c62;
 border-radius:2px;
 background:linear-gradient(135deg,#f22b32,#b90f18);
 color:#fff;
 font-weight:900;
 letter-spacing:.08em;
 text-transform:uppercase;
 box-shadow:0 10px 26px rgba(229,34,34,.32), inset 0 1px 0 rgba(255,255,255,.14);
}
.main-nav>a[href*="#booking"]:hover { border-color:#ff9a9e; background:linear-gradient(135deg,#ff3d45,#d8141d); color:#fff; box-shadow:0 12px 30px rgba(229,34,34,.42); }
@media(max-width:760px) {
 .main-nav>a[href="/account.html"],.main-nav>a[href*="#booking"] { min-height:auto; padding:.68rem .78rem; }
}

/* Match the higher-specificity public-route rules so the actions stay vivid on gallery, packages and service pages. */
body:not(.home-body) .site-shell .main-nav>a[href="/account.html"] {
 display:inline-flex;
 align-items:center;
 min-height:38px;
 padding:.72rem .95rem;
 border:1px solid #687488;
 border-radius:2px;
 background:linear-gradient(135deg,#28303b,#171b22);
 color:#fff;
 font-weight:800;
 letter-spacing:.08em;
 text-transform:uppercase;
 box-shadow:0 8px 22px rgba(54,70,91,.28),inset 0 1px 0 rgba(255,255,255,.1);
}
body:not(.home-body) .site-shell .main-nav>a[href="/account.html"]:hover { border-color:#f04b52; background:linear-gradient(135deg,#343d4b,#1d2028); color:#fff; box-shadow:0 10px 26px rgba(218,36,44,.2); }
body:not(.home-body) .site-shell .main-nav>a[href*="#booking"] {
 display:inline-flex;
 align-items:center;
 min-height:38px;
 padding:.72rem 1rem;
 border:1px solid #ff5c62;
 border-radius:2px;
 background:linear-gradient(135deg,#f22b32,#b90f18);
 color:#fff;
 font-weight:900;
 letter-spacing:.08em;
 text-transform:uppercase;
 box-shadow:0 10px 26px rgba(229,34,34,.32),inset 0 1px 0 rgba(255,255,255,.14);
}
body:not(.home-body) .site-shell .main-nav>a[href*="#booking"]:hover { border-color:#ff9a9e; background:linear-gradient(135deg,#ff3d45,#d8141d); color:#fff; box-shadow:0 12px 30px rgba(229,34,34,.42); }
@media(max-width:760px) {
 body:not(.home-body) .site-shell .main-nav>a[href="/account.html"],body:not(.home-body) .site-shell .main-nav>a[href*="#booking"] { min-height:auto; padding:.68rem .78rem; }
}
