  :root{
    --ink:#F7F7FA;
    --card:#FFFFFF;
    --card-raised:#F1F2F8;
    --paper:#20223A;
    --paper-dim:#6B6E85;
    --safelight:#2E3C80;
    --safelight-bright:#3E4FA0;
    --brass:#B7BAD6;
    --border:#DDDFEC;
    --radius:4px;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--ink);
    color:var(--paper);
    font-family:'Inter', sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  .booking-wrap{
    max-width:620px;
    margin:0 auto;
    padding:48px 28px;
  }
  .booking-card{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:40px 36px 36px;
  }
  .eyebrow-row{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:14px;
  }
  .safelight-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--safelight);
    box-shadow:0 0 8px 1px rgba(46,60,128,0.45);
    flex-shrink:0;
  }
  .eyebrow{
    font-size:13px;
    letter-spacing:0.02em;
    color:var(--paper-dim);
  }
  h1{
    font-family:'Fraunces', serif;
    font-weight:500;
    font-size:32px;
    line-height:1.15;
    margin:0 0 8px;
    color:var(--paper);
  }
  .sub{
    color:var(--paper-dim);
    font-size:15px;
    line-height:1.5;
    margin:0 0 32px;
    max-width:46ch;
  }
  hr.rule{
    border:none;
    border-top:1px solid var(--brass);
    opacity:0.35;
    margin:0 0 28px;
  }
  fieldset{
    border:none;
    padding:0;
    margin:0 0 26px;
  }
  legend{
    font-size:13px;
    font-weight:700;
    color:#000000;
    margin-bottom:12px;
    padding:0;
  }
  .session-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
  }
  @media (max-width:480px){
    .session-grid{ grid-template-columns:repeat(2, 1fr); }
  }
  .session-tile{
    position:relative;
  }
  .session-tile input{
    position:absolute;
    opacity:0;
    width:100%;
    height:100%;
    margin:0;
    cursor:pointer;
  }
  .session-tile label{
    display:block;
    text-align:center;
    padding:14px 8px;
    border:1px solid var(--border);
    border-radius:var(--radius);
    font-size:14px;
    color:var(--paper-dim);
    background:var(--card-raised);
    cursor:pointer;
    transition:border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
  }
  .session-tile input:focus-visible + label{
    outline:2px solid var(--safelight-bright);
    outline-offset:2px;
  }
  .session-tile input:checked + label{
    border-color:var(--safelight);
    color:#FFFFFF;
    font-weight:600;
    background:var(--safelight);
  }
  .session-tile label:active{
    background:var(--safelight);
    color:#FFFFFF;
    font-weight:600;
  }
  .field{
    margin-bottom:20px;
  }
  .field label{
    display:block;
    font-size:13px;
    font-weight:500;
    color:var(--paper-dim);
    margin-bottom:8px;
  }
  .label-strong{
    color:#000000;
    font-weight:700;
  }
  .field input[type="text"],
  .field input[type="email"],
  .field input[type="tel"],
  .field input[type="date"],
  .field input[type="time"],
  .field textarea{
    width:100%;
    background:var(--card-raised);
    border:1px solid var(--border);
    border-radius:var(--radius);
    color:var(--paper);
    font-family:'Inter', sans-serif;
    font-size:15px;
    padding:12px 14px;
  }
  .field input[type="date"],
  .field input[type="time"]{
    font-variant-numeric:tabular-nums;
    color-scheme:light;
  }
  .field textarea{
    resize:vertical;
    min-height:90px;
    line-height:1.5;
  }
  .field input::placeholder,
  .field textarea::placeholder{
    color:#6E6A62;
  }
  .field input:focus,
  .field textarea:focus{
    outline:none;
    border-color:var(--safelight-bright);
  }
  .row-2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
  }
  @media (max-width:480px){
    .row-2{ grid-template-columns:1fr; }
  }
  .submit-btn{
    width:100%;
    background:var(--safelight);
    color:#FFFFFF;
    border:none;
    border-radius:var(--radius);
    padding:15px 20px;
    font-family:'Inter', sans-serif;
    font-size:15px;
    font-weight:600;
    cursor:pointer;
    transition:background 0.15s ease;
    margin-top:6px;
  }
  .submit-btn:hover{
    background:var(--safelight-bright);
  }
  .submit-btn:focus-visible{
    outline:2px solid var(--safelight);
    outline-offset:2px;
  }
  .fine-print{
    font-size:12px;
    color:#6E6A62;
    text-align:center;
    margin-top:16px;
  }
  .honeypot{
    position:absolute;
    left:-9999px;
    width:1px;
    height:1px;
    overflow:hidden;
  }
  .status-msg{
    display:none;
    padding:14px 16px;
    border-radius:var(--radius);
    font-size:14px;
    margin-top:16px;
  }
  .status-msg.success{
    display:block;
    background:rgba(107,153,107,0.15);
    border:1px solid #6B996B;
    color:#B7D6B7;
  }
  .status-msg.error{
    display:block;
    background:rgba(193,68,60,0.15);
    border:1px solid var(--safelight);
    color:#F0B9B5;
  }
  @media (prefers-reduced-motion: reduce){
    .session-tile label, .submit-btn{ transition:none; }
  }
