/* A restrained Korean type scale, shared by desktop and mobile. */
:root { --muted:#626978; --line:#dcdfe5; }
body { font-size:16px; line-height:1.75; letter-spacing:-.02em; }
button, input, textarea, select { font-family:var(--font); }
h1,h2,h3 { font-weight:600; text-wrap:balance; }
.header { height:84px; }
.nav-wrap { max-width:1280px; padding:0 40px; gap:24px; }
.brand { gap:10px; }
.brand-symbol { width:48px; height:48px; }
.brand-name { font-size:21px; letter-spacing:-.03em; }
.brand-name small { font-size:9px; letter-spacing:.1em; }
.desktop-nav { gap:26px; font-size:15px; }
.header-cta { font-size:14px; padding:10px 18px; gap:20px; }
.hero { max-width:1280px; min-height:610px; padding:48px 40px 56px; grid-template-columns:55% 45%; }
.hero-copy { padding:24px 35px 24px 0; }
.eyebrow { font-size:14px; letter-spacing:0; font-weight:500; color:var(--muted); }
h1 { font-size:52px; letter-spacing:-.045em; line-height:1.3; margin:24px 0; font-weight:650; }
.hero-description { font-size:17px; line-height:1.8; letter-spacing:-.02em; }
.hero-actions { margin-top:30px; gap:24px; }
.button,.hero-actions .button { font-size:15px; min-height:52px; padding:14px 22px; gap:30px; font-weight:600; }
.button:hover { transform:none; }
.text-link,.hero-actions .text-link { font-size:14px; gap:14px; }
.hero-note { font-size:13px; margin-top:24px; }
.hero-art { min-height:480px; border-radius:100px 0 0 0; background:linear-gradient(135deg,#253455,#171f3c); }
.art-grain { opacity:.08; }
.art-orbit { display:none; }
.monogram { inset:12% 0 26%; }
.monogram img { width:59%; height:78%; }
.monogram>span { font-size:25px; letter-spacing:-.03em; font-weight:600; }
.experience-tag { bottom:45px; left:24px; right:24px; padding:18px 24px; box-shadow:none; gap:24px; }
.experience-tag>strong { font-size:40px; font-weight:600; letter-spacing:-.05em; }
.experience-tag strong span { font-size:16px; }
.experience-tag>span { font-size:13px; line-height:1.6; }
.credentials-strip { padding:24px max(40px,calc((100% - 1200px)/2)); font-size:15px; gap:16px; }
.credentials-strip span { font-size:12px; margin-right:12px; }
.section { max-width:1280px; padding:88px 40px; }
.section-label { justify-content:flex-start; gap:14px; font-size:13px; letter-spacing:0; padding-bottom:18px; margin-bottom:40px; }
.section-label span:first-child { color:#8490a4; font-variant-numeric:tabular-nums; }
.section-label span:last-child { font-size:16px; font-weight:600; color:var(--brand); }
h2,.expert-copy h2,.faq-section h2 { font-size:34px; line-height:1.45; letter-spacing:-.035em; }
.about-grid { grid-template-columns:1fr 1fr; gap:64px; }
.about-text>p:first-child { font-size:18px; line-height:1.7; }
.about-text>p:nth-child(2),.principles p,.section-heading>p,.service-summary,.expert-copy>p:not(.eyebrow):not(.expert-intro),.steps p,.faq-caption,details>p { font-size:16px; line-height:1.8; }
.principles { gap:36px; margin-top:48px; }
.principle-number { font-size:12px; }
.principles h3 { font-size:20px; margin:16px 0 10px; }
.section-heading { margin-bottom:36px; }
.service-row { grid-template-columns:44px 1fr 1.15fr 44px; gap:24px; padding:28px 0; }
.service-row:hover { padding-left:8px; }
.service-no { font-size:14px; }
.service-en { display:none; }
.service-main strong { font-size:24px; font-weight:600; letter-spacing:-.03em; }
.circle-arrow { width:40px; height:40px; font-size:20px; }
.service-help { font-size:14px; line-height:1.8; }
.expert-grid { gap:64px; grid-template-columns:.9fr 1fr; }
.expert-visual.brand-mockup { aspect-ratio:1/1.1; }
.brand-mockup figcaption>span,.brand-mockup figcaption small { font-size:11px; letter-spacing:.03em; }
.expert-copy>p.expert-name { font-size:25px!important; font-weight:600; letter-spacing:-.02em; margin-top:24px; }
.expert-name span { font-size:14px; }
.expert-intro { font-size:18px; line-height:1.75; margin:16px 0; }
.career { margin:24px 0; padding-top:20px; }
.career>div { grid-template-columns:88px 1fr; font-size:15px; margin-bottom:16px; }
.career dt { color:var(--muted); }
.career-note { font-size:13px; }
.expert-copy .text-link { font-size:15px; }
.steps { gap:28px; }
.steps article>span { font-size:12px; letter-spacing:.04em; }
.steps h3 { font-size:18px; line-height:1.6; letter-spacing:-.03em; }
.steps p br { display:none; }
.faq-section { gap:64px; }
.faq-caption { margin-top:16px; }
summary { font-size:16px; line-height:1.65; padding:23px 0; }
details>p { padding:0 20px 24px 0; }
.contact-inner { display:grid; grid-template-columns:1fr 1fr; text-align:left; gap:64px; padding-top:72px; padding-bottom:72px; }
.contact-copy .eyebrow { color:#bcc9df; font-size:14px; justify-content:flex-start; }
.contact-copy h2 { margin:18px 0; font-size:32px; }
.contact-copy>p:not(.eyebrow) { color:#c6cede; font-size:16px; line-height:1.8; }
.button-cream { margin-top:28px; min-width:220px; }
.contact-details { font-style:normal; min-width:0; }
.contact-details dl { margin:0; }
.contact-details dl>div { display:grid; grid-template-columns:82px minmax(0,1fr); gap:16px; margin:0; padding:15px 0; border-bottom:1px solid #ffffff25; }
.contact-details dl>div:first-child { padding-top:0; }
.contact-details dt { color:#b8c7df; font-size:14px; padding-top:2px; }
.contact-details dd { margin:0; font-size:18px; line-height:1.6; overflow-wrap:anywhere; }
.contact-details dd>a { display:inline-block; text-underline-offset:5px; }
.contact-details dd>a:hover { text-decoration:underline; }
.contact-details .office-address dd { font-size:16px; }
.contact-details .map-link { display:block; width:fit-content; color:#c6d4e8; font-size:14px; margin-top:8px; }
.contact-details .contact-secondary { border:0; }
.contact-secondary dd { color:#c6cede; font-size:15px; }
footer { max-width:1280px; padding:40px 40px 28px; }
.footer-top { padding-bottom:26px; }
.footer-top>p { font-size:14px; }
.footer-bottom { font-size:12px; padding-top:22px; }
.privacy-button { font-size:12px; }
dialog { font-family:var(--font); }
dialog h2 { font-size:30px; } dialog h3 { font-size:18px; }
dialog p,dialog ul,.dialog-prep p { font-size:16px; line-height:1.8; }
.dialog-prep strong { font-size:15px; } dialog .eyebrow { font-size:12px; }
@media(max-width:1100px) {
  .nav-wrap { padding:0 28px; gap:18px; } .desktop-nav { gap:18px; font-size:14px; }
  .header-cta { font-size:13px; gap:12px; } .brand-name { font-size:19px; }
  .hero { padding:40px 32px 48px; } h1 { font-size:44px; }
  .hero-copy { padding-right:25px; } .hero-art { min-height:440px; }
  .hero-actions { gap:18px; } .hero-actions .text-link { font-size:13px; }
  .section { padding:72px 32px; } h2,.expert-copy h2,.faq-section h2 { font-size:30px; }
  .about-grid,.expert-grid,.faq-section,.contact-inner { gap:40px; }
  .steps { grid-template-columns:repeat(2,1fr); gap:32px; }
  .credentials-strip { padding:22px 32px; font-size:14px; }
}
@media(max-width:800px) {
  .header { height:76px; } .mobile-menu { top:75px; }
  .hero { grid-template-columns:55% 45%; } h1 { font-size:38px; }
  .hero-description { font-size:16px; } .hero .eyebrow { font-size:12px; letter-spacing:0; }
  .hero-actions .text-link { display:none; } .hero-note { font-size:12px; }
  .monogram>span { font-size:22px; } .experience-tag { left:16px; right:16px; padding:14px; gap:14px; }
  .experience-tag>span { font-size:12px; padding-left:12px; } .experience-tag>strong { font-size:34px; }
  .credentials-strip { font-size:13px; } .credentials-strip span { margin-right:8px; }
  .about-grid { grid-template-columns:1fr; gap:24px; } .expert-grid { gap:32px; }
  .expert-copy h2 { font-size:28px; } .service-row { grid-template-columns:32px 1fr 1.1fr 38px; gap:16px; }
  .service-main strong { font-size:22px; } .service-summary { font-size:15px; }
  .contact-inner { grid-template-columns:1fr; gap:36px; } .contact-details { max-width:620px; }
}
@media(max-width:600px) {
  html { scroll-padding-top:76px; } .header { height:72px; } .nav-wrap { padding:0 20px; }
  .brand-symbol { width:40px; height:40px; } .brand-name { font-size:19px; } .brand-name small { font-size:8px; letter-spacing:.08em; }
  .mobile-menu { top:71px; padding:12px 20px 20px; } .mobile-menu a { font-size:16px; padding:14px 4px; }
  .hero { padding:36px 24px 40px; gap:30px; } .hero-copy { padding:0; }
  .hero .eyebrow { font-size:13px; letter-spacing:0; gap:10px; }
  h1 { font-size:38px; line-height:1.35; letter-spacing:-.04em; margin:22px 0 20px; }
  .hero-description { font-size:16px; line-height:1.8; }
  .hero-actions { margin-top:24px; gap:20px; } .hero-actions .button { font-size:15px; min-height:50px; padding:13px 20px; }
  .hero-actions .text-link { display:inline-flex; font-size:14px; gap:10px; }
  .hero-note { font-size:13px; margin-top:20px; }
  .hero-art { min-height:300px; border-radius:64px 0 0 0; margin-left:0; }
  .monogram { inset:5% 0 28%; gap:0; } .monogram img { width:55%; height:78%; }
  .monogram>span { font-size:21px; }
  .experience-tag { bottom:18px; left:18px; right:18px; padding:12px 20px; gap:24px; }
  .experience-tag>strong { font-size:32px; } .experience-tag>span { font-size:12px; }
  .credentials-strip { padding:24px; font-size:14px; gap:12px; } .credentials-strip span { font-size:12px; }
  .section { padding:56px 24px; } .section-label { margin-bottom:28px; padding-bottom:14px; font-size:12px; }
  .section-label span:last-child { font-size:15px; }
  h2,.expert-copy h2,.faq-section h2 { font-size:28px; line-height:1.45; letter-spacing:-.035em; }
  .about-text>p:first-child { font-size:17px; }
  .about-text>p:nth-child(2),.principles p,.section-heading>p,.service-summary,.expert-copy>p:not(.eyebrow):not(.expert-intro),.steps p,.faq-caption,details>p { font-size:16px; line-height:1.75; }
  .about-text .text-link { font-size:14px; margin-top:20px; }
  .principles { margin-top:36px; gap:24px; } .principles h3 { font-size:19px; margin:0 0 8px; }
  .principle-number { font-size:12px; } .principles article { grid-template-columns:28px 1fr; }
  .section-heading { margin-bottom:28px; } .section-heading>p { margin-top:16px; }
  .service-row { grid-template-columns:24px 1fr 36px; gap:8px 12px; padding:24px 0; }
  .service-no { font-size:13px; margin-top:4px; } .service-main strong { font-size:22px; }
  .circle-arrow { width:36px; height:36px; }
  .service-help { font-size:14px; } .service-help a { font-size:14px; margin-top:8px; }
  .expert-grid { gap:28px; } .expert-visual.brand-mockup { aspect-ratio:1/1; }
  .brand-mockup figcaption { padding:40px 18px 18px; } .brand-mockup figcaption>span,.brand-mockup figcaption small { font-size:10px; }
  .expert-copy>p.expert-name { font-size:24px!important; } .expert-name span { font-size:14px; }
  .expert-intro { font-size:18px; } .career>div { font-size:15px; grid-template-columns:78px 1fr; }
  .career-note { font-size:13px; } .expert-copy .text-link { font-size:15px; }
  .process-section .section { padding:56px 24px; } .steps { grid-template-columns:1fr; gap:24px; }
  .steps article { padding-top:16px; } .steps article>span { font-size:12px; } .steps h3 { font-size:19px; margin:10px 0 8px; }
  .faq-section { gap:24px; } summary { font-size:16px; padding:20px 0; gap:16px; } summary>span { flex-shrink:0; }
  .contact-inner { gap:32px; padding-top:48px; padding-bottom:40px; }
  .contact-copy h2 { font-size:28px; } .contact-copy .eyebrow { font-size:14px; } .contact-copy>p:not(.eyebrow) { font-size:16px; }
  .button-cream { min-width:220px; font-size:15px; } .contact-details dl>div { grid-template-columns:70px minmax(0,1fr); gap:12px; padding:15px 0; }
  .contact-details dd { font-size:17px; } .contact-details dt { font-size:14px; }
  .contact-details .office-address dd { font-size:16px; } .contact-details dd>a[href^="tel:"] { padding:4px 0; }
  footer { padding:32px 24px 108px; } .footer-top .brand-name { font-size:18px; } .footer-top .brand-name small { font-size:8px; }
  .footer-bottom,.privacy-button { font-size:12px; } .footer-bottom { gap:12px; }
  .mobile-contact { padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:var(--cream); display:grid; grid-template-columns:1fr 1.4fr; gap:10px; border-top:1px solid var(--line); }
  .mobile-contact a { min-height:46px; display:flex; align-items:center; justify-content:center; gap:20px; font-size:15px; font-weight:600; }
  .mobile-phone { color:var(--brand); border:1px solid #bcc3cf; } .mobile-naver { color:white; background:var(--brand); }
  .mobile-contact span { font-size:18px; }
  dialog { padding:32px 24px; } dialog h2 { font-size:26px; } dialog p,dialog ul,.dialog-prep p { font-size:16px; }
}
@media(max-width:360px) {
  h1 { font-size:34px; } .hero,.section { padding-left:20px; padding-right:20px; }
  .hero-actions { gap:16px; } .hero-actions .text-link { display:inline-flex; font-size:13px; }
  .contact-details dl>div { grid-template-columns:1fr; gap:3px; }
}
