:root {
  --teal-980: #022b33;
  --teal-940: #053f48;
  --teal-880: #0b5d69;
  --teal-760: #2f8fa0;
  --teal-620: #5da9b8;
  --teal-420: #9fc8cf;
  --teal-320: #b7d8de;
  --teal-220: #d0e6ea;
  --teal-120: #e6f3f5;
  --bg: #9fc8cf;
  --bg-alt: #79aeb7;
  --surface: #ffffff;
  --text: #0d252c;
  --text-soft: #29434b;
  --sage: #0b5d69;
  --sage-deep: #053f48;
  --line: #6fa6b1;
  --gold: #2f8fa0;
  --shadow: 0 10px 30px rgba(4, 37, 43, 0.28);
  --surface-tint: #f3fbfc;
  --surface-soft: #e9f6f8;
  --radius: 18px;
  --radius-sm: 12px;
  --max: 1160px;
  --space-1: 0.5rem;
  --space-2: 0.75rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --space-7: 4.5rem;
  --space-8: 6rem;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at 88% 6%, rgba(2, 43, 51, 0.5) 0, rgba(5, 63, 72, 0.14) 34%, transparent 60%),
    radial-gradient(circle at 10% 92%, rgba(47, 143, 160, 0.2) 0, rgba(47, 143, 160, 0.04) 40%, transparent 70%),
    linear-gradient(180deg, var(--teal-320) 0, var(--teal-420) 45%, #95c0c8 100%);
  line-height: 1.6;
  position: relative;
  overflow-x: clip;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  opacity: 0.22;
  background-image:
    radial-gradient(circle at 20% 10%, rgba(77, 168, 180, 0.24), transparent 35%),
    radial-gradient(circle at 80% 0%, rgba(20, 106, 115, 0.2), transparent 30%),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.03) 0 2px, transparent 2px 5px);
}

h1,
h2,
h3,
h4 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  line-height: 1.15;
  margin: 0 0 var(--space-3);
  letter-spacing: 0.01em;
}

h1 {
  font-size: clamp(2.2rem, 4vw, 4rem);
}

h2 {
  font-size: clamp(1.8rem, 3vw, 2.8rem);
}

h3 {
  font-size: clamp(1.35rem, 2vw, 1.8rem);
}

p {
  margin: 0 0 var(--space-3);
  color: var(--text-soft);
}

a {
  color: inherit;
  text-decoration: none;
}

a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--sage-deep);
  outline-offset: 2px;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-sm);
}

.container {
  width: min(100% - 2rem, var(--max));
  margin-inline: auto;
}

.section {
  padding: var(--space-7) 0;
  position: relative;
}

.section:nth-of-type(even) {
  background: linear-gradient(180deg, rgba(5, 63, 72, 0.15), rgba(11, 93, 105, 0.08));
  border-block: 1px solid rgba(5, 63, 72, 0.22);
}

.section.tone-deep {
  background: linear-gradient(140deg, rgba(2, 43, 51, 0.68), rgba(5, 63, 72, 0.5));
  border-block: 1px solid rgba(2, 43, 51, 0.45);
}

.section.tone-mid {
  background: linear-gradient(140deg, rgba(5, 63, 72, 0.24), rgba(11, 93, 105, 0.12));
  border-block: 1px solid rgba(5, 63, 72, 0.18);
}

.section.tone-soft {
  background: linear-gradient(180deg, rgba(208, 230, 234, 0.9), rgba(183, 216, 222, 0.75));
  border-block: 1px solid rgba(5, 63, 72, 0.12);
}

.kicker {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--sage-deep);
  font-weight: 700;
  font-size: 0.74rem;
  margin-bottom: var(--space-2);
}

.btn,
.btn-outline,
.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  border-radius: 999px;
  padding: 0.85rem 1.4rem;
  font-weight: 600;
  transition: 200ms var(--ease);
  border: 1px solid transparent;
}

.btn {
  background: linear-gradient(120deg, var(--teal-880), var(--teal-940));
  color: #fff;
  box-shadow: var(--shadow);
}

.btn:hover {
  transform: translateY(-2px);
  filter: brightness(1.03);
}

.btn-outline {
  background: transparent;
  border-color: var(--line);
}

.btn-outline:hover,
.btn-ghost:hover {
  border-color: var(--sage);
  color: var(--sage-deep);
}

.btn-ghost {
  padding-inline: 0;
  border-radius: 0;
  border-bottom: 1px solid transparent;
}

.btn-ghost:hover {
  border-bottom-color: var(--sage-deep);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid rgba(8, 72, 82, 0.28);
  background: linear-gradient(180deg, rgba(184, 221, 228, 0.94), rgba(171, 212, 220, 0.9));
  backdrop-filter: blur(14px) saturate(125%);
  box-shadow: 0 10px 24px rgba(4, 37, 43, 0.16);
}

.nav-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: 74px;
}

.brand {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.6rem;
  font-weight: 700;
}

.brand span {
  color: var(--sage-deep);
}

.nav-toggle {
  display: none;
  background: none;
  border: 0;
  font-size: 1.5rem;
}

.nav-menu {
  display: flex;
  gap: 1.2rem;
  align-items: center;
}

.nav-link {
  color: #1f4f58;
  font-weight: 500;
  position: relative;
  transition: color 180ms var(--ease);
}

.nav-link:hover,
.nav-link[aria-current='page'] {
  color: #0a4d58;
}

.nav-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #0c6a78, #2f8fa0);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms var(--ease);
}

.site-header .btn {
  box-shadow: 0 10px 24px rgba(7, 76, 87, 0.3);
}

.nav-link:hover::after,
.nav-link[aria-current='page']::after {
  transform: scaleX(1);
}

.hero {
  padding: calc(var(--space-6) + 0.2rem) 0 calc(var(--space-5) + 0.1rem);
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(160deg, rgba(2, 43, 51, 0.62), rgba(5, 63, 72, 0.44)),
    radial-gradient(circle at 80% 25%, rgba(47, 143, 160, 0.18), transparent 52%);
  border-bottom: 1px solid rgba(5, 63, 72, 0.28);
}

.hero-copy {
  max-width: 560px;
  position: relative;
}

.hero-lead {
  font-size: clamp(1.02rem, 1.15vw, 1.2rem);
  line-height: 1.48;
  max-width: 34ch;
  margin-bottom: 0.4rem;
}

.hero-note {
  margin-top: 0.2rem;
  font-size: 0.9rem;
  color: rgba(233, 246, 248, 0.8);
}

.hero-copy p,
.hero-copy li,
.hero-copy .kicker,
.hero-copy h1 {
  color: #e9f6f8;
}

.hero-copy h1 {
  font-size: clamp(2.6rem, 4.8vw, 4.35rem);
  max-width: 12.5ch;
  letter-spacing: 0.004em;
  line-height: 0.99;
  text-wrap: balance;
  margin-bottom: 0.7rem;
}

.hero-copy .btn-outline {
  border-color: rgba(230, 243, 245, 0.5);
  color: #e9f6f8;
  background: rgba(230, 243, 245, 0.08);
}

.hero-copy .btn-outline:hover {
  border-color: #e9f6f8;
  background: rgba(230, 243, 245, 0.14);
}

.hero::before,
.hero::after {
  content: '';
  position: absolute;
  border-radius: 999px;
  filter: blur(2px);
  pointer-events: none;
}

.hero::before {
  width: 340px;
  height: 340px;
  right: -80px;
  top: 20px;
  background: radial-gradient(circle, rgba(20, 106, 115, 0.3) 0%, rgba(20, 106, 115, 0.04) 72%);
}

.hero::after {
  width: 280px;
  height: 280px;
  left: -90px;
  bottom: -60px;
  background: radial-gradient(circle, rgba(77, 168, 180, 0.28) 0%, rgba(77, 168, 180, 0.03) 72%);
}

.hero-orb {
  position: absolute;
  width: 180px;
  height: 180px;
  right: 24%;
  top: 26%;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(77, 168, 180, 0.3) 0%, rgba(77, 168, 180, 0.1) 60%, transparent 100%);
  border: 1px solid rgba(77, 168, 180, 0.4);
  pointer-events: none;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  align-items: center;
}

.hero-copy .kicker {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  letter-spacing: 0.13em;
  margin-bottom: 0.7rem;
}

.hero-copy .kicker::before {
  content: '';
  width: 42px;
  height: 1px;
  background: linear-gradient(90deg, rgba(230, 243, 245, 0.95), rgba(230, 243, 245, 0.2));
}

.hero-media {
  margin: 0;
  padding: 0.85rem;
  border-radius: 24px;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.98), rgba(231, 244, 247, 0.95));
  border: 1px solid rgba(230, 243, 245, 0.75);
  box-shadow: 0 16px 40px rgba(4, 37, 43, 0.26);
}

.hero-media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 16px;
}

.hero-media figcaption {
  margin-top: 0.62rem;
  padding-inline: 0.2rem;
  font-size: 0.93rem;
  letter-spacing: 0.02em;
  color: #1f5862;
}

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0;
}

.chip {
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
  font-size: 0.83rem;
  color: #184b56;
}

.hero-copy .chip {
  background: rgba(230, 243, 245, 0.92);
  border-color: rgba(6, 63, 72, 0.22);
  color: #0f4a53;
}

.hero-cta {
  margin-top: 0.6rem;
  margin-bottom: 0.65rem;
  display: flex;
  gap: 0.7rem;
  flex-wrap: wrap;
}

.hero-signature {
  margin-top: 0.1rem;
  margin-bottom: 0.1rem;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
  color: rgba(233, 246, 248, 0.86);
}

.hero-chips {
  margin-top: 0.2rem;
}

.hero-proof-line {
  margin-bottom: 0.2rem;
  color: rgba(233, 246, 248, 0.95);
  font-size: 0.94rem;
}

.hero-proof-line strong {
  font-weight: 700;
}

.hero-areas-line {
  margin-bottom: 0.2rem;
  color: rgba(233, 246, 248, 0.88);
  font-size: 0.94rem;
}

.hero-copy .btn {
  min-width: 136px;
}

.hero-copy .btn-outline {
  min-width: 136px;
}

.grid-2,
.grid-3,
.grid-4 {
  display: grid;
  gap: var(--space-4);
}

.grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.card {
  background: linear-gradient(180deg, var(--surface), var(--surface-tint));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: var(--space-4);
  transition: transform 200ms var(--ease), box-shadow 200ms var(--ease);
}

.premium-panel {
  border: 1px solid rgba(5, 63, 72, 0.2);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(241, 250, 252, 0.94)),
    radial-gradient(circle at 12% 0%, rgba(93, 169, 184, 0.12), transparent 36%);
}

.section-head {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin-bottom: 1rem;
}

.section-head::before,
.section-head::after {
  content: '';
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(5, 63, 72, 0.35), transparent);
  flex: 1;
}

.section-head span {
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--sage-deep);
  font-size: 0.73rem;
  font-weight: 700;
}

.card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(12, 58, 65, 0.22);
}

.proof-strip {
  padding: var(--space-4) 0;
  background: linear-gradient(90deg, rgba(5, 63, 72, 0.28), rgba(11, 93, 105, 0.16));
  border-block: 1px solid var(--line);
  position: relative;
  z-index: 2;
}

.proof-strip .proof-item {
  padding: 1rem 1.1rem;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(236, 246, 248, 0.95), rgba(217, 235, 239, 0.92));
  border: 1px solid rgba(5, 63, 72, 0.16);
}

.proof-item strong {
  display: block;
  font-size: 1.25rem;
  color: #04343c;
}

.vibe-controls {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-bottom: var(--space-4);
}

.vibe-btn {
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
  padding: 0.6rem 1rem;
  font-weight: 600;
  cursor: pointer;
}

.vibe-btn.active {
  background: var(--sage-deep);
  color: #fff;
  border-color: var(--sage-deep);
  box-shadow: 0 8px 18px rgba(5, 63, 72, 0.3);
}

.steps {
  counter-reset: ritual;
}

.step {
  display: flex;
  gap: var(--space-3);
}

.step::before {
  counter-increment: ritual;
  content: counter(ritual);
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--bg-alt);
  color: var(--sage-deep);
  font-weight: 700;
  flex: 0 0 auto;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.75rem;
}

.gallery button {
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
}

.gallery .span-2 {
  grid-column: span 2;
}

.section-visual {
  padding-top: var(--space-6);
}

.studio-showcase {
  display: grid;
  grid-template-columns: 1.25fr 0.95fr;
  gap: 0.8rem;
  margin-top: 0.6rem;
}

.studio-feature {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line);
  background: linear-gradient(180deg, var(--surface), var(--surface-tint));
  box-shadow: var(--shadow);
}

.studio-feature img {
  width: 100%;
  height: clamp(360px, 34vw, 480px);
  object-fit: cover;
}

.studio-feature figcaption {
  padding: 0.9rem 1rem 1rem;
}

.studio-feature figcaption strong {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 1.02rem;
}

.studio-feature figcaption span {
  font-size: 0.94rem;
}

.studio-stack {
  display: grid;
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
}

.studio-tile {
  margin: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid var(--line);
  background: linear-gradient(180deg, var(--surface), var(--surface-tint));
  box-shadow: var(--shadow);
}

.studio-tile img {
  width: 100%;
  height: clamp(150px, 12.5vw, 185px);
  object-fit: cover;
}

.studio-tile figcaption {
  padding: 0.65rem 0.8rem 0.75rem;
  font-size: 0.89rem;
}

.media-ribbon {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}

.media-tile {
  background: linear-gradient(180deg, var(--surface), var(--surface-tint));
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow);
  position: relative;
}

.media-tile img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.media-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(121, 202, 212, 0) 50%, rgba(11, 93, 105, 0.22) 100%);
  pointer-events: none;
}

.media-tile figcaption {
  padding: 0.65rem 0.8rem 0.8rem;
  color: var(--text-soft);
  font-size: 0.9rem;
}

.testimonial {
  border-left: 2px solid var(--gold);
}

.faq-item {
  border-bottom: 1px solid var(--line);
  transition: background 180ms var(--ease);
}

.faq-question {
  width: 100%;
  text-align: left;
  padding: 1rem 0;
  border: 0;
  background: transparent;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
}

.faq-answer {
  display: none;
  padding: 0 0 var(--space-3);
}

.faq-item.open .faq-answer {
  display: block;
}

.faq-item.open {
  background: rgba(5, 63, 72, 0.09);
}

.page-hero {
  padding: var(--space-7) 0 var(--space-4);
  background: linear-gradient(140deg, rgba(5, 63, 72, 0.32), rgba(11, 93, 105, 0.1));
  border-bottom: 1px solid var(--line);
}

.list-clean {
  padding: 0;
  margin: 0;
  list-style: none;
}

.list-clean li {
  margin-bottom: var(--space-2);
  color: var(--text-soft);
}

.center-cta-card {
  text-align: center;
}

.center-cta-card h2 {
  color: #0f3f48;
}

.center-cta-card > p {
  color: #1d4f58;
  max-width: 74ch;
  margin-left: auto;
  margin-right: auto;
}

.center-cta-card > p:last-child {
  margin-top: 0.35rem;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.center-cta-card .btn-outline {
  color: #1a5560;
  border-color: rgba(10, 77, 88, 0.34);
  background: rgba(231, 246, 248, 0.45);
}

.center-cta-card .btn-outline:hover {
  color: #0f4650;
  border-color: rgba(10, 77, 88, 0.56);
  background: rgba(231, 246, 248, 0.72);
}

/* Force readable CTA contrast on pages with home/service theme overrides */
.home-page .center-cta-card h2,
.home-page .center-cta-card > p,
.service-theme .center-cta-card h2,
.service-theme .center-cta-card > p {
  color: #102a30 !important;
}

.home-page .center-cta-card .btn-outline,
.service-theme .center-cta-card .btn-outline {
  color: #1a5560;
  border-color: rgba(10, 77, 88, 0.34);
  background: rgba(231, 246, 248, 0.45);
}

.booking-embed {
  min-height: 280px;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  display: grid;
  place-items: center;
  color: var(--text-soft);
  background: linear-gradient(180deg, #f2fafb, #dceef2);
}

.location-box {
  padding: var(--space-4);
  background: linear-gradient(180deg, var(--surface), var(--surface-tint));
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.map-placeholder {
  min-height: 280px;
  border-radius: var(--radius);
  background: linear-gradient(140deg, #8cbac3, #6ea4af);
  display: grid;
  place-items: center;
  color: var(--text);
  text-align: center;
  padding: var(--space-4);
}

.site-footer {
  padding: var(--space-6) 0 5.5rem;
  border-top: 1px solid rgba(212, 238, 243, 0.2);
  background:
    radial-gradient(circle at 82% 14%, rgba(214, 239, 243, 0.12), transparent 36%),
    radial-gradient(circle at 12% 90%, rgba(4, 72, 83, 0.35), transparent 42%),
    linear-gradient(145deg, #084e5a 0%, #0b6270 42%, #0f7584 100%);
}

.site-footer,
.site-footer p,
.site-footer a,
.site-footer h3 {
  color: #e7f4f6;
}

.footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 2rem;
  padding-bottom: 1.6rem;
}

.footer-col {
  padding: 0;
  border-radius: 0;
  border: 0;
  background: transparent;
}

.footer-col h3 {
  margin-bottom: 0.55rem;
  font-size: 1.85rem;
  line-height: 1.05;
}

.footer-brand {
  margin: 0 0 0.6rem;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2rem, 2.5vw, 2.3rem);
  font-weight: 700;
  line-height: 1.05;
  color: #f1fbfd;
}

.footer-brand span {
  color: #bfe7ee;
}

.footer-about p {
  max-width: 34ch;
}

.footer-note {
  margin-top: 0.6rem;
  font-size: 0.9rem;
  letter-spacing: 0.02em;
  color: rgba(231, 244, 246, 0.9);
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.4rem;
}

.footer-links-compact {
  gap: 0.3rem;
  margin-bottom: 0.55rem;
}

.footer-mini-label {
  margin: 0.7rem 0 0.35rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  font-weight: 700;
  color: rgba(231, 244, 246, 0.86);
}

.footer-area-list {
  margin: 0;
  color: rgba(231, 244, 246, 0.92);
}

.footer-links a {
  color: rgba(231, 244, 246, 0.92);
}

.footer-links a:hover {
  color: #ffffff;
}

.footer-social-icons {
  margin-top: 0.8rem;
  display: flex;
  align-items: center;
  gap: 0.48rem;
}

.footer-icon-link {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(231, 246, 248, 0.42);
  background: rgba(231, 246, 248, 0.08);
  color: #e7f4f6;
  transition: transform 170ms var(--ease), background 170ms var(--ease), border-color 170ms var(--ease);
}

.footer-icon-link svg {
  width: 1.1rem;
  height: 1.1rem;
  fill: currentColor;
}

.footer-icon-link:hover {
  transform: translateY(-1px);
  border-color: rgba(231, 246, 248, 0.85);
  background: rgba(231, 246, 248, 0.2);
  color: #ffffff;
}

.footer-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 1rem;
}

.footer-cta .btn,
.footer-cta .btn-outline {
  min-width: 126px;
}

.footer-cta .btn-outline {
  color: #e7f6f8;
  border-color: rgba(231, 246, 248, 0.5);
  background: rgba(231, 246, 248, 0.08);
}

.footer-cta .btn-outline:hover {
  border-color: rgba(231, 246, 248, 0.9);
  background: rgba(231, 246, 248, 0.16);
}

.footer-bottom {
  border-top: 1px solid rgba(212, 238, 243, 0.26);
  padding-top: 1rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.footer-bottom p {
  margin: 0;
  color: rgba(231, 244, 246, 0.92);
  font-size: 0.9rem;
}

.footer-credit {
  justify-self: end;
  text-align: right;
}

.footer-credit a {
  color: #d5f0f4;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.footer-credit a:hover {
  color: #ffffff;
}

.mobile-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 90;
  display: none;
  gap: 0.6rem;
  padding: 0.7rem;
  background: rgba(152, 193, 202, 0.97);
  border-top: 1px solid var(--line);
}

.mobile-cta a {
  flex: 1;
}

.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 650ms var(--ease), transform 650ms var(--ease);
  transition-delay: var(--delay, 0ms);
}

.reveal-left {
  transform: translateX(-26px);
}

.reveal-right {
  transform: translateX(26px);
}

.reveal-zoom {
  transform: translateY(22px) scale(0.96);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.parallax-soft {
  transition: transform 180ms linear;
  will-change: transform;
}

.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(20, 17, 14, 0.88);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 120;
  padding: 1rem;
}

.lightbox.open {
  display: flex;
}

.lightbox img {
  max-height: 85vh;
  border-radius: var(--radius-sm);
}

.lightbox button {
  position: absolute;
  top: 1rem;
  right: 1rem;
  border: 0;
  background: #fff;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  cursor: pointer;
}

@media (max-width: 960px) {
  .hero-grid,
  .grid-4,
  .grid-3 {
    grid-template-columns: 1fr 1fr;
  }

  .studio-showcase {
    grid-template-columns: 1fr;
  }

  .studio-stack {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: none;
  }

  .studio-feature img {
    height: clamp(300px, 44vw, 430px);
  }

  .gallery {
    grid-template-columns: repeat(4, 1fr);
  }

  .media-ribbon {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  .nav-toggle {
    display: grid;
    place-items: center;
    width: 2.8rem;
    height: 2.8rem;
    padding: 0;
    border-radius: 0.85rem;
    border: 1px solid rgba(12, 93, 105, 0.35);
    background: rgba(231, 246, 248, 0.74);
    color: #073942;
    font-size: 1.45rem;
    line-height: 1;
    box-shadow: 0 10px 24px rgba(5, 41, 48, 0.2);
    transition: background 180ms var(--ease), border-color 180ms var(--ease), color 180ms var(--ease);
  }

  .nav-toggle:hover,
  .nav-toggle:focus-visible {
    background: rgba(231, 246, 248, 0.92);
    border-color: rgba(12, 93, 105, 0.55);
  }

  .nav-menu {
    position: fixed;
    top: calc(74px + 0.5rem);
    left: 1rem;
    right: 1rem;
    max-height: calc(100dvh - 74px - 1.5rem);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0.95rem 0.9rem 1rem;
    background:
      radial-gradient(circle at 92% 8%, rgba(242, 207, 145, 0.14), transparent 40%),
      linear-gradient(165deg, rgba(4, 64, 74, 0.98), rgba(8, 93, 106, 0.96));
    border: 1px solid rgba(217, 242, 246, 0.28);
    border-radius: 1.05rem;
    box-shadow: 0 24px 46px rgba(1, 29, 35, 0.5);
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    display: flex;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px) scale(0.985);
    transform-origin: top right;
    transition: opacity 180ms var(--ease), transform 180ms var(--ease), visibility 180ms var(--ease);
  }

  .nav-menu.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
  }

  .nav-menu .nav-link {
    width: 100%;
    padding: 0.55rem 0.2rem;
    font-size: 1.9rem;
    line-height: 1.08;
    color: rgba(233, 246, 248, 0.96);
    border-bottom: 1px solid rgba(217, 242, 246, 0.17);
  }

  .nav-menu .nav-link[aria-current='page'] {
    color: #ffffff;
  }

  .nav-menu .nav-link::after {
    display: none;
  }

  .nav-menu .btn {
    margin-top: 0.65rem;
    width: 100%;
    justify-content: center;
  }

  body.menu-open {
    overflow: hidden;
  }

  body.menu-open::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(2, 30, 35, 0.54);
    backdrop-filter: blur(2px);
    pointer-events: none;
  }

  .hero-grid,
  .grid-2,
  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr;
  }

  .gallery {
    grid-template-columns: repeat(2, 1fr);
  }

  .studio-stack {
    grid-template-columns: 1fr;
  }

  .studio-tile img {
    height: 220px;
  }

  .media-ribbon {
    grid-template-columns: 1fr;
  }

  .mobile-cta {
    display: none;
  }

  .section {
    padding: var(--space-6) 0;
  }

  .footer-top {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }

  .footer-col h3 {
    font-size: 1.7rem;
  }

  .footer-credit {
    justify-self: start;
    text-align: left;
  }
}

/* Reference-style Massage Hero Override */
.hero.hero-reference {
  padding: 0;
  border-bottom: 0;
  background:
    radial-gradient(circle at 85% 18%, rgba(230, 247, 249, 0.24), transparent 34%),
    radial-gradient(circle at 8% 78%, rgba(3, 73, 84, 0.22), transparent 42%),
    linear-gradient(125deg, #0a4b56 0%, #0f5d69 46%, #247482 100%);
}

.hero.hero-reference .hero-shell {
  display: grid;
  grid-template-columns: 1.12fr 0.88fr;
  min-height: 680px;
  width: min(100% - 2rem, var(--max));
  margin-inline: auto;
  column-gap: 2rem;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}

.hero.hero-reference .hero-left {
  min-height: clamp(560px, 62vw, 660px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: 2.2rem;
  padding-bottom: 2.2rem;
  padding-left: 0;
  padding-right: 1.25rem;
  background: transparent;
  color: #e8f5f7;
}

.hero.hero-reference .hero-left .kicker {
  color: rgba(232, 245, 247, 0.86);
}

.hero.hero-reference .hero-left .kicker::before {
  background: linear-gradient(90deg, rgba(232, 245, 247, 0.75), rgba(232, 245, 247, 0.14));
}

.hero.hero-reference .hero-left h1 {
  color: #eef9fb;
  font-size: clamp(2.9rem, 4.35vw, 4.45rem);
  line-height: 1.03;
  max-width: 13.2ch;
  margin: 0.6rem 0 0.85rem;
  text-wrap: balance;
}

.hero.hero-reference .hero-left .hero-lead {
  color: rgba(232, 245, 247, 0.9);
  font-size: clamp(1.03rem, 1.2vw, 1.2rem);
  line-height: 1.56;
  max-width: 44ch;
}

.hero.hero-reference .hero-left .hero-cta {
  margin: 0.95rem 0 0.95rem;
}

.hero.hero-reference .hero-left .btn-outline {
  color: #e7f6f8;
  border-color: rgba(231, 246, 248, 0.45);
  background: rgba(231, 246, 248, 0.08);
}

.hero.hero-reference .hero-left .btn-outline:hover {
  border-color: rgba(231, 246, 248, 0.85);
  background: rgba(231, 246, 248, 0.16);
}

.hero.hero-reference .hero-stat-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.hero.hero-reference .hero-stat {
  border-radius: 12px;
  border: 1px solid rgba(231, 246, 248, 0.25);
  background: rgba(231, 246, 248, 0.08);
  padding: 0.68rem 0.7rem;
  backdrop-filter: blur(6px);
}

.hero.hero-reference .hero-stat strong {
  display: block;
  color: #f2fcfd;
  font-size: 1.15rem;
  line-height: 1;
  margin-bottom: 0.22rem;
}

.hero.hero-reference .hero-stat span {
  color: rgba(231, 246, 248, 0.84);
  font-size: 0.82rem;
}

.hero.hero-reference .hero-right {
  position: relative;
  background: transparent;
  padding-top: 1.9rem;
  padding-bottom: 1.9rem;
  padding-left: 0;
  padding-right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero.hero-reference .hero-image-wrap {
  width: min(100%, 540px);
  margin: 0;
  padding: 0;
  border-radius: 16px;
  background: transparent;
  box-shadow: 0 18px 38px rgba(2, 41, 48, 0.3);
  border: 1px solid rgba(231, 246, 248, 0.2);
  overflow: hidden;
}

.hero.hero-reference .hero-image-wrap img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 4.8;
  object-fit: cover;
  border-radius: 0;
}

/* Homepage full-teal continuity */
.home-page .section.tone-soft,
.home-page .section.tone-mid,
.home-page .proof-strip.tone-mid {
  background:
    radial-gradient(circle at 82% 20%, rgba(216, 240, 244, 0.12), transparent 34%),
    linear-gradient(145deg, #0a4c57 0%, #0e5e6a 46%, #156f7d 100%);
  border-block: 1px solid rgba(214, 238, 242, 0.16);
}

.service-theme .page-hero,
.service-theme .section {
  background:
    radial-gradient(circle at 82% 20%, rgba(216, 240, 244, 0.12), transparent 34%),
    linear-gradient(145deg, #0a4c57 0%, #0e5e6a 46%, #156f7d 100%);
  border-block: 1px solid rgba(214, 238, 242, 0.16);
}

.service-theme .page-hero h1,
.service-theme .page-hero p,
.service-theme .page-hero .kicker {
  color: #e8f5f7;
}

.services-page .page-hero {
  position: relative;
  padding: var(--space-6) 0;
  background:
    radial-gradient(circle at 82% 20%, rgba(216, 240, 244, 0.12), transparent 34%),
    linear-gradient(145deg, #0a4c57 0%, #0e5e6a 46%, #156f7d 100%);
  border-bottom: 1px solid rgba(214, 238, 242, 0.22);
}

.services-page .services-hero {
  position: relative;
}

.services-page .services-hero-media {
  margin: 0 auto;
  width: 100%;
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(214, 238, 242, 0.24);
  box-shadow: 0 18px 38px rgba(2, 41, 48, 0.34);
}

.services-page .services-hero-media img {
  width: 100%;
  height: clamp(300px, 42vw, 440px);
  object-fit: cover;
  display: block;
}

.services-page .services-hero-media figcaption {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  text-align: center;
  gap: 0.7rem;
  padding: 1.4rem;
  background:
    linear-gradient(120deg, rgba(2, 34, 42, 0.74), rgba(2, 34, 42, 0.48)),
    radial-gradient(circle at 52% 60%, rgba(5, 63, 72, 0.16), transparent 46%);
}

.services-page .services-hero-media .kicker {
  margin: 0;
}

.services-page .services-hero h1 {
  font-size: clamp(2.2rem, 3.8vw, 3.5rem);
  line-height: 1.08;
  margin: 0;
  max-width: 14ch;
}

.services-showcase-page .services-hero h1 {
  font-size: clamp(2.5rem, 4.4vw, 4rem);
  line-height: 1.05;
  max-width: 20ch;
  letter-spacing: 0.005em;
  text-wrap: balance;
  text-shadow: 0 3px 18px rgba(1, 24, 30, 0.55);
}

.services-showcase-page .services-hero-media .kicker {
  color: rgba(239, 250, 252, 0.96);
  text-shadow: 0 2px 12px rgba(1, 24, 30, 0.5);
}

.areas-page .services-hero h1 {
  max-width: 18ch;
  line-height: 1.03;
  text-wrap: balance;
}

.faq-page .services-hero h1 {
  max-width: 18ch;
  line-height: 1.03;
  text-wrap: balance;
}

.home-page .section.tone-soft h2,
.home-page .section.tone-mid h2,
.home-page .section.tone-soft > .container > p,
.home-page .section.tone-mid > .container > p,
.home-page .section.tone-soft .list-clean li,
.home-page .section.tone-mid .list-clean li {
  color: #e8f5f7;
}

.home-page main .section .kicker {
  color: rgba(232, 245, 247, 0.92);
  letter-spacing: 0.16em;
  text-shadow: 0 1px 0 rgba(3, 46, 54, 0.32);
}

.home-page .section-head span {
  color: rgba(232, 245, 247, 0.88);
}

.home-page .section-head::before,
.home-page .section-head::after {
  background: linear-gradient(90deg, transparent, rgba(232, 245, 247, 0.35), transparent);
}

.home-page .card,
.home-page .premium-panel,
.home-page .location-box,
.home-page .proof-strip .proof-item,
.home-page .media-tile,
.home-page .studio-feature,
.home-page .studio-tile,
.home-page .booking-embed,
.home-page .map-placeholder {
  background:
    linear-gradient(165deg, rgba(230, 245, 248, 0.95), rgba(201, 229, 234, 0.9)),
    radial-gradient(circle at 12% 0%, rgba(21, 111, 125, 0.14), transparent 36%);
  border-color: rgba(8, 77, 88, 0.34);
}

.home-page .card p,
.home-page .card li,
.home-page .card h3,
.home-page .premium-panel p,
.home-page .premium-panel li,
.home-page .premium-panel h3,
.home-page .location-box p,
.home-page .proof-item span,
.home-page .media-tile figcaption,
.home-page .studio-feature figcaption,
.home-page .studio-tile figcaption,
.home-page .booking-embed,
.home-page .map-placeholder {
  color: #174850;
}

.home-page .proof-item strong,
.home-page .location-box h2 {
  color: #0a3740;
}

.home-page main .section.tone-mid .location-box p.kicker {
  display: inline-block;
  color: #1a5360;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-shadow: none;
  margin-bottom: 0.8rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(22, 79, 90, 0.28);
  background: rgba(22, 79, 90, 0.1);
}

.home-page .location-box h2 {
  color: #0a3740;
}

.home-page .section.tone-mid .location-box h2 {
  color: #123f48;
}

.home-page #booking .premium-panel p.kicker {
  display: inline-block;
  color: #1a5360;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-shadow: none;
  margin-bottom: 0.8rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(22, 79, 90, 0.28);
  background: rgba(22, 79, 90, 0.1);
}

.home-page .location-box p,
.home-page .location-box a {
  color: #1b4d56;
}

.home-page .section-visual > .container {
  width: min(100% - 2rem, var(--max));
}

.home-page .section-visual h2 {
  max-width: none;
}

.home-page .media-ribbon {
  gap: 0.6rem;
}

.home-page .media-tile img {
  height: clamp(250px, 20vw, 300px);
}

/* Homepage dark navbar for clearer separation */
.home-page .site-header {
  border-bottom: 1px solid rgba(216, 240, 244, 0.26);
  background: linear-gradient(180deg, rgba(6, 68, 78, 0.96), rgba(8, 79, 90, 0.92));
  box-shadow: 0 12px 28px rgba(2, 34, 40, 0.35);
}

.home-page .brand,
.home-page .brand span {
  color: #e9f6f8;
}

.home-page .nav-link {
  color: rgba(233, 246, 248, 0.86);
}

.home-page .nav-link:hover,
.home-page .nav-link[aria-current='page'] {
  color: #ffffff;
}

.home-page .nav-link::after {
  background: linear-gradient(90deg, #9ed8e1, #d7f1f5);
}

.home-page .site-header .btn {
  background: linear-gradient(120deg, #0a5c68, #0f7382);
  border: 1px solid rgba(215, 241, 245, 0.26);
  box-shadow: 0 10px 24px rgba(3, 40, 47, 0.42);
}

.home-page #about-preview .kicker {
  color: rgba(232, 245, 247, 0.95);
}

.home-page #about-preview h2 {
  color: #eef9fb;
}

.home-page #about-preview p {
  color: rgba(232, 245, 247, 0.9);
}

.home-page #about-preview .btn-outline {
  color: #e9f6f8;
  border-color: rgba(231, 246, 248, 0.5);
  background: rgba(231, 246, 248, 0.08);
}

.home-page #about-preview .btn-outline:hover {
  border-color: rgba(231, 246, 248, 0.9);
  background: rgba(231, 246, 248, 0.16);
}

.home-page #home-faq .faq-layout {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 1rem;
  align-items: start;
}

.home-page #home-faq .faq-intro {
  padding: 1.4rem;
}

.home-page #home-faq .faq-intro h2 {
  color: #0d3a42;
  margin-bottom: 0.5rem;
}

.home-page #home-faq .faq-intro p {
  color: #1d525a;
  margin-bottom: 0.85rem;
}

.home-page #home-faq .faq-intro .btn-outline {
  color: #104e58;
  border-color: rgba(10, 77, 88, 0.38);
  background: rgba(232, 245, 247, 0.45);
}

.home-page #home-faq .faq-intro .btn-outline:hover {
  background: rgba(232, 245, 247, 0.72);
  border-color: rgba(10, 77, 88, 0.58);
}

.home-page #home-faq .faq-list {
  display: grid;
  gap: 0.6rem;
}

.home-page #home-faq .faq-item {
  border: 1px solid rgba(213, 239, 243, 0.3);
  border-radius: 14px;
  background: rgba(233, 246, 248, 0.1);
  transition: background 180ms var(--ease), border-color 180ms var(--ease), box-shadow 180ms var(--ease);
}

.home-page #home-faq .faq-question {
  padding: 1rem 1.2rem;
  color: #eaf6f8;
  font-size: 1.04rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.home-page #home-faq .faq-question::after {
  content: '+';
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  border: 1px solid rgba(231, 246, 248, 0.55);
  color: #eaf6f8;
  display: grid;
  place-items: center;
  font-size: 1.08rem;
  flex: 0 0 auto;
}

.home-page #home-faq .faq-answer {
  padding: 0 1.2rem 1rem;
}

.home-page #home-faq .faq-answer p {
  color: rgba(234, 246, 248, 0.9);
  margin: 0;
  line-height: 1.55;
}

.home-page #home-faq .faq-item.open {
  background: rgba(233, 246, 248, 0.18);
  border-color: rgba(231, 246, 248, 0.55);
  box-shadow: 0 10px 24px rgba(3, 41, 48, 0.22);
}

.home-page #home-faq .faq-item.open .faq-question::after {
  content: '–';
}

@media (max-width: 760px) {
  .home-page .nav-toggle,
  .book-now-page .nav-toggle {
    color: #e9f6f8;
    border-color: rgba(216, 240, 244, 0.36);
    background: rgba(6, 68, 78, 0.42);
  }

  .home-page .nav-toggle:hover,
  .home-page .nav-toggle:focus-visible,
  .book-now-page .nav-toggle:hover,
  .book-now-page .nav-toggle:focus-visible {
    background: rgba(7, 78, 90, 0.64);
    border-color: rgba(216, 240, 244, 0.58);
  }

  .home-page .nav-menu,
  .book-now-page .nav-menu {
    background:
      radial-gradient(circle at 92% 8%, rgba(242, 207, 145, 0.16), transparent 40%),
      linear-gradient(165deg, rgba(4, 64, 74, 0.985), rgba(8, 93, 106, 0.97));
    border-color: rgba(216, 240, 244, 0.34);
  }

  .home-page .section-visual > .container {
    width: min(100% - 2rem, var(--max));
  }

  .home-page #home-faq .faq-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 960px) {
  .hero.hero-reference .hero-shell {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .hero.hero-reference .hero-left {
    padding: 3rem 1.3rem 1.3rem;
    min-height: auto;
  }

  .hero.hero-reference .hero-right {
    padding: 1rem 1.1rem 2.2rem;
  }

  .hero.hero-reference .hero-left h1 {
    max-width: 13.5ch;
  }

  .hero.hero-reference .hero-stat-row {
    grid-template-columns: 1fr 1fr 1fr;
  }

}

@media (max-width: 760px) {
  .hero.hero-reference .hero-stat-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .services-page .services-hero h1 {
    font-size: clamp(2rem, 10vw, 2.7rem);
  }
}

/* Blog page directory system */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.blog-page .section {
  position: relative;
}

.blog-page .blog-hero-media {
  isolation: isolate;
}

.blog-page .blog-hero-media::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(100deg, rgba(1, 33, 40, 0.72) 0%, rgba(2, 39, 47, 0.42) 50%, rgba(2, 39, 47, 0.2) 100%),
    radial-gradient(circle at 14% 88%, rgba(159, 214, 224, 0.32), transparent 42%);
}

.blog-page .blog-hero-media figcaption {
  z-index: 2;
  align-content: center;
  justify-items: center;
  text-align: center;
  gap: 0.95rem;
}

.blog-page .services-hero h1 {
  max-width: 18ch;
  line-height: 1.03;
  text-wrap: balance;
}

.blog-page .blog-hero-subtitle {
  color: rgba(233, 246, 248, 0.92);
  margin: 0;
  max-width: 58ch;
  font-size: 1.03rem;
}

.blog-page .blog-hero-actions {
  margin: 0.8rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: flex-start;
}

.blog-page .blog-hero-actions .btn-outline {
  color: #edf8fa;
  border-color: rgba(232, 245, 247, 0.58);
  background: rgba(232, 245, 247, 0.12);
}

.blog-page .blog-hero-actions .btn-outline:hover {
  background: rgba(232, 245, 247, 0.2);
  border-color: rgba(232, 245, 247, 0.9);
}

.blog-page .blog-directory-head {
  text-align: center;
}

.blog-page .blog-directory-head h2 {
  margin-bottom: 0.55rem;
}

.blog-page .blog-directory-head > p {
  margin-inline: auto;
  max-width: 72ch;
}

.blog-page .blog-directory-stats {
  margin-top: 1rem;
  margin-bottom: 1.1rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.blog-page .blog-stat {
  padding: 0.8rem 0.9rem;
  border-radius: 13px;
  border: 1px solid rgba(8, 72, 82, 0.2);
  background: rgba(235, 248, 250, 0.55);
  box-shadow: 0 10px 20px rgba(4, 37, 43, 0.08);
}

.blog-page .blog-stat p {
  margin: 0 0 0.22rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  font-size: 0.68rem;
  color: #1f5b65;
}

.blog-page .blog-stat strong {
  color: #0a4049;
  font-size: 1.28rem;
  line-height: 1;
}

.blog-page .blog-filter-row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.blog-page .blog-filter-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.42rem 0.84rem;
  border-radius: 999px;
  border: 1px solid rgba(10, 77, 88, 0.25);
  background: rgba(233, 246, 248, 0.56);
  color: #104f59;
  font-size: 0.81rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: transform 180ms var(--ease), background 180ms var(--ease), border-color 180ms var(--ease);
}

.blog-page .blog-filter-chip:hover {
  transform: translateY(-1px);
  border-color: rgba(10, 77, 88, 0.44);
  background: rgba(233, 246, 248, 0.85);
}

.blog-page .blog-filter-chip.active {
  background: linear-gradient(120deg, #0a5e6b, #127282);
  color: #ecf7f9;
  border-color: transparent;
}

.blog-page .blog-featured-post {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 1.2rem;
  padding: 0.9rem;
  border: 1px solid rgba(5, 63, 72, 0.2);
  background:
    radial-gradient(circle at 85% 4%, rgba(47, 143, 160, 0.16), transparent 40%),
    linear-gradient(180deg, rgba(241, 251, 253, 0.98), rgba(217, 237, 241, 0.95));
}

.blog-page .blog-featured-post img {
  width: 100%;
  height: 100%;
  min-height: 280px;
  max-height: 370px;
  object-fit: cover;
  border-radius: 14px;
}

.blog-page .blog-featured-post > div {
  align-self: center;
  padding: 0.35rem;
}

.blog-page .blog-featured-post h2 {
  margin-bottom: 0.62rem;
}

.blog-page .blog-featured-post .btn {
  margin-top: 0.25rem;
}

.blog-page .blog-meta {
  margin: 0 0 0.65rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}

.blog-page .blog-meta span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0.28rem 0.62rem;
  font-size: 0.67rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 800;
  color: #184c56;
  border: 1px solid rgba(11, 93, 105, 0.2);
  background: rgba(159, 200, 207, 0.38);
}

.blog-page .blog-meta span:first-child {
  background: rgba(47, 143, 160, 0.22);
  color: #0d4651;
}

.blog-page .blog-directory-layout {
  display: grid;
  grid-template-columns: 1fr 310px;
  gap: var(--space-4);
  align-items: start;
}

.blog-page .blog-post-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.95rem;
}

.blog-page .blog-post-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  border: 1px solid rgba(5, 63, 72, 0.17);
  background:
    radial-gradient(circle at 90% 8%, rgba(47, 143, 160, 0.14), transparent 36%),
    linear-gradient(180deg, rgba(237, 249, 251, 0.98), rgba(216, 236, 241, 0.95));
}

.blog-page .blog-post-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-radius: 12px;
  margin-bottom: 0.85rem;
}

.blog-page .blog-post-card h3 {
  margin-bottom: 0.5rem;
  font-size: clamp(1.45rem, 2.2vw, 1.78rem);
}

.blog-page .blog-post-card p {
  margin-bottom: 0.62rem;
}

.blog-page .blog-post-footer {
  margin-top: auto;
  margin-bottom: 0;
  padding-top: 0.6rem;
  border-top: 1px solid rgba(11, 93, 105, 0.18);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
}

.blog-page .blog-post-footer span {
  color: #245861;
  font-size: 0.85rem;
  font-weight: 600;
}

.blog-page .blog-post-footer a {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  color: #0a4f5a;
  font-weight: 700;
}

.blog-page .blog-post-footer a::after {
  content: '›';
  transition: transform 180ms var(--ease);
}

.blog-page .blog-post-card:hover .blog-post-footer a::after {
  transform: translateX(2px);
}

.blog-page .blog-sidebar {
  display: grid;
  gap: 0.85rem;
  position: sticky;
  top: 92px;
}

.blog-page .blog-side-card {
  border: 1px solid rgba(5, 63, 72, 0.16);
  background:
    radial-gradient(circle at 90% 10%, rgba(47, 143, 160, 0.11), transparent 36%),
    linear-gradient(180deg, rgba(238, 249, 251, 0.98), rgba(217, 236, 241, 0.94));
}

.blog-page .blog-side-card h3 {
  margin-bottom: 0.55rem;
}

.blog-page .blog-side-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.blog-page .blog-side-list a {
  display: block;
  padding: 0.62rem 0.72rem;
  border-radius: 10px;
  border: 1px solid rgba(10, 77, 88, 0.17);
  background: rgba(255, 255, 255, 0.45);
  color: #104d57;
  font-weight: 600;
  transition: border-color 180ms var(--ease), background 180ms var(--ease), transform 180ms var(--ease);
}

.blog-page .blog-side-list a:hover {
  border-color: rgba(10, 77, 88, 0.35);
  background: rgba(255, 255, 255, 0.68);
  transform: translateX(2px);
}

.blog-page .blog-search-form {
  margin-top: 0.35rem;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.4rem;
}

.blog-page .blog-search-form input {
  width: 100%;
  border: 1px solid rgba(10, 77, 88, 0.24);
  border-radius: 10px;
  padding: 0.65rem 0.72rem;
  font: inherit;
  color: #0d3f47;
  background: rgba(255, 255, 255, 0.75);
}

.blog-page .blog-search-form button {
  border: 0;
  border-radius: 10px;
  padding: 0.65rem 0.85rem;
  font: inherit;
  font-weight: 700;
  color: #eff8fa;
  cursor: pointer;
  background: linear-gradient(120deg, #0a5d69, #0f7180);
}

.blog-page .blog-search-form input:focus-visible,
.blog-page .blog-search-form button:focus-visible {
  outline: 2px solid rgba(5, 63, 72, 0.65);
  outline-offset: 1px;
}

.blog-page .blog-subscribe {
  background:
    radial-gradient(circle at 86% 7%, rgba(159, 214, 224, 0.23), transparent 38%),
    linear-gradient(170deg, rgba(8, 79, 89, 0.96), rgba(5, 63, 72, 0.98));
  border: 1px solid rgba(231, 246, 248, 0.24);
}

.blog-page .blog-subscribe .kicker,
.blog-page .blog-subscribe h3,
.blog-page .blog-subscribe p {
  color: #e8f5f7;
}

.blog-page .blog-subscribe .btn {
  background: linear-gradient(120deg, #2f8fa0, #0f7180);
  border: 1px solid rgba(232, 245, 247, 0.28);
  box-shadow: 0 10px 24px rgba(2, 34, 40, 0.34);
}

.blog-page .blog-post-card h3 a {
  color: inherit;
}

.blog-post-page .blog-post-hero-media figcaption {
  z-index: 2;
  align-content: center;
  justify-items: center;
  text-align: center;
  gap: 0.78rem;
}

.blog-post-page .blog-post-hero-meta {
  margin: 0;
  display: flex;
  gap: 0.52rem;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
}

.blog-post-page .blog-post-hero-meta span {
  border-radius: 999px;
  border: 1px solid rgba(232, 245, 247, 0.38);
  background: rgba(232, 245, 247, 0.12);
  color: #eaf7f9;
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 700;
  padding: 0.28rem 0.62rem;
}

.blog-post-page .blog-post-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 0.9rem;
  align-items: start;
}

.blog-post-page .blog-post-article {
  border: 1px solid rgba(14, 54, 63, 0.18);
  background: #ffffff;
  box-shadow: 0 12px 26px rgba(2, 36, 43, 0.16);
  color: #111111;
}

.blog-post-page .blog-post-label {
  margin: 0;
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  padding: 0.3rem 0.65rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  font-weight: 700;
  color: #1a2f36;
  background: rgba(240, 230, 213, 0.92);
  border: 1px solid rgba(184, 138, 75, 0.52);
}

.blog-post-page .blog-post-takeaways {
  margin: 0.68rem 0 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.35rem;
}

.blog-post-page .blog-post-takeaways li {
  color: #111111;
}

.blog-post-page .blog-post-content {
  margin-top: 1rem;
  display: grid;
  gap: 1.15rem;
}

.blog-post-page .blog-post-content section h2 {
  margin: 0 0 0.5rem;
  color: #111111;
  font-size: clamp(1.45rem, 2.1vw, 1.95rem);
}

.blog-post-page .blog-post-content p {
  margin: 0.45rem 0 0;
  color: #111111;
  line-height: 1.68;
}

.blog-post-page .blog-post-content ul {
  margin: 0.55rem 0 0;
  padding-left: 1.15rem;
}

.blog-post-page .blog-post-content li {
  margin-bottom: 0.25rem;
  color: #111111;
}

.blog-post-page .blog-post-bottom-cta {
  margin-top: 1.1rem;
  border-top: 1px solid rgba(14, 54, 63, 0.2);
  padding-top: 0.88rem;
}

.blog-post-page .blog-post-bottom-cta h3 {
  margin: 0;
  color: #111111;
}

.blog-post-page .blog-post-bottom-cta p {
  margin: 0.45rem 0 0;
  color: #111111;
}

.blog-post-page .blog-post-bottom-cta .btn-outline {
  margin-left: 0.45rem;
}

.blog-post-page .blog-post-sidebar {
  display: grid;
  gap: 0.85rem;
  position: sticky;
  top: 92px;
}

.blog-post-page .blog-post-side-card {
  border: 1px solid rgba(213, 236, 240, 0.3);
  background: rgba(230, 243, 245, 0.1);
  box-shadow: 0 10px 24px rgba(2, 36, 43, 0.2);
}

.blog-post-page .blog-post-toc a {
  color: #f0cb8e;
}

.blog-post-page .blog-post-related {
  display: grid;
  gap: 0.5rem;
}

.blog-post-page .blog-post-related a {
  display: block;
  border-radius: 10px;
  border: 1px solid rgba(213, 236, 240, 0.28);
  background: rgba(230, 243, 245, 0.07);
  padding: 0.58rem 0.65rem;
  color: #ecf8fa;
  transition: border-color 180ms var(--ease), transform 180ms var(--ease), background 180ms var(--ease);
}

.blog-post-page .blog-post-related a:hover {
  border-color: rgba(184, 138, 75, 0.54);
  background: rgba(184, 138, 75, 0.15);
  transform: translateY(-1px);
}

.city-page .city-hero-shell {
  padding-top: 0.35rem;
  padding-bottom: 0.2rem;
}

.city-page .city-hero-shell h1 {
  margin-bottom: 0.5rem;
  max-width: 20ch;
  color: #eaf7f9;
  line-height: 1.03;
}

.city-page .city-hero-lead {
  margin: 0;
  max-width: 64ch;
  color: rgba(232, 245, 247, 0.93);
  font-size: 1.04rem;
}

.city-page .city-hero-chips {
  margin: 0.7rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.city-page .city-hero-chips span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid rgba(232, 245, 247, 0.34);
  background: rgba(232, 245, 247, 0.1);
  color: #e9f6f8;
  padding: 0.3rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.city-page .city-proof-card {
  border: 1px solid rgba(213, 236, 240, 0.28);
  background:
    radial-gradient(circle at 88% 10%, rgba(184, 138, 75, 0.14), transparent 40%),
    linear-gradient(160deg, rgba(4, 58, 67, 0.68), rgba(8, 78, 88, 0.48));
  box-shadow: 0 14px 30px rgba(2, 34, 40, 0.28);
}

.city-page .city-proof-card .kicker {
  color: #f2ce95;
}

.city-page .city-proof-card h2 {
  margin: 0.3rem 0 0.5rem;
  color: #f0fafc;
  font-size: clamp(2rem, 3.2vw, 3rem);
  line-height: 1.02;
}

.city-page .city-proof-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap: 0.72rem;
  align-items: start;
}

.city-page .city-proof-quote {
  margin: 0;
  color: rgba(232, 245, 247, 0.92);
  font-size: 1.04rem;
}

.city-page .city-proof-points {
  margin-top: 0.68rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.46rem;
}

.city-page .city-proof-points span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid rgba(213, 236, 240, 0.34);
  background: rgba(230, 243, 245, 0.1);
  color: #edf9fb;
  padding: 0.24rem 0.58rem;
  font-size: 0.77rem;
  font-weight: 700;
}

.city-page .city-proof-meta {
  display: grid;
  gap: 0.46rem;
}

.city-page .city-proof-meta article {
  border: 1px solid rgba(213, 236, 240, 0.3);
  border-radius: 12px;
  background: rgba(230, 243, 245, 0.1);
  padding: 0.62rem 0.68rem;
}

.city-page .city-proof-meta p {
  margin: 0;
  color: rgba(232, 245, 247, 0.78);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.city-page .city-proof-meta strong {
  margin-top: 0.2rem;
  display: block;
  color: #f0fafc;
  font-size: 1rem;
  line-height: 1.35;
}

.city-page .city-proof-actions {
  margin: 0.75rem 0 0;
}

.city-page .city-proof-actions .btn-outline {
  border-color: rgba(230, 243, 245, 0.45);
  color: #edf9fb;
  background: rgba(230, 243, 245, 0.08);
}

.city-page .city-proof-actions .btn-outline:hover {
  border-color: rgba(242, 206, 149, 0.75);
  color: #ffffff;
  background: rgba(242, 206, 149, 0.14);
}

.city-page .city-proof-actions .btn-outline {
  margin-left: 0.45rem;
}

.city-page .city-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 0.9rem;
  align-items: start;
}

.city-page .city-main-card {
  border: 1px solid rgba(213, 236, 240, 0.34);
  background:
    radial-gradient(circle at 88% 8%, rgba(184, 138, 75, 0.14), transparent 40%),
    rgba(230, 243, 245, 0.1);
}

.city-page .city-section-label {
  margin: 0;
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  padding: 0.3rem 0.65rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  font-weight: 700;
  color: #f2ce95;
  background: rgba(184, 138, 75, 0.12);
  border: 1px solid rgba(184, 138, 75, 0.36);
}

.city-page .city-main-card h2 {
  margin: 0.5rem 0;
  color: #151d22;
}

.city-page .city-main-card p {
  color: #2a5f68;
}

.city-page .city-highlight-list {
  margin: 0.7rem 0 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.35rem;
}

.city-page .city-highlight-list li {
  color: #2a5f68;
}

.city-page .city-bottom-bar {
  margin-top: 0.9rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(213, 236, 240, 0.24);
}

.city-page .city-bottom-bar p {
  margin: 0.32rem 0 0;
}

.city-page .city-side-stack {
  display: grid;
  gap: 0.85rem;
  position: sticky;
  top: 92px;
}

.city-page .city-side-card {
  border: 1px solid rgba(213, 236, 240, 0.3);
  background: rgba(230, 243, 245, 0.1);
  box-shadow: 0 10px 24px rgba(2, 36, 43, 0.2);
}

.city-page .city-side-card h3 {
  margin-bottom: 0.45rem;
  color: #151d22;
}

.city-page .city-side-card p {
  color: #2a5f68;
}

.city-page .city-side-cta {
  background:
    radial-gradient(circle at 86% 7%, rgba(159, 214, 224, 0.23), transparent 38%),
    linear-gradient(170deg, rgba(8, 79, 89, 0.96), rgba(5, 63, 72, 0.98));
}

.city-page .city-side-cta .kicker,
.city-page .city-side-cta h3,
.city-page .city-side-cta p {
  color: #e8f5f7;
}

.city-page .city-faq-list {
  display: grid;
  gap: 0.6rem;
  margin-top: 0.65rem;
}

.city-page .city-faq-list .faq-item {
  border: 1px solid rgba(212, 238, 243, 0.22);
  border-radius: 12px;
  background: rgba(230, 243, 245, 0.06);
  overflow: hidden;
}

.city-page .city-faq-list .faq-question {
  color: #f0fafc;
  background: transparent;
  padding: 0.82rem 0.9rem;
  font-weight: 600;
  position: relative;
  border: 0;
  width: 100%;
  text-align: left;
}

.city-page .city-faq-list .faq-question::after {
  content: '+';
  position: absolute;
  right: 0.9rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.1rem;
  color: #f0cb8e;
}

.city-page .city-faq-list .faq-item.open .faq-question::after {
  content: '−';
}

.city-page .city-faq-list .faq-answer p {
  margin: 0;
  padding: 0 0.9rem 0.85rem;
  color: rgba(232, 245, 247, 0.9);
  line-height: 1.55;
}

.city-page .city-faq-list .faq-item.open {
  background:
    radial-gradient(circle at 92% 8%, rgba(184, 138, 75, 0.12), transparent 38%),
    rgba(230, 243, 245, 0.1);
  border-color: rgba(184, 138, 75, 0.42);
}

.city-page .city-services-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 0.8rem;
}

.city-page .city-services-lead {
  margin: 0 0 0.55rem;
  max-width: 72ch;
  color: rgba(232, 245, 247, 0.9);
}

.city-page .city-services-actions {
  margin: 0 0 0.75rem;
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.city-page .city-service-feature {
  grid-row: span 2;
}

.city-page .city-impact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.72rem;
}

.city-page .city-impact-card {
  border: 1px solid rgba(213, 236, 240, 0.3);
  border-radius: 14px;
  background:
    radial-gradient(circle at 90% 10%, rgba(184, 138, 75, 0.12), transparent 42%),
    rgba(230, 243, 245, 0.1);
  padding: 0.82rem;
}

.city-page .city-impact-card p {
  margin: 0;
  color: rgba(232, 245, 247, 0.86);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  font-weight: 700;
}

.city-page .city-impact-card strong {
  margin-top: 0.3rem;
  display: block;
  color: #f0fafc;
  font-size: 1.25rem;
  line-height: 1.3;
}

.city-page .city-impact-meter {
  margin-top: 0.58rem;
  height: 7px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(6, 64, 74, 0.45);
}

.city-page .city-impact-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(242, 206, 149, 0.95), rgba(213, 236, 240, 0.95));
}

.city-page .city-process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.72rem;
}

.city-page .city-process-step {
  border: 1px solid rgba(213, 236, 240, 0.3);
  border-radius: 14px;
  background: rgba(230, 243, 245, 0.1);
  padding: 0.84rem;
}

.city-page .city-process-step span {
  display: inline-flex;
  width: 1.9rem;
  height: 1.9rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(184, 138, 75, 0.52);
  background: rgba(184, 138, 75, 0.14);
  color: #f2ce95;
  font-weight: 800;
  margin-bottom: 0.5rem;
}

.city-page .city-process-step h3 {
  margin-bottom: 0.35rem;
  color: #f0fafc;
}

.city-page .city-process-step p {
  margin: 0;
  color: rgba(232, 245, 247, 0.9);
}

.city-page .city-local-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 0.82rem;
}

.city-page .city-local-main {
  border: 1px solid rgba(213, 236, 240, 0.26);
  border-radius: 14px;
  background:
    radial-gradient(circle at 18% 0%, rgba(242, 206, 149, 0.1), transparent 42%),
    rgba(3, 53, 62, 0.26);
  padding: 1rem;
}

.city-page .city-local-main .kicker {
  color: #f2ce95;
}

.city-page .city-local-main h2 {
  margin: 0 0 0.45rem;
  max-width: 18ch;
  color: #f0fafc;
}

.city-page .city-local-main p {
  color: rgba(232, 245, 247, 0.92);
}

.city-page .city-local-pill-row {
  margin: 0.58rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
}

.city-page .city-local-pill-row span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid rgba(213, 236, 240, 0.34);
  background: rgba(230, 243, 245, 0.09);
  padding: 0.3rem 0.62rem;
  color: #edf9fb;
  font-size: 0.82rem;
  line-height: 1.2;
  font-weight: 700;
}

.city-page .city-local-actions {
  margin: 0.72rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.city-page .city-local-panel {
  border: 1px solid rgba(213, 236, 240, 0.3);
  border-radius: 14px;
  background:
    radial-gradient(circle at 78% 10%, rgba(242, 206, 149, 0.12), transparent 44%),
    linear-gradient(165deg, rgba(230, 243, 245, 0.18), rgba(230, 243, 245, 0.08));
  padding: 0.9rem;
}

.city-page .city-local-panel-kicker {
  margin: 0 0 0.22rem;
  color: #f2ce95;
  font-size: 0.75rem;
  letter-spacing: 0.11em;
  font-weight: 800;
  text-transform: uppercase;
}

.city-page .city-local-panel h3 {
  margin: 0 0 0.28rem;
  color: #f0fafc;
  max-width: 18ch;
}

.city-page .city-local-panel-lead {
  margin: 0;
  color: rgba(232, 245, 247, 0.88);
  font-size: 0.96rem;
  line-height: 1.45;
}

.city-page .city-local-panel-metrics {
  margin: 0.66rem 0 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.42rem;
}

.city-page .city-local-panel-metrics article {
  border: 1px solid rgba(213, 236, 240, 0.26);
  border-radius: 12px;
  background: rgba(5, 63, 72, 0.26);
  padding: 0.45rem 0.5rem;
}

.city-page .city-local-panel-metrics p {
  margin: 0;
  color: rgba(232, 245, 247, 0.76);
  font-size: 0.68rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  font-weight: 700;
}

.city-page .city-local-panel-metrics strong {
  display: block;
  margin-top: 0.18rem;
  color: #f0fafc;
  font-size: 0.9rem;
  line-height: 1.2;
}

.city-page .city-local-panel-list {
  margin: 0.66rem 0 0;
  padding-left: 0;
  list-style: none;
  display: grid;
  gap: 0.42rem;
}

.city-page .city-local-panel-list li {
  color: rgba(236, 248, 250, 0.92);
  line-height: 1.42;
  padding-left: 1rem;
  position: relative;
}

.city-page .city-local-panel-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.52rem;
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 999px;
  background: linear-gradient(120deg, #f2ce95, #d5ecf0);
}

.city-page .city-local-panel-list strong {
  color: #f7fdff;
}

.city-page .city-local-panel-cta {
  margin: 0.7rem 0 0;
}

.city-page .city-local-panel-cta a {
  display: inline-flex;
  align-items: center;
  gap: 0.24rem;
  color: #f2ce95;
  font-weight: 700;
  font-size: 0.9rem;
  border-bottom: 1px solid rgba(242, 206, 149, 0.42);
  transition: color 180ms var(--ease), border-color 180ms var(--ease);
}

.city-page .city-local-panel-cta a:hover {
  color: #f8dcb1;
  border-color: rgba(248, 220, 177, 0.7);
}

.city-page .city-nearby-shell {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 0.84rem;
  align-items: start;
}

.city-page .city-nearby-intro {
  border: 1px solid rgba(213, 236, 240, 0.28);
  border-radius: 14px;
  background:
    radial-gradient(circle at 20% 0%, rgba(242, 206, 149, 0.12), transparent 42%),
    rgba(3, 53, 62, 0.26);
  padding: 0.95rem;
}

.city-page .city-nearby-intro h2 {
  color: #f0fafc;
  margin-bottom: 0.4rem;
}

.city-page .city-nearby-intro p {
  color: rgba(232, 245, 247, 0.9);
  margin-bottom: 0;
}

.city-page .city-nearby-actions {
  margin-top: 0.68rem;
}

.city-page .city-nearby-actions .btn-outline {
  border-color: rgba(230, 243, 245, 0.42);
  color: #edf9fb;
  background: rgba(230, 243, 245, 0.08);
}

.city-page .city-nearby-actions .btn-outline:hover {
  border-color: rgba(242, 206, 149, 0.74);
  background: rgba(242, 206, 149, 0.14);
}

.city-page .city-nearby-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.58rem;
}

.city-page .city-nearby-links a {
  display: block;
  border-radius: 14px;
  border: 1px solid rgba(213, 236, 240, 0.3);
  background:
    radial-gradient(circle at 88% 8%, rgba(242, 206, 149, 0.1), transparent 36%),
    rgba(230, 243, 245, 0.1);
  padding: 0.66rem 0.72rem;
  color: #ecf8fa;
  transition: border-color 180ms var(--ease), transform 180ms var(--ease), background 180ms var(--ease);
}

.city-page .city-nearby-links a strong {
  display: block;
  color: #f0fafc;
  font-size: 1.08rem;
  line-height: 1.2;
}

.city-page .city-nearby-links a span {
  display: block;
  margin-top: 0.22rem;
  color: rgba(232, 245, 247, 0.84);
  font-size: 0.86rem;
  line-height: 1.35;
}

.city-page .city-nearby-links a em {
  display: inline-flex;
  margin-top: 0.46rem;
  color: #f2ce95;
  font-style: normal;
  font-weight: 700;
  font-size: 0.82rem;
}

.city-page .city-nearby-links a:hover {
  border-color: rgba(184, 138, 75, 0.56);
  background:
    radial-gradient(circle at 88% 8%, rgba(242, 206, 149, 0.16), transparent 36%),
    rgba(230, 243, 245, 0.14);
  transform: translateY(-2px);
}

.city-page .city-bottom-bar strong,
.city-page .city-bottom-bar a {
  color: #1a5360;
}

@media (max-width: 1080px) {
  .blog-page .blog-directory-layout {
    grid-template-columns: 1fr;
  }

  .blog-page .blog-sidebar {
    position: static;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .blog-post-page .blog-post-shell {
    grid-template-columns: 1fr;
  }

  .blog-post-page .blog-post-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .city-page .city-layout {
    grid-template-columns: 1fr;
  }

  .city-page .city-proof-shell {
    grid-template-columns: 1fr;
  }

  .city-page .city-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .city-page .city-service-feature {
    grid-row: auto;
    grid-column: span 2;
  }

  .city-page .city-impact-grid,
  .city-page .city-process-grid,
  .city-page .city-local-split {
    grid-template-columns: 1fr;
  }

  .city-page .city-nearby-shell {
    grid-template-columns: 1fr;
  }

  .city-page .city-nearby-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .city-page .city-local-panel-metrics {
    grid-template-columns: 1fr;
  }

  .city-page .city-side-stack {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 920px) {
  .blog-page .blog-featured-post {
    grid-template-columns: 1fr;
  }

  .blog-page .blog-post-grid {
    grid-template-columns: 1fr;
  }

  .blog-page .blog-directory-stats {
    grid-template-columns: 1fr;
  }

  .city-page .city-side-stack {
    grid-template-columns: 1fr;
  }

  .city-page .city-services-grid {
    grid-template-columns: 1fr;
  }

  .city-page .city-nearby-links {
    grid-template-columns: 1fr;
  }

  .city-page .city-service-feature {
    grid-column: auto;
  }
}

@media (max-width: 760px) {
  .blog-page .blog-hero-subtitle {
    font-size: 0.96rem;
  }

  .blog-page .blog-hero-actions {
    width: 100%;
  }

  .blog-page .blog-hero-actions .btn,
  .blog-page .blog-hero-actions .btn-outline {
    flex: 1 1 100%;
  }

  .blog-page .blog-post-footer {
    flex-wrap: wrap;
  }

  .blog-page .blog-sidebar {
    grid-template-columns: 1fr;
  }

  .blog-page .blog-search-form {
    grid-template-columns: 1fr;
  }

  .blog-post-page .blog-post-sidebar {
    grid-template-columns: 1fr;
  }

  .city-page .city-services-actions .btn,
  .city-page .city-services-actions .btn-outline {
    flex: 1 1 100%;
  }

  .city-page .city-local-actions .btn,
  .city-page .city-local-actions .btn-outline {
    flex: 1 1 100%;
  }

  .blog-post-page .blog-post-bottom-cta .btn-outline {
    margin-left: 0;
    margin-top: 0.42rem;
  }

  .city-page .city-proof-actions .btn-outline {
    margin-left: 0;
    margin-top: 0.42rem;
  }
}

/* Book now page professional booking layout */
.book-now-page .site-header {
  border-bottom: 1px solid rgba(216, 240, 244, 0.26);
  background: linear-gradient(180deg, rgba(6, 68, 78, 0.96), rgba(8, 79, 90, 0.92));
  box-shadow: 0 12px 28px rgba(2, 34, 40, 0.35);
}

.book-now-page .brand,
.book-now-page .brand span {
  color: #e9f6f8;
}

.book-now-page .nav-link {
  color: rgba(233, 246, 248, 0.86);
}

.book-now-page .nav-link:hover,
.book-now-page .nav-link[aria-current='page'] {
  color: #ffffff;
}

.book-now-page .nav-link::after {
  background: linear-gradient(90deg, #9ed8e1, #d7f1f5);
}

.book-now-page .site-header .btn {
  background: linear-gradient(120deg, #0a5c68, #0f7382);
  border: 1px solid rgba(215, 241, 245, 0.26);
  box-shadow: 0 10px 24px rgba(3, 40, 47, 0.42);
}

.book-now-page .book-now-hero-media {
  isolation: isolate;
}

.book-now-page .book-now-hero-media::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(110deg, rgba(2, 37, 45, 0.72), rgba(2, 37, 45, 0.28)),
    radial-gradient(circle at 82% 14%, rgba(159, 214, 224, 0.18), transparent 42%);
}

.book-now-page .book-now-hero-media figcaption {
  z-index: 2;
  text-align: center;
  gap: 0.9rem;
  align-content: center;
  justify-items: center;
}

.book-now-page .book-now-hero-media h1 {
  max-width: 18ch;
}

.book-now-page .book-now-trust-strip {
  padding-top: 1.35rem;
  padding-bottom: 1.35rem;
}

.book-now-page .book-now-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.book-now-page .book-now-trust-item {
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  border: 1px solid rgba(8, 72, 82, 0.22);
  background: rgba(237, 249, 251, 0.65);
}

.book-now-page .book-now-trust-item p {
  margin: 0 0 0.24rem;
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: #1a5964;
}

.book-now-page .book-now-trust-item strong {
  color: #0f434d;
  font-size: 1.03rem;
}

.book-now-page .book-now-booking-section {
  padding-top: var(--space-5);
}

.book-now-page .book-now-shell {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
  align-items: stretch;
}

.book-now-page .book-now-widget-card,
.book-now-page .book-now-assist-card,
.book-now-page .book-now-featured-choice {
  border: 1px solid rgba(8, 72, 82, 0.18);
  background:
    radial-gradient(circle at 92% 8%, rgba(47, 143, 160, 0.09), transparent 36%),
    linear-gradient(180deg, rgba(252, 254, 255, 0.99), rgba(236, 248, 251, 0.98));
  border-radius: 20px;
  box-shadow: 0 16px 30px rgba(3, 40, 47, 0.15);
}

.book-now-page .book-now-widget-head {
  margin-bottom: 0.95rem;
}

.book-now-page .book-now-widget-head h2 {
  margin-bottom: 0.45rem;
}

.book-now-page .book-now-widget-card {
  padding: 1.35rem;
}

.book-now-page .book-now-widget-frame-wrap {
  border: 1px solid rgba(10, 77, 88, 0.16);
  border-radius: 16px;
  overflow: hidden;
  background: #ffffff;
  min-height: 460px;
  position: relative;
}

.book-now-page .book-now-widget-frame-wrap .vagaro {
  width: 100% !important;
  max-width: 100%;
  margin: 0 auto;
}

.book-now-page .book-now-widget-frame-wrap .vagaro iframe,
.book-now-page .book-now-widget-frame-wrap iframe[src*="vagaro.com"] {
  width: 100% !important;
  max-width: 100%;
  border: 0;
  display: block;
}

.book-now-page .book-now-mobile-fallback {
  display: none;
  margin-top: 0.9rem;
}

.book-now-page .book-now-mobile-fallback p {
  margin-bottom: 0.55rem;
}

.book-now-page .book-now-widget-frame {
  width: 100%;
  height: 460px;
  border: 0;
  display: block;
}

.book-now-page .book-now-widget-empty {
  position: absolute;
  inset: 0;
  display: none;
  align-content: center;
  justify-items: center;
  text-align: center;
  padding: 1rem;
  background: linear-gradient(180deg, rgba(244, 250, 252, 0.96), rgba(233, 246, 249, 0.94));
  color: #174850;
}

.book-now-page .book-now-widget-empty p {
  margin-bottom: 0.4rem;
  color: #174850;
}

.book-now-page .book-now-widget-frame-wrap.is-placeholder .book-now-widget-empty {
  display: grid;
}

.book-now-page .book-now-widget-frame-wrap.is-placeholder .book-now-widget-frame {
  opacity: 0.05;
  pointer-events: none;
}

.book-now-page .book-now-widget-fallback {
  margin: 0.95rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.book-now-page .book-now-assist-rail {
  display: grid;
  gap: 0.9rem;
}

.book-now-page .book-now-assist-card {
  padding: 1.15rem 1.1rem;
}

.book-now-page .book-now-assist-card h3 {
  margin-bottom: 0.48rem;
}

.book-now-page .book-now-assist-card ul {
  margin-bottom: 0.15rem;
}

.book-now-page .book-now-contact-row {
  margin-bottom: 0.5rem;
}

.book-now-page .book-now-contact-row strong {
  color: #144a54;
}

.book-now-page .book-now-contact-actions {
  margin: 0.8rem 0 0;
  display: grid;
  gap: 0.45rem;
}

.book-now-page .book-now-featured-section {
  padding-top: var(--space-5);
}

.book-now-page .book-now-featured-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
}

.book-now-page .book-now-featured-choice {
  text-align: left;
  padding: 1.2rem 1.15rem;
}

.book-now-page .book-now-featured-choice p {
  max-width: 64ch;
}

.book-now-page .book-now-featured-choice .btn,
.book-now-page .book-now-featured-choice .btn-outline {
  margin-top: 0.15rem;
}

.book-now-page .book-now-widget-card .kicker,
.book-now-page .book-now-assist-card .kicker,
.book-now-page .book-now-featured-choice .kicker {
  color: #16525d;
}

.book-now-page .book-now-widget-card h2,
.book-now-page .book-now-assist-card h3,
.book-now-page .book-now-featured-choice h2 {
  color: #0f3f48;
}

.book-now-page .book-now-widget-card p,
.book-now-page .book-now-assist-card p,
.book-now-page .book-now-featured-choice p,
.book-now-page .book-now-assist-card li {
  color: #1e4e57;
}

.book-now-page .book-now-assist-card a {
  color: #0b4f59;
}

@media (max-width: 1040px) {
  .book-now-page .book-now-shell {
    grid-template-columns: 1fr;
  }

  .book-now-page .book-now-trust-grid,
  .book-now-page .book-now-featured-layout {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1041px) {
  .book-now-page .book-now-assist-rail {
    height: 100%;
    grid-template-rows: 1fr 1fr;
  }

  .book-now-page .book-now-assist-card {
    height: 100%;
  }
}

@media (max-width: 760px) {
  .book-now-page .book-now-widget-fallback .btn,
  .book-now-page .book-now-widget-fallback .btn-outline {
    flex: 1 1 100%;
  }

  .book-now-page .book-now-widget-frame-wrap {
    display: block;
    max-height: 82vh;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }

  .book-now-page .book-now-widget-frame {
    min-height: 0;
    height: auto;
  }

  .book-now-page .book-now-widget-frame-wrap .vagaro iframe,
  .book-now-page .book-now-widget-frame-wrap iframe[src*="vagaro.com"] {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 2600px !important;
    height: 2600px !important;
  }

  .book-now-page .book-now-mobile-fallback {
    display: none;
  }

  .book-now-page .book-now-widget-card,
  .book-now-page .book-now-assist-card,
  .book-now-page .book-now-featured-choice {
    padding: 1rem;
  }
}

/* About page unique layout modules */
.about-page .about-intro-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: var(--space-4);
}

.about-page .about-value-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-4);
}

.about-page .about-process-layout {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: var(--space-4);
  align-items: stretch;
}

.about-page .about-process-rail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: var(--space-3);
}

.about-page .about-process-intro {
  height: 100%;
}

.about-page .about-step {
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--sage-deep);
  margin-bottom: 0.35rem;
}

.about-page .about-focus-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-4);
  align-items: stretch;
}

.about-page .about-focus-main {
  grid-row: auto;
  padding: 1.2rem 1.35rem;
}

.about-page .about-focus-image img {
  height: 100%;
  min-height: 0;
  max-height: 440px;
  object-fit: cover;
}

.about-page .about-focus-note {
  grid-column: 1 / -1;
  padding: 1rem 1.15rem;
}

.about-page .about-focus-main h2 {
  margin-bottom: 0.6rem;
}

.about-page .about-focus-main .list-clean li {
  margin-bottom: 0.35rem;
}

.about-page .about-standards-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-4);
}

.about-page .about-standards-list {
  display: grid;
  gap: 0.7rem;
}

.about-page .about-standards-list p {
  margin: 0;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  border: 1px solid rgba(5, 63, 72, 0.15);
  background: rgba(255, 255, 255, 0.45);
}

.about-page .about-image-stack {
  display: grid;
  gap: var(--space-3);
}

.about-page .about-image-stack img {
  width: 100%;
  height: 210px;
  object-fit: cover;
}

.about-page .about-cta-card {
  text-align: center;
}

@media (max-width: 1000px) {
  .about-page .about-intro-grid,
  .about-page .about-process-layout,
  .about-page .about-focus-grid,
  .about-page .about-standards-grid {
    grid-template-columns: 1fr;
  }

  .about-page .about-focus-main {
    grid-row: auto;
  }

  .about-page .about-focus-note {
    grid-column: auto;
  }
}

@media (max-width: 760px) {
  .about-page .about-value-grid,
  .about-page .about-process-rail {
    grid-template-columns: 1fr;
  }

  .about-page .about-image-stack img {
    height: 180px;
  }
}

/* Areas page city cards */
.areas-page .city-card {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  min-height: 250px;
  border: 1px solid rgba(5, 63, 72, 0.16);
  background:
    radial-gradient(circle at 92% 8%, rgba(47, 143, 160, 0.14), transparent 38%),
    linear-gradient(180deg, rgba(232, 246, 249, 0.98), rgba(213, 233, 238, 0.94));
  box-shadow: 0 14px 30px rgba(4, 37, 43, 0.2);
  transition: transform 220ms var(--ease), box-shadow 220ms var(--ease), border-color 220ms var(--ease);
}

.areas-page .city-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 36px rgba(4, 37, 43, 0.28);
  border-color: rgba(11, 93, 105, 0.36);
}

.areas-page .city-card-chip {
  margin: 0;
  display: inline-flex;
  align-self: flex-start;
  padding: 0.26rem 0.6rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #124d57;
  background: rgba(159, 200, 207, 0.48);
  border: 1px solid rgba(11, 93, 105, 0.2);
}

.areas-page .city-card h3 {
  margin: 0.1rem 0 0;
  font-size: clamp(1.8rem, 2.3vw, 2.35rem);
}

.areas-page .city-card h3 a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.areas-page .city-card h3 a::after {
  content: '›';
  font-size: 1.1rem;
  color: var(--sage-deep);
  transform: translateX(0);
  transition: transform 200ms var(--ease);
}

.areas-page .city-card:hover h3 a::after {
  transform: translateX(3px);
}

.areas-page .city-card p {
  margin: 0;
}

.areas-page .city-card-link {
  margin-top: auto;
  padding-top: 0.55rem;
}

.areas-page .city-card-link a {
  font-weight: 700;
  color: #0b4f59;
  border-bottom: 1px solid rgba(11, 79, 89, 0.28);
}

@media (max-width: 760px) {
  .areas-page .city-card {
    min-height: 0;
  }

  .areas-page .city-card h3 {
    font-size: clamp(1.55rem, 7vw, 2rem);
  }
}

/* Services page pricing cards */
.services-showcase-page .service-card {
  display: flex;
  flex-direction: column;
  min-height: 360px;
  border: 1px solid rgba(5, 63, 72, 0.16);
  background:
    radial-gradient(circle at 88% 8%, rgba(47, 143, 160, 0.12), transparent 34%),
    linear-gradient(180deg, rgba(236, 248, 250, 0.98), rgba(214, 233, 238, 0.94));
}

.services-showcase-page .service-card-chip {
  margin: 0;
  display: inline-flex;
  align-self: flex-start;
  padding: 0.24rem 0.62rem;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.68rem;
  font-weight: 700;
  color: #124d57;
  background: rgba(159, 200, 207, 0.5);
  border: 1px solid rgba(11, 93, 105, 0.2);
}

.services-showcase-page .service-card h2 {
  margin-top: 0.65rem;
  margin-bottom: 0.5rem;
}

.services-showcase-page .service-price-box {
  margin-top: 0.35rem;
  display: grid;
  gap: 0.5rem;
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(11, 93, 105, 0.15);
}

.services-showcase-page .service-price-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.7rem;
}

.services-showcase-page .service-price-row span {
  font-weight: 700;
  color: #154a54;
}

.services-showcase-page .service-price-row strong {
  font-size: 1.28rem;
  line-height: 1;
  color: #063f49;
}

.services-showcase-page .service-card-cta {
  margin-top: auto;
  padding-top: 0.95rem;
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .services-showcase-page .service-card {
    min-height: 0;
  }
}

/* Reviews page unique sections */
.reviews-page .reviews-proof-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.reviews-page .reviews-proof-item {
  min-height: 220px;
  background:
    radial-gradient(circle at 90% 10%, rgba(47, 143, 160, 0.12), transparent 36%),
    linear-gradient(180deg, rgba(238, 249, 251, 0.98), rgba(217, 236, 241, 0.95));
}

.reviews-page .reviews-proof-label {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.68rem;
  font-weight: 700;
  color: #205963;
}

.reviews-page .reviews-proof-item h2 {
  margin: 0.2rem 0 0.45rem;
  font-size: clamp(2rem, 3.2vw, 3rem);
}

.reviews-page .reviews-proof-item h2 span {
  font-size: 0.6em;
  color: #2f5f67;
}

.reviews-page .reviews-feature-layout {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: var(--space-4);
}

.reviews-page .reviews-feature-quote h2 {
  font-size: clamp(2rem, 3vw, 2.8rem);
  margin-bottom: 0.7rem;
}

.reviews-page .reviews-feature-media {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.reviews-page .reviews-feature-media img {
  width: 100%;
  min-height: 260px;
  object-fit: cover;
}

.reviews-page .reviews-theme-grid {
  margin-top: var(--space-4);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.reviews-page .reviews-meter {
  margin-top: 0.65rem;
  height: 10px;
  border-radius: 999px;
  background: rgba(8, 72, 82, 0.14);
  overflow: hidden;
}

.reviews-page .reviews-meter span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #0b5d69, #2f8fa0);
}

@media (max-width: 1000px) {
  .reviews-page .reviews-proof-grid,
  .reviews-page .reviews-theme-grid,
  .reviews-page .reviews-feature-layout {
    grid-template-columns: 1fr;
  }
}

/* FAQ page layout and styling */
.faq-page .faq-quick-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.faq-page .faq-quick-item {
  min-height: 210px;
  background:
    radial-gradient(circle at 90% 8%, rgba(47, 143, 160, 0.12), transparent 36%),
    linear-gradient(180deg, rgba(238, 249, 251, 0.98), rgba(216, 236, 241, 0.95));
}

.faq-page .faq-quick-label {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.68rem;
  font-weight: 700;
  color: #1f5a64;
}

.faq-page .faq-layout-extended {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
  align-items: start;
}

.faq-page .faq-section-title h2 {
  margin-bottom: 0.45rem;
  color: #e8f5f7;
  text-shadow: 0 1px 0 rgba(3, 46, 54, 0.32);
}

.faq-page .faq-section-title p {
  max-width: 72ch;
  margin-bottom: 0;
  color: rgba(232, 245, 247, 0.86);
}

.faq-page .faq-main-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  align-items: start;
}

.faq-page .faq-column {
  border-radius: 16px;
  border: 1px solid rgba(5, 63, 72, 0.18);
  background: linear-gradient(180deg, rgba(233, 247, 250, 0.9), rgba(212, 234, 239, 0.86));
  box-shadow: 0 12px 26px rgba(4, 37, 43, 0.17);
  padding: 0.4rem 0.55rem;
}

.faq-page .faq-col-label {
  margin: 0.35rem 0.5rem 0.4rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 800;
  color: #1d5963;
}

.faq-page .faq-main-list .faq-item {
  border-radius: 12px;
  border: 1px solid rgba(5, 63, 72, 0.15);
  background: rgba(241, 251, 253, 0.72);
  box-shadow: 0 6px 14px rgba(4, 37, 43, 0.1);
  overflow: hidden;
  margin-bottom: 0.5rem;
}

.faq-page .faq-main-list .faq-question {
  width: 100%;
  background: transparent;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  text-align: left;
  padding: 1.1rem 1.15rem;
  font-size: 1rem;
  font-weight: 700;
  color: #0b4d57;
  cursor: pointer;
}

.faq-page .faq-main-list .faq-question::after {
  content: '+';
  flex-shrink: 0;
  width: 1.55rem;
  height: 1.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 1.05rem;
  line-height: 1;
  color: #0b4d57;
  border: 1px solid rgba(11, 93, 105, 0.35);
  background: rgba(255, 255, 255, 0.5);
}

.faq-page .faq-main-list .faq-answer p {
  margin: 0;
  padding: 0 1.15rem 1.08rem;
  color: #19434d;
}

.faq-page .faq-main-list .faq-item.open {
  border-color: rgba(11, 93, 105, 0.34);
  box-shadow: 0 12px 20px rgba(4, 37, 43, 0.16);
}

.faq-page .faq-main-list .faq-item.open .faq-question::after {
  content: '−';
}

.faq-page .faq-cta-card {
  text-align: center;
}

@media (max-width: 1020px) {
  .faq-page .faq-quick-grid,
  .faq-page .faq-layout-extended {
    grid-template-columns: 1fr;
  }

  .faq-page .faq-main-list {
    grid-template-columns: 1fr;
  }
}

/* Gold Undertone Boost - subtle, teal-first */
:root {
  --gold: #c79a58;
}

body {
  background:
    radial-gradient(circle at 86% 8%, rgba(199, 154, 88, 0.12) 0, rgba(199, 154, 88, 0.04) 34%, transparent 60%),
    radial-gradient(circle at 12% 90%, rgba(199, 154, 88, 0.08) 0, rgba(199, 154, 88, 0.03) 40%, transparent 72%),
    linear-gradient(180deg, var(--teal-320) 0, var(--teal-420) 45%, #95c0c8 100%) !important;
}

.site-header {
  border-bottom-color: rgba(214, 170, 105, 0.34) !important;
}

.nav-link::after {
  background: linear-gradient(90deg, rgba(243, 210, 153, 0.95), rgba(199, 154, 88, 0.9)) !important;
}

.btn,
.site-header .btn,
.hero-copy .btn {
  background: linear-gradient(120deg, #0f6876, #0a5561 70%, #8f6a33) !important;
  color: #fff !important;
  border-color: rgba(224, 189, 129, 0.34) !important;
}

.btn-outline,
.hero-copy .btn-outline {
  border-color: rgba(224, 189, 129, 0.44) !important;
  background: rgba(199, 154, 88, 0.08) !important;
}

.home-page .hero.hero-reference {
  background:
    radial-gradient(circle at 82% 20%, rgba(216, 240, 244, 0.12), transparent 34%),
    linear-gradient(145deg, #0a4c57 0%, #0e5e6a 46%, #156f7d 100%) !important;
  border-block: 1px solid rgba(214, 238, 242, 0.16) !important;
}

.home-page .hero.hero-reference::before,
.home-page .hero.hero-reference::after {
  display: none !important;
}

.hero-copy .kicker::before {
  background: linear-gradient(90deg, rgba(230, 243, 245, 0.95), rgba(230, 243, 245, 0.2)) !important;
}

.kicker {
  color: #b8833a !important;
}

.section h2,
.section h3,
.service-price,
.hero-media figcaption {
  color: #eef9fb !important;
}

.card,
.premium-panel,
.location-box,
.faq-item,
.quote,
.review-card {
  border-color: rgba(199, 154, 88, 0.22) !important;
  background:
    radial-gradient(circle at 92% 8%, rgba(199, 154, 88, 0.07), transparent 46%),
    linear-gradient(180deg, #f7f6f1, #f3efe6) !important;
}

.card h2,
.card h3,
.premium-panel h2,
.premium-panel h3,
.location-box h2,
.location-box h3,
.quote h2,
.quote h3,
.review-card h2,
.review-card h3,
.studio-feature figcaption strong,
.faq-question {
  color: #111317 !important;
}

/* Keep city proof card on dark city-page theme (overrides global .card skin) */
.city-page .city-proof-card.card {
  border-color: rgba(213, 236, 240, 0.28) !important;
  background:
    radial-gradient(circle at 88% 10%, rgba(184, 138, 75, 0.14), transparent 40%),
    linear-gradient(160deg, rgba(4, 58, 67, 0.68), rgba(8, 78, 88, 0.48)) !important;
  box-shadow: 0 14px 30px rgba(2, 34, 40, 0.28) !important;
}

.city-page .city-proof-card.card h2,
.city-page .city-proof-card.card h3 {
  color: #f0fafc !important;
}

.city-page .city-proof-card .city-proof-quote {
  color: rgba(232, 245, 247, 0.92) !important;
}

.city-page .city-proof-card .city-proof-points span {
  border-color: rgba(213, 236, 240, 0.34) !important;
  background: rgba(230, 243, 245, 0.1) !important;
  color: #edf9fb !important;
}

.city-page .city-proof-card .city-proof-meta article {
  border-color: rgba(213, 236, 240, 0.3) !important;
  background: rgba(230, 243, 245, 0.1) !important;
}

.city-page .city-proof-card .city-proof-meta p {
  color: rgba(232, 245, 247, 0.78) !important;
}

.city-page .city-proof-card .city-proof-meta strong {
  color: #f0fafc !important;
}

/* Keep city FAQ cards on dark city-page theme (overrides global .faq-item skin) */
.city-page .city-faq-list .faq-item {
  border-color: rgba(212, 238, 243, 0.22) !important;
  background: rgba(230, 243, 245, 0.06) !important;
}

.city-page .city-faq-list .faq-question {
  color: #f0fafc !important;
  background: transparent !important;
}

.city-page .city-faq-list .faq-question::after {
  color: #f0cb8e !important;
}

.city-page .city-faq-list .faq-answer p {
  color: rgba(232, 245, 247, 0.9) !important;
}

.city-page .city-faq-list .faq-item.open {
  background:
    radial-gradient(circle at 92% 8%, rgba(184, 138, 75, 0.12), transparent 38%),
    rgba(230, 243, 245, 0.1) !important;
  border-color: rgba(184, 138, 75, 0.42) !important;
}

/* =============================
   Premium Services Directory
   Scope: .services-page--lux
   ============================= */
.services-page--lux {
  --lux-teal-950: #063b45;
  --lux-teal-900: #0a4b57;
  --lux-teal-850: #0f5b67;
  --lux-ivory: #f8f5ef;
  --lux-ivory-deep: #f1ece2;
  --lux-text: #172329;
  --lux-text-soft: #2d3f47;
  --lux-gold: #b88a4b;
  --lux-gold-soft: rgba(184, 138, 75, 0.16);
}

.services-page--lux .services-hero-lux {
  padding: 1.8rem 0 1.3rem;
  border-bottom: 1px solid rgba(213, 236, 240, 0.2);
  background:
    radial-gradient(circle at 82% 18%, rgba(214, 239, 243, 0.14), transparent 34%),
    linear-gradient(145deg, #0a4c57 0%, #0e5e6a 46%, #156f7d 100%);
}

.services-page--lux .services-hero-shell {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 1.1rem;
  align-items: center;
}

.services-page--lux .services-hero-copy {
  color: #e8f5f7;
  max-width: 58ch;
}

.services-page--lux .services-hero-copy .hero-cta-row {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.62rem;
  align-items: center;
}

.services-page--lux .services-hero-copy .btn-outline {
  color: #ffffff !important;
}

.services-page--lux .services-hero-copy .btn-outline:hover,
.services-page--lux .services-hero-copy .btn-outline:focus-visible {
  color: #ffffff !important;
}

.services-page--lux.city-page .services-hero-copy .hero-cta-row {
  margin-top: 1.35rem;
}

.services-page--lux .services-hero-copy .kicker {
  color: rgba(232, 245, 247, 0.85);
  margin-bottom: 0.5rem;
}

.services-page--lux .services-hero-copy h1 {
  color: #eff9fb;
  margin: 0;
  font-size: clamp(2rem, 3.1vw, 3.1rem);
  line-height: 1.02;
  max-width: 18ch;
}

.services-page--lux .services-hero-lead {
  margin: 0.8rem 0 0;
  color: rgba(232, 245, 247, 0.9);
  font-size: clamp(1rem, 1.1vw, 1.12rem);
  line-height: 1.62;
}

.services-page--lux .services-jump-chips {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.services-page--lux .jump-chip {
  border: 1px solid rgba(231, 246, 248, 0.35);
  background: rgba(231, 246, 248, 0.08);
  color: #ecf8fa;
  border-radius: 999px;
  padding: 0.48rem 0.78rem;
  font-size: 0.84rem;
  letter-spacing: 0.02em;
  transition: background 180ms var(--ease), border-color 180ms var(--ease), transform 180ms var(--ease);
}

.services-page--lux .jump-chip:hover,
.services-page--lux .jump-chip:focus-visible {
  background: rgba(231, 246, 248, 0.18);
  border-color: rgba(231, 246, 248, 0.62);
  transform: translateY(-1px);
}

.services-page--lux .services-hero-media {
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(230, 243, 245, 0.28);
  background: rgba(230, 243, 245, 0.06);
  box-shadow: 0 16px 34px rgba(2, 40, 47, 0.28);
}

.services-page--lux .services-hero-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: saturate(0.92) contrast(0.96);
}

.services-page--lux .services-hero-media figcaption {
  padding: 0.62rem 0.8rem 0.72rem;
  color: rgba(232, 245, 247, 0.92);
  font-size: 0.84rem;
  border-top: 1px solid rgba(230, 243, 245, 0.2);
}

.blog-page .blog-hero-media::after,
.book-now-page .book-now-hero-media::after {
  display: none;
}

.services-page--lux .services-guide {
  padding: 1rem 0;
  border-bottom: 1px solid rgba(212, 238, 243, 0.16);
  background: linear-gradient(180deg, rgba(8, 77, 88, 0.32), rgba(10, 86, 97, 0.14));
}

.services-page--lux .services-guide-head h2 {
  margin: 0;
  color: #ecf8fa;
  font-size: clamp(1.5rem, 2vw, 2rem);
}

.services-page--lux .services-guide-head p {
  margin: 0.35rem 0 0;
  color: rgba(232, 245, 247, 0.88);
}

.services-page--lux .services-guide-grid {
  margin-top: 0.8rem;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.58rem;
}

.services-page--lux .guide-tile {
  appearance: none;
  border: 1px solid rgba(230, 243, 245, 0.26);
  border-radius: 14px;
  padding: 0.75rem 0.72rem;
  color: #eaf7f9;
  background: rgba(230, 243, 245, 0.06);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  transition: border-color 180ms var(--ease), background 180ms var(--ease), transform 180ms var(--ease);
}

.services-page--lux .guide-tile:hover,
.services-page--lux .guide-tile:focus-visible,
.services-page--lux .guide-tile.is-active {
  border-color: rgba(235, 205, 157, 0.62);
  background: rgba(184, 138, 75, 0.18);
  transform: translateY(-1px);
}

.services-page--lux .services-directory {
  padding-top: 1.35rem;
  padding-bottom: 1.55rem;
}

.services-page--lux .section-head--simple::before,
.services-page--lux .section-head--simple::after {
  background: linear-gradient(90deg, transparent, rgba(234, 202, 150, 0.36), transparent);
}

.services-page--lux .section-head--simple {
  justify-content: flex-start;
}

.services-page--lux .section-head--simple::before {
  display: none;
}

.services-page--lux .section-head--simple::after {
  display: none;
}

.services-page--lux .section-head--simple span {
  color: #f0cb8e !important;
}

.services-page--lux .services-directory-title {
  margin: 0.18rem 0 1rem;
  color: #eef9fb;
  font-size: clamp(1.9rem, 3vw, 2.8rem);
}

.services-page--lux .services-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.services-page--lux #service-included .services-included-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-detail-page .service-audience-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.services-page--lux.city-page .services-directory .services-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.services-page--lux .first-visit-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.services-page--lux .service-lux-card {
  border-radius: 18px;
  border: 1px solid rgba(213, 236, 240, 0.3);
  background: rgba(230, 243, 245, 0.1);
  box-shadow: 0 10px 24px rgba(2, 36, 43, 0.2);
  padding: 1rem;
  display: grid;
  gap: 0.62rem;
  transition: transform 180ms var(--ease), box-shadow 180ms var(--ease), border-color 180ms var(--ease), background 180ms var(--ease);
}

.services-page--lux .service-lux-card:hover {
  transform: translateY(-3px);
  border-color: rgba(184, 138, 75, 0.48);
  background:
    radial-gradient(circle at 90% 10%, rgba(184, 138, 75, 0.14), transparent 42%),
    rgba(230, 243, 245, 0.12);
  box-shadow: 0 16px 28px rgba(2, 36, 43, 0.24);
}

.services-page--lux .service-lux-pill {
  margin: 0;
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  padding: 0.34rem 0.66rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  font-weight: 700;
  color: #f2ce95;
  background: rgba(184, 138, 75, 0.12);
  border: 1px solid rgba(184, 138, 75, 0.34);
}

.services-page--lux .service-lux-badge {
  margin: 0;
  color: #f2ce95;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 800;
}

.services-page--lux .service-lux-card h3 {
  margin: 0;
  color: #f0fafc;
  font-size: clamp(1.45rem, 2.15vw, 1.95rem);
}

.services-page--lux .service-lux-positioning {
  margin: 0;
  color: #eaf7f9;
  font-weight: 600;
  line-height: 1.5;
}

.services-page--lux .service-lux-copy {
  margin: 0;
  color: rgba(232, 245, 247, 0.9);
  line-height: 1.6;
}

.services-page--lux .service-lux-meta {
  margin: 0;
  display: grid;
  gap: 0.5rem;
}

.services-page--lux .service-lux-meta div {
  display: grid;
  grid-template-columns: 110px 1fr;
  align-items: start;
  gap: 0.58rem;
  border-top: 1px solid rgba(212, 238, 243, 0.22);
  padding-top: 0.46rem;
}

.services-page--lux .service-lux-meta dt {
  color: rgba(232, 245, 247, 0.9);
  font-size: 0.81rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}

.services-page--lux .service-lux-meta dd {
  margin: 0;
  color: #f0fafc;
  font-weight: 500;
}

.services-page--lux .service-lux-pricing {
  border-radius: 12px;
  border: 1px solid rgba(212, 238, 243, 0.24);
  background: rgba(230, 243, 245, 0.08);
  padding: 0.55rem 0.64rem;
}

.services-page--lux .service-lux-pricing p {
  margin: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #ecf8fa;
}

.services-page--lux .service-lux-pricing p + p {
  margin-top: 0.35rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(212, 238, 243, 0.2);
}

.services-page--lux .service-lux-pricing strong {
  font-size: 1.2rem;
  color: #f2ce95;
}

.services-page--lux .service-lux-card--featured {
  border-color: rgba(184, 138, 75, 0.54);
  background:
    radial-gradient(circle at 90% 10%, rgba(184, 138, 75, 0.18), transparent 44%),
    rgba(230, 243, 245, 0.1);
  box-shadow: 0 16px 30px rgba(2, 36, 43, 0.24);
  position: relative;
}

.services-page--lux .service-lux-card--featured::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid rgba(184, 138, 75, 0.44);
  pointer-events: none;
}

.services-page--lux .contact-map-card {
  gap: 0.72rem;
}

.services-page--lux .contact-details-card {
  display: flex;
  flex-direction: column;
  gap: 0.62rem;
}

.services-page--lux .contact-guidance-cta {
  margin: auto 0 0;
  padding-top: 0.28rem;
}

.services-page--lux .contact-guidance-cta .btn-outline {
  width: fit-content;
  color: #f0fafc !important;
}

.services-page--lux .contact-guidance-cta .btn-outline:hover,
.services-page--lux .contact-guidance-cta .btn-outline:focus-visible {
  color: #f0fafc !important;
}

.contact-page--lux .services-hero-media figcaption > p:not(.kicker) {
  max-width: 46ch;
  margin: 0 auto;
  color: rgba(232, 245, 247, 0.92);
}

.services-page--lux .contact-map-placeholder {
  position: relative;
  min-height: 360px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(213, 236, 240, 0.34);
  background:
    linear-gradient(145deg, rgba(193, 223, 229, 0.92), rgba(168, 206, 214, 0.82)),
    radial-gradient(circle at 8% 100%, rgba(255, 255, 255, 0.26), transparent 45%);
}

.services-page--lux .contact-map-embed {
  width: 100%;
  height: 100%;
  min-height: 360px;
  border: 0;
  display: block;
}

.services-page--lux .contact-map-art {
  position: absolute;
  inset: 0;
}

.services-page--lux .map-road {
  position: absolute;
  border-radius: 999px;
  background: rgba(246, 251, 252, 0.92);
  box-shadow: 0 0 0 3px rgba(111, 166, 177, 0.24);
}

.services-page--lux .map-road--a {
  width: 132%;
  height: 18px;
  top: 26%;
  left: -14%;
  transform: rotate(11deg);
}

.services-page--lux .map-road--b {
  width: 16px;
  height: 130%;
  top: -12%;
  left: 36%;
  transform: rotate(4deg);
}

.services-page--lux .map-road--c {
  width: 116%;
  height: 14px;
  top: 62%;
  left: -6%;
  transform: rotate(-8deg);
}

.services-page--lux .map-road--d {
  width: 14px;
  height: 120%;
  top: -8%;
  left: 72%;
  transform: rotate(-7deg);
}

.services-page--lux .map-block {
  position: absolute;
  border-radius: 12px;
  border: 1px solid rgba(117, 170, 180, 0.42);
  background: rgba(116, 171, 182, 0.3);
}

.services-page--lux .map-block--one {
  width: 34%;
  height: 24%;
  top: 11%;
  left: 10%;
}

.services-page--lux .map-block--two {
  width: 31%;
  height: 22%;
  top: 40%;
  left: 14%;
}

.services-page--lux .map-block--three {
  width: 29%;
  height: 24%;
  top: 16%;
  right: 12%;
}

.services-page--lux .map-block--four {
  width: 30%;
  height: 26%;
  top: 52%;
  right: 11%;
}

.services-page--lux .map-pin {
  position: absolute;
  left: 49%;
  top: 43%;
  width: 30px;
  height: 30px;
  border-radius: 50% 50% 50% 0;
  transform: translate(-50%, -50%) rotate(-45deg);
  background: #d66a53;
  box-shadow: 0 9px 18px rgba(2, 36, 43, 0.28);
}

.services-page--lux .map-pin::before {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f8ebe8;
  top: 9px;
  left: 9px;
}

.services-page--lux .map-pin::after {
  content: "";
  position: absolute;
  inset: -8px;
  border-radius: 999px;
  border: 2px solid rgba(214, 106, 83, 0.4);
  transform: rotate(45deg);
  animation: mapPulse 2.2s ease-out infinite;
}

.services-page--lux .contact-map-overlay {
  position: absolute;
  left: 0.8rem;
  right: 0.8rem;
  bottom: 0.8rem;
  padding: 0.75rem 0.8rem;
  border-radius: 12px;
  border: 1px solid rgba(213, 236, 240, 0.5);
  background: rgba(6, 64, 74, 0.52);
  backdrop-filter: blur(6px);
}

.services-page--lux .contact-map-title {
  margin: 0;
  color: #f2ce95;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 800;
}

.services-page--lux .contact-map-note {
  margin: 0.42rem 0 0.62rem;
  color: rgba(237, 248, 250, 0.93);
  line-height: 1.45;
}

.services-page--lux .contact-map-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border-radius: 999px;
  padding: 0.38rem 0.72rem;
  border: 1px solid rgba(242, 206, 149, 0.58);
  background: rgba(242, 206, 149, 0.15);
  color: #f6d9ad;
  font-weight: 700;
  font-size: 0.84rem;
  transition: background 180ms var(--ease), transform 180ms var(--ease), border-color 180ms var(--ease);
}

.services-page--lux .contact-map-link:hover,
.services-page--lux .contact-map-link:focus-visible {
  background: rgba(242, 206, 149, 0.25);
  border-color: rgba(242, 206, 149, 0.78);
  transform: translateY(-1px);
}

@keyframes mapPulse {
  0% {
    opacity: 0.9;
    transform: rotate(45deg) scale(0.58);
  }
  100% {
    opacity: 0;
    transform: rotate(45deg) scale(1.25);
  }
}

.services-page--lux [data-service-card].is-guided,
.services-page--lux #service-recommendation.is-guided {
  animation: luxPulse 1200ms var(--ease);
}

@keyframes luxPulse {
  0% { box-shadow: 0 0 0 0 rgba(184, 138, 75, 0.42); }
  100% { box-shadow: 0 0 0 18px rgba(184, 138, 75, 0); }
}

.services-page--lux .services-recommendation {
  padding-top: 1.2rem;
  padding-bottom: 1.4rem;
}

.services-page--lux .services-recommendation-head {
  max-width: 66ch;
}

.services-page--lux .services-recommendation-head .kicker {
  color: #f0cb8e !important;
}

.services-page--lux .services-recommendation-head h2 {
  margin: 0;
  color: #eef9fb;
}

.services-page--lux .services-recommendation-head p:last-child {
  margin-top: 0.5rem;
  color: rgba(233, 246, 248, 0.9);
}

.services-page--lux .services-recommendation-grid {
  margin-top: 0.85rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.services-page--lux .recommendation-tile {
  border-radius: 16px;
  border: 1px solid rgba(213, 236, 240, 0.3);
  background: rgba(230, 243, 245, 0.1);
  padding: 0.9rem;
}

.services-page--lux .recommendation-tile h3 {
  margin: 0;
  color: #f0fafc;
  font-size: clamp(1.2rem, 1.9vw, 1.5rem);
}

.services-page--lux .recommendation-tile p {
  margin-top: 0.5rem;
  color: rgba(232, 245, 247, 0.88);
}

.services-page--lux .recommendation-tile .btn-ghost {
  margin-top: 0.35rem;
  color: #f0cb8e;
  border-bottom-color: rgba(240, 203, 142, 0.4);
}

.services-page--lux .recommendation-tile--featured {
  border-color: rgba(184, 138, 75, 0.54);
  background:
    radial-gradient(circle at 90% 10%, rgba(184, 138, 75, 0.18), transparent 44%),
    rgba(230, 243, 245, 0.1);
}

.services-page--lux .reviews-embed-card {
  max-width: 100%;
}

.services-page--lux .reviews-google-cta {
  margin: 0.2rem 0 0.8rem;
}

.services-page--lux .reviews-carousel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.55rem;
  align-items: center;
}

.services-page--lux .reviews-carousel-btn {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  border: 1px solid rgba(212, 238, 243, 0.3);
  background: rgba(230, 243, 245, 0.14);
  color: #f0cb8e;
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
}

.services-page--lux .reviews-carousel-btn:hover {
  border-color: rgba(240, 203, 142, 0.62);
  background: rgba(240, 203, 142, 0.16);
}

.services-page--lux .reviews-carousel-btn:disabled {
  opacity: 0.45;
  cursor: default;
}

.services-page--lux .reviews-testimonial-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 1.4rem) / 3);
  gap: 0.7rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.services-page--lux .reviews-testimonial-track::-webkit-scrollbar {
  display: none;
}

.services-page--lux .reviews-testimonial-card {
  border-radius: 14px;
  border: 1px solid rgba(212, 238, 243, 0.26);
  background:
    radial-gradient(circle at 88% 8%, rgba(184, 138, 75, 0.1), transparent 38%),
    rgba(230, 243, 245, 0.08);
  padding: 0.8rem 0.86rem;
  scroll-snap-align: start;
}

.services-page--lux .reviews-testimonial-meta {
  margin: 0 0 0.35rem;
  color: rgba(232, 245, 247, 0.86);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
}

.services-page--lux .reviews-testimonial-meta strong {
  color: #f0fafc;
}

.services-page--lux .reviews-testimonial-text {
  margin: 0;
  color: rgba(232, 245, 247, 0.92);
  line-height: 1.52;
}

.services-page--lux .reviews-stars {
  margin: 0 0 0.35rem;
  color: #f0cb8e;
  font-size: 0.98rem;
  letter-spacing: 0.1em;
  line-height: 1;
}

.services-page--lux .reviews-embed-frame {
  min-height: 420px;
  border-radius: 14px;
  border: 1px solid rgba(212, 238, 243, 0.24);
  background:
    radial-gradient(circle at 88% 12%, rgba(184, 138, 75, 0.12), transparent 36%),
    rgba(230, 243, 245, 0.08);
  color: rgba(232, 245, 247, 0.82);
  display: grid;
  place-items: center;
  text-align: center;
  padding: 1rem;
}

.services-page--lux .faq-lux-grid {
  align-items: start;
}

.service-detail-page #service-faq .faq-lux-grid {
  grid-template-columns: 1fr;
}

.service-detail-page #service-faq .faq-lux-column {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.62rem;
}

.service-detail-page #service-faq .faq-lux-column .faq-item {
  margin-top: 0;
}

.service-detail-page #service-faq .faq-static-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-detail-page #service-faq .faq-static-card {
  gap: 0.72rem;
}

.service-detail-page #service-faq .faq-static-card h3 {
  margin: 0;
  color: #f0fafc;
  font-size: clamp(1.02rem, 1.18vw, 1.24rem);
  line-height: 1.35;
  font-weight: 600;
}

.services-page--lux #faq-quick .services-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.services-page--lux .faq-lux-column .service-lux-pill {
  margin-bottom: 0.25rem;
}

.services-page--lux .faq-lux-column .faq-item {
  margin-top: 0.45rem;
  border: 1px solid rgba(212, 238, 243, 0.22) !important;
  border-radius: 12px;
  background: rgba(230, 243, 245, 0.06) !important;
  overflow: hidden;
}

.services-page--lux .faq-lux-column .faq-question {
  color: #f0fafc !important;
  background: transparent !important;
  padding: 0.82rem 0.9rem;
  font-weight: 600;
  position: relative;
}

.services-page--lux .faq-lux-column .faq-question::after {
  content: '+';
  position: absolute;
  right: 0.9rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.1rem;
  color: #f0cb8e;
}

.services-page--lux .faq-lux-column .faq-item.open .faq-question::after {
  content: '−';
}

.services-page--lux .faq-lux-column .faq-answer p {
  margin: 0;
  padding: 0 0.9rem 0.85rem;
  color: rgba(232, 245, 247, 0.9);
  line-height: 1.55;
}

.services-page--lux .faq-lux-column .faq-item.open {
  background:
    radial-gradient(circle at 92% 8%, rgba(184, 138, 75, 0.12), transparent 38%),
    rgba(230, 243, 245, 0.1) !important;
  border-color: rgba(184, 138, 75, 0.42) !important;
}

.services-page--lux .services-trust-band {
  padding: 0.8rem 0 0.95rem;
  border-top: 1px solid rgba(212, 238, 243, 0.14);
  border-bottom: 1px solid rgba(212, 238, 243, 0.14);
  background: linear-gradient(180deg, rgba(6, 69, 79, 0.34), rgba(10, 84, 95, 0.2));
}

.services-page--lux .services-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.52rem;
}

.services-page--lux .trust-point {
  padding: 0.68rem 0.72rem;
  border-radius: 12px;
  border: 1px solid rgba(212, 238, 243, 0.24);
  background: rgba(230, 243, 245, 0.08);
  color: rgba(233, 246, 248, 0.92);
  font-size: 0.9rem;
}

.services-page--lux .final-cta-lux {
  padding-top: 1.15rem;
  padding-bottom: 1.55rem;
}

.services-page--lux .final-cta-shell {
  border-radius: 20px;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border: 1px solid rgba(200, 156, 93, 0.3);
  background:
    radial-gradient(circle at 88% 12%, rgba(184, 138, 75, 0.12), transparent 42%),
    linear-gradient(180deg, #f8f5ef, #f2ede2);
  box-shadow: 0 12px 28px rgba(8, 50, 58, 0.18);
  text-align: center;
}

.services-page--lux .final-cta-shell .kicker {
  color: #7d5525;
  margin-bottom: 0.4rem;
}

.services-page--lux .final-cta-shell h2,
.services-page--lux .final-cta-shell h3 {
  color: #151d22 !important;
  margin: 0;
}

.services-page--lux .final-cta-shell h3 {
  margin-top: 0.35rem;
}

.services-page--lux .final-cta-shell > p {
  margin: 0.65rem auto 0;
  color: #2d3f47;
  max-width: 70ch;
}

.services-page--lux .final-cta-actions {
  margin-top: 0.85rem;
  display: flex;
  justify-content: center;
  gap: 0.62rem;
  flex-wrap: wrap;
}

.services-page--lux .final-cta-note {
  margin-top: 0.62rem;
  font-size: 0.92rem;
  color: #465961;
}

.services-page--lux .site-footer--refined {
  padding-top: 2.8rem;
  border-top-color: rgba(215, 239, 243, 0.16);
  background:
    radial-gradient(circle at 84% 18%, rgba(214, 239, 243, 0.1), transparent 36%),
    linear-gradient(145deg, #074855 0%, #0b5b69 42%, #0f6c7b 100%);
}

.services-page--lux .site-footer--refined .footer-top {
  gap: 1.7rem;
}

.services-page--lux .site-footer--refined .footer-col h3 {
  margin-bottom: 0.45rem;
}

.services-page--lux .site-footer--refined .footer-bottom {
  margin-top: 1.3rem;
  padding-top: 1rem;
}

@media (max-width: 1140px) {
  .services-page--lux .services-hero-shell,
  .services-page--lux .services-card-grid,
  .services-page--lux .services-recommendation-grid {
    grid-template-columns: 1fr;
  }

  .services-page--lux #service-included .services-included-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .services-page--lux.city-page .services-directory .services-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-detail-page .service-audience-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .services-page--lux .first-visit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-detail-page #service-faq .faq-lux-column {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-detail-page #service-faq .faq-static-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .services-page--lux #faq-quick .services-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .services-page--lux .services-guide-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .services-page--lux .services-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .services-page--lux .services-hero-lux {
    padding-top: 1rem;
  }

  .services-page--lux .services-guide-grid {
    grid-template-columns: 1fr 1fr;
  }

  .services-page--lux #faq-quick .services-card-grid {
    grid-template-columns: 1fr;
  }

  .services-page--lux #service-included .services-included-grid {
    grid-template-columns: 1fr;
  }

  .services-page--lux.city-page .services-directory .services-card-grid {
    grid-template-columns: 1fr;
  }

  .service-detail-page .service-audience-grid {
    grid-template-columns: 1fr;
  }

  .services-page--lux .first-visit-grid {
    grid-template-columns: 1fr;
  }

  .service-detail-page #service-faq .faq-lux-column {
    grid-template-columns: 1fr;
  }

  .service-detail-page #service-faq .faq-static-grid {
    grid-template-columns: 1fr;
  }

  .services-page--lux .reviews-carousel {
    grid-template-columns: 1fr;
  }

  .services-page--lux .reviews-carousel-btn {
    display: none;
  }

  .services-page--lux .reviews-testimonial-track {
    grid-auto-columns: 100%;
  }

  .services-page--lux .service-lux-card {
    padding: 0.82rem;
  }

  .services-page--lux .contact-map-placeholder {
    min-height: 300px;
  }

  .services-page--lux .service-lux-meta div {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }

  .services-page--lux .services-trust-grid {
    grid-template-columns: 1fr;
  }

  .services-page--lux .final-cta-shell {
    text-align: left;
  }

  .services-page--lux .final-cta-actions {
    justify-content: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .services-page--lux .jump-chip,
  .services-page--lux .guide-tile,
  .services-page--lux .service-lux-card {
    transition: none;
  }

  .services-page--lux [data-service-card].is-guided,
  .services-page--lux #service-recommendation.is-guided {
    animation: none;
  }

  .services-page--lux .map-pin::after {
    animation: none;
  }
}

/* =============================
   About Page Section Variants
   Scope: .about-page--lux
   ============================= */
.about-page--lux .about-intro-split {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 0.9rem;
  align-items: stretch;
}

.about-page--lux .about-intro-split > .service-lux-card {
  height: 100%;
}

.about-page--lux .about-photo-card {
  margin: 0;
  display: grid;
  grid-template-rows: 1fr auto;
  align-content: stretch;
  padding: 0.55rem;
}

.about-page--lux .about-photo-card img {
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: unset;
  object-fit: cover;
  border-radius: 12px;
}

.about-page--lux .about-photo-card figcaption {
  margin-top: 0.62rem;
  color: rgba(232, 245, 247, 0.86);
  font-size: 0.9rem;
}

.about-page--lux .about-story-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.about-page--lux .about-story-grid .service-lux-card {
  border-left: 4px solid rgba(240, 203, 142, 0.55);
  padding-left: 1.15rem;
}

.about-page--lux .about-story-grid .service-lux-card h3 {
  font-size: clamp(1.55rem, 2.4vw, 2rem);
}

.about-page--lux .about-first-grid {
  counter-reset: about-steps;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.about-page--lux .about-first-grid .service-lux-card {
  position: relative;
  border-top: 2px solid rgba(184, 138, 75, 0.58);
  padding-top: 2.2rem;
}

.about-page--lux .about-first-grid .service-lux-card::before {
  counter-increment: about-steps;
  content: counter(about-steps, decimal-leading-zero);
  position: absolute;
  top: 0.65rem;
  left: 0.9rem;
  color: #f0cb8e;
  font-weight: 800;
  letter-spacing: 0.08em;
  font-size: 0.8rem;
}

.about-page--lux .about-first-grid .service-lux-pill {
  opacity: 0.6;
}

.about-page--lux .about-section-bestfit .recommendation-tile {
  min-height: 100%;
  border-radius: 18px;
}

.about-page--lux .about-section-bestfit .recommendation-tile h3::before {
  content: '';
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-right: 0.45rem;
  border-radius: 999px;
  background: #f0cb8e;
  box-shadow: 0 0 0 3px rgba(240, 203, 142, 0.18);
  vertical-align: middle;
}

.about-page--lux .about-standards-grid .service-lux-card {
  border-style: solid;
  border-color: rgba(213, 236, 240, 0.3);
}

.about-page--lux .about-standards-grid .service-lux-card:hover {
  border-color: rgba(184, 138, 75, 0.48);
}

@media (max-width: 1140px) {
  .about-page--lux .about-intro-split,
  .about-page--lux .about-story-grid,
  .about-page--lux .about-first-grid {
    grid-template-columns: 1fr;
  }
}

/* =============================
   Blog Lux Theme (Layout preserved)
   Scope: .services-page--lux.blog-page
   ============================= */
.services-page--lux.blog-page .page-hero {
  border-bottom-color: rgba(213, 236, 240, 0.2);
}

.home-page .home-hero-copy > .kicker,
.services-page--lux .services-hero-lux .services-hero-copy > .kicker,
.service-theme .page-hero .kicker,
.hero-copy > .kicker {
  color: #d7b07a !important;
}

.services-page--lux.blog-page .blog-directory-head h2,
.services-page--lux.blog-page .blog-directory-head > p,
.services-page--lux.blog-page .blog-directory-head .section-head span {
  color: rgba(232, 245, 247, 0.94) !important;
}

.services-page--lux.blog-page .blog-stat,
.services-page--lux.blog-page .blog-featured-post,
.services-page--lux.blog-page .blog-post-card,
.services-page--lux.blog-page .blog-side-card {
  border: 1px solid rgba(213, 236, 240, 0.3) !important;
  background: rgba(230, 243, 245, 0.1) !important;
  box-shadow: 0 10px 24px rgba(2, 36, 43, 0.2);
}

.services-page--lux.blog-page .blog-stat p {
  color: rgba(224, 244, 248, 0.9) !important;
  font-size: 0.74rem;
}

.services-page--lux.blog-page .blog-stat strong {
  color: #f3fbfd !important;
  font-size: 1.95rem;
  line-height: 1.05;
}

.services-page--lux.blog-page .blog-featured-post {
  background:
    radial-gradient(circle at 90% 10%, rgba(184, 138, 75, 0.14), transparent 42%),
    rgba(230, 243, 245, 0.12) !important;
}

.services-page--lux.blog-page .blog-post-card:hover,
.services-page--lux.blog-page .blog-side-card:hover {
  border-color: rgba(184, 138, 75, 0.48) !important;
  box-shadow: 0 16px 28px rgba(2, 36, 43, 0.24);
}

.services-page--lux.blog-page .blog-post-card h3,
.services-page--lux.blog-page .blog-side-card h3,
.services-page--lux.blog-page .blog-featured-post h2 {
  color: #f0fafc !important;
}

.services-page--lux.blog-page .blog-post-card p,
.services-page--lux.blog-page .blog-side-card p,
.services-page--lux.blog-page .blog-featured-post p,
.services-page--lux.blog-page .blog-search-form input {
  color: rgba(232, 245, 247, 0.9) !important;
}

.services-page--lux.blog-page .blog-search-form input {
  background: rgba(230, 243, 245, 0.08);
  border: 1px solid rgba(212, 238, 243, 0.24);
}

.services-page--lux.blog-page .blog-search-form button {
  border: 1px solid rgba(184, 138, 75, 0.42);
  background: rgba(184, 138, 75, 0.16);
  color: #f0cb8e;
}

.services-page--lux.blog-page .blog-filter-chip {
  border: 1px solid rgba(231, 246, 248, 0.35);
  background: rgba(231, 246, 248, 0.08);
  color: #ecf8fa;
}

.services-page--lux.blog-page .blog-filter-chip:hover,
.services-page--lux.blog-page .blog-filter-chip.active {
  border-color: rgba(184, 138, 75, 0.54);
  background: rgba(184, 138, 75, 0.16);
  color: #f0cb8e;
}

.services-page--lux.blog-page .blog-meta span {
  border-color: rgba(212, 238, 243, 0.28);
  color: rgba(232, 245, 247, 0.92);
  background: rgba(230, 243, 245, 0.07);
}

.services-page--lux.blog-page .blog-meta span:first-child {
  color: #f0cb8e;
  border-color: rgba(184, 138, 75, 0.42);
  background: rgba(184, 138, 75, 0.14);
}

.services-page--lux.blog-page .blog-post-footer a {
  color: #f0cb8e;
}

.services-page--lux.blog-page .blog-side-list a {
  color: #0f4e59;
  border-color: rgba(213, 238, 243, 0.32);
  background: rgba(231, 246, 248, 0.55);
}

.services-page--lux.blog-page .blog-side-list a:hover,
.services-page--lux.blog-page .blog-side-list a:focus-visible {
  color: #0a3d45;
  border-color: rgba(184, 138, 75, 0.62);
  background: rgba(240, 203, 142, 0.78);
  box-shadow: 0 6px 16px rgba(6, 58, 68, 0.2);
}

/* =============================
   Book Call Card Refresh
   Scope: .book-call-page
   ============================= */
.book-call-page .book-call-card {
  border: 1px solid rgba(213, 236, 240, 0.3) !important;
  background:
    radial-gradient(circle at 90% 10%, rgba(184, 138, 75, 0.12), transparent 42%),
    rgba(230, 243, 245, 0.1) !important;
  box-shadow: 0 10px 24px rgba(2, 36, 43, 0.2);
}

.book-call-page .book-call-card:hover {
  border-color: rgba(184, 138, 75, 0.48) !important;
  box-shadow: 0 16px 28px rgba(2, 36, 43, 0.24);
}

.book-call-page .book-call-card h2,
.book-call-page .book-call-card h3 {
  color: #f0fafc !important;
}

.book-call-page .book-call-card p,
.book-call-page .book-call-card li,
.book-call-page .book-call-card strong,
.book-call-page .book-call-card a {
  color: rgba(232, 245, 247, 0.9);
}

.book-call-page .book-call-card .kicker {
  color: #f0cb8e !important;
}

.book-call-page .book-call-card .btn-outline {
  border-color: rgba(184, 138, 75, 0.42) !important;
  color: #f0cb8e !important;
  background: rgba(184, 138, 75, 0.12) !important;
}

/* =============================
   Book Now Lux Theme
   Scope: .services-page--lux.book-now-page
   ============================= */
.services-page--lux.book-now-page .book-now-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.72rem;
}

.services-page--lux.book-now-page .book-now-trust-item {
  padding: 0.86rem 0.9rem;
  border-radius: 14px;
}

.services-page--lux.book-now-page .book-now-trust-item p {
  margin: 0;
  color: rgba(232, 245, 247, 0.88);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.74rem;
  font-weight: 700;
}

.services-page--lux.book-now-page .book-now-trust-item strong {
  margin-top: 0.25rem;
  display: block;
  color: #f0fafc;
  font-size: 2rem;
}

.services-page--lux.book-now-page .book-now-shell {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.9rem;
}

.services-page--lux.book-now-page .book-now-widget-card,
.services-page--lux.book-now-page .book-now-assist-card,
.services-page--lux.book-now-page .book-now-featured-choice {
  border: 1px solid rgba(213, 236, 240, 0.3) !important;
  background: rgba(230, 243, 245, 0.1) !important;
  box-shadow: 0 10px 24px rgba(2, 36, 43, 0.2);
}

.services-page--lux.book-now-page .book-now-widget-head h2,
.services-page--lux.book-now-page .book-now-assist-card h3,
.services-page--lux.book-now-page .book-now-featured-choice h2 {
  color: #f0fafc !important;
}

.services-page--lux.book-now-page .book-now-widget-card p,
.services-page--lux.book-now-page .book-now-assist-card p,
.services-page--lux.book-now-page .book-now-featured-choice p,
.services-page--lux.book-now-page .book-now-assist-card li {
  color: rgba(232, 245, 247, 0.9) !important;
}

.services-page--lux.book-now-page .book-now-widget-frame-wrap {
  border: 1px solid rgba(212, 238, 243, 0.24);
  border-radius: 14px;
  background:
    radial-gradient(circle at 88% 12%, rgba(184, 138, 75, 0.12), transparent 36%),
    rgba(230, 243, 245, 0.08);
}

.services-page--lux.book-now-page .book-now-widget-empty {
  color: rgba(232, 245, 247, 0.88);
}

.services-page--lux.book-now-page .book-now-contact-row a,
.services-page--lux.book-now-page .book-now-assist-card a {
  color: #f0cb8e !important;
}

.services-page--lux.book-now-page .book-now-featured-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

@media (max-width: 1140px) {
  .services-page--lux.book-now-page .book-now-shell,
  .services-page--lux.book-now-page .book-now-featured-layout,
  .services-page--lux.book-now-page .book-now-trust-grid {
    grid-template-columns: 1fr;
  }
}

/* Service-specific detail pages */

.service-detail-page .service-detail-hero-actions {
  margin: 0.7rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.service-detail-page .service-detail-price-card {
  border: 1px solid rgba(213, 236, 240, 0.3);
  border-radius: 14px;
  background:
    radial-gradient(circle at 88% 8%, rgba(242, 206, 149, 0.14), transparent 40%),
    rgba(230, 243, 245, 0.1);
  padding: 0.9rem;
}

.service-detail-page .service-pricing-shell {
  display: block;
}

.service-detail-page .service-pricing-shell .service-detail-price-card {
  width: 100%;
}

.service-detail-page .service-detail-price-card h2 {
  margin-bottom: 0.4rem;
  color: #eef9fb;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
}

.service-detail-page .service-detail-price-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.35rem;
}

.service-detail-page .service-detail-price-card li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid rgba(213, 236, 240, 0.28);
  border-radius: 10px;
  background: rgba(230, 243, 245, 0.09);
  padding: 0.45rem 0.55rem;
}

.service-detail-page .service-detail-price-card li span {
  color: rgba(232, 245, 247, 0.9);
  font-weight: 600;
}

.service-detail-page .service-detail-price-card li strong {
  color: #f2ce95;
  font-size: 1.04rem;
}

.service-detail-page .service-detail-price-card p {
  margin: 0.52rem 0 0;
  color: rgba(232, 245, 247, 0.82);
  font-size: 0.93rem;
}

.service-detail-page .service-detail-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.8rem;
  align-items: stretch;
}

.service-detail-page .service-detail-panel,
.service-detail-page .service-detail-media-panel,
.service-detail-page .service-detail-final {
  border: 1px solid rgba(213, 236, 240, 0.3);
  border-radius: 14px;
  background:
    radial-gradient(circle at 88% 8%, rgba(242, 206, 149, 0.1), transparent 38%),
    rgba(230, 243, 245, 0.1);
  padding: 0.9rem;
}

.service-detail-page .service-detail-panel p,
.service-detail-page .service-detail-final p {
  color: rgba(232, 245, 247, 0.9);
}

.service-detail-page .service-detail-media-panel {
  display: flex;
  overflow: hidden;
  min-height: 100%;
  margin: 0;
}

.service-detail-page .service-detail-media-panel img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
}

.service-detail-page .service-detail-chip-grid,
.service-detail-page .service-detail-benefit-grid,
.service-detail-page .service-detail-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.64rem;
}

.service-detail-page .service-detail-chip-grid article,
.service-detail-page .service-detail-benefit-grid article,
.service-detail-page .service-detail-steps article {
  border: 1px solid rgba(213, 236, 240, 0.28);
  border-radius: 12px;
  background: rgba(230, 243, 245, 0.1);
  padding: 0.7rem;
}

.service-detail-page .service-detail-chip-grid h3,
.service-detail-page .service-detail-benefit-grid strong,
.service-detail-page .service-detail-steps h3 {
  color: #eef9fb;
}

.service-detail-page .service-detail-chip-grid h3 {
  margin-bottom: 0.24rem;
}

.service-detail-page .service-detail-chip-grid p,
.service-detail-page .service-detail-benefit-grid p,
.service-detail-page .service-detail-steps p {
  margin: 0;
  color: rgba(232, 245, 247, 0.88);
}

.service-detail-page .service-detail-benefit-grid strong {
  display: block;
  margin-bottom: 0.2rem;
  font-size: 1.08rem;
}

.service-detail-page .service-detail-steps article {
  position: relative;
  padding-top: 0.95rem;
}

.service-detail-page .service-detail-steps span {
  position: absolute;
  top: 0.5rem;
  left: 0.7rem;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  border: 1px solid rgba(242, 206, 149, 0.64);
  background: rgba(242, 206, 149, 0.14);
  color: #f2ce95;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
}

.service-detail-page .service-detail-steps h3 {
  margin-top: 0.95rem;
  margin-bottom: 0.24rem;
}

.service-detail-page .service-detail-final {
  text-align: center;
  border-color: rgba(200, 156, 93, 0.3);
  background:
    radial-gradient(circle at 88% 12%, rgba(184, 138, 75, 0.12), transparent 42%),
    linear-gradient(180deg, #f8f5ef, #f2ede2);
  box-shadow: 0 12px 28px rgba(8, 50, 58, 0.18);
}

.service-detail-page .service-detail-final h2,
.service-detail-page .service-detail-final h3 {
  color: #151d22 !important;
}

.service-detail-page .service-detail-final .kicker {
  color: #7d5525 !important;
}

.service-detail-page .service-detail-final p {
  color: #2d3f47 !important;
}

.service-detail-page .service-detail-final-note {
  margin: 0.15rem 0 0;
  color: #465961;
  font-weight: 700;
}

.service-detail-page .service-detail-final .service-detail-hero-actions {
  justify-content: center;
  margin-top: 0.9rem;
}

@media (max-width: 1080px) {
  .service-detail-page .service-detail-split {
    grid-template-columns: 1fr;
  }

  .service-detail-page .service-detail-chip-grid,
  .service-detail-page .service-detail-benefit-grid,
  .service-detail-page .service-detail-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .service-detail-page .service-detail-chip-grid,
  .service-detail-page .service-detail-benefit-grid,
  .service-detail-page .service-detail-steps {
    grid-template-columns: 1fr;
  }

  .service-detail-page .service-detail-hero-actions .btn,
  .service-detail-page .service-detail-hero-actions .btn-outline {
    flex: 1 1 100%;
  }
}

/* Service hero alignment tweaks */
.service-detail-page .services-hero-media figcaption {
  text-align: center;
  justify-items: center;
}

.service-detail-page .services-hero h1 {
  margin-inline: auto;
}

/* Homepage flagship redesign */
.home-page .home-flagship {
  overflow: clip;
}

.home-page .home-hero-flagship {
  position: relative;
  overflow: hidden;
  padding: clamp(2.8rem, 5.2vw, 3.8rem) 0 clamp(1.8rem, 4vw, 2.6rem);
  background:
    radial-gradient(circle at 86% 14%, rgba(212, 238, 243, 0.24), transparent 38%),
    radial-gradient(circle at 16% 90%, rgba(184, 138, 75, 0.16), transparent 42%),
    linear-gradient(155deg, rgba(3, 65, 75, 0.96), rgba(9, 95, 108, 0.92));
  border-bottom: 1px solid rgba(212, 238, 243, 0.2);
}

.home-page .home-hero-flagship::before {
  content: '';
  position: absolute;
  top: -18px;
  left: -18px;
  width: clamp(300px, 34vw, 470px);
  height: clamp(300px, 34vw, 470px);
  pointer-events: none;
  z-index: 0;
  opacity: 0.54;
  background: url('assets/mandala-corner.svg') top left / contain no-repeat;
}

.home-page .home-hero-shell {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 1rem;
  align-items: center;
}

.home-page .home-hero-copy h1 {
  margin: 0;
  max-width: 16ch;
  color: #eef9fb;
  font-size: clamp(2.25rem, 4.8vw, 4.2rem);
  line-height: 0.95;
}

.home-page .home-hero-lead {
  margin: 0.8rem 0 0;
  max-width: 54ch;
  color: rgba(232, 245, 247, 0.9);
  font-size: clamp(1rem, 1.2vw, 1.15rem);
}

.home-page .home-hero-actions {
  margin-top: 1rem;
  display: flex;
  gap: 0.58rem;
  flex-wrap: wrap;
}

.home-page .home-hero-actions .btn-outline {
  border-color: rgba(212, 238, 243, 0.5);
  background: rgba(230, 243, 245, 0.08);
  color: #edf9fb;
}

.home-page .home-hero-actions .btn-outline:hover {
  border-color: rgba(240, 203, 142, 0.68);
  color: #ffffff;
}

.home-page .home-trust-cluster {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
}

.home-page .home-trust-cluster article {
  border-radius: 14px;
  border: 1px solid rgba(213, 236, 240, 0.3);
  background: rgba(230, 243, 245, 0.09);
  padding: 0.56rem 0.62rem;
}

.home-page .home-trust-cluster strong {
  display: block;
  color: #f0cb8e;
  font-size: 1.15rem;
  line-height: 1.1;
}

.home-page .home-trust-cluster span {
  display: block;
  margin-top: 0.16rem;
  color: rgba(232, 245, 247, 0.88);
  font-size: 0.76rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 700;
}

.home-page .home-hero-media {
  display: grid;
  gap: 0.62rem;
  align-content: start;
}

.home-page .home-hero-main-image {
  margin: 0;
  aspect-ratio: 16 / 11;
  border-radius: 22px;
  border: 1px solid rgba(213, 236, 240, 0.32);
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(2, 37, 44, 0.28);
}

.home-page .home-hero-main-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-page .home-hero-subgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.62rem;
}

.home-page .home-hero-subimage {
  margin: 0;
  border-radius: 16px;
  border: 1px solid rgba(213, 236, 240, 0.3);
  background: rgba(230, 243, 245, 0.1);
  overflow: hidden;
}

.home-page .home-hero-subimage img {
  width: 100%;
  aspect-ratio: 1.28 / 1;
  object-fit: cover;
  border-radius: 0;
}

.home-page .home-hero-subimage figcaption {
  padding: 0.45rem 0.58rem;
  color: #ecf8fa;
  font-size: 0.8rem;
  font-weight: 600;
}

.home-page .home-hero-float-label {
  margin: 0 0 0.2rem;
  color: #f0cb8e;
  font-size: 0.7rem;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  font-weight: 800;
}

.home-page .home-intent {
  background:
    radial-gradient(circle at 84% 10%, rgba(214, 239, 243, 0.1), transparent 34%),
    linear-gradient(160deg, rgba(6, 71, 81, 0.94), rgba(9, 95, 108, 0.9));
  border-block: 1px solid rgba(212, 238, 243, 0.2);
}

.home-page .home-intent-shell {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  gap: 1rem;
  align-items: stretch;
}

.home-page .home-intent-intro {
  height: 100%;
  border-radius: 18px;
  border: 1px solid rgba(213, 236, 240, 0.3);
  background: rgba(230, 243, 245, 0.08);
  padding: 0.9rem;
  display: flex;
  flex-direction: column;
}

.home-page .home-intent-intro h2 {
  margin: 0;
  color: #eef9fb;
  max-width: 16ch;
}

.home-page .home-intent-intro p {
  margin: 0.58rem 0 0;
  color: rgba(232, 245, 247, 0.9);
  max-width: 46ch;
}

.home-page .home-intent-guidance {
  margin-top: auto;
  padding-top: 0.7rem;
  border-top: 1px solid rgba(213, 236, 240, 0.22);
}

.home-page .home-intent-guidance-title {
  margin: 0;
  color: #f0cb8e;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 800;
}

.home-page .home-intent-guidance .btn-outline {
  margin-top: 0.55rem;
  border-color: rgba(212, 238, 243, 0.48);
  background: rgba(230, 243, 245, 0.08);
  color: #edf9fb;
}

.home-page .home-intent-guidance .btn-outline:hover {
  border-color: rgba(240, 203, 142, 0.68);
  color: #ffffff;
}

.home-page .home-intent-list {
  display: grid;
  gap: 0.62rem;
}

.home-page .home-intent-item {
  border-radius: 16px;
  border: 1px solid rgba(213, 236, 240, 0.3);
  background: rgba(230, 243, 245, 0.08);
  padding: 0.8rem 0.9rem;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.7rem;
  align-items: end;
}

.home-page .home-intent-item:first-child {
  border-color: rgba(184, 138, 75, 0.55);
  background:
    radial-gradient(circle at 92% 12%, rgba(184, 138, 75, 0.14), transparent 40%),
    rgba(230, 243, 245, 0.1);
}

.home-page .home-intent-title {
  margin: 0;
  color: #f0fafc;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.35rem, 2.4vw, 1.78rem);
  font-weight: 700;
}

.home-page .home-intent-copy {
  margin: 0.23rem 0 0;
  color: rgba(232, 245, 247, 0.92);
}

.home-page .home-intent-item .btn-ghost {
  color: #f0cb8e;
  border-bottom-color: rgba(240, 203, 142, 0.45);
}

.home-page .home-services-feature {
  background:
    radial-gradient(circle at 82% 8%, rgba(214, 239, 243, 0.1), transparent 34%),
    linear-gradient(160deg, rgba(5, 66, 76, 0.95), rgba(8, 86, 97, 0.9));
  border-block: 1px solid rgba(212, 238, 243, 0.2);
}

.home-page .home-section-head h2 {
  margin: 0;
  max-width: 30ch;
  color: #eef9fb;
  font-size: clamp(1.72rem, 2.85vw, 2.4rem);
}

.home-page .home-services-layout {
  margin-top: 0.65rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.62rem;
  align-items: start;
}

.home-page .home-service-card {
  border-radius: 18px;
  border: 1px solid rgba(213, 236, 240, 0.32);
  background: rgba(230, 243, 245, 0.08);
  padding: 0.8rem 0.84rem;
}

.home-page .home-service-card h3 {
  margin: 0;
  color: #f0fafc;
  font-size: clamp(1.3rem, 2.1vw, 1.72rem);
}

.home-page .home-service-card--featured {
  grid-row: auto;
  background:
    radial-gradient(circle at 88% 8%, rgba(184, 138, 75, 0.16), transparent 42%),
    linear-gradient(165deg, rgba(230, 243, 245, 0.14), rgba(230, 243, 245, 0.06));
  border-color: rgba(184, 138, 75, 0.48);
}

.home-page .home-service-badge {
  margin: 0 0 0.36rem;
  color: #f2ce95;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 800;
}

.home-page .home-service-copy {
  margin: 0.4rem 0 0;
  color: rgba(232, 245, 247, 0.92);
}

.home-page .home-service-list {
  margin: 0.56rem 0 0.62rem;
  padding-left: 1rem;
  display: grid;
  gap: 0.24rem;
  color: rgba(232, 245, 247, 0.92);
}

.home-page .home-service-card .btn-ghost {
  color: #f0cb8e;
  border-bottom-color: rgba(240, 203, 142, 0.4);
}

.home-page .home-services-note {
  margin: 0.56rem 0 0;
  max-width: 72ch;
  color: rgba(232, 245, 247, 0.88);
}

.home-page .home-services-note a {
  color: #f0cb8e;
}

.home-page .home-experience {
  background:
    radial-gradient(circle at 12% 10%, rgba(184, 138, 75, 0.1), transparent 38%),
    linear-gradient(160deg, rgba(4, 63, 72, 0.96), rgba(8, 82, 93, 0.9));
  border-block: 1px solid rgba(212, 238, 243, 0.2);
}

.home-page .home-experience-shell {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 0.95rem;
  align-items: stretch;
}

.home-page .home-experience-media {
  margin: 0;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(213, 236, 240, 0.3);
  min-height: 100%;
}

.home-page .home-experience-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-page .home-experience-flow {
  border-radius: 20px;
  border: 1px solid rgba(213, 236, 240, 0.32);
  background: rgba(230, 243, 245, 0.08);
  padding: 0.95rem;
}

.home-page .home-experience-flow h2 {
  margin: 0;
  color: #eef9fb;
}

.home-page .home-experience-steps {
  margin-top: 0.62rem;
  display: grid;
  gap: 0.56rem;
}

.home-page .home-experience-steps article {
  display: grid;
  grid-template-columns: 2.1rem 1fr;
  gap: 0.56rem;
}

.home-page .home-experience-steps span {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  border: 1px solid rgba(184, 138, 75, 0.54);
  background: rgba(184, 138, 75, 0.14);
  color: #f2ce95;
  display: grid;
  place-items: center;
  font-size: 0.82rem;
  font-weight: 800;
}

.home-page .home-experience-steps h3 {
  margin: 0.1rem 0 0.15rem;
  color: #f0fafc;
  font-size: 1.2rem;
}

.home-page .home-experience-steps p {
  margin: 0;
  color: rgba(232, 245, 247, 0.92);
}

.home-page .home-experience-faq {
  margin: 0.72rem 0 0;
  color: rgba(232, 245, 247, 0.9);
}

.home-page .home-experience-faq a {
  color: #f0cb8e;
}

.home-page .home-trust-reviews {
  background:
    radial-gradient(circle at 84% 14%, rgba(212, 238, 243, 0.1), transparent 34%),
    linear-gradient(160deg, rgba(4, 63, 72, 0.96), rgba(8, 82, 93, 0.9));
  border-block: 1px solid rgba(212, 238, 243, 0.2);
}

.home-page .home-trust-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: stretch;
}

.home-page .home-trust-lead {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.home-page .home-trust-lead h2 {
  margin: 0;
  color: #eef9fb;
  max-width: 17ch;
}

.home-page .home-trust-lead blockquote {
  margin: 0.8rem 0 0;
  color: rgba(232, 245, 247, 0.94);
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.25rem, 2.4vw, 1.85rem);
  line-height: 1.18;
}

.home-page .home-trust-source {
  margin: 0.5rem 0 0;
  color: #f0cb8e;
  font-weight: 700;
}

.home-page .home-trust-metrics {
  margin-top: auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
}

.home-page .home-trust-metrics article {
  border-radius: 14px;
  border: 1px solid rgba(213, 236, 240, 0.28);
  background: rgba(230, 243, 245, 0.09);
  padding: 0.58rem 0.62rem;
}

.home-page .home-trust-metrics strong {
  display: block;
  color: #f0cb8e;
  font-size: 1.1rem;
}

.home-page .home-trust-metrics span {
  display: block;
  margin-top: 0.14rem;
  color: rgba(232, 245, 247, 0.88);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 700;
}

.home-page .home-trust-stack {
  display: grid;
  height: 100%;
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: 0.58rem;
}

.home-page .home-review-card,
.home-page .home-review-local {
  height: 100%;
  border-radius: 16px;
  border: 1px solid rgba(213, 236, 240, 0.32);
  background: rgba(230, 243, 245, 0.08);
  padding: 0.78rem 0.84rem;
}

.home-page .home-review-meta {
  margin: 0;
  color: rgba(232, 245, 247, 0.84);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
}

.home-page .home-review-meta strong {
  color: #f0fafc;
}

.home-page .home-review-stars {
  margin: 0.28rem 0 0.26rem;
  color: #f0cb8e;
  letter-spacing: 0.1em;
}

.home-page .home-review-card p,
.home-page .home-review-local p {
  margin: 0;
  color: rgba(232, 245, 247, 0.92);
}

.home-page .home-review-local h3 {
  margin: 0 0 0.26rem;
  color: #f0fafc;
}

.home-page .home-review-local .btn-outline {
  margin-top: 0.62rem;
  border-color: rgba(212, 238, 243, 0.45);
  color: #edf9fb;
  background: rgba(230, 243, 245, 0.08);
}

.home-page .home-final-cta {
  background:
    radial-gradient(circle at 12% 16%, rgba(184, 138, 75, 0.1), transparent 38%),
    linear-gradient(160deg, rgba(4, 63, 72, 0.96), rgba(8, 82, 93, 0.9));
  border-block: 1px solid rgba(212, 238, 243, 0.2);
}

.home-page .home-final-panel {
  margin: 0;
  border-radius: 24px;
  border: 1px solid rgba(200, 156, 93, 0.3);
  background:
    radial-gradient(circle at 88% 12%, rgba(184, 138, 75, 0.12), transparent 42%),
    linear-gradient(180deg, #f8f5ef, #f2ede2);
  box-shadow: 0 16px 34px rgba(2, 37, 44, 0.24);
  padding: 1.1rem;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
  gap: 0.85rem;
  align-items: center;
}

.home-page .home-final-copy h2 {
  margin: 0;
  color: #111317 !important;
  max-width: 17ch;
}

.home-page .home-final-copy p {
  margin: 0.62rem 0 0;
  color: #1f2c33 !important;
  max-width: 56ch;
}

.home-page .home-final-panel .kicker {
  color: #7d5525 !important;
}

.home-page .home-final-actions {
  margin-top: 0.85rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.home-page .home-final-actions .btn-outline {
  border-color: rgba(200, 156, 93, 0.45);
  color: #2d3f47;
  background: transparent;
}

.home-page .home-final-actions .btn-outline:hover {
  border-color: rgba(125, 85, 37, 0.6);
  color: #151d22;
}

.home-page .home-final-image {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(213, 236, 240, 0.34);
  min-height: 220px;
}

.home-page .home-final-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1140px) {
  .home-page .home-hero-shell,
  .home-page .home-intent-shell,
  .home-page .home-experience-shell,
  .home-page .home-trust-shell,
  .home-page .home-final-panel {
    grid-template-columns: 1fr;
  }

  .home-page .home-services-layout {
    grid-template-columns: 1fr;
  }

  .home-page .home-service-card--featured {
    grid-row: auto;
  }

  .home-page .home-hero-media {
    margin-top: 0.35rem;
  }
}

@media (max-width: 760px) {
  .home-page .home-hero-flagship {
    padding-top: 2.4rem;
  }

  .home-page .home-hero-flagship::before {
    top: -12px;
    left: -12px;
    width: 255px;
    height: 255px;
    opacity: 0.44;
  }

  .home-page .home-hero-copy h1 {
    max-width: 14ch;
  }

  .home-page .home-trust-cluster {
    grid-template-columns: 1fr 1fr;
  }

  .home-page .home-hero-subgrid {
    grid-template-columns: 1fr;
  }

  .home-page .home-intent-item {
    grid-template-columns: 1fr;
  }

  .home-page .home-trust-metrics {
    grid-template-columns: 1fr;
  }

  .home-page .home-final-image {
    min-height: 190px;
  }
}
