/* 순인테리어 - 벽지도배 | design_id=0 · font_id=0 · hero_id=0 · accent=#5A5340 */

:root{
  --accent:#5A5340;
  --accent-soft:#F0EFEA;
  --accent-text:#FFFFFF;
  --ink:#000000;
  --desc:#5B6169;
  --line:#E5E5E5;
  --bar-chrome:#EBECEE;
  --footer-bg:#252525;
  --font-body:"Noto Serif KR", serif;
  --font-btn:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:#fff; color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  word-break:keep-all;
  line-height:1.7;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
button{font-family:var(--font-btn); cursor:pointer;}

/* ---------- Header (B-22: 흰 배경 고정 + 스크롤시 그림자) ---------- */
header.site-header{
  position:sticky; top:0; z-index:500;
  background:#FFFFFF; color:#000;
  border-bottom:1px solid transparent;
  transition:box-shadow .3s ease, background .3s ease;
}
header.site-header.is-scrolled{
  background:var(--bar-chrome);
  box-shadow:0 1px 16px rgba(0,0,0,0.06);
  border-bottom:1px solid #E5E7EB;
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:76px; max-width:1180px; margin:0 auto; padding:0 24px;
}
.logo{display:flex; align-items:center; gap:8px; text-decoration:none; color:var(--ink);}
.logo-icon{width:32px; height:32px; flex-shrink:0; color:var(--accent);}
.logo-icon svg{width:100%; height:100%;}
.logo-text{display:flex; flex-direction:column; line-height:1.15;}
.logo-brand{font-size:.95rem; font-weight:700; color:var(--ink); font-family:var(--font-btn);}
.logo-keyword{font-size:.7rem; font-weight:400; color:var(--accent); letter-spacing:.04em; font-family:var(--font-btn);}

nav.main-nav{display:flex; align-items:center; gap:30px;}
nav.main-nav a.nav-link{font-size:15.5px; font-weight:600; color:#111; font-family:var(--font-btn);}
nav.main-nav a.nav-link:hover{color:var(--accent);}
.btn-tel, .btn-consult{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-btn); font-weight:600; font-size:14.5px;
  background:var(--accent); color:var(--accent-text);
  padding:11px 22px; border:none; white-space:nowrap;
}
.header-inner .btn-consult{border-radius:2px;}
.hamburger{display:none; width:26px; height:20px; position:relative; background:none; border:none;}
.hamburger span{position:absolute; left:0; width:100%; height:2px; background:#111;}
.hamburger span:nth-child(1){top:0;} .hamburger span:nth-child(2){top:9px;} .hamburger span:nth-child(3){top:18px;}

.mobile-nav{display:none; position:fixed; inset:76px 0 0 0; background:#fff; z-index:499; padding:24px; flex-direction:column; gap:22px;}
.mobile-nav.open{display:flex;}
.mobile-nav a{font-size:18px; font-weight:600; font-family:var(--font-btn);}

@media(max-width:900px){
  nav.main-nav{display:none;}
  .hamburger{display:block;}
}

/* ---------- Hero (hero_id=0 오버레이카드) ---------- */
.hero{background:#F9F7F3; padding:64px 0 76px;}
.hero-grid{display:grid; grid-template-columns:1fr; gap:0; position:relative;}
.hero-card{
  position:relative; border-radius:20px; overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,0.12);
}
.hero-card img{width:100%; height:560px; object-fit:cover;}
.hero-card .hero-copy{
  position:absolute; top:40px; right:40px; max-width:420px;
  background:rgba(255,255,255,0.94); padding:32px 30px; border-radius:16px;
}
.hero-eyebrow{display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--accent); font-family:var(--font-btn); letter-spacing:.04em; margin-bottom:14px;}
.hero-eyebrow svg{flex-shrink:0;}
.hero-copy h1{font-size:clamp(26px,3vw,34px); font-weight:700; margin:0 0 14px; line-height:1.35;}
.hero-copy p{font-size:15px; color:var(--desc); margin:0 0 22px; line-height:1.7;}
.hero-btns{display:flex; gap:10px; flex-wrap:wrap;}
.btn-primary{background:var(--accent); color:var(--accent-text); padding:14px 26px; font-family:var(--font-btn); font-weight:600; font-size:15px; border:none; border-radius:2px;}
.btn-ghost{background:transparent; color:var(--ink); padding:14px 26px; font-family:var(--font-btn); font-weight:600; font-size:15px; border:1px solid var(--ink); border-radius:2px;}

@media(max-width:767px){
  .hero{padding:32px 0 44px;}
  .hero-card img{height:420px;}
  .hero-card .hero-copy{position:static; margin-top:-60px; margin-left:16px; margin-right:16px; box-shadow:0 10px 30px rgba(0,0,0,0.1);}
}

/* ---------- Section common ---------- */
.section{padding:80px 0;}
.section-head{margin-bottom:40px;}
.eyebrow{display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--accent); font-family:var(--font-btn); letter-spacing:.06em; margin-bottom:14px;}
.eyebrow svg{flex-shrink:0;}
.section-title{font-size:clamp(24px,3vw,32px); font-weight:700; margin:0; line-height:1.4; white-space:nowrap; overflow:visible;}
.section-desc{font-size:15px; color:var(--desc); margin-top:12px; max-width:640px; line-height:1.75;}

@media(max-width:640px){
  .section-title{white-space:normal;}
}

/* ---------- catalog-label (section_variant=3): 서비스 카테고리 ---------- */
.catalog-label-head{border-top:1px solid #DADAD6; padding-top:18px; display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:12px;}
.catalog-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:36px;}
.catalog-item{display:block;}
.catalog-item .im{border-radius:12px; overflow:hidden; aspect-ratio:4/3;}
.catalog-item .im img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.catalog-item:hover .im img{transform:scale(1.04);}
.catalog-item h3{font-size:16px; font-weight:700; margin:16px 0 6px;}
.catalog-item p{font-size:13px; color:var(--desc); margin:0; line-height:1.6;}
@media(max-width:900px){.catalog-grid{grid-template-columns:repeat(2,1fr);}}

/* ---------- 홈 #cases (design_id=0: 4장 2x2 590x396 호버) ---------- */
.cases-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.case-card{position:relative; border-radius:14px; overflow:hidden; height:396px;}
.case-card img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.case-card .badge-date{position:absolute; top:14px; left:14px; background:rgba(255,255,255,.92); font-size:11.5px; font-weight:700; font-family:var(--font-btn); padding:5px 10px; border-radius:4px; color:var(--accent);}
.case-card .overlay{
  position:absolute; inset:0; background:#fff; opacity:0; transition:opacity .35s ease;
  display:flex; flex-direction:column; justify-content:center; padding:34px;
}
.case-card:hover .overlay{opacity:.97;}
.case-card:hover img{transform:scale(1.05);}
.case-card .overlay .region{font-size:12.5px; font-weight:700; color:var(--accent); font-family:var(--font-btn); margin-bottom:10px;}
.case-card .overlay h3{font-size:19px; font-weight:700; margin:0 0 10px; line-height:1.4;}
.case-card .overlay p{font-size:13.5px; color:var(--desc); margin:0; line-height:1.7;}
@media(max-width:767px){.cases-grid{grid-template-columns:1fr;} .case-card{height:280px;}}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; text-align:left; background:none; border:none; padding:22px 4px; display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:16px; font-weight:600; font-family:var(--font-body);}
.faq-q .plus{flex-shrink:0; width:20px; height:20px; position:relative;}
.faq-q .plus::before,.faq-q .plus::after{content:""; position:absolute; background:var(--ink); transition:transform .25s ease;}
.faq-q .plus::before{left:0; top:9px; width:20px; height:2px;}
.faq-q .plus::after{left:9px; top:0; width:2px; height:20px;}
.faq-item.open .plus::after{transform:rotate(90deg); opacity:0;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-a p{padding:0 4px 22px; margin:0; font-size:14.5px; color:var(--desc); line-height:1.75;}
.faq-item.open .faq-a{max-height:400px;}

/* ---------- Closing (B-25) ---------- */
.closing{position:relative; height:650px; overflow:hidden;}
.closing img{width:100%; height:100%; object-fit:cover;}
.closing .overlay{position:absolute; inset:0; background:rgba(19,19,19,0.55); display:flex; align-items:center; justify-content:center;}
.closing .copy{text-align:center; color:#fff; padding:0 24px; max-width:640px;}
.closing .copy h2{font-size:clamp(22px,2.6vw,32px); font-weight:700; margin:0 0 16px; white-space:nowrap; line-height:1.4;}
.closing .copy .quote{font-size:14.5px; font-weight:400; opacity:.92; margin:0 0 30px; line-height:1.7;}
.closing .btn-outline{display:inline-block; border:1px solid #fff; color:#fff; padding:14px 34px; font-family:var(--font-btn); font-weight:600; font-size:15px; border-radius:0;}
@media(max-width:640px){.closing .copy h2{white-space:normal; font-size:22px;}}

/* ---------- Footer ---------- */
footer.site-footer{background:var(--footer-bg); color:#fff; padding:56px 0 90px;}
footer.site-footer a{color:#fff;}
.footer-top{display:flex; justify-content:space-between; flex-wrap:wrap; gap:40px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.14);}
.footer-cols{display:flex; gap:60px; flex-wrap:wrap;}
.footer-col h4{font-size:13px; font-weight:700; margin:0 0 14px; opacity:.6; letter-spacing:.05em;}
.footer-col a{display:block; font-size:14px; margin-bottom:10px; opacity:.85; font-family:var(--font-btn);}
.footer-biz{font-size:13px; opacity:.7; line-height:2; margin-top:30px; font-family:var(--font-btn);}
.footer-biz b{opacity:1; font-weight:600;}
.footer-actions{display:flex; gap:10px; margin-top:20px;}
.footer-actions a{background:var(--accent); padding:11px 20px; border-radius:2px; font-family:var(--font-btn); font-weight:600; font-size:13.5px; opacity:1 !important;}
@media(max-width:640px){.footer-top{flex-direction:column;} footer.site-footer{padding-bottom:110px;}}

/* ---------- Desktop bottom bar (B-23) ---------- */
.desktop-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:400;
  background:var(--bar-chrome); border-top:1px solid #E5E7EB;
  box-shadow:0 -6px 22px rgba(0,0,0,0.08);
  padding:14px 0; transform:translateY(100%); opacity:0; transition:transform .3s ease, opacity .3s ease;
}
.desktop-bar.show{transform:translateY(0); opacity:1;}
.desktop-bar .wrap{display:flex; justify-content:flex-end;}
.desktop-bar a{background:var(--accent); color:#fff; padding:13px 30px; font-family:var(--font-btn); font-weight:600; font-size:14.5px; border-radius:2px;}
@media(max-width:767px){.desktop-bar{display:none;}}

/* ---------- Mobile bottom bar (PC 유지, 모바일 항상) ---------- */
.mobile-bar{display:none;}
@media(max-width:767px){
  .mobile-bar{
    display:grid; grid-template-columns:1fr 1fr; position:fixed; left:0; right:0; bottom:0; z-index:600;
    background:#fff; border-top:1px solid var(--line); box-shadow:0 -4px 18px rgba(0,0,0,.08);
  }
  .mobile-bar a{padding:16px 0; text-align:center; font-family:var(--font-btn); font-weight:700; font-size:14.5px;}
  .mobile-bar a.mb-consult{background:var(--accent); color:#fff;}
  .mobile-bar a.mb-call{background:#fff; color:var(--ink);}
}

/* ---------- Page hero (서브페이지 상단 배경) ---------- */
.page-hero{position:relative; height:280px; display:flex; align-items:center;}
.page-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.6);}
.page-hero .wrap{position:relative; z-index:2; color:#fff;}
.page-hero .crumb{font-size:12.5px; font-family:var(--font-btn); opacity:.85; margin-bottom:10px;}
.page-hero h1{font-size:clamp(24px,3vw,34px); font-weight:700; margin:0;}
@media(max-width:640px){.page-hero{height:200px;}}

/* ---------- 시공사례 상세 (case_detail_variant=0 · 34aptr 신갈형) ---------- */
.case-meta{font-size:12px; color:var(--desc); font-family:var(--font-btn); margin-bottom:14px;}
.case-cover{width:550px; max-width:100%; height:410px; object-fit:cover; border-radius:18px; margin-bottom:40px;}
.case-body{max-width:760px;}
.case-body p{font-size:15.5px; color:#333; margin:0 0 20px; line-height:1.85;}
.case-body p:first-of-type{font-weight:600;}

.stage-row{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:48px 0;}
.stage-row.count-1{grid-template-columns:1fr; max-width:400px;}
.stage-row.count-2{grid-template-columns:repeat(2,1fr); max-width:600px;}
.stage-row .stage-item img{width:100%; height:auto; max-height:500px; object-fit:contain; background:#F3F3F1; border-radius:10px;}
.stage-row .stage-item .cap{text-align:center; font-size:13px; color:var(--desc); margin-top:8px; font-family:var(--font-btn);}

.extra-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:48px 0;}
.extra-gallery img{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; cursor:zoom-in;}
@media(max-width:767px){.extra-gallery{grid-template-columns:repeat(2,1fr);} .stage-row{grid-template-columns:1fr !important;}}

.process-list{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid #E0E0DC;}
.process-item{padding:28px 20px 28px 24px; border-right:1px solid #E0E0DC;}
.process-item:first-child{padding-left:0;}
.process-item:last-child{border-right:none;}
.pnum{display:block; font-size:13px; font-weight:700; color:var(--accent); margin-bottom:10px; font-family:var(--font-btn);}
.process-item h3{font-size:16px; font-weight:800; color:#22262B; margin:0 0 8px;}
.process-item p{font-size:13.5px; color:#5B6169; line-height:1.65; margin:0;}
@media(max-width:767px){.process-list{grid-template-columns:1fr 1fr;}}

.related-row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:48px 0;}
.related-row a{display:block;}
.related-row img{width:100%; height:180px; object-fit:cover; border-radius:12px;}
.related-row .rtitle{font-size:14.5px; font-weight:700; margin-top:10px;}
@media(max-width:640px){.related-row{grid-template-columns:1fr;}}

/* ---------- Portfolio 목록 (영림형 12장 컬럼) ---------- */
.pf-intro{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start; margin-bottom:56px;}
.pf-intro .im{border-radius:14px; overflow:hidden;}
.pf-intro .im img{width:100%; height:100%; object-fit:cover; aspect-ratio:7/6;}
.pf-intro h2{font-size:22px; font-weight:700; margin:0 0 16px;}
.pf-intro p{font-size:14.5px; color:var(--desc); line-height:1.8; margin:0 0 14px;}
.pf-intro ul{padding-left:18px; margin:0; font-size:14px; color:var(--desc); line-height:1.9;}
@media(max-width:900px){.pf-intro{grid-template-columns:1fr;}}

.pf-list{display:flex; flex-wrap:wrap; gap:28px 22px;}
.pf-list .pf-card{min-width:0;}
.pf-list .pf-card.w30{flex:0 0 calc(30% - 15px);}
.pf-list .pf-card.w68{flex:0 0 calc(68% - 11px);}
.pf-list .pf-card.w49{flex:0 0 calc(49% - 11px);}
.pf-card .im{overflow:hidden; border-radius:0;}
.pf-card.w30 .im img{width:100%; aspect-ratio:5/6; object-fit:cover;}
.pf-card.w68 .im img{width:100%; aspect-ratio:9.45/5; object-fit:cover;}
.pf-card.w49 .im img{width:100%; aspect-ratio:7/6; object-fit:cover;}
.pf-card .cap{margin-top:12px;}
.pf-card .region{font-size:12px; color:var(--accent); font-weight:700; font-family:var(--font-btn); margin-bottom:4px;}
.pf-card h3{font-size:15.5px; font-weight:700; margin:0;}
@media(max-width:767px){
  .pf-list .pf-card.w30,.pf-list .pf-card.w68,.pf-list .pf-card.w49{flex:0 0 100%;}
}

.pf-pagination{display:flex; justify-content:center; gap:10px; margin-top:56px;}
.pf-pagination span{width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-family:var(--font-btn); color:var(--desc);}
.pf-pagination span.current{background:#111; color:#fff;}

/* ---------- 지역/카테고리 페이지 공통 ---------- */
.dong-list{display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 0;}
.dong-list span{background:var(--accent-soft); color:var(--accent); font-size:12.5px; font-weight:700; font-family:var(--font-btn); padding:6px 14px; border-radius:999px;}

.region-links{display:flex; flex-wrap:wrap; gap:10px;}
.region-links a{border:1px solid var(--line); padding:9px 18px; border-radius:999px; font-size:13.5px; font-family:var(--font-btn); font-weight:600;}
.region-links a:hover{border-color:var(--accent); color:var(--accent);}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed; inset:0; background:rgba(0,0,0,.85); z-index:9999; display:none; align-items:center; justify-content:center;}
.lightbox.open{display:flex;}
.lightbox img{max-width:92vw; max-height:88vh; object-fit:contain; border-radius:6px;}
.lightbox .lb-close{position:absolute; top:24px; right:32px; color:#fff; font-size:32px; background:none; border:none; cursor:pointer;}
.lightbox .lb-prev,.lightbox .lb-next{position:absolute; top:50%; transform:translateY(-50%); background:none; border:none; color:#fff; font-size:44px; cursor:pointer; padding:10px 16px;}
.lightbox .lb-prev{left:8px;} .lightbox .lb-next{right:8px;}

/* ---------- About / Contact ---------- */
.info-block{max-width:760px;}
.info-block p{font-size:15px; color:#333; line-height:1.85; margin:0 0 18px;}
.contact-box{background:var(--accent-soft); border-radius:16px; padding:40px; text-align:center; max-width:520px; margin:0 auto;}
.contact-box .num{font-size:26px; font-weight:700; color:var(--ink); margin:14px 0 22px; font-family:var(--font-btn);}
.contact-box .btn-primary{display:inline-block; width:100%;}

.hours-line{white-space:nowrap;}
.bizno-label{display:block;}
.bizno-num{display:block; font-weight:600;}

.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0;}
