.tb-wrap { width:min(1120px,calc(100% - 2.5rem)); margin:0 auto; padding:2.5rem 0 5rem; }
.tb-intro { display:grid; grid-template-columns:minmax(0,.9fr) minmax(280px,.55fr); gap:2rem; align-items:end; margin-bottom:1.5rem; }
.tb-intro h2 { margin:.45rem 0 0; font-size:clamp(1.9rem,4vw,3rem); line-height:1.05; }
.tb-intro > p { margin:0; color:var(--text-secondary); line-height:1.7; }
.tb-kicker { margin:0; color:var(--gold); font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.tb-form { display:grid; gap:1rem; }
.tb-question { margin:0; padding:1.25rem; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--shadow-sm); }
.tb-question legend { padding:0 .4rem; color:#17312C; font-family:"Source Serif 4",Georgia,serif; font-size:1.15rem; font-weight:700; }
.tb-question legend span { display:inline-grid; place-items:center; width:27px; height:27px; margin-right:.45rem; border-radius:50%; background:#DFF2ED; color:#007A68; font:800 .75rem "DM Sans",sans-serif; }
.tb-options { display:flex; flex-wrap:wrap; gap:.55rem; }
.tb-options label { position:relative; cursor:pointer; }
.tb-options input { position:absolute; opacity:0; pointer-events:none; }
.tb-options span { display:inline-flex; min-height:44px; align-items:center; padding:.62rem .85rem; border:1px solid #C9D8D4; border-radius:999px; color:#42524E; font-size:.84rem; font-weight:700; }
.tb-options input:checked + span { border-color:#007A68; background:#E8F6F2; color:#005F52; box-shadow:inset 0 0 0 1px #007A68; }
.tb-options input:focus-visible + span { outline:3px solid rgba(0,122,104,.25); outline-offset:2px; }
.tb-number-grid { display:grid; grid-template-columns:150px 150px minmax(220px,1fr); gap:.8rem; }
.tb-number-grid label { color:#42524E; font-size:.8rem; font-weight:800; }
.tb-number-grid small { color:var(--text-muted); font-weight:500; }
.tb-number-grid input { width:100%; min-height:46px; margin-top:.35rem; padding:.65rem .72rem; border:1px solid #C9D8D4; border-radius:9px; color:var(--text); font:inherit; }
.tb-form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; padding-top:.35rem; }
.tb-form-actions button,.tb-share button { min-height:46px; padding:.7rem 1rem; border-radius:8px; font:inherit; font-size:.86rem; font-weight:800; cursor:pointer; }
.tb-primary { border:1px solid #007A68; background:#007A68; color:#fff; }
.tb-secondary { border:1px solid #B8C9C5; background:#fff; color:#17312C; }
#tb-saved { color:#60716D; font-size:.76rem; opacity:0; transition:opacity .2s; }
#tb-saved.is-visible { opacity:1; }
.tb-brief { margin-top:3rem; padding-top:2.5rem; border-top:1px solid var(--line); }
.tb-brief-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.55fr); gap:2rem; align-items:end; }
.tb-brief-head h2 { margin:.4rem 0 0; font-size:clamp(2.2rem,5vw,4rem); }
.tb-brief-head > p { margin:0; color:var(--text-secondary); line-height:1.65; }
.tb-verdict { margin:1.5rem 0; padding:1.4rem; border:1px solid #B7DCD5; border-radius:14px; background:linear-gradient(135deg,#F4FBF9,#E6F5F1); }
.tb-verdict p { margin:0; color:#007A68; font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.tb-verdict h3 { margin:.45rem 0 .35rem; color:#17312C; font-size:2rem; }
.tb-verdict span { color:#52645F; }
.tb-section { margin-top:2.4rem; }
.tb-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.tb-section-head h3 { margin:0; font-size:1.55rem; }
.tb-section-head a { color:#007A68; font-size:.82rem; }
.tb-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.85rem; }
.tb-pick { display:flex; min-width:0; flex-direction:column; padding:1.1rem; border:1px solid var(--line); border-radius:12px; background:#fff; }
.tb-pick .meta { margin:0 0 .45rem; color:#007A68; font-size:.68rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.tb-pick h4 { margin:0 0 .55rem; font-size:1.2rem; line-height:1.15; }
.tb-pick h4 a { color:#17312C; }
.tb-pick p { margin:0 0 .7rem; color:var(--text-secondary); font-size:.83rem; line-height:1.55; }
.tb-pick .links { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:auto; padding-top:.5rem; }
.tb-pick .links a { color:#007A68; font-size:.78rem; }
.tb-pick .schedule-note { color:#8A4B13; font-weight:700; }
.tb-itinerary { padding:1.25rem 1.4rem; border-left:4px solid #007A68; background:#F7FAF9; }
.tb-itinerary h4 { margin:.2rem 0 .35rem; font-size:1.35rem; }
.tb-itinerary > p { margin:0; color:#52645F; font-size:.86rem; }
.tb-checklist { display:grid; gap:.65rem; padding:0; list-style:none; counter-reset:booking; }
.tb-checklist li { position:relative; padding:.85rem 1rem .85rem 3.1rem; border:1px solid var(--line); border-radius:10px; color:#3F4E4A; background:#fff; line-height:1.5; counter-increment:booking; }
.tb-checklist li::before { content:counter(booking); position:absolute; left:.9rem; top:.8rem; display:grid; place-items:center; width:25px; height:25px; border-radius:50%; background:#DFF2ED; color:#007A68; font-size:.72rem; font-weight:800; }
.tb-checklist time { color:#007A68; font-weight:800; }
.tb-share { margin-top:2.4rem; padding:1.2rem; border-radius:12px; background:#17312C; color:#fff; }
.tb-share label { display:block; margin-bottom:.55rem; font-weight:800; }
.tb-share > div { display:grid; grid-template-columns:1fr auto; gap:.55rem; }
.tb-share input { min-width:0; min-height:46px; padding:.65rem .75rem; border:1px solid #5E7771; border-radius:8px; background:#fff; color:#17312C; font:inherit; }
.tb-share button { border:0; background:#8ED7CA; color:#063D35; }
.tb-share p { min-height:1.2em; margin:.45rem 0 0; color:#BFE4DC; font-size:.76rem; }
@media (max-width:800px) { .tb-intro,.tb-brief-head { grid-template-columns:1fr; gap:.8rem; } .tb-card-grid { grid-template-columns:1fr; } }
@media (max-width:560px) { .tb-wrap { width:min(100% - 1.5rem,1120px); } .tb-number-grid { grid-template-columns:1fr 1fr; } .tb-number-grid label:last-child { grid-column:1/-1; } .tb-section-head { align-items:flex-start; flex-direction:column; gap:.35rem; } .tb-share > div { grid-template-columns:1fr; } }
