:root {
  --ink: #101421;
  --muted: #626b7c;
  --paper: #fbfcff;
  --line: rgba(16, 20, 33, .12);
  --violet: #5f1df1;
  --cyan: #1ccfe2;
  --gold: #f2b233;
  --red: #e93645;
  --deep: #17122a;
  --shadow: 0 22px 70px rgba(27, 22, 54, .16);
}

* { box-sizing: border-box; min-width: 0; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img, video { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; }
input, select, textarea { max-width: 100%; }
p, h1, h2, h3, h4, a, span { overflow-wrap: anywhere; }

.numeric-frame {
  position: fixed;
  inset: 0;
  z-index: 19;
  pointer-events: none;
}
.top-codes {
  position: absolute;
  inset: 0 0 auto;
  height: 30px;
  overflow: hidden;
  border-bottom: 1px solid rgba(28, 207, 226, .22);
  background: linear-gradient(90deg, rgba(12, 5, 30, .78), rgba(102, 20, 230, .5), rgba(12, 5, 30, .78));
  color: rgba(255,255,255,.68);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .78rem;
  font-weight: 800;
  line-height: 30px;
  text-shadow: 0 0 10px rgba(28,207,226,.7);
}
.codes-track {
  display: inline-flex;
  gap: 28px;
  min-width: max-content;
  padding-inline: 18px;
  animation: codesMarquee 30s linear infinite;
}
.codes-track span { white-space: nowrap; }
@keyframes codesMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.site-header {
  position: fixed;
  z-index: 20;
  inset: 30px 0 auto;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 14px clamp(16px, 4vw, 54px);
  color: white;
  background: linear-gradient(180deg, rgba(8, 8, 18, .72), rgba(8, 8, 18, .16));
  backdrop-filter: blur(12px);
}
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 900; letter-spacing: 0; }
.brand img { width: 42px; height: 42px; object-fit: contain; }
.site-header nav { margin-left: auto; display: flex; gap: 18px; font-size: .93rem; }
.site-header nav a { opacity: .9; }
.site-header nav a:hover { opacity: 1; color: var(--cyan); }
.header-cta {
  border: 1px solid rgba(255,255,255,.35);
  padding: 10px 14px;
  border-radius: 8px;
  font-weight: 800;
}
.language-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px;
  padding: 4px;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(12px);
}
.language-toggle a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 30px;
  border-radius: 999px;
  color: white;
  font-size: .78rem;
  font-weight: 950;
}
.language-toggle a:first-child {
  background: linear-gradient(135deg, var(--cyan), var(--gold));
  color: #07101b;
}
.language-toggle a:hover {
  background: rgba(255,255,255,.18);
}

.hero {
  min-height: 96vh;
  position: relative;
  display: grid;
  align-items: end;
  overflow: hidden;
  color: white;
  padding: 120px clamp(18px, 5vw, 74px) 46px;
}
.hero-video, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-video { object-fit: cover; }
.hero-shade {
  background:
    radial-gradient(circle at 74% 34%, rgba(28,207,226,.26), transparent 28%),
    linear-gradient(90deg, rgba(9, 6, 22, .92), rgba(22, 11, 58, .62) 48%, rgba(9, 6, 22, .55)),
    linear-gradient(0deg, rgba(9, 6, 22, .92), transparent 52%);
}
.hero-content { position: relative; max-width: 960px; }
.hero-logo { width: min(190px, 42vw); margin-bottom: 24px; filter: drop-shadow(0 18px 36px rgba(0,0,0,.42)); }
.eyebrow, .section-kicker {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 900;
  color: var(--cyan);
  font-size: .78rem;
}
h1, h2, h3, p { margin-top: 0; }
h1 {
  font-size: clamp(2.4rem, 7vw, 6.5rem);
  line-height: .92;
  max-width: 1050px;
  margin-bottom: 22px;
  letter-spacing: 0;
}
.hero-copy { max-width: 760px; color: rgba(255,255,255,.88); font-size: clamp(1.05rem, 2vw, 1.35rem); line-height: 1.55; }
.seo-phrases {
  max-width: 780px;
  color: rgba(255,255,255,.78);
  font-weight: 900;
  line-height: 1.5;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0; }
.button {
  border: 0;
  border-radius: 8px;
  padding: 13px 18px;
  font-weight: 900;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
}
.button.primary { background: linear-gradient(135deg, var(--cyan), var(--gold)); color: #07101b; }
.button.ghost { border: 1px solid rgba(255,255,255,.36); color: white; background: rgba(255,255,255,.08); }
.button.outline { border: 1px solid var(--line); color: var(--ink); background: white; }
.button.danger { background: #ffe4e8; color: #9b1021; }
.button.wide { width: 100%; }
.hero-stats { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-stats span {
  width: min(210px, 100%);
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.1);
  border-radius: 8px;
  padding: 14px;
  color: rgba(255,255,255,.78);
}
.hero-stats strong { display: block; color: white; font-size: 1.4rem; }

.intro-band {
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(280px, 1fr);
  gap: clamp(24px, 5vw, 72px);
  padding: clamp(44px, 7vw, 90px) clamp(18px, 5vw, 74px);
  background: var(--deep);
  color: white;
}
.intro-band h2, .section-heading h2 { font-size: clamp(2rem, 4.5vw, 4rem); line-height: 1; letter-spacing: 0; }
.intro-band p:last-child { color: rgba(255,255,255,.78); line-height: 1.75; font-size: 1.08rem; }

.section, .media-strip, .admin-section { padding: clamp(48px, 7vw, 96px) clamp(18px, 5vw, 74px); }
.section-heading { max-width: 930px; margin-bottom: 32px; }
.section-heading.compact { max-width: 720px; }
.section-heading p { color: var(--muted); line-height: 1.6; }

.benefit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.benefit-grid article, .recommendation-grid article, .appointment-panel, .calendar-wrap, .location-card, .review-card, .video-card, .practitioner-card, .product-card, .admin-shell {
  border: 1px solid var(--line);
  background: white;
  border-radius: 8px;
  box-shadow: 0 12px 35px rgba(17, 24, 39, .06);
}
.benefit-grid article { padding: 24px; min-height: 280px; }
.benefit-grid span { color: var(--red); font-weight: 900; }
.benefit-grid h3 { font-size: 1.35rem; margin: 18px 0 12px; }
.benefit-grid p { color: var(--muted); line-height: 1.65; }

.recommendations-section { background: #f7fbff; }
.recommendation-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.recommendation-grid article {
  padding: 24px;
  border-top: 5px solid var(--cyan);
}
.recommendation-grid article:nth-child(n+3) { border-top-color: var(--gold); }
.recommendation-grid span {
  display: inline-flex;
  border-radius: 999px;
  padding: 6px 10px;
  margin-bottom: 12px;
  color: white;
  background: var(--deep);
  font-weight: 900;
  text-transform: uppercase;
  font-size: .78rem;
}
.recommendation-grid p { color: var(--muted); line-height: 1.7; }

.certifications-section {
  background: #f7f9fc;
}
.certification-intro {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) 320px;
  gap: clamp(20px, 4vw, 46px);
  align-items: center;
  margin-bottom: 26px;
}
.certification-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.association-badge {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 20px;
  box-shadow: 0 12px 35px rgba(17, 24, 39, .06);
  text-align: center;
}
.association-badge img {
  width: min(210px, 70%);
  margin: 0 auto 12px;
  filter: drop-shadow(0 14px 24px rgba(17,24,39,.16));
}
.association-badge p {
  margin: 0;
  color: var(--muted);
  font-weight: 800;
  line-height: 1.45;
}
.certification-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.certification-grid figure {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  overflow: hidden;
  box-shadow: 0 12px 35px rgba(17, 24, 39, .06);
}
.certification-grid img {
  width: 100%;
  height: 280px;
  object-fit: contain;
  padding: 12px;
  background: #fff;
}
.certification-grid figcaption {
  padding: 12px 16px;
  border-top: 1px solid var(--line);
  color: var(--ink);
  font-weight: 900;
}

.media-strip { background: #eef9fb; }
.gallery {
  display: grid;
  grid-template-columns: 1.15fr .85fr .85fr;
  grid-auto-rows: 250px;
  gap: 14px;
}
.gallery figure { margin: 0; position: relative; overflow: hidden; border-radius: 8px; background: #d9e6ef; }
.gallery figure:first-child { grid-row: span 2; }
.gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.gallery figure:hover img { transform: scale(1.04); }
.gallery figcaption {
  position: absolute; inset: auto 12px 12px;
  color: white; font-weight: 900;
  text-shadow: 0 2px 12px rgba(0,0,0,.8);
}

.presentation-carousel-section {
  padding: clamp(54px, 8vw, 104px) clamp(18px, 5vw, 74px);
  color: white;
  background:
    radial-gradient(circle at 18% 10%, rgba(242,178,51,.22), transparent 30%),
    radial-gradient(circle at 80% 16%, rgba(28,207,226,.18), transparent 26%),
    linear-gradient(135deg, #080611, #211044 55%, #070915);
  overflow: hidden;
}
.presentation-carousel-section .section-heading p {
  color: rgba(255,255,255,.7);
}
.presentation-carousel {
  position: relative;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 clamp(0px, 5vw, 58px) 48px;
}
.presentation-stage {
  position: relative;
  min-height: clamp(420px, 74vw, 820px);
  perspective: 1400px;
}
.presentation-slide {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
  gap: 18px;
  align-items: stretch;
  opacity: 0;
  transform: translateX(7%) scale(.94) rotateY(-7deg);
  transition: opacity .55s ease, transform .65s ease;
  pointer-events: none;
}
.presentation-slide.active {
  opacity: 1;
  transform: translateX(0) scale(1) rotateY(0);
  pointer-events: auto;
}
.presentation-slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 8px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 34px 110px rgba(0,0,0,.46);
}
.presentation-caption {
  position: static;
  align-self: center;
  display: grid;
  gap: 10px;
  min-height: 220px;
  max-width: none;
  padding: 22px;
  border-radius: 8px;
  background: rgba(9,7,18,.78);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(12px);
}
.presentation-caption span {
  color: var(--cyan);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .78rem;
}
.presentation-caption h3 { margin: 0; font-size: clamp(1.2rem, 2.2vw, 2rem); line-height: 1.05; }
.presentation-caption p { margin: 0; color: rgba(255,255,255,.78); font-weight: 800; }
.carousel-control {
  position: absolute;
  z-index: 3;
  top: 45%;
  width: 48px;
  height: 62px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 8px;
  background: rgba(255,255,255,.12);
  color: white;
  font-size: 2.6rem;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(10px);
}
.carousel-control.prev { left: 0; }
.carousel-control.next { right: 0; }
.presentation-dots {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  justify-content: center;
  gap: 9px;
}
.presentation-dots button {
  width: 34px;
  height: 7px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.35);
  cursor: pointer;
}
.presentation-dots button.active {
  background: linear-gradient(90deg, var(--cyan), var(--gold));
  width: 54px;
}
.empty-carousel {
  min-height: 260px;
  display: grid;
  place-items: center;
  border: 1px dashed rgba(255,255,255,.24);
  border-radius: 8px;
  color: rgba(255,255,255,.76);
}

.scheduler { display: grid; grid-template-columns: 360px 1fr; gap: 18px; align-items: start; }
.appointment-panel, .calendar-wrap { padding: 22px; }
label { display: grid; gap: 7px; font-weight: 800; color: #30384a; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px 13px;
  background: white;
  color: var(--ink);
}
form { display: grid; gap: 14px; }
.price-tag { margin: 16px 0 0; color: var(--muted); }
.calendar-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.calendar-toolbar h3 { margin: 0; font-size: 1.45rem; }
.icon-button {
  width: 44px; height: 44px; border-radius: 8px; border: 1px solid var(--line);
  background: white; font-size: 1.7rem; cursor: pointer;
}
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.calendar-weekdays { margin: 20px 0 8px; color: var(--muted); font-weight: 900; text-align: center; }
.day {
  min-height: 104px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px;
  background: #fff;
}
.day.muted { opacity: .34; }
.day-number { font-weight: 900; margin-bottom: 6px; }
.slot-pill {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  border-radius: 7px;
  background: #e8fbfd;
  color: #063e48;
  font-size: .78rem;
  padding: 6px;
  margin-top: 5px;
  cursor: pointer;
}

.locations, .review-images, .video-testimonials, .practitioners {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.location-card { overflow: hidden; }
.map-sketch {
  min-height: 160px;
  position: relative;
  display: block;
  background: #eaf4f7;
  overflow: hidden;
}
.map-sketch img {
  width: 100%;
  height: 100%;
  min-height: 160px;
  object-fit: cover;
  transition: transform .35s ease;
}
.location-card:hover .map-sketch img {
  transform: scale(1.04);
}
.location-office {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  border-radius: 999px;
  padding: 8px 14px;
  color: white;
  background: linear-gradient(90deg, var(--purple), var(--cyan));
  box-shadow: 0 14px 34px rgba(30, 10, 80, .32);
  font-weight: 950;
  letter-spacing: 0;
  text-transform: uppercase;
}
.location-card .body, .practitioner-card { padding: 20px; }
.location-card p, .practitioner-card p { color: var(--muted); line-height: 1.6; }
.office-line {
  display: inline-flex;
  width: fit-content;
  border-radius: 7px;
  padding: 7px 10px;
  color: white !important;
  background: var(--purple);
  font-weight: 950;
  text-transform: uppercase;
}
.map-link { color: var(--violet); font-weight: 900; }

.testimonials-section { background: var(--deep); color: white; }
.testimonials-section .section-heading p { color: rgba(255,255,255,.7); }
.review-card {
  margin: 0;
  overflow: hidden;
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.14);
}
.review-card img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.review-card figcaption {
  padding: 12px 16px;
  color: rgba(255,255,255,.78);
  font-weight: 800;
}

.video-testimonials-section { background: #eef9fb; }
.video-testimonials { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.video-card { overflow: hidden; background: white; }
.video-card video {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: #090712;
}
.video-card div { padding: 18px; }
.video-card h3 { margin-bottom: 8px; }
.video-card p { color: var(--muted); margin-bottom: 0; }

.practitioner-card img { width: 100%; aspect-ratio: 1 / .78; object-fit: cover; border-radius: 8px; margin-bottom: 14px; background: #eef2f7; }

.shop-preview {
  background:
    linear-gradient(135deg, rgba(28,207,226,.12), rgba(255,194,64,.16)),
    #fff;
}
.page-hero {
  padding: 170px clamp(18px, 5vw, 74px) 70px;
  color: white;
  background:
    radial-gradient(circle at 78% 22%, rgba(28,207,226,.28), transparent 32%),
    linear-gradient(135deg, #090712, #2a1166 58%, #05050a);
}
.page-hero .section-heading p { color: rgba(255,255,255,.78); }
.page-hero h1 { font-size: clamp(2.2rem, 6vw, 5rem); line-height: .96; }
.product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.product-card { overflow: hidden; }
.product-card img {
  width: 100%;
  aspect-ratio: 1.2 / .82;
  object-fit: cover;
  background: #edf4f8;
}
.product-card div { padding: 18px; display: grid; gap: 10px; }
.product-card p { color: var(--muted); line-height: 1.6; margin: 0; }
.product-card strong { color: var(--violet); font-size: 1.45rem; }
.empty-products {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: var(--muted);
  font-weight: 800;
}
.privacy-content {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  gap: 16px;
}
.privacy-content article {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 22px;
  background: white;
}
.privacy-content p { color: var(--muted); line-height: 1.75; }
.privacy-note {
  border-radius: 8px;
  padding: 18px;
  background: #eef9fb;
  font-weight: 800;
}

.admin-section { background: #090712; padding-top: 26px; }
.admin-page { background: #090712; }
.admin-page-header {
  position: static;
  background: #090712;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.admin-standalone {
  min-height: calc(100vh - 78px);
}
.admin-shell { padding: clamp(20px, 4vw, 36px); }
.admin-heading {
  display: grid;
  grid-template-columns: 34px 1fr;
  column-gap: 12px;
  align-items: center;
  color: white;
}
.admin-heading img {
  width: 28px;
  height: 28px;
  grid-row: span 3;
}
.admin-heading h1,
.admin-heading h2 {
  font-size: clamp(1.15rem, 2.5vw, 1.7rem);
  line-height: 1.15;
  margin: 0 0 8px;
}
.admin-heading p:last-child { color: rgba(255,255,255,.68); }
.admin-login {
  max-width: 440px;
  border: 1px solid var(--line);
  padding: 18px;
  border-radius: 8px;
  background: white;
  margin-bottom: 18px;
}
.admin-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0; }
.tab {
  border: 1px solid var(--line);
  background: white;
  border-radius: 8px;
  padding: 10px 13px;
  cursor: pointer;
  font-weight: 900;
}
.tab.active { background: var(--deep); color: white; }
.admin-panel { display: none; }
.admin-panel.active { display: grid; gap: 16px; }
.admin-panels.locked { display: none; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-list { display: grid; gap: 8px; margin-top: 8px; }
.admin-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: white;
}
.admin-row-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.small-button { border: 0; border-radius: 7px; padding: 8px 10px; background: #f0f2f7; cursor: pointer; font-weight: 800; }
.small-button.danger { background: #ffe9e9; color: #9f1d1d; }
.protected-media {
  -webkit-user-drag: none;
  user-select: none;
  -webkit-touch-callout: none;
}
.backup-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.import-label {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  padding: 12px 18px;
  background: white;
  border: 1px solid var(--line);
  cursor: pointer;
}
.import-label input { display: none; }
#backupText { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.admin-status { color: var(--muted); font-weight: 800; }

.site-footer {
  padding: 28px clamp(18px, 5vw, 74px);
  background: #090712;
  color: white;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  overflow: hidden;
}
.site-footer img { width: 64px; }
.footer-links { display: flex; gap: 16px; font-weight: 900; color: var(--cyan); }
.footer-copy {
  width: 100%;
  order: 3;
  margin: 0;
  color: rgba(255,255,255,.68);
  font-weight: 800;
}
.footer-codes {
  width: 100%;
  order: 4;
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.12);
  overflow: hidden;
  color: rgba(255,255,255,.72);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .86rem;
  font-weight: 800;
  white-space: nowrap;
}
.footer-codes-track {
  display: inline-flex;
  gap: 24px;
  min-width: max-content;
  animation: footerCodesMarquee 28s linear infinite;
}
.footer-codes span {
  display: inline-flex;
}
@keyframes footerCodesMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.admin-lock-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
}
.admin-lock-link img {
  width: 22px;
  height: 22px;
}

@media (max-width: 1050px) {
  .benefit-grid, .recommendation-grid, .locations, .review-images, .video-testimonials, .practitioners, .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scheduler, .intro-band, .certification-intro { grid-template-columns: 1fr; }
  .presentation-slide { grid-template-columns: 1fr; align-content: start; }
  .presentation-caption { align-self: auto; min-height: auto; }
}
@media (max-width: 760px) {
  .top-codes { height: 26px; line-height: 26px; font-size: .68rem; }
  .site-header { position: absolute; flex-wrap: wrap; gap: 10px; }
  .site-header nav { order: 3; width: 100%; overflow-x: auto; margin-left: 0; padding-bottom: 4px; }
  .header-cta { margin-left: auto; }
  .language-toggle { margin-left: 0; }
  .hero { padding-top: 170px; min-height: 100vh; }
  .presentation-carousel { padding-inline: 0; }
  .presentation-stage { min-height: 560px; }
  .presentation-caption { margin-top: 12px; max-width: none; }
  .presentation-slide { align-content: start; }
  .presentation-slide img { height: auto; aspect-ratio: 2 / 3; }
  .carousel-control { top: 230px; width: 40px; height: 52px; font-size: 2rem; }
  .gallery, .benefit-grid, .recommendation-grid, .locations, .review-images, .video-testimonials, .practitioners, .product-grid, .form-grid, .certification-grid { grid-template-columns: 1fr; }
  .certification-grid img { height: 240px; }
  .gallery { grid-auto-rows: 280px; }
  .gallery figure:first-child { grid-row: auto; }
  .calendar-weekdays, .calendar-grid { gap: 5px; }
  .day { min-height: 86px; padding: 6px; }
  .slot-pill { font-size: .68rem; }
  .admin-row { grid-template-columns: 1fr; }
  .admin-row-actions { justify-content: flex-start; }
  .site-footer { flex-direction: column; align-items: flex-start; }
}

/* Administración de citas y expedientes */
.appointment-toolbar{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto auto;gap:12px;align-items:end;margin:18px 0}.appointment-toolbar label{display:grid;gap:7px;font-size:.82rem;font-weight:900;color:#52635d}.appointment-toolbar input,.appointment-toolbar select{width:100%;min-height:46px;border:1px solid #cbd7d0;border-radius:10px;padding:10px 12px;background:#fff;font:inherit;color:#173a33}.appointment-toolbar .button{min-height:46px;white-space:nowrap}.admin-hint{margin:0 0 18px;color:#66756f}.appointment-list{gap:18px}.appointment-card{padding:0;overflow:hidden;border-radius:18px;box-shadow:0 9px 28px rgba(20,57,49,.06)}.appointment-card>header{padding:18px 20px;background:#f6f9f7;border-bottom:1px solid rgba(34,76,68,.11);align-items:flex-start}.appointment-card>header h4{margin:5px 0 2px;font-size:1.25rem}.appointment-card>header p{margin:0;color:#697870}.appointment-date{font-weight:900;color:#173e36}.appointment-badges{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.status-badge,.payment-badge,.appointment-code{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:900}.status-badge{background:#dff2e5;color:#17653c}.status-cancelled .status-badge,.status-no_show .status-badge{background:#fde6e4;color:#9f2c2c}.status-completed .status-badge{background:#e4ebf8;color:#294f87}.payment-badge{background:#fff1cf;color:#78500d}.appointment-code{background:#e8eeea;color:#334b43}.appointment-quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px 20px}.appointment-quick span{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}.appointment-quick small{color:#718079;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.patient-sheet,.record-panel{margin:0!important;border-top:1px solid rgba(34,76,68,.11);padding:0 20px}.patient-sheet summary,.record-panel summary{padding:16px 0;list-style:none}.patient-sheet summary::-webkit-details-marker,.record-panel summary::-webkit-details-marker{display:none}.patient-sheet summary:after,.record-panel summary:after{content:'+';float:right;font-size:1.25rem}.patient-sheet[open] summary:after,.record-panel[open] summary:after{content:'−'}.sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-bottom:12px}.sheet-grid section{background:#f6f8f6;border-radius:12px;padding:14px}.sheet-grid .wide{grid-column:1/-1}.sheet-grid h5{margin:0 0 8px}.sheet-grid p{margin:5px 0;white-space:pre-wrap}.file-links{padding-bottom:17px}.file-links a{font-weight:800;color:#174f43;border:1px solid #d6e2db}.appointment-management{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:16px 20px;border-top:1px solid rgba(34,76,68,.11)}.appointment-management label{display:grid;gap:5px;font-size:.78rem;font-weight:900}.appointment-management select{min-height:42px;border:1px solid #cbd7d0;border-radius:9px;padding:8px 34px 8px 10px;background:#fff}.record-panel{background:#fbfcfb}.record-panel form{padding-bottom:20px}.record-panel textarea,.record-panel input{width:100%;border:1px solid #cbd7d0;border-radius:10px;padding:11px;background:#fff;font:inherit}.record-panel .button{margin-top:14px}.record-saved{display:inline-block;margin-left:12px;color:#39745b;font-weight:800}.empty-appointments{display:grid;gap:5px;text-align:center;padding:45px 20px;border:1px dashed #bdccc3;border-radius:16px;color:#66756f}.empty-appointments strong{color:#173e36;font-size:1.08rem}.history-modal{width:min(760px,calc(100% - 28px));max-height:88vh;border:0;border-radius:20px;padding:28px;box-shadow:0 25px 80px rgba(0,0,0,.28);color:#173a33}.history-modal::backdrop{background:rgba(9,26,22,.62);backdrop-filter:blur(3px)}.history-close{position:absolute;right:15px;top:12px;border:0;background:#edf2ef;width:38px;height:38px;border-radius:50%;font-size:1.55rem;cursor:pointer}.history-content h2{margin:2px 0}.history-timeline{display:grid;gap:14px;margin-top:22px}.history-timeline article{border-left:4px solid #bf9145;background:#f5f8f6;border-radius:0 13px 13px 0;padding:16px}.history-timeline article small{display:block;color:#718079;margin-top:4px}.history-timeline article h4{margin:14px 0 3px}.history-timeline article p{white-space:pre-wrap;margin:0}
@media (max-width:1100px){.appointment-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-toolbar .button{width:100%}}
@media (max-width:680px){.appointment-toolbar,.appointment-quick,.sheet-grid{grid-template-columns:1fr}.appointment-toolbar .button{justify-content:center}.appointment-card>header{display:grid}.appointment-badges{justify-content:flex-start}.sheet-grid .wide{grid-column:auto}.appointment-management{align-items:stretch}.appointment-management>*{width:100%}.record-saved{display:block;margin:9px 0 0}.history-modal{padding:24px 18px}.appointment-card>header,.appointment-quick,.appointment-management{padding-left:15px;padding-right:15px}.patient-sheet,.record-panel{padding-left:15px;padding-right:15px}}

/* Aviso de privacidad integral */
.privacy-page{background:#f4f7f5;color:#173a33}.privacy-header{background:rgba(255,255,255,.96);border-bottom:1px solid rgba(23,58,51,.1)}.privacy-cover{padding:clamp(150px,15vw,205px) clamp(20px,6vw,90px) clamp(60px,8vw,105px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:clamp(35px,7vw,95px);align-items:center;background:radial-gradient(circle at 85% 15%,rgba(45,201,204,.14),transparent 28%),linear-gradient(135deg,#edf5f1,#fff 62%)}.privacy-cover h1{font-size:clamp(3rem,7vw,6.5rem);line-height:.94;max-width:900px;margin:.12em 0 .22em;letter-spacing:-.045em}.privacy-lead{font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.65;max-width:750px;color:#52665f}.privacy-actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 18px}.privacy-version{font-size:.82rem;font-weight:800;color:#72827c}.privacy-responsible{background:#173e36;color:#fff;border-radius:28px;padding:clamp(26px,4vw,44px);box-shadow:0 24px 60px rgba(17,56,48,.2)}.privacy-responsible>span{color:#5edce0;text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:900}.privacy-responsible h2{font-size:clamp(1.5rem,2.7vw,2.35rem);margin:10px 0}.privacy-responsible>p{color:rgba(255,255,255,.72)}.privacy-responsible dl{display:grid;gap:18px;margin:28px 0 0}.privacy-responsible dl div{border-top:1px solid rgba(255,255,255,.17);padding-top:15px}.privacy-responsible dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#d9b56f;font-weight:900}.privacy-responsible dd{margin:6px 0 0;line-height:1.55}.privacy-responsible a{color:#fff;text-decoration:underline;text-underline-offset:3px}.privacy-summary{background:#fff}.privacy-summary .section-heading{max-width:830px}.privacy-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:35px}.privacy-summary-grid article{border:1px solid rgba(23,58,51,.12);border-radius:18px;padding:24px;background:#fbfdfc}.privacy-summary-grid article>span{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#173e36;color:#fff;font-size:.78rem;font-weight:900}.privacy-summary-grid h3{margin:18px 0 9px}.privacy-summary-grid p{margin:0;color:#64746e;line-height:1.65}.privacy-arco{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);gap:clamp(35px,7vw,90px);align-items:center}.privacy-arco h2,.privacy-document h2,.privacy-contact h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;margin:.25em 0}.privacy-arco>div>p{font-size:1.05rem;line-height:1.72;color:#596c65}.arco-request{background:#fff;border-radius:22px;padding:clamp(24px,4vw,40px);box-shadow:0 18px 45px rgba(23,58,51,.08)}.arco-request h3{margin-top:0}.arco-request ol{padding-left:22px;display:grid;gap:12px;color:#586a63}.text-link{display:inline-block;margin-top:18px;font-weight:900;color:#17675b}.privacy-document{background:#e9f0ec}.privacy-document-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:28px}.privacy-document-heading>div{max-width:780px}.privacy-document-heading p{color:#5f7069}.pdf-viewer-shell{height:min(78vh,900px);min-height:620px;background:#22332e;border:10px solid #fff;border-radius:22px;overflow:hidden;box-shadow:0 20px 55px rgba(23,58,51,.16)}.pdf-viewer-shell object{width:100%;height:100%;display:block}.pdf-fallback{height:100%;display:grid;place-content:center;text-align:center;padding:30px;background:#fff}.privacy-contact{display:flex;justify-content:space-between;gap:35px;align-items:center;background:#173e36;color:#fff}.privacy-contact>div{max-width:780px}.privacy-contact p:not(.section-kicker){color:rgba(255,255,255,.72)}.privacy-contact .button{background:#fff;color:#173e36;white-space:nowrap}.privacy-page .site-footer{border-top:0}
@media (max-width:1000px){.privacy-cover,.privacy-arco{grid-template-columns:1fr}.privacy-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.privacy-responsible{max-width:720px}.privacy-document-heading{align-items:flex-start;flex-direction:column}}
@media (max-width:680px){.privacy-cover{padding-top:175px}.privacy-cover h1{font-size:clamp(2.75rem,15vw,4.6rem)}.privacy-summary-grid{grid-template-columns:1fr}.privacy-actions .button{width:100%;justify-content:center}.privacy-document{padding-left:12px;padding-right:12px}.pdf-viewer-shell{height:72vh;min-height:480px;border-width:5px;border-radius:14px}.privacy-contact{align-items:flex-start;flex-direction:column}.privacy-contact .button{width:100%;justify-content:center}}
.privacy-pdf-only{min-height:100vh}.privacy-pdf-main{width:min(1400px,calc(100% - 40px));margin:0 auto;padding:clamp(145px,14vw,185px) 0 45px}.privacy-pdf-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:24px}.privacy-pdf-heading h1{font-size:clamp(2.3rem,5vw,4.7rem);line-height:1;margin:5px 0 0}.privacy-pdf-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.privacy-pdf-viewer{height:calc(100vh - 255px);min-height:650px}
@media (max-width:760px){.privacy-pdf-main{width:min(100% - 24px,1400px);padding-top:175px}.privacy-pdf-heading{align-items:flex-start;flex-direction:column}.privacy-pdf-actions{width:100%;justify-content:stretch}.privacy-pdf-actions .button{width:100%;justify-content:center}.privacy-pdf-viewer{height:72vh;min-height:500px}}
.schedule-form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.saved-schedules-title{margin:34px 0 4px;padding-top:28px;border-top:1px solid var(--line)}#scheduleList{display:grid;gap:12px;margin-top:16px}.saved-schedule{display:grid;grid-template-columns:145px minmax(0,1fr) auto;gap:18px;align-items:center;background:#fff;border:1px solid rgba(34,76,68,.16);border-radius:15px;padding:15px 16px;box-shadow:0 6px 18px rgba(23,58,51,.04)}.saved-schedule-date{display:grid;gap:4px;border-right:1px solid #dce5df;padding-right:15px}.saved-schedule-date strong{font-size:1rem;color:#173e36}.saved-schedule-date span{font-weight:900;color:#b37f2e}.saved-schedule-info h4{margin:0 0 4px}.saved-schedule-info p{margin:0;color:#596a63}.saved-schedule-info small{display:block;margin-top:5px;color:#798780}.saved-schedule-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.saved-schedule-actions .button{min-height:42px;padding:9px 14px}
@media (max-width:760px){.saved-schedule{grid-template-columns:1fr}.saved-schedule-date{border-right:0;border-bottom:1px solid #dce5df;padding:0 0 11px}.saved-schedule-actions{justify-content:stretch}.saved-schedule-actions .button{flex:1;justify-content:center}}
.legacy-schedule{border-color:rgba(193,149,72,.45);background:#fffdf8}.schedule-title-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.schedule-title-line h4{margin:0}.schedule-source{display:inline-flex;border-radius:999px;padding:4px 8px;background:#e8efeb;color:#52655e;font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.legacy-schedule .schedule-source{background:#f8e8c9;color:#755016}
.confirmation-page{min-height:100vh;background:radial-gradient(circle at 15% 5%,rgba(47,202,205,.15),transparent 27%),#f1f5f2;color:#173a33}.confirmation-main{width:min(1050px,calc(100% - 30px));margin:0 auto;padding:55px 0 80px}.confirmation-card{background:#fff;border:1px solid rgba(23,58,51,.1);border-radius:30px;padding:clamp(28px,6vw,68px);box-shadow:0 24px 70px rgba(23,58,51,.1);text-align:center}.confirmation-card>h1{font-size:clamp(2.2rem,5vw,4.5rem);line-height:1.02;margin:8px auto 17px;max-width:800px}.confirmation-lead{font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.65;max-width:790px;margin:0 auto;color:#596b64}.confirmation-icon{width:72px;height:72px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;font-size:2.2rem;font-weight:900}.confirmation-icon.success{background:#dff5e6;color:#176a3e}.confirmation-icon.warning{background:#fde7e3;color:#a52e2e}.confirmation-icon.pending{background:#fff0cc;color:#8a610e}.confirmation-folio{display:inline-grid;gap:5px;margin:24px auto;background:#eff4f1;border-radius:13px;padding:13px 24px}.confirmation-folio span{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:#6d7d76}.confirmation-folio strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.3rem}.commitment-note{max-width:820px;margin:4px auto 30px;padding:16px 18px;border-left:4px solid #c39548;background:#fffaf0;border-radius:0 12px 12px 0;text-align:left;font-weight:700;line-height:1.6}.session-recommendations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;text-align:left;margin-top:28px}.session-recommendations article{background:#f5f8f6;border-radius:18px;padding:24px}.session-recommendations article>span{font-size:.72rem;color:#b07b29;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.session-recommendations h2{margin:7px 0 14px;font-size:1.35rem}.session-recommendations ul{display:grid;gap:10px;padding-left:20px;margin:0;color:#53665f;line-height:1.5}.recommendation-note{font-size:.8rem;color:#75837e;margin:22px auto 0;max-width:800px}.confirmation-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:30px}.confirmation-loading{padding:70px 0}.confirmation-loading h1{font-size:2rem}.confirmation-spinner{display:block;width:48px;height:48px;margin:0 auto 20px;border:4px solid #d9e4de;border-top-color:#173e36;border-radius:50%;animation:confirmationSpin .8s linear infinite}@keyframes confirmationSpin{to{transform:rotate(360deg)}}
@media (max-width:680px){.confirmation-main{padding-top:25px}.confirmation-card{border-radius:20px;padding:28px 18px}.session-recommendations{grid-template-columns:1fr}.confirmation-actions .button{width:100%;justify-content:center}}
.ticket-limit-form{display:grid;grid-template-columns:1fr 1.4fr 1fr auto;gap:12px;align-items:end}.ticket-limit-form label{display:grid;gap:7px;font-size:.82rem;font-weight:900}.ticket-limit-form input{min-height:45px;border:1px solid #cbd7d0;border-radius:10px;padding:10px 12px;font:inherit;background:#fff;color:#173a33}.ticket-limit-form .button{min-height:45px}.ticket-limit-list{display:grid;gap:9px;margin:18px 0 24px}.ticket-limit-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:#f5f8f6;border:1px solid #dce8df;border-radius:11px;padding:10px 13px}.ticket-limit-row span{color:#52675c}.ticket-limit-row button{margin-left:auto}.payment-diagnostic{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}#paymentDiagnosticResult{margin:10px 0 0;font-weight:800}.diagnostic-ok{color:#17653c}.diagnostic-error{color:#9e2d2d}.ticket-admin-number{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#173e36;color:#fff;font-size:.72rem;font-weight:900}.patient-ticket{max-width:670px;margin:27px auto 8px;background:#fff;border:2px solid #193e36;border-radius:21px;overflow:hidden;text-align:left;box-shadow:0 14px 38px rgba(22,65,53,.13)}.patient-ticket-brand{display:flex;align-items:center;gap:13px;padding:18px 22px;background:#173e36;color:#fff;font-size:1.18rem;font-weight:900}.patient-ticket-brand img{width:53px;height:53px;object-fit:contain;background:#fff;border-radius:50%;padding:3px}.patient-ticket-brand small{display:block;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:#c8e2d9}.patient-ticket-number{text-align:center;font-size:clamp(4rem,13vw,6.5rem);font-weight:950;line-height:1;padding:20px 0 8px;color:#173e36}.patient-ticket-number:before{content:'FICHA';display:block;font-size:.72rem;letter-spacing:.22em;font-weight:900;color:#aa7a2e}.patient-ticket-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 25px;padding:15px 25px 25px}.patient-ticket-details div{display:grid;gap:4px}.patient-ticket-details small{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:#6a7b72;font-weight:900}.patient-ticket-details strong{font-size:1rem;overflow-wrap:anywhere}.patient-ticket-footer{border-top:1px dashed #c5d5cb;padding:13px 22px;background:#f3f7f4;color:#557167;font-size:.78rem;font-weight:800;text-align:center}.ticket-print-button{border:0;background:none;color:#176a5e;font:inherit;font-weight:900;text-decoration:underline;cursor:pointer;padding:10px 15px;margin-bottom:12px}
@media(max-width:800px){.ticket-limit-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.ticket-limit-form,.patient-ticket-details{grid-template-columns:1fr}.ticket-limit-row button{margin-left:0;width:100%;justify-content:center}}
@media print{body.confirmation-page{background:#fff}.confirmation-page .booking-header,.confirmation-page .confirmation-icon,.confirmation-page .section-kicker,.confirmation-page .confirmation-card>h1,.confirmation-page .confirmation-lead,.confirmation-page .commitment-note,.confirmation-page .session-recommendations,.confirmation-page .recommendation-note,.confirmation-page .confirmation-actions,.confirmation-page .ticket-print-button{display:none!important}.confirmation-main{width:100%;padding:0}.confirmation-card{border:0;box-shadow:none;padding:0}.patient-ticket{margin:0;max-width:none;box-shadow:none;break-inside:avoid}}
.booking-files{border:1px solid rgba(34,76,68,.22);border-radius:14px;padding:14px;display:grid;gap:10px}.booking-files legend{font-weight:800;padding:0 6px}.responsibility-box{background:#f3f7f3;border-left:4px solid #b68b43;border-radius:10px;padding:14px;font-size:.88rem;max-height:210px;overflow:auto}.consent-check{display:flex!important;align-items:flex-start;gap:9px;font-size:.85rem}.consent-check input{width:auto!important;margin-top:4px}#signatureCanvas{display:block;width:100%;height:140px;background:#fff;border:2px dashed #9aaa9e;border-radius:10px;touch-action:none}.booking-trap{position:absolute!important;left:-9999px}.booking-status{min-height:24px;font-weight:700}.booking-status.error{color:#a42828}.booking-status.success{color:#17653c;background:#eaf8ef;padding:12px;border-radius:10px}.admin-metrics{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.admin-metrics span{background:#eef4ef;border-radius:12px;padding:10px 14px}.admin-metrics strong{font-size:1.35rem}.appointment-list{display:grid;gap:12px}.appointment-card{border:1px solid rgba(34,76,68,.18);border-radius:14px;padding:14px;background:#fff}.appointment-card header{display:flex;justify-content:space-between;gap:12px}.appointment-code{font-family:monospace;background:#e8eee9;padding:3px 7px;border-radius:6px}.appointment-card details{margin:10px 0}.appointment-card summary{cursor:pointer;font-weight:700}.file-links{display:flex;gap:8px;flex-wrap:wrap}.file-links a{background:#edf4ee;border-radius:8px;padding:7px 10px}#appointmentSettings textarea{min-height:160px}
.appointment-launch{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(35px,7vw,90px);align-items:center;background:linear-gradient(135deg,#f4f8f4,#fff 55%,#f7f0e4)}.appointment-launch-copy h2{max-width:700px;font-size:clamp(2.1rem,4vw,4rem);line-height:1.05;margin:.2em 0}.appointment-launch-copy>p{max-width:650px;font-size:1.08rem}.launch-benefits{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0}.launch-benefits span{background:#fff;border:1px solid rgba(21,64,54,.14);border-radius:999px;padding:9px 14px;font-weight:700;font-size:.86rem}.launch-button{display:inline-flex!important;gap:16px;align-items:center;padding:16px 22px!important}.appointment-launch-card{background:#173e36;color:#fff;border-radius:28px;padding:clamp(25px,4vw,45px);box-shadow:0 24px 60px rgba(14,52,44,.18)}.appointment-launch-card h3{margin:5px 0}.appointment-launch-card p{color:rgba(255,255,255,.75);margin:0}.appointment-launch-card hr{border:0;border-top:1px solid rgba(255,255,255,.18);margin:22px 0}.launch-number{color:#d9b56f;font-weight:900;font-size:.8rem;letter-spacing:.12em}
.booking-page{background:#f2f5f2;color:#173a33;min-height:100vh}.booking-header{height:78px;padding:0 clamp(20px,5vw,70px);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid rgba(20,57,49,.1)}.booking-header .brand img{width:48px;height:48px}.booking-close{font-weight:800;color:#173a33}.booking-main{width:min(1080px,calc(100% - 32px));margin:0 auto;padding:55px 0}.booking-intro{text-align:center;max-width:760px;margin:0 auto 35px}.booking-intro h1{font-size:clamp(2.4rem,6vw,4.6rem);line-height:1;margin:8px 0 15px}.booking-intro>p{font-size:1.05rem}.booking-trust{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;margin-top:20px;font-size:.84rem;font-weight:700}.booking-workspace{background:#fff;border:1px solid rgba(20,57,49,.1);border-radius:28px;box-shadow:0 20px 65px rgba(23,62,54,.09);overflow:hidden}.booking-steps{display:grid;grid-template-columns:repeat(3,1fr);background:#f8faf8;border-bottom:1px solid rgba(20,57,49,.1)}.booking-step{border:0;background:transparent;padding:22px;display:flex;align-items:center;justify-content:center;gap:10px;color:#89958f}.booking-step span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e2e8e4;font-weight:900}.booking-step.active,.booking-step.complete{color:#173e36}.booking-step.active span,.booking-step.complete span{background:#173e36;color:#fff}.booking-step:disabled{cursor:default}.booking-form-step{display:none;padding:clamp(25px,5vw,58px)}.booking-form-step.active{display:block}.step-heading{display:flex;gap:18px;align-items:flex-start;margin-bottom:30px}.step-heading>span{color:#c19548;font-size:.8rem;font-weight:900;letter-spacing:.15em;padding-top:7px}.step-heading h2{font-size:clamp(1.6rem,3vw,2.5rem);margin:0}.step-heading p{margin:5px 0;color:#6e7d77}.booking-grid{display:grid;gap:18px}.booking-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-grid .wide{grid-column:1/-1}.booking-form-step label{display:grid;gap:8px;font-weight:800;font-size:.9rem}.booking-form-step input,.booking-form-step select,.booking-form-step textarea{width:100%;border:1px solid #cbd5cf;border-radius:11px;padding:13px 14px;background:#fff;color:#173a33;font:inherit}.booking-form-step input:focus,.booking-form-step select:focus,.booking-form-step textarea:focus{outline:3px solid rgba(193,149,72,.2);border-color:#b4873f}.booking-price{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#eef4ef;border-radius:16px;padding:20px;margin-top:24px}.booking-price div{display:grid;gap:3px}.booking-price strong{font-size:1.45rem}.booking-price span{font-size:.83rem;color:#66736e}.step-actions{display:flex;justify-content:space-between;gap:12px;margin-top:30px}.step-actions.end{justify-content:flex-end}.upload-panel{background:#f6f8f6;border-radius:18px;padding:22px;margin:25px 0}.upload-panel h3{margin:0}.upload-panel>p{color:#6e7d77;margin:5px 0 18px}.file-field{border:1px dashed #aab8b0;border-radius:12px;padding:14px;background:#fff}.file-field small{color:#a1682e}.responsibility-box{margin-top:25px}.signature-label{margin-top:22px}.signature-clear{border:0;background:transparent;color:#9d652d;font-weight:800;padding:8px 0;cursor:pointer}.payment-options{display:grid;gap:12px}.payment-options label{display:flex!important;align-items:flex-start;gap:14px;border:1px solid #d4ddd7;border-radius:15px;padding:18px;cursor:pointer}.payment-options label:has(input:checked){border-color:#b98a3d;background:#fffaf1;box-shadow:0 0 0 2px rgba(185,138,61,.12)}.payment-options input{width:auto;margin-top:4px}.payment-options span{display:grid;gap:4px}.payment-options small{font-weight:400;color:#697770}.booking-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#dce4df;border:1px solid #dce4df;border-radius:16px;overflow:hidden;margin-bottom:25px}.booking-summary div{display:grid;gap:5px;background:#f5f8f5;padding:18px}.booking-summary small,.booking-summary span{color:#6b7973}.booking-summary strong{font-size:1rem}.receipt-field{margin-top:18px}.booking-status.result{display:grid;gap:6px;margin-top:25px}.booking-status.result strong{font-size:1.35rem}.booking-help{text-align:center;color:#6b7973;margin:25px}.booking-help a{font-weight:800}
@media(max-width:760px){.appointment-launch{grid-template-columns:1fr}.booking-main{padding:30px 0}.booking-step{padding:15px 8px}.booking-step b{font-size:.76rem}.booking-grid.two,.booking-summary{grid-template-columns:1fr}.booking-price{align-items:flex-start;flex-direction:column}.booking-form-step{padding:24px 18px}.step-actions .button{flex:1;padding-inline:10px}.booking-header .brand span{display:none}}
@media (max-width: 1180px) {
  .site-header { gap: 12px; padding-inline: 22px; }
  .site-header nav { gap: 12px; font-size: .84rem; }
  .section { padding-inline: clamp(18px, 4vw, 42px); }
  .admin-shell { width: min(100%, calc(100vw - 28px)); }
}
@media (max-width: 920px) {
  .site-header { flex-wrap: wrap; }
  .site-header nav { order: 4; width: 100%; margin-left: 0; overflow-x: auto; white-space: nowrap; scrollbar-width: thin; padding: 5px 0; }
  .site-header nav a { flex: 0 0 auto; }
  .hero { padding-top: 150px; }
  .admin-tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: thin; }
  .admin-tabs .tab { flex: 0 0 auto; }
  .appointment-card header { flex-wrap: wrap; }
  .footer-links, .footer-codes { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  body { font-size: 15px; }
  input, select, textarea { font-size: 16px!important; }
  .section { padding: 58px 16px; }
  .site-header { padding: 11px 14px; }
  .site-header .brand span { font-size: .92rem; }
  .site-header .brand img { width: 36px; height: 36px; }
  .header-cta { padding: 8px 10px; font-size: .78rem; }
  .language-toggle a { min-width: 31px; }
  .hero { padding-inline: 16px; padding-top: 178px; }
  .hero h1 { font-size: clamp(2.35rem, 12vw, 4rem); }
  .hero-actions, .certification-actions, .backup-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button, .certification-actions .button, .backup-actions .button { width: 100%; text-align: center; }
  .hero-stats { grid-template-columns: 1fr 1fr; }
  .presentation-stage { min-height: 500px; }
  .presentation-caption { padding: 20px 16px; }
  .gallery { grid-auto-rows: 230px; }
  .site-footer { padding-inline: 16px; }
  .admin-section { padding-inline: 10px; }
  .admin-shell { width: 100%; border-radius: 16px; }
  .admin-panel { padding: 18px 12px; }
  .admin-row-actions, .file-links { align-items: stretch; flex-direction: column; }
  .admin-row-actions .button, .file-links a { width: 100%; text-align: center; }
  .booking-header { height: 68px; padding-inline: 14px; }
  .booking-main { width: min(100% - 20px, 1080px); }
  .booking-intro h1 { font-size: 2.35rem; }
  .booking-trust { align-items: center; flex-direction: column; gap: 8px; }
  .booking-workspace { border-radius: 18px; }
  .booking-step { gap: 5px; flex-direction: column; }
  .step-heading { gap: 10px; }
  .step-actions { flex-direction: column-reverse; }
  .step-actions .button { width: 100%; }
  #signatureCanvas { height: 125px; }
}
@media (max-width: 380px) {
  .site-header .brand span, .language-toggle { display: none; }
  .hero-stats { grid-template-columns: 1fr; }
  .booking-step b { font-size: .68rem; }
  .booking-form-step { padding-inline: 13px; }
}
.floating-booking{position:fixed;right:clamp(14px,2.5vw,34px);bottom:clamp(14px,2.5vw,30px);z-index:80;display:flex;align-items:center;gap:12px;padding:12px 18px 12px 13px;border:1px solid rgba(255,255,255,.45);border-radius:999px;color:#071b17;background:linear-gradient(135deg,#24ced4 0%,#64d0b0 45%,#f2b233 100%);box-shadow:0 16px 42px rgba(8,49,42,.28),0 3px 12px rgba(8,49,42,.18);font-weight:900;isolation:isolate;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.floating-booking::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.55) 45%,transparent 70%);transform:translateX(-120%);animation:bookingShine 4.5s ease-in-out infinite}.floating-booking:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 21px 50px rgba(8,49,42,.34),0 4px 14px rgba(8,49,42,.2)}.floating-booking:focus-visible{outline:4px solid rgba(28,207,226,.35);outline-offset:4px}.floating-booking-icon{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#fff;background:#143f36;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}.floating-booking-icon svg{width:21px;height:21px}.floating-booking-copy{display:grid;line-height:1.05}.floating-booking-copy small{font-size:.65rem;text-transform:uppercase;letter-spacing:.09em;margin-bottom:4px;opacity:.7}.floating-booking-copy strong{font-size:.98rem}@keyframes bookingShine{0%,62%{transform:translateX(-120%)}82%,100%{transform:translateX(120%)}}@media(max-width:600px){.floating-booking{right:12px;bottom:12px;padding:10px 15px 10px 10px}.floating-booking-icon{width:36px;height:36px}.floating-booking-copy small{display:none}.floating-booking-copy strong{font-size:.9rem}}@media(prefers-reduced-motion:reduce){.floating-booking::before{animation:none}.floating-booking{transition:none}}
/* El comprobante solo se muestra para transferencia bancaria. */
.booking-form-step .receipt-field[hidden]{display:none}
.service-options{border:0;padding:0;margin:0 0 26px;display:grid;gap:12px;min-width:0}.service-options legend{font-size:1rem;font-weight:900;margin-bottom:12px}.booking-form-step .service-option{display:flex;align-items:flex-start;gap:14px;border:1px solid #d4ddd7;border-radius:16px;padding:18px;background:#fff;cursor:pointer;font-size:1rem}.service-option:has(input:checked){border-color:#b98a3d;background:#fffaf1;box-shadow:0 0 0 2px rgba(185,138,61,.12)}.booking-form-step .service-option input{width:auto;flex:0 0 auto;margin-top:5px}.service-option span{display:grid;gap:8px;min-width:0}.service-option b{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:1rem}.service-option em{font-style:normal;color:#946520;white-space:nowrap}.service-option small{font-size:.88rem;font-weight:400;line-height:1.55;color:#596b64}
