/*
Theme Name: GeneratePress Child - Seoul Wellness
Theme URI: https://seoulwellnessguide.com
Description: GeneratePress child theme carrying the Seoul Wellness & Local Guide brand design (deep forest #2E5A44, sage accents, snippet-ready content components).
Author: Soye - Seoul Wellness & Local Guide
Template: generatepress
Version: 1.0.0
Text Domain: swg-child
*/

/* ============================================================
   Seoul Wellness & Local Guide — brand system  (v1 · 2026-11)
   deep forest #2E5A44 · sage #8FAE92 · warm paper #FBFAF6
   ============================================================ */
:root{
  --swg-forest:#2E5A44;
  --swg-forest-deep:#1F3B2C;
  --swg-sage:#8FAE92;
  --swg-sage-soft:#E9F0E8;
  --swg-paper:#FBFAF6;
  --swg-ink:#26302B;
  --swg-muted:#5E6F65;
  --swg-line:#DCE5DC;
  --swg-radius:16px;
}
body,button,input,select,textarea{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,"Helvetica Neue",Arial,sans-serif;
}
body{
  background:var(--swg-paper);
  color:var(--swg-ink);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{
  color:var(--swg-forest-deep);
  letter-spacing:-.015em;
  line-height:1.25;
  font-weight:700;
}
a{color:var(--swg-forest);text-underline-offset:2px}
a:hover{color:var(--swg-forest-deep)}

/* ---------- masthead ---------- */
.site-header{background:#fff;border-bottom:1px solid var(--swg-line)}
.inside-header{padding:20px 0}
.site-title{font-size:21px;font-weight:700;letter-spacing:.01em;line-height:1.2}
.site-title a{color:var(--swg-forest-deep)}
.site-description{color:var(--swg-muted);font-size:12.5px;letter-spacing:.04em;margin-top:4px}
.main-navigation{background:transparent}
.main-navigation .main-nav ul li a{
  color:var(--swg-forest-deep);
  font-size:13px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
  padding-left:14px;
  padding-right:14px;
}
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li[class*="current-menu-"] > a{
  color:var(--swg-forest);
  box-shadow:inset 0 -2px 0 var(--swg-sage);
}
.main-navigation .menu-toggle{color:var(--swg-forest-deep);border-color:var(--swg-line)}

/* ---------- layout ---------- */
.separate-containers .inside-article,
.one-container .inside-article{
  background:#fff;
  border:1px solid var(--swg-line);
  border-radius:var(--swg-radius);
  padding:38px 40px 44px;
}
.separate-containers .site-main{margin-bottom:32px}
.entry-content{font-size:17.5px;line-height:1.78}
.entry-content > *{max-width:none}

/* ---------- post header ---------- */
.entry-title{font-size:clamp(28px,3.6vw,42px);line-height:1.16;margin-bottom:12px}
.entry-meta{color:var(--swg-muted);font-size:13.5px;letter-spacing:.02em}
.cat-links a{
  background:var(--swg-sage-soft);
  color:var(--swg-forest);
  padding:4px 12px;
  border-radius:999px;
  font-size:11.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
  text-decoration:none;
}
.entry-content h2{font-size:26px;margin:44px 0 14px}
.entry-content h3{font-size:20.5px;margin:30px 0 10px}
.entry-content p{margin:0 0 20px}
.entry-content ul,.entry-content ol{padding-left:22px}
.entry-content li{margin-bottom:9px}
.entry-content blockquote{
  border-left:4px solid var(--swg-sage);
  background:#F6F9F5;
  margin:0 0 24px;
  padding:18px 22px;
  border-radius:0 12px 12px 0;
  font-style:normal;
  color:#33423A;
}

/* ---------- featured-snippet components ---------- */
.swg-verdict{
  background:linear-gradient(180deg,#F4F8F3,#E9F0E8);
  border:1px solid #CFE0CD;
  border-left:6px solid var(--swg-forest);
  border-radius:14px;
  padding:24px 28px;
  margin:0 0 30px;
}
.swg-verdict h2{
  margin:0 0 10px;
  font-size:13px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--swg-forest);
}
.swg-verdict p{margin:0;font-size:18px;line-height:1.65}
.swg-verdict p+p{margin-top:12px}

.swg-toc{
  border:1px solid var(--swg-line);
  background:#fff;
  border-radius:14px;
  padding:22px 26px;
  margin:0 0 32px;
}
.swg-toc h2{
  font-size:13px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--swg-forest);
  margin:0 0 12px;
}
.swg-toc ol{margin:0;padding-left:20px;font-size:15.5px;line-height:1.6}
.swg-toc li{margin:7px 0}
.swg-toc a{text-decoration:none;border-bottom:1px solid #D8E6D6}
.swg-toc a:hover{border-bottom-color:var(--swg-forest)}

.swg-table-wrap{
  overflow-x:auto;
  margin:0 0 16px;
  border:1px solid var(--swg-line);
  border-radius:14px;
  -webkit-overflow-scrolling:touch;
}
table.swg-table{
  width:100%;
  min-width:640px;
  border-collapse:collapse;
  background:#fff;
  font-size:15px;
  line-height:1.5;
}
table.swg-table th{
  background:var(--swg-forest);
  color:#F3F8F1;
  text-align:left;
  padding:13px 14px;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  vertical-align:bottom;
  font-weight:700;
}
table.swg-table td{padding:13px 14px;border-top:1px solid var(--swg-line);vertical-align:top}
table.swg-table tbody tr:nth-child(even){background:#F7FAF6}
table.swg-table td:first-child{font-weight:700;color:var(--swg-forest-deep)}
.swg-caption{font-size:13px;color:var(--swg-muted);margin:0 0 32px}

.swg-steps{counter-reset:step;list-style:none;margin:0 0 28px;padding:0}
.swg-steps li{position:relative;padding-left:50px;margin:0 0 18px;list-style:none}
.swg-steps li:before{
  counter-increment:step;
  content:counter(step);
  position:absolute;
  left:0;
  top:2px;
  width:32px;
  height:32px;
  border-radius:50%;
  background:var(--swg-sage-soft);
  color:var(--swg-forest);
  font-weight:700;
  font-size:14.5px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.swg-check{list-style:none;padding-left:0}
.swg-check li{position:relative;padding-left:28px}
.swg-check li:before{content:"✓";position:absolute;left:0;color:var(--swg-forest);font-weight:700}

.swg-faq{margin:36px 0 0;border-top:1px solid var(--swg-line)}
.swg-faq details{border-bottom:1px solid var(--swg-line);padding:16px 0}
.swg-faq summary{
  cursor:pointer;
  font-weight:700;
  color:var(--swg-forest-deep);
  font-size:17px;
  line-height:1.5;
  list-style:none;
}
.swg-faq summary::-webkit-details-marker{display:none}
.swg-faq summary:before{content:"Q.";color:var(--swg-sage);margin-right:8px;font-weight:700}
.swg-faq p{margin:10px 0 0;font-size:16.5px;color:#33423A}
.swg-faq p:before{content:"A. ";color:var(--swg-sage);font-weight:700}

.swg-author{
  display:flex;
  gap:20px;
  align-items:center;
  background:var(--swg-sage-soft);
  border:1px solid #D6E3D4;
  border-radius:18px;
  padding:24px 26px;
  margin:44px 0 0;
}
.swg-author img{
  width:92px;height:92px;
  border-radius:50%;
  object-fit:cover;
  flex:0 0 92px;
  box-shadow:0 6px 18px rgba(46,90,68,.18);
}
.swg-author-body p{margin:0;font-size:15.5px;line-height:1.62;color:#3D4C43}
.swg-author-name{
  font-weight:700;
  color:var(--swg-forest-deep);
  margin:0 0 6px;
  font-size:11.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.swg-author-role{font-size:14.5px;color:var(--swg-muted);margin:8px 0 0}
.swg-updated{
  font-size:13px;
  color:var(--swg-muted);
  border-top:1px solid var(--swg-line);
  margin-top:30px;
  padding-top:14px;
}
@media(max-width:700px){
  .swg-author{flex-direction:column;text-align:center}
  .separate-containers .inside-article{padding:26px 20px 32px}
  .swg-verdict{padding:20px 18px}
  .swg-toc{padding:18px}
}

/* ---------- blog index cards ---------- */
.blog .inside-article,.archive .inside-article{transition:box-shadow .2s ease,transform .2s ease}
.blog .inside-article:hover,.archive .inside-article:hover{box-shadow:0 10px 28px rgba(31,59,44,.10);transform:translateY(-2px)}
.blog .entry-title,.archive .entry-title{font-size:26px}

/* ---------- sidebar & widgets ---------- */
.widget-area .widget{
  background:#fff;
  border:1px solid var(--swg-line);
  border-radius:14px;
  padding:20px 22px;
  margin-bottom:20px;
}
.widget-title{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--swg-forest);
  margin-bottom:12px;
}
.widget-area .widget ul li{border-bottom:1px dashed var(--swg-line);padding:7px 0}
.widget-area .widget ul li:last-child{border-bottom:0}

/* ---------- footer ---------- */
.site-footer{background:var(--swg-forest-deep);color:#D9E6D7}
.site-footer a{color:#EFF6EC}
.site-footer a:hover{color:#fff}
.site-footer .widget-area{color:#D9E6D7}
.footer-widgets{background:var(--swg-forest-deep);padding:46px 0 28px}
.site-footer .footer-widgets .widget{
  background:transparent;
  border:0;
  padding:0;
  margin-bottom:26px;
}
.site-footer .widget-title{color:#fff}
.site-footer .swg-foot-author{display:flex;gap:16px;align-items:flex-start}
.site-footer .swg-foot-author img{
  width:64px;height:64px;border-radius:50%;object-fit:cover;flex:0 0 64px;
  border:2px solid rgba(255,255,255,.28);
}
.site-footer .swg-foot-author p{margin:0;font-size:14.5px;line-height:1.6;color:#CFE0CC}
.site-footer .swg-foot-author strong{color:#fff}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer ul li{padding:5px 0;font-size:14.5px;border:0}
.site-info{
  background:#172B21;
  color:#9FB6A4;
  font-size:12.5px;
  letter-spacing:.03em;
}
.site-info a{color:#C7DCC4}
.site-footer .copyright-bar{padding:14px 0}

/* ---------- misc ---------- */
.swg-btn{
  display:inline-block;
  background:var(--swg-forest);
  color:#fff !important;
  padding:12px 22px;
  border-radius:999px;
  font-weight:700;
  font-size:15px;
  text-decoration:none;
}
.swg-btn:hover{background:var(--swg-forest-deep)}
.single-post .entry-content img{border-radius:12px}
.entry-footer{color:var(--swg-muted);font-size:13.5px}
