@charset "utf-8";
/* ============================================================
   common.css — PUBLIC ENTRYPOINT (공통)
   reset · 컨테이너 · header · 전체메뉴(GNB) · footer · 퀵메뉴 · 문자상담 모달
   (internal modules: fonts.css · tokens.css · motion.css)
   ============================================================ */

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--ff-kr);color:var(--kjs-text);background:#fff;line-height:1.5;word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
img,svg,video{display:block;max-width:100%}
img{height:auto}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
table{border-collapse:collapse;border-spacing:0}
:focus-visible{outline:2px solid var(--kjs-accent-orange);outline-offset:3px}
.blind{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:-60px;z-index:999;background:var(--kjs-accent-orange);color:#fff;padding:10px 16px;border-radius:8px;transition:top .2s}
.skip-link:focus{top:12px}
body.is-locked{overflow:hidden}

/* ---------- container ---------- */
.inner{width:min(var(--container), 100% - var(--gutter) * 2);margin-inline:auto}

/* ---------- header ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:80;height:var(--header-h);transition:background-color .35s var(--ease-out),height .35s var(--ease-out),box-shadow .35s}
.header .header__inner{height:100%;display:flex;align-items:center;justify-content:space-between}
.header.is-scrolled{background:rgba(0,49,71,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 20px rgba(0,0,0,.12)}
@media (min-width:1024px){.header.is-scrolled{height:80px}}
.logo{display:inline-flex;align-items:center;gap:10px;color:#fff;font-family:var(--ff-inter);font-weight:700;font-size:18px;line-height:normal;white-space:nowrap}
.logo img{width:31px;height:30px;flex:none}
.menu-btn{position:relative;width:44px;height:44px;margin-right:-8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}
.menu-btn span{display:block;width:28px;height:2px;background:#fff;transition:translate .35s var(--ease-out),rotate .35s var(--ease-out),width .35s var(--ease-out)}
.menu-btn:hover span:nth-of-type(2){width:18px;translate:5px 0}
.menu-btn[aria-expanded="true"] span:first-child{translate:0 4.5px;rotate:45deg}
.menu-btn[aria-expanded="true"] span:nth-of-type(2){translate:0 -4.5px;rotate:-45deg;width:28px}

/* ---------- 전체메뉴 (GNB overlay · 시안 미정의 → 추론) ---------- */
.gnb{position:fixed;inset:0;z-index:70;background:var(--kjs-brand-deep-teal);color:#fff;visibility:hidden;opacity:0;transition:opacity .45s var(--ease-out),visibility 0s .45s;overflow-y:auto}
.gnb.is-open{visibility:visible;opacity:1;transition:opacity .45s var(--ease-out),visibility 0s}
.gnb__inner{min-height:100%;display:flex;flex-direction:column;justify-content:center;padding-block:calc(var(--header-h) + 40px) 60px}
.gnb__eyebrow{font-family:var(--ff-en);font-size:14px;letter-spacing:.16em;color:var(--kjs-accent-orange);margin-bottom:40px}
.gnb__list{display:grid;grid-template-columns:repeat(5,1fr);gap:40px}
.gnb__item{border-top:1px solid rgba(255,255,255,.18);padding-top:28px;opacity:0;translate:0 24px;transition:opacity .6s var(--ease-out),translate .6s var(--ease-out);transition-delay:calc(var(--i,0) * 70ms + .1s)}
.gnb.is-open .gnb__item{opacity:1;translate:0 0}
.gnb__dep1{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:clamp(22px,1.46vw,28px);font-weight:700;letter-spacing:-.02em;line-height:1.3;text-align:left;transition:color .25s}
.gnb__dep1:hover{color:var(--kjs-accent-orange)}
.gnb__dep1 .ico{display:none}
.gnb__sub{margin-top:22px;display:grid;gap:12px}
.gnb__sub a{position:relative;display:inline-block;font-size:16px;color:rgba(255,255,255,.72);transition:color .25s,padding .25s}
.gnb__sub a::before{content:"";position:absolute;left:0;top:50%;width:0;height:1px;background:var(--kjs-accent-orange);transition:width .25s var(--ease-out)}
.gnb__sub a:hover,.gnb__sub a[aria-current="page"]{color:#fff;padding-left:16px}
.gnb__sub a:hover::before,.gnb__sub a[aria-current="page"]::before{width:10px}
.gnb__contact{margin-top:64px;display:flex;flex-wrap:wrap;gap:16px 40px;align-items:center;font-size:15px;color:rgba(255,255,255,.7)}
.gnb__contact a.tel-big{font-family:var(--ff-en);font-weight:700;font-size:clamp(24px,1.9vw,36px);color:#fff;letter-spacing:.02em;transition:color .25s}
.gnb__contact a.tel-big:hover{color:var(--kjs-accent-orange)}
@media (max-width:1023.98px){
  .gnb__inner{justify-content:flex-start}
  .gnb__list{grid-template-columns:1fr;gap:0}
  .gnb__item{padding:0;border-top:0;border-bottom:1px solid rgba(255,255,255,.15)}
  .gnb__dep1{padding:20px 0;font-size:20px}
  .gnb__dep1 .ico{display:block;width:12px;height:12px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;rotate:45deg;translate:0 -3px;transition:rotate .3s}
  .gnb__dep1[aria-expanded="true"] .ico{rotate:-135deg;translate:0 3px}
  .gnb__sub{margin:0;gap:0;max-height:0;overflow:hidden;transition:max-height .4s var(--ease-out)}
  .gnb__sub a{display:block;padding:10px 0 10px 4px;font-size:15px}
  .gnb__sub li:last-child a{padding-bottom:22px}
  .gnb__contact{margin-top:40px;flex-direction:column;align-items:flex-start;gap:8px}
}

/* ---------- 서브 히어로 + LNB ---------- */
.sub-hero{position:relative;overflow:hidden;background:var(--kjs-brand-deep-teal);color:#fff;min-height:clamp(380px,29.17vw,560px);display:flex;align-items:center}
.sub-hero__bg{position:absolute;inset:0}
.sub-hero__bg img{width:100%;height:100%;object-fit:cover}
.sub-hero::after{content:"";position:absolute;inset:0;background:rgba(0,49,71,.72)}
.sub-hero .inner{position:relative;z-index:1;padding-top:calc(var(--header-h) + clamp(20px,3vw,66px));padding-bottom:clamp(40px,4vw,80px)}
.sub-hero__eyebrow{font-family:var(--ff-inter);font-weight:700;font-size:14px;line-height:1.4;letter-spacing:.15em;color:var(--kjs-accent-orange)}
.sub-hero__title{margin-top:24px;font-size:clamp(32px,2.5vw,48px);font-weight:700;line-height:1.3;letter-spacing:-.031em}
.sub-hero__desc{margin-top:clamp(14px,1.3vw,25px);max-width:900px;font-size:clamp(15px,.94vw,18px);line-height:1.65;opacity:.82}
.lnb{background:#fff;padding-block:clamp(40px,4.17vw,80px)}
.lnb__list{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.lnb__list a{display:inline-flex;align-items:center;justify-content:center;padding:15px 28px;border-radius:28px;background:var(--kjs-surface-soft);color:var(--kjs-text-sub);font-size:16px;font-weight:500;line-height:1.5;white-space:nowrap;transition:background-color .25s,color .25s,translate .25s var(--ease-out),box-shadow .25s}
.lnb__list a:hover{background:#ffe9d7;color:var(--kjs-accent-orange-dark);translate:0 -2px}
.lnb__list a[aria-current="page"]{background:var(--kjs-accent-orange);color:#fff}
.lnb__list a[aria-current="page"]:hover{box-shadow:0 8px 18px rgba(246,137,49,.35)}
@media (max-width:767.98px){
  .lnb__list{gap:8px}
  .lnb__list a{padding:10px 18px;font-size:14px}
}

/* ---------- footer ---------- */
.footer{position:relative;background:var(--kjs-footer);color:var(--kjs-footer-text);padding-block:70px 66px}
.footer__top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.footer__name{font-size:24px;font-weight:700;line-height:1.5;color:#fff}
.footer__links{display:flex;gap:0 24px;flex-wrap:wrap;font-size:15px;line-height:1.5;color:#fff;margin-top:10px}
.footer__links a{position:relative;transition:color .25s}
.footer__links a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;scale:0 1;transform-origin:left;transition:scale .3s var(--ease-out)}
.footer__links a:hover{color:var(--kjs-accent-orange)}
.footer__links a:hover::after{scale:1 1}
.footer__info{margin-top:26px;font-size:15px;line-height:1.7;font-style:normal}
.footer__info span{display:inline}
.footer__info .sep{margin-inline:10px}
.footer__info a{transition:color .25s}
.footer__info a:hover{color:#fff}
.footer__copy{margin-top:60px;font-family:var(--ff-inter);font-size:14px;line-height:1;letter-spacing:.06em}
@media (max-width:1023.98px){
  .footer{padding-block:48px}
  .footer__top{flex-direction:column}
  .footer__links{margin-top:0}
  .footer__info .sep{display:none}
  .footer__info span{display:block}
  .footer__copy{margin-top:32px;font-size:12px;line-height:1.5}
}

/* ---------- 퀵메뉴 ---------- */
.quick{position:fixed;right:30px;top:280px;z-index:60;width:118px;display:flex;flex-direction:column;gap:12px;filter:drop-shadow(0 8px 10px rgba(0,0,0,.14))}
.quick__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:118px;border-radius:16px;overflow:hidden;font-size:16px;font-weight:500;line-height:20px;text-align:center;transition:translate .3s var(--ease-out),background-color .3s}
.quick__btn img{width:40px;height:40px}
.quick__btn:hover{translate:-6px 0}
.quick__btn--tel{background:var(--kjs-accent-orange);color:#fff;gap:20px;padding-bottom:20px;justify-content:flex-start}
.quick__btn--tel .quick__head{display:block;width:100%;background:var(--kjs-accent-orange-dark);padding:10px}
.quick__btn--tel .quick__num{display:flex;flex-direction:column;align-items:center;gap:8px}
.quick__btn--tel .quick__num b{font-family:var(--ff-en);font-weight:700;font-size:18px;line-height:1.4}
.quick__btn--tel:hover{background:#ff9640}
.quick__btn--tel:hover img{animation:ring .9s ease-in-out}
.quick__btn--chat{background:#fff;border:1px solid var(--kjs-line);color:var(--kjs-brand-deep-teal)}
.quick__btn--chat:hover{background:#fff6ee}
.quick__btn--top{background:var(--kjs-brand-deep-teal);color:#fff}
.quick__btn--top:hover{background:#00445f}
.quick__btn--top:hover img{animation:bob .8s ease-in-out}
@keyframes ring{0%,100%{rotate:0deg}20%{rotate:-14deg}40%{rotate:12deg}60%{rotate:-8deg}80%{rotate:5deg}}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -6px}}
@media (max-width:1759.98px){
  body{padding-bottom:64px}
  .quick{inset:auto 0 0 0;width:100%;flex-direction:row;gap:0;filter:none;box-shadow:0 -6px 18px rgba(0,0,0,.12)}
  .quick__btn{flex:1;min-height:64px;border-radius:0;flex-direction:row;gap:8px;font-size:15px;border:0}
  .quick__btn img{width:24px;height:24px}
  .quick__btn:hover{translate:none}
  .quick__btn--tel{padding:0;justify-content:center;gap:8px}
  .quick__btn--tel .quick__head{display:none}
  .quick__btn--tel .quick__num{flex-direction:row;gap:8px}
  .quick__btn--tel .quick__num b{display:none}
  .quick__btn--tel:hover,.quick__btn--chat:hover,.quick__btn--top:hover{translate:none;filter:brightness(1.06)}
  .quick .quick__num .quick__label{display:inline}
  .quick__btn--chat{border-top:1px solid var(--kjs-line)}
}
.quick .quick__label{display:none}

/* ---------- 문자상담 모달 ---------- */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.5);visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s}
.modal.is-open{visibility:visible;opacity:1;transition:opacity .3s,visibility 0s}
.modal__dialog{width:480px;max-width:100%;max-height:calc(100dvh - 32px);overflow-y:auto;background:#fff;border-radius:10px;box-shadow:0 15px 15px rgba(0,0,0,.15);translate:0 24px;scale:.97;transition:translate .4s var(--ease-out),scale .4s var(--ease-out)}
.modal.is-open .modal__dialog{translate:0 0;scale:1}
.modal__top{display:flex;align-items:center;justify-content:space-between;padding:20px;background:var(--kjs-brand-deep-teal);color:#fff;position:sticky;top:0;z-index:1}
.modal__title{font-size:20px;font-weight:700;line-height:1}
.modal__close{display:inline-flex;align-items:center;gap:5px;font-family:var(--ff-pre);font-weight:600;font-size:16px;line-height:1;color:#fff;padding:6px 0 6px 8px;transition:opacity .2s}
.modal__close img{width:20px;height:20px;transition:rotate .3s var(--ease-out)}
.modal__close:hover img{rotate:90deg}
.modal__body{padding:30px 20px;display:flex;flex-direction:column;gap:20px;border:1px solid var(--kjs-line);border-top:0;border-radius:0 0 10px 10px;font-family:var(--ff-pre)}
.field{display:flex;flex-direction:column;gap:8px}
.field--area{gap:10px}
.field__label{display:flex;justify-content:space-between;align-items:center;font-size:18px;font-weight:500;color:#000;line-height:normal}
.field__label em{font-style:normal;color:red}
.field__count{font-size:14px;font-weight:400;color:#555}
.field input,.field textarea{width:100%;border:1px solid var(--kjs-line);border-radius:6px;background:#fff;font-family:var(--ff-pre);font-size:16px;color:#111;transition:border-color .2s,box-shadow .2s}
.field input{height:52px;padding:0 20px}
.field textarea{height:140px;padding:14px 20px;resize:none;line-height:1.5}
.field input::placeholder,.field textarea::placeholder{color:#777}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--kjs-brand-deep-teal);box-shadow:0 0 0 3px rgba(0,49,71,.12)}
.field.is-error input,.field.is-error textarea{border-color:#e5484d}
.field__err{font-size:13px;color:#e5484d;min-height:0}
.robot{position:relative;display:inline-block;width:302px;max-width:100%;filter:drop-shadow(0 4px 2px rgba(0,0,0,.05));cursor:pointer}
.robot img{width:302px;height:76px;object-fit:cover}
.robot input{position:absolute;left:3.6%;top:22%;width:9%;height:44%;margin:0;opacity:0;cursor:pointer}
.robot__check{position:absolute;left:3.6%;top:22%;width:9%;height:44%;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .2s}
.robot__check::after{content:"";width:40%;height:70%;border-right:3px solid #009e55;border-bottom:3px solid #009e55;rotate:45deg;translate:0 -15%}
.robot input:checked + .robot__check{opacity:1;background:#fff}
.robot.is-error{outline:2px solid #e5484d;outline-offset:2px;border-radius:3px}
.btn-submit{display:flex;align-items:center;justify-content:center;width:100%;padding:15px 40px;border-radius:10px;background:var(--kjs-accent-orange);color:#fff;font-family:var(--ff-pre);font-size:20px;font-weight:600;line-height:1.2;transition:background-color .25s,box-shadow .25s,translate .25s var(--ease-out)}
.btn-submit:hover{background:#e47a24;box-shadow:0 10px 20px rgba(246,137,49,.3);translate:0 -2px}
.modal__done{display:none;text-align:center;padding:20px 0;font-size:17px;line-height:1.6}
.modal__done strong{display:block;font-size:22px;color:var(--kjs-brand-deep-teal);margin-bottom:8px}
.modal.is-done .modal__form{display:none}
.modal.is-done .modal__done{display:block}

/* ---------- 공통 버튼 링크 hover ---------- */
@media (hover:none){ .quick__btn:hover,.lnb__list a:hover{translate:none} }

/* ---------- 호버 보강 ---------- */
.skip-link:hover{background:var(--kjs-brand-deep-teal)}
.logo img{transition:rotate .6s var(--ease-out)}
.logo span{transition:opacity .25s}
.logo:hover img{rotate:-12deg}
.logo:hover span{opacity:.8}
.quick{transition:translate .3s var(--ease-out)}
.inner .inner{width:100%}
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important} html{scroll-behavior:auto} }
