/* V4.5 · final copy · editorial desktop + mobile readable system */
:root{--v45-ink:#20303b;--v45-gold:#9e8254;--v45-line:#e4ded4}
html{scroll-padding-top:80px}
body{font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;font-size:15px;line-height:1.7;letter-spacing:-.016em;overflow-x:clip}
button,a{touch-action:manipulation}
.display,.course-title,.modal-card h2,.booking h2,.hero h1{font-family:inherit;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance}
.section-header{margin-bottom:clamp(28px,3.5vw,49px)}
.section{padding-top:clamp(72px,7.5vw,110px);padding-bottom:clamp(72px,7.5vw,110px)}
/* Hero headline preserves verbatim approved copy and soft three-line rhythm */
.hero{min-height:clamp(630px,77vh,750px)}
.hero-copy{max-width:630px;width:49%;padding-top:66px;padding-bottom:90px}
.hero-copy h1{font-size:clamp(39px,4.25vw,66px);line-height:1.26;letter-spacing:-.057em;max-width:14em;margin-top:22px}
.hero-copy h1 em{color:#e6b661}
.hero-actions{margin-top:30px!important}
.hero-bottom span{max-width:52ch;line-height:1.5}
/* Philosophy: generous title area; dense information separated into clearly distinct principles */
.philosophy .phil-top .display{max-width:1200px;font-size:clamp(37px,3.25vw,53px);line-height:1.4;letter-spacing:-.063em}
.philosophy .learning-principles{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--v45-line);border-bottom:1px solid var(--v45-line)}
.philosophy .lp-item{padding:23px clamp(15px,2.2vw,29px) 22px 0}
.philosophy .lp-item:not(:first-child){padding-left:clamp(18px,2.4vw,34px);border-left:1px solid var(--v45-line)}
.philosophy .lp-item strong{font-size:clamp(16px,1.55vw,21px);font-weight:680;line-height:1.48;letter-spacing:-.035em;margin:8px 0}
.philosophy .lp-item p{font-size:clamp(13px,1.02vw,14px);line-height:1.82;word-break:keep-all;text-wrap:pretty}
/* Card description: full user copy but avoid cramped layout */
.programs .programs-heading .display{font-size:clamp(36px,3.4vw,54px);line-height:1.39;max-width:25em}
.programs .course-grid{gap:clamp(35px,5vw,64px) clamp(19px,2.8vw,33px)}
.programs .course-title{font-size:clamp(21px,2vw,28px);line-height:1.38}
.programs .course-copy{font-size:clamp(13.5px,1.04vw,15px);line-height:1.78;max-width:62ch;min-height:2.8em}
.programs .course-meta{font-size:12.5px;line-height:1.58;align-items:flex-start;flex-wrap:wrap;margin-top:auto;padding-top:18px}
.programs .course-meta-summary{flex:1 1 185px;color:#6f787a;word-break:keep-all}
.programs .course-meta-link{flex:0 0 auto;white-space:nowrap;color:var(--v45-ink);font-weight:670}
.programs .course-card{min-width:0;gap:0}
.programs .course-photo{margin-bottom:0}
.programs .course-topline{margin-top:18px}
.programs .program-end{align-items:center}
.programs .program-end p{font-size:clamp(16px,1.6vw,21px);max-width:42em}
/* Consultation and report retain photographic trust while accommodating richer revised copy */
.consult .consult-layout{grid-template-columns:1fr .96fr;gap:clamp(35px,5.5vw,77px);align-items:center}
.consult .consult-copy .display{font-size:clamp(29px,2.6vw,43px);line-height:1.44;max-width:15em;letter-spacing:-.055em}
.consult .consult-panel{min-height:197px}
.consult .consult-panel h3{font-size:18px}
.consult .consult-panel p{font-size:14px;line-height:1.78;max-width:60ch}
.consult .report-heading h3{font-size:clamp(27px,2.6vw,36px);max-width:15.5em;line-height:1.47;text-wrap:balance}
.consult .report-strip{align-items:start}
.consult .report-paper{min-width:0}
.consult .report-paper strong{font-size:14px;line-height:1.48}
.consult .report-paper small{font-size:12px;line-height:1.58}
/* Space + final reservation */
.space .space-heading .display{font-size:clamp(35px,3.3vw,51px);line-height:1.4;max-width:21em}
.space .space-stats>div{max-width:250px}
.space .space-stats span{font-size:12px;line-height:1.55}
.booking h2{font-size:clamp(29px,3.25vw,46px)!important;letter-spacing:-.049em;line-height:1.38;text-wrap:balance}
.booking h2 em{color:inherit}
.booking p{font-size:clamp(13px,1.1vw,15px);line-height:1.75;max-width:48ch}
/* Modal: more useful and legible than giant card columns, closes available at both ends */
.modal-card{width:min(100%,720px);max-height:min(88dvh,800px);border-radius:5px;padding:clamp(26px,3.3vw,40px)}
.modal-card h2{font-size:clamp(23px,2.25vw,31px);line-height:1.35;letter-spacing:-.047em;margin:13px 46px 9px 0}
.modal-lead{font-size:clamp(14px,1.2vw,17px);line-height:1.6;font-weight:620}
.modal-details{font-size:14px!important;line-height:1.76!important;color:#53616b!important;margin:11px 0 16px!important;text-wrap:pretty;word-break:keep-all}
.modal-section-heading{margin:19px 0 13px!important;font-size:15px!important}
.modal-learning-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.modal-learning-item{background:#f5f2eb;padding:16px 14px!important;border:1px solid #e8e2d9}
.modal-learning-item strong{font-size:13.3px;line-height:1.5}
.modal-learning-item p{font-size:12.4px!important;line-height:1.63!important;word-break:keep-all}
.modal-example{padding:14px 17px!important;margin-top:18px!important;background:#fbf7ef!important;border:1px solid #ede3d4;border-left:3px solid #b28a4c}
.modal-example strong{font-size:12px}.modal-example p{font-size:13px!important;line-height:1.68!important;word-break:keep-all}
.modal-close{position:sticky;top:0;float:right;right:auto;margin:-13px -14px -38px auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#f3f0ea;font-size:29px;z-index:2;line-height:1}
.modal-close:hover{background:#e9e1d4}
.modal-actions{display:grid!important;grid-template-columns:1fr 1fr!important;align-items:stretch;gap:12px;margin-top:22px}
.modal-actions .btn{justify-content:center!important;width:100%;min-width:0!important;min-height:48px;padding:12px;font-size:13px;text-align:center}
.btn-outline{color:#25333d;background:#fff;border:1px solid #bdb6a9;box-shadow:none}
.btn-outline:hover{background:#f0ece4}
/* Tablets */
@media(max-width:1020px){
 .container{width:min(calc(100% - 62px),var(--container))}
 .hero-copy{width:56%}
 .hero-copy h1{font-size:clamp(40px,5.25vw,56px)}
 .consult .consult-layout{gap:35px}
 .consult .consult-copy .display{font-size:clamp(28px,3.45vw,38px)}
 .course-meta-link{white-space:normal}
}
@media(max-width:820px){
 html{scroll-padding-top:70px}
 .hero{min-height:630px}
 .hero-copy{max-width:none;width:100%;padding:86px 0 110px 0}
 .hero-inner{justify-content:flex-start}
 .hero-photo img{object-position:31% center}
 .hero-shade{background:linear-gradient(180deg,rgba(15,16,15,.45) 0%,rgba(16,18,18,.35) 43%,rgba(9,10,10,.81) 100%)}
 .hero-copy h1{max-width:15em;font-size:clamp(37px,6.35vw,54px);line-height:1.28}
 .philosophy .learning-principles{grid-template-columns:1fr}
 .philosophy .lp-item,.philosophy .lp-item:not(:first-child){padding:17px 0;border-left:0;border-bottom:1px solid var(--v45-line)}
 .philosophy .lp-item:last-child{border:0}
 .philosophy .lp-item strong{font-size:19px;margin:3px 0 7px}
 .philosophy .lp-item p{font-size:14px}
 .consult .consult-layout{grid-template-columns:1fr;gap:28px}
 .consult .consult-photo{min-height:0;aspect-ratio:1.65}
 .consult .consult-panel{min-height:150px}
 .consult .report-strip{grid-template-columns:1fr;gap:28px}
 .programs .course-grid{gap:35px 18px}
 .programs .course-meta{display:block}
 .programs .course-meta-summary{display:block}
 .programs .course-meta-link{display:block;margin-top:6px}
 .programs .course-copy{min-height:0}
}
@media(max-width:600px){
 html{scroll-padding-top:67px}
 body{font-size:14px;line-height:1.7}
 .container{width:calc(100% - 40px)}
 .header-inner{height:64px}
 .header .brand span{font-size:18px!important}
 .section{padding-top:63px;padding-bottom:67px}
 .section-header{margin-bottom:26px;gap:7px;flex-wrap:wrap;align-items:flex-start}
 .section-intro{font-size:11.5px}
 .eyebrow{font-size:9.4px;letter-spacing:.1em}
 .hero{min-height:min(690px,93svh)}
 .hero-copy{padding:67px 0 104px}
 .hero-copy h1{font-size:clamp(32px,8.8vw,43px)!important;line-height:1.34;letter-spacing:-.05em;margin-top:18px}
 .hero .overline{font-size:9.5px;letter-spacing:.09em}
 .hero .hero-actions{margin-top:28px!important;gap:14px}
 .hero-actions .btn{font-size:12.5px;padding:11px 16px;min-height:46px;gap:20px}
 .hero-actions .quiet-link{font-size:12px}
 .hero-bottom{bottom:25px;font-size:9.5px}
 .hero-bottom>a{display:none}
 .hero-bottom>span{max-width:28ch}
 .philosophy .phil-top .display{font-size:clamp(27px,7.5vw,33px)!important;line-height:1.45;letter-spacing:-.052em}
 .philosophy .phil-top{margin-bottom:24px}
 .philosophy .lp-item strong{font-size:17px}
 .philosophy .lp-item p{font-size:13px;line-height:1.73}
 .programs .programs-heading .display{font-size:clamp(27px,7vw,35px)!important;line-height:1.43;letter-spacing:-.05em}
 .programs .course-grid{grid-template-columns:1fr;gap:34px!important}
 .programs .course-photo{aspect-ratio:1.55}
 .programs .course-title{font-size:23px}
 .programs .course-topline{margin-top:15px}
 .programs .course-copy{font-size:13px;line-height:1.7;margin-top:5px}
 .programs .course-meta{font-size:11.7px;line-height:1.55;padding-top:12px;margin-top:15px!important}
 .programs .program-end{margin-top:30px}
 .programs .program-end p{font-size:16px!important;line-height:1.6;max-width:25em}
 .programs .underline-link{font-size:12.5px;white-space:normal}
 .consult .consult-photo{aspect-ratio:1.24}
 .consult .consult-copy .display{font-size:clamp(25px,6.9vw,31px)!important;line-height:1.48;max-width:20em}
 .consult .consult-panel h3{font-size:16px}
 .consult .consult-panel p{font-size:13px;line-height:1.73}
 .consult .consult-select button{font-size:13px;padding-top:10px}
 .consult .consult-panel{min-height:0;padding:17px 0 23px}
 .consult .btn-dark{min-height:46px;font-size:13px}
 .consult .report-strip{padding:28px 20px;margin-top:56px;gap:23px}
 .consult .report-heading h3{font-size:clamp(24px,6.3vw,29px);line-height:1.48}
 .consult .report-paper{padding:17px 17px 11px}
 .consult .report-paper strong{font-size:13px}
 .consult .report-paper small{font-size:11.5px}
 .space .space-heading .display{font-size:clamp(28px,7.3vw,36px)!important;line-height:1.42}
 .space .space-stats strong{font-size:21px}
 .space .space-stats span{font-size:11px}
 .booking{padding:62px 0 88px}
 .booking-inner{gap:19px}
 .booking h2{font-size:clamp(25px,6.7vw,31px)!important;line-height:1.49!important;letter-spacing:-.055em}
 .booking p{font-size:12.7px!important;line-height:1.73}
 .booking-action .btn{font-size:13px;min-height:48px}
 .modal{padding:8px;align-items:center}
 .modal-card{padding:25px 19px 20px;width:100%;max-height:calc(100dvh - 28px);border-radius:8px;overscroll-behavior:contain}
 .modal-close{width:43px;height:43px;top:0;margin:-9px -8px -34px auto;font-size:28px}
 .modal-kicker{font-size:10px}
 .modal-card h2{font-size:clamp(22px,6vw,26px);margin:11px 38px 8px 0;line-height:1.4}
 .modal-lead{font-size:14px!important;line-height:1.61}
 .modal-details{font-size:12.8px!important;line-height:1.7!important;margin:9px 0 12px!important}
 .modal-section-heading{font-size:13.5px!important;margin:12px 0 9px!important}
 .modal-learning-grid{grid-template-columns:1fr;gap:6px}
 .modal-learning-item{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;column-gap:8px;padding:9px 10px!important}
 .modal-learning-item small{grid-column:1;grid-row:1/3;font-size:10px;margin-top:1px}
 .modal-learning-item strong{grid-column:2;font-size:12.7px;line-height:1.43}
 .modal-learning-item p{grid-column:2;font-size:11.7px!important;line-height:1.58!important;margin:2px 0 0!important}
 .modal-example{padding:9px 12px!important;margin-top:11px!important}
 .modal-example strong{font-size:11.5px}
 .modal-example p{font-size:11.8px!important;line-height:1.65!important}
 .modal-actions{grid-template-columns:1fr!important;gap:7px}
 .modal-actions .btn{min-height:46px;max-width:none;font-size:12.8px}
 .modal-secondary-close{order:2}
 .footer{padding-bottom:58px}
}
@media(max-width:355px){
 .container{width:calc(100% - 30px)}
 .hero-copy h1{font-size:clamp(29px,8.7vw,32px)!important}
 .hero-actions .quiet-link{font-size:11.5px}
 .modal{padding:4px}
 .modal-card{padding-left:15px;padding-right:15px}
 .programs .course-title{font-size:21px}
 .booking h2{font-size:25px!important}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* V4.5.1 mobile headline tune + contact/franchise additions */
.mobile-break{display:none}
.footer-contact{display:flex;flex-direction:column;gap:6px;margin-top:14px}
.footer-contact a{color:#4f5a61;font-size:13px;line-height:1.6}
.footer-contact a:hover{color:#b07f2a}
.franchise{background:#f7f4ee}
.franchise-inner{display:grid;grid-template-columns:minmax(0,.92fr) minmax(320px,.78fr);gap:clamp(28px,5vw,62px);align-items:start}
.franchise-copy h2{font-size:clamp(29px,3vw,44px);line-height:1.34;letter-spacing:-.055em;margin:20px 0 14px}
.franchise-copy p{font-size:15px;line-height:1.82;color:#5e686f;max-width:42ch}
.franchise-card{background:#fff;padding:28px 30px;border-left:3px solid #c3943c;box-shadow:0 16px 38px rgba(31,37,42,.05)}
.franchise-card strong{display:block;font-size:24px;line-height:1.35;letter-spacing:-.045em;margin-bottom:10px}
.franchise-card p{font-size:14px;line-height:1.8;color:#667176}
.franchise-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.franchise-actions .btn{min-height:48px;padding:12px 18px;font-size:13px}
.franchise-contact{list-style:none;padding:0;margin:22px 0 0;border-top:1px solid #e6e0d6}
.franchise-contact li{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #eee7db;font-size:13px}
.franchise-contact li span{color:#9a7d4f;font-weight:700;letter-spacing:.02em;flex:0 0 auto}
.franchise-contact li a{color:#30414b;word-break:break-all}
@media(max-width:820px){
 .franchise-inner{grid-template-columns:1fr;gap:24px}
}
@media(max-width:600px){
 .mobile-break{display:block;height:0}
 .consult .consult-copy .display{font-size:clamp(21.5px,5.9vw,28px)!important;line-height:1.42;letter-spacing:-.062em;max-width:none}
 .consult .report-heading h3{font-size:clamp(22px,5.8vw,27px)!important;line-height:1.42;max-width:none}
 .philosophy .lp-item strong{font-size:16.2px;line-height:1.5}
 .consult .report-paper{padding:16px 14px 10px}
 .consult .report-paper strong{font-size:12.8px;line-height:1.46}
 .consult .report-paper small{font-size:10.65px;line-height:1.5;letter-spacing:-.03em}
 .booking h2{font-size:clamp(23px,6.2vw,30px)!important;line-height:1.44!important}
 .booking p{font-size:12.6px!important;line-height:1.72}
 .booking-break{margin-top:8px}
 .franchise{padding-top:58px;padding-bottom:64px}
 .franchise-copy h2{font-size:clamp(25px,7vw,31px);margin-top:16px;margin-bottom:11px}
 .franchise-copy p{font-size:13px;line-height:1.75}
 .franchise-card{padding:20px 18px}
 .franchise-card strong{font-size:21px}
 .franchise-card p{font-size:12.8px;line-height:1.7}
 .franchise-actions{display:grid;grid-template-columns:1fr;gap:8px}
 .franchise-actions .btn{width:100%;font-size:12.8px;min-height:46px}
 .franchise-contact{margin-top:17px}
 .franchise-contact li{display:block;padding:11px 0}
 .franchise-contact li span{display:block;margin-bottom:4px}
 .footer-contact a{font-size:12.5px}
}
@media(max-width:390px){
 .consult .consult-copy .display{font-size:21px!important}
 .consult .report-heading h3{font-size:21px!important}
 .philosophy .lp-item strong{font-size:15.8px}
 .consult .report-paper small{font-size:10.25px}
}


/* V4.5.2 · final adjustments after mobile review */
/* The consultation paragraph's second sentence begins with '첫' on every screen. */
.booking .booking-break{display:block!important;height:0}

/* Franchise is a quiet secondary point of contact, not a second sales section. */
.franchise.section{padding-block:clamp(44px,4.6vw,66px)}
.franchise-inner{grid-template-columns:minmax(0,.83fr) minmax(340px,1fr);align-items:center;gap:clamp(24px,5vw,65px)}
.franchise-copy h2{margin-bottom:0;font-size:clamp(27px,2.65vw,37px)}
.franchise-card{padding:23px 26px}
.franchise-card strong{font-size:21px;margin-bottom:0}
.franchise-actions{margin-top:16px}
.franchise-contact{margin-top:14px}
.franchise-contact li{padding:9px 0}
.footer-nav a{white-space:nowrap}
@media(max-width:820px){
 .franchise-inner{grid-template-columns:minmax(0,1fr);gap:20px}
}
@media(max-width:600px){
 .franchise.section{padding:42px 0 46px}
 .franchise-copy h2{font-size:clamp(25px,6.4vw,30px);margin-top:11px}
 .franchise-card{padding:20px 18px}
 .franchise-card strong{font-size:19px}
 .franchise-actions{margin-top:15px}
 .franchise-contact{margin-top:13px}
}

/* Keep the booking statement to two editorial lines when desktop space allows. */
@media(min-width:1021px){.booking-inner>div:first-child{flex:1 1 auto;min-width:0}.booking p{max-width:700px}}
