/* DN interior system: product information, choices and clear consultation states. */
.interior { background:#f5f7fa; color:#1f3045; }
.interior .wrap { max-width:1120px; }
.interior .site-header,.interior .site-footer { background:white; }
.interior .page-intro { background:white; border-bottom:1px solid #e4e9f0; padding:24px 0 30px; }
.interior .breadcrumbs { font-size:11px; margin-bottom:17px; color:#6a7788; }
.interior .page-intro .eyebrow { color:#526782; font-size:10px; letter-spacing:.13em; margin-bottom:8px; }
.interior .page-intro h1 { font-size:34px; letter-spacing:-.05em; line-height:1.3; }
.interior .page-intro p { max-width:390px; font-size:13px; line-height:1.8; color:#66758a; }
.page-lessons .detail-jump { background:transparent; padding-top:11px; padding-bottom:10px; border:0; }
.page-lessons .detail-jump a { font-size:12px; color:#576b85; }
.page-lessons #lesson-guide { padding:5px 0 50px; }
.interior .journey-context { padding:14px 18px; margin-bottom:20px; border:1px solid #dce4ee; border-radius:14px; background:white; }
.interior .journey-context .mini-label { font-size:10px; }
.interior .journey-context p { gap:5px; margin:7px 0; }
.interior .journey-context p span { padding:3px 8px; background:#f0f4fb; border:0; font-size:11px; }
.interior .journey-context small { font-size:11px; }
.page-lessons .journey-context[data-has-schedule=false] { display:none; }
.page-lessons #lesson-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:24px; }
.page-lessons #lesson-tabs .tab-button { position:relative; border-radius:14px; border:1px solid #dce3ed; background:white; color:#5a6b81; padding:15px 18px; text-align:left; font-size:15px; font-weight:650; display:flex; align-items:center; gap:13px; min-height:78px; }
.page-lessons #lesson-tabs .tab-button:before { content:''; display:block; flex:none; width:44px; height:44px; background:center/contain no-repeat; }
.page-lessons #lesson-tabs [data-program=kids]:before { background-image:url('./icons/helmet.webp'); }
.page-lessons #lesson-tabs [data-program=adult]:before { background-image:url('./icons/skis.webp'); }
.page-lessons #lesson-tabs [data-program=advanced]:before { background-image:url('./icons/medal.webp'); }
.page-lessons #lesson-tabs .tab-button[aria-selected=true] { border:2px solid #245dcc; padding:14px 17px; color:#174aaf; background:#f5f8ff; box-shadow:0 3px 10px #245dcc0a; }
.page-lessons #lesson-tabs .tab-button[aria-selected=true]:after { content:'✓'; position:absolute; top:8px; right:10px; font-size:11px; font-weight:800; color:#245dcc; }
.page-lessons .lesson-detail { display:grid; grid-template-columns:380px minmax(0,1fr); gap:25px; background:none; border:0; overflow:visible; align-items:start; }
.page-lessons .lesson-summary { padding:0; background:white; border:1px solid #e0e6ef; border-radius:20px; overflow:hidden; }
.lesson-visual { position:relative; height:185px; overflow:hidden; background:linear-gradient(120deg,#e7eefb,#f0f5ff 60%,#d5e4fc); padding:23px 25px; }
.lesson-visual:after { content:''; position:absolute; width:230px; height:230px; border:1px solid #ffffffcc; border-radius:50%; right:-28px; bottom:-90px; }
.lesson-visual>span { color:#55739f; font-size:9px; letter-spacing:.13em; font-weight:700; }
.lesson-visual>b { display:block; color:#7b96b6; font-size:13px; line-height:1.8; letter-spacing:.035em; font-weight:600; margin-top:47px; }
.lesson-visual>img { position:absolute; right:17px; bottom:8px; width:160px; height:160px; object-fit:contain; filter:drop-shadow(0 9px 7px #16346214); transform:rotate(-9deg); }
.lesson-visual.has-photo>img { width:100%; height:100%; right:0; bottom:0; filter:none; transform:none; object-fit:cover; }
.lesson-visual.has-photo:after { display:none; }
.lesson-photo-credit { position:absolute; left:12px; bottom:12px; color:#344b65; background:#fffffff0; border-radius:5px; padding:4px 7px; font-size:9px; }
.visual-kids { background:linear-gradient(120deg,#fff0e4,#fff7ef 65%,#fce5d3); }
.visual-kids>span,.visual-kids>b { color:#926449; }
.visual-advanced { background:linear-gradient(120deg,#e2f1ec,#f1f8f4 65%,#d5eae3); }
.visual-advanced>span,.visual-advanced>b { color:#49786c; }
.lesson-overview { padding:25px; }
.product-category { display:block; color:#61758e; font-size:10px; letter-spacing:.03em; font-weight:650; }
.page-lessons .lesson-overview h2 { margin:9px 0 13px; font-size:31px; color:#172c47; line-height:1.3; }
.page-lessons .lesson-overview>p { font-size:13px; line-height:1.85; color:#607087; margin:0; }
.product-highlights { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:23px 0; padding:17px 0; border-block:1px solid #edf0f5; }
.product-highlights>div { display:flex; flex-direction:column; gap:3px; }
.product-highlights>div+div { border-left:1px solid #e5ebf2; padding-left:16px; }
.product-highlights span { color:#607087; font-size:10px; }
.product-highlights strong { color:#223b5a; font-size:14px; font-weight:700; }
.product-highlights small { color:#607087; font-size:10px; }
.lesson-price { margin-bottom:19px; }
.lesson-price>div { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.lesson-price small { color:#607087; font-size:11px; }
.lesson-price strong { color:#1d3c65; font-size:20px; letter-spacing:-.045em; }
.lesson-price>span { display:block; margin-top:6px; text-align:right; font-size:10px; color:#607087; }
.page-lessons .lesson-actions .button { width:100%; justify-content:space-between; font-size:14px; border-radius:12px; min-height:51px; margin:0; }
.page-lessons .lesson-team-link { width:100%; justify-content:center; margin:9px 0 0; min-height:40px; color:#4e647e; text-decoration:none; font-size:12px; }
.product-disclaimer { display:block; font-size:10px; text-align:center; color:#607087; margin-top:8px; }
.page-lessons .lesson-content { padding:28px 30px; border:1px solid #e0e6ef; border-radius:20px; background:white; }
.content-heading>span { color:#607087; font-size:9px; font-weight:650; letter-spacing:.13em; }
.content-heading h3 { margin:6px 0 22px; font-size:23px; }
.page-lessons .lesson-content dl { margin:0; }
.page-lessons .lesson-content dl>div { padding:16px 0; border-bottom:1px solid #edf0f5; grid-template-columns:92px minmax(0,1fr); gap:15px; font-size:13px; }
.page-lessons .lesson-content dt { color:#607087; font-size:12px; }
.page-lessons .lesson-content dd { color:#344d6b; line-height:1.8; }
.page-lessons .curriculum { border:0; margin-top:27px; padding:0; }
.page-lessons .curriculum h3 { font-size:18px; margin-bottom:18px; }
.page-lessons .curriculum ol { padding:0; list-style:none; display:grid; gap:10px; counter-reset:course; }
.page-lessons .curriculum li { counter-increment:course; display:flex; gap:13px; align-items:center; padding:13px 16px; background:#f4f7fb; border-radius:10px; color:#405772; font-size:12px; }
.page-lessons .curriculum li:before { content:'0' counter(course); color:#2960ba; font-size:10px; font-weight:750; }
.interior .lesson-dock { display:none; }
.page-booking .booking-section { padding-top:24px; }
.page-booking .consultation-path { margin-bottom:18px; justify-content:flex-start; color:#607087; font-size:10px; }
.page-booking .consultation-path b { width:18px; height:18px; font-size:9px; border-color:#d4dfed; }
.booking-product { display:flex; align-items:center; gap:16px; background:#fff; border:1px solid #e0e6ee; border-radius:17px; padding:18px 23px; margin-bottom:20px; }
.booking-product-icon { width:70px; height:70px; border-radius:14px; background:#f0f5ff; display:grid; place-items:center; flex:none; }
.booking-product-icon img { width:64px; height:64px; object-fit:contain; }
.booking-product h2 { font-size:23px; letter-spacing:-.045em; margin:5px 0 4px; }
.booking-product p { color:#607087; font-size:11px; }
.draft-only { margin-left:auto; white-space:nowrap; font-size:10px; color:#346e60; border:1px solid #d1e6df; background:#eff8f4; border-radius:5px; padding:4px 8px; }
.page-booking .booking-layout { grid-template-columns:minmax(0,1fr) 305px; gap:24px; align-items:start; }
.page-booking .booking-form { background:white; border:1px solid #dfe6ef; border-radius:18px; box-shadow:none; overflow:visible; }
.page-booking .progress { padding:22px 28px; border-radius:18px 18px 0 0; border-bottom:1px solid #e7ecf3; background:white; gap:0; justify-content:space-between; }
.page-booking .progress-item { color:#607087; font-size:12px; flex:1; gap:9px; }
.page-booking .progress-item:not(:last-child):after { content:''; height:1px; background:#e2e7ef; flex:1; margin:0 12px; }
.page-booking .progress-item b { width:24px; height:24px; background:#f0f3f7; border:0; color:#607087; flex:none; font-size:11px; }
.page-booking .progress-item.active { color:#245dcc; font-weight:700; }
.page-booking .progress-item.active b,.page-booking .progress-item.complete b { background:#245dcc; color:white; }
.page-booking .form-privacy { padding:14px 28px 0; font-size:10px; color:#607087; line-height:1.8; }
.page-booking .form-step { padding:25px 28px 28px; }
.page-booking .form-step h2 { font-size:24px; letter-spacing:-.045em; line-height:1.35; }
.page-booking .form-subtitle { margin:10px 0 25px; color:#607087; font-size:12px; line-height:1.85; }
.page-booking .field-grid { gap:28px 20px; }
.page-booking .field:has(.choice-grid) { grid-column:1/-1; position:relative; }
.page-booking .field label,.field-label { color:#30475f; font-size:13px; font-weight:700; }
.page-booking .field input:not([type=radio]),.page-booking .field select,.page-booking .field textarea { background:#fff; border:1px solid #d5deea; border-radius:11px; color:#29445f; padding:13px 14px; min-height:49px; font-size:14px; }
.page-booking .field input:focus,.page-booking .field select:focus,.page-booking .field textarea:focus { border-color:#245dcc; outline:3px solid #245dcc18; outline-offset:0; }
.page-booking .field small { margin-top:8px; font-size:10px; color:#607087; line-height:1.8; }
.choice-source { position:absolute!important; width:1px!important; height:1px!important; min-height:1px!important; clip-path:inset(50%); overflow:hidden!important; padding:0!important; margin:-1px!important; border:0!important; white-space:nowrap; }
.choice-grid { min-width:0; padding:0; margin:0; border:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.choice-grid legend { padding:0; margin-bottom:12px; }
.choice-card { position:relative; cursor:pointer; display:block; margin:0; min-width:0; }
.choice-card input { position:absolute; opacity:0; width:1px; height:1px; }
.choice-card>span { position:relative; display:flex; flex-direction:column; gap:6px; border:1px solid #dce3ed; border-radius:12px; padding:16px; min-height:78px; background:#fff; transition:background .14s,border-color .14s; }
.choice-card b { font-size:13px; color:#415570; font-weight:650; line-height:1.45; }
.choice-card small { margin:0!important; color:#607087!important; font-size:10px!important; font-weight:400; }
.choice-card i { position:absolute; right:12px; top:14px; width:16px; height:16px; border-radius:50%; border:1px solid #7b8da5; color:transparent; display:grid; place-items:center; font-style:normal; font-size:10px; }
.choice-card input:checked+span { border:2px solid #245dcc; padding:15px; background:#f4f8ff; box-shadow:0 2px 5px #245dcc06; }
.choice-card input:checked+span b { color:#1d4eaa; }
.choice-card input:checked+span i { background:#245dcc; border-color:#245dcc; color:white; }
.choice-card input:focus-visible+span { outline:3px solid #245dcc; outline-offset:3px; }
.choice-grid[data-choice-for=resort] .choice-card>span { min-height:100px; padding-left:17px; padding-top:44px; }
.choice-grid[data-choice-for=resort] .choice-card>span:before { content:''; position:absolute; top:8px; left:12px; width:36px; height:36px; background:url('./icons/mountain.webp') center/contain no-repeat; }
.choice-grid[data-choice-for=resort] .choice-card input:checked+span { padding-left:16px; padding-top:43px; }
.choice-grid[data-choice-for=time] { grid-template-columns:repeat(3,minmax(0,1fr)); }
.choice-grid[data-choice-for=people] { grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; }
.choice-grid[data-choice-for=time] .choice-card>span,.choice-grid[data-choice-for=people] .choice-card>span { min-height:49px; padding:14px 6px; justify-content:center; text-align:center; }
.choice-grid[data-choice-for=time] .choice-card input:checked+span,.choice-grid[data-choice-for=people] .choice-card input:checked+span { padding:13px 5px; }
.choice-grid[data-choice-for=time] i,.choice-grid[data-choice-for=people] i { display:none; }
.page-booking .choice-grid[aria-invalid=true] { outline:none; }
.choice-grid[aria-invalid=true] .choice-card>span { border-color:#c15845; background:#fff8f6; }
.page-booking .form-actions { border-top:1px solid #edf0f4; padding-top:24px; margin-top:30px; }
.page-booking .form-actions .button { border-radius:11px; min-height:50px; font-size:13px; }
.page-booking .booking-aside { position:sticky; top:110px; display:block; }
.page-booking .summary-card { background:white; border:1px solid #dee6ef; border-top:4px solid #245dcc; border-radius:16px; padding:22px; }
.page-booking .summary-card>summary h2 { font-size:19px; }
.page-booking .summary-list { margin:20px 0; }
.page-booking .summary-list>div { border-bottom:1px solid #eef1f5; padding:11px 0; font-size:12px; }
.page-booking .summary-list dt { color:#607087; }
.page-booking .summary-list dd { font-weight:650; color:#314a66; }
.page-booking .summary-card>p { color:#607087; font-size:10px; padding:13px; background:#f5f7fb; border-radius:8px; line-height:1.85; }
.page-booking .contact-card { padding:24px 12px; }
.page-booking .review-summary { background:#f7f9fc; border:1px solid #e4eaf2; border-radius:13px; padding:14px 20px; }
.page-booking .review-summary dl>div { padding:13px 0; border-bottom:1px solid #e4eaf2; color:#405873; }
.page-booking .review-summary dt { color:#607087; }
.page-booking .consent { margin-top:24px; padding:17px; border:1px solid #dce5ee; border-radius:11px; background:white; color:#61758c; font-size:12px; }
.page-booking .consent input { accent-color:#245dcc; width:18px; height:18px; flex:none; }
.page-booking .form-error { background:#fff6f3; border:1px solid #e4b6aa; border-left:4px solid #b74932; border-radius:11px; margin:20px 26px 0; padding:17px 18px; }
.page-booking .message-panel { margin-top:28px; background:#fff; border:1px solid #cdded8; border-top:5px solid #287864; border-radius:18px; padding:28px; }
.page-booking .draft-badge { border:0; background:#eaf5ef; color:#286b58; font-weight:650; }
.page-booking .message-panel h2 { font-size:28px; }
.page-booking .message-panel textarea { background:#f6f9f8; border:1px solid #d9e5df; border-radius:12px; margin:20px 0; }
.booking-dock { display:none; }
.page-instructors .section { padding:30px 0 56px; }
.page-instructors #team-filters { display:inline-flex; gap:5px; background:#eaf0f7; padding:5px; border-radius:12px; margin-bottom:17px; }
.page-instructors #team-filters .tab-button { min-height:42px; border:0; border-radius:8px; color:#5e7189; background:transparent; padding:10px 22px; font-size:13px; }
.page-instructors #team-filters .tab-button[aria-pressed=true] { background:white; color:#2257b1; box-shadow:0 2px 7px #1c385b0d; }
.page-instructors #team-count { color:#607087; font-size:12px; }
.team-list-heading { margin:9px 0 22px; }
.team-list-heading>span { color:#637790; font-size:9px; font-weight:650; letter-spacing:.13em; }
.team-list-heading h2 { font-size:25px; letter-spacing:-.045em; margin-top:7px; }
.page-instructors .team-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.page-instructors .coach-card { background:white; border:1px solid #dfe6ef; border-radius:18px; overflow:hidden; box-shadow:0 4px 14px #223c5804; }
.coach-card-location { padding:17px 21px 0; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.coach-card-location>span { font-size:10px; color:#436892; font-weight:650; background:#eef4fc; border-radius:5px; padding:4px 7px; }
.coach-card-location>small { font-size:9px; color:#607087; }
.page-instructors .coach-top { background:white; display:flex; align-items:center; gap:16px; padding:21px; min-height:135px; }
.page-instructors .coach-card[data-resort] .coach-top { background:white; }
.page-instructors .coach-card[data-resort="용평"] .coach-card-location>span { color:#32685a; background:#edf6f1; }
.page-instructors .coach-monogram { width:71px; height:88px; border-radius:14px; background:linear-gradient(145deg,#f2f6fc,#e2ecfa); border:1px solid #d9e5f4; color:#3c6396; font-size:31px; font-weight:600; flex:none; }
.page-instructors .coach-monogram.has-portrait { padding:0; }
.page-instructors .coach-top h2 { font-size:26px; margin-bottom:6px; letter-spacing:-.045em; }
.page-instructors .coach-meta { font-size:9px; color:#607087; line-height:1.8; }
.page-instructors .coach-body { padding:0 21px 21px; }
.page-instructors .coach-role { margin:0 0 12px; color:#26496f; font-size:12px; font-weight:750; }
.page-instructors .tag-list { gap:6px; margin:0 0 20px; min-height:62px; align-content:flex-start; }
.page-instructors .tag { background:#f3f6fa; color:#5b718c; border:1px solid #e6edf4; font-size:10px; padding:5px 7px; border-radius:5px; }
.page-instructors .coach-body details { border-top:1px solid #edf0f5; border-bottom:1px solid #edf0f5; margin:0 0 17px; }
.page-instructors .coach-body summary { font-size:12px; color:#4d6580; min-height:48px; padding:15px 22px 15px 0; }
.page-instructors .coach-body summary:after { color:#5c7ba1; }
.page-instructors .coach-body ul { background:#f6f8fc; margin:0 0 13px; padding:17px 15px 17px 30px; border-radius:10px; color:#607087; font-size:11px; line-height:1.9; }
.page-instructors .coach-body li+li { margin-top:7px; }
.page-instructors .coach-body>.text-link { display:flex; width:100%; align-items:center; justify-content:space-between; padding:13px 14px; min-height:46px; border-radius:10px; background:#eef4ff; color:#2458ad; font-size:12px; font-weight:700; border:1px solid #e1eafd; }
.page-instructors .team-note { background:#fffaf3; border:1px solid #ecdeca; border-left:4px solid #b8844f; border-radius:12px; padding:23px; color:#6e563c; font-size:12px; line-height:1.95; margin-top:30px; }
.page-instructors .journey-empty { text-align:center; background:white; border:1px solid #dce5ef; padding:38px; }
.page-instructors .journey-empty .gentle-link { justify-content:center; }
.field-block { grid-column:1/-1; padding:22px; background:#f8fafc; border:1px solid #e4eaf2; border-radius:14px; }
.block-heading { display:flex; align-items:flex-start; gap:13px; margin-bottom:22px; }
.block-heading>span { flex:none; width:27px; height:27px; display:grid; place-items:center; border:1px solid #dae6f7; color:#3164ad; background:#edf4ff; border-radius:8px; font-size:10px; font-weight:750; }
.block-heading h3 { font-size:18px; line-height:1.5; color:#29435f; }
.block-heading p { margin-top:5px; font-size:11px; color:#607087; line-height:1.75; }
.field-subgrid { display:grid; grid-template-columns:1fr 1fr; gap:22px 16px; }
.field-subgrid>.field:has(.choice-grid),.field-subgrid>.field:has(#age) { grid-column:1/-1; }
.choice-grid[data-choice-for=level] .choice-card>span { min-height:57px; justify-content:center; padding:13px 27px 13px 13px; }
.choice-grid[data-choice-for=level] .choice-card input:checked+span { padding:12px 26px 12px 12px; }
.choice-grid[data-choice-for=level] .choice-card b { font-size:12px; padding-right:0; }
.page-booking .request-block textarea { min-height:140px; resize:vertical; }
.page-booking #note-count { display:block; text-align:right; margin-top:5px; }
.page-booking .review-summary { background:none; border:0; padding:0; }
.page-booking #review-list { margin:0; display:grid; gap:16px; }
.page-booking #review-list>.review-group { display:block; padding:0; border:1px solid #e1e8f1; border-radius:12px; background:#fff; overflow:hidden; }
.page-booking #review-list>.review-group>dt { display:flex; align-items:center; justify-content:space-between; padding:13px 18px; background:#f5f8fc; color:#314e70; font-weight:700; font-size:14px; }
.review-edit { border:0; background:transparent; color:#3768ae; text-decoration:underline; text-underline-offset:3px; padding:8px; font-size:11px; font-weight:600; }
.page-booking #review-list>.review-group>dd { margin:0; padding:6px 18px; white-space:normal; }
.page-booking .review-group dl { margin:0; }
.page-booking .review-group dl>div { grid-template-columns:87px minmax(0,1fr); padding:12px 0; gap:14px; font-size:12px; }
.page-booking .review-group dl>div:last-child { border:0; }
.page-booking .review-group dl dt { color:#607087; font-size:11px; }
.page-booking .review-group dl dd { color:#2c4867; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; }
.review-cost-note { background:#edf4ff; border:1px solid #d9e6fb; border-radius:12px; padding:20px; margin-top:19px; }
.review-cost-note>div { display:flex; justify-content:space-between; align-items:center; gap:14px; }
.review-cost-note span { font-size:12px; color:#4e6e98; }
.review-cost-note strong { font-size:21px; letter-spacing:-.04em; color:#234f8e; }
.review-cost-note p { margin-top:11px; font-size:11px; color:#607087; line-height:1.85; }
.page-booking .form-error strong { display:flex; align-items:center; gap:9px; font-size:15px; }
.page-booking .form-error strong:before { content:'!'; width:23px; height:23px; display:grid; place-items:center; border:1px solid #cb8776; border-radius:50%; flex:none; font-size:13px; }
.page-booking .form-error ul { gap:4px; }
.page-booking .error-link { font-size:12px; }
.draft-route { display:flex; align-items:center; gap:24px; background:#f2f7f4; border:1px solid #dae7df; border-radius:11px; padding:17px; margin-top:20px; }
.draft-route>span { display:flex; align-items:center; gap:8px; color:#356b59; font-size:12px; }
.draft-route b { display:grid; place-items:center; width:22px; height:22px; border:1px solid #bad5c8; background:white; border-radius:50%; font-size:10px; }
.page-booking .message-actions { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:10px; }
.page-booking .message-actions .button { justify-content:center; font-size:12px; border-radius:10px; }
.page-booking #sms-link { background:#286d5b; border-color:#286d5b; color:white; }
.page-booking #booking-fallback { border:1px solid #e3d5bc; background:#fffaf2; border-radius:14px; color:#6b5339; }
.page-booking #booking-fallback a { color:#284f8b; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.page-lessons #costs { background:white; border-top:1px solid #e6ebf2; }
.page-lessons #costs .section-title,.page-lessons #preparation .section-title { font-size:30px; }
.page-lessons .cost-table { display:none; }
.page-lessons .cost-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; counter-reset:cost; }
.page-lessons .cost-item { padding:24px; border:1px solid #dfe7f1; border-radius:15px; background:#f9fbfe; counter-increment:cost; }
.page-lessons .cost-item:before { content:'0' counter(cost); display:inline-grid; place-items:center; width:26px; height:26px; background:#eaf1fd; border-radius:7px; color:#4b70a0; font-size:10px; margin-bottom:16px; }
.page-lessons .cost-item h3 { font-size:18px; color:#304c6d; }
.page-lessons .cost-item p { margin:10px 0 16px; color:#607087; font-size:12px; line-height:1.8; }
.page-lessons .cost-item>span { color:#416087; font-size:10px; background:#edf3fb; padding:5px 8px; border-radius:5px; }
.page-lessons #preparation { background:#f8f3eb; }
.page-lessons .prep-grid { gap:20px; }
.page-lessons .prep-card { padding:26px; background:white; border:1px solid #e7dfd3; border-radius:15px; }
.page-lessons .prep-card h3 { font-size:21px; color:#534b40; }
.page-lessons .prep-card p { font-size:13px; line-height:1.9; color:#6b6358; }
@media(max-width:850px) {
  .page-lessons .lesson-detail { grid-template-columns:310px minmax(0,1fr); gap:17px; }
  .page-lessons .lesson-content { padding:24px; }
  .page-booking .booking-layout { grid-template-columns:1fr; }
  .page-booking .booking-aside { position:static; grid-row:auto; }
  .page-instructors .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-lessons .cost-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
  .interior .wrap { width:calc(100% - 32px); }
  .interior .season-bar { display:none; }
  .interior .page-intro { padding:18px 0 22px; }
  .interior .breadcrumbs { margin-bottom:13px; font-size:10px; }
  .interior .page-intro .eyebrow { display:none; }
  .interior .page-intro h1 { font-size:26px; }
  .interior .page-intro p { margin-top:9px; font-size:12px; line-height:1.8; }
  .interior .journey-context { padding:12px 14px; border-radius:11px; margin-bottom:16px; }
  .interior .journey-context small { display:none; }
  .interior .journey-context>a { padding:4px 0; min-height:24px; font-size:10px; margin-top:0; }
  .page-lessons .detail-jump { padding-top:7px; padding-bottom:7px; }
  .page-lessons .detail-jump a { font-size:11px; }
  .page-lessons #lesson-tabs { gap:8px; margin-bottom:17px; }
  .page-lessons #lesson-tabs .tab-button { flex-direction:column; gap:5px; padding:13px 5px 11px; min-height:91px; border-radius:12px; font-size:11px; text-align:center; }
  .page-lessons #lesson-tabs .tab-button[aria-selected=true] { padding:12px 4px 10px; }
  .page-lessons #lesson-tabs .tab-button:before { width:37px; height:37px; }
  .page-lessons #lesson-tabs .tab-button[aria-selected=true]:after { top:5px; right:7px; font-size:9px; }
  .page-lessons .lesson-detail { grid-template-columns:1fr; gap:16px; }
  .page-lessons .lesson-summary { border-radius:16px; }
  .lesson-visual { height:158px; padding:19px 22px; }
  .lesson-visual>img { width:144px; height:144px; right:20px; bottom:0; }
  .lesson-visual>b { font-size:11px; margin-top:34px; }
  .lesson-visual>span { font-size:8px; }
  .lesson-overview { padding:22px; }
  .page-lessons .lesson-overview h2 { font-size:29px; margin:8px 0 11px; }
  .page-lessons .lesson-overview>p { font-size:13px; line-height:1.85; }
  .product-highlights { margin:20px 0; padding:16px 0; }
  .product-highlights strong { font-size:14px; }
  .lesson-price strong { font-size:20px; }
  .page-lessons .lesson-content { padding:23px 22px; border-radius:16px; }
  .content-heading h3 { font-size:22px; }
  .page-lessons .lesson-content dl>div { grid-template-columns:72px minmax(0,1fr); gap:12px; font-size:12px; }
  .page-lessons .lesson-content dt { font-size:11px; }
  .interior .lesson-dock { display:flex; padding:10px 16px max(10px,env(safe-area-inset-bottom)); gap:10px; box-shadow:0 -5px 20px #1b365908; }
  .lesson-dock>div,.booking-dock>div { display:flex; flex-direction:column; gap:3px; min-width:0; }
  .lesson-dock small,.booking-dock small { font-size:10px; color:#607087; }
  .lesson-dock strong,.booking-dock strong { font-size:12px; color:#2b425e; font-weight:650; }
  .interior .lesson-dock>a { font-size:12px; padding:13px 15px; min-height:46px; border-radius:10px; }
  .page-booking .booking-section { padding-top:17px; padding-bottom:85px; }
  .page-booking .consultation-path { font-size:9px; gap:9px; margin-bottom:16px; }
  .page-booking .consultation-path li { align-items:center; gap:5px; }
  .page-booking .consultation-path b { width:15px; height:15px; font-size:8px; }
  .booking-product { padding:15px; margin-bottom:16px; gap:12px; border-radius:14px; }
  .booking-product-icon { width:57px; height:62px; border-radius:11px; }
  .booking-product-icon img { width:55px; height:55px; }
  .booking-product .product-category { font-size:8px; }
  .booking-product h2 { font-size:21px; }
  .booking-product p { font-size:10px; }
  .draft-only { display:none; }
  .page-booking .booking-form { border-radius:15px; }
  .page-booking .progress { padding:19px 18px; border-radius:15px 15px 0 0; }
  .page-booking .progress-item { font-size:10px; gap:6px; }
  .page-booking .progress-item b { width:21px; height:21px; font-size:10px; }
  .page-booking .progress-item:not(:last-child):after { margin:0 7px; }
  .page-booking .form-privacy { padding:12px 20px 0; font-size:10px; color:#607087; }
  .page-booking .form-step { padding:24px 20px; }
  .page-booking .form-step h2 { font-size:23px; }
  .page-booking .form-subtitle { font-size:11px; margin-bottom:25px; }
  .page-booking .field-grid { grid-template-columns:1fr; gap:25px; }
  .page-booking .field input:not([type=radio]),.page-booking .field select,.page-booking .field textarea { font-size:16px; }
  .choice-grid { gap:9px; }
  .choice-grid legend { font-size:13px; margin-bottom:12px; }
  .choice-card>span { padding:13px; min-height:75px; border-radius:11px; }
  .choice-card input:checked+span { padding:12px; }
  .choice-card b { font-size:12px; padding-right:12px; }
  .choice-card i { right:10px; top:13px; width:14px; height:14px; font-size:9px; }
  .choice-grid[data-choice-for=time] b,.choice-grid[data-choice-for=people] b { padding-right:0; font-size:12px; }
  .choice-grid[data-choice-for=people] { gap:5px; }
  .choice-grid[data-choice-for=people] b { font-size:11px; }
  .page-booking .summary-card { padding:21px; border-radius:14px; }
  .page-booking .form-error { margin:18px 16px 0; padding:15px; }
  .page-booking .message-panel { padding:23px 20px; border-radius:15px; }
  .page-booking .message-panel h2 { font-size:25px; }
  .page-booking .review-summary { padding:10px 14px; }
  .page-instructors .section { padding-top:22px; }
  .page-instructors #team-filters { display:flex; }
  .page-instructors #team-filters .tab-button { flex:1; padding:10px 8px; font-size:12px; }
  .page-instructors .team-grid { grid-template-columns:1fr; gap:17px; }
  .team-list-heading h2 { font-size:22px; line-height:1.4; }
  .page-instructors .coach-card { border-radius:16px; }
  .coach-card-location { padding:17px 20px 0; }
  .page-instructors .coach-top { padding:18px 20px; gap:18px; }
  .page-instructors .coach-monogram { width:77px; height:96px; }
  .page-instructors .coach-top h2 { font-size:28px; }
  .page-instructors .coach-meta { font-size:10px; }
  .page-instructors .coach-body { padding:0 20px 20px; }
  .page-instructors .coach-role { font-size:13px; margin-bottom:12px; }
  .page-instructors .tag-list { min-height:0; }
  .page-instructors .tag { font-size:11px; }
  .page-instructors .coach-body summary { font-size:13px; }
  .page-instructors .coach-body ul { font-size:12px; padding:16px 16px 16px 29px; }
  .page-instructors .coach-body>.text-link { font-size:13px; padding:14px 15px; min-height:48px; }
  .page-instructors .team-note { padding:21px; font-size:11px; }
  .field-block { padding:18px 15px; border-radius:12px; }
  .block-heading { gap:10px; margin-bottom:21px; }
  .block-heading h3 { font-size:17px; }
  .block-heading p { font-size:10px; }
  .field-subgrid { grid-template-columns:1fr; gap:23px; }
  .choice-grid[data-choice-for=level] { grid-template-columns:1fr; gap:8px; }
  .choice-grid[data-choice-for=level] .choice-card>span { min-height:48px; }
  .choice-grid[data-choice-for=level] .choice-card b { font-size:13px; }
  .page-booking .review-summary { padding:0; }
  .page-lessons #costs .section-title,.page-lessons #preparation .section-title { font-size:25px; }
  .page-lessons .cost-grid { grid-template-columns:1fr; gap:12px; }
  .page-lessons .cost-item { padding:21px; }
  .page-lessons .cost-item:before { margin-bottom:12px; }
  .page-lessons .cost-item h3 { font-size:18px; }
  .page-lessons .cost-item p { font-size:13px; }
  .page-lessons .prep-card { padding:23px; }
  .page-booking #review-list>.review-group>dt { padding:11px 15px; font-size:13px; }
  .page-booking #review-list>.review-group>dd { padding:4px 15px; }
  .page-booking .review-group dl>div { grid-template-columns:70px minmax(0,1fr); gap:12px; font-size:12px; }
  .review-cost-note { padding:17px; }
  .review-cost-note strong { font-size:20px; }
  .page-booking .consent { padding:14px; gap:10px; font-size:11px; }
  .draft-route { justify-content:space-between; gap:8px; padding:14px 11px; }
  .draft-route>span { gap:5px; font-size:10px; }
  .draft-route b { width:18px; height:18px; font-size:9px; }
  .page-booking .message-actions { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .page-booking #sms-link { grid-column:1/-1; min-height:49px; font-size:13px; }
  .page-booking .message-actions .button { padding:11px 7px; min-height:44px; font-size:11px; }
  .booking-dock:not([hidden]) { display:flex; position:fixed; z-index:25; bottom:0; left:0; right:0; justify-content:space-between; align-items:center; gap:12px; background:#fffffff7; border-top:1px solid #dce5ef; padding:10px 16px max(10px,env(safe-area-inset-bottom)); box-shadow:0 -5px 20px #1b365908; backdrop-filter:blur(10px); }
  .booking-dock .button { padding:13px 16px; font-size:12px; min-height:46px; border-radius:10px; gap:12px; }
}
