:is(.table-scroll){max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#17323f;background:#f4f7f7;line-height:1.5}*{box-sizing:border-box}body{margin:0}header{background:#123e45;color:#fff;padding:1rem max(5vw,1rem);display:flex;justify-content:space-between;gap:1rem}.brand{color:#fff;font-weight:800;text-decoration:none}main{max-width:950px;margin:3rem auto;padding:0 1rem}.hero{max-width:720px;margin-bottom:2rem}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:#36766e;font-weight:800;font-size:.8rem}h1{font-size:clamp(2rem,5vw,3.3rem);line-height:1.1}.card{background:#fff;border:1px solid #d6e1e3;border-radius:1rem;padding:clamp(1.2rem,4vw,2.5rem);box-shadow:0 8px 30px #17323f0c;margin:1rem 0}.narrow{max-width:480px;margin:auto}.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{display:block;font-weight:700;margin:1rem 0}input,select{display:block;width:100%;padding:.8rem;margin-top:.35rem;border:1px solid #8ca2a8;border-radius:.4rem;font:inherit}small,.fine{display:block;color:#526b73;font-weight:400;margin-top:.35rem}button,.button{display:inline-block;border:0;border-radius:.4rem;background:#ce7900;color:#fff;padding:.8rem 1.15rem;font-weight:800;font:inherit;text-decoration:none;cursor:pointer}button:disabled{background:#849297;cursor:not-allowed}.notice,.warning{padding:1rem;background:#fff2cd;border-left:4px solid #ce7900}.pill{display:inline-block;background:#e4f2ef;color:#24574d;border-radius:2rem;padding:.35rem .8rem;font-weight:700}dl{display:grid;grid-template-columns:minmax(10rem,1fr) 2fr;gap:.7rem}dt{color:#526b73}dd{margin:0;font-weight:650}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.8rem;border-bottom:1px solid #d6e1e3}a{color:#1b665f}hr{border:0;border-top:1px solid #d6e1e3;margin:2rem 0}@media(max-width:650px){header,.two{display:block}header span{display:block;margin-top:.4rem;font-size:.75rem}main{margin:1.5rem auto}dl{grid-template-columns:1fr}dd{margin-bottom:.5rem}table{font-size:.85rem}.card{padding:1.2rem}}


/* Long accepted drafts and simulated messages stay readable on narrow screens. */
pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
input[type="checkbox"] { width: auto; margin-right: .5rem; }
.secure-booking{background:#166534;color:#fff;font-weight:800;border:2px solid #14532d}
.secure-booking:hover{background:#14532d}
.secure-booking:focus-visible{outline:3px solid #fbbf24;outline-offset:3px}
.customer-reference{margin-top:2rem;text-align:right;font-size:.85rem;color:#63747a}
.email-text-preview{white-space:pre-wrap;overflow-wrap:anywhere}
.signature-block img{max-width:100%;height:auto}
textarea{width:100%;font:inherit;padding:.8rem;border:1px solid #8ca2a8;border-radius:.4rem}
.agreement-signatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin:2rem 0}
.signature-block{border:1px solid #d6e1e3;border-radius:.5rem;padding:1.25rem;overflow-wrap:anywhere}
.signature-block dl{display:block}
.signature-block dd{margin-bottom:.6rem}
@font-face{font-family:AcceptanceSerif;src:url("/book/acceptance-italic.ttf") format("truetype");font-style:normal;font-display:swap}
.electronic-name{font:italic 2rem/1.4 AcceptanceSerif,serif;border-bottom:1px solid #8ca2a8;padding-bottom:.6rem}
label:has(>input[type=radio]),label:has(>input[type=checkbox]){display:flex!important;flex-direction:row!important;align-items:flex-start;gap:.55rem}
label>input[type=radio],label>input[type=checkbox]{width:1.15rem!important;min-width:1.15rem;height:1.15rem;margin:.2rem 0 0!important;flex:0 0 1.15rem;order:-1}
@media(max-width:650px){.agreement-signatures{grid-template-columns:1fr}}
details { margin: 1rem 0; }
summary { cursor: pointer; font-weight: 600; }

/* Give customer quote forms and comparison rows room to scan on phones. */
@media (max-width: 650px) {
  header { padding: 1rem; }
  main { margin: 1.25rem auto 2rem; }
  .card { padding: 1.25rem 1rem; margin: 1.1rem 0; }
  .card h2 { margin: 0 0 .7rem; line-height: 1.3; overflow-wrap: anywhere; }
  .card p { line-height: 1.6; }
  .card label { margin: 1.1rem 0; line-height: 1.5; }
  .card form > button {
    width: 100%;
    min-height: 3rem;
    margin: .25rem 0 .2rem;
    padding-block: .75rem;
    line-height: 1.35;
    white-space: normal;
  }
  .card input[type="radio"],
  .card input[type="checkbox"] {
    display: inline-block;
    width: auto;
    min-height: 1rem;
    margin: 0 .55rem .2rem 0;
    padding: 0;
    vertical-align: middle;
  }
  #walkthrough-quote dl { gap: .2rem; margin: 1rem 0 0; }
  #walkthrough-quote dt { margin-top: .65rem; font-size: .9rem; line-height: 1.35; }
  #walkthrough-quote dd { margin: 0 0 .45rem; font-size: 1.05rem; line-height: 1.45; overflow-wrap: anywhere; }
  #program-comparison fieldset {
    min-width: 0;
    margin: .8rem 0 1.1rem;
    padding: .25rem .75rem;
    border: 1px solid #d6e1e3;
    border-radius: .75rem;
  }
  #program-comparison legend { padding: 0 .35rem; font-weight: 700; }
  #program-comparison fieldset label {
    margin: .3rem 0;
    padding: .8rem .1rem;
    border-bottom: 1px solid #e6ecec;
    line-height: 1.5;
    overflow-wrap: anywhere;
  }
  #program-comparison fieldset label:last-child { border-bottom: 0; }
  #program-comparison form + form {
    margin-top: 1.25rem;
    padding-top: 1.1rem;
    border-top: 1px solid #e2e9e9;
  }
  .customer-reference { margin-top: 1.5rem; text-align: left; }
}

@media (max-width: 360px) {
  main { padding-inline: .8rem; }
  .card { padding-inline: .9rem; }
}

/* Owner TEST status stays readable, including stable provider IDs, on phones. */
header a:not(.brand) { color: #e3f3f5; text-underline-offset: 3px; }
header a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
main li { overflow-wrap: anywhere; }
.escape-nav { margin: 0 0 1rem; }
.escape-nav a, a.booking-back { display: inline-block; padding: .4rem 0; font-weight: 600; text-underline-offset: .2em; }
.escape-nav a:focus-visible, .draft-restore:focus-visible { outline: 2px solid #177386; outline-offset: 4px; }
.draft-notice { padding: .75rem 1rem; background: #edf6f8; border-left: 3px solid #177386; border-radius: .25rem; }
.draft-restore { margin-left: .5rem; }

/* Keep the catalog link clear, keyboard-visible, and comfortably tappable. */
.program-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.program-heading h2 { flex: 1 1 16rem; min-width: 0; overflow-wrap: anywhere; margin-block: .4rem; }
.program-details-action { display: inline-flex; flex: 0 1 20rem; flex-direction: column; align-items: flex-end; gap: .2rem; max-width: 100%; text-align: right; }
.program-details-link { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: .55rem .8rem; border: 1px solid #17323f; border-radius: .45rem; background: #17323f; color: #fff; font-weight: 750; line-height: 1.25; text-align: center; text-decoration: none; touch-action: manipulation; }
.program-details-link:hover { background: #245366; text-decoration: none; }
.program-details-link:focus-visible { outline: 3px solid #ce7900; outline-offset: 3px; box-shadow: 0 0 0 2px #fff; }
.program-details-action small { max-width: 20rem; font-size: .8rem; line-height: 1.35; }
