:root {
  --alinea-ink: #0d2233;
  --alinea-ink-soft: #384b58;
  --alinea-sand: #e6d3bd;
  --alinea-sand-light: #f7efe5;
  --alinea-paper: #fffaf4;
  --alinea-gold: #ad9163;
  --alinea-gold-dark: #826b47;
  --alinea-line: rgba(13, 34, 51, 0.22);
  --alinea-success: #2f6a4f;
  --alinea-danger: #9b3d38;
  --alinea-radius: 24px;
}

.alinea-booking-page {
  color: var(--alinea-ink);
  background: var(--alinea-sand-light);
  min-height: 100vh;
}

.alinea-skip {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 9999;
  padding: 10px 14px;
  background: var(--alinea-ink);
  color: #fff;
  transform: translateY(-160%);
}

.alinea-skip:focus { transform: translateY(0); }

.alinea-booking-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 10vw, 130px) 24px clamp(54px, 8vw, 96px);
  text-align: center;
  background:
    radial-gradient(circle at 12% 15%, rgba(255,255,255,.72), transparent 28%),
    radial-gradient(circle at 88% 78%, rgba(173,145,99,.22), transparent 30%),
    var(--alinea-sand);
  border-bottom: 1px solid var(--alinea-line);
}

.alinea-booking-hero::before,
.alinea-booking-hero::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  border: 1px solid rgba(13,34,51,.13);
  border-radius: 50%;
}

.alinea-booking-hero::before { left: -110px; bottom: -110px; }
.alinea-booking-hero::after { right: -95px; top: -95px; }

.alinea-eyebrow {
  margin: 0 0 16px;
  color: var(--alinea-gold-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .24em;
}

.alinea-booking-page .alinea-booking-hero h1 {
  margin: 0;
  color: var(--alinea-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(42px, 7vw, 84px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -.035em;
}

.alinea-booking-page .alinea-hero-copy {
  max-width: 680px;
  margin: 32px auto 0;
  color: var(--alinea-ink-soft);
  font-size: clamp(17px, 2vw, 20px);
  line-height: 1.65;
}

.alinea-trust-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 28px;
  margin-top: 30px;
  color: var(--alinea-ink-soft);
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.alinea-trust-row span::before {
  content: "✓";
  margin-right: 8px;
  color: var(--alinea-success);
}

.alinea-booking-shell {
  width: min(1180px, calc(100% - 32px));
  margin: -34px auto 0;
  position: relative;
  z-index: 2;
}

.alinea-booking {
  scroll-margin-top: 112px;
  min-height: 540px;
  background: var(--alinea-paper);
  border: 1px solid var(--alinea-line);
  border-radius: 30px;
  box-shadow: 0 28px 70px rgba(13,34,51,.11);
  overflow: hidden;
}

.alinea-app-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px clamp(20px, 4vw, 44px);
  border-bottom: 1px solid var(--alinea-line);
  background: rgba(255,255,255,.45);
}

.alinea-steps {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #687781;
  font-size: 13px;
}

.alinea-step-dot {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid var(--alinea-line);
  border-radius: 50%;
  background: transparent;
  font-weight: 700;
}

.alinea-step-dot.is-active,
.alinea-step-dot.is-done {
  border-color: var(--alinea-ink);
  background: var(--alinea-ink);
  color: #fff;
}

.alinea-step-line { width: 20px; height: 1px; background: var(--alinea-line); }

.alinea-language {
  display: inline-flex;
  padding: 3px;
  border: 1px solid var(--alinea-line);
  border-radius: 999px;
}

.alinea-language button {
  min-width: 42px;
  min-height: 34px;
  padding: 6px 10px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--alinea-ink);
  cursor: pointer;
  font: inherit;
}

.alinea-language button[aria-pressed="true"] { background: var(--alinea-ink); color: #fff; }

.alinea-panel { padding: clamp(28px, 5vw, 54px); }

.alinea-panel-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 30px;
}

.alinea-booking .alinea-panel-heading h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 400;
  line-height: 1.14;
  letter-spacing: -.025em;
}

.alinea-booking .alinea-panel-heading p { max-width: 520px; margin: 12px 0 0; color: var(--alinea-ink-soft); line-height: 1.55; }

.alinea-tabs {
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 5px;
  margin-bottom: 32px;
  border: 1px solid var(--alinea-line);
  border-radius: 999px;
  background: #f1e5d7;
}

.alinea-tab {
  min-height: 48px;
  padding: 11px 28px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--alinea-ink);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}

.alinea-tab[aria-selected="true"] { background: var(--alinea-ink); color: #fff; }

.alinea-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.alinea-service-card {
  display: flex;
  flex-direction: column;
  min-height: 330px;
  padding: clamp(22px, 3vw, 30px);
  border: 1px solid var(--alinea-line);
  border-radius: var(--alinea-radius);
  background: rgba(255,255,255,.48);
  box-shadow: 0 5px 15px rgba(13,34,51,.05);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.alinea-service-card:hover { transform: translateY(-3px); box-shadow: 0 15px 32px rgba(13,34,51,.09); border-color: rgba(13,34,51,.42); }

.alinea-service-meta { display: flex; justify-content: space-between; gap: 14px; align-items: start; }
.alinea-booking .alinea-service-meta h3 {
  margin: 0;
  max-width: 78%;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(22px, 2.5vw, 30px);
  font-weight: 400;
  line-height: 1.16;
  letter-spacing: -.02em;
  text-transform: none;
}
.alinea-badge { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; background: #efe3d3; color: var(--alinea-gold-dark); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.alinea-service-card > p { color: var(--alinea-ink-soft); line-height: 1.6; }
.alinea-service-note { padding: 10px 12px; border-left: 3px solid var(--alinea-gold); background: #fbf1df; font-size: 13px; }

.alinea-variants { display: grid; gap: 9px; margin-top: auto; padding-top: 18px; }
.alinea-variant {
  display: grid !important;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 48px;
  padding: 8px 10px 8px 15px;
  border: 1px solid var(--alinea-line);
  border-radius: 14px;
  background: var(--alinea-paper);
  color: var(--alinea-ink);
  cursor: pointer;
  text-align: left;
  font: inherit;
}
.alinea-variant:hover { border-color: var(--alinea-ink); }
.alinea-variant > span:first-child { justify-self: start; }
.alinea-variant-price { justify-self: end; font-weight: 800; white-space: nowrap; }
.alinea-variant-arrow { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: var(--alinea-ink); color: #fff; }

.alinea-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--alinea-ink);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}

.alinea-selection-summary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 20px 22px;
  margin-bottom: 28px;
  border: 1px solid var(--alinea-line);
  border-radius: 18px;
  background: #f4e9dc;
}
.alinea-selection-summary strong { display: block; font-size: 20px; }
.alinea-selection-summary span { color: var(--alinea-ink-soft); }
.alinea-total { text-align: right; }
.alinea-total strong { font-size: 24px; }

.alinea-booking-columns { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 34px; }
.alinea-date-row { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
.alinea-date-button { min-height: 68px; padding: 8px; border: 1px solid var(--alinea-line); border-radius: 13px; background: #fff; color: var(--alinea-ink); cursor: pointer; font: inherit; }
.alinea-date-button span { display: block; font-size: 12px; color: var(--alinea-ink-soft); text-transform: uppercase; }
.alinea-date-button strong { display: block; margin-top: 5px; font-size: 18px; }
.alinea-date-button[aria-pressed="true"] { background: var(--alinea-ink); color: #fff; }
.alinea-date-button[aria-pressed="true"] span { color: rgba(255,255,255,.75); }
.alinea-more-dates { margin: 12px 0 0; }
.alinea-more-dates label { display: block; margin-bottom: 6px; font-weight: 700; }

.alinea-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 22px; }
.alinea-slot { min-height: 46px; border: 1px solid var(--alinea-line); border-radius: 12px; background: #fff; color: var(--alinea-ink); cursor: pointer; font: inherit; font-weight: 700; }
.alinea-slot[aria-pressed="true"] { background: var(--alinea-gold); border-color: var(--alinea-gold-dark); color: #fff; }
.alinea-empty { grid-column: 1/-1; padding: 20px; border-radius: 14px; background: #f4e9dc; color: var(--alinea-ink-soft); text-align: center; }

.alinea-price-card { padding: 24px; border-radius: 20px; background: var(--alinea-ink); color: #fff; }
.alinea-booking .alinea-price-card h3 { margin: 0 0 18px; font-family: Georgia, "Times New Roman", serif; font-size: 25px; font-weight: 400; line-height: 1.2; }
.alinea-price-row { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.alinea-price-row:last-of-type { border: 0; }
.alinea-price-total { padding-top: 18px; font-size: 21px; font-weight: 800; }
.alinea-price-note { margin: 16px 0 0; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.5; }

.alinea-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.alinea-field { display: grid; gap: 7px; }
.alinea-field-full { grid-column: 1/-1; }
.alinea-field label, .alinea-field legend { font-weight: 700; }
.alinea-field input, .alinea-field textarea, .alinea-field select {
  width: 100%;
  min-height: 50px;
  padding: 11px 13px;
  border: 1px solid var(--alinea-line);
  border-radius: 11px;
  background: #fff;
  color: var(--alinea-ink);
  font: inherit;
}
.alinea-field textarea { min-height: 100px; resize: vertical; }
.alinea-field input:focus, .alinea-field textarea:focus, .alinea-field select:focus { outline: 3px solid rgba(173,145,99,.33); border-color: var(--alinea-gold-dark); }
.alinea-check { display: flex; align-items: flex-start; gap: 10px; color: var(--alinea-ink-soft); line-height: 1.45; }
.alinea-check input { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 1px; }
.alinea-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.alinea-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 52px;
  padding: 12px 22px;
  border: 1px solid var(--alinea-ink);
  border-radius: 999px;
  background: var(--alinea-ink);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  text-decoration: none;
}
.alinea-button:hover { background: #173b54; color: #fff; }
.alinea-button:disabled { cursor: not-allowed; opacity: .48; }
.alinea-button-secondary { background: var(--alinea-gold); border-color: var(--alinea-gold-dark); }
.alinea-button-wide { width: 100%; }
.alinea-actions { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 28px; }
.alinea-text-link { color: var(--alinea-ink); font-weight: 800; text-underline-offset: 4px; }

.alinea-alert { padding: 14px 16px; margin: 0 0 20px; border-radius: 12px; background: #fbe8e6; color: var(--alinea-danger); border: 1px solid rgba(155,61,56,.25); }
.alinea-success { padding: 30px; border: 1px solid rgba(47,106,79,.3); border-radius: 20px; background: #e8f4ed; text-align: center; }
.alinea-booking .alinea-success h3 { margin-top: 0; font-family: Georgia, "Times New Roman", serif; font-size: 32px; font-weight: 400; line-height: 1.2; }
.alinea-reference { display: inline-block; padding: 7px 11px; border-radius: 8px; background: rgba(47,106,79,.1); font-family: monospace; }
.alinea-loading { display: flex; min-height: 540px; align-items: center; justify-content: center; gap: 12px; color: var(--alinea-ink-soft); }
.alinea-spinner { width: 22px; height: 22px; border: 2px solid var(--alinea-line); border-top-color: var(--alinea-ink); border-radius: 50%; animation: alinea-spin .8s linear infinite; }
@keyframes alinea-spin { to { transform: rotate(360deg); } }

.alinea-booking-help {
  width: min(800px, calc(100% - 32px));
  margin: clamp(70px, 10vw, 120px) auto 0;
  padding: 0 0 clamp(70px, 10vw, 120px);
  text-align: center;
}
.alinea-booking-page .alinea-booking-help h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(32px,5vw,52px); font-weight: 400; line-height: 1.15; }
.alinea-booking-help p:not(.alinea-eyebrow) { max-width: 620px; margin: 18px auto; color: var(--alinea-ink-soft); font-size: 18px; line-height: 1.6; }
.alinea-help-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 22px; margin-top: 28px; }

.alinea-booking button:focus-visible,
.alinea-booking a:focus-visible,
.alinea-booking-page a:focus-visible { outline: 3px solid var(--alinea-gold); outline-offset: 3px; }

@media (max-width: 820px) {
  .alinea-grid { grid-template-columns: 1fr; }
  .alinea-booking-columns { grid-template-columns: 1fr; }
  .alinea-price-card { order: -1; }
  .alinea-panel-heading { display: block; }
  .alinea-date-row { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .alinea-booking-shell { width: calc(100% - 20px); }
  .alinea-booking { border-radius: 20px; }
  .alinea-app-head { padding: 15px; }
  .alinea-steps .alinea-step-line { width: 10px; }
  .alinea-step-dot { width: 26px; height: 26px; }
  .alinea-panel { padding: 25px 16px 30px; }
  .alinea-tabs { display: grid; width: 100%; }
  .alinea-tab { padding-inline: 10px; }
  .alinea-service-card { min-height: 0; }
  .alinea-service-meta { display: block; }
  .alinea-booking .alinea-service-meta h3 { max-width: none; }
  .alinea-badge { display: inline-block; margin-top: 10px; }
  .alinea-variant { grid-template-columns: 1fr auto; }
  .alinea-variant-arrow { display: none; }
  .alinea-form { grid-template-columns: 1fr; }
  .alinea-field-full { grid-column: auto; }
  .alinea-selection-summary { grid-template-columns: 1fr; }
  .alinea-total { text-align: left; }
  .alinea-slots { grid-template-columns: repeat(2, 1fr); }
  .alinea-actions { align-items: stretch; flex-direction: column-reverse; }
  .alinea-actions .alinea-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

