/* Shared navigation and information hierarchy, September 2026. */
.kv-own-shell { --kv-ui-gold:#d4b775; --kv-ui-text:#f5f1e7; --kv-ui-muted:#c5c1b8; }
.kv-own-shell a:focus-visible,.kv-own-shell button:focus-visible,.kv-own-shell summary:focus-visible { outline:2px solid #e5ca8a; outline-offset:5px; }
.kv-site-service-nav { display:flex; flex-wrap:wrap; gap:10px 20px; padding-top:16px; border-top:1px solid #514737; }
.kv-site-service-nav a { display:inline-flex; align-items:center; min-height:36px; color:#ccc7bc; font-size:13px; line-height:1.4; text-decoration:none; }
.kv-own-shell .kv-header-cta { border-radius:6px; text-transform:none; letter-spacing:0; }
.kv-own-shell .kv-site-nav a { text-transform:none; letter-spacing:0; }
.kv-own-shell .kv-site-header { z-index:100; }
.kv-own-shell .kv-site-nav-wrap { max-height:calc(100dvh - 110px); overflow-y:auto; overscroll-behavior:contain; }
.kv-own-shell .kv-footer-grid { grid-template-columns:1.4fr .75fr 1.25fr 1fr 1.15fr; gap:28px; }
.kv-own-shell .kv-footer-grid h2 { font-size:15px; line-height:1.4; text-transform:none; letter-spacing:0; }
.kv-own-shell .kv-footer-grid p,.kv-own-shell .kv-footer-grid a { font-size:13px; line-height:2; }
.kv-own-shell .kv-footer-grid > section { min-width:0; }
@media (min-width:1100px) {
 .kv-own-shell .kv-site-header { width:calc(100% - 64px); min-height:104px; gap:20px; }
 .kv-own-shell .kv-site-logo { width:172px; flex:0 0 172px; }
 .kv-own-shell .kv-site-header .kv-menu-toggle,.kv-own-shell .kv-site-header .kv-header-contact { display:none; }
 .kv-own-shell .kv-site-header .kv-site-nav-wrap { position:static; display:grid; grid-template-columns:auto auto; align-items:center; gap:2px 24px; width:auto; max-height:none; overflow:visible; padding:0; margin-left:auto; background:none; border:0; box-shadow:none; opacity:1; visibility:visible; pointer-events:auto; transform:none; }
 .kv-own-shell .kv-site-header .kv-site-nav { display:flex; flex-direction:row; gap:20px; grid-row:2; grid-column:1; }
 .kv-own-shell .kv-site-header .kv-site-nav a { padding:10px 0; min-height:40px; border:0; font-size:14px; white-space:nowrap; }
 .kv-own-shell .kv-site-header .kv-header-cta { grid-row:2; grid-column:2; margin:0; padding:12px 20px; width:auto; min-height:46px; background:#d4b775; color:#111; font-size:14px; }
 .kv-own-shell .kv-site-header .kv-site-service-nav { display:flex; justify-content:flex-end; grid-column:1 / -1; grid-row:1; border:0; padding:0; gap:18px; }
 .kv-own-shell .kv-site-header .kv-site-service-nav a { min-height:26px; font-size:11px; color:#b9b6af; }
 .kv-own-shell .kv-site-header .kv-social-links { display:none; }
}
/* One typography and spacing system for the informational page introductions. */
.kv-own-shell .kv-locations-hero,.kv-own-shell .kv-city-hero,.kv-own-shell .kv-booking-sales-hero,.kv-own-shell .kv-about-hero,.kv-own-shell .kv-gallery-hero,.kv-own-shell .kv-simple-hero { min-height:0; padding:60px 0 44px; }
.kv-own-shell .kv-locations-hero h1,.kv-own-shell .kv-city-hero h1,.kv-own-shell .kv-booking-sales-hero h1,.kv-own-shell .kv-about-hero h1,.kv-own-shell .kv-gallery-hero h1,.kv-own-shell .kv-simple-hero h1 { max-width:960px; margin:0 auto 20px; color:#f5f1e7; font-size:clamp(32px,4.1vw,56px); line-height:1.12; letter-spacing:-.035em; text-transform:none; font-weight:500; text-wrap:balance; }
.kv-own-shell .kv-locations-hero p,.kv-own-shell .kv-city-hero p,.kv-own-shell .kv-booking-sales-hero > .kv-shell-content > p,.kv-own-shell .kv-gallery-hero p { max-width:760px; font-size:17px; line-height:1.65; color:#c5c1b8; text-transform:none; letter-spacing:0; }
.kv-own-shell .kv-booking-eyebrow,.kv-own-shell .kv-booking-kicker { color:#d4b775; }
.kv-own-shell .kv-locations-directory,.kv-own-shell .kv-city-section,.kv-own-shell .kv-booking-benefits,.kv-own-shell .kv-booking-process,.kv-own-shell .kv-booking-planning,.kv-own-shell .kv-booking-faq,.kv-own-shell .kv-about-section { padding-top:48px; padding-bottom:48px; }
.kv-own-shell .kv-locations-heading h2,.kv-own-shell .kv-city-heading h2,.kv-own-shell .kv-booking-section-head h2,.kv-own-shell .kv-structure-next h2,.kv-own-shell .kv-locations-search-band h2 { text-transform:none; letter-spacing:-.025em; font-size:clamp(26px,3vw,38px); line-height:1.2; }
.kv-own-shell .kv-booking-actions a,.kv-own-shell .kv-booking-action-primary,.kv-own-shell .kv-home-actions a { min-height:46px; padding:12px 20px; border-radius:6px; font-size:15px; line-height:1.4; font-weight:600; text-transform:none; letter-spacing:0; text-align:center; }
.kv-own-shell a.kv-booking-action-primary,.kv-own-shell a.kv-home-action-primary { background:#d4b775; color:#111; border:1px solid #d4b775; text-decoration:none; }
.kv-own-shell a.kv-booking-action-primary:hover,.kv-own-shell a.kv-home-action-primary:hover { background:#e3ca91; border-color:#e3ca91; }
.kv-own-shell .kv-booking-actions { flex-wrap:wrap; gap:12px; }
.kv-region-links { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:0 0 42px; text-align:left; }
.kv-region-links a { position:relative; display:grid; align-content:center; gap:8px; min-height:126px; padding:24px 54px 24px 26px; background:linear-gradient(120deg,#242017,#171613); border:1px solid #68583a; border-radius:10px; text-decoration:none; }
.kv-region-links a:hover { border-color:#d4b775; }
.kv-region-links span { font-size:24px; font-weight:600; color:#f5f1e7; }
.kv-region-links small { font-size:14px; line-height:1.5; color:#c5c1b8; }
.kv-region-links b { position:absolute; right:24px; top:28px; color:#d4b775; font-size:25px; }
.kv-city-choice { border:1px solid #514631; background:#191713; padding:24px; border-radius:10px; }
.kv-city-choice-head { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:20px; }
.kv-city-choice-head h4,.kv-directory-subtitle { margin:0 0 8px; font-size:23px; line-height:1.3; color:#f5f1e7; text-transform:none; }
.kv-city-choice-head p { margin:0; color:#c5c1b8; font-size:14px; line-height:1.6; }
.kv-city-choice-head > a { color:#e5ca8a; font-size:14px; line-height:1.6; text-underline-offset:4px; flex-shrink:0; }
.kv-directory-subtitle { margin-top:32px; margin-bottom:18px; }
.kv-own-shell .kv-location-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.kv-own-shell .kv-location-card { min-height:148px; display:flex; flex-direction:column; align-items:stretch; justify-content:space-between; gap:18px; padding:20px; border:1px solid #494132; border-radius:8px; }
.kv-own-shell .kv-location-card-copy strong { font-size:18px; line-height:1.4; text-transform:none; letter-spacing:0; }
.kv-own-shell .kv-location-card-action { color:#e5ca8a; font-size:13px; text-transform:none; letter-spacing:0; }
.kv-breadcrumbs { margin-bottom:26px; text-align:left; }
.kv-breadcrumbs ol { display:flex; flex-wrap:wrap; gap:6px 10px; margin:0; padding:0; list-style:none; }
.kv-breadcrumbs li { display:flex; gap:10px; font-size:12px; line-height:1.7; color:#bcb7ac; }
.kv-breadcrumbs li + li::before { content:'/'; color:#7b705c; }
.kv-breadcrumbs a { color:#ddc99c; text-underline-offset:3px; }
.kv-reference-links { display:flex; justify-content:center; gap:8px; margin-top:24px; }
.kv-reference-links a { padding:11px 20px; color:#e5ca8a; border:1px solid #68583a; border-radius:6px; font-size:14px; text-decoration:none; }
.kv-reference-links a[aria-current=page] { background:#d4b775; color:#111; border-color:#d4b775; }
.kv-structure-next { display:flex; align-items:center; gap:42px; justify-content:space-between; margin-top:36px; margin-bottom:64px; padding:32px; border:1px solid #68583a; background:#1d1a14; border-radius:10px; }
.kv-structure-next > div:first-child { max-width:650px; }
.kv-structure-next p { font-size:16px; line-height:1.7; color:#c5c1b8; }
.kv-structure-next .kv-booking-actions { flex-shrink:0; flex-direction:column; }
.kv-own-shell [id] { scroll-margin-top:120px; }
@media(max-width:1099px) {
 .kv-own-shell .kv-footer-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .kv-city-choice-head { display:block; }
 .kv-city-choice-head > a { display:inline-block; margin-top:12px; }
}
@media(max-width:767px) {
 .kv-own-shell .kv-locations-hero,.kv-own-shell .kv-city-hero,.kv-own-shell .kv-booking-sales-hero,.kv-own-shell .kv-about-hero,.kv-own-shell .kv-gallery-hero,.kv-own-shell .kv-simple-hero { padding:36px 0 30px; }
 .kv-own-shell .kv-locations-hero h1,.kv-own-shell .kv-city-hero h1,.kv-own-shell .kv-booking-sales-hero h1,.kv-own-shell .kv-about-hero h1,.kv-own-shell .kv-gallery-hero h1,.kv-own-shell .kv-simple-hero h1 { font-size:34px; line-height:1.13; }
 .kv-own-shell .kv-locations-hero p,.kv-own-shell .kv-city-hero p,.kv-own-shell .kv-gallery-hero p { font-size:16px; }
 .kv-own-shell .kv-locations-directory,.kv-own-shell .kv-city-section,.kv-own-shell .kv-booking-benefits,.kv-own-shell .kv-booking-process,.kv-own-shell .kv-booking-planning,.kv-own-shell .kv-booking-faq,.kv-own-shell .kv-about-section { padding-top:30px; padding-bottom:30px; }
 .kv-own-shell .kv-location-grid,.kv-region-links { grid-template-columns:1fr; }
 .kv-region-links { gap:12px; margin-bottom:30px; }
 .kv-region-links a { min-height:106px; padding:20px 48px 20px 20px; }
 .kv-region-links span { font-size:22px; }
 .kv-city-choice { padding:16px; }
 .kv-own-shell .kv-location-card { min-height:126px; }
 .kv-own-shell .kv-footer-grid { grid-template-columns:1fr 1fr; gap:24px 20px; }
 .kv-own-shell .kv-footer-grid > section:first-child { grid-column:1 / -1; }
 .kv-structure-next { display:block; padding:24px; margin-bottom:40px; }
 .kv-structure-next .kv-booking-actions { margin-top:20px; }
 .kv-breadcrumbs { margin-bottom:20px; }
 .kv-breadcrumbs li { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { .kv-own-shell { scroll-behavior:auto; } }
