/* November: original artwork plus editable HTML product cards. */
:root { --nov-wine:#57091f; --nov-pink:#be0641; --menu-height:216px; --quick-height:64px; }
body { background:#fff; }
.main_wrap { background:var(--nov-wine); padding-bottom:calc(var(--quick-height) + env(safe-area-inset-bottom, 0px)); }
.design_image { display:block; width:100%; height:auto; }
.main_visual,.promotion_section,.clinic_footer { position:relative; }
.promotion_section { scroll-margin-top:var(--menu-height); }
.sticky_menu { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; height:auto; line-height:1.4; background:#f5f0e9; }
.sticky_menu a { display:flex; width:auto; min-height:0; height:72px; align-items:center; justify-content:center; padding:5px 8px; background:#f5f0e9; color:#64605e; font-size:22px; font-weight:500; border-right:1px solid #e5ddd5; border-bottom:1px solid #e5ddd5; line-height:1.4; letter-spacing:-.04em; }
.sticky_menu a:nth-child(3n) { border-right:0; }
.sticky_menu a.active { background:#702438; color:#fff; }
.sticky_menu a:not(.active):hover { background:#e8d5d3; color:var(--nov-wine); }
.sticky_menu a:focus-visible { outline:3px solid var(--nov-pink); outline-offset:-4px; }
.quick_menu { height:calc(var(--quick-height) + env(safe-area-inset-bottom, 0px)); line-height:1.4; padding-bottom:env(safe-area-inset-bottom, 0px); background:var(--nov-wine); }
.quick_menu > * { display:flex; align-items:center; justify-content:center; min-height:var(--quick-height); font-size:20px; }
.quick_menu button { border:0; font:inherit; font-size:20px; font-weight:600; color:#fff; background:var(--nov-wine); }
.quick_menu a { background:#b54862; }
.quick_menu button:hover,.quick_menu a:hover { filter:brightness(1.1); }
.quick_menu [aria-disabled="true"] { opacity:.6; cursor:wait; }
.quick_menu :focus-visible { outline:3px solid #fff; outline-offset:-6px; }
.sr_only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; border:0!important; }
.skip_link { position:fixed; top:8px; left:8px; transform:translateY(-200%); z-index:30; padding:12px 18px; background:#fff; color:var(--nov-wine); font-size:16px; }
.skip_link:focus { transform:none; }
dialog { margin:auto; border:0; border-radius:16px; padding:36px; width:min(520px,calc(100% - 32px)); max-height:85dvh; overflow:auto; color:#292126; font-size:16px; line-height:1.6; }
dialog::backdrop { background:rgb(35 5 15 / 65%); }
dialog h2 { color:var(--nov-wine); font-size:24px; margin:0 24px 12px 0; line-height:1.35; }
dialog p { margin-bottom:18px; }
.btn_close { position:absolute; top:10px; right:12px; width:40px; height:40px; background:transparent; border:0; font-size:30px; cursor:pointer; }
.contact_links { display:grid; gap:12px; }
.contact_links a { display:flex; align-items:center; justify-content:center; gap:10px; min-height:52px; border:1px solid #d9c7cd; border-radius:8px; font-weight:600; }
.contact_links img { width:24px; height:24px; }
.option_list { display:grid; gap:12px; margin:20px 0; }
.option_list label { display:flex; gap:12px; align-items:center; padding:16px; border:1px solid #ddcdd2; border-radius:8px; cursor:pointer; }
.option_list input { appearance:none; width:20px; height:20px; flex-shrink:0; border:1px solid #63668b; border-radius:5px; background:#fff; cursor:pointer; }
.option_list input:checked { border:0; background:#6a8bff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath d='M15.88 8.29L10 14.17l-1.88-1.88a.996.996 0 1 0-1.41 1.41l2.59 2.59c.39.39 1.02.39 1.41 0L17.3 9.7a.996.996 0 0 0 0-1.41c-.39-.39-1.03-.39-1.42 0z' fill='%23fff'/%3E %3C/svg%3E") center / 20px 20px no-repeat; }
.option_list strong { display:block; color:var(--nov-pink); font-size:21px; }
.confirm_button { width:100%; min-height:48px; border:0; border-radius:8px; background:var(--nov-wine); color:white; font-size:16px; cursor:pointer; }
#selected-summary { margin:0 0 20px; padding-left:22px; }
dialog :focus-visible { outline:3px solid #126bd1; outline-offset:3px; }
::selection { background:#f4bfce; color:#57091f; }
@media (max-width:769px) {
 :root { --quick-height:56px; --menu-height:144px; }
 .sticky_menu a { height:48px; font-size:14px; line-height:1.35; padding:5px; letter-spacing:-.03em; }
 .quick_menu button,.quick_menu a { font-size:18px; }
 dialog { padding:30px 22px 24px; }
 dialog h2 { font-size:21px; }
}
@media (prefers-reduced-motion:reduce) { *,html { scroll-behavior:auto!important; } }
/* Shared common.css uses a global -1px tracking; keep dialog copy readable. */
dialog,dialog * { letter-spacing:-.02em; }
.sr_only { color:#fff; font-size:16px; letter-spacing:normal; }

body:has(dialog[open]) { overflow:hidden; }
/* Keep all nine labels readable in short landscape windows as well. */
@media (max-height:500px) and (min-width:600px) {
 :root { --menu-height:132px; --quick-height:48px; }
 .sticky_menu a { height:44px; padding:4px; font-size:14px; line-height:1.3; }
 .quick_menu button,.quick_menu a { font-size:16px; }
}

/* Same .container / .box / .chk / input + label structure as index10.html.
   All product copy, prices, lists and benefit conditions are actual HTML. */
.promotion_section { container-type:inline-size; }
.section_body { background-position:center top; background-repeat:no-repeat; background-size:100% auto; padding-bottom:10.2cqw; }
.sec01 .section_body { background-color:#9b4961; background-image:url('../img/11/sec01_bg.webp'); }
.sec02 .section_body,.sec05 .section_body { background-color:#eee1d7; }
.sec02 .section_body { background-image:url('../img/11/sec02_bg.webp'); }
.sec03 .section_body { background:#4f0709 url('../img/11/sec03_bg.webp') center top / 100% auto no-repeat; }
.sec04 .section_body { background:#7f2539 url('../img/11/sec04_bg.webp') center top / 100% 100% no-repeat; }
.sec05 .section_body { background-image:url('../img/11/sec05_bg.webp'); }
.sec06 .section_body { background:#500514 url('../img/11/sec06_bg.webp') center top / 100% auto no-repeat; }
.sec07 .section_body { background:#f0aeb4 url('../img/11/sec07_bg.webp') center top / 100% auto no-repeat; padding-bottom:6cqw; }
.sec08 .section_body { background:#faeff3 url('../img/11/sec08_bg.webp') center top / 100% 100% no-repeat; }
.sec09 .section_body { background:#8d344a; padding-bottom:0; }
.main_wrap .promotion_section .container { padding:0 4cqw; }
.box { --notch:1.85cqw; margin:0; min-height:var(--card-height,32cqw); padding:4.6cqw 3.3cqw 4.8cqw; gap:1.6cqw; background:#fff; position:relative; display:flex; flex-direction:column; justify-content:space-between; mask:radial-gradient(circle at 0 50%,transparent var(--notch),#000 calc(var(--notch) + 1px)) left,radial-gradient(circle at 100% 50%,transparent var(--notch),#000 calc(var(--notch) + 1px)) right; mask-size:51% 100%; mask-repeat:no-repeat; }
.box + .box { margin-top:2.7cqw; }
.box .chk_flex,.packageBox .chk_flex { display:flex; align-items:flex-start; gap:2.65cqw; }
.product_copy { flex:1; min-width:0; }
.box .top_txt { color:#bc1343; font-size:clamp(14px,3.67cqw,36px); font-weight:700; line-height:1.2; letter-spacing:-.04em; }
.box .tit { font-size:clamp(16px,5.1cqw,50px); font-weight:500; color:#252525; line-height:1.08; letter-spacing:-.045em; margin-top:.7cqw; }
.box .bot_txt { font-size:clamp(9px,2.86cqw,28px); font-weight:400; color:#777; line-height:1.35; margin-top:.9cqw; letter-spacing:-.03em; }
.chk { position:relative; flex:0 0 42px; width:42px; height:42px; }
.box .chk { margin-top:5.1cqw; }
.chk input { position:absolute; inset:0; width:100%; height:100%; opacity:0; margin:0; }
.chk label { display:block; position:relative; width:42px; height:42px; cursor:pointer; }
.chk label::before { content:""; display:block; width:40px; height:40px; background:#fff; border:1px solid #63668b; border-radius:5px; }
.chk input:checked + label::before { background:#6a8bff; border:0; }
.chk input:checked + label::after { content:""; display:block; position:absolute; width:50px; height:50px; top:50%; left:50%; transform:translate(-50%,-50%); background:var(--checkbox-icon) center / 50px 50px no-repeat; }
.chk input:focus-visible + label::before { outline:3px solid #126bd1; outline-offset:3px; }
.chk { scroll-margin-top:calc(var(--menu-height) + 20px); scroll-margin-bottom:calc(var(--quick-height) + 20px); }
.box .price_flex { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:baseline; gap:1.6cqw; }
.box .price { color:#be1344; font-size:clamp(20px,6.12cqw,60px); font-weight:700; line-height:1.1; letter-spacing:-.035em; white-space:nowrap; }
.box .price span.won { margin-left:.8cqw; font-size:clamp(10px,2.86cqw,28px); font-weight:400; color:#252525; vertical-align:baseline; }
.box .price_sub { color:#999; font-size:clamp(9px,2.86cqw,28px); line-height:1.2; white-space:nowrap; }
.price_rows { margin-left:6.5cqw; display:flex; flex:1; flex-direction:column; justify-content:space-evenly; }
.option_row { display:flex; align-items:baseline; justify-content:space-between; gap:2cqw; padding:2.4cqw 0; }
.option_row + .option_row { border-top:1px dashed #e3acbc; }
.option_row.stacked { flex-direction:column; align-items:stretch; gap:1.7cqw; }
.option_label { font-size:clamp(14px,3.67cqw,36px); line-height:1.35; color:#292929; letter-spacing:-.04em; }
.option_label strong { display:inline-block; padding:.25cqw 1.4cqw; color:#fff; background:#bc1343; line-height:1.3; font-weight:600; margin-right:1.3cqw; }
.option_label span { display:inline; }
.section_note { margin-top:4cqw; text-align:center; color:#3b252d; font-size:clamp(13px,3.5cqw,34px); }
.sec07 .box { justify-content:center; }
.sec07 .box .bot_txt { font-size:clamp(14px,4.08cqw,40px); }
.packageBox { background:#fff; border-radius:2cqw; overflow:hidden; box-shadow:0 5px 6px rgb(0 0 0 / 15%); }
.packageBox + .packageBox { margin-top:4.7cqw; }
.packageBox .txt_wrap { padding:5cqw 6.8cqw 5.5cqw; }
.packageBox .chk { margin-top:.7cqw; }
.packageBox .tit { font-size:clamp(17px,4.49cqw,44px); color:#303047; line-height:1.25; letter-spacing:-.04em; font-weight:600; }
.packageBox .tit strong { color:#cd6c80; }
.packageBox .package_desc { margin-top:1.8cqw; color:#303047; font-size:clamp(14px,3.67cqw,36px); font-weight:600; line-height:1.3; }
.packageBox ul { list-style:none; margin-top:4.8cqw; }
.packageBox li { padding:1.3cqw 2.7cqw; border-bottom:1px dashed #a7a7ac; color:#292929; font-size:clamp(14px,3.67cqw,36px); line-height:1.2; letter-spacing:-.04em; }
.packageBox li:last-child { border:0; }
.packageBox .totalPrice { display:flex; align-items:center; justify-content:space-between; gap:12px; background:#c66b80; padding:3cqw 8cqw; color:#fff; }
.totalPrice > span { font-size:clamp(16px,3.3cqw,32px); }
.totalPrice p { font-size:clamp(26px,6.12cqw,60px); font-weight:700; white-space:nowrap; line-height:1.3; }
.totalPrice p span { font-size:clamp(13px,2.86cqw,28px); font-weight:400; margin-left:.6cqw; }
.package-2 .totalPrice { background:#bc1343; }
.package-2 .tit strong,.package-3 .tit strong { color:#bc1343; }
.package-3 .totalPrice { background:#b98359; }
.package_heading { padding:7.4cqw 0 5.7cqw; text-align:center; color:#fff; font-size:clamp(27px,6.5cqw,64px); line-height:1.2; letter-spacing:-.05em; }
.student_card { padding:0; mask:none; border-radius:2cqw; gap:0; min-height:0; }
.student_photo { display:block; width:100%; height:auto; }
.student_copy { padding:2cqw 8.7cqw 7.4cqw; }
.student_copy .benefit_terms { font-size:clamp(14px,3.67cqw,36px); line-height:1.45; margin-top:3cqw; letter-spacing:-.04em; }
.sec09 .container { padding:0!important; }
.benefit_envelope { background:url('../img/11/sec09_bg.webp') center top / 100% 100% no-repeat; min-height:146.7cqw; padding:5.5cqw 16.6cqw 53cqw; }
.benefit_paper { color:#292929; }
.benefit_paper .top_txt { text-align:center; color:#be1343; font-size:clamp(15px,3.67cqw,36px); font-weight:700; }
.benefit_paper h3 { margin:1.7cqw 0 6.2cqw; text-align:center; color:#9b3c58; font-size:clamp(28px,6.1cqw,60px); line-height:1.2; font-weight:700; }
.benefit_row { display:flex; gap:2.6cqw; font-size:clamp(17px,4.49cqw,44px); line-height:1.45; letter-spacing:-.04em; padding-bottom:3cqw; }
.benefit_row + .benefit_row { border-top:1px solid #aaa; padding-top:3cqw; }
.benefit_row .chk { margin-top:1cqw; }
.benefit_paper .benefit_terms { color:#9b3c58; text-align:center; font-size:clamp(13px,3.67cqw,36px); line-height:1.4; letter-spacing:-.04em; }
.benefit_paper .benefit_terms p + p { margin-top:3cqw; }
@media(max-width:769px) {
 .chk,.chk label { width:20px; height:20px; flex-basis:20px; }
 .chk label::before { width:20px; height:20px; }
 .chk input:checked + label::after { width:20px; height:20px; background-size:20px; }
 .box { min-height:var(--card-height,32cqw); }
 .box .chk_flex { gap:2.3cqw; }
 .box .chk { margin-top:5.1cqw; }
 .box .price_flex { gap:1.6cqw; }
 .option_row:not(.stacked) { flex-wrap:wrap; }
 .option_row .price_flex { margin-left:auto; }
 .option_label strong { margin-bottom:1cqw; }


 .benefit_row { gap:2cqw; }
}

:root { --checkbox-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath d='M15.88 8.29L10 14.17l-1.88-1.88a.996.996 0 1 0-1.41 1.41l2.59 2.59c.39.39 1.02.39 1.41 0L17.3 9.7a.996.996 0 0 0 0-1.41c-.39-.39-1.03-.39-1.42 0z' fill='%23fff'/%3E %3C/svg%3E"); }
.box .price_sub { letter-spacing:-.025em; }

/* The reference places the package badge above its complete composition. */
.option_composition { display:flex; flex-direction:column; align-items:flex-start; gap:1.2cqw; }
.option_composition strong { margin:0; }
.option_composition span { display:block; font-size:clamp(12px,3.67cqw,36px); }
/* Scale small-screen card titles with the artwork instead of an 18px floor. */
@media (max-width:360px) {
 .box .tit { font-size:clamp(14px,4.49cqw,16px); }
 .packageBox .tit { font-size:clamp(14px,4.49cqw,16px); }
 .packageBox li { font-size:clamp(12px,3.67cqw,14px); }
}

/* Court spacing audit: PSD dimensions are expressed against the 980px canvas.
   Use minimum heights (not fixed heights) so enlarged text can still reflow. */
.promotion_section { --card-gap:2.65306cqw; --section-bottom:10.20408cqw; }
.section_body { padding-bottom:var(--section-bottom); }
.box { gap:.8cqw; }
.box + .box { margin-top:var(--card-gap); }
.sec01 { --section-bottom:10.5102cqw; }
.sec02 { --section-bottom:11.63265cqw; }
.sec04 { --card-gap:1.63265cqw; --section-bottom:10.71429cqw; }
.sec05 { --card-gap:1.88776cqw; --section-bottom:10.40816cqw; }
.sec07 { --card-gap:1.88776cqw; --section-bottom:8.16327cqw; }
.sec07 .box { justify-content:flex-start; padding-top:6.5cqw; }
.sec07 .section_note { margin-top:4.5cqw; }
.sec08 { --section-bottom:10.71429cqw; }
.sec09 { --section-bottom:0cqw; }
.box .chk { margin-top:5.5cqw; }
.price_rows { margin-right:2cqw; }
.option_row.stacked { gap:1.7cqw; }
.packageBox .txt_wrap { min-height:67.95918cqw; padding-bottom:4.5cqw; }
.package-3 .txt_wrap { min-height:52.55102cqw; }
.packageBox li { padding-top:1.15cqw; padding-bottom:1.15cqw; }
.packageBox .totalPrice { min-height:14.08163cqw; padding-top:2.8cqw; padding-bottom:2.8cqw; }
.package_heading { padding-top:7.1cqw; padding-bottom:5.4cqw; }
.student_copy .benefit_terms { line-height:1.6; margin-top:4cqw; }
.benefit_envelope { padding-left:17.7cqw; padding-right:16.6cqw; }
.benefit_paper h3 { margin-bottom:7.2cqw; }
@media(max-width:769px) {
 .box .chk_flex { gap:1.8cqw; }
 .box .chk { margin-top:5.5cqw; }
 .packageBox .chk_flex { gap:1.2cqw; }
 .packageBox .tit { font-size:4.49cqw; }
 .packageBox .package_desc,.packageBox li { font-size:3.67cqw; }
 .totalPrice p { font-size:6.12cqw; }
 .totalPrice > span { font-size:3.3cqw; }
 .box .top_txt { font-size:3.67cqw; }
 .box .tit { font-size:5.1cqw; }
 .sec07 .box .tit { font-size:4.8cqw; }
 .sec07 .box .bot_txt { font-size:4.08cqw; }
 .student_copy .benefit_terms { font-size:3.67cqw; }
 .benefit_row { font-size:4.49cqw; }
 .benefit_paper .benefit_terms { font-size:3.67cqw; }
}
/* Final measured adjustments after the side-by-side render. */
.sec03 .box,.sec04 .box { gap:.5cqw; }
.sec07 { --section-bottom:9.89796cqw; }
.package-3 .txt_wrap { padding-bottom:3.5cqw; }
.student_card { gap:0; }
.student_copy { padding-bottom:6.6cqw; }
/* PSD type audit: sizes include the Photoshop layer transform (980px artboard). */
.box .top_txt { font-size:4.08163cqw; line-height:1.1; }
.box .bot_txt { font-size:3.06122cqw; line-height:1.25; }
.box .price { font-size:6.12245cqw; line-height:1; letter-spacing:-.02em; }
.box .price_sub { font-size:3.06122cqw; letter-spacing:-.02em; }
.box .price span.won { font-size:3.06122cqw; letter-spacing:-.04em; }
.option_label { font-size:4.08163cqw; font-weight:500; }
.option_label strong { font-weight:700; padding:.5102cqw 1.93878cqw; line-height:1.3; }
.option_composition span { font-size:4.08163cqw; font-weight:500; }
/* Composition card: 206px first badge, 311px row pitch in the source. */
.box:has(.option_composition) { padding-top:5.1cqw; justify-content:flex-start; }
.box:has(.option_composition) .price_rows { flex:none; margin:4.08163cqw 2.35cqw 0 6.12245cqw; }
.box:has(.option_composition) .option_row { padding:0; gap:1.42857cqw; }
.box:has(.option_composition) .option_row + .option_row { margin-top:5.40816cqw; padding-top:5.10204cqw; }
.box:has(.option_composition) .option_composition { gap:1.73469cqw; }
.box:has(.option_composition) .price_flex { gap:5.20408cqw; }

/* Original PSD display face. common.css forces Pretendard with !important,
   so these explicit title overrides must use the same priority. */
@font-face {
 font-family:'Cafe24Danjunghae';
 src:url('../fonts/Cafe24Danjunghae-v2.0.woff2') format('woff2');
 font-weight:400;
 font-style:normal;
 font-display:swap;
}
.benefit_paper h3,.package_heading {
 font-family:'Cafe24Danjunghae',serif!important;
 font-weight:400;
 font-synthesis:none;
 font-size:7.91224cqw;
 letter-spacing:-.04em;
}
.benefit_paper h3 { line-height:1.1; margin-bottom:7cqw; }
.package_heading { line-height:1; }
