/* Universal booking page. Shared assets resolve from the website root.
   This page uses its own styles; do not load main.css or the main site script here. */
@font-face { font-family:CFBooking;src:url('../assets/webfonts/SourceSans3-Light.woff2') format('woff2');font-weight:300;font-display:swap }
@font-face { font-family:CFBooking;src:url('../assets/webfonts/SourceSans3-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap }

/* Booking controls need flexible sizing and compact text. */
body.cf-booking button {
	height: auto;
	letter-spacing: normal;
	text-transform: none;
	white-space: normal;
	box-shadow: none;
}

html.cf-booking-root { color-scheme:dark;--bg:#12151b;--panel:#1b1f25;--raised:#242932;--line:#3b414c;--text:#f4f4f6;--muted:#bbc0ca;--accent:#c5b6ff;--ink:#201931;--error:#ffb2ac;font-family:CFBooking,'Segoe UI',sans-serif;font-weight:300;font-size:17px;line-height:1.5 }
body.cf-booking * { box-sizing:border-box }
body.cf-booking { margin:0;background:linear-gradient(135deg,#181322c9,#14171eee 55%,#111823f0),url('../images/bg.webp') center/cover fixed;color:var(--text);min-height:100vh }
body.cf-booking button,
body.cf-booking input,
body.cf-booking textarea,
body.cf-booking select { font:inherit }
body.cf-booking button,
body.cf-booking a,
body.cf-booking input,
body.cf-booking select,
body.cf-booking textarea,
body.cf-booking summary { -webkit-tap-highlight-color:transparent }
body.cf-booking button,
body.cf-booking a { touch-action:manipulation }
body.cf-booking button { cursor:pointer }
body.cf-booking button:disabled { cursor:not-allowed;opacity:.4 }
body.cf-booking a { color:inherit;text-underline-offset:5px }
body.cf-booking a:hover { color:var(--accent) }
body.cf-booking :focus-visible { outline:2px solid var(--accent);outline-offset:4px }
body.cf-booking h1,
body.cf-booking h2,
body.cf-booking h3,
body.cf-booking p { margin-top:0 }
body.cf-booking h1,
body.cf-booking h2,
body.cf-booking h3,
body.cf-booking strong,
body.cf-booking b { font-weight:600 }
body.cf-booking h1 { font-size:clamp(2rem,4vw,3.1rem);line-height:1.1;letter-spacing:-.02em;margin-bottom:.65rem }
body.cf-booking h2 { font-size:1.65rem;line-height:1.2;margin-bottom:.65rem }
body.cf-booking h3 { font-size:1.1rem;line-height:1.3 }
body.cf-booking p { margin-bottom:1rem }
body.cf-booking button { border:0 }
body.cf-booking button span[aria-hidden] { margin-left:.7rem }
body.cf-booking fieldset { border:0;padding:0;margin:0 0 1.5rem }
body.cf-booking legend { font-size:1.1rem;font-weight:600;margin-bottom:.6rem }
body.cf-booking input[type=radio],
body.cf-booking input[type=checkbox] { accent-color:var(--accent);width:19px;height:19px;flex-shrink:0;margin:3px 0 0 }
body.cf-booking input,
body.cf-booking select,
body.cf-booking textarea { color:var(--text) }
body.cf-booking [hidden] { display:none!important }
body.cf-booking .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 }
body.cf-booking .prototype-banner { background:#342a48;border-bottom:1px solid #6a5779;padding:9px 20px;display:flex;justify-content:center;gap:16px;align-items:center;font-size:.83rem;line-height:1.4 }
body.cf-booking .prototype-banner strong { letter-spacing:.1em;font-size:.73rem;white-space:nowrap }
body.cf-booking .site-header { max-width:1240px;margin:auto;padding:26px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px }
body.cf-booking .brand { display:flex;align-items:center;gap:13px;text-decoration:none;font-size:.85rem;letter-spacing:.15em }
body.cf-booking .brand img { width:48px;height:48px;object-fit:contain }
body.cf-booking .brand b { display:block;font-size:.7rem;letter-spacing:.3em }
body.cf-booking .quiet-link { font-size:.88rem;color:var(--muted) }
body.cf-booking main { max-width:1240px;margin:auto;padding:25px 24px 0 }
body.cf-booking .eyebrow { font-size:.75rem;letter-spacing:.16em;color:var(--accent);font-weight:600;margin-bottom:12px }
body.cf-booking .page-intro>p:last-child { color:var(--muted);font-size:1.08rem }
body.cf-booking .page-intro { margin-bottom:30px }
body.cf-booking .steps { margin-bottom:26px }
body.cf-booking .steps ol { padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);list-style:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line) }
body.cf-booking .steps button { width:100%;padding:17px 8px;display:flex;align-items:center;gap:12px;background:transparent;text-align:left;color:var(--muted);border-bottom:2px solid transparent;min-height:58px }
body.cf-booking .steps button span { font-size:.8rem;color:var(--muted) }
body.cf-booking .steps button[aria-current=step] { color:white;border-color:var(--accent) }
body.cf-booking .steps button[aria-current=step] span { color:var(--accent) }
body.cf-booking .steps button.completed span { color:var(--accent) }
body.cf-booking .booking-layout { display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:26px;align-items:start }
body.cf-booking .workspace { min-width:0 }
body.cf-booking .panel { background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:30px }
body.cf-booking .muted { color:var(--muted) }
body.cf-booking .small { font-size:.87rem;line-height:1.45 }
body.cf-booking .package-options { display:grid;gap:12px;margin-top:25px }
body.cf-booking .package { display:flex;align-items:flex-start;gap:15px;border:1px solid var(--line);border-radius:8px;padding:20px;cursor:pointer;background:#ffffff02;transition:background .15s,border-color .15s }
body.cf-booking .package:hover { border-color:#887d9d;background:#ffffff04 }
body.cf-booking .package:has(input:checked) { border-color:var(--accent);background:#b9a7ff0b;box-shadow:inset 3px 0 var(--accent) }
body.cf-booking .package input { margin-top:8px }
body.cf-booking .package-content { display:block;flex:1;min-width:0 }
body.cf-booking .package-top { display:flex;align-items:center;justify-content:space-between;gap:10px }
body.cf-booking .package-title { font-size:1.28rem;font-weight:600 }
body.cf-booking .package-title small { display:inline-block;vertical-align:middle;font-size:.62rem;letter-spacing:.08em;background:#c5b6ff20;color:#dacfff;padding:3px 7px;margin-left:7px;border-radius:3px }
body.cf-booking .price { font-size:1.35rem;white-space:nowrap;font-weight:600 }

/* Package descriptions use natural sentence spacing. */
body.cf-booking .package-description {
  display: block;
  color: var(--muted);
  font-size: .93rem;
  margin: 4px 0 13px;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.5;
}
body.cf-booking .specs { display:flex;gap:7px 14px;flex-wrap:wrap;font-size:.85rem }
body.cf-booking .specs span:not(:first-child) { border-left:1px solid var(--line);padding-left:14px }
body.cf-booking .panel-actions { display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line) }
body.cf-booking .primary,
body.cf-booking .secondary { min-height:48px;padding:11px 20px;border-radius:5px;font-weight:600;line-height:1.4 }
body.cf-booking .primary { background:var(--accent);color:var(--ink) }
body.cf-booking .primary:hover { background:#d6cbff }
body.cf-booking .secondary { background:transparent;border:1px solid #747c8c;color:var(--text) }
body.cf-booking .secondary:hover { background:var(--raised) }
body.cf-booking .text-button { padding:3px 0;background:none;color:var(--accent);text-decoration:underline;text-underline-offset:5px;font-size:.9rem;margin-bottom:20px }
body.cf-booking .inset { background:#ffffff04;border:1px solid var(--line);padding:20px;border-radius:6px;margin:18px 0 }
body.cf-booking .inset p:last-child { margin-bottom:0 }
body.cf-booking .summary { background:#1b1f25e8;border:1px solid var(--line);border-radius:12px;overflow:hidden;position:sticky;top:20px }
body.cf-booking .summary-image { width:100%;height:225px;object-fit:cover;object-position:center 34%;display:block }
body.cf-booking .summary-body { padding:24px }
body.cf-booking .summary h2 { font-size:1.5rem }
body.cf-booking .summary-spec { color:var(--muted) }
body.cf-booking dl { margin:20px 0 12px }
body.cf-booking dl>div { display:flex;justify-content:space-between;gap:15px;margin-bottom:15px;font-size:.92rem }
body.cf-booking dt { color:var(--muted) }
body.cf-booking dd { text-align:right;margin:0;font-weight:600;max-width:65%;overflow-wrap:anywhere }
body.cf-booking .total { border-top:1px solid var(--line);padding-top:18px;margin-top:20px;align-items:center }
body.cf-booking .total dd { font-size:1.65rem }
body.cf-booking .total dt { color:white }
body.cf-booking .summary-note { border-top:1px solid var(--line);padding-top:18px;margin-top:23px;font-size:.9rem }
body.cf-booking .summary-note strong { display:block;margin-bottom:7px }
body.cf-booking .summary-note p { color:var(--muted);margin:0 }
body.cf-booking .availability-note { background:#c5b6ff0c;border-left:2px solid var(--accent);padding:12px 15px;display:flex;flex-direction:column;gap:5px;font-size:.87rem;margin:23px 0 }
body.cf-booking .sample-label { font-size:.68rem;letter-spacing:.1em;color:var(--accent);font-weight:600 }
body.cf-booking .date-navigation { display:flex;justify-content:space-between;align-items:center;gap:12px;margin:25px 0 16px }
body.cf-booking .date-navigation h3 { margin:0 }
body.cf-booking .icon-button { background:var(--raised);color:white;width:38px;height:38px;border:1px solid var(--line);border-radius:4px;margin-left:5px }
body.cf-booking .date-grid { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px }
body.cf-booking .date-button { display:flex;flex-direction:column;align-items:center;padding:11px 4px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--text);gap:2px }
body.cf-booking .date-button span:first-child { font-size:.8rem }
body.cf-booking .date-button strong { font-size:1.4rem }
body.cf-booking .date-button small { font-size:.68rem }
body.cf-booking .date-button[aria-pressed=true],
body.cf-booking .slot[aria-pressed=true] { background:var(--accent);color:var(--ink);border-color:var(--accent) }
body.cf-booking .date-button:disabled { opacity:.38 }
body.cf-booking .time-heading { display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:25px }
body.cf-booking .time-heading h3 { margin-bottom:14px }
body.cf-booking .slots { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:17px }
body.cf-booking .slot { background:transparent;border:1px solid var(--line);color:white;min-height:45px;border-radius:5px;padding:7px;font-size:.94rem }
body.cf-booking .slot:hover { border-color:var(--accent) }
body.cf-booking .empty { grid-column:1/-1;color:var(--muted);padding:16px 0 }
body.cf-booking .demo-details,
body.cf-booking .draw-option { font-size:.87rem;color:var(--muted);margin:20px 0 }
body.cf-booking .demo-details p { margin:12px 0 }
body.cf-booking .demo-details summary,
body.cf-booking .draw-option summary { cursor:pointer }
body.cf-booking .field-grid { display:grid;grid-template-columns:1fr 1fr;gap:0 18px }
body.cf-booking .field { margin-bottom:20px }
body.cf-booking label:not(.package):not(.choice) { display:block;font-weight:600;font-size:.92rem;margin-bottom:7px }
body.cf-booking .field label>span:not(.optional) { color:var(--accent) }
body.cf-booking .optional { font-size:.83rem;color:var(--muted);font-weight:300 }
body.cf-booking .field input,
body.cf-booking .field textarea,
body.cf-booking .field select,
body.cf-booking .inset select { width:100%;min-height:46px;border:1px solid #5a626f;background:#15191f;border-radius:5px;padding:10px 12px;font-weight:300 }
body.cf-booking .field textarea { resize:vertical }
body.cf-booking .field input:focus,
body.cf-booking .field textarea:focus,
body.cf-booking .field select:focus { border-color:var(--accent) }
body.cf-booking input::placeholder,
body.cf-booking textarea::placeholder { color:#a7aeb9;opacity:1 }
body.cf-booking .participants { border-top:1px solid var(--line);padding-top:20px;margin-top:10px }
body.cf-booking .participant-row { background:#ffffff03;border-radius:6px;padding:15px;margin-bottom:10px }
body.cf-booking .participant-row h3 { font-size:.88rem;color:var(--accent);margin-bottom:12px }
body.cf-booking .participant-row .field { margin-bottom:0 }
body.cf-booking .review-facts { display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:20px;background:#ffffff04;border:1px solid var(--line);border-radius:6px;margin:22px 0 12px }
body.cf-booking .review-facts dt { font-size:.8rem }
body.cf-booking .review-facts dd { text-align:left;max-width:100%;font-size:1rem;font-weight:600 }
body.cf-booking .agreement { border:1px solid var(--line);border-radius:6px;margin:5px 0 26px }
body.cf-booking .agreement>summary { padding:17px;cursor:pointer;font-weight:600 }
body.cf-booking .agreement>summary>.sample-label { margin-left:10px }
body.cf-booking .agreement #agreement-content { padding:0 22px 22px;font-size:.94rem;line-height:1.65 }
body.cf-booking .agreement h3 { margin:22px 0 7px;font-size:1rem }
body.cf-booking .agreement p { color:#d1d4dc }
body.cf-booking .agreement .draft-notice { border:1px solid #977eaa;padding:14px;background:#c5b6ff0c;color:#ded5ed }
body.cf-booking .agreement table { width:100%;border-collapse:collapse;font-size:.86rem }
body.cf-booking .agreement th,
body.cf-booking .agreement td { border-bottom:1px solid var(--line);padding:9px;text-align:left;overflow-wrap:anywhere }
/* Keep permission and consent sentences easy to read. */
body.cf-booking .choice {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 16px 0;
  font-size: .94rem;
  font-weight: 300;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.5;
}
  /* Show native controls inside permission and consent labels. */
  body.cf-booking .choice input[type="radio"],
  body.cf-booking .choice input[type="checkbox"] {
    -webkit-appearance: auto;
    appearance: auto;
    display: inline-block;
    position: static;
    opacity: 1;
    visibility: visible;
    float: none;
    z-index: auto;
    width: 19px;
    height: 19px;
    margin: 3px 0 0;
    padding: 0;
    flex-shrink: 0;
    accent-color: var(--accent);
    cursor: pointer;
  }
body.cf-booking .signature-section { 
  border-top:1px solid var(--line);
  padding-top:24px;
  margin-top:24px 
}
body.cf-booking #typed-signature { font:italic 2rem Georgia,serif;color:var(--accent);padding:14px 2px 0;overflow-wrap:anywhere;min-height:1rem }
body.cf-booking #signature-canvas { display:block;width:100%;height:150px;background:#edeaf3;border:1px solid var(--line);border-radius:5px;touch-action:none;margin:12px 0 }
body.cf-booking #clear-signature { margin-bottom:0 }
body.cf-booking .form-error { color:var(--error);margin:0 }
body.cf-booking .form-error:empty { display:none }
body.cf-booking .submit-note { text-align:center;margin:12px 0 0 }
body.cf-booking .success-symbol { font-size:2rem;width:60px;height:60px;background:#c5b6ff1c;color:var(--accent);border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;margin-bottom:22px }
body.cf-booking .next-steps { list-style:none;counter-reset:next;padding:0;margin:25px 0 }
body.cf-booking .next-steps li { counter-increment:next;position:relative;padding:0 0 22px 42px }
body.cf-booking .next-steps li:before { content:counter(next);position:absolute;left:0;top:0;width:27px;height:27px;border:1px solid var(--line);border-radius:50%;text-align:center;color:var(--accent) }
body.cf-booking .next-steps b,
body.cf-booking .next-steps span { display:block }
body.cf-booking .next-steps span { color:var(--muted);font-size:.94rem }
body.cf-booking .email-preview { border-top:1px solid var(--line);padding:16px 0 }
body.cf-booking .email-preview summary { cursor:pointer;font-weight:600 }
body.cf-booking .email-preview>div { padding:16px;background:#ffffff04;margin-top:14px;overflow-wrap:anywhere }
body.cf-booking .email-preview p { font-size:.94rem }
body.cf-booking .email-preview p:last-child { margin-bottom:0 }
body.cf-booking footer { display:flex;align-items:center;justify-content:space-between;gap:20px;margin:40px 0 0;padding:25px 0;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem }
body.cf-booking footer>span { font-size:.7rem;letter-spacing:.18em }
body.cf-booking footer p { margin:0 }
body.cf-booking .noscript { padding:30px;background:#342a48 }
@media(max-width:1000px) {
body.cf-booking .booking-layout { grid-template-columns:minmax(0,1fr) 280px;gap:18px }
body.cf-booking .panel { padding:24px }
body.cf-booking .summary-body { padding:20px }
body.cf-booking .package-title small { display:block;width:max-content;margin:3px 0 }
body.cf-booking .specs { gap:6px 9px }
body.cf-booking .specs span:not(:first-child) { padding-left:9px }
}
@media(max-width:760px) {
body.cf-booking .prototype-banner { flex-direction:column;gap:3px;text-align:center;padding:8px 14px }
body.cf-booking .site-header { padding:20px }
body.cf-booking .brand { font-size:.75rem }
body.cf-booking .brand img { width:38px;height:38px }
body.cf-booking .quiet-link { font-size:.82rem;max-width:140px;text-align:right }
body.cf-booking main { padding:15px 16px 0 }
body.cf-booking .page-intro { margin-bottom:22px }
body.cf-booking .page-intro>p:last-child { font-size:1rem }
body.cf-booking .steps ol { gap:0 }
body.cf-booking .steps button { flex-direction:column;gap:3px;text-align:center;font-size:.82rem;padding:11px 2px }
body.cf-booking .booking-layout { grid-template-columns:1fr }
body.cf-booking .panel { padding:22px 18px;border-radius:8px }
body.cf-booking h2 { font-size:1.5rem }
body.cf-booking .package { padding:16px 13px;gap:11px }
body.cf-booking .package-title small { font-size:.6rem }
body.cf-booking .price { font-size:1.2rem }
body.cf-booking .package-description { font-size:.9rem }
body.cf-booking .specs { font-size:.8rem }
body.cf-booking .summary { position:static;display:grid;grid-template-columns:110px 1fr;border-radius:8px }
body.cf-booking .summary-image { height:100%;min-height:260px;object-position:50% 35% }
body.cf-booking .summary-body { padding:20px }
body.cf-booking .summary-body .eyebrow { margin-bottom:7px }
body.cf-booking .summary h2 { font-size:1.3rem }
body.cf-booking .summary-spec { font-size:.88rem }
body.cf-booking .summary dl { margin-top:15px }
body.cf-booking .summary-note { display:none }
body.cf-booking .summary-body>.small { font-size:.8rem }
body.cf-booking .date-grid { gap:4px }
body.cf-booking .date-button { padding:9px 2px }
body.cf-booking .date-button small { font-size:.64rem }
body.cf-booking .date-button span:first-child { font-size:.73rem }
body.cf-booking .date-button strong { font-size:1.25rem }
body.cf-booking .date-navigation h3 { font-size:1rem }
body.cf-booking .icon-button { width:34px;height:34px }
body.cf-booking .field-grid { grid-template-columns:1fr }
body.cf-booking .participant-row .field { margin-bottom:14px }
body.cf-booking .participant-row .field:last-child { margin-bottom:0 }
body.cf-booking .panel-actions { flex-wrap:wrap }
body.cf-booking .panel-actions>.small { width:100% }
body.cf-booking .panel-actions .primary { margin-left:auto }
body.cf-booking .review-facts { padding:15px;gap:15px;font-size:.9rem }
body.cf-booking .agreement #agreement-content { padding:0 16px 18px }
body.cf-booking .time-heading { align-items:start;flex-direction:column;gap:0 }
body.cf-booking .time-heading .small { margin-bottom:12px }
body.cf-booking footer { flex-direction:column;gap:12px;text-align:center }
body.cf-booking .success .panel-actions { flex-direction:column;align-items:stretch }
body.cf-booking .success .primary { margin:0 }
}



/* Video behind the booking page */
body.cf-booking {
  position: relative;
  isolation: isolate;
  background: #12151b;
}

body.cf-booking .booking-background {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: url('../images/bg.webp') center / cover;
}

body.cf-booking .booking-background video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Darken the footage slightly for readable text */
body.cf-booking .booking-background::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(18, 21, 27, 0.4);
}

/* Translucent content panels */
body.cf-booking .panel,
body.cf-booking .summary {
  background: rgba(27, 31, 34, 0.85);
}

/* Overall page width and space around the floating tiles */
body.cf-booking main {
  width: calc(100% - 64px);
  max-width: var(--cf-content-max-width);
  margin: 0 auto;
  padding: 48px 0;
}

/* Introduction and progress steps share one tile */
body.cf-booking .booking-intro-tile {
  background: rgba(27, 31, 34, 0.85);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 30px;
  margin-bottom: 26px;
}

body.cf-booking .booking-intro-tile .page-intro {
  margin-bottom: 24px;
}

body.cf-booking .booking-intro-tile .page-intro p {
  margin-bottom: 0;
}

body.cf-booking .booking-intro-tile .steps {
  margin-bottom: 0;
}



/* Smaller screens */
@media (max-width: 736px) {
  body.cf-booking main {
    width: calc(100% - 32px);
    padding: 24px 0;
  }

  body.cf-booking .booking-intro-tile {
    padding: 20px;
  }
}

@media(prefers-reduced-motion:reduce) {
body.cf-booking * { scroll-behavior:auto!important;transition:none!important }
}

/* Booking Page Navigation
   Matches the navigation controls used throughout
   the main Cyberflight Studios website.
*/

body.cf-booking .booking-page-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 28px;
}

body.cf-booking .booking-page-back,
body.cf-booking .booking-page-home {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 2.5rem;
    height: 2.5rem;

    border: 0;
    border-radius: 50%;
    background: transparent;

    color: #ffffff;
    line-height: 1;

    text-decoration: none;
    cursor: pointer;

    transition: background-color 0.2s ease-in-out;
}

body.cf-booking .booking-page-back {
    font-size: 1.35rem;
}

body.cf-booking .booking-page-home {
    font-size: 1.15rem;
}

body.cf-booking .booking-page-home.icon {
    position: relative;
    border-bottom: none;
}

body.cf-booking .booking-page-home.icon::before {
    display: inline-block;
    font-family: "Font Awesome 5 Free";
    font-style: normal;
    font-variant: normal;
    font-weight: 900;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

body.cf-booking .booking-page-back:hover,
body.cf-booking .booking-page-home:hover {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.075);
}

body.cf-booking .booking-page-back:active,
body.cf-booking .booking-page-home:active {
    background-color: rgba(255, 255, 255, 0.175);
}

body.cf-booking .booking-page-back:focus-visible,
body.cf-booking .booking-page-home:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}
/* Universal step 1: one tile per service. Tiles reuse .package styling;
   selected tiles keep their dropdown enabled. */
body.cf-booking .package.service .package-title { font-size:1.18rem }
body.cf-booking .package.service:has(input:disabled) { opacity:.55 }
body.cf-booking .service-select-wrap { display:block;margin-top:13px }
body.cf-booking .service-select-label { display:block;font-weight:600;font-size:.92rem;margin-bottom:6px }
body.cf-booking .service-select-label .caret { color:var(--muted);font-size:1.6em;line-height:0;margin-left:7px;vertical-align:middle }
body.cf-booking .package.service:has(input:checked) .service-select-label .caret { color:var(--accent) }
body.cf-booking .service-select {
	width:100%;min-height:44px;border:1px solid #5a626f;background:#15191f;border-radius:5px;
	padding:9px 12px;font-weight:300;color:var(--text);appearance:none;-webkit-appearance:none
}
body.cf-booking .service-select:disabled { opacity:.5;pointer-events:none }
body.cf-booking .service-select:focus { border-color:var(--accent) }
body.cf-booking .package.service:has(input:checked) .service-select { border-color:var(--accent) }
body.cf-booking .service-price { font-size:1.15rem;white-space:nowrap;font-weight:600 }
body.cf-booking .package-top { align-items:baseline }
@media(max-width:760px) {
	body.cf-booking .package.service .package-title { font-size:1.08rem }
	body.cf-booking .service-price { font-size:1.05rem }
}

/* Duration slider for event coverage */
body.cf-booking .range-field input[type=range] { width:100%;accent-color:var(--accent);min-height:0;padding:8px 0 }
body.cf-booking .range-field .range-ends { display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted) }
body.cf-booking input[type=date] { color-scheme:dark }
