/* =========================================================
   권익지킴연구소 세종 분사무소 — style.css (v2, faaf-korea 충실 재현)
   navy #19284E · mint #43D3BA · 단색 버튼 · 라인 아이콘
   ========================================================= */
:root{
  --navy:#19284E; --navy-deep:#0f1c3a;
  --mint:#43D3BA; --mint-dk:#2FB6A0; --mint-soft:#eafaf7; --mint-line:#51D3BC;
  --ink:#333; --gray:#6b7585; --gray-2:#9aa3b2;
  --bg:#fff; --bg-soft:#F4F6FA; --card:#F5F5F5; --line:#e7ebf1;
  --container:1280px;
  --ff-ko:"Pretendard","Pretendard Variable",-apple-system,"Apple SD Gothic Neo",sans-serif;
  --ff-en:"Open Sans",var(--ff-ko);
  --ease:cubic-bezier(.22,.61,.36,1);
  --sh-sm:0 6px 20px rgba(25,40,78,.06);
  --sh-md:0 18px 44px rgba(25,40,78,.12);
  --sh-lg:0 30px 70px rgba(25,40,78,.18);
}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ font-family:var(--ff-ko); color:var(--ink); background:var(--bg); line-height:1.7; font-size:16px; letter-spacing:-.01em; -webkit-font-smoothing:antialiased; overflow-x:hidden;
  word-break:keep-all; overflow-wrap:break-word; }
/* 자연스러운 한글 줄바꿈: 제목은 균형 배치, 본문은 고아줄 방지 */
h1,h2,h3,h4,.sec-title,.hero__title,.notice__title,.insight__title{ text-wrap:balance; }
p,li,.hero__sub,.consult__lead,.section-head__desc{ text-wrap:pretty; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; }
img,svg{ display:block; max-width:100%; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
input,textarea,select{ font-family:inherit; font-size:inherit; color:inherit; }
b,strong{ font-weight:700; }
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:40px; }

/* ---------- 공통 타이틀/라벨 ---------- */
.eyebrow{ font-family:var(--ff-en); font-weight:700; font-size:16px; letter-spacing:.02em; color:var(--mint); display:block; margin-bottom:18px; }
.eyebrow--navy{ color:var(--navy); }
.eyebrow--mint{ color:var(--mint); }
.sec-title{ font-size:clamp(25px,2.6vw,32px); font-weight:600; line-height:1.5; letter-spacing:-.02em; color:var(--navy); }
.sec-head{ margin-bottom:54px; }
.sec-head--center{ text-align:center; }
.sec-head--center .eyebrow{ margin-bottom:14px; }

/* ---------- 버튼(pill + 원형 화살표) ---------- */
.btn-pill{ display:inline-flex; align-items:center; gap:18px; height:56px; padding:0 8px 0 28px; border-radius:40px;
  font-size:15.5px; font-weight:600; color:#fff; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s; }
.btn-pill__arw{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; flex-shrink:0; transition:transform .25s var(--ease); }
.btn-pill:hover{ transform:translateY(-3px); }
.btn-pill:hover .btn-pill__arw{ transform:translateX(3px); }
.btn-pill--navy{ background:var(--navy); box-shadow:0 14px 30px rgba(25,40,78,.22); }
.btn-pill--navy .btn-pill__arw{ background:var(--mint); color:#fff; }
.btn-pill--navy:hover{ background:#22315e; }
.btn-pill--mint{ background:var(--mint); box-shadow:0 14px 30px rgba(67,211,186,.32); }
.btn-pill--mint .btn-pill__arw{ background:#fff; color:var(--mint); }
.btn-pill--mint:hover{ background:var(--mint-dk); }
.btn-pill--lg{ height:62px; font-size:16.5px; }
.btn-pill--block{ width:100%; justify-content:space-between; }

/* ---------- 스크롤 진행바(상단) ---------- */
.scroll-progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:200; background:linear-gradient(90deg,#2FB6A0,#43D3BA,#67ffe5); box-shadow:0 0 8px rgba(67,211,186,.6); transition:width .08s linear; }

/* =========================================================
   HEADER
   ========================================================= */
.header{ position:fixed; inset:0 0 auto 0; z-index:100; padding-block:18px; transition:background .35s,box-shadow .35s,padding .35s; }
.header__inner{ display:flex; align-items:center; gap:34px; }
.header.scrolled{ background:rgba(255,255,255,.94); backdrop-filter:blur(12px); box-shadow:0 1px 0 var(--line); padding-block:12px; }
.brand{ display:flex; align-items:center; gap:11px; flex-shrink:0; }
.brand__text{ display:flex; flex-direction:column; line-height:1.08; }
.brand__text em{ font-style:normal; font-size:11.5px; font-weight:600; letter-spacing:-.01em; color:var(--gray-2); margin-bottom:2px; }
.brand__text strong{ font-size:18px; font-weight:800; letter-spacing:-.04em; color:var(--navy); }
.brand__mark--light{ display:none; }
.gnb{ display:flex; gap:34px; margin-inline:auto; }
.gnb a{ font-size:16px; font-weight:600; color:var(--navy); position:relative; padding-block:6px; }
.gnb a::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--mint); transition:width .28s var(--ease); }
.gnb a:hover{ color:var(--mint-dk); }
.gnb a:hover::after{ width:100%; }
.header__util{ flex-shrink:0; }
.util-pill{ display:inline-flex; align-items:center; gap:6px; height:38px; padding:0 16px; border-radius:40px; background:var(--mint); color:#fff; font-size:13.5px; font-weight:600; transition:background .2s,transform .2s; }
.util-pill:hover{ background:var(--mint-dk); transform:translateY(-2px); }
/* 히어로 위 투명 헤더 = 흰 글자 (히어로 없는 페이지는 .header--solid로 항상 고정) */
.header:not(.scrolled):not(.header--solid) .brand__text strong{ color:#fff; }
.header:not(.scrolled):not(.header--solid) .brand__text em{ color:rgba(255,255,255,.7); }
.header:not(.scrolled):not(.header--solid) .brand__mark--light{ display:block; }
.header:not(.scrolled):not(.header--solid) .brand__mark--dark{ display:none; }
.header:not(.scrolled):not(.header--solid) .gnb a{ color:rgba(255,255,255,.9); }
.header:not(.scrolled):not(.header--solid) .hamburger span{ background:#fff; }

/* 히어로가 없는 서브페이지(cases.html, case.html 등): 항상 스크롤됨 상태와 동일하게 고정 */
.header.header--solid{ background:rgba(255,255,255,.94); backdrop-filter:blur(12px); box-shadow:0 1px 0 var(--line); }
.header.header--solid .brand__text strong{ color:var(--navy); }
.header.header--solid .brand__text em{ color:var(--gray); }
.header.header--solid .gnb a{ color:var(--navy); }
.header.header--solid .hamburger span{ background:var(--navy); }
.header:not(.scrolled) .hamburger.open span{ background:var(--navy); } /* 메뉴 열림 시 X는 흰 패널 위라 어둡게 */
.hamburger{ display:none; flex-direction:column; gap:5px; padding:6px; margin-left:auto; } /* 모바일에서 맨 오른쪽으로 */
.hamburger span{ width:24px; height:2px; background:var(--navy); border-radius:2px; transition:.3s var(--ease); }
.hamburger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- 우측 플로팅 퀵바 ---------- */
.quickbar{ position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:95; display:flex; flex-direction:column; }
.quickbar a{ width:84px; padding:14px 6px; background:#fff; box-shadow:-6px 0 24px rgba(25,40,78,.10); display:flex; flex-direction:column; align-items:center; gap:6px;
  font-size:12px; font-weight:600; color:var(--navy); border-bottom:1px solid var(--line); transition:background .2s,color .2s; }
.quickbar a svg{ width:22px; height:22px; }
.quickbar a:first-child{ border-radius:14px 0 0 0; }
.quickbar a:hover{ background:var(--navy); color:#fff; }
.quickbar__femi{ background:var(--mint)!important; color:#fff!important; border-radius:0 0 0 14px; }
.quickbar__femi strong{ font-family:var(--ff-en); font-size:16px; font-weight:800; }
.quickbar__femi span{ font-size:10.5px; opacity:.9; }

/* =========================================================
   HERO
   ========================================================= */
.hero{ position:relative; min-height:80vh; display:flex; align-items:center; color:#fff; overflow:hidden; isolation:isolate; }
.hero__bg{ position:absolute; inset:0; z-index:-3; background:
  linear-gradient(120deg, rgba(15,28,58,.5), rgba(15,28,58,.8)),
  url("../assets/hero-bg.jpg") center/cover no-repeat,
  linear-gradient(120deg,#1b2c52 0%,#0f1c3a 100%);
  animation:kenburns 22s ease-in-out infinite alternate; will-change:transform; }
@keyframes kenburns{ from{ transform:scale(1); } to{ transform:scale(1.09); } }
.hero__veil{ position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(15,28,58,.78) 0%,rgba(15,28,58,.35) 55%,rgba(15,28,58,.15) 100%); }
.hero__inner{ padding-block:120px; }
.hero__eyebrow{ font-size:clamp(16px,1.7vw,20px); font-weight:500; color:rgba(255,255,255,.85); margin-bottom:18px; }
.hero__title{ font-size:clamp(38px,6vw,72px); font-weight:700; line-height:1.14; letter-spacing:-.035em; }
.hero__title span{ display:inline; font-size:.55em; font-weight:600; letter-spacing:-.02em; opacity:.92; }
.hero__sub{ margin-top:26px; font-family:var(--ff-en); font-size:clamp(14px,1.4vw,18px); font-style:italic; letter-spacing:.01em; color:rgba(255,255,255,.7); }
.hero__pain{ margin-top:22px; max-width:640px; font-size:clamp(15px,1.6vw,19px); font-weight:500; line-height:1.6; color:rgba(255,255,255,.92); }
.hero__scroll{ position:absolute; left:34px; bottom:40px; writing-mode:vertical-rl; font-family:var(--ff-en); font-size:11px; letter-spacing:.28em; color:rgba(255,255,255,.6); padding-bottom:60px; }
.hero__scroll::after{ content:""; position:absolute; left:50%; bottom:0; width:1px; height:46px; background:linear-gradient(rgba(255,255,255,.6),transparent); }

/* =========================================================
   ABOUT
   ========================================================= */
.about{ position:relative; overflow:hidden; padding-block:130px; }
.about__blob{ position:absolute; top:-26%; right:-14%; width:70%; height:152%; border-radius:50%; z-index:0;
  background:radial-gradient(120% 120% at 72% 34%, #66e2cd 0%, #43D3BA 42%, #25a78d 100%);
  animation:blobfloat 15s ease-in-out infinite alternate; will-change:transform; }
@keyframes blobfloat{ from{ transform:translate(0,0) scale(1); } to{ transform:translate(-1.5%,2.5%) scale(1.04); } }
.about__wrap{ position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.about__left{ max-width:520px; }
.about__left .sec-title{ margin-bottom:22px; }
.about__text{ color:var(--gray); font-size:16.5px; line-height:1.85; margin-bottom:34px; }
.about__text b{ color:var(--navy); }
.about__right{ position:relative; height:560px; }
.about__photo{ position:absolute; border-radius:26px; box-shadow:var(--sh-lg); background-size:cover; background-position:center; background-repeat:no-repeat; background-color:#dfe7ee; }
.about__photo--a{ width:60%; aspect-ratio:470/530; top:0; left:4%; background-image:url("../assets/about-1.jpg"); }
.about__photo--b{ width:52%; aspect-ratio:400/450; right:2%; bottom:0; border:7px solid #fff; background-image:url("../assets/about-2.jpg"); }

/* =========================================================
   WHY US (미션 선언문)
   ========================================================= */
.why{ position:relative; overflow:hidden; isolation:isolate; padding-block:130px; color:#fff; }
.why__bg{ position:absolute; inset:0; z-index:-3; background:
  url("../assets/why-bg.jpg") center/cover no-repeat,
  linear-gradient(135deg,#1b2c52 0%,#0f1c3a 100%); }
.why__veil{ position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,rgba(15,28,58,.9),rgba(15,28,58,.82) 40%,rgba(15,28,58,.94)); }
.why__wrap{ position:relative; z-index:1; max-width:820px; margin-inline:auto; text-align:center; }
.why__head{ margin-bottom:42px; }
.why__title{ color:#fff; }
.why__body{ display:flex; flex-direction:column; gap:22px; text-align:left; }
.why__body p{ font-size:16.5px; line-height:1.9; color:rgba(255,255,255,.78); }
.why__body b{ color:var(--mint); }
.why__body .why__lead{ color:#fff; font-weight:600; font-size:18px; padding-top:6px; border-top:1px solid rgba(255,255,255,.16); }

/* =========================================================
   BUSINESS
   ========================================================= */
.business{ background:var(--bg-soft); padding-block:130px; overflow:hidden; }
.business__wrap{ display:grid; grid-template-columns:minmax(360px,1fr) 1.4fr; gap:50px; align-items:center; }
.business__left{ max-width:460px; }
.business__left .sec-title{ margin-bottom:22px; }
.business__text{ color:var(--gray); font-size:16px; line-height:1.8; margin-bottom:32px; }
.business__slider{ min-width:0; }
/* 슬라이드가 컨테이너 밖(화면 끝)으로 삐져나가지 않도록 슬라이더 영역에서 클리핑 */
.bizSwiper{ overflow:hidden; }
.bizSwiper .swiper-wrapper{ align-items:stretch; }
.biz-card{ width:286px; height:auto; min-height:430px; background:var(--card); border-radius:30px; padding:40px 34px; display:flex; flex-direction:column;
  transition:background .35s var(--ease), box-shadow .35s, transform .35s; }
.biz-card__cat{ font-size:15px; font-weight:600; color:var(--gray); margin-bottom:14px; }
.biz-card__title{ font-size:22px; font-weight:700; line-height:1.42; letter-spacing:-.02em; color:var(--navy); }
.biz-card__ico{ margin-top:auto; width:104px; height:104px; border-radius:50%; display:grid; place-items:center; background:#fff; color:var(--mint); box-shadow:inset 0 0 0 1px rgba(67,211,186,.18); }
.biz-card__ico svg{ width:54px; height:54px; }
.biz-card.swiper-slide-active{ background:var(--navy); box-shadow:var(--sh-lg); }
.biz-card.swiper-slide-active .biz-card__cat{ color:var(--mint); }
.biz-card.swiper-slide-active .biz-card__title{ color:#fff; }
.biz-card.swiper-slide-active .biz-card__ico{ background:rgba(67,211,186,.14); box-shadow:none; }
.bizProgress.swiper-pagination-progressbar{ position:relative; margin-top:38px; height:4px; background:#dfe4ec; border-radius:4px; }
.bizProgress .swiper-pagination-progressbar-fill{ background:var(--mint); border-radius:4px; }

/* =========================================================
   PROCESS (CASE STUDIES)
   ========================================================= */
.process{ position:relative; overflow:hidden; background:var(--mint-soft); padding-block:120px; }
.process__deco{ position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(closest-side, rgba(67,211,186,.16), transparent) 80% -10%/620px 620px no-repeat,
    radial-gradient(closest-side, rgba(67,211,186,.13), transparent) 6% 60%/520px 520px no-repeat,
    radial-gradient(closest-side, rgba(67,211,186,.10), transparent) 50% 110%/700px 700px no-repeat; }
.process .container{ position:relative; z-index:1; }
.process__list{ display:flex; justify-content:center; align-items:center; gap:18px; flex-wrap:wrap; }
.pcard{ position:relative; width:228px; height:228px; background:#fff; border:9px solid var(--mint-line); border-radius:64px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; box-shadow:0 18px 40px rgba(67,211,186,.16); transition:transform .3s var(--ease); }
.pcard:hover{ transform:translateY(-8px); }
.pcard__no{ width:30px; height:30px; border-radius:50%; background:rgba(67,211,186,.16); color:var(--mint-dk);
  display:grid; place-items:center; font-family:var(--ff-en); font-weight:700; font-size:13px; }
.pcard__ico{ display:grid; place-items:center; min-height:80px; }
.pcard__ico img{ width:78px; height:78px; object-fit:contain; }
.pcard__ico img.is-missing{ display:none; }
.pcard__label{ font-size:18.5px; font-weight:600; color:var(--navy); }

/* =========================================================
   SERVICE (CTA BAND)
   ========================================================= */
.service{ position:relative; overflow:hidden; isolation:isolate; padding-block:90px; color:#fff; }
.service__bg{ position:absolute; inset:0; z-index:-2; background:
  url("../assets/cta-bg.jpg") center/cover no-repeat,
  linear-gradient(120deg,#243a33,#16261f); }
.service__veil{ position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(13,22,18,.82),rgba(13,22,18,.4)); }
.service__inner{ display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.service__copy .eyebrow{ margin-bottom:14px; }
.service__copy h2{ font-size:clamp(22px,2.4vw,30px); font-weight:600; line-height:1.5; letter-spacing:-.02em; }

/* =========================================================
   CONSULT (FORM)
   ========================================================= */
.consult{ background:var(--bg-soft); padding-block:120px; }
.consult__wrap{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:start; }
.consult__intro .sec-title{ margin-bottom:18px; }
.consult__lead{ color:var(--gray); font-size:16.5px; line-height:1.8; }
.consult__info{ margin-top:32px; }
.consult__info li{ display:flex; align-items:center; gap:18px; padding:15px 0; border-bottom:1px solid var(--line); }
.consult__info li:has(.consult__phones){ align-items:flex-start; }
.consult__info li span:first-child{ font-size:13px; font-weight:700; color:var(--mint-dk); width:42px; flex-shrink:0; padding-top:2px; }
.consult__info a,.consult__info li p{ font-size:16px; font-weight:500; color:var(--navy); }
.consult__info a:hover{ color:var(--mint-dk); }
.consult__phones{ display:flex; flex-direction:column; gap:6px; }
.consult__form{ background:#fff; border-radius:30px; padding:40px; box-shadow:var(--sh-sm); }
.field{ margin-bottom:18px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field label{ display:block; font-size:14px; font-weight:600; color:var(--navy); margin-bottom:8px; }
.field label i{ color:var(--mint); font-style:normal; }
.field input,.field select,.field textarea{ width:100%; padding:13px 16px; border:1.5px solid var(--line); border-radius:12px; background:var(--bg-soft); resize:vertical; transition:border-color .2s,background .2s,box-shadow .2s; }
.field input::placeholder,.field textarea::placeholder{ color:var(--gray-2); }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--mint); background:#fff; box-shadow:0 0 0 4px rgba(67,211,186,.12); }
.agree{ display:flex; align-items:flex-start; gap:10px; margin:6px 0 22px; font-size:13.5px; color:var(--gray); cursor:pointer; }
.agree input{ width:18px; height:18px; margin-top:2px; accent-color:var(--mint); flex-shrink:0; }
.consult__submit{ display:flex; width:fit-content; min-width:210px; justify-content:center; margin:6px auto 0; }
.consult__note{ text-align:center; font-size:12.5px; color:var(--gray-2); margin-top:14px; transition:color .2s; }
.consult__note.is-success{ color:#179e84; font-weight:600; }
.consult__note.is-error{ color:#d24545; font-weight:600; }
.consult__submit:disabled{ opacity:.6; cursor:not-allowed; }
.hp-field{ position:absolute!important; left:-9999px!important; width:1px; height:1px; opacity:0; pointer-events:none; }

/* =========================================================
   BLOG (행정 인사이트) — 매거진형 (피처드 1 + 리스트)
   ========================================================= */
.insight{ position:relative; overflow:hidden; padding-block:120px; }
.insight__circle{ position:absolute; top:-20%; right:-10%; width:760px; height:760px; border-radius:50%; z-index:0;
  background:radial-gradient(closest-side, rgba(98,180,255,.18), rgba(67,211,186,.10) 60%, transparent); }
.insight .container{ position:relative; z-index:1; }
.insight__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:44px; }
.insight__title{ font-size:clamp(30px,3.4vw,44px); font-weight:700; letter-spacing:-.03em; color:var(--navy); }
.notice__more{ display:inline-flex; align-items:center; gap:7px; font-size:14.5px; font-weight:600; color:var(--mint-dk); white-space:nowrap; }
.notice__more:hover{ gap:11px; }
.insight__grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:40px; align-items:stretch; }

/* 피처드 */
.featured{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:24px; overflow:hidden; box-shadow:var(--sh-sm); transition:transform .3s var(--ease), box-shadow .3s; }
.featured:hover{ transform:translateY(-6px); box-shadow:var(--sh-md); }
.featured__thumb{ aspect-ratio:16/10; background:
  linear-gradient(135deg, rgba(67,211,186,.16), rgba(25,40,78,.10)),
  url("../assets/blog-featured.jpg") center/cover no-repeat,
  linear-gradient(135deg,#e8eef4,#d7e3ec); transition:transform .6s var(--ease); will-change:transform; }
.featured:hover .featured__thumb{ transform:scale(1.06); }
.featured__body{ padding:28px 34px 32px; display:flex; flex-direction:column; flex:1; }
.featured__body h3{ font-size:22px; font-weight:700; line-height:1.42; letter-spacing:-.02em; color:var(--navy); margin:14px 0 12px; }
.featured__body p{ font-size:15px; color:var(--gray); line-height:1.7; flex:1; }
.featured__body time{ margin-top:20px; font-family:var(--ff-en); font-size:13px; color:var(--gray-2); }
.ncard__tag{ align-self:flex-start; font-size:12px; font-weight:700; color:var(--mint-dk); background:var(--mint-soft); padding:5px 12px; border-radius:40px; }

/* 리스트 */
.insight__list{ display:flex; flex-direction:column; justify-content:center; }
.insight__list li{ border-bottom:1px solid var(--line); }
.insight__list li:first-child{ border-top:1px solid var(--line); }
.insight__list a{ display:block; padding:24px 6px; transition:padding-left .25s var(--ease); }
.insight__list a:hover{ padding-left:14px; }
.row__tag{ font-size:12px; font-weight:700; color:var(--mint-dk); }
.insight__list h4{ font-size:18px; font-weight:700; line-height:1.5; letter-spacing:-.02em; color:var(--navy); margin:8px 0; transition:color .2s; }
.insight__list a:hover h4{ color:var(--mint-dk); }
.insight__list time{ font-family:var(--ff-en); font-size:12.5px; color:var(--gray-2); }

/* =========================================================
   CASES (사례 게시판)
   ========================================================= */
.cases{ padding-block:110px; background:var(--bg-soft); }
.cases__state{ text-align:center; color:var(--gray); padding:40px 0; }
.cases__more{ display:flex; justify-content:center; margin-top:48px; }

/* 종합페이지: 세로 목록(10개씩) + 페이지네이션 — sec-head와 분리된 흰색 패널 */
.cases__panel{ background:#fff; border-radius:24px; box-shadow:var(--sh-lg); padding:8px 32px; margin-top:44px; }
.cases__col{ display:flex; flex-direction:column; list-style:none; }
.case-row{ border-bottom:1px solid var(--line); }
.case-row:last-child{ border-bottom:none; }
.case-row__link{ display:block; padding:28px 8px; text-decoration:none; color:inherit; transition:padding-left .25s var(--ease); }
.case-row__link:hover{ padding-left:14px; }
.case-row__head{ display:flex; align-items:center; gap:14px; margin-bottom:10px; }
.case-row__cat{ font-size:13px; font-weight:600; color:var(--mint-dk); }
.case-row__date{ font-family:var(--ff-en); font-size:12px; color:var(--gray-2); }
.case-row__title{ font-size:19px; font-weight:700; color:var(--navy); line-height:1.4; margin-bottom:8px; }
.case-row__link:hover .case-row__title{ color:var(--mint-dk); }
.case-row__summary{ font-size:14.5px; color:var(--gray); line-height:1.7; }
.cases__pagination{ display:flex; justify-content:center; align-items:center; gap:8px; margin-top:48px; }
.cases__page-btn{ min-width:40px; height:40px; padding:0 10px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--navy); font-family:var(--ff-en); font-size:14px; font-weight:600; cursor:pointer; transition:background .2s, color .2s, border-color .2s; }
.cases__page-btn:hover:not(:disabled){ border-color:var(--mint); color:var(--mint-dk); }
.cases__page-btn.is-active{ background:var(--navy); border-color:var(--navy); color:#fff; }
.cases__page-btn:disabled{ opacity:.35; cursor:not-allowed; }

/* 홈 미리보기: 대표 1(좌) + 리스트 4(우) */
.cases__split{ display:grid; grid-template-columns:1.08fr .92fr; gap:40px; align-items:stretch; margin-top:44px; }
.case-featured{ background:#fff; border-radius:24px; box-shadow:var(--sh-lg); }
.case-featured__link{ display:flex; flex-direction:column; gap:14px; padding:44px 38px; height:100%; color:inherit; text-decoration:none; }
.case-featured__cat{ font-size:14px; font-weight:600; color:var(--mint-dk); }
.case-featured__title{ font-size:24px; font-weight:700; color:var(--navy); line-height:1.4; }
.case-featured__summary{ font-size:15px; color:var(--gray); line-height:1.7; flex:1; }
.case-featured__date{ font-family:var(--ff-en); font-size:13px; color:var(--gray-2); }
.cases__list{ display:flex; flex-direction:column; justify-content:center; list-style:none; }
.cases__list li{ border-bottom:1px solid var(--line); }
.cases__list li:first-child{ border-top:1px solid var(--line); }
.cases__list a{ display:block; padding:20px 6px; text-decoration:none; color:inherit; transition:padding-left .25s var(--ease); }
.cases__list a:hover{ padding-left:14px; }
.cases__list-cat{ font-size:12.5px; font-weight:600; color:var(--mint-dk); }
.cases__list h4{ font-size:16.5px; font-weight:700; color:var(--navy); line-height:1.5; margin:6px 0; }
.cases__list a:hover h4{ color:var(--mint-dk); }
.cases__list time{ font-family:var(--ff-en); font-size:12px; color:var(--gray-2); }

/* 상세페이지 */
.container--narrow{ max-width:760px; }
.case-detail{ padding-block:140px 110px; background:var(--bg-soft); }
.case-detail__back{ margin-bottom:32px; }
.case-detail__cat{ font-size:14px; font-weight:600; color:var(--mint-dk); }
.case-detail__title{ margin-top:10px; font-size:clamp(26px,3.4vw,38px); font-weight:700; letter-spacing:-.02em; color:var(--navy); line-height:1.35; }
.case-detail__date{ display:block; margin-top:14px; font-family:var(--ff-en); font-size:13px; color:var(--gray-2); }
.case-detail__body{ margin-top:36px; padding:40px 44px; background:#fff; border-radius:24px; box-shadow:var(--sh-lg); }
.case-detail__body p{ font-size:16px; line-height:1.9; color:var(--ink); margin-bottom:1.2em; }
.case-detail__body h2{ font-size:22px; font-weight:700; color:var(--navy); margin:1.6em 0 .6em; }
.case-detail__body h3{ font-size:19px; font-weight:700; color:var(--navy); margin:1.5em 0 .5em; }
.case-detail__body h4{ font-size:17px; font-weight:700; color:var(--navy); margin:1.4em 0 .5em; }
.case-detail__body ul{ list-style:disc; margin:0 0 1.2em 1.4em; }
.case-detail__body ol{ list-style:decimal; margin:0 0 1.2em 1.4em; }
.case-detail__body ul ul,.case-detail__body ol ul{ list-style:circle; }
.case-detail__body li{ font-size:16px; line-height:1.85; color:var(--ink); margin-bottom:.4em; }
.case-detail__body li ul,.case-detail__body li ol{ margin-top:.4em; }
.case-detail__body blockquote{ margin:1.4em 0; padding:16px 22px; border-left:3px solid var(--mint); background:var(--bg-soft); color:var(--gray); font-style:italic; }
.case-detail__body pre{ margin:1.4em 0; padding:18px 20px; border-radius:12px; background:var(--navy); color:#fff; overflow-x:auto; font-size:14px; line-height:1.6; }
.case-detail__body pre code{ font-family:monospace; }
.case-detail__body hr{ margin:2em 0; border:none; border-top:1px solid var(--line); }
.case-detail__body figure{ margin:1.6em 0; }
.case-detail__body img{ width:100%; border-radius:14px; display:block; }
.case-detail__body figcaption{ margin-top:8px; font-size:13px; color:var(--gray-2); text-align:center; }
.case-detail__body a{ color:var(--mint-dk); text-decoration:underline; }
.case-detail__body .case-callout{ margin:1.4em 0; padding:18px 22px; border-radius:14px; background:var(--mint-soft); color:var(--navy); font-size:15px; line-height:1.7; }
.case-detail__body .case-todo{ display:flex; align-items:center; gap:8px; margin-bottom:.4em; font-size:16px; }
.case-detail__body details{ margin:1.2em 0; padding:14px 18px; border-radius:12px; background:var(--card); }
.case-detail__body details summary{ cursor:pointer; font-weight:600; color:var(--navy); }

/* =========================================================
   FAQ (자주 묻는 질문)
   ========================================================= */
.faq{ padding-block:110px; background:var(--bg-soft); }
.faq__list{ max-width:840px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.faq__item{ background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; transition:box-shadow .25s var(--ease), border-color .25s; }
.faq__item[open]{ box-shadow:var(--sh-md); border-color:transparent; }
.faq__item summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:14px; padding:22px 26px; font-size:17px; font-weight:600; color:var(--navy); transition:color .2s; }
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::before{ content:"Q"; flex-shrink:0; width:30px; height:30px; border-radius:50%; background:var(--mint-soft); color:var(--mint-dk); display:grid; place-items:center; font-family:var(--ff-en); font-weight:700; font-size:14px; }
.faq__item summary:hover{ color:var(--mint-dk); }
.faq__item summary::after{ content:""; margin-left:auto; flex-shrink:0; width:10px; height:10px; border-right:2px solid var(--gray-2); border-bottom:2px solid var(--gray-2); transform:rotate(45deg); transition:transform .3s var(--ease); }
.faq__item[open] summary::after{ transform:rotate(-135deg); border-color:var(--mint-dk); }
.faq__a{ padding:0 26px 24px 70px; }
.faq__a p{ color:var(--gray); font-size:15.5px; line-height:1.8; }

/* =========================================================
   LOCATION (오시는길)
   ========================================================= */
.location{ padding-block:110px; background:var(--bg); }
.location__grid{ display:grid; grid-template-columns:380px 1fr; gap:48px; align-items:start; }
.location__name{ font-size:20px; font-weight:700; color:var(--navy); margin-bottom:14px; }
.location__addr{ font-size:17px; font-weight:600; color:var(--navy); }
.location__guide{ margin-top:8px; font-size:15px; color:var(--gray); line-height:1.6; }
.location__tel{ margin-top:18px; font-size:15px; color:var(--gray); }
.location__tel a{ font-weight:700; color:var(--navy); }
.location__links{ display:flex; gap:10px; margin-top:26px; flex-wrap:wrap; }
.location__mapbtn{ display:inline-flex; align-items:center; padding:11px 18px; border-radius:999px; background:var(--mint); color:#fff; font-size:14px; font-weight:600; transition:background .25s var(--ease); }
.location__mapbtn:hover{ background:var(--mint-dk); }
.location__mapbtn--naver{ background:var(--navy); }
.location__mapbtn--naver:hover{ background:var(--navy-deep); }
.location__map{ border-radius:18px; overflow:hidden; box-shadow:var(--sh-md); }
.location__map iframe{ display:block; width:100%; height:420px; border:0; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ background:var(--navy-deep); color:rgba(255,255,255,.66); }
.footer__top{ display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-block:60px; }
.brand--footer .brand__text strong{ color:#fff; }
.brand--footer .brand__text em{ color:rgba(255,255,255,.5); }
.footer__tag{ margin-top:18px; font-size:14.5px; line-height:1.7; color:rgba(255,255,255,.55); }
.footer__info{ text-align:right; }
.footer__info p{ font-size:15px; line-height:1.9; }
.footer__info a:hover{ color:#fff; }
.footer__links{ display:flex; gap:18px; justify-content:flex-end; margin-top:14px; }
.footer__links a{ font-size:14px; font-weight:600; color:var(--mint); }
.footer__links a:hover{ opacity:.75; }
.footer__bottom{ border-top:1px solid rgba(255,255,255,.1); }
.footer__bottom .container{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding-block:22px; }
.footer__bottom span{ font-family:var(--ff-en); font-size:12.5px; color:rgba(255,255,255,.45); letter-spacing:.02em; }
.footer__bottom nav{ display:flex; gap:20px; }
.footer__bottom nav a{ font-size:13px; color:rgba(255,255,255,.6); }
.footer__bottom nav a:hover{ color:#fff; }

/* ---------- to-top ---------- */
.to-top{ position:fixed; right:24px; bottom:24px; z-index:90; width:48px; height:48px; border-radius:14px; background:var(--navy); color:#fff; display:grid; place-items:center; box-shadow:var(--sh-md); opacity:0; pointer-events:none; transform:translateY(14px); transition:.3s var(--ease); }
.to-top svg{ width:22px; height:22px; }
.to-top.show{ opacity:1; pointer-events:auto; transform:translateY(0); }
.to-top:hover{ background:var(--mint-dk); }

/* ---------- reveal ---------- */
.js .reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); transition-delay:var(--d,0s); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .js .reveal{ opacity:1; transform:none; transition:none; } html{ scroll-behavior:auto; } .hero__bg,.about__blob{ animation:none; } }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1180px){
  .business__wrap{ grid-template-columns:1fr; gap:40px; }
  .business__left{ max-width:none; }
}
@media (max-width:960px){
  .container{ padding-inline:28px; }
  .header__util{ display:none; }
  .hamburger{ display:flex; }
  .gnb{ position:fixed; inset:0 0 0 auto; height:100vh; width:min(80vw,320px); flex-direction:column; gap:0; background:#fff; padding:96px 28px 28px; margin:0; box-shadow:-20px 0 60px rgba(25,40,78,.2); transform:translateX(100%); transition:transform .4s var(--ease); overflow-y:auto; }
  .gnb.open{ transform:none; }
  .gnb a{ color:var(--navy)!important; padding:16px 4px; border-bottom:1px solid var(--line); font-size:17px; }
  .gnb a::after{ display:none; }
  .about,.why,.business,.consult,.notice,.location{ padding-block:84px; }
  .about__wrap{ grid-template-columns:1fr; gap:40px; }
  .about__blob{ width:120%; height:60%; top:-6%; right:-30%; }
  .about__right{ height:440px; max-width:520px; }
  .consult__wrap{ grid-template-columns:1fr; gap:36px; }
  .insight__grid{ grid-template-columns:1fr; gap:30px; }
  .insight__head{ flex-wrap:wrap; gap:14px; }
  .cases__split{ grid-template-columns:1fr; gap:30px; }
  .location__grid{ grid-template-columns:1fr; gap:30px; }
  .cases__panel{ padding:4px 18px; }
  .case-detail__body{ padding:28px 22px; }
  .process__list{ gap:18px; }
  .pcard{ width:44%; max-width:260px; height:auto; aspect-ratio:1/1; }
  .service__inner{ flex-direction:column; align-items:flex-start; }
  .footer__top{ flex-direction:column; }
  .footer__info{ text-align:left; }
  .footer__links{ justify-content:flex-start; }
}
@media (max-width:600px){
  .container{ padding-inline:20px; }
  .br-pc{ display:none; }   /* 모바일에선 강제 줄바꿈 해제 → balance로 자연 줄바꿈 */
  /* 퀵바: 모바일에선 우측 세로바 → 하단 고정 바로 전환(히어로/섹션 텍스트 가림 방지) */
  .quickbar{ top:auto; bottom:0; left:0; right:0; transform:none; flex-direction:row; width:100%; box-shadow:0 -4px 18px rgba(25,40,78,.14); }
  .quickbar a{ flex:1; width:auto; flex-direction:row; justify-content:center; gap:7px; padding:13px 4px; font-size:13px; border-bottom:none; border-radius:0; border-left:1px solid rgba(25,40,78,.08); }
  .quickbar a:first-child{ border-left:none; border-radius:0; }
  .quickbar a svg{ width:19px; height:19px; }
  .quickbar__femi{ border-radius:0; flex-direction:row; gap:6px; }
  .quickbar__femi strong{ font-size:15px; }
  .quickbar__femi span{ display:none; }
  .to-top{ display:none; }                 /* 하단 바와 겹침 방지 */
  .footer__bottom{ padding-bottom:74px; }  /* 하단 고정 바 높이만큼 여백 확보 */
  .hero__title{ font-size:34px; }
  .hero__scroll{ display:none; }
  .hamburger{ padding:11px 8px; }
  .pcard{ width:46%; height:auto; aspect-ratio:1/1; border-width:7px; border-radius:44px; }
  .pcard__ico{ min-height:62px; }
  .pcard__ico img{ width:60px; height:60px; }
  .process__list{ gap:14px; }
  .field-row{ grid-template-columns:1fr; }
  .consult__form{ padding:26px 20px; }
  .footer__bottom .container{ flex-direction:column; align-items:flex-start; }
  .biz-card{ width:248px; min-height:380px; padding:32px 26px; }
  .faq{ padding-block:72px; }
  .faq__item summary{ padding:18px 18px; font-size:15px; gap:11px; }
  .faq__a{ padding:0 18px 20px 18px; }
  .location{ padding-block:56px; }
  .location__map iframe{ height:300px; }
}
