/*
Theme Name: GNS LED간판교체
Description: 지앤에스(GNS SIGN) LED간판교체 전문 사이트 테마 (AEO/GEO 최적화)
Author: GNS SIGN
Version: 1.0
*/

:root{
  --bg:#ffffff;
  --bg-alt:#fff8ec;
  --accent:#ff7a1a;
  --accent-2:#ffb703;
  --text:#262220;
  --text-muted:#6b625c;
  --border:#f0e2c9;
  --footer-bg:#2b211a;
  --footer-text:#d8cfc4;
  --radius:0;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Pretendard",-apple-system,BlinkMacSystemFont,"Malgun Gothic",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.75;
  word-break:keep-all;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
a{color:var(--accent)}

/* header — 푸터와 동일한 브라운 배경 + 오렌지 포인트 */
.site-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px;border-bottom:1px solid var(--footer-bg);
  background:var(--footer-bg);position:sticky;top:0;z-index:50;
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;width:100%}
.brand{display:flex;align-items:center;gap:8px;font-weight:900;font-size:19px;color:#fff;text-decoration:none;letter-spacing:-.02em}
.brand-keyword{color:var(--accent)}
.brand img{width:32px;height:32px;border-radius:0}
.header-nav{display:flex;gap:16px;font-size:14.5px;font-weight:700}
.header-nav a{color:var(--footer-text);text-decoration:none}
.header-nav a:hover{color:var(--accent)}

/* hero */
.hero{
  background:linear-gradient(160deg,var(--bg-alt) 0%,#fff 70%);
  padding:56px 20px 44px;text-align:center;border-bottom:1px solid var(--border);
}
.hero .eyebrow{
  display:inline-block;background:#fff1dc;color:#b45900;font-weight:700;font-size:13px;
  padding:6px 14px;border-radius:0;margin-bottom:16px;
}
.hero h1{
  font-size:clamp(30px,5.5vw,52px);margin:0 0 16px;line-height:1.25;color:var(--footer-bg);font-weight:900;letter-spacing:-.02em;
}
.hero h1 .h1-case-tag{
  display:inline-block;margin-top:8px;font-size:clamp(15px,2.1vw,20px);font-weight:700;color:var(--text-muted);
}
.hero .lead{
  max-width:760px;margin:0 auto 26px;font-size:17px;font-weight:600;color:var(--text-muted);
}
.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:8px;padding:15px 28px;border-radius:0;
  font-weight:800;font-size:16px;text-decoration:none;transition:transform .15s ease;border:2px solid transparent;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 10px 24px rgba(255,122,26,.28)}
.btn-outline{background:#fff;border-color:var(--accent);color:var(--accent)}

/* 히어로: 좌측 텍스트 / 우측 사진 콜라주 2단 배치 */
.hero-split{text-align:left;padding:56px 20px}
.hero-split-inner{
  display:grid;grid-template-columns:1fr 1fr;column-gap:48px;align-items:start;
  grid-template-areas:"copy collage" "badges collage";
}
.hero-copy{grid-area:copy}
.hero-badges{grid-area:badges}
.hero-copy .eyebrow{margin-bottom:18px}
.hero-copy .lead{margin:0 0 26px}
.hero-split .hero-cta{justify-content:flex-start}
.hero-split .hero-cta .btn{flex:0 0 180px;justify-content:center;text-align:center}
.hero-split .btn-outline{color:var(--text);border-color:var(--border);background:#fff}
.hero-badges{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px;padding-top:20px;border-top:1px solid var(--border);font-size:13.5px;color:var(--text-muted)}
.hero-badges b{color:var(--text);font-size:15px;margin-right:4px}

.hero-collage{
  grid-area:collage;align-self:center;
  position:relative;display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:130px 100px 120px;
  gap:10px;
}
.hero-collage img{width:100%;height:100%;object-fit:cover;border-radius:0}
.hero-collage img:nth-child(1){grid-column:1/3;grid-row:1/3}
.hero-collage img:nth-child(2){grid-column:3/5;grid-row:1}
.hero-collage img:nth-child(3){grid-column:3/4;grid-row:2}
.hero-collage img:nth-child(4){grid-column:4/5;grid-row:2}
.hero-collage img:nth-child(5){grid-column:1/3;grid-row:3}
.hero-collage img:nth-child(6){grid-column:3/5;grid-row:3}
.collage-badge{
  position:absolute;right:10px;bottom:10px;
  background:rgba(255,255,255,.22);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
  border:1px solid rgba(255,255,255,.5);border-radius:0;
  padding:12px 16px;font-size:12.5px;color:#fff;line-height:1.5;text-shadow:0 1px 4px rgba(0,0,0,.5);
  box-shadow:0 10px 24px rgba(0,0,0,.15);
}
.collage-badge b{color:var(--accent-2);font-size:14.5px;text-shadow:0 1px 4px rgba(0,0,0,.6)}

@media (max-width:900px){
  .hero-split-inner{grid-template-columns:1fr;grid-template-areas:"copy" "badges" "collage";row-gap:20px}
  .hero-split{text-align:left;padding:28px 20px}
  .hero-split .hero-cta{justify-content:flex-start;flex-wrap:nowrap;gap:8px}
  .hero-split .hero-cta .btn{flex:1 1 0;width:auto;min-width:0;padding:13px 10px;font-size:14.5px;white-space:nowrap}
  .hero-badges{justify-content:flex-start}
  .hero-collage{grid-template-rows:110px 90px 100px}
}
@media (max-width:420px){
  .hero-split .hero-cta .btn{font-size:13px;padding:12px 6px}
}

/* content */
.content{padding:48px 20px}
.content article > h2{
  font-size:23px;margin-top:44px;margin-bottom:14px;padding-bottom:8px;border-bottom:3px solid var(--accent-2);
  display:inline-block;scroll-margin-top:80px;
}
.content article > h3{font-size:18px;margin-top:26px;color:var(--text)}
.content article > p{font-size:15.5px;color:#3a332e}
table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14.5px}
th,td{border:1px solid var(--border);padding:12px 14px;text-align:left}
th{background:var(--bg-alt);font-weight:700}
tr:nth-child(even) td{background:#fffdf9}
ul.check{list-style:none;padding:0;margin:16px 0;display:grid;gap:10px}
ul.check li{padding-left:28px;position:relative;font-size:15px}
ul.check li::before{content:"✓";position:absolute;left:0;top:0;color:#fff;background:var(--accent);width:20px;height:20px;border-radius:50%;font-size:12px;display:flex;align-items:center;justify-content:center}

/* 번호형 카드 그리드 (이런 상황이라면 등) */
.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}
.reason-card{border:1px solid var(--border);border-radius:0;padding:22px 20px;background:#fff}
.reason-card .num{font-size:30px;font-weight:800;color:var(--border);line-height:1;margin-bottom:12px}
.reason-card h4{margin:0 0 8px;font-size:15.5px;color:var(--text)}
.reason-card p{margin:0;font-size:13.5px;color:var(--text-muted)}
@media (max-width:760px){.reason-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.reason-grid{grid-template-columns:1fr}}

/* process flow diagram */
.flow{display:flex;flex-wrap:wrap;gap:0;margin:20px 0;counter-reset:step}
.flow-step{
  flex:1 1 150px;background:var(--bg-alt);border:1px solid var(--border);border-radius:0;
  padding:16px 14px;text-align:center;position:relative;margin:6px;
}
.flow-step .num{
  width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;
  display:flex;align-items:center;justify-content:center;margin:0 auto 8px;font-size:14px;
}
.flow-step h4{margin:0 0 6px;font-size:14.5px}
.flow-step p{margin:0;font-size:12.5px;color:var(--text-muted)}

/* info cards / grid */
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:20px 0}
.info-card{background:#fff;border:1px solid var(--border);border-radius:0;padding:18px}
.info-card h4{margin:0 0 8px;font-size:15px;color:var(--accent)}
.info-card p{margin:0;font-size:13.5px;color:var(--text-muted)}

/* case cards with thumbnail */
.case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin:24px 0}
.case-card{background:#fff;border:1px solid var(--border);border-radius:0;overflow:hidden;text-decoration:none;color:var(--text);display:block;transition:transform .15s ease;box-shadow:0 4px 14px rgba(0,0,0,.04)}
.case-card:hover{transform:translateY(-4px)}
.case-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.case-card .case-card-body{padding:16px 18px}
.case-card h4{margin:0 0 6px;font-size:16.5px;color:var(--text)}
.case-card p{margin:0;font-size:13px;color:var(--text-muted)}

/* 테트리스처럼 한 장씩 위에서 떨어져 채워지는 효과 */
@keyframes heroDrop{
  0%{transform:translateY(-140%);opacity:0}
  60%{opacity:1}
  100%{transform:translateY(0);opacity:1}
}
.hero-collage img{
  animation:heroDrop .65s cubic-bezier(.25,.9,.4,1.25) both;
}
.hero-collage img:nth-child(1){animation-delay:.05s}
.hero-collage img:nth-child(2){animation-delay:.2s}
.hero-collage img:nth-child(3){animation-delay:.35s}
.hero-collage img:nth-child(4){animation-delay:.5s}
.hero-collage img:nth-child(5){animation-delay:.65s}
.hero-collage img:nth-child(6){animation-delay:.8s}
@media (prefers-reduced-motion: reduce){
  .hero-collage img{animation:none}
}

/* wide banner photo (content section divider) */
.banner-photo{margin:32px 0;border-radius:0;overflow:hidden;position:relative}
.banner-photo img{width:100%;height:480px;object-fit:cover;display:block}
.banner-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 20px;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent);color:#fff;font-size:14px;font-weight:600}

/* 여러 장 사진이 순서대로 서서히 교차되며 나타나는(fade) 배너 */
.banner-fade{height:480px}
.banner-fade img{position:absolute;inset:0;width:100%;height:100%;opacity:0;animation:bannerFade 12s infinite}
.banner-fade img:nth-child(1){animation-delay:0s}
.banner-fade img:nth-child(2){animation-delay:4s}
.banner-fade img:nth-child(3){animation-delay:8s}
@keyframes bannerFade{
  0%{opacity:0}
  4%{opacity:1}
  29%{opacity:1}
  35%{opacity:0}
  100%{opacity:0}
}
@media (prefers-reduced-motion: reduce){
  .banner-fade img{animation:none;opacity:1;position:static}
  .banner-fade img ~ img{display:none}
}
@media (max-width:640px){.banner-photo img{height:280px}.banner-fade{height:280px}}

/* trust photo (single) */
.trust-photo{margin:20px 0;border-radius:0;overflow:hidden;border:1px solid var(--border)}
.trust-photo img{width:100%;max-height:360px;object-fit:cover}
.trust-photo figcaption{padding:10px 14px;font-size:12.5px;color:var(--text-muted);background:#fff}

/* FAQ */
.faq-item{border:none;border-bottom:1px solid var(--border);background:transparent}
.faq-item:first-child{border-top:1px solid var(--border)}
.faq-item summary{
  cursor:pointer;padding:20px 40px 20px 0;position:relative;list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);
  font-size:22px;font-weight:700;color:var(--text);
}
.faq-item[open] summary::after{content:"−"}
.faq-item h3{margin:0;font-size:16px;font-weight:700;display:inline}
.faq-item p{margin:0;padding:0 30px 20px 0;font-size:14.5px;color:#3a332e}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:20px 0}
.gallery figure{margin:0;border-radius:0;overflow:hidden;border:1px solid var(--border);background:#fff}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery figcaption{font-size:12px;color:var(--text-muted);padding:8px 10px}

/* 큰 이미지를 옆으로 넘겨보는 캐러셀 카드 */
.carousel-wrap{position:relative}
.carousel-arrow{
  position:absolute;top:45%;transform:translateY(-50%);z-index:5;
  width:38px;height:38px;border-radius:50%;border:1px solid var(--border);
  background:rgba(255,255,255,.92);color:var(--text);font-size:20px;line-height:1;
  cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.18);
}
.carousel-prev{left:4px}
.carousel-next{right:4px}
.carousel{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;margin:20px -20px;padding:4px 20px 14px}
.carousel-track{display:flex;gap:16px}
.carousel-card{flex:0 0 auto;width:82%;max-width:600px;scroll-snap-align:center;border:1px solid var(--border);overflow:hidden;background:#fff;margin:0}
.carousel-card img{width:100%;height:380px;object-fit:cover;display:block}
.carousel-card figcaption{padding:12px 16px;font-size:14px;font-weight:700;color:var(--text)}
@media (max-width:640px){
  .carousel-card{width:88%}
  .carousel-card img{height:260px}
}

/* CTA band */
.cta-band{
  background:linear-gradient(135deg,#fff3e0,#ffe8cc);border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:40px 20px;text-align:center;
}
.cta-band h2{margin:0 0 10px;font-size:22px;border:none !important;padding:0 !important}
.cta-band p{margin:0 0 20px;color:var(--text-muted)}

/* footer */
.site-footer{background:var(--footer-bg);color:var(--footer-text);padding:36px 20px 20px;font-size:13px}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between}
.site-footer h5{color:#fff;font-size:14px;margin:0 0 10px}
.site-footer a{color:var(--footer-text)}
.site-footer .biz-info{line-height:1.9}
.footer-bottom{text-align:center;margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);color:#a89f95;font-size:12px}

.updated-note{color:var(--text-muted);font-size:13px;margin-top:30px;padding-top:14px;border-top:1px dashed var(--border)}

.nav-toggle-checkbox{display:none}
.nav-toggle-btn{display:none;font-size:24px;line-height:1;color:#fff;cursor:pointer;padding:4px 6px}

@media (max-width:640px){
  .nav-toggle-btn{display:block}
  .brand-keyword{display:none}
  .site-header .wrap{justify-content:flex-start;gap:10px}
  .nav-toggle-btn{margin-left:auto}
  .header-nav{
    display:flex;flex-direction:column;gap:0;
    position:absolute;top:100%;left:0;right:0;
    background:var(--footer-bg);
    max-height:0;overflow:hidden;transition:max-height .25s ease;
  }
  .header-nav a{color:var(--footer-text);padding:14px 20px;border-top:1px solid rgba(255,255,255,.1)}
  .nav-toggle-checkbox:checked ~ .header-nav{max-height:220px}
  .site-footer .wrap{flex-direction:column}
}
