/* Viking Off-Road | Customer booking | charcoal + true crimson, v0.2 */
:root{
  color-scheme:dark;
  --bg:#101112;--surface:#1a1c20;--surface2:#212328;--surface3:#292b30;
  --edge:#36383e;--edge-strong:#515257;
  --red:#c52132;--red-bright:#e13240;--red-dark:#6d1420;
  --text:#f5f5f4;--secondary:#bec1c5;--subtle:#858c95;
  --font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:
  radial-gradient(ellipse 550px 510px at 91% 9%,rgba(143,13,31,.12),transparent 74%),
  linear-gradient(180deg,#151619 0,#101112 54%,#101112 100%);
  color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{
 outline:2px solid #eb4757;outline-offset:3px}
.bg-glow{pointer-events:none;position:absolute;inset:83px 0 auto;height:510px;overflow:hidden;
 background:radial-gradient(ellipse 490px 290px at 90% 30%,rgba(142,19,34,.13),transparent 80%);
 z-index:0}
.booking-header{height:84px;border-bottom:1px solid #333539;background:#151618;
 display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4.2vw,70px);
 position:relative;z-index:3}
.booking-header .brand{display:flex;align-items:center;gap:13px;color:#fff;
 font-size:17px;font-weight:900;letter-spacing:.09em;line-height:1.2}
.booking-header .brand img{width:45px;height:45px;object-fit:contain}
.booking-header .brand b{color:#e43340}
.booking-header .brand small{display:block;font-size:9px;color:#a8acb2;letter-spacing:.18em;margin-top:5px}
.booking-header nav{display:flex;gap:30px;align-items:center}
.booking-header nav a{color:#bcc0c6;font-size:11px;font-weight:800;letter-spacing:.07em;white-space:nowrap;transition:color .15s}
.booking-header nav a:hover{color:#fff}
.booking-header nav .head-call{border:1px solid #b12634;background:#af1e2d;color:#fff;
 padding:12px 17px;border-radius:8px}
.booking-header nav .head-call:hover{background:#d32c3a}
.booking-container{max-width:1440px;margin:0 auto;padding:48px clamp(18px,4.6vw,76px) 20px;
 position:relative;z-index:1}
.booking-heading{margin:0 0 31px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:25px}
.booking-heading .kicker{grid-column:1/-1;font-size:10px;letter-spacing:.19em;font-weight:900;color:#f04451}
.booking-heading h1{grid-column:1/-1;font-size:clamp(39px,4.3vw,64px);line-height:1.02;
 letter-spacing:-.062em;margin:12px 0 13px;font-weight:900;color:#fff}
.booking-heading h1 em{font-style:normal;color:#e02b39}
.booking-heading>p{grid-column:1/-1;color:#abb0b8;font-size:13px;line-height:1.75;max-width:690px;
 margin:0 0 17px}
.booking-hint{grid-column:1/-1;display:flex;align-items:center;width:fit-content;max-width:100%;
 min-height:42px;padding:10px 15px 10px 35px;background:#1e2024;border:1px solid #36383e;
 color:#bfc2c7;border-radius:9px;font-size:11px;line-height:1.6;position:relative}
.booking-hint:before{content:"";position:absolute;left:14px;top:50%;width:8px;height:8px;
 transform:translateY(-50%);background:#e03240;border-radius:50%;box-shadow:0 0 0 4px #c3223125}
.booking-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.booking-panel{min-width:0;background:linear-gradient(155deg,#212328,#181a1e 66%);
 border:1px solid #3a3b42;border-radius:16px;padding:clamp(20px,2.65vw,35px);
 box-shadow:0 12px 35px rgba(0,0,0,.17);position:relative;overflow:hidden}
.booking-panel:before{content:"";display:block;position:absolute;top:0;left:0;width:114px;
 height:3px;background:linear-gradient(90deg,#a71929,#e52d3c)}
.booking-panel.booking-details{background:linear-gradient(150deg,#202227,#191b20 64%)}
.panel-head{border-bottom:1px solid #35383e;padding-bottom:20px;margin-bottom:20px;
 display:flex;align-items:center;justify-content:space-between;gap:12px}
.panel-head>div>span{font-size:10px;font-weight:900;letter-spacing:.14em;color:#d13a47}
.panel-head h2{font-size:clamp(20px,2.3vw,27px);margin:6px 0 0;color:#fff;font-weight:900;letter-spacing:-.04em}
.panel-head .head-rune{font:38px Georgia,serif;color:#af2632}
.booking-panel label{display:block;margin:0 0 15px;color:#d4d7dc;font-size:11px;font-weight:800}
.booking-panel label>input:not([type="checkbox"]),
.booking-panel label>select,.booking-panel label>textarea{
 display:block;margin-top:7px;width:100%;min-width:0;min-height:45px;padding:10px 12px;
 border:1px solid #444750;background:#14161a;border-radius:8px;color:#f3f3f4;
 box-shadow:none;font:500 13px/1.4 var(--font);outline:0}
.booking-panel label>select,.booking-panel label>input[type="date"]{color-scheme:dark}
.booking-panel label>textarea{min-height:88px;resize:vertical}
.booking-panel label>input::placeholder,.booking-panel label>textarea::placeholder{color:#747a83}
.booking-panel label>input:not([type="checkbox"]):focus,
.booking-panel label>select:focus,.booking-panel label>textarea:focus{
 border-color:#c22b38;outline:2px solid #b51d3040;outline-offset:1px}
.booking-panel label>input:not([type="checkbox"]):hover,
.booking-panel label>select:hover,.booking-panel label>textarea:hover{border-color:#62656f}
.booking-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px}
.booking-duration{background:#23252a;border:1px solid #3c4048;border-radius:8px;
 min-height:64px;padding:10px 14px;margin:0 0 15px;display:flex;flex-direction:column;gap:5px;justify-content:center}
.booking-duration small{font-size:9px;color:#9299a2;font-weight:900;letter-spacing:.11em}
.booking-duration strong{color:#f1f1f2;font-size:15px;font-weight:850}
.booking-times-heading{border-top:1px solid #36383d;padding:22px 0 13px;margin-top:6px;
 display:flex;align-items:center;justify-content:space-between;gap:9px;color:#b9bec6;
 font-size:10px;letter-spacing:.12em;font-weight:850}
.booking-times-heading span{font-size:9px;font-weight:700;color:#888e96}
.booking-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;
 min-height:135px;max-height:290px;overflow-y:auto;align-content:start}
.booking-times button{border:1px solid #474b52;background:#292b30;color:#d7d9df;
 border-radius:8px;min-height:43px;padding:9px 5px;font-size:11px;font-weight:800;transition:.16s}
.booking-times button:hover{border-color:#b72c3b;background:#3b252c;color:#fff}
.booking-times button.selected{border-color:#ef3c4b;background:#9f1d2c;color:#fff;
 box-shadow:inset 0 0 0 1px #e94150}
.booking-times .waiting{grid-column:1/-1;background:#17191d;border:1px dashed #383b42;
 color:#adb2ba;font-size:12px;line-height:1.6;padding:21px;border-radius:9px}
.selected-time{margin-top:13px;padding:13px 15px;border-radius:8px;
 background:#241d21;border:1px solid #7b2834;color:#cad0d5;font-size:12px}
.selected-time strong{color:#fff;font-size:14px;margin-left:9px}
.booking-details form{min-width:0}
.booking-deposit{display:grid;grid-template-columns:minmax(150px,auto) minmax(0,1fr);
 align-items:center;gap:20px;background:#121417;border:1px solid #4e252b;
 border-left:4px solid #d52234;padding:20px;border-radius:10px;margin:15px 0 15px}
.booking-deposit small{font-size:9px;letter-spacing:.13em;font-weight:900;color:#e94450}
.booking-deposit strong{display:block;color:#f7f7f7;font-size:34px;
 font-weight:900;letter-spacing:-.055em;line-height:1.2;margin-top:7px}
.booking-deposit span{color:#aeb4bb;font-size:11px;line-height:1.7;max-width:245px;justify-self:end}
.booking-terms{background:#202227;border-radius:8px;padding:14px 15px;color:#bcc1c7;
 line-height:1.6;font-size:11px;border:1px solid #3b3d43;margin:0 0 12px}
.booking-panel label.terms-check{display:grid;grid-template-columns:19px minmax(0,1fr);
 align-items:start;gap:12px;color:#d1d5db;font-size:11px;line-height:1.65;
 font-weight:600;margin:17px 0 15px;cursor:pointer;width:100%;min-width:0}
.booking-panel label.terms-check>input[type="checkbox"]{
 appearance:auto!important;display:block!important;
 width:17px!important;height:17px!important;min-width:17px!important;
 min-height:17px!important;max-width:17px!important;margin:2px 0 0!important;
 padding:0!important;border:1px solid #69717c!important;
 border-radius:3px!important;accent-color:#c82435;
 background:#161719!important;box-shadow:none!important;flex:none!important;
 grid-column:1!important;grid-row:1!important}
.booking-panel label.terms-check{overflow-wrap:anywhere}
.booking-submit{width:100%;min-height:52px;border-radius:9px;border:1px solid #c82030;
 background:linear-gradient(105deg,#bc1e2e,#d02738);color:#fff;
 font-size:12px;font-weight:900;letter-spacing:.07em;padding:12px 19px;cursor:pointer}
.booking-submit:hover:not(:disabled){background:#e03343}
.booking-submit:disabled{color:#aeb2b9;border-color:#444850;background:#292d33;cursor:not-allowed}
.booking-notice{font-size:11px;line-height:1.6;color:#c6c9cc;min-height:0;margin:9px 0 0}
.booking-bottom{border-top:1px solid #36383f;display:flex;justify-content:space-between;
 flex-wrap:wrap;gap:12px;padding:23px 0;margin-top:32px;color:#878e97;
 font-size:10px;letter-spacing:.08em;font-weight:800}
.booking-bottom a{color:#e33a46}
@media(max-width:1080px){
 .booking-grid{grid-template-columns:1fr}
 .booking-container{max-width:790px}
 .booking-times{min-height:0;grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:640px){
 .booking-header{height:76px;padding:0 16px}
 .booking-header .brand{font-size:13px;gap:8px}
 .booking-header .brand img{width:34px;height:34px}
 .booking-header .brand small{font-size:8px;letter-spacing:.09em}
 .booking-header nav{gap:7px}
 .booking-header nav a:not(.head-call){display:none}
 .booking-header nav .head-call{padding:10px 12px;font-size:10px}
 .booking-container{padding:31px 16px 15px}
 .booking-heading{margin-bottom:24px}
 .booking-heading h1{font-size:clamp(35px,10vw,48px);letter-spacing:-.055em}
 .booking-heading>p{font-size:12px;line-height:1.75}
 .booking-panel{padding:19px 18px;border-radius:13px}
 .booking-grid{gap:14px}
 .panel-head{padding-bottom:16px;margin-bottom:18px}
 .booking-times{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 .booking-two{grid-template-columns:1fr;gap:0}
 .booking-deposit{grid-template-columns:1fr;gap:10px;padding:16px}
 .booking-deposit span{justify-self:start;max-width:none}
 .booking-duration{margin-top:1px}
 .booking-bottom{gap:14px;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Clear manual-booking fallback while online payment credentials are absent. */
.booking-call-alternative{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:11px;padding:12px 18px;min-height:45px;border-radius:9px;border:1px solid #9c2b36;background:#351d24;color:#f6eeee;font-weight:850;font-size:12px;text-align:center;letter-spacing:.025em;transition:background .16s ease}
.booking-call-alternative:hover{background:#632332}
.booking-call-alternative[hidden]{display:none!important}
