.bookpage{background:var(--paper)}
.bhead{background:var(--deep);color:#c9d6e5;text-align:center;padding:clamp(2rem,6vh,3.4rem) 1.25rem clamp(3rem,8vh,4.6rem)}
.bhead__logo{width:clamp(160px,22vw,240px);margin:0 auto}
.bhead h1{color:#fff;font-size:clamp(2rem,4.5vw,3.2rem);margin:1.1rem 0 .6rem}
.bhead p{margin:0 auto;max-width:52ch}
.bgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(1.2rem,3vw,2.4rem);align-items:start;margin-top:-2.2rem;padding-bottom:clamp(3rem,8vh,5rem)}
.bsteps{display:grid;gap:1.1rem}
.bstep{background:#fff;border-top:3px solid var(--navy);padding:clamp(1.1rem,2.5vw,1.7rem);box-shadow:0 20px 50px -38px rgba(10,29,56,.65)}
.bstep h2{font-family:var(--sans);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);display:flex;align-items:center;gap:.7rem;margin:0 0 1rem}
.bstep h2 span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-size:.85rem;letter-spacing:0}
.bstep h2 small{letter-spacing:.06em;text-transform:none;color:var(--slate-2);font-weight:400}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{display:grid;gap:.35rem}
.field.full{grid-column:1/-1}
.field label{font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--slate)}
.field .opt{text-transform:none;letter-spacing:0;color:var(--slate-2);font-weight:400}
input,select,textarea{font:inherit;font-size:1rem;padding:.85rem .9rem;min-height:52px;border:1.5px solid var(--line-2);background:#fff;color:var(--ink);border-radius:0;width:100%}
textarea{min-height:96px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
input[aria-invalid="true"]{border-color:var(--red)}
.err{color:var(--red);font-size:.82rem;margin:.1rem 0 0}
.extras{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.7rem}
.extra{width:100%;min-height:62px;display:grid;gap:.15rem;padding:.75rem .9rem;text-align:left;font:inherit;background:#fff;border:1.5px solid var(--line-2);cursor:pointer}
.extra b{font-size:.92rem;color:var(--navy)}
.extra span{font-size:.84rem;color:var(--slate-2)}
.extra[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);box-shadow:inset 0 -3px 0 var(--red)}
.extra[aria-pressed="true"] b,.extra[aria-pressed="true"] span{color:#fff}
.qty{display:flex;align-items:center;gap:.5rem;padding:.5rem .2rem 0;font-size:.84rem;color:var(--slate)}
.qty input{width:5.5rem;min-height:44px;padding:.5rem}
.bsummary{position:sticky;top:1.2rem}
.scard{background:#fff;border-top:3px solid var(--red);padding:clamp(1.1rem,2.5vw,1.7rem);box-shadow:var(--shadow);display:grid;gap:.75rem}
.scard h2{font-family:var(--sans);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--navy);margin:0}
.scard dl{margin:0;display:grid;gap:.35rem}
.scard dl div{display:flex;justify-content:space-between;gap:1rem;font-size:.92rem;color:var(--slate)}
.scard dd{margin:0;font-variant-numeric:tabular-nums}
.scard__total,.scard__dep{display:flex;justify-content:space-between;align-items:baseline;margin:0;padding-top:.6rem;border-top:1px solid var(--line)}
.scard__total b{font-family:var(--serif);font-size:1.6rem;color:var(--navy)}
.scard__dep{border-top:0;padding-top:0}
.scard__dep span{max-width:60%}
.scard__dep b{font-family:var(--serif);font-size:2rem;color:var(--red)}
.scard__note,.scard__fine{margin:0;font-size:.8rem;color:var(--slate-2)}
.policy{font-size:.8rem;color:var(--slate)}
.policy summary{cursor:pointer;color:var(--navy);font-weight:600}
.policy p{margin:.5rem 0 0}
.bdone{background:var(--deep);color:#c9d6e5;text-align:center;padding:clamp(3rem,10vh,6rem) 1.25rem;min-height:70dvh;display:grid;place-items:center}
.bdone h2{color:#fff;font-size:clamp(1.9rem,4.5vw,3rem);margin:1.2rem 0 .6rem}
.bdone .wrap{display:grid;justify-items:center;gap:.8rem;max-width:44rem}
.bdone .ref{font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--red-soft)}
.bdone a{color:#fff}
.bdone .btn{margin-top:1rem}
@media(max-width:960px){.bgrid{grid-template-columns:1fr}.bsummary{position:static}}
@media(max-width:560px){.fields{grid-template-columns:1fr}.extras{grid-template-columns:1fr}}
