/* Gather 레이아웃 구조 카피(헤더·분할 히어로·컬러 블록+태그·프레임 사진·중앙 CTA·카드 매스너리·회색 푸터), 색/이미지/문구는 자체 */
:root{--ink:#1c2430;--mute:#4a5565;--navy:#1b2a41;--steel:#5a7a94;--steel-c:#44627a;--sand:#e8dccb;--sand-c:#76593f;--brick:#b9573e;--brick-c:#8f3d29;--slate:#d6dde8;--slate-c:#5b6a80;--mist:#dde6ef;--line:#d9dee6;--w:1320px;--pad:clamp(20px,5vw,96px)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Pretendard',-apple-system,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;color:var(--ink);background:#fff;line-height:1.75;font-size:17px;word-break:keep-all;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
.wrap{max-width:var(--w);margin-inline:auto;padding-inline:var(--pad)}
h1,h2,h3{line-height:1.3;letter-spacing:-.02em;font-weight:700}
/* 버튼: 2px 외곽선 라운드 */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border:2px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);font-weight:700;font-size:15px;letter-spacing:.02em;transition:transform .25s,box-shadow .25s,background .25s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}
.btn-sm{min-height:44px;padding:0 22px;font-size:14px}
.btn-o{background:transparent;border-color:#fff;color:#fff;margin-top:36px}
.btn-o:hover{box-shadow:4px 4px 0 rgba(255,255,255,.55);background:rgba(255,255,255,.08)}
/* GNB: 좌우 끝까지 */
.gnb{position:sticky;top:0;z-index:50;background:linear-gradient(90deg,#f1f5fb,#fff);border-bottom:1px solid #eef1f6}
.gnb-in{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px clamp(16px,2.4vw,40px)}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:24px;letter-spacing:-.03em}
.logo-mk{width:26px;height:26px;border-radius:6px;background:conic-gradient(var(--brick) 0 25%,var(--steel) 0 50%,var(--sand-c) 0 75%,var(--navy) 0);border:2px solid var(--ink)}
/* 히어로: 사진만 전폭, 글은 아래 intro */
.hero{position:relative;height:min(620px,64vh);background:var(--mist);overflow:hidden}
.hero-bg{position:absolute;inset:0;margin:0}
.hero-bg img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.intro{padding:clamp(56px,7vw,104px) 0 clamp(48px,6vw,88px)}
.intro .wrap{max-width:1040px}
.intro h1{font-size:clamp(38px,5vw,64px);font-weight:800;margin-bottom:24px}
.sum{font-size:18px;color:var(--mute);margin-bottom:36px}
.hero-b{display:flex;flex-wrap:wrap;gap:14px}
/* 사진 프레임: 검은 외곽선 + 하드 섀도 */
.frame{border:2px solid var(--ink);border-radius:8px;overflow:hidden;background:#fff;box-shadow:10px 10px 0 rgba(27,42,65,.22);width:100%;max-width:640px}
.frame img{width:100%;aspect-ratio:4/3;object-fit:cover}
/* 컬러 블록 + 태그 */
.blk{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:560px}
.blk-steel .blk-card{background:var(--steel-c)}.blk-sand .blk-card{background:var(--sand-c)}.blk-brick .blk-card{background:var(--brick-c)}.blk-slate .blk-card{background:var(--slate-c)}
.blk-card{color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(56px,7vw,112px) clamp(24px,7vw,140px)}
.blk-card h2{font-size:clamp(24px,2.6vw,34px);font-weight:600;margin-bottom:32px}
.blk-card ul{width:100%;max-width:520px}
.blk-card li{padding:12px 0;border-bottom:2px solid rgba(255,255,255,.7);font-size:18px}
.blk-card li:last-child{border-bottom:0}
.blk-img,.sec-img{position:relative;margin:0;min-height:360px;background:var(--mist)}
.blk-img img,.sec-img img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.blk.rev .blk-card{order:2}
.tag{position:absolute;top:-28px;left:clamp(16px,8vw,123px);background:var(--navy);color:#fff;font-weight:700;font-size:20px;letter-spacing:.12em;padding:14px 36px;border-radius:6px;box-shadow:5px 5px 0 rgba(27,42,65,.25);z-index:2}
.rev .tag{left:auto;right:clamp(16px,4vw,54px)}
/* 본문 */
.body{padding-top:clamp(40px,6vw,72px)}
.sec.wrap{padding-block:clamp(36px,5vw,72px)}
.sec.row{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;padding:0}
.sec.row.alt{background:#f4f6fa}
.sec.row .sec-t{align-self:center;padding:clamp(48px,6vw,96px) clamp(24px,6vw,120px)}
.sec.rev .sec-t{order:2}
.sec h2{font-size:clamp(26px,3vw,38px);margin-bottom:22px;color:var(--ink)}
.sec h3{font-size:clamp(19px,1.8vw,22px);margin:28px 0 8px}
.sec p{color:var(--mute);margin-bottom:14px}
.list{margin:12px 0}
.list li{position:relative;padding:8px 0 8px 28px;color:var(--mute)}
.list li::before{content:"";position:absolute;left:4px;top:19px;width:10px;height:10px;border-radius:50%;background:var(--brick);border:2px solid var(--ink)}
.steps{counter-reset:s;margin:14px 0}
.steps li{counter-increment:s;position:relative;padding:14px 0 14px 60px;color:var(--mute);border-bottom:1px solid var(--line)}
.steps li::before{content:counter(s);position:absolute;left:0;top:12px;width:40px;height:40px;border-radius:8px;background:var(--navy);color:#fff;font-weight:700;display:grid;place-items:center}
.tw{overflow-x:auto;margin:18px 0;border:2px solid var(--ink);border-radius:10px}
table{width:100%;border-collapse:collapse;min-width:520px;font-size:16px}
caption{caption-side:top;text-align:left;padding:14px 18px;font-weight:700;background:var(--mist);border-bottom:2px solid var(--ink)}
th,td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:#f4f6fa;font-size:14px;letter-spacing:.05em}
tbody th{width:26%;color:var(--ink)}
td{color:var(--mute)}
tr:last-child>*{border-bottom:0}
.mod{margin-top:32px;font-size:14px;color:var(--mute);text-align:right}
/* 시공 기록 매스너리 */
.cases{padding-block:clamp(56px,7vw,96px)}
.cases h2,.faq h2,.rel h2{font-size:clamp(26px,3vw,38px);margin-bottom:36px;text-align:center}
.masonry{columns:3 280px;column-gap:24px}
.case{break-inside:avoid;margin:0 0 24px;background:#fff;border-radius:10px;box-shadow:0 6px 24px rgba(27,42,65,.12);overflow:hidden;transition:transform .3s}
.case:hover{transform:translateY(-4px)}
.case img{width:100%;aspect-ratio:1/1;object-fit:cover}
.case:nth-child(3n+2) img{aspect-ratio:4/5}
.case figcaption{padding:16px 20px 20px;font-size:16px;color:var(--mute)}
/* FAQ */
.faq{padding-block:clamp(56px,7vw,96px);max-width:1040px}
.qa{padding:26px 0;border-bottom:1px solid var(--line)}
.qa h3{font-size:clamp(18px,2vw,21px);display:flex;gap:14px;margin-bottom:10px}
.qa p{display:flex;gap:14px;color:var(--mute)}
.qa span{flex:none;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;font-size:15px;font-weight:700;background:var(--navy);color:#fff}
.qa p span{background:var(--brick)}
/* 중앙 CTA */
.try{text-align:center;padding:clamp(72px,9vw,128px) var(--pad);background:linear-gradient(#fff,var(--mist))}
.try h2{font-size:clamp(28px,3.4vw,44px);margin-bottom:14px}
.try p{color:var(--mute);margin-bottom:32px}
.try-b{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
/* 연관 링크 */
.rel{padding-block:clamp(56px,7vw,96px)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:24px}
.card{display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:12px;overflow:hidden;background:#fff;transition:transform .3s,box-shadow .3s}
.card:hover{transform:translate(-3px,-3px);box-shadow:8px 8px 0 rgba(27,42,65,.22)}
.card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.card-t{padding:16px 20px 4px;font-weight:700;font-size:19px}
.card-d{padding:0 20px 20px;color:var(--mute);font-size:15px;line-height:1.6}
.banners{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:32px}
.banner{position:relative;display:block;border-radius:12px;overflow:hidden;min-height:220px}
.banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.banner:hover img{transform:scale(1.05)}
.banner span{position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:100%;min-height:220px;padding:24px;color:#fff;background:linear-gradient(transparent 30%,rgba(16,24,36,.82));font-size:15px}
.banner b{font-size:22px}
/* 푸터: 회색 바 */
.ft{background:#eef0f5;color:#5d6676;text-align:center;padding:36px 20px;font-size:14px;line-height:2}
.ft i{font-style:normal;margin:0 12px;color:#aab1be}
.ft strong{color:#3b4454}
/* 고정 요소 */
.fbar{display:none}
.float-home{position:fixed;right:18px;bottom:24px;z-index:40;background:var(--navy);color:#fff;font-weight:700;font-size:15px;padding:13px 22px;border-radius:999px;box-shadow:0 6px 20px rgba(27,42,65,.35);transition:transform .25s}
.float-home:hover{transform:translateY(-3px)}
/* 상담 박스 */
.cbox{max-width:760px;margin:0 auto;padding:clamp(28px,4vw,48px);border:2px solid var(--ink);border-radius:12px;box-shadow:10px 10px 0 rgba(27,42,65,.18);text-align:center}
.cbox h2{font-size:clamp(24px,2.6vw,32px);margin-bottom:12px}
.cbox p{color:var(--mute);margin-bottom:22px}
.cbox .btn+.btn{margin-left:10px}
/* 스크롤 리빌 */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
/* 태블릿 세로 이하: 반반 섹션은 사진 위, 글 아래로 */
@media (max-width:900px){
  .blk,.sec.row{grid-template-columns:1fr;min-height:0}
  .blk.rev .blk-card,.sec.rev .sec-t{order:0}
  .blk-img,.sec-img{order:-1;min-height:0;aspect-ratio:16/10}
  .blk-card{padding:56px clamp(20px,6vw,56px) 64px}
  .sec.row .sec-t{padding:48px clamp(20px,6vw,56px) 56px}
  .blk-card ul{max-width:none}
  .tag,.rev .tag{left:clamp(16px,6vw,56px);right:auto}
}
/* 모바일 */
@media (max-width:768px){
  body{font-size:16px;padding-bottom:68px}
  .hero{height:auto;aspect-ratio:4/3}
  .intro{padding:40px 0 48px}
  .hero-b{flex-direction:column}
  .hero-b .btn{width:100%}
  .blk-card{padding:48px 20px 56px}
  .sec.row .sec-t{padding:40px 20px 48px}
  .tag{left:16px;font-size:17px;padding:11px 26px}
  .rev .tag{right:auto;left:16px}
  .frame{box-shadow:6px 6px 0 rgba(27,42,65,.22)}
  .qa p,.qa h3{gap:10px}
  .masonry{columns:2 150px;column-gap:14px}
  .case{margin-bottom:14px}
  .case figcaption{padding:12px;font-size:14px}
  .fbar{display:grid;grid-template-columns:1fr 2fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:2px solid var(--ink)}
  .fbar a{display:flex;align-items:center;justify-content:center;min-height:56px;font-weight:700;font-size:16px}
  .fbar-go{background:var(--brick);color:#fff}
  .float-home{bottom:76px;right:12px;padding:11px 18px;font-size:14px}
  .try-b .btn,.cbox .btn{width:100%}
  .cbox .btn+.btn{margin:10px 0 0}
  .ft i{display:none}.ft-line{display:block}
}
