@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css");

/* =========================================================
   Design Tokens
   ========================================================= */
:root{
  /* surface */
  --bg:#ffffff;
  --bg-soft:#f5f6f8;
  --bg-softer:#fafbfc;

  /* ink */
  --ink:#14171f;
  --ink-2:#3f4756;
  --ink-3:#5f6775;
  --line:#e6e8ee;
  --line-strong:#cfd4de;

  /* dark band */
  --navy:#0a0f1c;
  --navy-2:#121a2e;
  --navy-line:rgba(255,255,255,.14);

  /* point : deep navy */
  --point:#1c3b66;
  --point-dark:#142b4b;
  --point-soft:#eef1f6;

  /* layout */
  --maxw:1280px;
  --gutter:clamp(20px,4vw,40px);
  --header-h:80px;

  /* motion */
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* =========================================================
   Base
   ========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Pretendard","Pretendard Variable",-apple-system,BlinkMacSystemFont,
              "Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  font-size:17px;
  font-weight:500;
  line-height:1.75;
  letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
  /* 한글은 어절 단위로만 줄바꿈 — '다.' '니다.' 가 홀로 넘어가는 것을 막는다 */
  word-break:keep-all;
  overflow-wrap:break-word;
}
body.is-locked{overflow:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
ul,ol{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,p{margin:0;}
::selection{background:var(--point);color:#fff;}
[hidden]{display:none !important;}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}
.section{padding:clamp(88px,11vw,150px) 0;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* =========================================================
   Typography kit
   ========================================================= */
.eyebrow{
  display:inline-block;
  font-size:14px;font-weight:600;letter-spacing:.1em;text-transform:capitalize;
  color:#4a5364;
}
.eyebrow--light{color:rgba(255,255,255,.6);}
.h-sec{
  font-size:clamp(28px,3.6vw,46px);
  font-weight:700;line-height:1.35;letter-spacing:-.03em;
}
.h-sec b{color:var(--point);font-weight:700;}
.t-sub{font-weight:500;
  margin-top:18px;
  font-size:clamp(17px,1.5vw,21px);
  color:var(--ink-2);line-height:1.8;
}
.sec-head{margin-bottom:clamp(40px,5vw,64px);}
.sec-head--center{text-align:center;}
.sec-head--center .t-sub{max-width:680px;margin-left:auto;margin-right:auto;}

/* =========================================================
   Buttons
   ========================================================= */
.btn{
  display:inline-flex;align-items:center;gap:14px;
  height:54px;padding:0 28px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  font-size:16px;font-weight:600;letter-spacing:-.02em;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);
}
.btn .ico{
  width:20px;height:20px;flex:0 0 20px;
  transition:transform .35s var(--ease);
}
.btn:hover .ico{transform:translateX(4px);}
.btn--solid{background:var(--point);border-color:var(--point);color:#fff;}
.btn--solid:hover{background:var(--point-dark);border-color:var(--point-dark);}
.btn--ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff;}
.btn--light{border-color:rgba(255,255,255,.35);color:#fff;}
.btn--light:hover{background:#fff;border-color:#fff;color:var(--ink);}
.btn--white{background:#fff;border-color:#fff;color:var(--point);}
.btn--kakao{background:#fee500;border-color:#fee500;color:#191600;}
.btn--kakao:hover{background:#f5dd00;border-color:#f5dd00;}
.btn--kakao .ico{transition:none;}
.btn--kakao:hover .ico{transform:none;}
.btn--sm{height:44px;padding:0 20px;font-size:15px;gap:10px;}
.btn--sm .ico{width:16px;height:16px;flex:0 0 16px;}
.btn--gray{background:#edeff3;border-color:#edeff3;color:#4a5364;}
.btn--gray:hover{background:#e0e4ea;border-color:#e0e4ea;color:#3d4655;}
.btn--white:hover{background:rgba(255,255,255,.88);}

/* =========================================================
   Header
   ========================================================= */
.header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  height:var(--header-h);
  display:flex;align-items:center;
  transition:background .4s var(--ease),border-color .4s var(--ease),height .4s var(--ease);
  border-bottom:1px solid transparent;
}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.logo{
  position:relative;
  display:flex;align-items:center;gap:11px;
  font-weight:800;letter-spacing:-.04em;font-size:22px;color:#fff;
  transition:color .4s var(--ease);
}
.logo__img{
  height:clamp(26px,2.2vw,30px);width:auto;display:block;
  transition:opacity .4s var(--ease);
}
.logo__img--white{position:absolute;left:0;top:50%;transform:translateY(-50%);}
.logo .logo__img:not(.logo__img--white){opacity:0;}
.logo__name{letter-spacing:-.04em;}

/* 헤더가 흰 배경으로 바뀌면 원색 로고로 교체 */
.header.is-solid .logo__img--white{opacity:0;}
.header.is-solid .logo .logo__img:not(.logo__img--white){opacity:1;}

.gnb{display:flex;gap:clamp(18px,3vw,46px);}
.gnb__link{
  position:relative;display:block;padding:10px 2px;
  font-size:17px;font-weight:600;letter-spacing:-.02em;
  color:rgba(255,255,255,.9);transition:color .4s var(--ease);
}
.gnb__link::after{
  content:"";position:absolute;left:0;bottom:2px;
  width:100%;height:2px;background:var(--point);
  transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease);
}
.gnb__link:hover::after{transform:scaleX(1);}

.header__util{display:flex;align-items:center;gap:12px;}
.btn-contact{
  height:42px;padding:0 20px;border-radius:999px;
  border:1px solid rgba(255,255,255,.4);color:#fff;
  font-size:14px;font-weight:600;
  display:inline-flex;align-items:center;
  transition:all .35s var(--ease);
}
.btn-contact:hover{background:#fff;color:var(--ink);border-color:#fff;}

.burger{display:none;width:44px;height:44px;place-items:center;color:#fff;}
.burger__ico{
  width:26px;height:26px;
  fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;
}
.burger__ico--close{display:none;}
/* 메뉴가 열리면 닫기 아이콘으로 바꾼다 */
.burger[aria-expanded="true"] .burger__ico--menu{display:none;}
.burger[aria-expanded="true"] .burger__ico--close{display:block;}

/* scrolled / solid state */
.header.is-solid{background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom-color:var(--line);height:68px;}
.header.is-solid .logo{color:var(--ink);}
.header.is-solid .gnb__link{color:var(--ink);}
.header.is-solid .btn-contact{border-color:var(--line-strong);color:var(--ink);}
.header.is-solid .btn-contact:hover{background:var(--point);border-color:var(--point);color:#fff;}
.header.is-solid .burger{color:var(--ink);}
.header.is-solid .burger[aria-expanded="true"]{color:#fff;}

/* mobile nav */
.mnav{
  position:fixed;inset:0;z-index:99;
  background:var(--navy);
  padding:calc(var(--header-h) + 24px) var(--gutter) 40px;
  display:flex;flex-direction:column;gap:6px;
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:all .4s var(--ease);
}
.mnav.is-open{opacity:1;visibility:visible;transform:none;}
.mnav a{
  padding:18px 0;border-bottom:1px solid var(--navy-line);
  color:#fff;font-size:22px;font-weight:700;letter-spacing:-.03em;
}

/* =========================================================
   Hero
   ========================================================= */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:var(--navy);}
.hero__slides{position:absolute;inset:0;}
.hero__slide{
  position:absolute;inset:0;
  opacity:0;transition:opacity 1.1s var(--ease);
}
.hero__slide.is-active{opacity:1;}
.hero__media{position:absolute;inset:0;overflow:hidden;}
.hero__media img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.12);
  transition:transform 7s linear;
}
.hero__slide.is-active .hero__media img{transform:scale(1);}
.hero__media::after{
  content:"";position:absolute;inset:0;
  /* 카피가 놓이는 좌측을 더 어둡게, 우측 피사체는 살려두는 좌측 가중 오버레이 */
  background:
    linear-gradient(180deg,rgba(6,10,20,.46) 0%,rgba(6,10,20,0) 28%,rgba(6,10,20,.6) 100%),
    linear-gradient(90deg,rgba(6,10,20,.86) 0%,rgba(6,10,20,.6) 38%,rgba(6,10,20,.2) 66%,rgba(6,10,20,.06) 100%);
}
@media (max-width:1024px){
  /* 태블릿·모바일은 이미지가 크게 잘려 좌우 구분이 사라지므로 전면 균일 오버레이 */
  .hero__media::after{
    background:linear-gradient(180deg,rgba(6,10,20,.68) 0%,rgba(6,10,20,.58) 45%,rgba(6,10,20,.84) 100%);
  }
  /* 세로 화면에서는 가운데가 잘려 인물이 사라지므로 초점을 오른쪽으로 이동 */
  .hero__media[data-focus="right"] img{object-position:62% center;}
}
.hero__inner{position:relative;z-index:2;height:100%;display:flex;align-items:center;}
.hero__copy{max-width:900px;color:#fff;}
.hero__title{
  font-size:clamp(28px,4vw,52px);
  font-weight:700;line-height:1.34;letter-spacing:-.04em;
}
/* 줄이 긴 카피는 한 단계 작게 */
.hero__title--long{font-size:clamp(23px,2.9vw,38px);line-height:1.42;}
.hero__title strong{font-weight:800;}
.hero__desc{
  margin-top:26px;max-width:560px;
  font-size:clamp(17px,1.6vw,22px);line-height:1.8;
  color:#fff;
}
.hero__cta{margin-top:40px;display:flex;flex-wrap:wrap;gap:12px;}

/* reveal per slide */
.hero__title,.hero__desc,.hero__cta{
  opacity:0;transform:translateY(26px);
  transition:opacity .9s var(--ease),transform .9s var(--ease);
}
.hero__slide.is-active .hero__title{opacity:1;transform:none;transition-delay:.25s;}
.hero__slide.is-active .hero__desc{opacity:1;transform:none;transition-delay:.38s;}
.hero__slide.is-active .hero__cta{opacity:1;transform:none;transition-delay:.5s;}

.hero__bottom{
  position:absolute;left:0;right:0;bottom:clamp(28px,4vw,52px);z-index:3;
}
.hero__bottom .container{display:flex;align-items:center;justify-content:space-between;gap:20px;}
.hero__dots{display:flex;align-items:center;gap:14px;}
.hero__dot{
  width:34px;height:3px;border-radius:2px;
  background:rgba(255,255,255,.3);position:relative;overflow:hidden;
}
.hero__dot.is-active{background:rgba(255,255,255,.35);}
.hero__dot.is-active::after{
  content:"";position:absolute;inset:0;background:#fff;
  transform-origin:left;animation:dotFill 6s linear forwards;
}
@keyframes dotFill{from{transform:scaleX(0);}to{transform:scaleX(1);}}

.hero__scroll{
  display:flex;align-items:center;gap:12px;
  font-size:12px;font-weight:700;letter-spacing:.2em;color:rgba(255,255,255,.72);
}
.hero__scroll .mouse{
  width:26px;height:40px;border:1px solid rgba(255,255,255,.5);border-radius:999px;
  position:relative;
}
.hero__scroll .mouse::after{
  content:"";position:absolute;left:50%;top:9px;margin-left:-2px;
  width:4px;height:6px;border-radius:2px;background:#fff;
  animation:wheel 1.8s var(--ease) infinite;
}
@keyframes wheel{0%{opacity:0;transform:translateY(0);}30%{opacity:1;}100%{opacity:0;transform:translateY(13px);}}

/* =========================================================
   Intro
   ========================================================= */
.intro{background:var(--bg);}
.intro__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,110px);align-items:start;}
.intro__title{font-size:clamp(28px,3.5vw,44px);font-weight:700;line-height:1.42;letter-spacing:-.035em;}
.intro__title b{color:var(--point);}
.intro__body p+p{margin-top:22px;}
.intro__body p{color:var(--ink-2);font-size:17px;line-height:1.9;}
.intro__sign{
  margin-top:34px;padding-top:26px;border-top:1px solid var(--line);
  display:flex;align-items:baseline;gap:12px;
}
.intro__sign span{color:var(--ink-3);font-size:14px;}
.intro__sign strong{font-size:19px;letter-spacing:-.03em;}

/* =========================================================
   Concern list
   ========================================================= */
.concern{background:var(--bg);}
.why{position:relative;background:var(--navy);color:#fff;}
/* 스크롤 구간 — 높이가 곧 하나~넷을 넘기는 데 필요한 스크롤 양 */
.why__track{position:relative;height:340vh;}
.why__sticky{
  position:sticky;top:0;
  height:100svh;min-height:600px;
  display:flex;align-items:center;
  overflow:hidden;
}
.why__bg{position:absolute;inset:0;}
.why__bg img{width:100%;height:100%;object-fit:cover;}
.why__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,13,24,.82) 0%,rgba(8,13,24,.7) 45%,rgba(8,13,24,.86) 100%);
}
.why .container{position:relative;z-index:2;width:100%;}
.why .eyebrow{color:rgba(255,255,255,.78);}
.why .h-sec{color:#fff;}
.why .t-sub{color:rgba(255,255,255,.86);}


/* 스크롤 위치에 따라 해당 항목만 초점이 맞는 목록 */
.concern__list{position:relative;padding-left:clamp(26px,2.6vw,44px);}

/* 좌측 레일 — 회색 선 위로 네이비가 스크롤에 비례해 차오른다 */
.concern__rail{
  position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--line);
}
.concern__rail i{
  position:absolute;left:0;top:0;width:100%;height:0;
  background:var(--point);
  will-change:height;
}

.concern__list li{
  padding:clamp(56px,9vh,110px) 0;
  font-size:clamp(20px,2vw,29px);
  font-weight:700;line-height:1.5;letter-spacing:-.035em;
  color:var(--ink-3);
  opacity:.35;filter:blur(3px);transform:translateX(-10px);
  transition:color .5s var(--ease),opacity .5s var(--ease),
             filter .5s var(--ease),transform .5s var(--ease);
}
.concern__list li.is-active{
  color:var(--ink);
  opacity:1;filter:none;transform:none;
}

/* 목록이 흐르는 동안 좌측 제목은 화면에 머문다 */
.concern__head{position:sticky;top:calc(var(--header-h) + clamp(40px,8vh,90px));}

.concern__list li:last-child{padding-bottom:12px;}
.concern__cta{
  padding-left:calc(clamp(26px,2.6vw,44px) + 2px);
  opacity:0;transform:translateY(12px);
  transition:opacity .6s var(--ease),transform .6s var(--ease);
}
.concern__cta.is-in{opacity:1;transform:none;}

/* =========================================================
   Stats (dark band)
   ========================================================= */
.stats{position:relative;background:var(--bg);color:var(--ink);overflow:hidden;}
.stats .container{position:relative;z-index:2;}
.stats__head{text-align:center;margin-bottom:clamp(48px,6vw,80px);}
.stats__title{font-size:clamp(26px,3.4vw,42px);font-weight:700;line-height:1.42;letter-spacing:-.035em;}
.stats__title span{color:var(--ink-3);}
.stats__list{
  display:grid;grid-template-columns:repeat(3,1fr);
}
.stat{padding:clamp(34px,4vw,52px) clamp(18px,2.5vw,40px);text-align:center;}
.stat__num{
  font-size:clamp(34px,4.2vw,62px);font-weight:800;letter-spacing:-.05em;line-height:1;
  display:flex;align-items:baseline;justify-content:center;gap:2px;flex-wrap:nowrap;white-space:nowrap;
}
.stat__num em{
  font-style:normal;font-size:.5em;font-weight:700;color:var(--ink);
  margin-left:6px;white-space:nowrap;
}
.stat__desc{font-weight:500;text-wrap:balance;}
.stat__label{text-wrap:balance;}
.stat__label{margin-top:20px;font-size:21px;font-weight:700;letter-spacing:-.03em;}
.stat__desc{margin-top:14px;font-size:19px;line-height:1.8;color:var(--ink-3);}

/* =========================================================
   Business
   ========================================================= */
.biz{background:var(--bg-soft);}

/* 가로 이동에 사용할 스크롤 구간 */
/* 높이는 js/main.js 의 bizLayout() 이 가로 이동량에 맞춰 다시 계산한다 */
.biz__pin{position:relative;height:200vh;}
.biz__sticky{
  position:sticky;top:0;
  height:100svh;min-height:640px;
  display:flex;flex-direction:column;justify-content:center;
  gap:clamp(26px,3.2vw,44px);
  overflow:hidden;
}
.biz__head{max-width:720px;}

.biz__viewport{overflow:hidden;}
.biz__row{
  display:flex;gap:clamp(16px,2vw,26px);
  padding:0 max(var(--gutter),calc((100vw - var(--maxw)) / 2));
  will-change:transform;
}

.biz-card{
  position:relative;flex:0 0 clamp(280px,30vw,420px);
  height:clamp(340px,52vh,540px);
  border-radius:6px;overflow:hidden;background:var(--navy);
  isolation:isolate;
}
.biz-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--ease);
}
.biz-card::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(8,12,22,.05) 30%,rgba(8,12,22,.82) 100%);
  transition:background .5s var(--ease);
}
.biz-card:hover img{transform:scale(1.07);}
.biz-card:hover::after{background:linear-gradient(180deg,rgba(28,59,102,.42) 0%,rgba(8,12,22,.9) 100%);}
.biz-card__body{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:clamp(22px,2.4vw,32px);color:#fff;
}
.biz-card__eng{font-size:13px;font-weight:700;letter-spacing:.1em;color:rgba(255,255,255,.7);text-transform:capitalize;}
.biz-card__title{margin-top:10px;font-size:clamp(21px,1.9vw,27px);font-weight:700;letter-spacing:-.035em;}
.biz-card__desc{font-weight:500;
  margin-top:12px;font-size:18px;line-height:1.7;color:rgba(255,255,255,.94);
  transition:color .4s var(--ease);
}
.biz-card:hover .biz-card__desc{color:#fff;}

.biz__progress{height:2px;background:var(--line);position:relative;}
.biz__progress i{
  position:absolute;left:0;top:0;height:100%;width:0;
  background:var(--point);
}

/* =========================================================
   Strengths
   ========================================================= */
/* 포커스된 패널만 넓게 펼쳐지고 나머지는 좁은 띠로 접힌다 */
.why__panels{
  display:flex;gap:clamp(10px,1vw,16px);
  height:clamp(340px,42vh,440px);
}
.why-item{
  position:relative;flex:1 1 0;min-width:0;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(22px,2vw,34px);
  border:0;
  border-radius:8px;
  background:transparent;
  overflow:hidden;cursor:pointer;text-align:left;
  transition:flex-grow .8s var(--ease),background .6s var(--ease),border-color .6s var(--ease);
}
/* 카드별 배경 이미지 — 접힌 상태에서도 카드가 비어 보이지 않게 한다 */
.why-item__bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.why-item__bg img{
  width:100%;height:100%;object-fit:cover;
}
.why-item__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.38) 50%,rgba(255,255,255,.92) 100%);
  transition:background .6s var(--ease);
}
.why-item.is-focus .why-item__bg::after{
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.26) 50%,rgba(255,255,255,.92) 100%);
}
.why-item__body{position:relative;z-index:1;}


.why-item.is-focus{
  flex-grow:4;
}
/* 접힌 상태에서 글자가 다시 줄바꿈되지 않도록 폭을 고정하고 넘치는 부분은 잘라낸다 */
.why-item__body{
  display:block;
  width:clamp(300px,30vw,440px);
  opacity:0;transform:translateY(12px);
  transition:opacity .5s var(--ease) .12s,transform .5s var(--ease) .12s;
}
.why-item.is-focus .why-item__body{opacity:1;transform:none;}
.why-item__title{display:block;font-size:clamp(21px,1.8vw,27px);font-weight:700;letter-spacing:-.035em;line-height:1.45;color:var(--ink);}
.why-item__desc{font-weight:500;display:block;margin-top:14px;color:var(--ink-2);font-size:18px;line-height:1.75;}

/* 하단 탭 */
.why__tabs{
  display:flex;justify-content:center;gap:clamp(20px,3.5vw,52px);
  margin-top:clamp(30px,3.2vw,44px);
}
.why__tabs button{
  position:relative;padding:10px 4px;
  font-size:16px;font-weight:700;letter-spacing:.06em;
  font-variant-numeric:tabular-nums;
  color:rgba(255,255,255,.42);
  transition:color .4s var(--ease);
}
.why__tabs button:hover{color:rgba(255,255,255,.75);}
.why__tabs button.is-on{color:#fff;}
.why__tabs button::after{
  content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;
  background:#fff;transform:scaleX(0);transform-origin:center;
  transition:transform .4s var(--ease);
}
.why__tabs button.is-on::after{transform:scaleX(1);}

/* =========================================================
   Clients
   ========================================================= */
.clients{padding:clamp(60px,7vw,90px) 0;border-top:1px solid var(--line);overflow:hidden;}
.clients__title{text-align:center;margin-bottom:clamp(52px,6.5vw,84px);}
.marquee{display:flex;gap:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.marquee__row{display:flex;flex:0 0 auto;animation:marquee 70s linear infinite;}
.marquee:hover .marquee__row{animation-play-state:paused;}
.marquee__item{
  flex:0 0 auto;display:flex;align-items:center;
  padding:0 clamp(20px,2.6vw,40px);
  opacity:.82;transition:opacity .3s var(--ease);
}
.marquee__item:hover{opacity:1;}
.marquee__item img{
  height:clamp(40px,3.9vw,54px);width:auto;
  display:block;
}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-100%);}}

/* =========================================================
   CTA
   ========================================================= */
.cta{position:relative;background:var(--point);color:#fff;padding:clamp(64px,7vw,96px) 0;overflow:hidden;}
.cta::before{
  content:"";position:absolute;right:-6%;top:-40%;width:520px;height:520px;border-radius:50%;
  background:rgba(255,255,255,.08);
}
.cta .container{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;}
.cta__title{font-size:clamp(24px,3vw,38px);font-weight:700;letter-spacing:-.035em;line-height:1.4;}
.cta__desc{margin-top:12px;color:rgba(255,255,255,.94);font-size:16px;}

/* =========================================================
   Footer
   ========================================================= */
.footer{background:var(--navy);color:rgba(255,255,255,.82);padding:clamp(60px,6vw,84px) 0 40px;font-size:15px;}
.footer__top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:36px;border-bottom:1px solid var(--navy-line);}
.footer .logo{color:#fff;}
.footer__nav{display:flex;gap:clamp(16px,2.4vw,36px);flex-wrap:wrap;}
.footer__nav a{color:rgba(255,255,255,.92);font-weight:600;transition:color .3s var(--ease);}
.footer__nav a:hover{color:#fff;}
.footer__mid{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;padding:32px 0;}
.footer__info li{font-weight:500;line-height:2;letter-spacing:-.01em;}
.footer__info b{color:rgba(255,255,255,.9);font-weight:600;margin-right:6px;}
.footer__cos{flex:0 0 auto;max-width:420px;}
.footer__cos-title{
  font-size:14px;font-weight:700;letter-spacing:.1em;
  color:rgba(255,255,255,.9);margin-bottom:12px;
}
.footer__cos p{line-height:1.9;color:rgba(255,255,255,.82);}
.footer__cos b{color:rgba(255,255,255,.9);font-weight:600;margin-right:8px;}
.footer__policy{align-items:center;}
.footer__cpo{color:rgba(255,255,255,.68);}

.family{position:relative;flex:0 0 auto;}
.family select{
  appearance:none;-webkit-appearance:none;
  width:220px;height:48px;padding:0 44px 0 18px;
  background:transparent;border:1px solid var(--navy-line);border-radius:4px;
  color:rgba(255,255,255,.8);font-size:14px;cursor:pointer;
}
.family select option{color:#111;}
.family::after{
  content:"";position:absolute;right:18px;top:50%;width:7px;height:7px;
  margin-top:-5px;border-right:1.5px solid rgba(255,255,255,.6);border-bottom:1.5px solid rgba(255,255,255,.6);
  transform:rotate(45deg);pointer-events:none;
}
.footer__bottom{padding-top:26px;border-top:1px solid var(--navy-line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:rgba(255,255,255,.68);font-size:14px;}
.footer__policy{display:flex;gap:20px;}
.footer__policy a:hover{color:#fff;}
.footer__policy .em{color:rgba(255,255,255,.9);font-weight:600;}

/* top button */
.to-top{
  position:fixed;right:clamp(16px,2.5vw,32px);bottom:clamp(16px,2.5vw,32px);z-index:80;
  width:52px;height:52px;border-radius:50%;
  background:var(--ink);color:#fff;display:grid;place-items:center;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:all .4s var(--ease);
  box-shadow:0 10px 26px rgba(10,15,28,.24);
}
.to-top.is-show{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:var(--point);}
.to-top svg{width:18px;height:18px;}

/* =========================================================
   Scroll reveal
   ========================================================= */
/* 스크립트가 동작할 때만 숨긴다. 실패하면 내용이 그대로 보인다 */
.js [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.js [data-reveal].is-in{opacity:1;transform:none;}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1024px){
  /* 좁은 화면에서는 고정 스크롤 대신 손가락으로 미는 가로 스크롤 */
  .biz__pin{height:auto;}
  .biz__sticky{position:static;height:auto;min-height:0;padding:clamp(88px,11vw,150px) 0;}
  .biz__viewport{overflow:visible;}
  .biz__row{
    display:grid;grid-template-columns:1fr;
    gap:clamp(16px,2.4vw,24px);
    transform:none !important;
  }
  .biz-card{width:auto;height:clamp(300px,52vh,420px);}
  .biz__progress{display:none;}

  /* 한 열로 접히면 고정할 이유가 없다 */
  .concern__head{position:static;}
  .concern__list li{padding-top:clamp(32px,5vh,56px);padding-bottom:clamp(32px,5vh,56px);}

  /* 좁은 화면에서는 4칸이 한 줄에 놓이지 않아 순차 포커스가 의미를 잃는다 */
  .why__track{height:auto;}
  .why__sticky{position:static;height:auto;min-height:0;padding:clamp(88px,11vw,150px) 0;}
  .why__panels{display:grid;grid-template-columns:1fr 1fr;gap:16px;height:auto;}
  /* 내용 길이와 무관하게 카드 높이를 모두 같게 고정 */
  .why-item{height:clamp(260px,30vw,320px);}
  .why-item{cursor:default;}
  .why-item__body{width:auto;opacity:1;transform:none;}
  .why__tabs{display:none;}

  .gnb,.header__util .btn-contact{display:none;}
  .burger{display:grid;}
  .intro__grid{grid-template-columns:1fr;}
  .why__list,.why__list--4{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  :root{--header-h:64px;}
  .hero{height:88svh;min-height:540px;}
  .stats__list{grid-template-columns:1fr;}
  .why__panels{grid-template-columns:1fr;}

  .biz__head{flex-direction:column;align-items:flex-start;}
  .hero__bottom .container{justify-content:center;}
  .hero__scroll{display:none;}
  .footer__mid{flex-direction:column;}
  .family select{width:100%;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;}
  .js [data-reveal]{opacity:1;transform:none;}
  .why__track{height:auto;}
  .why__sticky{position:static;height:auto;min-height:0;padding:clamp(88px,11vw,150px) 0;}
  .biz__pin{height:auto;}
  .biz__sticky{position:static;height:auto;min-height:0;padding:clamp(88px,11vw,150px) 0;}
  .biz__viewport{overflow-x:auto;}
  .biz__row{transform:none !important;}
  .why__panels{display:grid;grid-template-columns:1fr 1fr;gap:16px;height:auto;}
  /* 내용 길이와 무관하게 카드 높이를 모두 같게 고정 */
  .why-item{height:clamp(260px,30vw,320px);}
  .why-item__body{width:auto;opacity:1;transform:none;}
  .why__tabs{display:none;}
  .concern__list li{opacity:1;color:var(--ink);filter:none;transform:none;}
  .concern__rail i{height:100% !important;}
  .concern__cta{opacity:1;transform:none;}
}

/* =========================================================
   카카오톡 상담 버튼
   ========================================================= */
.kakao-fab{
  position:fixed;z-index:80;
  right:clamp(16px,2.5vw,32px);
  bottom:clamp(16px,2.5vw,32px);
  display:flex;align-items:center;gap:9px;
  height:52px;padding:0 20px 0 16px;
  border-radius:999px;
  background:#fee500;color:#191600;
  font-size:16px;font-weight:700;letter-spacing:-.025em;
  box-shadow:0 8px 22px rgba(10,15,28,.2);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.kakao-fab:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(10,15,28,.26);}
.kakao-fab__icon{display:grid;place-items:center;}
.kakao-fab__icon svg{width:22px;height:22px;}

/* 상담 버튼이 있으면 TOP 버튼을 그 위로 올린다 */
.has-kakao-fab .to-top{bottom:calc(clamp(16px,2.5vw,32px) + 72px);}

@media (max-width:768px){
  .kakao-fab{height:48px;padding:0 16px 0 14px;font-size:14px;}
  .kakao-fab__icon svg{width:20px;height:20px;}
  .has-kakao-fab .to-top{bottom:calc(clamp(16px,2.5vw,32px) + 66px);}
}

/* =========================================================
   설계사 모집
   ========================================================= */
.recruit{
  position:relative;overflow:hidden;
  background:var(--bg-soft);color:var(--ink);
  padding:clamp(72px,9vw,120px) 0;
}
/* 배경 사진 — 글이 놓이는 좌측을 흰색으로 덮어 가독성을 확보한다 */
.recruit__bg{position:absolute;inset:0;}
.recruit__bg img{width:100%;height:100%;object-fit:cover;}
.recruit__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(245,246,248,.97) 0%,
    rgba(245,246,248,.93) 40%,
    rgba(245,246,248,.62) 72%,
    rgba(245,246,248,.34) 100%);
}
.recruit__inner{
  position:relative;z-index:1;
  display:grid;grid-template-columns:7fr 5fr;
  gap:clamp(40px,5vw,88px);align-items:start;
}

.recruit__head .eyebrow{display:block;margin-bottom:12px;}
.recruit__title{
  margin:0;
  font-size:clamp(26px,3vw,40px);
  font-weight:700;line-height:1.32;letter-spacing:-.04em;
}
.recruit__title b{color:var(--point);font-weight:700;}
.recruit__lead{font-weight:500;
  margin-top:20px;
  font-size:clamp(17px,1.55vw,20px);line-height:1.8;
  color:var(--ink-2);
}
.recruit__note{margin-top:18px;font-size:14.5px;line-height:1.6;color:var(--ink-3);}

.recruit__aside{display:flex;}

@media (min-width:1025px){
  /* 버튼 아랫변을 좌측 글 마지막 줄에 맞춘다 */
  .recruit__aside{align-self:end;justify-content:flex-end;}
}
@media (max-width:1024px){
  .recruit__inner{grid-template-columns:1fr;}
  .recruit__bg::after{
    background:linear-gradient(180deg,
      rgba(245,246,248,.94) 0%,
      rgba(245,246,248,.9) 60%,
      rgba(245,246,248,.8) 100%);
  }
}

/* =========================================================
   하위 페이지 공통
   ========================================================= */
.page-sub{padding-top:var(--header-h);}
.gnb__link--on{color:var(--point) !important;}
.gnb__link--on::after{transform:scaleX(1);}

/* =========================================================
   채용 페이지
   ========================================================= */
.rp__hero{position:relative;overflow:hidden;padding:clamp(72px,9vw,120px) 0;}
.rp__hero-bg{position:absolute;inset:0;}
.rp__hero-bg img{width:100%;height:100%;object-fit:cover;}
.rp__hero-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(245,246,248,.97) 0%,rgba(245,246,248,.93) 42%,
    rgba(245,246,248,.62) 74%,rgba(245,246,248,.34) 100%);
}
.rp__hero-inner{position:relative;z-index:1;max-width:900px;}
.rp__title{
  margin-top:12px;
  font-size:clamp(28px,3.4vw,44px);
  font-weight:700;line-height:1.32;letter-spacing:-.04em;
}
.rp__title b{color:var(--point);font-weight:700;}
.rp__lead{font-weight:500;
  margin-top:20px;max-width:800px;
  font-size:clamp(17px,1.55vw,20px);line-height:1.8;color:var(--ink-2);
}

/* 모집 개요 */
.rp__overview{background:var(--bg);}
.rp__table{border-top:1px solid var(--line);}
.rp__table > div{
  display:grid;grid-template-columns:200px 1fr;gap:20px;
  padding:clamp(20px,2.2vw,28px) 4px;
  border-bottom:1px solid var(--line);
}
.rp__table dt{font-size:18px;font-weight:700;letter-spacing:-.025em;}
.rp__table dd{font-weight:500;margin:0;font-size:clamp(17px,1.55vw,21px);line-height:1.7;color:var(--ink-2);letter-spacing:-.02em;}
.rp__table dd span{display:inline-block;margin-top:8px;font-size:16px;color:var(--ink-3);}
.rp__inline-list{display:flex;flex-direction:column;gap:10px;}
.rp__inline-list li{position:relative;padding-left:16px;}
.rp__inline-list li b{color:var(--ink);font-weight:600;}
.rp__inline-list li::before{
  content:"";position:absolute;left:2px;top:calc(.85em - 2.5px);
  width:5px;height:5px;border-radius:50%;background:var(--point);
}

/* 인재상 */
.rp__who{background:var(--bg-soft);}
.who-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,22px);}
.who-card{
  --who-pad:clamp(16px,1.8vw,24px);
  display:flex;flex-direction:column;align-items:center;text-align:center;
  background:#fff;border-radius:10px;overflow:hidden;
  padding:clamp(26px,2.6vw,34px) var(--who-pad) clamp(30px,3vw,38px);
}
.who-card__no{
  display:inline-block;
  padding:6px 12px;border-radius:5px;
  background:#d1d5db;color:var(--ink);
  font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1;
}
/* 그림 속 손이 화면 밖으로 이어지는 구도라, 카드 폭까지 넓힌다. 잘린 면 페이드는 이미지에 구워져 있다 */
.who-card__ill{
  position:relative;display:block;
  width:calc(100% + var(--who-pad) * 2);
  margin:clamp(16px,1.8vw,22px) calc(var(--who-pad) * -1) clamp(20px,2.2vw,28px);
}
.who-card__ill img{display:block;width:100%;height:auto;}
.who-card__title{
  font-size:clamp(18px,1.6vw,20px);font-weight:700;
  line-height:1.45;letter-spacing:-.035em;color:var(--ink);
  text-wrap:balance;
  min-height:2.9em;
}
.who-card__desc{
  margin-top:12px;
  font-size:clamp(15px,1.3vw,16px);font-weight:500;
  line-height:1.7;letter-spacing:-.02em;color:var(--ink-3);
  text-wrap:balance;
}

/* =========================================================
   지원 폼
   ========================================================= */
.rp__form-wrap{background:var(--bg);}
.rp__form-wrap .container{max-width:760px;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.form{display:flex;flex-direction:column;gap:clamp(22px,2.6vw,30px);}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,24px);}
.field{display:flex;flex-direction:column;}
.field label{
  font-size:16px;font-weight:700;letter-spacing:-.02em;color:var(--ink);
  margin-bottom:10px;display:flex;align-items:center;gap:8px;
}
.field label em{
  font-style:normal;font-size:12px;font-weight:700;letter-spacing:.02em;
  color:var(--point);background:var(--point-soft);padding:3px 8px;border-radius:4px;
}
.field input,.field select,.field textarea{
  width:100%;font:inherit;font-size:17px;color:var(--ink);background:#fff;
  border:1px solid var(--line-strong);border-radius:8px;padding:15px 16px;
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.field select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);
  background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:44px;}
.field textarea{resize:vertical;min-height:140px;line-height:1.7;}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3);}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--point);box-shadow:0 0 0 3px rgba(28,59,102,.12);
}
.field__count{margin-top:8px;font-size:14px;color:var(--ink-3);text-align:right;}
.field__err{margin-top:8px;font-size:14px;color:#c0392b;}
.has-error input,.has-error select,.has-error textarea{border-color:#c0392b;}

.consent{border:1px solid var(--line);border-radius:10px;background:var(--bg-soft);padding:clamp(20px,2.4vw,28px);}
.consent__title{font-size:17px;font-weight:700;letter-spacing:-.025em;margin-bottom:18px;}
.consent__item{padding-top:0;}
.check{display:flex;align-items:flex-start;gap:12px;cursor:pointer;}
.check input{position:absolute;opacity:0;width:0;height:0;}
.check__box{
  flex:0 0 22px;width:22px;height:22px;margin-top:2px;display:grid;place-items:center;
  background:#fff;border:1.5px solid var(--line-strong);border-radius:6px;
  transition:background .25s var(--ease),border-color .25s var(--ease);
}
.check__box svg{width:13px;height:13px;fill:none;stroke:#fff;opacity:0;transition:opacity .2s var(--ease);}
.check input:checked + .check__box{background:var(--point);border-color:var(--point);}
.check input:checked + .check__box svg{opacity:1;}
.check input:focus-visible + .check__box{box-shadow:0 0 0 3px rgba(28,59,102,.18);}
.check__label{font-size:16px;line-height:1.6;letter-spacing:-.02em;color:var(--ink);}
.check__label b{font-weight:700;color:var(--point);}
.consent__body{font-weight:500;margin:12px 0 0 34px;font-size:15.5px;line-height:1.85;color:var(--ink-2);}
.consent__body b{color:var(--ink);font-weight:600;margin-right:6px;}
.consent__item.has-error .check__box{border-color:#c0392b;}

.form__submit{width:100%;justify-content:center;height:58px;}
.form__submit:disabled{opacity:.6;pointer-events:none;}
.form__error{padding:14px 16px;border-radius:8px;background:#fdecea;color:#c0392b;font-size:15px;line-height:1.6;}
.form__note{font-weight:500;text-align:center;font-size:15px;color:var(--ink-3);}

.form-done{text-align:center;padding:clamp(40px,6vw,72px) 0;}
.form-done__mark{width:64px;height:64px;margin:0 auto 24px;border-radius:50%;background:var(--point);color:#fff;display:grid;place-items:center;}
.form-done__mark svg{width:28px;height:28px;}
.form-done h3{font-size:clamp(23px,2.5vw,30px);font-weight:700;letter-spacing:-.035em;}
.form-done p{margin:16px 0 32px;color:var(--ink-2);font-size:17px;line-height:1.85;}
.form-done p b{color:var(--ink);font-weight:600;}

@media (max-width:1024px){
  .who-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  .rp__table > div{grid-template-columns:1fr;gap:8px;}
  .who-grid{grid-template-columns:1fr;}
  .form__row{grid-template-columns:1fr;}
  .consent__body{margin-left:0;}
}

/* =========================================================
   모바일 정리 (여백 리듬 · 가독성 · 플로팅 버튼)
   ========================================================= */
@media (max-width:768px){
  /* 섹션 사이 176px 공백을 112px로 */
  .section{padding:56px 0;}
  .sec-head{margin-bottom:30px;}

  /* 지표: 항목이 검은 여백에 떠 보이지 않도록 구분선으로 묶는다 */
  .stats__head{margin-bottom:36px;}
  .stat{padding:26px 0;}
  .stat + .stat{border-top:1px solid var(--line);}
  .stat__label{margin-top:14px;}
  .stat__desc{margin-top:10px;}

  /* 상담 방식 카드: 밝은 사진 위 흰 글씨가 묻혀서 dim을 위까지 올린다 */
  .biz-card::after{
    background:linear-gradient(180deg,rgba(8,12,22,.34) 0%,rgba(8,12,22,.62) 45%,rgba(8,12,22,.9) 100%);
  }

  /* 채용 히어로: 가로 스크림이라 오른쪽 글씨가 사진 위에 그대로 놓였다 */
  .rp__hero{padding:56px 0;}
  .rp__hero-bg::after{
    background:linear-gradient(180deg,
      rgba(245,246,248,.96) 0%,rgba(245,246,248,.9) 60%,rgba(245,246,248,.82) 100%);
  }

  /* 인재상 카드: 한 장이 화면을 다 먹지 않도록 */
  .who-card{padding:22px 18px 26px;}
  .who-card__ill{width:78%;margin:14px auto 18px;}
  .who-grid{gap:12px;}

  /* 데스크톱 전용 줄바꿈: 좁은 화면에선 자연스럽게 흐르게 둔다 */
  .br-pc{display:none;}

  /* 플로팅 버튼 2개가 본문을 가린다. 카카오 상담만 남긴다 */
  .to-top{display:none;}
}

/* =========================================================
   지사장 인사말 · 약력
   ========================================================= */
/* 인물사진 가장자리를 --navy 로 페이드해 두어 배경과 이어진다 */
.greet{background:var(--navy);color:#fff;}

.greet__top{
  display:grid;grid-template-columns:1fr .6fr;
  gap:clamp(36px,4.5vw,72px);align-items:center;
}
.greet__title{
  margin-top:20px;
  font-size:clamp(26px,3.1vw,40px);font-weight:700;
  line-height:1.45;letter-spacing:-.04em;color:#fff;
}

.greet__sign{margin-top:clamp(34px,4vw,52px);line-height:1.6;}
.greet__sign span{display:block;font-size:15px;color:rgba(255,255,255,.62);}
.greet__sign b{display:block;margin-top:3px;font-size:19px;font-weight:700;letter-spacing:-.03em;color:#fff;}
.greet__sign-mark{display:block;margin-top:12px;width:clamp(104px,9.5vw,128px);height:auto;opacity:.95;}

.greet__photo{margin:0;}
.greet__photo-frame{overflow:hidden;background:var(--navy);aspect-ratio:4/5;}
.greet__photo-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block;}

/* 약력 */
.greet__cv{
  margin-top:clamp(48px,5.5vw,78px);padding-top:clamp(34px,3.8vw,50px);
  border-top:1px solid rgba(255,255,255,.18);
}
.greet__cv-title{
  margin-bottom:clamp(24px,2.6vw,34px);
  font-size:clamp(19px,1.7vw,22px);font-weight:700;letter-spacing:-.03em;color:#fff;
}

/* 연혁 — 왼쪽 연도, 세로선, 오른쪽 내용 */
.hist{list-style:none;margin:0;padding:0;max-width:860px;}
.hist__item{
  display:grid;grid-template-columns:96px minmax(0,1fr);
  gap:clamp(18px,2vw,30px);
}
.hist__year{
  font-size:clamp(20px,1.9vw,24px);font-weight:800;letter-spacing:-.03em;
  color:#fff;line-height:1.3;
}
/* 세로선이 항목 사이에서 끊기지 않도록 아래 여백을 선 안쪽에 둔다 */
.hist__text{
  position:relative;list-style:none;margin:0;
  padding:0 0 clamp(26px,2.8vw,36px) clamp(20px,2vw,28px);
  border-left:1px solid rgba(255,255,255,.18);
}
.hist__text::before{
  content:"";position:absolute;left:-4.5px;top:9px;
  width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.9);
}
.hist__item:last-child .hist__text{border-left-color:transparent;}
.hist__text li{
  font-size:clamp(16px,1.4vw,17px);font-weight:600;
  line-height:1.6;letter-spacing:-.025em;color:#fff;
}
.hist__text li + li{margin-top:10px;}
.hist__text em{
  font-style:normal;margin-left:6px;
  font-size:14px;font-weight:500;color:rgba(255,255,255,.64);letter-spacing:-.02em;
}

/* 수료 — 연도가 없어 칩으로 둔다 */
.hist__extra{margin-top:clamp(10px,1.2vw,18px);}
.hist__extra-title{
  font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);
}
.hist__chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;}
.hist__chips li{
  padding:9px 14px;border-radius:6px;background:rgba(255,255,255,.09);
  font-size:15px;font-weight:500;letter-spacing:-.02em;color:rgba(255,255,255,.88);
}

@media (max-width:1024px){
  .greet__top{grid-template-columns:1fr .52fr;gap:clamp(24px,3vw,40px);}
  .greet__sign{margin-top:28px;}
}
@media (max-width:768px){
  /* 사진을 이름과 가로로 묶어 크게 부풀지 않게 한다 */
  .greet__top{grid-template-columns:1fr;gap:26px;}
  .greet__photo{order:-1;max-width:150px;}
  .greet__title{font-size:26px;}
  .greet__sign{margin-top:26px;}
  .hist__item{grid-template-columns:74px minmax(0,1fr);gap:16px;}
  .hist__text{padding-bottom:22px;}
}

/* =========================================================
   마감 — 키보드 포커스 · 탭 영역
   ========================================================= */
/* 폼 밖의 링크·버튼에는 포커스 표시가 없어 키보드로 위치를 알 수 없었다 */
:where(a,button,[tabindex]):focus-visible{
  outline:2px solid var(--point);
  outline-offset:3px;border-radius:4px;
}
.hero :where(a,button):focus-visible,
.why :where(a,button):focus-visible,
.greet :where(a,button):focus-visible,
.cta :where(a,button):focus-visible,
.footer :where(a,button):focus-visible,
.mnav :where(a,button):focus-visible,
.header:not(.is-solid) :where(a,button):focus-visible{outline-color:#fff;}

/* 히어로 인디케이터가 3px 라 누르기 어려웠다. 보이는 크기는 두고 누르는 영역만 넓힌다 */
.hero__dot{position:relative;}
.hero__dot::before{
  content:"";position:absolute;left:0;right:0;
  top:50%;transform:translateY(-50%);height:44px;
}

/* =========================================================
   마감 — 태블릿 리듬
   ========================================================= */
@media (min-width:769px) and (max-width:1024px){
  /* 상담 방식만 1열이라 카드가 813px 로 납작해졌다. 아래 약속 섹션(2열)과 맞춘다 */
  .biz__row{grid-template-columns:1fr 1fr;gap:16px;}
  .biz-card{height:clamp(280px,34vw,360px);}
}

/* =========================================================
   개인정보처리방침 페이지
   ========================================================= */
.container--narrow{max-width:820px;}
.policy{padding:clamp(96px,10vw,150px) 0 clamp(72px,8vw,120px);}
.policy__head{padding-bottom:clamp(28px,3vw,40px);border-bottom:1px solid var(--line);}
.policy__title{
  margin-top:16px;
  font-size:clamp(28px,3.2vw,40px);font-weight:700;letter-spacing:-.04em;color:var(--ink);
}
.policy__lead{
  margin-top:20px;
  font-size:16px;font-weight:500;line-height:1.85;letter-spacing:-.02em;color:var(--ink-3);
}

.policy__sec{margin-top:clamp(40px,4.4vw,60px);}
.policy__sec h2{
  font-size:clamp(19px,1.8vw,22px);font-weight:700;letter-spacing:-.03em;color:var(--ink);
}
.policy__sec p{
  margin-top:14px;
  font-size:16px;font-weight:500;line-height:1.9;letter-spacing:-.02em;color:var(--ink-2);
}
.policy__sec p b{color:var(--ink);font-weight:600;}
.policy__sec ul{margin:14px 0 0;padding:0;list-style:none;}
.policy__sec ul li{
  position:relative;padding-left:15px;margin-top:9px;
  font-size:16px;font-weight:500;line-height:1.85;letter-spacing:-.02em;color:var(--ink-2);
}
.policy__sec ul li::before{
  content:"";position:absolute;left:0;top:.85em;
  width:4px;height:4px;border-radius:50%;background:var(--ink-3);
}
.policy__sec ul li b{color:var(--ink);font-weight:600;}
.policy__note{
  margin-top:18px !important;padding:16px 18px;border-radius:8px;background:var(--bg-soft);
  font-size:15px !important;line-height:1.8 !important;
}

/* 항목 표 — 좁은 화면에서는 위아래로 쌓인다 */
.policy__table{margin-top:16px;border-top:1px solid var(--line);}
.policy__table > div{
  display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;
  padding:14px 2px;border-bottom:1px solid var(--line);
}
.policy__table span{
  font-size:15px;font-weight:600;letter-spacing:-.02em;color:var(--ink);
}
.policy__table p{
  margin-top:0 !important;font-size:15px !important;line-height:1.75 !important;color:var(--ink-2);
}

@media (max-width:640px){
  .policy__table > div{grid-template-columns:1fr;gap:6px;}
}

/* 동의 항목 안의 처리방침 링크 — 작성 중인 내용을 잃지 않도록 새 창으로 연다 */
.consent__body a{
  color:var(--point);font-weight:600;
  text-decoration:underline;text-underline-offset:3px;
}
.consent__body a:hover{color:var(--point-dark);}
.consent__hint{font-size:.9em;color:var(--ink-3);}
