/*
Theme Name: Solar Install
Theme URI: https://solarinstall.stofarm.com/
Author: ROBOTION
Description: 태양광설치 정보 검색 플랫폼 전용 테마. 딥네이비·솔라옐로 디자인 시스템 기반의 프리미엄 커스텀 테마.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: solarinstall
*/

:root{
  --navy:#1B3A5C; --navy-deep:#142C46; --navy-ink:#0F2236;
  --yellow:#F5B301; --green:#1F7A5C; --orange:#E8743B; --teal:#17505B;
  --ivory:#F7F9FB; --white:#FFFFFF;
  --ink:#1E293B; --text:#334155; --muted:#64748B; --faint:#94A3B8;
  --line:#E2E8F0; --line-soft:#EEF2F6;
  --r-sm:8px; --r-md:12px; --r-lg:20px; --r-xl:28px; --r-full:999px;
  --shadow-sm:0 1px 2px rgba(15,34,54,.06),0 4px 12px rgba(15,34,54,.06);
  --shadow-md:0 2px 4px rgba(15,34,54,.05),0 14px 32px rgba(15,34,54,.10);
  --shadow-lg:0 8px 20px rgba(15,34,54,.10),0 24px 56px rgba(15,34,54,.14);
  --font-body:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --font-display:'Noto Serif KR',Georgia,'Times New Roman',serif;
  --sp-1:8px; --sp-2:16px; --sp-3:24px; --sp-4:32px; --sp-5:48px; --sp-6:64px; --sp-7:96px; --sp-8:128px;
  --maxw:1200px; --maxw-content:760px;
  --t-fast:150ms; --t-base:250ms; --t-slow:350ms;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);font-size:16px;line-height:1.75;color:var(--text);background:var(--ivory);-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy);text-decoration:none;transition:color var(--t-fast) ease}
a:hover{color:var(--orange)}
:focus-visible{outline:3px solid rgba(245,179,1,.55);outline-offset:2px;border-radius:4px}
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--navy);color:#fff;padding:12px 20px;border-radius:0 0 12px 0}
.skip-link:focus{left:0}
.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--sp-3)}
@media(min-width:900px){.container{padding:0 var(--sp-5)}}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:var(--sp-3)}
.brand{display:flex;align-items:center;gap:12px;min-height:44px}
.brand-mark{width:40px;height:40px;flex:none}
.brand-name{font-size:1.06rem;font-weight:800;color:var(--navy-ink);letter-spacing:-.02em;line-height:1.25}
.brand-name small{display:block;font-size:.68rem;font-weight:600;color:var(--muted);letter-spacing:.06em}
.main-nav ul{display:flex;gap:var(--sp-1);list-style:none}
.main-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-size:.93rem;font-weight:600;color:var(--ink);border-radius:var(--r-full)}
.main-nav a:hover{color:var(--navy);background:#EEF3F8}
.main-nav .current-menu-item a{color:var(--navy);background:#E8EEF5}
.nav-cta{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;background:var(--navy);color:#fff;font-weight:700;font-size:.92rem;border-radius:var(--r-full);transition:background var(--t-fast) ease,transform var(--t-fast) ease}
.nav-cta:hover{background:var(--navy-deep);color:#fff;transform:translateY(-1px)}
.nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);background:#fff;border-radius:var(--r-sm);cursor:pointer;align-items:center;justify-content:center}
.nav-toggle svg{width:22px;height:22px}
@media(max-width:959px){
  .main-nav{position:fixed;inset:72px 0 auto 0;background:#fff;border-bottom:1px solid var(--line-soft);box-shadow:var(--shadow-md);padding:8px 16px 20px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:all var(--t-base) ease}
  .main-nav.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .main-nav ul{flex-direction:column;gap:2px}
  .main-nav a{width:100%;border-radius:var(--r-md)}
  .nav-cta{display:none}
  .nav-toggle{display:flex}
  .header-inner{height:64px}
}

/* ===== Page hero (posts/pages) ===== */
.page-hero{background:linear-gradient(160deg,var(--navy-ink) 0%,var(--navy) 62%,#24507E 100%);color:#fff;padding:64px 0 72px;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;right:-80px;top:-80px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(245,179,1,.22),transparent 65%)}
.page-hero .container{position:relative;z-index:2}
.hero-kicker{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;letter-spacing:.14em;color:var(--yellow);text-transform:uppercase;margin-bottom:16px}
.hero-kicker::before{content:"";width:26px;height:2px;background:var(--yellow);border-radius:2px}
.page-hero h1{font-size:clamp(1.7rem,4.2vw,2.7rem);font-weight:800;line-height:1.3;letter-spacing:-.02em;color:#fff;max-width:820px}
.page-hero .hero-sub{margin-top:16px;color:#C9D6E4;max-width:720px;font-size:1.02rem}
.hero-meta{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:.85rem;color:#AFC0D3}
.hero-meta span{display:inline-flex;align-items:center;gap:7px}

/* ===== Article layout ===== */
.article-wrap{padding:var(--sp-6) 0 var(--sp-7)}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-5)}
@media(min-width:1100px){.article-layout{grid-template-columns:240px minmax(0,1fr);gap:var(--sp-5)}}
.article-toc{display:none}
@media(min-width:1100px){
  .article-toc{display:block;position:sticky;top:96px;align-self:start}
  .toc-inner{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-sm)}
  .toc-inner h2{font-size:.8rem;font-weight:800;color:var(--navy);letter-spacing:.1em;margin-bottom:10px}
  .toc-inner ul{list-style:none}
  .toc-inner li{margin:2px 0}
  .toc-inner a{display:block;padding:7px 10px;font-size:.85rem;color:var(--muted);border-radius:var(--r-sm);border-left:2px solid transparent}
  .toc-inner a:hover{color:var(--navy);background:#F1F5F9;border-left-color:var(--yellow)}
}
.article-main{min-width:0}
.article-body{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-xl);padding:clamp(24px,5vw,56px);box-shadow:var(--shadow-sm)}
.article-body h1{font-size:clamp(1.55rem,3.4vw,2.2rem);font-weight:800;line-height:1.32;letter-spacing:-.02em;color:var(--navy-ink);margin-bottom:8px}
.article-body h2{font-size:clamp(1.25rem,2.4vw,1.55rem);font-weight:800;line-height:1.4;letter-spacing:-.015em;color:var(--navy);margin:2.2em 0 .8em;padding-top:.4em;border-top:3px solid var(--yellow);border-radius:2px}
.article-body h3{font-size:1.16rem;font-weight:800;color:var(--navy-ink);margin:1.8em 0 .6em}
.article-body p{margin:0 0 1.15em;font-size:1.01rem;line-height:1.85}
.article-body ul,.article-body ol{margin:0 0 1.3em;padding-left:1.4em;display:grid;gap:8px}
.article-body li{line-height:1.75}
.article-body strong{color:var(--ink)}
.article-body a{color:var(--navy);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(27,58,92,.3)}
.article-body a:hover{color:var(--orange);text-decoration-color:var(--orange)}
.article-body img{border-radius:var(--r-lg);box-shadow:var(--shadow-md);margin:1.2em 0 .4em}
.article-body .wp-caption-text,.article-body figcaption{font-size:.85rem;color:var(--muted);text-align:center;padding:6px 0 14px}

/* tables */
.article-body .info-table{width:100%;border-collapse:separate;border-spacing:0;margin:1.4em 0 1.8em;font-size:.93rem;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-sm)}
.article-body .info-table th{background:var(--navy);color:#fff;text-align:left;padding:13px 16px;font-weight:700;font-size:.88rem;letter-spacing:.01em}
.article-body .info-table td{padding:12px 16px;border-top:1px solid var(--line-soft);vertical-align:top;color:var(--text)}
.article-body .info-table tbody tr:nth-child(even){background:#FAFBFD}
.article-body .info-table tbody tr:hover{background:#F3F7FB}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.4em}
.table-scroll .info-table{margin:0}

/* callout */
.article-body .callout{background:#FFF9E8;border:1px solid #F3E2A8;border-left:4px solid var(--yellow);border-radius:var(--r-md);padding:20px 22px;margin:1.6em 0;font-size:.97rem;color:#5B4A12}
.article-body .callout p{margin:0 0 6px;line-height:1.75}
.article-body .callout p:last-child{margin:0}

/* charts */
.article-body .chart{background:#FBFCFE;border:1px solid var(--line-soft);border-radius:var(--r-md);padding:22px 22px 10px;margin:1.5em 0 8px;display:grid;gap:14px}
.article-body .bar-row{display:grid;grid-template-columns:120px minmax(0,1fr) 120px;gap:14px;align-items:center;font-size:.86rem}
@media(max-width:640px){.article-body .bar-row{grid-template-columns:96px minmax(0,1fr) 96px;gap:8px}}
.article-body .bar-label{color:var(--ink);font-weight:600;text-align:right}
.article-body .bar-track{background:#EDF1F6;height:14px;border-radius:var(--r-full);overflow:hidden}
.article-body .bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--navy),#2E6E9E);border-radius:var(--r-full)}
.article-body .bar-note{color:var(--muted);font-size:.82rem}
.article-body .chart-caption{font-size:.82rem;color:var(--muted);margin:.2em 0 1.4em;text-align:center}

/* step list & checklist */
.article-body .step-list li::marker{color:var(--navy);font-weight:800}
.article-body .checklist{list-style:none;padding-left:0}
.article-body .checklist li{position:relative;padding-left:30px}
.article-body .checklist li::before{content:"";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:6px;background:var(--navy);-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/contain no-repeat;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/contain no-repeat;background-color:var(--navy)}
.article-body .post-figure{margin:1.6em 0;text-align:center}

/* easy TOC (plugin) override */
.article-body .ez-toc-container{background:#FBFCFE;border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;margin:0 0 1.8em;box-shadow:var(--shadow-sm)}
.article-body .ez-toc-title{font-size:.9rem;font-weight:800;color:var(--navy)}
.article-body .ez-toc-list li{font-size:.9rem;line-height:1.7}

/* legal & ai notices */
.article-body .legal-notice{font-size:.85em;color:#777;background:#f8f9fa;border-left:3px solid #cbd5e1;padding:10px 14px;margin-top:2em;border-radius:0 6px 6px 0}
.article-body .ai-notice{font-size:.85em;color:#888;margin-top:2em}

/* share of article: related */
.related-section{margin-top:var(--sp-5)}
.related-section h2{font-size:1.2rem;font-weight:800;color:var(--navy-ink);margin-bottom:var(--sp-3);display:flex;align-items:center;gap:10px}
.related-section h2::before{content:"";width:24px;height:3px;background:var(--yellow);border-radius:3px}
.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-3)}
.related-card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--t-base) ease,box-shadow var(--t-base) ease;display:block}
.related-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.related-card img{aspect-ratio:16/9;object-fit:cover;width:100%}
.related-card .rc-body{padding:16px 18px}
.related-card .rc-body h3{font-size:.95rem;font-weight:700;color:var(--ink);line-height:1.5;margin:0}
.related-card:hover .rc-body h3{color:var(--navy)}
.related-card .rc-cat{font-size:.72rem;font-weight:700;color:var(--orange);letter-spacing:.06em;margin-bottom:6px}

/* post pagination */
.post-nav{display:flex;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-4)}
.post-nav a{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:12px 18px;font-size:.88rem;font-weight:600;color:var(--navy);transition:all var(--t-fast) ease;max-width:48%}
.post-nav a:hover{border-color:var(--navy);background:var(--navy);color:#fff}

/* ===== Archive index ===== */
.archive-wrap{padding:var(--sp-6) 0 var(--sp-7)}
.archive-head{margin-bottom:var(--sp-5)}
.archive-head h1{font-size:clamp(1.6rem,3.6vw,2.3rem);font-weight:800;color:var(--navy-ink);letter-spacing:-.02em}
.archive-head p{color:var(--muted);margin-top:10px;max-width:680px}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-4)}
.post-card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--t-base) ease,box-shadow var(--t-base) ease;display:flex;flex-direction:column}
.post-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
.post-card .pc-thumb{aspect-ratio:16/9;overflow:hidden;position:relative}
.post-card .pc-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow) ease}
.post-card:hover .pc-thumb img{transform:scale(1.04)}
.post-card .pc-cat{position:absolute;top:14px;left:14px;background:rgba(15,34,54,.82);color:#FFE08A;font-size:.72rem;font-weight:700;padding:6px 12px;border-radius:var(--r-full);letter-spacing:.04em;backdrop-filter:blur(4px)}
.post-card .pc-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.post-card .pc-body h2{font-size:1.08rem;font-weight:800;color:var(--ink);line-height:1.5;letter-spacing:-.01em}
.post-card:hover .pc-body h2{color:var(--navy)}
.post-card .pc-excerpt{font-size:.9rem;color:var(--muted);line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post-card .pc-meta{margin-top:auto;font-size:.78rem;color:var(--faint);display:flex;align-items:center;gap:8px}
.pagination{display:flex;justify-content:center;gap:10px;margin-top:var(--sp-5)}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);font-weight:700;color:var(--ink)}
.pagination .page-numbers.current{background:var(--navy);border-color:var(--navy);color:#fff}

/* ===== Page (privacy/terms) ===== */
.page-main{max-width:var(--maxw-content);margin:0 auto;padding:var(--sp-6) 0 var(--sp-7)}
.page-panel{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-xl);padding:clamp(24px,5vw,56px);box-shadow:var(--shadow-sm)}
.page-panel h1{font-size:clamp(1.5rem,3.2vw,2.1rem);font-weight:800;color:var(--navy-ink);letter-spacing:-.02em;margin-bottom:8px}
.page-panel .updated{color:var(--muted);font-size:.85rem;margin-bottom:24px}
.page-panel h2{font-size:1.2rem;font-weight:800;color:var(--navy);margin:1.8em 0 .7em;padding-top:.4em;border-top:3px solid var(--yellow);border-radius:2px}
.page-panel h3{font-size:1.05rem;font-weight:800;color:var(--navy-ink);margin:1.4em 0 .5em}
.page-panel p{margin-bottom:1em;line-height:1.85}
.page-panel ul,.page-panel ol{margin:0 0 1.2em;padding-left:1.4em;display:grid;gap:6px}
.page-panel table{width:100%;border-collapse:collapse;margin:1em 0 1.4em;font-size:.92rem}
.page-panel th,.page-panel td{border:1px solid var(--line);padding:10px 14px;text-align:left}
.page-panel th{background:var(--navy);color:#fff}

/* ===== Footer ===== */
.site-footer{background:var(--navy-ink);color:#B9C8D9;margin-top:var(--sp-7)}
.footer-top{padding:var(--sp-6) 0 var(--sp-4)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--sp-5)}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr;gap:var(--sp-4)}}
.footer-brand .brand-name{color:#fff}
.footer-brand p{font-size:.9rem;margin-top:14px;max-width:340px;line-height:1.75}
.footer-col h3{font-size:.82rem;font-weight:800;letter-spacing:.1em;color:#7E93AB;margin-bottom:14px}
.footer-col ul{list-style:none;display:grid;gap:8px}
.footer-col a{color:#C7D4E3;font-size:.92rem}
.footer-col a:hover{color:var(--yellow)}
.footer-legal{border-top:1px solid rgba(255,255,255,.08);padding:var(--sp-3) 0}
.footer-legal p{font-size:.78em;line-height:1.7;color:#8CA1B8;max-width:var(--maxw-content)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:18px 0 26px}
.footer-bottom-inner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;font-size:.8rem;color:#7E93AB}
.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.footer-links a{color:#C7D4E3}

/* motion */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
