:root {
  --bg: #06090d;
  --bg-soft: #0b1118;
  --panel: #0d141c;
  --panel-2: #111a24;
  --text: #f7fbff;
  --muted: #8ea0b4;
  --line: rgba(255,255,255,.10);
  --blue: #1596ff;
  --blue-2: #56b8ff;
  --blue-glow: rgba(21,150,255,.23);
  --success: #8dd6ff;
  --shadow: 0 24px 80px rgba(0,0,0,.35);
  --radius-lg: 30px;
  --radius-md: 22px;
  --radius-sm: 14px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 85% 5%, rgba(21,150,255,.12), transparent 28rem),
    var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
img { display: block; max-width: 100%; }
.site-shell { overflow: hidden; }
.section-pad { width: min(var(--max), calc(100% - 40px)); margin-inline: auto; }
.section { padding-top: 108px; }

.site-header {
  width: min(var(--max), calc(100% - 40px));
  margin: 18px auto 0;
  min-height: 72px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 26px;
  align-items: center;
  border: 1px solid var(--line);
  background: rgba(8,13,19,.78);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-radius: 22px;
  padding: 10px 12px 10px 10px;
  position: sticky;
  top: 14px;
  z-index: 20;
  box-shadow: 0 14px 50px rgba(0,0,0,.24);
}
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: max-content; }
.brand img { width: 50px; height: 50px; object-fit: cover; border-radius: 14px; border: 1px solid rgba(255,255,255,.12); }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { font-size: .76rem; letter-spacing: .13em; }
.brand-copy small { color: var(--blue-2); letter-spacing: .22em; font-size: .54rem; }
.desktop-nav { display: flex; justify-content: center; gap: 30px; }
.desktop-nav a { color: #b7c3cf; font-size: .88rem; transition: .2s ease; }
.desktop-nav a:hover { color: white; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 52px;
  padding: 0 22px;
  border-radius: 14px;
  font-weight: 780;
  letter-spacing: -.01em;
  border: 1px solid transparent;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 46px; padding-inline: 18px; font-size: .85rem; }
.button-primary {
  background: linear-gradient(135deg, #168fff, #3fb2ff);
  color: #03101b;
  box-shadow: 0 12px 35px rgba(21,150,255,.23), inset 0 1px rgba(255,255,255,.35);
}
.button-primary:hover { box-shadow: 0 16px 44px rgba(21,150,255,.34), inset 0 1px rgba(255,255,255,.35); }
.button-outline { border-color: rgba(86,184,255,.35); background: rgba(21,150,255,.06); color: #bfe7ff; }
.button-ghost { border-color: var(--line); background: rgba(255,255,255,.035); }
.menu-button { display: none; width: 46px; height: 46px; border: 1px solid var(--line); background: rgba(255,255,255,.04); border-radius: 14px; padding: 0; }
.menu-button span { width: 19px; height: 1px; background: white; display: block; margin: 5px auto; transition: .2s; }
.mobile-menu { display: none; }

.hero {
  min-height: 760px;
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  align-items: center;
  gap: 70px;
  padding-top: 90px;
  padding-bottom: 75px;
}
.eyebrow { display: flex; align-items: center; gap: 10px; color: #8ba2b8; letter-spacing: .16em; font-size: .72rem; font-weight: 760; }
.eyebrow span { width: 26px; height: 1px; background: var(--blue); box-shadow: 0 0 14px var(--blue); }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(3.8rem, 7vw, 6.8rem); line-height: .91; letter-spacing: -.064em; margin: 24px 0 28px; max-width: 720px; }
h1 em { font-style: normal; color: var(--blue-2); text-shadow: 0 0 34px rgba(21,150,255,.22); }
.hero-text { max-width: 620px; font-size: 1.12rem; line-height: 1.7; color: #aab7c4; }
.hero-actions { display: flex; gap: 12px; margin-top: 34px; }
.trust-row { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 26px; color: #8293a4; font-size: .78rem; }
.trust-row span::before { content: "✦"; color: var(--blue); margin-right: 8px; }
.hero-visual { position: relative; min-height: 520px; display: grid; place-items: center; }
.hero-glow { position: absolute; width: 370px; height: 370px; border-radius: 50%; background: rgba(21,150,255,.17); filter: blur(85px); }
.logo-card {
  position: relative;
  width: min(440px, 85%);
  aspect-ratio: 1;
  border: 1px solid rgba(95,191,255,.22);
  border-radius: 38px;
  padding: 22px;
  background: linear-gradient(145deg, rgba(20,28,38,.95), rgba(7,11,16,.8));
  box-shadow: 0 34px 90px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.05), 0 0 80px rgba(21,150,255,.1);
  transform: rotate(2deg);
}
.logo-card::after { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(255,255,255,.05); border-radius: 31px; pointer-events: none; }
.logo-card img { width: 100%; height: 100%; object-fit: cover; border-radius: 26px; }
.floating-card { position: absolute; display: grid; gap: 5px; background: rgba(8,13,19,.9); border: 1px solid var(--line); padding: 15px 17px; border-radius: 16px; box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.floating-card small { font-size: .58rem; letter-spacing: .17em; color: var(--blue-2); }
.floating-card strong { font-size: .82rem; }
.floating-card-one { left: 1%; top: 15%; }
.floating-card-two { right: -1%; bottom: 15%; }

.mini-banner {
  width: min(var(--max), calc(100% - 40px));
  margin-inline: auto;
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  padding: 24px 30px;
  border: 1px solid rgba(21,150,255,.22);
  background: linear-gradient(95deg, rgba(21,150,255,.11), rgba(255,255,255,.025));
  border-radius: 20px;
}
.mini-banner p { margin: 0; font-size: .78rem; letter-spacing: .22em; color: #a9ddff; font-weight: 800; }
.mini-banner a { color: white; font-weight: 760; }
.mini-banner a span { color: var(--blue-2); margin-left: 9px; }

.section-heading { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: end; margin-bottom: 46px; }
h2 { font-size: clamp(2.6rem, 5vw, 4.5rem); line-height: .98; letter-spacing: -.055em; margin: 20px 0 0; }
.section-heading > p { color: #8fa1b2; line-height: 1.75; max-width: 520px; margin: 0; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.service-card {
  min-height: 510px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 26px;
  background: linear-gradient(150deg, rgba(18,27,37,.95), rgba(9,14,20,.9));
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  position: relative;
  overflow: hidden;
}
.service-card.featured { border-color: rgba(21,150,255,.34); box-shadow: 0 20px 70px rgba(21,150,255,.06); }
.service-card.featured::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 15% 0%, rgba(21,150,255,.14), transparent 40%); pointer-events: none; }
.service-number { color: #4c5f72; font-size: .68rem; letter-spacing: .15em; margin-bottom: 54px; }
.service-kicker { color: var(--blue-2); letter-spacing: .16em; font-size: .66rem; font-weight: 800; margin-bottom: 12px; }
.service-card h3 { font-size: 2rem; letter-spacing: -.04em; margin-bottom: 13px; }
.service-card > div > p:not(.service-kicker) { color: #92a2b2; line-height: 1.65; }
.service-card ul { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 13px; color: #bac5cf; font-size: .9rem; }
.service-card li::before { content: "•"; color: var(--blue); margin-right: 10px; }
.service-footer { display: flex; align-items: end; justify-content: space-between; gap: 14px; border-top: 1px solid var(--line); padding-top: 22px; margin-top: 30px; }
.service-footer > div { display: grid; gap: 3px; flex: 1; min-width: 0; }
.service-footer small { color: #71859a; font-size: .58rem; letter-spacing: .16em; }
.service-footer strong { font-size: 1.7rem; }
.service-footer > a { width: 48px; height: 48px; flex-shrink: 0; display: grid; place-items: center; border: 1px solid rgba(21,150,255,.22); background: rgba(21,150,255,.08); border-radius: 14px; color: var(--blue-2); font-size: 1.2rem; }
.price-breakdown { display: grid; gap: 11px; margin: 12px 0 0; font-size: .875rem; }
.price-breakdown > div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.price-breakdown dt { color: #b7c3cf; }
.price-breakdown dd { margin: 0; font-size: 1rem; font-weight: 780; font-variant-numeric: tabular-nums; }
.pricing-note, .service-price-note { color: #8ea0b4; margin: 20px 2px 0; font-size: .875rem; line-height: 1.6; }
.service-price-note { margin-top: 12px; }

.process-section { padding-top: 120px; }
.process-panel {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 70px;
  padding: 60px;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(21,150,255,.2);
  background: linear-gradient(125deg, rgba(21,150,255,.09), rgba(13,20,28,.93) 36%, rgba(8,12,17,.97));
  box-shadow: var(--shadow);
}
.process-copy p { color: #93a3b3; line-height: 1.7; max-width: 500px; margin: 24px 0 30px; }
.steps { display: grid; }
.steps article { display: grid; grid-template-columns: 52px 1fr; gap: 22px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.steps article:last-child { border-bottom: 0; }
.steps article > span { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; background: rgba(21,150,255,.09); border: 1px solid rgba(21,150,255,.2); color: var(--blue-2); font-weight: 800; }
.steps h3 { font-size: 1.05rem; margin-bottom: 7px; }
.steps p { margin: 0; color: #8698a9; line-height: 1.6; font-size: .9rem; }

.social-section { padding-top: 88px; }
.social-card { display: grid; grid-template-columns: 1fr auto; gap: 35px; align-items: center; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); padding: 44px 0; }
.social-card h2 { font-size: clamp(2.4rem, 4vw, 3.5rem); margin-top: 16px; }
.social-card p { color: #8fa1b2; line-height: 1.65; margin: 18px 0 0; }

.area-heading { margin-bottom: 36px; }
.area-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.area-pill { min-height: 124px; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.025); }
.area-pill small { color: #54697d; font-size: .63rem; letter-spacing: .14em; }
.area-pill strong { font-size: 1.18rem; }
.area-callout { margin-top: 14px; padding: 18px 20px; display: flex; justify-content: space-between; gap: 20px; border-radius: 15px; background: rgba(21,150,255,.07); border: 1px solid rgba(21,150,255,.16); }
.area-callout p { margin: 0; color: #a7b7c6; }
.area-callout a { color: #b8e4ff; font-weight: 750; }

.faq-heading { grid-template-columns: 1fr; }
.faq-list { max-width: 900px; margin-left: auto; }
details { border-top: 1px solid var(--line); }
details:last-child { border-bottom: 1px solid var(--line); }
summary { list-style: none; cursor: pointer; min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 1.05rem; font-weight: 700; }
summary::-webkit-details-marker { display: none; }
summary span { color: var(--blue-2); font-size: 1.45rem; font-weight: 300; transition: transform .2s; }
details[open] summary span { transform: rotate(45deg); }
details p { max-width: 720px; color: #8799aa; line-height: 1.7; padding: 0 0 26px; margin: -4px 0 0; }

.final-cta {
  margin-top: 120px;
  margin-bottom: 40px;
  padding-block: 56px;
  display: grid;
  grid-template-columns: 120px 1fr auto;
  align-items: center;
  gap: 34px;
  border: 1px solid rgba(21,150,255,.23);
  border-radius: 26px;
  padding-inline: 38px;
  background: linear-gradient(105deg, rgba(21,150,255,.11), rgba(9,14,20,.96) 46%, rgba(255,255,255,.02));
  position: relative;
  overflow: hidden;
}
.final-cta > * { position: relative; z-index: 1; }
.final-cta > img { width: 118px; height: 118px; border-radius: 20px; object-fit: cover; border: 1px solid var(--line); }
.final-cta h2 { font-size: clamp(2rem, 4vw, 3.5rem); margin: 8px 0 10px; }
.final-cta p:not(.service-kicker) { color: #91a1b0; margin: 0; }
.final-actions { display: flex; gap: 10px; }
.cta-glow { position: absolute; width: 300px; height: 300px; left: -100px; border-radius: 50%; background: rgba(21,150,255,.16); filter: blur(80px); }

.site-footer { border-top: 1px solid var(--line); min-height: 180px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 40px; padding-top: 38px; padding-bottom: 44px; }
.footer-brand { display: flex; align-items: center; gap: 14px; }
.footer-brand img { width: 56px; height: 56px; border-radius: 14px; object-fit: cover; }
.footer-brand > div { display: grid; gap: 5px; }
.footer-brand strong { font-size: .77rem; letter-spacing: .13em; }
.footer-brand span { color: var(--blue-2); font-size: .58rem; letter-spacing: .18em; }
.footer-links { display: flex; gap: 22px; font-size: .82rem; color: #8ea0b2; }
.copyright { grid-column: 1 / -1; margin: -5px 0 0; color: #4e6072; font-size: .7rem; }
.mobile-booking-bar { display: none; }

@media (max-width: 980px) {
  .desktop-nav, .desktop-cta { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .menu-button { display: block; }
  .mobile-menu { width: min(var(--max), calc(100% - 40px)); margin: 8px auto 0; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: rgba(8,13,19,.96); position: fixed; left: 20px; right: 20px; top: 98px; z-index: 19; box-shadow: var(--shadow); }
  .mobile-menu:not([hidden]) { display: grid; gap: 4px; }
  .mobile-menu > a:not(.button) { padding: 14px 10px; color: #b9c5cf; }
  .mobile-menu .button { margin-top: 6px; }
  .hero { grid-template-columns: 1fr; gap: 30px; padding-top: 80px; }
  .hero-visual { min-height: 500px; }
  .section-heading { grid-template-columns: 1fr; gap: 25px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 410px; }
  .process-panel { grid-template-columns: 1fr; padding: 44px 34px; }
  .social-card { grid-template-columns: 1fr; }
  .area-grid { grid-template-columns: repeat(2, 1fr); }
  .final-cta { grid-template-columns: 94px 1fr; }
  .final-cta > img { width: 94px; height: 94px; }
  .final-actions { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .section-pad, .site-header, .mini-banner, .mobile-menu { width: calc(100% - 24px); }
  .site-header { margin-top: 10px; top: 8px; min-height: 64px; border-radius: 18px; }
  .brand img { width: 44px; height: 44px; border-radius: 12px; }
  .brand-copy strong { font-size: .67rem; }
  .brand-copy small { font-size: .48rem; }
  .mobile-menu { left: 12px; right: 12px; top: 80px; }
  .hero { min-height: auto; padding-top: 64px; padding-bottom: 54px; }
  h1 { font-size: clamp(3.35rem, 17vw, 5.2rem); }
  .hero-text { font-size: 1rem; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .hero-actions .button { padding-inline: 14px; }
  .trust-row { display: grid; gap: 10px; }
  .hero-visual { min-height: 390px; }
  .logo-card { width: 82%; border-radius: 28px; padding: 14px; }
  .logo-card img { border-radius: 20px; }
  .floating-card { padding: 12px 13px; }
  .floating-card-one { left: 0; top: 8%; }
  .floating-card-two { right: 0; bottom: 8%; }
  .mini-banner { display: grid; gap: 12px; padding: 20px; }
  .section { padding-top: 82px; }
  h2 { font-size: clamp(2.45rem, 12vw, 3.8rem); }
  .service-card { padding: 22px; min-height: 430px; }
  .process-section { padding-top: 88px; }
  .process-panel { padding: 32px 22px; border-radius: 22px; gap: 40px; }
  .steps article { grid-template-columns: 44px 1fr; gap: 14px; }
  .area-grid { grid-template-columns: 1fr 1fr; }
  .area-pill { min-height: 110px; padding: 16px; }
  .area-callout { display: grid; }
  .final-cta { margin-top: 90px; grid-template-columns: 70px 1fr; gap: 18px; padding: 28px 20px; }
  .final-cta > img { width: 70px; height: 70px; border-radius: 16px; }
  .final-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .site-footer { grid-template-columns: 1fr; padding-bottom: 100px; }
  .footer-links { display: grid; gap: 13px; }
  .copyright { grid-column: auto; }
  .mobile-booking-bar { display: flex; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 30; min-height: 56px; align-items: center; justify-content: space-between; padding: 0 20px; border-radius: 17px; background: linear-gradient(135deg, #168fff, #46b8ff); color: #03101b; font-weight: 850; box-shadow: 0 16px 50px rgba(21,150,255,.32); border: 1px solid rgba(255,255,255,.28); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* Booking */
.booking-section { scroll-margin-top: 105px; }
.booking-shell {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: 54px;
  align-items: start;
  padding: 34px;
  border: 1px solid rgba(21,150,255,.2);
  border-radius: var(--radius-lg);
  background: linear-gradient(145deg, rgba(21,150,255,.06), rgba(10,15,21,.96) 28%, rgba(7,11,16,.98));
  box-shadow: var(--shadow);
}
.booking-intro { position: sticky; top: 112px; padding: 28px 16px 28px 14px; }
.booking-intro h2 { font-size: clamp(2.55rem, 4.5vw, 4.3rem); margin-top: 18px; }
.booking-intro > p { color: #93a4b4; line-height: 1.72; margin: 22px 0 34px; max-width: 470px; }
.booking-points { display: grid; gap: 10px; }
.booking-points > div {
  display: grid;
  grid-template-columns: 40px 1fr;
  column-gap: 13px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
}
.booking-points > div:last-child { border-bottom: 1px solid var(--line); }
.booking-points span { grid-row: 1 / 3; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; background: rgba(21,150,255,.08); border: 1px solid rgba(21,150,255,.18); color: var(--blue-2); font-size: .68rem; font-weight: 800; }
.booking-points strong { font-size: .92rem; }
.booking-points small { color: #75899c; line-height: 1.45; margin-top: 3px; }

.booking-form {
  background: rgba(8,13,19,.9);
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 28px;
}
.form-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.booking-form fieldset { border: 0; padding: 0 0 28px; margin: 0 0 28px; border-bottom: 1px solid var(--line); }
.booking-form fieldset:last-of-type { margin-bottom: 0; }
.booking-form legend { width: 100%; display: flex; align-items: center; gap: 11px; padding: 0; margin: 0 0 18px; font-weight: 800; font-size: 1rem; }
.booking-form legend span { color: var(--blue-2); font-size: .63rem; letter-spacing: .12em; }
.form-grid { display: grid; gap: 14px; }
.form-grid.two { grid-template-columns: 1fr 1fr; }
.booking-form label:not(.choice-card):not(.consent-row):not(.extras-grid label) { display: grid; gap: 8px; }
.booking-form label > span { color: #aebdcb; font-size: .78rem; font-weight: 720; }
.booking-form label span em { color: #667b8f; font-style: normal; font-weight: 500; }
.booking-form input[type="text"],
.booking-form input[type="tel"],
.booking-form input[type="email"],
.booking-form input[type="date"],
.booking-form select,
.booking-form textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.11);
  background: #0b121a;
  color: var(--text);
  border-radius: 13px;
  min-height: 50px;
  padding: 0 14px;
  outline: 0;
  transition: border-color .18s, box-shadow .18s, background .18s;
}
.booking-form textarea { min-height: 112px; padding-top: 13px; resize: vertical; }
.booking-form input::placeholder, .booking-form textarea::placeholder { color: #526577; }
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus { border-color: rgba(86,184,255,.6); box-shadow: 0 0 0 3px rgba(21,150,255,.08); background: #0d1620; }
.full-field { margin-top: 14px; }
.choice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.choice-card { position: relative; cursor: pointer; }
.choice-card input { position: absolute; opacity: 0; pointer-events: none; }
.choice-card > span { min-height: 128px; display: flex; flex-direction: column; align-items: flex-start; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.025); padding: 15px; border-radius: 15px; transition: .18s ease; }
.choice-card strong { color: white; font-size: .92rem; margin-bottom: 5px; }
.choice-card small { color: #718597; line-height: 1.4; }
.choice-card b { margin-top: auto; color: var(--blue-2); font-size: .88rem; }
.choice-card:hover > span { border-color: rgba(21,150,255,.28); background: rgba(21,150,255,.05); }
.choice-card input:checked + span { border-color: rgba(86,184,255,.66); background: rgba(21,150,255,.1); box-shadow: inset 0 0 0 1px rgba(21,150,255,.18); }
.extras-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.extras-grid label, .consent-row { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.extras-grid label { min-height: 46px; padding: 0 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.02); }
.extras-grid input, .consent-row input { accent-color: var(--blue); width: 17px; height: 17px; flex: 0 0 auto; }
.extras-grid span { font-size: .78rem !important; font-weight: 650 !important; color: #9fb0be !important; }
.field-note { color: #64798b; font-size: .72rem; line-height: 1.55; margin: 10px 0 0; }
.consent-row { margin-top: 17px; color: #889aaa; font-size: .75rem; line-height: 1.45; }
.booking-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 27px; }
.booking-submit > div { display: grid; gap: 4px; }
.booking-submit strong { font-size: .85rem; }
.booking-submit small { color: #687c8e; font-size: .7rem; }

@media (max-width: 980px) {
  .booking-shell { grid-template-columns: 1fr; gap: 22px; }
  .booking-intro { position: static; padding: 16px 8px 6px; }
}

@media (max-width: 640px) {
  .booking-shell { padding: 14px; border-radius: 22px; }
  .booking-form { padding: 20px 16px; border-radius: 18px; }
  .form-grid.two, .choice-grid, .extras-grid { grid-template-columns: 1fr; }
  .choice-card > span { min-height: 102px; }
  .booking-submit { display: grid; }
  .booking-submit .button { width: 100%; }
}


/* Premium service area */
.service-area-showcase {
  display: grid;
  gap: 18px;
}
.service-area-intro-card {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 20px;
  align-items: center;
  padding: 28px;
  border-radius: 24px;
  border: 1px solid rgba(86,184,255,.18);
  background:
    radial-gradient(circle at 8% 50%, rgba(21,150,255,.16), transparent 180px),
    linear-gradient(135deg, rgba(255,255,255,.035), rgba(9,15,22,.96));
  box-shadow: 0 18px 50px rgba(0,0,0,.18);
}
.service-area-icon {
  width: 72px;
  height: 72px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  font-size: 1.8rem;
  color: #dff3ff;
  background: linear-gradient(145deg, rgba(21,150,255,.2), rgba(21,150,255,.06));
  border: 1px solid rgba(86,184,255,.28);
  box-shadow: inset 0 1px rgba(255,255,255,.08);
}
.service-area-kicker {
  margin: 0 0 7px;
  color: #7fbce8;
  letter-spacing: .16em;
  font-size: .68rem;
  font-weight: 800;
}
.service-area-intro-card h3 {
  margin: 0 0 10px;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
}
.service-area-intro-card p:last-child {
  margin: 0;
  color: #91a4b7;
  line-height: 1.65;
  max-width: 760px;
}
.area-grid-featured {
  grid-template-columns: repeat(4, 1fr);
}
.area-pill {
  min-height: 150px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015)),
    var(--panel);
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.area-pill:hover {
  transform: translateY(-4px);
  border-color: rgba(86,184,255,.28);
  background:
    linear-gradient(180deg, rgba(21,150,255,.08), rgba(255,255,255,.018)),
    var(--panel);
}
.area-pill-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.area-pill small {
  color: #5f7286;
  font-size: .66rem;
  letter-spacing: .16em;
}
.area-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--blue-2);
  box-shadow: 0 0 0 6px rgba(21,150,255,.10);
}
.area-pill > div:last-child {
  display: grid;
  gap: 7px;
}
.area-pill strong {
  font-size: 1.3rem;
}
.area-pill span:not(.area-dot) {
  color: #7f93a7;
  font-size: .82rem;
}
.premium-callout {
  margin-top: 0;
  padding: 22px 24px;
  align-items: center;
  background: linear-gradient(135deg, rgba(21,150,255,.09), rgba(255,255,255,.025));
  border-color: rgba(21,150,255,.18);
}
.premium-callout small {
  display: block;
  margin-bottom: 7px;
  color: #6f94b2;
  font-size: .66rem;
  letter-spacing: .15em;
  font-weight: 800;
}
.premium-callout p {
  max-width: 700px;
}

@media (max-width: 980px) {
  .area-grid-featured { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .service-area-intro-card {
    grid-template-columns: 1fr;
    padding: 22px;
  }
  .service-area-icon {
    width: 58px;
    height: 58px;
    border-radius: 17px;
  }
  .area-grid-featured { grid-template-columns: 1fr 1fr; }
  .area-pill { min-height: 132px; padding: 16px; }
}

/* Readable type and the appointment calendar. */
html{scroll-padding-top:100px}body{font-size:16px}.skip-link{position:absolute;top:-70px;left:20px;background:#fff;color:#000;padding:12px;z-index:100}.skip-link:focus{top:8px}
:focus-visible{outline:3px solid #74cfff;outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed}
.brand-copy small,.service-kicker,.eyebrow,.service-number,.service-footer small,.floating-card small,.service-area-kicker,.premium-callout small,.area-pill small{font-size:.75rem}
.brand-copy strong{font-size:.875rem}.brand-copy small{letter-spacing:.13em}.desktop-nav{gap:20px}.pricing-note,.trust-row,.booking-form label>span,.extras-grid span,.field-note,.consent-row,.booking-submit small,.booking-points small,.copyright,.area-pill span:not(.area-dot){font-size:.875rem!important;color:#a8bbcc!important;line-height:1.6}
.booking-form label>span,.booking-form legend{color:#d1e0ec!important}.choice-card small{font-size:.875rem}.choice-card input:focus-visible+span{outline:3px solid #74cfff;outline-offset:3px}.choice-card input:disabled+span{opacity:.5}.form-hidden{display:none}.full-field input{margin-top:0}
.hero{min-height:630px;padding-top:58px;padding-bottom:58px}.hero h1{font-size:clamp(3.6rem,6.6vw,5.7rem);line-height:1.02;letter-spacing:-.045em}.section h2{line-height:1.08}.hero-visual{min-height:420px}.hero .logo-card{background:#030507;transform:none;border-radius:28px;padding:12px;box-shadow:0 20px 70px #0008}.hero .logo-card img{border-radius:20px}.floating-card{padding:12px 16px}.floating-card strong{font-size:.875rem}.service-card{min-height:460px}.service-number{margin-bottom:34px}
.booking-shell{grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);gap:32px}.booking-form{min-width:0}.booking-form fieldset{min-width:0}.booking-calendar{border:1px solid #294456;border-radius:18px;background:#09121c;padding:18px;margin:8px 0 18px}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:20px}.calendar-nav h3{margin:0;font-size:1.25rem;letter-spacing:-.025em}.calendar-nav button{border:1px solid #2d4659;border-radius:10px;width:42px;height:42px;background:#111f2c;color:#d9f0ff;font-size:1.2rem}.calendar-nav button:disabled{opacity:.3}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-weekdays{color:#aac2d5;text-align:center;font-size:.875rem;margin-bottom:10px}.calendar-day{min-width:0;min-height:64px;border:1px solid #24405b;border-radius:11px;background:#101f2e;color:#e9f4ff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px 2px;transition:background .15s,border-color .15s}.calendar-day strong{font-size:1rem}.calendar-day small{font-size:.75rem;white-space:nowrap;color:#94d5ff}.calendar-day:hover:not(:disabled){background:#123756;border-color:#51b8ff}.calendar-day:disabled{background:#181d23;border-color:#30363d;color:#8895a1}.calendar-day:disabled small{color:#aeb7bf}.calendar-day.past{opacity:.4;background:transparent;border-color:transparent}.calendar-day[aria-pressed=true]{color:#031421;background:#4bbafa;border-color:#78d8ff;box-shadow:0 0 0 2px #4bbafa33}.calendar-day[aria-pressed=true] small{color:#031421}.calendar-legend{display:flex;gap:15px;flex-wrap:wrap;margin:18px 0 10px;color:#acc2d5;font-size:.75rem}.calendar-legend span{display:flex;gap:6px;align-items:center}.calendar-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}.open-key{background:#162e45;border:1px solid #3d6c95}.full-key{background:#383e45}.chosen-key{background:#4bbafa}.availability-status{font-size:.875rem;color:#acc2d5;margin:12px 0 0;line-height:1.6}.selected-date{color:#6ac8ff;font-weight:650;line-height:1.5}.form-message:not(:empty){padding:16px;background:#361e24;color:#ffd6d6;border:1px solid #a14c54;border-radius:12px;margin-top:20px}.booking-success{border:1px solid #4fb6ec;background:#0d2231;border-radius:20px;padding:34px}.booking-success h3{font-size:2rem;margin-top:10px}.booking-success p{line-height:1.7;color:#c0d3e3}.success-reference{font-size:.875rem;letter-spacing:.08em;color:#69c8ff}.booking-success:focus{outline:none}.booking-submit .button{white-space:nowrap}.extras-grid label:has(input:disabled){opacity:.45}.button[disabled]{opacity:.55;transform:none}.service-area-showcase{grid-template-columns:1fr}.area-grid{gap:14px}.area-pill{min-height:175px;border-top:3px solid #25b7f2;background:linear-gradient(145deg,#142d43,#0b121b)}.area-pill:nth-child(2){border-top-color:#57caff}.area-pill:nth-child(3){border-top-color:#87dfff}.area-pill:nth-child(4){border-top-color:#b5ebff}.area-pill strong{font-size:1.6rem}.area-mark{font-size:2.4rem!important;font-weight:800;color:#ffffff14!important;letter-spacing:-.04em}.area-pill>div{display:flex;justify-content:space-between;align-items:baseline}.area-pill a{margin-top:12px;color:#7aceff;font-size:.875rem}.premium-callout{gap:20px}.form-hidden[hidden],[hidden]{display:none!important}
@media(max-width:1050px){.brand-copy{display:none}.desktop-nav{gap:18px}.booking-shell{grid-template-columns:1fr}.booking-intro{position:static}.booking-points{display:none}}
@media(max-width:640px){.section-pad,.site-header,.mini-banner{width:calc(100% - 28px)}.hero{padding-top:44px;gap:26px;min-height:0}.hero h1{font-size:clamp(3rem,12vw,4rem);line-height:1.04}.hero-visual{min-height:310px}.logo-card{width:82%;max-width:360px}.floating-card-one{top:4%;left:0}.floating-card-two{bottom:2%;right:0}.section{padding-top:70px}.booking-shell{padding:8px;gap:20px}.booking-form{padding:20px 12px}.booking-calendar{padding:12px 8px}.calendar-days,.calendar-weekdays{gap:4px}.calendar-day{min-height:57px;border-radius:8px}.calendar-day small{font-size:.75rem}.calendar-nav h3{font-size:1.15rem}.calendar-legend{gap:10px}.choice-grid.service-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.choice-card>span{padding:10px 8px;min-height:110px}.choice-card strong{font-size:.875rem}.choice-card small{font-size:.75rem}.booking-submit .button{white-space:normal}.area-grid-featured{grid-template-columns:repeat(2,minmax(0,1fr))}.area-pill{padding:15px;min-height:155px}.area-pill strong{font-size:1.25rem}.area-mark{font-size:1.65rem!important}.brand-copy{display:grid}.brand-copy small{font-size:.75rem}.hero-actions .button{padding-inline:16px}.final-cta{margin-top:70px}.process-panel{padding:26px}.calendar-legend{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.choice-card input{position:absolute;top:10px;right:10px;opacity:1;pointer-events:auto;width:16px;height:16px;margin:0;accent-color:#46b8ff}.choice-card>span{padding-top:32px}.choice-card strong{padding-right:1px}

/* Final booking layout: existing brand, fewer repeated sections. */
.hero{min-height:650px;padding-top:60px;padding-bottom:48px}
.hero h1{line-height:1.02}
.service-card{min-height:420px}
.service-number{margin-bottom:24px}
.service-card li{line-height:1.55}
.booking-shell{grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:24px;padding:28px}
.booking-intro h2{font-size:clamp(2.3rem,3.7vw,3.4rem);line-height:1.08}
.booking-help{border-top:1px solid var(--line);padding-top:24px;line-height:1.7}
.booking-help strong{font-size:1.1rem;color:#e7f4ff}
.booking-help p{color:#a8bbcc;font-size:1rem;margin:12px 0 20px}
.booking-help a{color:#8ed2ff;font-size:.95rem;text-decoration:underline;text-underline-offset:4px}
.first-available{display:block;width:100%;border:1px solid #325b77;border-radius:12px;background:#102b40;color:#bce8ff;padding:14px 16px;text-align:left;font-size:1rem;font-weight:650;margin-bottom:16px;line-height:1.5}
.first-available:disabled{opacity:.6}
.calendar-day{min-height:70px}
.calendar-day strong{font-size:1.1rem}
.booking-calendar{padding:18px 14px}
.booking-submit{flex-wrap:wrap}
.booking-submit .button{min-height:56px}
.area-faq{padding-top:64px}
.area-faq .section-heading{margin-bottom:24px}
.area-faq h2{font-size:clamp(2rem,4vw,3rem)}
.area-faq .faq-list{max-width:none}
.site-footer{margin-top:64px}
.footer-links{flex-wrap:wrap}
.floating-card strong,.service-card ul,.choice-card small{font-size:.875rem}
@media(max-width:1050px){.booking-shell{grid-template-columns:1fr}.booking-intro{padding:6px 4px}.booking-intro>p{max-width:700px;margin-bottom:20px}.booking-help{padding-top:16px}.booking-help p{margin-bottom:12px}.hero{min-height:0}.hero-visual{min-height:370px}}
@media(max-width:640px){.hero{padding-top:36px;padding-bottom:14px}.hero-visual{min-height:290px}.hero h1{font-size:clamp(2.85rem,11.8vw,4rem);line-height:1.06}.hero-actions .button{padding-inline:12px;font-size:.875rem}.trust-row{display:flex;gap:8px 16px}.booking-shell{border:0;padding:0;background:none;box-shadow:none}.booking-intro{padding:0 3px}.booking-form{padding:22px 12px}.booking-calendar{padding:14px 6px}.calendar-days,.calendar-weekdays{gap:4px}.calendar-day{min-height:60px}.calendar-day strong{font-size:1rem}.calendar-nav h3{font-size:1.1rem}.service-card{min-height:360px}.service-number{margin-bottom:16px}.service-card h3{font-size:1.8rem}.booking-intro h2{font-size:2.6rem}.choice-card>span{padding:12px 6px}.choice-card small{font-size:.875rem}.mobile-menu{width:calc(100% - 24px)}.brand-copy strong{font-size:.75rem}.brand-copy small{font-size:.75rem;letter-spacing:.06em}.area-faq{padding-top:44px}.footer-brand span{font-size:.75rem}.footer-links{font-size:.875rem}.booking-submit .button{width:100%}}
@media(max-width:360px){.brand-copy{display:none}.hero-actions{grid-template-columns:1fr}.choice-grid.service-choices{grid-template-columns:1fr}.choice-card>span{min-height:82px}.calendar-day small{font-size:.75rem}.calendar-day{padding:7px 0}.calendar-days,.calendar-weekdays{gap:2px}}

.wax-upgrade { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 20px; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(21,150,255,.05); }
.wax-upgrade h3 { margin: 0 0 12px; font-size: 1.5rem; }
.wax-upgrade h3 span { color: var(--blue-2); white-space: nowrap; margin-left: 10px; }
.wax-upgrade p:not(.service-kicker) { margin: 0; color: #92a2b2; line-height: 1.65; }
.wax-upgrade ul { margin: 0; padding-left: 20px; align-self: center; color: #bac5cf; line-height: 1.6; }
.wax-upgrade li + li { margin-top: 8px; }
@media(max-width:640px) { .wax-upgrade { grid-template-columns: 1fr; padding: 22px; gap: 18px; } }
