@charset "utf-8";
/* =========================================================================
   회계법인형 1 (cpa1) — 패럴랙스
   짙은 남색과 흰 바탕을 번갈아 쓰고, 포인트는 신뢰감 있는 파랑 하나.
   사진 · 카드는 data-speed / data-par-bg 로 스크롤 속도를 달리한다 (app.js).
   영문 표제 Manrope, 한글 Noto Sans KR.
   ========================================================================= */

:root{
  --ca-navy:#07162b;
  --ca-navy2:#0c2445;
  --ca-blue:#1d5fd8;
  --ca-blue2:#3b82f6;
  --ca-sky:#8ec5ff;
  --ca-ink:#111827;
  --ca-body:#4b5563;
  --ca-mut:#8b95a5;
  --ca-line:#e5e8ee;
  --ca-soft:#f4f7fb;
  --ca-wrap:1280px;
  --ca-gutter:32px;
  --ca-fixedh:84px;
  --ca-en:"Manrope", "Noto Sans KR", sans-serif;
  --ca-sans:"Noto Sans KR", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", sans-serif;
  --ca-ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; }
body{ margin:0; background:#fff; color:var(--ca-ink); font-family:var(--ca-sans); font-size:16px; line-height:1.75; letter-spacing:-.015em; -webkit-text-size-adjust:100%; }
img{ max-width:100%; height:auto; vertical-align:middle; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
h1,h2,h3,h4{ margin:0; line-height:1.35; letter-spacing:-.035em; word-break:keep-all; }
p,figure{ margin:0; }
ul,ol,dl,dd{ margin:0; padding:0; list-style:none; }
table{ border-collapse:collapse; }
:focus-visible{ outline:2px solid var(--ca-blue2); outline-offset:3px; }

.ca-skip{ position:absolute; left:-9999px; }
.ca-skip:focus{ left:10px; top:10px; z-index:999; background:#fff; padding:10px 16px; }
.sound_only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.ca-wrap{ max-width:var(--ca-wrap); margin:0 auto; padding-left:var(--ca-gutter); padding-right:var(--ca-gutter); }
.ca-ico{ width:1.1em; height:1.1em; flex:none; }
#ca-main [id]{ scroll-margin-top:var(--ca-fixedh); }
.ca-empty{ padding:24px; border:1px dashed var(--ca-line); color:var(--ca-mut); font-size:14px; }

.ca-en{ margin-bottom:14px; font-family:var(--ca-en); font-size:15px; font-weight:600; letter-spacing:.02em; color:var(--ca-blue); }
.ca-head{ text-align:center; margin-bottom:56px; }
.ca-head--left{ text-align:left; margin-bottom:28px; }
.ca-head h2{ font-size:clamp(26px,3vw,40px); font-weight:500; }
.ca-more{ display:inline-flex; align-items:center; gap:8px; margin-top:26px; font-size:15px; font-weight:500; color:var(--ca-blue); }
.ca-more .ca-ico{ transition:transform .25s; }
.ca-more:hover .ca-ico{ transform:translateX(4px); }

/* 나타나기 */
.ca-rv{ opacity:0; transform:translateY(36px); transition:opacity .9s var(--ca-ease), transform .9s var(--ca-ease); }
.ca-rv.is-in{ opacity:1; transform:none; }
.no-js .ca-rv{ opacity:1; transform:none; }

/* 헤더 ------------------------------------------------------------------ */
.ca-fixed{ position:fixed; inset:0 0 auto; z-index:60; color:#fff; transition:background .35s, color .35s, box-shadow .35s; }
.ca-fixed.is-solid,.ca-fixed:not(.is-main){ background:rgba(255,255,255,.96); color:var(--ca-ink); box-shadow:0 1px 0 var(--ca-line); backdrop-filter:blur(10px); }
.ca-demo{ display:flex; flex-wrap:wrap; justify-content:center; gap:4px 18px; padding:6px 16px; background:var(--ca-navy); color:#9fb0c8; font-size:12.5px; }
.ca-demo b{ color:#fff; }
.ca-demo a{ color:var(--ca-sky); font-weight:700; }
.ca-header__in{ display:flex; align-items:center; gap:36px; height:84px; }
.ca-logo{ display:flex; align-items:center; gap:12px; }
.ca-logo__mark{ position:relative; width:30px; height:30px; }
.ca-logo__mark i{ position:absolute; width:18px; height:18px; border-radius:4px; background:var(--ca-blue2); }
.ca-logo__mark i:first-child{ left:0; top:0; }
.ca-logo__mark i:last-child{ right:0; bottom:0; background:currentColor; opacity:.9; mix-blend-mode:normal; }
.ca-logo__txt{ display:flex; flex-direction:column; line-height:1.1; }
.ca-logo__txt strong{ font-family:var(--ca-en); font-size:21px; font-weight:700; letter-spacing:.08em; }
.ca-logo__txt small{ margin-top:3px; font-size:11px; opacity:.7; letter-spacing:.04em; }
.ca-gnb{ margin-left:auto; }
.ca-gnb>ul{ display:flex; gap:44px; }
.ca-gnb>ul>li{ position:relative; }
.ca-gnb>ul>li>a{ display:block; padding:28px 0; font-family:var(--ca-en); font-size:15.5px; font-weight:600; letter-spacing:.02em; }
.ca-gnb>ul>li>a::after{ content:""; position:absolute; left:0; right:0; bottom:22px; height:2px; background:var(--ca-blue2); transform:scaleX(0); transition:transform .3s; }
.ca-gnb>ul>li:hover>a::after,.ca-gnb>ul>li:focus-within>a::after{ transform:scaleX(1); }
.ca-gnb li ul{ position:absolute; left:50%; top:100%; min-width:180px; padding:12px 0; transform:translate(-50%,8px); background:#fff; color:var(--ca-ink);
  border-radius:12px; box-shadow:0 18px 40px rgba(7,22,43,.14); opacity:0; visibility:hidden; transition:.22s; }
.ca-gnb li:hover ul,.ca-gnb li:focus-within ul{ opacity:1; visibility:visible; transform:translate(-50%,0); }
.ca-gnb li ul a{ display:block; padding:8px 22px; font-size:14.5px; white-space:nowrap; }
.ca-gnb li ul a:hover{ color:var(--ca-blue); }
.ca-gnb__empty{ font-size:13px; opacity:.7; }
.ca-headcta{ display:inline-flex; align-items:center; height:42px; padding:0 20px; border:1px solid currentColor; border-radius:99px; font-size:14px; font-weight:500; transition:.2s; }
.ca-headcta:hover{ background:var(--ca-blue); border-color:var(--ca-blue); color:#fff; }
.ca-burger{ width:44px; height:44px; padding:0; border:0; background:transparent; cursor:pointer; }
.ca-burger span{ display:block; width:26px; height:2px; margin:7px 0 7px auto; background:currentColor; }
.ca-burger span:last-child{ width:18px; }

/* 전체 메뉴 ------------------------------------------------------------- */
.ca-drawer{ position:fixed; inset:0; z-index:80; background:var(--ca-navy); color:#fff; overflow-y:auto; }
.ca-drawer__panel{ max-width:var(--ca-wrap); margin:0 auto; padding:0 var(--ca-gutter) 60px; }
.ca-drawer__top{ display:flex; justify-content:space-between; align-items:center; height:84px; }
.ca-drawer__close{ width:44px; height:44px; border:1px solid rgba(255,255,255,.25); border-radius:50%; background:transparent; font-size:16px; cursor:pointer; }
.ca-drawer__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:40px; margin-top:60px; }
.ca-drawer__h{ display:block; padding-bottom:16px; margin-bottom:16px; border-bottom:1px solid rgba(255,255,255,.18); font-family:var(--ca-en); font-size:26px; font-weight:600; }
.ca-drawer__grid ul a{ display:block; padding:6px 0; color:#b8c6db; }
.ca-drawer__grid ul a:hover{ color:#fff; }
.ca-drawer__tel{ display:inline-flex; align-items:center; gap:8px; margin-top:60px; font-size:20px; color:var(--ca-sky); }

/* 서브 페이지 ----------------------------------------------------------- */
.ca-sbanner{ position:relative; padding:calc(var(--ca-fixedh) + 90px) 0 70px; overflow:hidden; background:var(--ca-navy); color:#fff; }
.ca-sbanner__bg{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:.35; }
.ca-sbanner::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,22,43,.9),rgba(7,22,43,.3)); }
.ca-sbanner .ca-wrap{ position:relative; z-index:1; }
.ca-sbanner p{ font-family:var(--ca-en); font-size:13px; letter-spacing:.16em; color:var(--ca-sky); }
.ca-sbanner h1{ margin-top:10px; font-size:clamp(32px,4vw,52px); font-weight:500; }
.ca-sub{ padding:70px 0 120px; }
.ca-sub #bo_v_con h3,.ca-sub #ctt_con h3{ margin:34px 0 12px; font-size:20px; font-weight:500; }
.ca-sub #bo_v_con table,.ca-sub #ctt_con table{ width:100%; max-width:800px; margin-bottom:10px; border-top:2px solid var(--ca-ink); font-size:15px; }
.ca-sub #bo_v_con th,.ca-sub #bo_v_con td,.ca-sub #ctt_con th,.ca-sub #ctt_con td{ padding:13px 14px; border-bottom:1px solid var(--ca-line); text-align:left; vertical-align:top; }
.ca-sub #bo_v_con th,.ca-sub #ctt_con th{ width:28%; font-weight:500; color:var(--ca-body); background:var(--ca-soft); }
.ca-sub #bo_v_con ul,.ca-sub #ctt_con ul{ padding:0; }
.ca-sub #bo_v_con li,.ca-sub #ctt_con li{ position:relative; padding:6px 0 6px 18px; list-style:none; }
.ca-sub #bo_v_con li::before,.ca-sub #ctt_con li::before{ content:""; position:absolute; left:2px; top:16px; width:6px; height:6px; background:var(--ca-blue2); }

/* 패럴랙스 배경 공통 — 위아래 여유를 둬서 움직여도 빈 곳이 안 보이게 */
[data-par-bg]{ position:absolute; inset:-12% 0; overflow:hidden; will-change:transform; }
[data-par-bg] img{ width:100%; height:100%; object-fit:cover; }
[data-speed]{ will-change:transform; }

/* 1. 첫 화면 ------------------------------------------------------------ */
.ca-hero{ position:relative; height:100vh; min-height:640px; overflow:hidden; background:var(--ca-navy); color:#fff; }
.ca-hero__slide{ position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity 1.2s ease, visibility 0s 1.2s; }
.ca-hero__slide.is-on{ opacity:1; visibility:visible; transition:opacity 1.2s ease; }
.ca-hero__bg img{ transform:scale(1.12); transition:transform 7s linear; }
.ca-hero__slide.is-on .ca-hero__bg img{ transform:scale(1); }
.ca-hero__slide::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,22,43,.82) 0%,rgba(7,22,43,.35) 60%,rgba(7,22,43,.2) 100%), linear-gradient(0deg,rgba(7,22,43,.6),transparent 40%); }
.ca-hero__txt{ position:absolute; left:0; right:0; bottom:26%; z-index:2; }
.ca-hero__en{ font-family:var(--ca-en); font-size:16px; font-weight:600; color:var(--ca-sky); opacity:0; transform:translateY(20px); transition:.9s var(--ca-ease) .3s; }
.ca-hero__head{ margin-top:14px; font-size:clamp(34px,5vw,64px); font-weight:500; line-height:1.3; letter-spacing:-.045em; opacity:0; transform:translateY(30px); transition:1s var(--ca-ease) .45s; }
.ca-hero__slide.is-on .ca-hero__en,.ca-hero__slide.is-on .ca-hero__head{ opacity:1; transform:none; }
.ca-hero__ctrl{ position:absolute; left:0; right:0; top:calc(var(--ca-fixedh) + 70px); z-index:3; display:flex; align-items:center; gap:18px; }
.ca-hero__dots{ display:flex; gap:10px; }
.ca-hero__dots button{ width:34px; height:34px; padding:0; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:transparent; cursor:pointer; display:grid; place-items:center; }
.ca-hero__dots button i{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.6); }
.ca-hero__dots button.is-on{ border-color:#fff; }
.ca-hero__dots button.is-on i{ background:#fff; }
.ca-hero__pause{ border:0; background:transparent; color:rgba(255,255,255,.7); font-size:11px; letter-spacing:2px; cursor:pointer; }
.ca-hero__scroll{ position:absolute; left:50%; bottom:36px; z-index:3; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:10px; font-family:var(--ca-en); font-size:11px; letter-spacing:.3em; color:rgba(255,255,255,.75); }
.ca-hero__scroll i{ width:1px; height:46px; background:linear-gradient(rgba(255,255,255,.9),transparent); animation:ca-drop 2s ease-in-out infinite; transform-origin:top; }
@keyframes ca-drop{ 0%{ transform:scaleY(0); } 50%{ transform:scaleY(1); } 100%{ transform:scaleY(1); opacity:0; } }

/* 2. 소개 띠 ------------------------------------------------------------ */
.ca-about{ position:relative; overflow:hidden; padding:150px 0 170px; color:#fff; background:linear-gradient(115deg,#0b3470 0%,#1557c4 55%,#2f7bef 100%); }
.ca-about__glow{ position:absolute; right:-10%; top:-20%; width:70%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(142,197,255,.35),transparent 60%); pointer-events:none; }
.ca-about__in{ position:relative; display:grid; grid-template-columns:1fr 1.15fr; gap:80px; align-items:start; }
.ca-about__en{ font-family:var(--ca-en); font-size:clamp(40px,5vw,70px); font-weight:700; line-height:1; letter-spacing:-.02em; }
.ca-about__en span{ display:block; margin-bottom:6px; font-size:.42em; font-weight:400; letter-spacing:.04em; opacity:.8; }
.ca-about__ph{ width:78%; margin-top:70px; border-radius:18px; overflow:hidden; box-shadow:0 40px 80px rgba(3,15,40,.45); }
.ca-about__ph img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.ca-about__head{ font-size:clamp(22px,2.3vw,30px); font-weight:500; line-height:1.6; }
.ca-about__body{ margin-top:30px; max-width:560px; color:rgba(255,255,255,.78); font-size:16.5px; }
.ca-about__tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:34px; }
.ca-about__tags li{ padding:8px 16px; border:1px solid rgba(255,255,255,.3); border-radius:99px; font-size:14px; }

/* 3. 업무 분야 타일 ------------------------------------------------------ */
.ca-sol{ padding:160px 0 120px; background:linear-gradient(180deg,#fff 0%,var(--ca-soft) 100%); overflow:hidden; }
.ca-sol__in{ display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:start; }
.ca-sol__sticky{ position:sticky; top:calc(var(--ca-fixedh) + 60px); }
.ca-sol__head{ font-size:clamp(28px,3.2vw,44px); font-weight:500; line-height:1.45; }
.ca-sol__cols{ display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
.ca-sol__col{ display:grid; gap:22px; }
.ca-sol__col:last-child{ margin-top:120px; }
.ca-tile{ position:relative; display:block; border-radius:18px; overflow:hidden; aspect-ratio:4/5; background:var(--ca-navy2); color:#fff; }
.ca-tile img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ca-ease); }
.ca-tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,22,43,.1) 30%,rgba(7,22,43,.82)); transition:background .4s; }
.ca-tile:hover img{ transform:scale(1.07); }
.ca-tile:hover::after{ background:linear-gradient(180deg,rgba(29,95,216,.35) 0%,rgba(7,22,43,.9)); }
.ca-tile__txt{ position:absolute; left:0; right:0; bottom:0; z-index:1; padding:26px 24px; }
.ca-tile__txt strong{ display:block; font-size:22px; font-weight:500; }
.ca-tile__txt span{ display:block; margin-top:6px; font-size:14px; color:rgba(255,255,255,.8); line-height:1.6; }

/* 4. 전문 분야 넓은 카드 ------------------------------------------------ */
.ca-exp{ padding:140px 0 0; }
.ca-exp__grid{ display:grid; grid-template-columns:1fr 1fr; }
.ca-exp__card{ position:relative; min-height:460px; overflow:hidden; color:#fff; outline:none; }
.ca-exp__card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,22,43,.15),rgba(7,22,43,.85)); transition:background .5s; }
.ca-exp__card:hover::after,.ca-exp__card:focus-within::after,.ca-exp__card:focus::after{ background:rgba(12,36,69,.9); }
.ca-exp__txt{ position:absolute; left:0; right:0; bottom:0; z-index:1; padding:40px 44px; }
.ca-exp__txt>.ca-ico{ width:44px; height:44px; margin-bottom:18px; color:var(--ca-sky); }
.ca-exp__txt h3{ font-size:26px; font-weight:500; }
.ca-exp__txt>p{ margin-top:8px; color:rgba(255,255,255,.8); }
.ca-exp__refs{ max-height:0; overflow:hidden; opacity:0; transition:max-height .6s var(--ca-ease), opacity .4s, margin .4s; }
.ca-exp__card:hover .ca-exp__refs,.ca-exp__card:focus .ca-exp__refs,.ca-exp__card:focus-within .ca-exp__refs{ max-height:220px; opacity:1; margin-top:22px; }
.ca-exp__refs b{ display:block; margin-bottom:8px; font-family:var(--ca-en); font-size:13px; color:var(--ca-sky); letter-spacing:.06em; }
.ca-exp__refs li{ position:relative; padding:3px 0 3px 14px; font-size:14.5px; color:rgba(255,255,255,.85); }
.ca-exp__refs li::before{ content:""; position:absolute; left:0; top:13px; width:5px; height:1px; background:currentColor; }

/* 5. 숫자로 보는 실적 --------------------------------------------------- */
.ca-perf{ padding:160px 0 140px; overflow:hidden; }
.ca-perf__head h2{ font-size:clamp(26px,3vw,40px); font-weight:500; line-height:1.5; }
.ca-perf__date{ margin-top:12px; font-size:13.5px; color:var(--ca-mut); }
.ca-perf__grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; margin-top:70px; align-items:start; }
.ca-perf__item.is-b{ margin-top:-110px; }
.ca-perf__label{ font-size:17px; color:var(--ca-body); }
.ca-perf__num{ margin:4px 0 24px; font-family:var(--ca-en); font-size:clamp(48px,6vw,84px); font-weight:700; line-height:1.05; color:var(--ca-blue); letter-spacing:-.03em; }
.ca-perf__num small{ margin-left:4px; font-family:var(--ca-sans); font-size:.38em; font-weight:500; }
.ca-perf__item figure{ border-radius:16px; overflow:hidden; }
.ca-perf__item img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.ca-perf__mini{ display:grid; grid-template-columns:repeat(3,1fr); margin-top:80px; border-top:1px solid var(--ca-ink); }
.ca-perf__mini>div{ padding:26px 0; border-bottom:1px solid var(--ca-line); }
.ca-perf__mini>div+div{ padding-left:32px; border-left:1px solid var(--ca-line); }
.ca-perf__mini dt{ font-size:14px; color:var(--ca-mut); }
.ca-perf__mini dd{ font-family:var(--ca-en); font-size:34px; font-weight:600; }

/* 6. 주요 수행 실적 ----------------------------------------------------- */
.ca-ach{ position:relative; overflow:hidden; padding:140px 0; color:#fff; }
.ca-ach::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(7,22,43,.72),rgba(7,22,43,.9)); }
.ca-ach__in{ position:relative; z-index:2; }
.ca-ach__head{ display:grid; grid-template-columns:1fr auto; align-items:end; gap:10px 20px; margin-bottom:48px; }
.ca-ach__head .ca-en{ grid-column:1 / -1; margin:0; color:var(--ca-sky); }
.ca-ach__head h2{ font-size:clamp(28px,3.4vw,44px); font-weight:500; }
.ca-ach__nav{ display:flex; gap:10px; }
.ca-ach__nav button{ width:52px; height:52px; border:1px solid rgba(255,255,255,.35); border-radius:50%; background:transparent; color:#fff; cursor:pointer; display:grid; place-items:center; transition:.2s; }
.ca-ach__nav button:hover{ background:#fff; color:var(--ca-navy); }
.ca-ach__track{ display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 44px) / 3); gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding-bottom:10px; scrollbar-width:none; }
.ca-ach__track::-webkit-scrollbar{ display:none; }
.ca-ach__track li{ scroll-snap-align:start; }
.ca-ach__track a{ display:flex; flex-direction:column; min-height:280px; height:100%; padding:30px 28px; border-radius:20px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); backdrop-filter:blur(14px); transition:background .3s, transform .3s; }
.ca-ach__track a:hover{ background:rgba(255,255,255,.16); transform:translateY(-6px); }
.ca-ach__cate{ align-self:flex-start; padding:4px 12px; border-radius:99px; background:rgba(142,197,255,.18); font-size:12.5px; color:var(--ca-sky); }
.ca-ach__field{ margin-top:auto; padding-top:26px; font-size:13.5px; color:rgba(255,255,255,.6); }
.ca-ach__track strong{ margin-top:6px; font-size:19px; font-weight:500; line-height:1.55; }

/* 7. 소식 · FAQ --------------------------------------------------------- */
.ca-news{ padding:140px 0; background:var(--ca-soft); }
.ca-news__in{ display:grid; grid-template-columns:1.2fr 1fr; gap:80px; }
.ca-news__list{ border-top:1px solid var(--ca-ink); }
.ca-news__list a{ display:grid; grid-template-columns:100px 1fr auto; gap:20px; align-items:center; padding:24px 0; border-bottom:1px solid var(--ca-line); }
.ca-news__list time{ font-family:var(--ca-en); font-size:14px; color:var(--ca-mut); align-self:start; padding-top:3px; }
.ca-news__list span{ font-size:12.5px; color:var(--ca-blue); }
.ca-news__list strong{ display:block; font-size:17.5px; font-weight:500; }
.ca-news__list p{ margin-top:4px; font-size:14px; color:var(--ca-body); }
.ca-news__list a>.ca-ico{ width:22px; height:22px; color:var(--ca-mut); transition:transform .25s, color .25s; }
.ca-news__list a:hover strong{ color:var(--ca-blue); }
.ca-news__list a:hover>.ca-ico{ transform:translateX(4px); color:var(--ca-blue); }
.ca-faq{ border-top:1px solid var(--ca-ink); }
.ca-faq details{ border-bottom:1px solid var(--ca-line); }
.ca-faq summary{ display:flex; justify-content:space-between; gap:16px; padding:22px 0; cursor:pointer; list-style:none; }
.ca-faq summary::-webkit-details-marker{ display:none; }
.ca-faq summary h3{ font-size:17px; font-weight:500; }
.ca-faq summary i{ position:relative; flex:none; width:16px; height:16px; margin-top:6px; }
.ca-faq summary i::before,.ca-faq summary i::after{ content:""; position:absolute; left:0; top:7px; width:16px; height:2px; background:var(--ca-ink); transition:transform .25s; }
.ca-faq summary i::after{ transform:rotate(90deg); }
.ca-faq details[open] summary i::after{ transform:rotate(0); }
.ca-faq details p{ padding:0 0 22px; color:var(--ca-body); font-size:15px; }

/* 8. 상담 신청 ---------------------------------------------------------- */
.ca-consult{ padding:140px 0; background:var(--ca-navy); color:#fff; }
.ca-consult__in{ display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start; }
.ca-consult .ca-en{ color:var(--ca-sky); }
.ca-consult h2{ font-size:clamp(28px,3.4vw,44px); font-weight:500; line-height:1.4; }
.ca-consult__note{ margin-top:30px; }
.ca-consult__note li{ display:flex; gap:10px; padding:6px 0; color:#c6d3e6; }
.ca-consult__note .ca-ico{ margin-top:5px; color:var(--ca-sky); }
.ca-consult__contact{ margin-top:40px; border-top:1px solid rgba(255,255,255,.14); }
.ca-consult__contact>div{ display:grid; grid-template-columns:120px 1fr; gap:14px; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.ca-consult__contact dt{ display:flex; align-items:center; gap:8px; font-size:14px; color:#94a7c2; }
.ca-consult__contact dd a{ color:#fff; }
.ca-consult__contact dd a:hover{ color:var(--ca-sky); }
.ca-form{ display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; padding:42px 40px; border-radius:24px; background:#fff; color:var(--ca-ink); }
.ca-form__done{ grid-column:1 / -1; display:flex; align-items:center; gap:10px; padding:14px 16px; border-radius:12px; background:#e8f0ff; color:var(--ca-blue); font-weight:500; }
.ca-form__row{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.ca-form__row.is-wide{ grid-column:1 / -1; }
.ca-form__row label,.ca-form__lb{ font-size:14px; font-weight:500; }
.ca-form__row label b,.ca-form__lb b{ color:var(--ca-blue); }
.ca-form input[type=text],.ca-form input[type=tel],.ca-form input[type=email],.ca-form select,.ca-form textarea{
  width:100%; padding:13px 14px; border:1px solid var(--ca-line); border-radius:10px; background:var(--ca-soft); font:inherit; font-size:15px; color:var(--ca-ink); }
.ca-form textarea{ resize:vertical; line-height:1.7; }
.ca-form input:focus,.ca-form select:focus,.ca-form textarea:focus{ outline:none; border-color:var(--ca-blue2); background:#fff; box-shadow:0 0 0 3px rgba(59,130,246,.15); }
.ca-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.ca-chips label{ position:relative; font-size:14.5px; font-weight:400; }
.ca-chips input{ position:absolute; opacity:0; }
.ca-chips span{ display:block; padding:9px 16px; border:1px solid var(--ca-line); border-radius:99px; cursor:pointer; transition:.15s; }
.ca-chips input:checked+span{ border-color:var(--ca-blue); background:var(--ca-blue); color:#fff; }
.ca-chips input:focus-visible+span{ outline:2px solid var(--ca-blue2); outline-offset:2px; }
.ca-form__captcha #captcha{ margin-top:2px; }
.ca-form__agree{ grid-column:1 / -1; font-size:13.5px; color:var(--ca-body); }
.ca-form__agree label{ display:inline-flex; align-items:center; gap:8px; font-weight:500; color:var(--ca-ink); }
.ca-form__agree>a{ margin-left:10px; text-decoration:underline; }
.ca-form__agree p{ margin-top:6px; font-size:12.5px; color:var(--ca-mut); }
.ca-form__err{ grid-column:1 / -1; margin:0; padding:12px 14px; border-radius:10px; background:#fdecec; color:#b42318; font-size:14px; }
.ca-form__submit{ grid-column:1 / -1; display:flex; justify-content:center; align-items:center; gap:10px; height:60px; border:0; border-radius:12px;
  background:var(--ca-blue); color:#fff; font-size:17px; font-weight:500; cursor:pointer; transition:background .2s; }
.ca-form__submit:hover{ background:#154bb0; }
.ca-form__submit:disabled{ background:var(--ca-mut); cursor:default; }

/* 9. 마무리 ------------------------------------------------------------- */
.ca-end{ position:relative; overflow:hidden; padding:170px 0; color:#fff; text-align:center; }
.ca-end::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(7,22,43,.35),rgba(7,22,43,.75)); }
.ca-end__in{ position:relative; z-index:2; }
.ca-end__en{ font-family:var(--ca-en); font-size:clamp(22px,3.2vw,42px); font-weight:600; letter-spacing:-.01em; word-break:keep-all; overflow-wrap:normal; }
.ca-end__head{ margin-top:16px; font-size:clamp(17px,1.6vw,21px); color:rgba(255,255,255,.85); }

/* 푸터 ------------------------------------------------------------------ */
.ca-footer{ padding:70px 0 44px; background:#0a1c33; color:#94a3b8; font-size:14px; }
.ca-footer__top{ display:flex; justify-content:space-between; align-items:flex-start; gap:30px; padding-bottom:34px; border-bottom:1px solid rgba(255,255,255,.1); }
.ca-footer__brand .ca-logo__txt{ color:#fff; }
.ca-footer__brand p{ margin-top:12px; }
.ca-footer__nav{ display:flex; gap:26px; }
.ca-footer__nav b{ color:#e2e8f0; font-weight:500; }
.ca-footer__nav a:hover{ color:#fff; }
.ca-footer__mid{ display:grid; grid-template-columns:1.4fr 1fr; gap:30px; padding:30px 0; }
.ca-footer__co{ line-height:1.9; }
.ca-footer__co a{ color:var(--ca-sky); text-decoration:underline; }
.ca-footer__contact>div{ display:flex; gap:16px; padding:3px 0; }
.ca-footer__contact dt{ width:64px; }
.ca-footer__contact dd{ color:#e2e8f0; }
.ca-footer__bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); font-family:var(--ca-en); font-size:12px; letter-spacing:.04em; }

.ca-top{ position:fixed; right:26px; bottom:26px; z-index:65; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0; width:54px; height:54px;
  border:0; border-radius:12px; background:var(--ca-blue); color:#fff; font-family:var(--ca-en); font-size:10px; font-weight:700; cursor:pointer; opacity:0; visibility:hidden; transform:translateY(10px); transition:.3s; }
.ca-top.is-on{ opacity:1; visibility:visible; transform:none; }
.ca-dock{ display:none; }

/* 반응형 ---------------------------------------------------------------- */
@media (max-width:1100px){
  .ca-gnb>ul{ gap:26px; }
}
@media (max-width:1024px){
  :root{ --ca-fixedh:68px; }
  .ca-header__in{ height:68px; }
  .ca-gnb,.ca-headcta{ display:none; }
  .ca-burger{ margin-left:auto; }
  .ca-drawer__grid{ grid-template-columns:1fr 1fr; }
  .ca-about__in,.ca-sol__in,.ca-news__in,.ca-consult__in{ grid-template-columns:1fr; gap:48px; }
  .ca-about{ padding:110px 0 120px; }
  .ca-about__ph{ width:100%; margin-top:40px; }
  .ca-sol__sticky{ position:static; }
  .ca-exp__card{ min-height:380px; }
  .ca-ach__track{ grid-auto-columns:calc((100% - 22px) / 2); }
  .ca-footer__mid{ grid-template-columns:1fr; }
  .ca-top{ bottom:86px; right:16px; width:46px; height:46px; }
  .ca-dock{ display:flex; position:fixed; left:14px; right:14px; bottom:14px; z-index:70; justify-content:center; align-items:center; gap:8px; height:54px;
    border-radius:12px; background:var(--ca-blue); color:#fff; font-weight:500; box-shadow:0 10px 30px rgba(7,22,43,.3); transition:transform .25s; }
  .ca-dock.is-off{ transform:translateY(160%); }
  body{ padding-bottom:82px; }
}
@media (max-width:720px){
  :root{ --ca-gutter:18px; }
  .ca-hero{ min-height:560px; height:88vh; }
  .ca-hero__txt{ bottom:22%; }
  .ca-hero__head{ font-size:28px; }
  .ca-hero__en{ font-size:14px; }
  .ca-hero__ctrl{ top:auto; bottom:110px; }
  .ca-sol{ padding:100px 0 80px; }
  .ca-sol__col:last-child{ margin-top:50px; }
  .ca-sol__cols{ gap:12px; }
  .ca-sol__col{ gap:12px; }
  .ca-tile__txt{ padding:16px 14px; }
  .ca-tile__txt strong{ font-size:17px; }
  .ca-tile__txt span{ display:none; }
  .ca-exp{ padding-top:100px; }
  .ca-exp__grid{ grid-template-columns:1fr; }
  .ca-exp__txt{ padding:30px 22px; }
  .ca-exp__refs{ max-height:none; opacity:1; margin-top:16px; }
  .ca-perf{ padding:100px 0; }
  .ca-perf__grid{ grid-template-columns:1fr; gap:40px; margin-top:40px; }
  .ca-perf__item.is-b{ margin-top:0; }
  .ca-perf__mini{ grid-template-columns:1fr 1fr 1fr; margin-top:50px; }
  .ca-perf__mini>div+div{ padding-left:14px; }
  .ca-perf__mini dd{ font-size:24px; }
  .ca-ach{ padding:100px 0; }
  .ca-ach__track{ grid-auto-columns:84%; }
  .ca-news,.ca-consult{ padding:100px 0; }
  .ca-news__list a{ grid-template-columns:1fr auto; }
  .ca-news__list time{ grid-column:1 / -1; }
  .ca-form{ grid-template-columns:1fr; padding:28px 20px; }
  .ca-consult__contact>div{ grid-template-columns:1fr; gap:2px; }
  .ca-end{ padding:120px 0; }
  .ca-drawer__grid{ grid-template-columns:1fr; gap:28px; margin-top:30px; }
  .ca-footer__top{ flex-direction:column; }
}
@media (prefers-reduced-motion:reduce){
  .ca-rv{ opacity:1; transform:none; transition:none; }
  [data-par-bg],[data-speed]{ transform:none !important; }
  .ca-hero__bg img,.ca-hero__slide{ transition:none; transform:none; }
  .ca-hero__scroll i{ animation:none; }
}
