@font-face{font-family:Pretendard;src:url(/fonts/PretendardVariable.woff2) format("woff2");font-weight:45 920;font-display:swap}
/* 레이아웃 레퍼런스: Life Time (크림 배경, 전면 히어로, 글래스 pill, 비대칭 타일). 폰트는 Pretendard. */
:root{--ink:#313131;--cream:#f2ede6;--paper:#fbf7f2;--sand:#ece8e1;--dark:#262626;--line:rgba(49,49,49,.18);--r:14px;--gut:clamp(16px,2vw,32px);--gnb:64px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:Pretendard,-apple-system,"Noto Sans KR",sans-serif;color:var(--ink);background:var(--cream);line-height:1.8;font-size:17px;word-break:keep-all}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
.wrap{width:100%;max-width:1600px;margin:0 auto;padding:0 var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.arr{display:inline-block;width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M1 8h13M9 3l5 5-5 5' fill='none' stroke='black' stroke-width='1.4'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M1 8h13M9 3l5 5-5 5' fill='none' stroke='black' stroke-width='1.4'/></svg>") center/contain no-repeat}

/* GNB: 좌우 끝까지, 히어로 위에 투명 오버레이 */
.gnb{position:fixed;top:0;left:0;right:0;height:var(--gnb);z-index:60;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gut);color:var(--paper);transition:background .3s,color .3s}
.gnb::after{content:"";position:absolute;left:var(--gut);right:var(--gut);bottom:0;height:1px;background:rgba(251,247,242,.35);transition:background .3s}
.gnb.solid{background:var(--cream);color:var(--ink)}
.gnb.solid::after{background:var(--line)}
.logo{font-weight:800;font-size:22px;letter-spacing:-.02em}
.gnb-cta{display:flex;align-items:center;gap:8px;font-size:14px;letter-spacing:.08em;padding:10px 0}

/* 글래스 pill CTA */
.glass-cta{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:56px;padding:0 30px;border-radius:var(--r);background:rgba(38,38,38,.62);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--paper);font-size:15px;letter-spacing:.08em;font-weight:500;transition:background .3s,transform .3s}
.glass-cta:hover{background:rgba(38,38,38,.9);transform:translateY(-2px)}
.glass-cta.solid{background:var(--dark)}

/* 히어로: 전면 사진 */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;justify-content:center;text-align:center;color:var(--paper);overflow:hidden;background:var(--dark)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(rgba(0,0,0,.35),rgba(0,0,0,.05) 35%,rgba(0,0,0,.72))}
.cb{display:none}
.hero-in{position:relative;z-index:2;max-width:980px;padding:140px var(--gut) 150px}
h1{font-size:clamp(40px,5.4vw,76px);line-height:1.15;letter-spacing:-.04em;font-weight:400}
.lead{text-wrap:balance;margin-top:28px;font-size:clamp(16px,1.5vw,19px);line-height:1.85;color:rgba(251,247,242,.92)}
.hero>.glass-cta{position:absolute;z-index:2;left:50%;bottom:48px;transform:translateX(-50%)}
.hero>.glass-cta:hover{transform:translateX(-50%) translateY(-2px)}

/* 사진 타일 + pill 라벨 */
.tile{position:relative;display:block;border-radius:var(--r);overflow:hidden;background:var(--dark);margin:0}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
a.tile:hover img,figure.tile:hover img{transform:scale(1.04)}
.pill{position:absolute;left:14px;bottom:14px;max-width:calc(100% - 28px);display:inline-flex;align-items:center;gap:10px;min-height:34px;padding:0 14px;border-radius:999px;background:rgba(38,38,38,.68);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--paper);font-size:13px;letter-spacing:.04em;font-weight:500;line-height:1.3}
.pill .arr{width:12px;height:12px}
.gallery{display:grid;grid-template-columns:1.7fr 1fr;gap:16px;padding-top:16px;padding-bottom:16px;align-items:start}
.gallery .tile:first-child{aspect-ratio:4/3.4}
.gallery .tile:last-child{aspect-ratio:3/4}
.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-top:16px;padding-bottom:16px;align-items:flex-start;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail>*{flex:0 0 clamp(250px,26vw,400px);scroll-snap-align:start}
.rail .tile{aspect-ratio:3/4}
.rail>:nth-child(even) .tile,.rail>.tile:nth-child(even){aspect-ratio:4/5}
.rail>:nth-child(3n) .tile,.rail>.tile:nth-child(3n){aspect-ratio:1/1}
.cases{display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:16px;padding-top:16px;padding-bottom:16px;align-items:start}
.cases .tile{aspect-ratio:4/5}
.case p{margin-top:14px;font-size:15px;line-height:1.7;color:#4a4a4a}
.case h3{margin-bottom:8px}

/* 본문 사진 띠 */
.band{display:grid;gap:16px;align-items:start}
.band-2{grid-template-columns:1.5fr 1fr}.band-2 .tile:first-child{aspect-ratio:4/3}.band-2 .tile:last-child{aspect-ratio:3/4}
.band-3{grid-template-columns:1fr 1fr 1fr}.band-3 .tile{aspect-ratio:3/4}.band-3 .tile:nth-child(2){aspect-ratio:4/5}
.band-1{grid-template-columns:1fr}.band-1 .tile{aspect-ratio:16/9}

/* 섹션: 좌 제목 / 우 내용 */
.sec{padding:clamp(56px,8vw,120px) 0}
.split{display:grid;grid-template-columns:5fr 7fr;gap:clamp(24px,5vw,96px);align-items:start}
.split>h2,.split>div>h2{position:sticky;top:calc(var(--gnb) + 24px)}
h2{font-size:clamp(24px,2.6vw,38px);line-height:1.35;letter-spacing:-.035em;font-weight:500}
h2.solo{margin-bottom:8px}
h3{font-size:clamp(17px,1.5vw,20px);line-height:1.5;font-weight:600}
.note{margin-top:16px;color:#4a4a4a;font-size:16px}
.note a{text-decoration:underline}
.bullets{display:grid;gap:12px}
.bullets li{position:relative;padding:18px 22px 18px 46px;background:var(--paper);border-radius:var(--r);border:1px solid var(--line)}
.bullets li::before{content:"";position:absolute;left:20px;top:29px;width:7px;height:7px;border-radius:50%;background:var(--ink)}
.steps{counter-reset:s;display:grid;gap:12px}
.steps li{counter-increment:s;display:flex;gap:18px;align-items:flex-start;background:var(--paper);border-radius:var(--r);border:1px solid var(--line);padding:20px 22px}
.steps li::before{content:counter(s,decimal-leading-zero);flex:none;font-size:14px;letter-spacing:.08em;font-weight:600;padding-top:3px;min-width:26px}
.table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);background:var(--paper)}
table{width:100%;border-collapse:collapse;min-width:520px;font-size:16px}
th,td{padding:18px 22px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:var(--dark);color:var(--paper);font-weight:500;letter-spacing:.06em;font-size:14px}
tbody th{font-weight:600;white-space:nowrap}
tbody tr:last-child>*{border-bottom:0}
.faqs{display:grid;gap:12px}
.faq{background:var(--paper);border-radius:var(--r);border:1px solid var(--line);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:10px;height:10px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:rotate(45deg);transition:transform .3s}
.faq[open] summary::after{transform:rotate(-135deg)}
.faq h3{font-weight:600}
.faq p{padding:0 24px 24px;color:#3d3d3d;animation:faqin .35s ease}
@keyframes faqin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.modified{color:#6a6a6a;font-size:14px;padding-bottom:40px}

/* 연관 서비스 타일 */
.navgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;padding-top:16px;padding-bottom:16px}
.nav-tile{aspect-ratio:3/4}
.nav-tile:nth-child(even){aspect-ratio:3/3.6;align-self:start}
.banner{aspect-ratio:21/8;min-height:240px}
.banner::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.1))}
.banner-text{position:absolute;z-index:2;left:0;bottom:0;display:flex;flex-direction:column;gap:4px;padding:32px;color:var(--paper)}
.banner-text small{font-size:13px;letter-spacing:.08em;opacity:.85}.banner-text strong{font-size:clamp(22px,3vw,36px);font-weight:400;line-height:1.3}
.related .wrap+.wrap{padding-top:0}

/* 마감: 둥근 사진 + 중앙 CTA */
.closing{padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(40px,6vw,80px)}
.closing-box{position:relative;border-radius:24px;overflow:hidden;min-height:clamp(420px,56vw,640px);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--paper);background:var(--dark)}
.closing-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.closing-box::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(0,0,0,.45)}
.closing-in{position:relative;z-index:2;padding:48px var(--gut);max-width:720px}
.closing-in h2{margin-bottom:14px;font-weight:400}.closing-in p{margin-bottom:32px;font-size:17px}

/* 푸터 */
.footer{background:var(--sand);padding:56px 0 120px;font-size:14px;margin-top:clamp(24px,4vw,64px)}
.f-name{font-weight:800;font-size:24px;margin-bottom:24px}
.f-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px 32px;margin-bottom:32px;border-top:1px solid var(--line);padding-top:24px}
.f-info li{display:flex;flex-direction:column;gap:2px}
.f-info span{font-size:12px;letter-spacing:.08em;color:#6a6a6a}
.f-info a:hover{text-decoration:underline}
.copy{font-size:12px;color:#6a6a6a}

/* 플로팅 / 모바일 바 */
.float-main{position:fixed;right:24px;bottom:24px;z-index:40;background:rgba(38,38,38,.78);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--paper);font-size:14px;letter-spacing:.06em;padding:14px 22px;border-radius:999px;transition:transform .25s,background .25s}
.float-main{opacity:0;pointer-events:none}.scrolled .float-main{opacity:1;pointer-events:auto}
.float-main:hover{background:var(--dark);transform:translateY(-3px)}
.mbar{display:none}

/* 스크롤 등장 */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* 태블릿 */
@media (max-width:1024px){.split{grid-template-columns:1fr;gap:28px}.split>h2,.split>div>h2{position:static}.gallery{grid-template-columns:1.3fr 1fr}}

/* 모바일 */
@media (max-width:768px){
  :root{--gnb:56px}
  body{font-size:16px;padding-bottom:84px}
  .hero-in{padding:120px var(--gut) 170px}
  .cb{display:inline}
  .has-mbar .hero>.glass-cta{display:none}
  .hero::before{background:linear-gradient(rgba(0,0,0,.35),rgba(0,0,0,.1) 25%,rgba(0,0,0,.82))}
  .hero-in{padding-bottom:110px!important}
  .lead{font-size:15px;line-height:1.75}
  .hero>.glass-cta{bottom:28px;width:calc(100% - 2 * var(--gut));left:var(--gut);transform:none}
  .hero>.glass-cta:hover{transform:none}
  .gallery{grid-template-columns:1fr 1fr;gap:10px}
  .gallery .tile:first-child,.gallery .tile:last-child{aspect-ratio:3/4}
  .gallery .pill{left:8px;bottom:8px;max-width:calc(100% - 16px);padding:6px 10px;min-height:0;font-size:11px;line-height:1.35;border-radius:14px}
  .rail>*{flex-basis:72vw}
  .cases{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.cases::-webkit-scrollbar{display:none}.cases>*{flex:0 0 72vw;scroll-snap-align:start}
  .band-2,.band-3{grid-template-columns:1fr 1fr}.band-2 .tile:first-child,.band-2 .tile:last-child,.band-3 .tile,.band-3 .tile:nth-child(2){aspect-ratio:3/4}.band-3 .tile:nth-child(3){grid-column:1/-1;aspect-ratio:4/3}
  .navgrid{grid-template-columns:1fr 1fr;gap:12px}
  .nav-tile,.nav-tile:nth-child(even){aspect-ratio:3/4;align-self:auto}
  .pill{left:10px;bottom:10px;font-size:12px;padding:0 12px}
  .bullets li{padding:16px 18px 16px 40px}.bullets li::before{left:17px;top:26px}
  .steps li{padding:16px 18px}
  th,td{padding:14px 16px}
  .faq summary{padding:18px}.faq p{padding:0 18px 20px}
  .banner{aspect-ratio:auto;height:300px;min-height:0}.banner-text{padding:22px}
  .closing-box{border-radius:18px}
  .float-main{right:16px;bottom:92px;padding:12px 18px}
  .mbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:45;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));background:rgba(242,237,230,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
  .mbar .glass-cta{width:100%}
}
