:root {
  --cmp-red: #CC1111;
  --cmp-red-dark: #A50D0D;
  --cmp-red-glow: rgba(204, 17, 17, .30);
  --cmp-black: #0B0B0B;
  --cmp-dark-1: #111111;
  --cmp-dark-2: #181818;
  --cmp-dark-3: #222222;
  --cmp-dark-4: #2D2D2D;
  --cmp-gray: #888888;
  --cmp-gray-light: #BDBDBD;
  --cmp-white: #FFFFFF;
  --cmp-heading: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
  --cmp-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: dark;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { overflow-x: hidden; background: var(--cmp-black); scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; overflow-x: hidden; color: var(--cmp-white); background: radial-gradient(circle at 50% 0, #2b0b0b 0, var(--cmp-black) 32rem); font-family: var(--cmp-body); line-height: 1.5; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #ff5a5a; outline-offset: 3px; }
.skip-link { position: fixed; z-index: 50; left: 1rem; top: -5rem; padding: .75rem 1rem; background: white; color: black; }
.skip-link:focus { top: 1rem; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.topbar { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .5rem clamp(1rem, 4vw, 3rem); border-bottom: 1px solid #2d2d2d; background: rgba(11,11,11,.92); backdrop-filter: blur(12px); }
.brand { min-width: 0; display: flex; align-items: center; gap: .75rem; font: 700 1rem/1 var(--cmp-heading); letter-spacing: .08em; }
.brand img { object-fit: contain; }
.brand b { color: var(--cmp-red); }
.secure-label { color: var(--cmp-gray-light); font-size: .68rem; letter-spacing: .13em; }
.shell { width: min(960px, calc(100% - 2rem)); margin: 0 auto; padding: 1.5rem 0 3rem; }
.hero { max-width: 760px; margin: 0 auto 1rem; text-align: center; }
.eyebrow, .section-heading p { margin: 0 0 .5rem; color: #ef5252; font-size: .72rem; font-weight: 800; letter-spacing: .18em; }
.hero h1 { margin: 0; font: 800 clamp(2.35rem, 7vw, 4.5rem)/.9 var(--cmp-heading); letter-spacing: -.025em; }
.hero h1 em { display: block; color: var(--cmp-red); font-style: normal; }
.hero > p:last-child { max-width: 590px; margin: .65rem auto 0; color: var(--cmp-gray-light); }
.location-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 auto 1rem; padding: .8rem 1rem; border: 1px solid #353535; border-radius: 12px; background: #151515; }
.location-card div { min-width: 0; }
.location-card b, .location-card span, .location-card small { display: block; }
.location-card b { font: 800 .9rem var(--cmp-heading); letter-spacing: .04em; }
.location-card span { color: var(--cmp-gray-light); font-size: .78rem; }
.location-card small { color: var(--cmp-gray); font-size: .7rem; }
.location-card .button { min-height: 42px; flex: 0 0 auto; padding: .55rem .8rem; }
.booking-card, .success-card, .state-card { border: 1px solid #353535; border-radius: 18px; background: linear-gradient(145deg, rgba(31,31,31,.98), rgba(15,15,15,.98)); box-shadow: 0 28px 80px rgba(0,0,0,.42); }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid #303030; }
.step { min-height: 54px; border: 0; border-right: 1px solid #303030; color: #777; background: transparent; font: 700 .72rem/1.2 var(--cmp-heading); letter-spacing: .08em; }
.step:last-child { border-right: 0; }
.step span { display: inline-grid; width: 24px; height: 24px; margin-right: .35rem; place-items: center; border: 1px solid #555; border-radius: 50%; }
.step.active { color: white; box-shadow: inset 0 -3px var(--cmp-red); }
.step.active span { border-color: var(--cmp-red); background: var(--cmp-red); }
.form-step { padding: clamp(1.1rem, 3.5vw, 2rem); }
.section-heading { margin-bottom: .9rem; }
.section-heading.compact { margin-top: 1.5rem; }
.section-heading h2 { margin: 0; font: 700 clamp(1.7rem, 5vw, 2.5rem)/1 var(--cmp-heading); text-transform: uppercase; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin: 0; padding: 0; border: 0; }
.service-card { position: relative; min-width: 0; min-height: 132px; display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; padding: .9rem; overflow-wrap: anywhere; border: 1px solid #3a3a3a; border-radius: 12px; background: #171717; cursor: pointer; transition: border-color .15s, transform .15s, background .15s; }
.service-card:hover { transform: translateY(-2px); border-color: #666; }
.service-card:has(input:checked) { border-color: var(--cmp-red); background: linear-gradient(145deg, rgba(204,17,17,.18), #171717); box-shadow: 0 0 0 1px var(--cmp-red), 0 12px 30px var(--cmp-red-glow); }
.service-card input { position: absolute; opacity: 0; }
.service-card b { font: 700 1.2rem/1 var(--cmp-heading); }
.service-card small { color: var(--cmp-gray-light); font-size: .78rem; }
.service-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; background: #292929; color: #ef5252; font-size: 1.1rem; }
.revision-guide { margin-top: .75rem; border: 1px solid #353535; border-radius: 9px; background: #131313; }
.revision-guide summary { padding: .75rem .9rem; color: #ff6868; font-size: .78rem; font-weight: 800; cursor: pointer; }
.revision-guide > div { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; padding: 0 .9rem .8rem; }
.revision-guide p { margin: 0; color: var(--cmp-gray-light); font-size: .75rem; }
.revision-guide b, .revision-guide span { display: block; }
.revision-guide b { margin-bottom: .2rem; color: white; font-family: var(--cmp-heading); }
.date-list { display: flex; gap: .65rem; overflow-x: auto; padding: .2rem .15rem .7rem; scroll-snap-type: x mandatory; scrollbar-color: #555 transparent; }
.date-button { flex: 0 0 76px; min-height: 68px; border: 1px solid #3a3a3a; border-radius: 10px; background: #151515; color: white; scroll-snap-align: start; cursor: pointer; }
.date-button span, .date-button small { display: block; }
.date-button span { color: var(--cmp-gray-light); font-size: .68rem; letter-spacing: .08em; }
.date-button b { font: 800 1.7rem var(--cmp-heading); }
.date-button[aria-selected="true"] { border-color: var(--cmp-red); background: var(--cmp-red); box-shadow: 0 8px 24px var(--cmp-red-glow); }
.date-button[aria-selected="true"] span { color: white; }
.text-button { min-height: 44px; padding: 0; border: 0; background: transparent; color: #ff5d5d; font-size: .72rem; font-weight: 800; letter-spacing: .08em; cursor: pointer; }
.time-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: .6rem; }
.time-button { min-height: 50px; border: 1px solid #444; border-radius: 8px; background: #161616; color: white; font-weight: 750; cursor: pointer; }
.time-button[aria-pressed="true"] { border-color: var(--cmp-red); background: var(--cmp-red); box-shadow: 0 8px 20px var(--cmp-red-glow); }
.time-button:disabled { padding: .4rem; color: #9a9a9a; background: #242424; border-style: dashed; font-size: .67rem; line-height: 1.1; cursor: not-allowed; }
.empty-state { padding: 1.4rem; border: 1px dashed #444; border-radius: 9px; text-align: center; color: var(--cmp-gray-light); }
.empty-state b, .empty-state span { display: block; }
.empty-state b { color: white; font-family: var(--cmp-heading); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.span-2 { grid-column: span 2; }
.field > span { display: flex; justify-content: space-between; margin-bottom: .4rem; color: #ddd; font-size: .78rem; font-weight: 700; }
.field i { color: var(--cmp-gray); font-style: normal; font-weight: 400; }
.field input, .field textarea { width: 100%; min-height: 48px; border: 1px solid #454545; border-radius: 8px; padding: .8rem .9rem; background: #101010; color: white; }
.field textarea { resize: vertical; }
.field input[aria-invalid="true"] { border-color: #ff4d4d; }
.field > small:not(.field-error) { display: block; text-align: right; color: var(--cmp-gray); }
.field-error { min-height: 1.1em; margin: .35rem 0 0; color: #ff7777; font-size: .74rem; }
.privacy-check { display: flex; align-items: flex-start; gap: .75rem; margin-top: 1.25rem; color: var(--cmp-gray-light); font-size: .8rem; }
.privacy-check input { width: 20px; height: 20px; accent-color: var(--cmp-red); }
.honeypot { position: absolute; left: -10000px; }
.form-actions, .success-actions { display: flex; justify-content: space-between; gap: .75rem; margin-top: 2rem; }
.form-actions.end { justify-content: flex-end; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .65rem; border: 1px solid transparent; border-radius: 8px; padding: .75rem 1.2rem; font: 800 .78rem var(--cmp-body); letter-spacing: .055em; text-decoration: none; cursor: pointer; }
.button.primary { background: var(--cmp-red); color: white; box-shadow: 0 10px 28px var(--cmp-red-glow); }
.button.primary:hover { background: #e01717; }
.button.primary:disabled { opacity: .6; cursor: wait; }
.button.secondary { border-color: #484848; background: #181818; color: white; }
.review-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin: 0; border: 1px solid #383838; border-radius: 10px; overflow: hidden; }
.review-list div { padding: 1rem; border-right: 1px solid #383838; border-bottom: 1px solid #383838; }
.review-list div:nth-child(even) { border-right: 0; }
.review-list dt { color: var(--cmp-gray); font-size: .67rem; letter-spacing: .1em; text-transform: uppercase; }
.review-list dd { margin: .25rem 0 0; font-weight: 700; }
.notice { margin-top: 1.25rem; padding: 1rem 1.15rem; border-left: 3px solid var(--cmp-red); background: rgba(204,17,17,.09); }
.notice b { color: #ff5d5d; font: 800 .85rem var(--cmp-heading); letter-spacing: .08em; }
.notice p { margin: .35rem 0 0; color: var(--cmp-gray-light); font-size: .82rem; }
.inline-error, .state-error { border-color: #7b2323; color: #ff9b9b; }
.inline-error { margin-top: 1rem; padding: .8rem; border-radius: 8px; background: #321313; }
.state-card { width: 100%; max-width: 780px; margin: 0 auto 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; }
.state-card > * { min-width: 0; }
.state-card small { display: block; color: var(--cmp-gray-light); }
.spinner { width: 28px; height: 28px; flex: 0 0 28px; border: 3px solid #444; border-top-color: var(--cmp-red); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.success-card { padding: clamp(1.5rem, 6vw, 3.5rem); text-align: center; }
.success-card h2 { margin: .4rem 0; font: 800 clamp(2rem, 7vw, 4rem)/1 var(--cmp-heading); }
.success-mark { display: grid; width: 62px; height: 62px; margin: 0 auto 1rem; place-items: center; border: 2px solid #35cf72; border-radius: 50%; color: #35cf72; font-size: 2rem; }
#success-protocol { display: inline-block; margin: 1rem 0 1.5rem; padding: .65rem 1rem; border: 1px dashed #666; border-radius: 7px; font-family: ui-monospace, monospace; }
.success-actions { justify-content: center; flex-wrap: wrap; }
.management { padding: clamp(1.25rem, 5vw, 3rem); }
.management h2 { font: 800 2.4rem var(--cmp-heading); }
.management .status-pill { display: inline-block; padding: .35rem .65rem; border-radius: 99px; background: #3a2222; color: #ff7777; font-size: .72rem; font-weight: 800; }
footer { display: flex; justify-content: space-between; gap: 1rem; padding: 1.5rem clamp(1rem, 4vw, 3rem); border-top: 1px solid #292929; color: var(--cmp-gray); font-size: .7rem; }
footer span { color: var(--cmp-gray-light); font-weight: 800; letter-spacing: .08em; }

@media (max-width: 720px) {
  .secure-label { display: none; }
  .shell { width: min(100% - 1rem, 620px); padding-top: 2rem; }
  .hero h1 { font-size: clamp(2.15rem, 12vw, 3.4rem); }
  .hero > p:last-child { padding-inline: .5rem; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 124px; padding-left: 4.5rem; }
  .service-icon { position: absolute; left: 1rem; top: 1.1rem; }
  .time-grid { grid-template-columns: repeat(3, 1fr); }
  .location-card { align-items: stretch; flex-direction: column; }
  .location-card .button { width: 100%; }
  .revision-guide > div { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .form-actions { flex-direction: column-reverse; }
  .form-actions.end { flex-direction: column; }
  .button { width: 100%; }
  .state-card { align-items: stretch; flex-direction: column; }
  .state-card .button { white-space: normal; }
  .step { font-size: 0; }
  .step span { margin: 0; font-size: .72rem; }
  .review-list { grid-template-columns: 1fr; }
  .review-list div { border-right: 0; }
  footer { flex-direction: column; text-align: center; }
}
@media (max-width: 380px) {
  .topbar { padding-inline: .75rem; }
  .brand { gap: .45rem; font-size: .9rem; letter-spacing: .055em; }
  .brand img { width: 50px; }
  .shell { width: calc(100% - .75rem); }
  .time-grid { grid-template-columns: repeat(2, 1fr); }
  .form-step { padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.prefill-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;margin:0 0 1rem;border:1px solid #8d1d1d;background:#171010}.prefill-summary p{margin:.3rem 0}.prefill-summary small{color:#bbb}.prefilled-field.is-collapsed{display:none}
