:root {
  --bg: #f7f2ec;
  --bg-soft: #efe6db;
  --text: #2f2b28;
  --muted: #6c665f;
  --accent: #8f6f98;
  --accent-dark: #6c5276;
  --gold: #c49b5b;
  --gold-dark: #a97d3f;
  --purple-deep: #755783;
  --purple-soft: #f2e8f4;
  --card: rgba(255, 255, 255, 0.8);
  --border: rgba(76, 60, 40, 0.10);
  --shadow: 0 20px 60px rgba(73, 53, 28, 0.08);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: linear-gradient(180deg, #fbf8f4 0%, var(--bg) 100%);
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
p { margin: 0 0 1rem; }
h1, h2, h3, h4 {
  margin: 0 0 1rem;
  line-height: 1.12;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-weight: 600;
  letter-spacing: 0.01em;
}
h1 { font-size: clamp(2.5rem, 5vw, 4.6rem); }
h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
h3 { font-size: 1.35rem; }
.container { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.narrow { width: min(760px, calc(100% - 2rem)); margin: 0 auto; }
.content-width { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 20; backdrop-filter: blur(16px);
  background: linear-gradient(180deg, rgba(110, 81, 122, 0.96), rgba(122, 92, 134, 0.92));
  border-bottom: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 14px 32px rgba(59, 34, 68, 0.18);
}
.nav-wrap { display: flex; align-items: center; justify-content: space-between; min-height: 88px; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; gap: .95rem; color: #fff7f1; }
.brand-mark { width: 3.25rem; height: 3.25rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.08); color: #f3dcc0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.brand-mark svg { width: 2.15rem; height: 2.15rem; }
.brand-text { display: flex; flex-direction: column; line-height: 1; }
.brand-name { font-family: "Cormorant Garamond", Georgia, serif; font-size: 2.05rem; font-weight: 700; letter-spacing: .01em; }
.brand-tag { margin-top: .3rem; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,240,229,.82); }
.nav { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; }
.nav a { color: rgba(255,247,241,.88); font-weight: 500; }
.nav a:hover { color: #fff; }
.header-book-button { margin-left: .35rem; }
.hero { padding: 5.5rem 0 3rem; }
.page-hero { padding: 32px 0; }
.page-hero.service-page-hero { padding-top: 32px !important; padding-right: 0 !important; padding-bottom: 0 !important; padding-left: 0 !important; }
.hero-grid { display: grid; gap: 2rem; grid-template-columns: 1.2fr .8fr; align-items: center; }
.hero {
  background:
    radial-gradient(circle at top left, rgba(190,156,93,.18), transparent 32%),
    radial-gradient(circle at 90% 20%, rgba(127,154,132,.18), transparent 28%);
}
.hero-card { display: flex; justify-content: flex-end; }
.lead { font-size: 1.1rem; color: var(--muted); max-width: 64ch; }
.eyebrow { text-transform: uppercase; letter-spacing: .16em; font-size: .78rem; color: var(--gold); font-weight: 700; margin-bottom: 1rem; }
.hero-points, .check-list, .number-list, .compact-list { padding-left: 1.2rem; margin: 1rem 0 0; }
.section { padding: 2rem 0; }
.section-soft { background: rgba(255,255,255,.45); }
.cards { display: grid; gap: 1.25rem; }
.three-up { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.two-up { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card, .soft-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 24px;
  box-shadow: var(--shadow);
  padding: 1.4rem;
}
.quote-card {
  min-height: 250px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.quote-card p { font-size: 1.05rem; margin-bottom: 1rem; }
.quote-card footer { color: var(--muted); font-weight: 600; margin-top: auto; }
.section-heading { margin-bottom: 1.5rem; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: start; }
.booking-grid, .dashboard-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1.5rem; align-items: start; }
.button-row { display: flex; gap: .9rem; flex-wrap: wrap; margin-top: 1.2rem; }
.button-row.center { justify-content: center; }
.button {
  display: inline-flex; align-items: center; justify-content: center; border: 0; cursor: pointer;
  background: linear-gradient(180deg, var(--accent-dark), #5e4768); color: #fff; padding: .92rem 1.3rem; border-radius: 999px; font-weight: 600;
  box-shadow: 0 12px 24px rgba(74, 46, 84, 0.16);
}
.button:hover { filter: brightness(1.03); }
.button-secondary { background: #fff; color: var(--text); border: 1px solid var(--border); }
.button-small { padding: .7rem 1rem; font-size: .92rem; }
.button-gold { background: linear-gradient(180deg, #d7b071 0%, var(--gold-dark) 100%); color: #fffaf2; box-shadow: 0 14px 26px rgba(118, 83, 33, 0.22); }
.button-soft-light { background: rgba(255,255,255,.18); color: #fffaf5; border: 1px solid rgba(255,255,255,.22); box-shadow: none; }
.price { font-size: 1.6rem; font-family: Georgia, serif; color: var(--accent-dark); margin-top: .5rem; }
.muted { color: var(--muted); }
.mt-lg { margin-top: 1.5rem; }
.stack-sm > * + * { margin-top: .5rem; }
.stack-md > * + * { margin-top: 1rem; }
.stack-lg > * + * { margin-top: 2rem; }
label { display: block; }
label span { display: block; font-weight: 600; margin-bottom: .35rem; }
input, select, textarea {
  width: 100%; padding: .9rem 1rem; border: 1px solid var(--border); border-radius: 14px;
  background: rgba(255,255,255,.9); color: var(--text); font: inherit;
}
.alert {
  background: rgba(190, 156, 93, 0.12); border: 1px solid rgba(190,156,93,.2);
  color: #6f5523; padding: .9rem 1rem; border-radius: 14px;
}
.cta-box {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: linear-gradient(135deg, rgba(127,154,132,.18), rgba(190,156,93,.15));
  border: 1px solid var(--border); border-radius: 28px; padding: 1.6rem;
}
.inline-card { display: inline-block; margin: 1rem 0; }
.text-center { text-align: center; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; background: rgba(255,255,255,.72); border-radius: 20px; overflow: hidden; }
th, td { text-align: left; padding: .85rem; border-bottom: 1px solid var(--border); vertical-align: top; }
thead { background: rgba(127,154,132,.12); }
.inline-form { display: flex; gap: .5rem; min-width: 180px; }
.compact-list { list-style: none; padding-left: 0; }
.admin-head { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.site-footer { padding: 3rem 0; border-top: 1px solid var(--border); margin-top: 3rem; background: rgba(255,255,255,.45); }
.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 1.5rem; }
.footer-grid ul { list-style: none; padding: 0; margin: 0; }
.footer-grid li + li { margin-top: .5rem; }

.footer-quick-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 1.2rem;
  row-gap: .45rem;
}
.footer-quick-links li + li { margin-top: 0; }
.footer-quick-links a { display: inline-block; }

.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .95rem;
}
.footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border: 1px solid rgba(111,83,119,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  color: var(--accent-dark);
  font-size: 1.08rem;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(49,35,55,.06);
}
.footer-social a i {
  line-height: 1;
}
.footer-social a:hover,
.footer-social a:focus-visible {
  background: rgba(255,255,255,.95);
  border-color: rgba(111,83,119,.35);
  outline: none;
}

.footer-credentials {
  display: flex;
  align-items: center;
  gap: .8rem;
  flex-wrap: wrap;
  margin-top: 1.1rem;
}
.footer-credential-link {
  width: 128px;
  height: 128px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-content: center;
  border: 1px solid rgba(111,83,119,.16);
  border-radius: 16px;
  box-shadow: 0 10px 22px rgba(49,35,55,.08);
  background: rgba(255,255,255,.92);
  padding: .55rem;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.footer-credential-link:hover,
.footer-credential-link:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(49,35,55,.12);
  border-color: rgba(111,83,119,.35);
  outline: none;
}
.footer-credential-link-ukrf {
  background: linear-gradient(135deg, #6f5377, #8f6b97);
}
.footer-credential-link picture {
  display: block;
  width: 100%;
  height: 100%;
}
.footer-credential-logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.footer-credential-logo-holistic {
  max-width: 118px;
  max-height: 118px;
}
.footer-credential-logo-ukrf {
  max-width: 112px;
  max-height: 112px;
}
@media (max-width: 720px) {
  .footer-quick-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: .9rem;
    row-gap: .4rem;
    font-size: .95rem;
  }
  .footer-quick-links a {
    line-height: 1.25;
  }
  .footer-credentials {
    justify-content: flex-start;
  }
  .footer-credential-link {
    width: 112px;
    height: 112px;
  }
}
@media (max-width: 900px) {
  .hero-grid, .two-col, .three-up, .two-up, .booking-grid, .dashboard-grid, .footer-grid { grid-template-columns: 1fr; }
  .admin-head, .cta-box, .nav-wrap { flex-direction: column; align-items: flex-start; }
  .nav { width: 100%; }
}
.about-profile-grid {
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: stretch;
}
.about-profile-photo-card {
  margin: 0;
  padding: .75rem;
  overflow: hidden;
  display: flex;
  min-height: 100%;
}
.about-profile-photo-card img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center top;
  border-radius: 18px;
}
.about-profile-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (max-width: 720px) {
  .about-profile-grid {
    grid-template-columns: 1fr;
  }
  .about-profile-photo-card {
    min-height: 0;
  }
  .about-profile-photo-card img {
    height: auto;
    aspect-ratio: auto;
    max-height: 520px;
  }
}

.wrap { flex-wrap: wrap; }
.section-tight-top { padding-top: 1rem; }
.admin-cards { align-items: start; }
.form-split-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.rule-group { border-top: 1px solid var(--border); padding-top: 1rem; }
.rule-group:first-child { border-top: 0; padding-top: 0; }
.rule-group-head { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.inline-between { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.code-inline {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  background: rgba(255,255,255,.9);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: .8rem 1rem;
  overflow-wrap: anywhere;
}
.text-left { text-align: left; }
@media (max-width: 900px) {
  .form-split-2 { grid-template-columns: 1fr; }
  .inline-between, .rule-group-head { flex-direction: column; align-items: flex-start; }
}


.admin-head-stack { align-items: flex-start; }
.admin-tabbar { display: flex; gap: .75rem; flex-wrap: wrap; position: sticky; top: 84px; z-index: 10; background: rgba(251,248,244,.92); padding: .75rem; border: 1px solid var(--border); border-radius: 18px; backdrop-filter: blur(12px); }
.admin-tabbar a { padding: .55rem .9rem; border-radius: 999px; background: rgba(255,255,255,.9); border: 1px solid var(--border); color: var(--muted); font-weight: 600; }
.admin-tabbar a:hover { color: var(--text); }
.planner-head { display: flex; justify-content: space-between; gap: 1rem; align-items: end; }
.planner-controls { min-width: min(320px, 100%); }
.calendar-topbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 1.25rem 0 1rem; }
.calendar-legend { display: flex; gap: 1rem; flex-wrap: wrap; color: var(--muted); font-size: .95rem; margin-bottom: 1rem; }
.swatch { width: .9rem; height: .9rem; display: inline-block; border-radius: 999px; margin-right: .4rem; vertical-align: -1px; border: 1px solid var(--border); }
.swatch.availability { background: rgba(127,154,132,.35); }
.swatch.special { background: rgba(190,156,93,.35); }
.swatch.blocked { background: rgba(194,117,99,.35); }
.swatch.selected { background: rgba(85,113,91,.75); }
.admin-calendar { display: grid; gap: .5rem; }
.calendar-weekdays, .calendar-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.calendar-weekdays div { text-align: center; font-weight: 700; color: var(--muted); }
.calendar-day { min-height: 140px; border-radius: 20px; border: 1px solid var(--border); background: rgba(255,255,255,.86); padding: .75rem; display: flex; flex-direction: column; gap: .65rem; box-shadow: var(--shadow); }
.calendar-day:hover { transform: translateY(-1px); }
.calendar-day.outside { opacity: .45; }
.calendar-day.has-availability { border-color: rgba(85,113,91,.35); }
.calendar-day.has-special { background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(190,156,93,.12)); }
.calendar-day.has-blocked { box-shadow: inset 0 0 0 2px rgba(194,117,99,.28), var(--shadow); }
.calendar-day.selected { box-shadow: inset 0 0 0 2px rgba(85,113,91,.55), var(--shadow); }
.calendar-day.today .calendar-day-head strong { text-decoration: underline; }
.calendar-day.no-availability { background: rgba(255,255,255,.65); }
.calendar-day-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.calendar-day-head strong { font-size: 1.1rem; }
.calendar-day-meta { font-size: .88rem; color: var(--muted); display: grid; gap: .25rem; }
.calendar-pill, .mini-badge { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: .18rem .5rem; font-size: .72rem; font-weight: 700; background: rgba(190,156,93,.18); color: #6f5523; }
.mini-badge-soft { background: rgba(127,154,132,.15); color: var(--accent-dark); }
.check-row { display: flex; align-items: center; gap: .65rem; }
.check-row input { width: auto; margin: 0; }
.block-item { padding-bottom: 1rem; border-bottom: 1px solid var(--border); }
.block-item:last-child { border-bottom: 0; padding-bottom: 0; }
@media (max-width: 900px) { .planner-head, .calendar-topbar { flex-direction: column; align-items: flex-start; } .calendar-weekdays, .calendar-week { grid-template-columns: repeat(2, minmax(0, 1fr)); } .calendar-day { min-height: 110px; } .admin-tabbar { top: 70px; } }


#admin-app { position: relative; }
.htmx-request #admin-app,
#admin-app.htmx-request { opacity: .85; }
.htmx-indicator { opacity: 0; transition: opacity .2s ease; }
.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator { opacity: 1; }
.calendar-day { transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease; }


.effective-window-item {
  gap: 1rem;
  align-items: center;
}

.effective-window-item form {
  flex-shrink: 0;
}


.calendar-day { min-height: 210px; }
.calendar-day-actions { display:flex; align-items:center; gap:.4rem; }
.calendar-open-link { font-size:.8rem; color: var(--accent); text-decoration: none; border:1px solid var(--border); border-radius:999px; padding:.2rem .55rem; background:rgba(255,255,255,.8); }
.calendar-window-list { list-style:none; padding:0; margin:0; display:grid; gap:.35rem; }
.calendar-window-item { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; padding:.4rem .45rem; border:1px solid var(--border); border-radius:12px; background:rgba(255,255,255,.82); }
.calendar-window-text { font-size:.8rem; line-height:1.25; min-width:0; }
.button-tiny { padding:.32rem .55rem; font-size:.72rem; border-radius:999px; line-height:1.1; }
@media (max-width: 900px) { .calendar-day { min-height: 170px; } .calendar-window-item { flex-direction:column; align-items:flex-start; } }


/* next available booking suggestions */
.next-availability { margin-top: 0.75rem; padding: 0.9rem 1rem; border-radius: 16px; background: rgba(122, 167, 155, 0.10); border: 1px solid rgba(122, 167, 155, 0.28); }
.next-availability[hidden] { display: none !important; }
.next-availability__title { margin: 0 0 0.45rem 0; font-weight: 600; }
.next-availability__text { margin: 0; color: #5f6f69; }
.next-availability__list { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 0.8rem; }
.next-availability__button { appearance: none; border: 1px solid rgba(68, 102, 92, 0.25); background: #fff; color: inherit; border-radius: 999px; padding: 0.55rem 0.85rem; cursor: pointer; font: inherit; }
.next-availability__button:hover, .next-availability__button:focus-visible { border-color: rgba(68, 102, 92, 0.55); box-shadow: 0 0 0 3px rgba(122, 167, 155, 0.16); outline: none; }
.next-availability__meta { display: block; font-size: 0.9rem; color: #5f6f69; }


.admin-section-head { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.admin-services-grid { display:grid; gap:1rem; }
.soft-panel { background: rgba(255,255,255,.75); border:1px solid rgba(90,120,110,.16); border-radius: 18px; padding: 1rem; }
.service-editor { border-left: 4px solid rgba(116,150,137,.28); }
.service-editor-head { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; margin-bottom:.75rem; }
.split-fields-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.checkbox-stack { display:flex; flex-direction:column; gap:.6rem; justify-content:center; }
.checkbox-label { display:flex; align-items:center; gap:.5rem; font-weight:600; }
.mini-badge { display:inline-flex; align-items:center; padding:.25rem .55rem; border-radius:999px; background:#edf6ef; color:#456a56; font-size:.82rem; font-weight:700; }
@media (max-width: 900px) { .split-fields-4 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 640px) { .split-fields-4 { grid-template-columns: 1fr; } .service-editor-head, .admin-section-head { flex-direction:column; } }


.admin-service-table { width: 100%; border-collapse: collapse; min-width: 860px; }
.admin-service-table th, .admin-service-table td { padding: .85rem .8rem; border-bottom: 1px solid var(--border); vertical-align: top; }
.admin-service-table th { text-align: left; color: var(--muted); font-size: .86rem; text-transform: uppercase; letter-spacing: .03em; }
.admin-service-table tbody tr:hover { background: rgba(255,255,255,.55); }
.small-text { font-size: .88rem; margin-top: .25rem; }
.text-right { text-align: right; }
.justify-end { justify-content: flex-end; }
.mini-badge-warning { background: rgba(194,117,99,.14); color: #8d4b3e; }
.mini-badge-neutral { background: rgba(84,104,116,.12); color: #495965; }
.service-modal { border: 0; padding: 0; background: transparent; max-width: min(760px, calc(100vw - 2rem)); width: 100%; }
.service-modal::backdrop { background: rgba(20, 32, 31, .45); backdrop-filter: blur(4px); }
.service-modal-card { background: #fbf8f4; border: 1px solid rgba(90,120,110,.18); border-radius: 24px; box-shadow: 0 25px 80px rgba(34, 48, 44, .22); padding: 1.2rem; }
.service-modal-card-sm { max-width: 560px; }
.service-modal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.modal-close { appearance: none; border: 1px solid var(--border); background: rgba(255,255,255,.85); width: 2.25rem; height: 2.25rem; border-radius: 999px; font-size: 1.25rem; line-height: 1; cursor: pointer; }
.modal-close:hover { background: #fff; }
@media (max-width: 900px) { .admin-service-table { min-width: 720px; } }
@media (max-width: 640px) { .service-modal-card { padding: 1rem; border-radius: 20px; } }

.admin-tabbar-pages a.active {
  color: var(--text);
  background: rgba(144, 190, 164, 0.22);
  border-color: rgba(90,120,110,.35);
}
.admin-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.admin-overview-card {
  text-decoration: none;
  color: inherit;
  transition: transform .18s ease, box-shadow .18s ease;
}
.admin-overview-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 36px rgba(34, 48, 44, .12);
}
.admin-stat-row {
  margin: .2rem 0 .75rem;
}
.admin-stat-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-content: center;
  min-width: 4.25rem;
  padding: .5rem .9rem;
  border-radius: 999px;
  background: rgba(144, 190, 164, 0.16);
  border: 1px solid rgba(90,120,110,.18);
  color: var(--text);
  line-height: 1;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}
@media (max-width: 900px) {
  .admin-overview-grid { grid-template-columns: 1fr; }
}

.admin-stat-row .admin-stat-number {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -.02em;
}


.admin-page-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.admin-page-toolbar h2 {
  margin-bottom: 0.25rem;
}

.admin-filter-form {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.admin-filter-form label {
  font-weight: 600;
  color: #435065;
}

.admin-filter-form select {
  min-width: 180px;
}


.appointments-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.9rem;
  align-items: end;
  width: 100%;
}

.appointments-filter-grid > div {
  min-width: 0;
}

.appointments-filter-grid label {
  display: block;
  margin-bottom: 0.35rem;
}

.appointments-filter-grid input,
.appointments-filter-grid select {
  width: 100%;
}

.appointments-filter-actions {
  display: flex;
  gap: 0.55rem;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  grid-column: 1 / -1;
  padding-top: 0.2rem;
}

.appointments-filter-actions .button {
  margin-top: 0;
  min-width: 110px;
}


/* consistent select styling across Safari/Chrome */
select {
  -webkit-appearance: none;
  appearance: none;
  background-color: rgba(255,255,255,.9);
  background-image:
    linear-gradient(45deg, transparent 50%, #6c665f 50%),
    linear-gradient(135deg, #6c665f 50%, transparent 50%),
    linear-gradient(to right, rgba(76, 60, 40, 0.10), rgba(76, 60, 40, 0.10));
  background-position:
    calc(100% - 1.2rem) calc(50% - 0.14rem),
    calc(100% - 0.85rem) calc(50% - 0.14rem),
    calc(100% - 2.5rem) 50%;
  background-size: .4rem .4rem, .4rem .4rem, 1px 1.4rem;
  background-repeat: no-repeat;
  padding-right: 3.2rem;
  min-height: 3rem;
  line-height: 1.25;
  cursor: pointer;
}
select:hover {
  border-color: rgba(85,113,91,.28);
}
select:focus {
  outline: none;
  border-color: rgba(85,113,91,.42);
  box-shadow: 0 0 0 4px rgba(127,154,132,.12);
}
select[multiple],
select[size] {
  background-image: none;
  padding-right: 1rem;
  min-height: auto;
}
select:disabled {
  cursor: not-allowed;
  opacity: .7;
}


.admin-overview-card{display:block;}

.service-modal{
  border:none;
  padding:0;
  background:transparent;
}
.service-modal::backdrop{
  background:rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(3px);
}
.service-modal-card{
  width:min(920px, calc(100vw - 2rem));
  max-width:920px;
  border-radius:22px;
  padding:1.25rem;
  background:#fff;
  box-shadow:0 30px 80px rgba(15,23,42,0.22);
  border:1px solid rgba(148,163,184,0.28);
}
.service-modal-card-sm{
  width:min(560px, calc(100vw - 2rem));
  max-width:560px;
}
.service-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}
.service-modal-head h3{margin:0 0 .25rem 0;}
.modal-close{
  border:none;
  background:transparent;
  font-size:1.6rem;
  line-height:1;
  padding:.25rem .4rem;
  border-radius:10px;
  cursor:pointer;
}
.modal-close:hover{background:rgba(148,163,184,0.14);}
.split-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
.split-fields-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.checkbox-stack{display:flex;flex-direction:column;justify-content:center;gap:.85rem;padding-top:1.6rem;}
.checkbox-label{display:flex;align-items:center;gap:.55rem;min-height:2.75rem;}
.checkbox-label input{width:1rem;height:1rem;}
@media (max-width: 840px){
  .split-fields,.split-fields-4{grid-template-columns:1fr;}
  .checkbox-stack{padding-top:0;}
  .service-modal-card{width:min(96vw, calc(100vw - 1rem));padding:1rem;}
}


/* v3.1.7.3 unified buttons + modal polish */
a.button,
button.button,
input.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.9rem;
  padding:.82rem 1.2rem;
  border-radius:999px;
  font:600 .98rem/1.1 Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-decoration:none;
  white-space:nowrap;
  -webkit-appearance:none;
  appearance:none;
}
.button-secondary,
.button-ghost {
  background:#fff;
  color:var(--text);
  border:1px solid var(--border);
}
.button-ghost:hover,
.button-secondary:hover {
  background:rgba(255,255,255,.96);
}
.button-small,
a.button.button-small,
button.button.button-small {
  min-height:2.35rem;
  padding:.58rem .9rem;
  font-size:.9rem;
}
.button-tiny,
a.button.button-tiny,
button.button.button-tiny {
  min-height:1.95rem;
  padding:.34rem .6rem;
  font-size:.76rem;
}

.service-modal[open] {
  display:flex;
  align-items:center;
  justify-content:center;
}
.service-modal {
  border:none;
  padding:0;
  background:transparent;
  width:min(980px, calc(100vw - 2rem));
  max-width:980px;
  max-height:none;
  overflow:visible;
}
.service-modal-card {
  width:min(980px, calc(100vw - 2rem));
  max-width:980px;
  max-height:none;
  overflow:visible;
  padding:1.35rem;
}
.service-modal-card-sm {
  width:min(560px, calc(100vw - 2rem));
  max-width:560px;
}
.service-modal form.stack-md {
  gap:.85rem;
}
.service-modal textarea {
  min-height:7rem;
  resize:vertical;
}
.service-modal .button-row {
  margin-top:.35rem;
}
.service-modal .checkbox-stack {
  padding-top:1.45rem;
}
@media (max-width: 840px) {
  .service-modal,
  .service-modal-card {
    width:min(96vw, calc(100vw - 1rem));
  }
  .service-modal-card {
    padding:1rem;
  }
}

/* Reiki image refresh */
.hero-image-layout {
  background: linear-gradient(180deg, rgba(248, 244, 239, 0.95) 0%, rgba(242, 233, 244, 0.96) 100%);
}
.hero-split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.5rem;
  align-items: center;
}
.hero-copy {
  max-width: 40rem;
}
.hero-visual {
  display: flex;
  justify-content: flex-end;
}
.hero-main-image {
  width: 100%;
  max-width: 35rem;
  border-radius: 1.5rem;
  box-shadow: 0 24px 60px rgba(66, 33, 79, 0.18);
  border: 1px solid rgba(118, 88, 135, 0.15);
}
.welcome-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center;
}
.image-card {
  background: #fff;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(31, 41, 55, 0.12);
}
.image-card picture,
.image-feature-card picture {
  display: block;
}
.image-card img,
.image-feature-card img {
  display: block;
  width: 100%;
  height: auto;
}
.image-card-room img {
  min-height: 24rem;
  object-fit: cover;
}
.image-feature-grid {
  align-items: stretch;
}
.image-feature-card {
  padding: 0;
  overflow: hidden;
}
.image-feature-card img {
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.image-feature-body {
  padding: 1.1rem 1.1rem 1.25rem;
}
.image-feature-body h3 {
  margin-bottom: 0.5rem;
}
@media (max-width: 900px) {
  .hero-split,
  .welcome-grid {
    grid-template-columns: 1fr;
  }
  .hero-visual {
    justify-content: flex-start;
  }
  .hero-main-image {
    max-width: none;
  }
}


/* v3.1.7.5 reiki header and hero refinement */
.hero-home-signature {
  position: relative;
  overflow: hidden;
  padding-top: 4.75rem;
  padding-bottom: 4rem;
  background: transparent;
}
.hero-home-signature::after {
  content: none;
}
.hero-copy-panel {
  position: relative;
  z-index: 1;
  background: linear-gradient(180deg, rgba(95, 64, 107, 0.78), rgba(106, 73, 118, 0.68));
  color: #fff6f1;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 30px;
  padding: 2rem 2rem 1.85rem;
  box-shadow: 0 28px 44px rgba(55, 28, 65, 0.22);
  backdrop-filter: blur(6px);
}
.hero-copy-panel .eyebrow { color: #f2d4a7; letter-spacing: .14em; }
.hero-copy-panel h1 { font-size: clamp(2.8rem, 5.1vw, 4.8rem); color: #fff9f7; text-shadow: 0 2px 12px rgba(41, 19, 49, 0.18); }
.hero-copy-panel .lead,
.hero-copy-panel p,
.hero-copy-panel li { color: rgba(255,246,241,.92); }
.hero-copy-panel .button-row { margin-top: 1.45rem; }

.hero-mobile-room-image {
  display: none;
  margin-top: 1.25rem;
}
.hero-mobile-room-image img {
  min-height: 0;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.hero-home-signature .hero-main-image {
  position: relative;
  z-index: 1;
  max-width: 37rem;
  border-radius: 2rem;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 28px 60px rgba(61, 31, 72, 0.26);
}
.section-heading .eyebrow,
.welcome-copy .eyebrow { color: var(--purple-deep); }
.welcome-copy h2,
.section-heading h2,
.cta-box h2 { color: #4f3b58; }
.cta-box {
  background: linear-gradient(135deg, rgba(143,112,159,.18), rgba(212,176,113,.15));
}
@media (max-width: 900px) {
  .site-header { backdrop-filter: blur(10px); }
  .nav-wrap { min-height: 82px; }
  .brand-name { font-size: 1.8rem; }
  .brand-tag { letter-spacing: .12em; }
  .hero-copy-panel { padding: 1.5rem 1.25rem; }
}

@media (max-width: 720px) {
  .hero-mobile-room-image { display: block; }
  .welcome-grid .image-card-room { display: none; }
}


/* v3.1.7.7 single-column home hero */
.hero-home-signature .hero-single-column {
  grid-template-columns: 1fr;
}
.hero-home-signature .hero-single-column .hero-copy {
  max-width: 58rem;
}
.hero-home-signature .hero-single-column .hero-copy-panel {
  margin-right: 0;
}
@media (max-width: 900px) {
  .hero-home-signature .hero-single-column .hero-copy {
    max-width: none;
  }
}


.card-actions {
  margin-top: 1rem;
}

.service-description {
  margin-top: 0.65rem;
  padding: 0.9rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(110, 74, 146, 0.16);
  background: rgba(255, 255, 255, 0.82);
  color: #4d4160;
  font-size: 0.97rem;
  line-height: 1.55;
}


.treatment-card .card-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.treatment-card-link {
  color: inherit;
  text-decoration: none;
}

.treatment-card-link:hover,
.treatment-card-link:focus {
  text-decoration: underline;
}

.treatment-card .button {
  min-width: 9.5rem;
  justify-content: center;
}


.admin-quote-cell { max-width: 44rem; white-space: normal; }


/* v3.1.7.21 booking CTA consistency: service pages use same purple booking button as homepage */
a.button.booking-cta-button,
button.button.booking-cta-button,
input.button.booking-cta-button {
  background: linear-gradient(180deg, var(--accent-dark), #5e4768) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: 0 12px 24px rgba(74, 46, 84, 0.16) !important;
}
a.button.booking-cta-button:hover,
button.button.booking-cta-button:hover,
input.button.booking-cta-button:hover {
  filter: brightness(1.03);
}
.service-page-actions {
  margin-top: 1.25rem;
}

/* Mobile header menu */
.mobile-header-actions { display: none; align-items: center; gap: .65rem; margin-left: auto; }
.mobile-book-button { white-space: nowrap; }
.mobile-nav-toggle {
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff7f1;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
  box-shadow: none;
}
.mobile-nav-toggle span {
  width: 20px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform .18s ease, opacity .18s ease;
}
.mobile-nav-open .mobile-nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mobile-nav-open .mobile-nav-toggle span:nth-child(2) { opacity: 0; }
.mobile-nav-open .mobile-nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 900px) {
  .site-header { position: sticky; }
  .nav-wrap {
    min-height: 72px;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    padding-top: .55rem;
    padding-bottom: .55rem;
  }
  .brand { min-width: 0; flex: 1 1 auto; gap: .7rem; }
  .brand-mark { width: 2.65rem; height: 2.65rem; flex: 0 0 auto; }
  .brand-mark svg { width: 1.75rem; height: 1.75rem; }
  .brand-name { font-size: clamp(1.35rem, 7vw, 1.75rem); }
  .brand-tag { font-size: .62rem; letter-spacing: .11em; }
  .mobile-header-actions { display: inline-flex; }
  .desktop-book-button { display: none !important; }
  .nav {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: .25rem;
    padding: .75rem;
    margin-top: .4rem;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 20px;
  }
  .mobile-nav-open .nav { display: flex; }
  .nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 44px;
    padding: .65rem .75rem;
    border-radius: 14px;
    background: rgba(255,255,255,.06);
  }
  .nav a:hover { background: rgba(255,255,255,.12); }
  .header-book-button { margin-left: 0; }
  .mobile-book-button { padding: .68rem .9rem; font-size: .88rem; }
}

@media (max-width: 420px) {
  .brand-tag { display: none; }
  .mobile-book-button { padding: .62rem .78rem; font-size: .82rem; }
  .mobile-nav-toggle { width: 42px; height: 42px; }
}

/* SEO/content refresh v3.1.8.0 */
.hero-seo-heading {
  margin: 0;
  max-width: 980px;
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 1rem;
  color: var(--muted);
  font-size: 0.92rem;
}

.breadcrumbs a {
  color: var(--accent-dark);
  font-weight: 700;
  text-decoration: none;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

.service-page-hero-actions {
  margin-top: 1.25rem;
}

.service-content-block p {
  font-size: 1.03rem;
  line-height: 1.75;
}

.service-faq-section {
  margin-top: 1rem;
}

.align-left {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
}

.faq-list {
  display: grid;
  gap: 1rem;
}

.faq-card h3 {
  margin-top: 0;
  margin-bottom: 0.45rem;
  font-size: 1.08rem;
}

.faq-card p {
  margin-bottom: 0;
}

.important-note-card {
  border-left: 4px solid var(--accent);
}


.trust-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .85fr);
  gap: 1.25rem;
  align-items: stretch;
}
.trust-copy,
.trust-checklist-card {
  height: 100%;
}
.trust-list {
  list-style: none;
  padding: 0;
  margin: .25rem 0 0;
  display: grid;
  gap: .65rem;
}
.trust-list li {
  position: relative;
  padding-left: 1.7rem;
  color: var(--text);
}
.trust-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  width: 1.15rem;
  height: 1.15rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(103, 58, 124, .12);
  color: var(--purple);
  font-size: .78rem;
  font-weight: 800;
}
@media (max-width: 820px) {
  .trust-grid { grid-template-columns: 1fr; }
}


/* v3.1.8.7 FAQ page */
.faq-page-layout {
  display: grid;
  grid-template-columns: minmax(250px, 0.75fr) minmax(0, 1.65fr);
  gap: 1.25rem;
  align-items: start;
}
.faq-intro-card {
  position: sticky;
  top: 112px;
}
.faq-page-list {
  display: grid;
  gap: 1rem;
}
.faq-page-card h2 {
  font-size: 1.35rem;
  margin-bottom: 0.55rem;
  color: #4f3b58;
}
.faq-page-card p {
  margin-bottom: 0;
  line-height: 1.72;
}
@media (max-width: 900px) {
  .faq-page-layout { grid-template-columns: 1fr; }
  .faq-intro-card { position: static; }
}


/* v3.1.8.9 mobile Kind Words carousel */
@media (max-width: 720px) {
  .mobile-testimonial-carousel {
    display: block;
    position: relative;
  }
  .mobile-testimonial-carousel .quote-card {
    display: none;
    margin: 0;
    min-height: 220px;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .28s ease, transform .28s ease;
  }
  .mobile-testimonial-carousel .quote-card.is-active {
    display: flex;
    opacity: 1;
    transform: translateY(0);
  }
}

@media (min-width: 721px) {
  .mobile-testimonial-carousel .quote-card {
    display: flex !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* v3.1.8.11 Healing videos page */
.video-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: 1.25rem;
  align-items: stretch;
}
.video-help-card {
  height: 100%;
}
.video-player-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
  gap: 1.25rem;
  align-items: stretch;
  background: #fff;
  border: 1px solid rgba(111, 83, 119, .14);
  border-radius: 24px;
  box-shadow: 0 18px 48px rgba(66, 45, 74, .10);
  padding: 1rem;
  margin-bottom: 1.25rem;
}
.video-frame-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  background: #1f1723;
  aspect-ratio: 16 / 9;
}
.video-frame-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.video-player-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .65rem;
  padding: .5rem;
}
.video-player-copy h3 {
  margin: 0;
  color: var(--purple-dark, #4f3b58);
}
.video-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.video-card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: .85rem;
  text-align: left;
  border: 1px solid rgba(111, 83, 119, .14);
  background: #fff;
  border-radius: 18px;
  padding: .65rem;
  cursor: pointer;
  font: inherit;
  color: inherit;
  box-shadow: 0 10px 30px rgba(66, 45, 74, .07);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.video-card:hover,
.video-card.is-active {
  transform: translateY(-2px);
  border-color: rgba(111, 83, 119, .36);
  box-shadow: 0 14px 38px rgba(66, 45, 74, .12);
}
.video-card img {
  width: 112px;
  height: 72px;
  object-fit: cover;
  border-radius: 12px;
  background: #eee;
}
.video-card-body {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  min-width: 0;
}
.video-card-body strong {
  line-height: 1.25;
  color: var(--purple-dark, #4f3b58);
}
.video-card-body small {
  color: var(--muted);
}
@media (max-width: 980px) {
  .video-player-shell,
  .video-intro-grid { grid-template-columns: 1fr; }
  .video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .video-grid { grid-template-columns: 1fr; }
  .video-card { grid-template-columns: 96px minmax(0, 1fr); }
  .video-card img { width: 96px; height: 64px; }
}

.video-section-block {
  margin-top: 2rem;
}
.section-heading-compact {
  margin-bottom: 1rem;
}
.video-grid-latest {
  margin-bottom: 1.25rem;
}

/* Healing videos page button treatment: warm gold, not the main purple booking CTA */
.video-warm-button {
  background: linear-gradient(180deg, #f1dfb6 0%, #d3a95e 100%);
  color: #3d2456;
  border: 1px solid rgba(126, 91, 36, 0.22);
  box-shadow: 0 12px 24px rgba(116, 80, 28, 0.16);
}
.video-warm-button:hover,
.video-warm-button:focus {
  color: #2f1844;
  transform: translateY(-1px);
  box-shadow: 0 16px 28px rgba(116, 80, 28, 0.22);
}

/* v3.1.8.24 privacy page + cleaner desktop navigation */
.nav-more {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.nav-more-toggle {
  min-height: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  color: rgba(255,247,241,.92);
  padding: .58rem .9rem;
  font: 600 .9rem/1.1 Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  cursor: pointer;
}
.nav-more-toggle:hover,
.nav-more-open .nav-more-toggle {
  background: rgba(255,255,255,.16);
  color: #fff;
}
.nav-more-icon {
  width: 16px;
  height: 12px;
  display: inline-block;
  position: relative;
  border-top: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
}
.nav-more-icon::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 3px;
  border-top: 2px solid currentColor;
}
.nav-more-menu {
  display: none;
  position: absolute;
  right: 0;
  top: calc(100% + .7rem);
  min-width: 210px;
  padding: .55rem;
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(111,83,119,.16);
  box-shadow: 0 18px 44px rgba(49,35,55,.18);
  z-index: 50;
}
.nav-more-open .nav-more-menu { display: grid; gap: .2rem; }
.nav .nav-more-menu a {
  color: var(--text);
  display: block;
  padding: .7rem .8rem;
  border-radius: 12px;
  font-weight: 600;
}
.nav .nav-more-menu a:hover {
  background: rgba(111,83,119,.09);
  color: var(--accent-dark);
}
.privacy-content h2 { font-size: clamp(1.45rem, 2.2vw, 1.9rem); }
.privacy-content a { color: var(--accent-dark); font-weight: 700; }

@media (max-width: 900px) {
  .nav-more { display: block; width: 100%; }
  .nav-more-toggle { display: none; }
  .nav-more-menu {
    display: flex;
    position: static;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    flex-direction: column;
    gap: .25rem;
  }
  .nav .nav-more-menu a {
    color: rgba(255,247,241,.88);
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 44px;
    padding: .65rem .75rem;
    border-radius: 14px;
    background: rgba(255,255,255,.06);
  }
  .nav .nav-more-menu a:hover { background: rgba(255,255,255,.12); color: #fff; }
}

.booking-summary-card {
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255,255,255,.58);
  padding: 1rem;
  margin: 1rem 0 1.2rem;
}
.booking-summary-card p { margin-bottom: .45rem; }
.cancel-booking-box {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}
.button-danger {
  background: linear-gradient(180deg, #a04f5b, #7b3844);
  color: #fff;
}

.location-admin-form {
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1rem;
  background: rgba(255, 255, 255, 0.58);
}
.location-admin-actions { margin-top: .85rem; gap: 1rem; }
@media (max-width: 700px) {
  .location-admin-actions { align-items: flex-start; flex-direction: column; }
}



/* What to expect page tidy layout */
.expect-page {
  max-width: 1180px;
}
.expect-page > .card,
.expect-page > .soft-card,
.expect-page > .cta-box {
  width: 100%;
}
.expect-intro-card {
  overflow: visible;
}
.expect-steps {
  display: grid;
  gap: 1rem;
  margin-top: 1.25rem;
}
.expect-steps .card {
  min-height: 100%;
}
.expect-steps .card h3 {
  margin-bottom: .35rem;
}
@media (max-width: 900px) {
  .expect-steps {
    grid-template-columns: 1fr;
  }
}

/* Service page polish v3.1.8.42 */
.service-page-hero .content-width,
.service-page-layout {
  max-width: 1180px;
}

.service-hero-card {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
  gap: 1.25rem;
  align-items: stretch;
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: 30px;
  border: 1px solid rgba(111, 83, 119, .18);
  background:
    radial-gradient(circle at top left, rgba(219, 184, 109, .22), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.86), rgba(248,241,248,.72));
  box-shadow: 0 22px 60px rgba(58, 43, 64, .12);
}

.service-hero-copy h1 {
  max-width: 900px;
}

.service-hero-aside {
  display: grid;
  gap: .8rem;
  align-content: center;
}

.service-highlight-pill {
  padding: .85rem .95rem;
  border-radius: 18px;
  background: rgba(111, 83, 119, .10);
  border: 1px solid rgba(111, 83, 119, .14);
  color: var(--accent-dark);
  font-weight: 800;
}

.service-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.service-feature-card,
.service-content-card,
.service-faq-section,
.service-important-card,
.service-bottom-cta {
  background: rgba(255,255,255,.78);
  box-shadow: 0 18px 42px rgba(42, 59, 54, .08);
}

.service-feature-card {
  position: relative;
  overflow: hidden;
}

.service-feature-card::after {
  content: "";
  position: absolute;
  inset: auto -24px -34px auto;
  width: 120px;
  height: 120px;
  border-radius: 999px;
  background: rgba(219, 184, 109, .16);
}

.service-feature-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  margin-bottom: .75rem;
  background: var(--accent);
  color: #fff;
  font-weight: 800;
  font-size: .9rem;
}

.service-feature-card h2,
.service-content-card h2 {
  margin-top: 0;
  font-size: clamp(1.35rem, 2vw, 1.7rem);
}

.service-feature-card p,
.service-content-card p {
  font-size: 1.02rem;
  line-height: 1.72;
}

.service-section-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.service-content-card {
  min-height: 100%;
}

.service-faq-section {
  padding: clamp(1.1rem, 2.6vw, 1.5rem);
}

.service-faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
}

.service-faq-card {
  padding: 1rem;
  border-radius: 18px;
  background: rgba(248, 244, 238, .82);
  border: 1px solid rgba(90,120,110,.12);
}

.service-faq-card h3 {
  margin: 0 0 .4rem;
  font-size: 1.02rem;
}

.service-faq-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.62;
}

.service-bottom-cta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.25rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  background:
    radial-gradient(circle at top right, rgba(219, 184, 109, .18), transparent 30%),
    linear-gradient(135deg, rgba(111, 83, 119, .12), rgba(255,255,255,.82));
}

.service-bottom-cta h2 {
  margin: 0 0 .35rem;
}

.service-bottom-cta p:last-child {
  margin-bottom: 0;
}


.service-hero-card-single {
  grid-template-columns: 1fr;
}

.service-hero-card-single .service-hero-copy {
  max-width: 920px;
}

@media (max-width: 900px) {
  .service-hero-card,
  .service-feature-grid,
  .service-section-grid,
  .service-faq-grid {
    grid-template-columns: 1fr;
  }
  .service-hero-aside {
    align-content: start;
  }
  .service-bottom-cta {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Standard hero cards for remaining public pages v3.1.8.43 */
.page-hero:not(.service-page-hero) > .container {
  max-width: 1180px;
}

.page-hero-card {
  padding: clamp(1.2rem, 3vw, 1.85rem);
  border-radius: 30px;
  border: 1px solid rgba(111, 83, 119, .18);
  background:
    radial-gradient(circle at top right, rgba(219, 184, 109, .18), transparent 32%),
    linear-gradient(135deg, rgba(255,255,255,.88), rgba(248,241,248,.72));
  box-shadow: 0 22px 60px rgba(58, 43, 64, .11);
}

.page-hero:not(.service-page-hero) h1 {
  max-width: 920px;
}

.page-hero:not(.service-page-hero) .lead {
  max-width: 880px;
}

.page-hero:not(.service-page-hero) .breadcrumbs {
  margin-bottom: .9rem;
}

.healing-videos-hero .video-intro-grid {
  padding: clamp(1.2rem, 3vw, 1.85rem);
  border-radius: 30px;
  border: 1px solid rgba(111, 83, 119, .18);
  background:
    radial-gradient(circle at top right, rgba(219, 184, 109, .18), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.88), rgba(248,241,248,.72));
  box-shadow: 0 22px 60px rgba(58, 43, 64, .11);
}

.healing-videos-hero .video-help-card {
  background: rgba(255,255,255,.78);
  box-shadow: 0 18px 42px rgba(42, 59, 54, .08);
}

@media (max-width: 700px) {
  .page-hero-card,
  .healing-videos-hero .video-intro-grid {
    border-radius: 24px;
  }
}



/* Booking success hero centering fix v3.1.8.53 */
.booking-success-hero h1,
.booking-success-hero .lead,
.booking-success-hero > .container > p.mt-lg {
  margin-left: auto;
  margin-right: auto;
}

.booking-success-hero h1,
.booking-success-hero .lead {
  text-align: center;
}


/* Communications log */
#communications .table-wrap {
  overflow-x: auto;
}

#communications .table-wrap table {
  width: 100%;
  table-layout: fixed;
  font-size: 0.82rem;
}

#communications .table-wrap th,
#communications .table-wrap td {
  padding: 0.5rem 0.45rem;
  vertical-align: top;
  line-height: 1.3;
}

#communications .table-wrap th {
  white-space: nowrap;
}

#communications .table-wrap .muted {
  font-size: 0.76rem;
  line-height: 1.25;
}

.comms-col-when { width: 10.5rem; }
.comms-col-channel { width: 4.8rem; }
.comms-col-type { width: 9.5rem; }
.comms-col-recipient { width: 15rem; }
.comms-col-booking { width: 10.5rem; }
.comms-col-status { width: 11rem; }
.comms-col-summary { width: 3.25rem; text-align: center; }

.comms-pill {
  display: inline-block;
  padding: 0.16rem 0.42rem;
  border-radius: 999px;
  background: rgba(124, 58, 237, 0.08);
  color: var(--brand-dark);
  font-size: 0.72rem;
  line-height: 1.2;
}

.comms-pill-channel {
  letter-spacing: 0.02em;
}

.communications-summary-cell {
  min-width: 0;
}


.communications-summary-tooltip {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.communications-summary-icon {
  color: var(--brand);
  cursor: pointer;
  line-height: 1;
}

.communications-summary-bubble {
  position: absolute;
  right: 0;
  top: calc(100% + 0.4rem);
  z-index: 20;
  width: min(26rem, 60vw);
  padding: 0.7rem 0.8rem;
  border-radius: 0.75rem;
  background: #1f1630;
  color: #fff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.24);
  font-size: 0.8rem;
  line-height: 1.4;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
  pointer-events: none;
}

.communications-summary-bubble::before {
  content: "";
  position: absolute;
  top: -6px;
  right: 0.7rem;
  border-width: 0 6px 6px 6px;
  border-style: solid;
  border-color: transparent transparent #1f1630 transparent;
}

.communications-summary-tooltip:hover .communications-summary-bubble,
.communications-summary-tooltip:focus-within .communications-summary-bubble {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.communications-summary-tooltip:hover .communications-summary-icon,
.communications-summary-tooltip:focus-within .communications-summary-icon {
  color: var(--brand-dark);
}

@media (max-width: 1100px) {
  #communications .table-wrap table {
    font-size: 0.78rem;
  }

  #communications .table-wrap .muted,
  .comms-pill {
    font-size: 0.7rem;
  }

  .comms-col-when { width: 9.5rem; }
  .comms-col-type { width: 8.5rem; }
  .comms-col-recipient { width: 13rem; }
  .comms-col-status { width: 10rem; }
  .comms-col-summary { width: 3rem; }
}

@media (max-width: 900px) {
  #communications .table-wrap table {
    min-width: 920px;
    font-size: 0.76rem;
  }

  #communications .table-wrap th,
  #communications .table-wrap td {
    padding: 0.45rem 0.4rem;
  }

  .communications-summary-bubble {
    width: min(22rem, 72vw);
    right: auto;
    left: -8rem;
  }

  .communications-summary-bubble::before {
    right: auto;
    left: 8.2rem;
  }
}

/* --- merged datepicker styles --- */


.datepicker-shell {
  position: relative;
}

.datepicker-display {
  cursor: pointer;
  padding-right: 2.75rem;
  background-image: linear-gradient(transparent, transparent);
}

.datepicker-shell::after {
  content: "📅";
  position: absolute;
  right: 0.95rem;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  opacity: 0.7;
  font-size: 1rem;
}

.datepicker-popup {
  position: absolute;
  top: calc(100% + 0.45rem);
  left: 0;
  z-index: 50;
  width: min(19rem, calc(100vw - 2rem));
  border-radius: 18px;
  border: 1px solid rgba(110, 86, 66, 0.14);
  background: #fffaf6;
  box-shadow: 0 18px 50px rgba(80, 54, 30, 0.16);
  padding: 0.85rem;
}

.datepicker-popup[hidden] {
  display: none !important;
}

.datepicker-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.datepicker-month-label {
  font-weight: 700;
  color: #4d3a2d;
}

.datepicker-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  border: 1px solid rgba(110, 86, 66, 0.16);
  background: #ffffff;
  color: #6e5642;
  cursor: pointer;
}

.datepicker-nav:hover,
.datepicker-nav:focus-visible {
  background: #f6eee6;
  outline: none;
}

.datepicker-weekdays,
.datepicker-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.3rem;
}

.datepicker-weekdays {
  margin-bottom: 0.45rem;
}

.datepicker-weekdays span {
  text-align: center;
  font-size: 0.78rem;
  color: #8b7560;
  font-weight: 700;
}

.datepicker-day {
  appearance: none;
  border: 0;
  border-radius: 12px;
  min-height: 2.3rem;
  background: #ffffff;
  color: #4d3a2d;
  font: inherit;
  cursor: pointer;
}

.datepicker-day:hover,
.datepicker-day:focus-visible {
  background: #f2e4d5;
  outline: none;
}

.datepicker-day.is-muted {
  color: #b7a79a;
}

.datepicker-day.is-selected {
  background: #b07a4f;
  color: white;
  font-weight: 700;
}

.datepicker-day.is-today {
  box-shadow: inset 0 0 0 1px rgba(176, 122, 79, 0.45);
}

.datepicker-day:disabled,
.datepicker-day.is-disabled {
  cursor: not-allowed;
  color: #cfbeb0;
  background: #faf5f1;
}

.datepicker-footer {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.datepicker-link {
  appearance: none;
  border: 0;
  background: transparent;
  color: #8c5f3d;
  font: inherit;
  font-size: 0.9rem;
  cursor: pointer;
  padding: 0.2rem 0.1rem;
}

.datepicker-link:hover,
.datepicker-link:focus-visible {
  text-decoration: underline;
  outline: none;
}



.cookie-banner {
  position: fixed;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 70;
  display: flex;
  gap: 1rem;
  align-items: end;
  justify-content: space-between;
  padding: 1rem 1.1rem;
  border-radius: 18px;
  background: rgba(35, 25, 39, 0.96);
  color: #fff;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.25);
}

.cookie-banner[hidden] {
  display: none;
}

.cookie-banner p {
  margin: 0.2rem 0;
}

.cookie-banner__content {
  max-width: 760px;
}

.cookie-banner__actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.cookie-banner__link {
  color: #fff;
  text-decoration: underline;
  font-weight: 600;
}

@media (max-width: 720px) {
  .cookie-banner {
    flex-direction: column;
    align-items: stretch;
    bottom: 88px;
  }

  .cookie-banner__actions {
    justify-content: stretch;
  }

  .cookie-banner__actions .button,
  .cookie-banner__actions .button-soft,
  .cookie-banner__link {
    width: 100%;
    text-align: center;
  }
}


/* Breadcrumb bar above standard hero cards v3.1.8.88 */
.page-breadcrumb-bar {
  padding: 32px 0 0;
}

.page-breadcrumb-bar .breadcrumbs {
  margin-bottom: 0;
}

.page-breadcrumb-bar + .page-hero {
  padding-top: 14px;
}

@media (max-width: 720px) {
  .page-breadcrumb-bar {
    padding-top: 30px;
  }

  .page-breadcrumb-bar + .page-hero {
    padding-top: 10px;
  }
}
