/* Booking-only presentation. Shared catalogue, checkout and workshop pages are unchanged. */
.shb-page .rt3-shop { background:#fafbf9; color:#292d29; }
.shb-page .rt3-shell { width:min(1200px,calc(100% - 64px)); padding-inline:0; }
.shb-page .rt3 h1,.shb-page .rt3 h2,.shb-page .rt3 h3,.shb-page .rt3-eyebrow,.shb-page .rt3-form label > span { letter-spacing:0; }
.shb-page .rt3-eyebrow { font-size:12px; text-transform:none; color:#842c3b; margin-bottom:12px; }
.shb-page .shb-hero { position:relative; background:#28332b; min-height:290px; color:white; }
.shb-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; }
.shb-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(17,24,20,.85),rgba(17,24,20,.3) 70%,rgba(17,24,20,.12)); }
.shb-hero .shb-hero-copy { position:relative; z-index:1; padding-block:24px 38px; }
.shb-hero nav { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; line-height:1.6; margin-bottom:30px; }
.shb-hero nav a { color:white; text-decoration:none; }
.shb-hero nav a:hover { text-decoration:underline; }
.shb-page .shb-hero .rt3-eyebrow { color:#fff; margin:0 0 12px; }
.shb-page .shb-hero h1 { color:white; font-size:48px; line-height:1.2; margin:0 0 16px; }
.shb-page .shb-hero-copy > p:not(.rt3-eyebrow) { color:#fff; font-size:16px; line-height:1.8; margin:0; max-width:590px; }
.shb-reassurance { background:#edf1ec; border-bottom:1px solid #dbe1d8; }
.shb-reassurance > div { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:14px; }
.shb-page .shb-reassurance p { display:flex; align-items:center; gap:10px; margin:0; color:#384b3b; font-size:13px; line-height:1.5; }
.shb-reassurance svg { width:22px; height:22px; flex:none; }
.shb-page .rt3 .shb-packages { padding:40px 0 44px; background:#fafbf9; }
.shb-page .rt3-block-head { padding-bottom:0; border-bottom:0; margin-bottom:28px; gap:24px; }
.shb-page .rt3-block-head h2 { font-size:32px; line-height:1.3; }
.shb-page .rt3-shop-all { letter-spacing:0; font-size:13px; text-transform:none; line-height:1.6; color:#842c3b; padding-block:10px; }
.shb-page .rt3-pick-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.shb-page .rt3-pick { width:100%; min-width:0; min-height:165px; padding:22px 18px 18px; border:1px solid #d6dcd3; border-radius:5px; background:#fff; box-shadow:none; color:#252c26; transform:none; transition:background .15s,border-color .15s; }
.shb-page .rt3-pick:hover { background:#f3f5ef; border-color:#8a9989; transform:none; }
.shb-page .rt3-pick.is-picked { border:2px solid #842c3b; padding:21px 17px 17px; background:#fff8f8; box-shadow:none; }
.shb-package-name { display:flex; align-items:center; justify-content:space-between; gap:10px; font:23px/1.3 'Playfair Display',serif; }
.shb-choice-dot { display:block; width:17px; height:17px; border:1px solid #899186; border-radius:50%; flex:none; }
.is-picked .shb-choice-dot { background:#842c3b; border:4px solid #fff; outline:1px solid #842c3b; }
.shb-page .rt3-pick b { color:#842c3b; font-size:18px; margin:12px 0 8px; }
.shb-page .rt3-pick small { color:#5e665c; font-size:12px; line-height:1.8; }
.shb-page .rt3-pick em { color:white; background:#842c3b; font-size:10px; padding:3px 9px; border-radius:2px; letter-spacing:0; text-transform:none; left:16px; }
.shb-page .shb-details { padding:44px 0 64px; background:#f0f2ee; border-top:1px solid #e0e4dc; }
.shb-page .rt3-booking-layout { grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr); gap:40px; }
.shb-page .rt3-form-card { border-radius:6px; background:#fff; padding:32px; border:1px solid #dfe3db; box-shadow:none; min-width:0; }
.shb-page .rt3-form-card h2 { font-size:30px; line-height:1.4; margin-bottom:28px; }
.shb-page .rt3-form { scroll-margin-top:110px; }
.shb-page .rt3-form fieldset { min-width:0; margin:0 0 26px; padding:0; border:0; }
.shb-page .rt3-form fieldset + fieldset { padding-top:4px; }
.shb-page .rt3-form legend { display:block; width:100%; padding:0 0 12px; margin-bottom:18px; border-bottom:1px solid #e3e6df; font-size:14px; font-weight:600; color:#344633; }
.shb-page .rt3-form label { display:block; margin:0 0 18px; min-width:0; }
.shb-page .rt3-form label:last-child { margin-bottom:0; }
.shb-page .rt3-form label > span { font-size:13px; text-transform:none; font-weight:500; line-height:1.5; color:#374033; margin-bottom:8px; }
.shb-page .rt3-form input,.shb-page .rt3-form select,.shb-page .rt3-form textarea { width:100%; max-width:100%; min-width:0; font-family:Inter,sans-serif; font-size:16px!important; letter-spacing:0; min-height:48px!important; border:1px solid #bfc8b9!important; border-radius:4px!important; padding:11px 13px!important; background:#fff; color:#292e26!important; box-shadow:none; line-height:1.5; }
.shb-page .rt3-form input:focus,.shb-page .rt3-form select:focus,.shb-page .rt3-form textarea:focus { outline:2px solid #842c3b; outline-offset:2px; border-color:#842c3b; box-shadow:none; }
.shb-page .rt3-form textarea { min-height:108px!important; resize:vertical; }
.shb-page .rt3-form-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-bottom:18px; }
.shb-page .rt3-form-row label { margin-bottom:0; }
.shb-page .rt3-form .rt3-btn { width:100%; min-height:54px; display:flex; align-items:center; justify-content:center; gap:12px; margin:0; padding:14px 20px; border-radius:4px; background:#842c3b; border:1px solid #842c3b; color:#fff; font:500 15px/1.5 Inter,sans-serif; letter-spacing:0; text-transform:none; }
.shb-page .rt3-form .rt3-btn:hover { background:#64202c; }
.shb-page .rt3-form .rt3-btn svg { width:20px; height:20px; flex:none; }
.shb-page .rt3 .rt3-form-note { color:#5c6556; font-size:12px; line-height:1.85; margin:14px 0 0; }
.shb-page .rt3-summary-card { padding:26px; border-radius:6px; border:1px solid #d4dccc; border-top:3px solid #842c3b; background:#fff; margin-bottom:24px; }
.shb-page .rt3-summary-card h2 { font-size:24px; line-height:1.4; margin:0; }
.shb-page .rt3-summary > div { font-size:13px; line-height:1.6; padding:12px 0; border-color:#e3e6df; color:#596250; }
.shb-page .rt3-summary b { font-size:14px; text-align:right; color:#293325; }
.shb-page .rt3-summary > div:last-child b { color:#842c3b; font-size:24px; }
.shb-page .shb-confirm-note { font-size:12px; line-height:1.8; color:#596250; margin:10px 0 0; }
.shb-craft-photo { margin:0 0 24px; }
.shb-craft-photo img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:4px; }
.shb-craft-photo figcaption { margin-top:10px; font:italic 18px/1.5 'Playfair Display',serif; color:#3c4836; }
.shb-page .rt3-info-card { padding:20px 0; border:0; border-top:1px solid #d6dece; border-radius:0; background:transparent; margin:0; }
.shb-page .rt3-info-card li { font-size:13px; line-height:1.8; color:#525e4c; margin-bottom:10px; }
.shb-page .rt3 .rt3-info-card p:not(.rt3-eyebrow) { font-size:14px; line-height:1.9; color:#47533f; }
.shb-phone { display:inline-flex; align-items:center; min-height:44px; color:#842c3b; text-decoration:none; font-weight:500; }
.shb-map { display:inline-flex; align-items:center; min-height:44px; color:#842c3b; font-size:13px; text-decoration:underline; text-underline-offset:5px; }
.shb-page .rt3-alert { border-radius:4px; font-size:14px; line-height:1.8; }
.shb-page .rt3-pick:focus-visible,.shb-page .shb-map:focus-visible,.shb-page .rt3-btn:focus-visible { outline:3px solid #9d6337; outline-offset:4px; }
@media(max-width:1050px) {
 .shb-page .rt3-pick-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
 .shb-page .rt3-booking-layout { gap:24px; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
 .shb-page .rt3-form-card { padding:24px; }
 .shb-page .rt3-summary-card { padding:20px; }
}
@media(max-width:800px) {
 .shb-page .rt3-shell { width:calc(100% - 40px); }
 .shb-page .rt3-booking-layout { grid-template-columns:1fr; gap:28px; }
 .shb-page .rt3-booking-aside { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
 .shb-page .rt3-summary-card { margin-bottom:0; }
 .shb-craft-photo { margin:0; }
 .shb-craft-photo img { aspect-ratio:4/3; }
 .shb-reassurance > div { gap:16px; }
 .shb-page .shb-reassurance p { font-size:12px; }
}
@media(max-width:540px) {
 .shb-page .shb-hero { min-height:300px; }
 .shb-hero .shb-hero-copy { padding-block:22px 30px; }
 .shb-hero nav { margin-bottom:30px; font-size:11px; }
 .shb-page .shb-hero h1 { font-size:34px; }
 .shb-page .shb-hero-copy > p:not(.rt3-eyebrow) { font-size:14px; }
 .shb-reassurance > div { flex-direction:column; align-items:start; gap:10px; padding-block:16px; }
 .shb-page .shb-reassurance p { font-size:12px; }
 .shb-reassurance svg { width:18px; height:18px; }
 .shb-page .rt3 .shb-packages { padding-block:30px; }
 .shb-page .rt3-block-head { display:block; margin-bottom:26px; }
 .shb-page .rt3-block-head h2 { font-size:27px; }
 .shb-page .rt3-shop-all { display:inline-block; margin-top:12px; }
 .shb-page .rt3-pick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 12px; }
 .shb-page .rt3-pick { padding:20px 12px 14px; min-height:162px; }
 .shb-page .rt3-pick.is-picked { padding:19px 11px 13px; }
 .shb-package-name { font-size:22px; gap:6px; }
 .shb-page .rt3-pick b { font-size:16px; }
 .shb-page .rt3-pick small { font-size:11px; }
 .shb-page .rt3-pick em { left:10px; }
 .shb-page .shb-details { padding-block:28px 36px; }
 .shb-page .rt3-form-card { padding:24px 18px; }
 .shb-page .rt3-form-card h2 { font-size:27px; }
 .shb-page .rt3-form-row { grid-template-columns:1fr; gap:18px; }
 .shb-page .rt3-form fieldset { margin-bottom:24px; }
 .shb-page .rt3-booking-aside { grid-template-columns:1fr; gap:24px; }
 .shb-page .rt3-form .rt3-btn { padding-inline:12px; font-size:14px; gap:8px; }
}
@media(prefers-reduced-motion:reduce) { .shb-page .rt3-pick { transition:none; } }
