/*
Theme Name: Living in South Charlotte
Theme URI: https://southcharlottehomeguide.com
Description: Child theme of GeneratePress for the Living in South Charlotte publication.
Author: Steve Jarrell
Template: generatepress
Version: 2.0.0
*/

/* ===============================================================
   BRAND TOKENS
   Palette is The Longleaf Group's, so the two properties read as
   one family. Identity is separated by logo, layout and voice,
   not by colour. Proxima Nova is licensed, so Figtree stands in
   for display and Open Sans matches TLG body exactly.
   =============================================================== */
:root{
  /* TLG brand */
  --green:#4E5D4D;          /* primary */
  --green-dark:#32403A;     /* darkest, high contrast */
  --green-mid:#5A6C4E;      /* secondary sage */
  --tan:#87572D;            /* warm tan, CTA on light */
  --gold:#C9A870;           /* gold, on the dark card */
  --sage:#F3F5F3;           /* light sage */

  /* Neutrals biased green so nothing reads as default grey */
  --paper:#FAFBFA;
  --surface:#FFFFFF;
  --ink:#1F2622;
  --ink-2:#525C55;
  --ink-3:#7C857F;
  --line:#DDE2DD;
  --line-soft:#EBEEEA;

  --measure:36rem;
  --wide:70rem;
  --display:"Figtree","Proxima Nova","Helvetica Neue",Arial,sans-serif;
  --body:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --serif:Georgia,"Iowan Old Style","Times New Roman",serif;
}

*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--body);
  font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:var(--green);text-underline-offset:.15em}
a:hover{color:var(--green-dark)}
:focus-visible{outline:2px solid var(--green);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.14;
  letter-spacing:-.015em;text-wrap:balance;color:var(--ink);margin:0}
img{max-width:100%;height:auto}

/* ===============================================================
   LOGO
   =============================================================== */
.schg-logo{height:44px;width:auto;color:var(--green-dark);display:block}
.schg-logo__eyebrow{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.28em}
.schg-logo__word{font-family:var(--display);font-size:26px;font-weight:800;letter-spacing:.005em}
.schg-logo__mark{opacity:.95}

/* ===============================================================
   HEADER
   =============================================================== */
.schg-topbar{background:var(--green-dark);color:#fff;font-size:.78rem;letter-spacing:.06em}
.schg-topbar__in{max-width:var(--wide);margin:0 auto;padding:.5rem 1.5rem;
  display:flex;justify-content:space-between;align-items:center;gap:1rem}
.schg-topbar a{color:var(--gold);text-decoration:none;font-weight:600}
.schg-topbar a:hover{color:#fff}
.schg-topbar__tag{color:rgba(255,255,255,.72)}

.schg-head{background:var(--surface);border-bottom:1px solid var(--line)}
.schg-head__in{max-width:var(--wide);margin:0 auto;padding:1.15rem 1.5rem;
  display:flex;align-items:center;justify-content:space-between;gap:2rem}
.schg-head__brand{text-decoration:none;flex:0 0 auto}
.schg-nav{display:flex;flex-wrap:wrap;gap:.15rem;align-items:center}
.schg-nav a{font-family:var(--display);font-size:.82rem;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;color:var(--ink-2);text-decoration:none;padding:.5rem .7rem;border-radius:5px}
.schg-nav a:hover,.schg-nav a[aria-current]{color:var(--green-dark);background:var(--sage)}
.schg-search{border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;
  font-family:var(--body);font-size:.85rem;width:150px;background:var(--paper);color:var(--ink)}

/* ===============================================================
   HERO: top of fold
   =============================================================== */
.schg-hero{background:var(--green-dark);color:#fff;position:relative;overflow:hidden}
.schg-hero__in{max-width:var(--wide);margin:0 auto;padding:3.4rem 1.5rem 3.6rem;
  display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.schg-hero__eyebrow{font-family:var(--display);font-size:.72rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 1rem}
.schg-hero h1{font-size:3rem;color:#fff;letter-spacing:-.022em;line-height:1.06;margin:0}
.schg-hero__dek{font-size:1.12rem;color:rgba(255,255,255,.82);margin:1.1rem 0 0;max-width:34ch;line-height:1.55}
.schg-hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.8rem}
.schg-hero__stats{display:flex;gap:2.2rem;margin-top:2.2rem;padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.16)}
.schg-hero__stat b{display:block;font-family:var(--display);font-size:1.7rem;font-weight:800;
  color:var(--gold);line-height:1;font-variant-numeric:tabular-nums}
.schg-hero__stat span{font-size:.78rem;color:rgba(255,255,255,.62);letter-spacing:.06em;
  text-transform:uppercase;display:block;margin-top:.35rem}
.schg-hero__media{border-radius:12px;overflow:hidden;aspect-ratio:16/10;position:relative;
  box-shadow:0 18px 40px rgba(0,0,0,.28)}
.schg-hero__media img{width:100%;height:100%;object-fit:cover;display:block}
.schg-hero__play{position:absolute;inset:0;display:grid;place-items:center}
.schg-hero__play span{width:64px;height:64px;border-radius:50%;background:rgba(201,168,112,.94);
  display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.3)}
.schg-hero__play span::after{content:"";border-style:solid;border-width:.62rem 0 .62rem 1rem;
  border-color:transparent transparent transparent var(--green-dark);margin-left:.22rem}

.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--display);font-weight:700;
  font-size:.9rem;letter-spacing:.02em;text-decoration:none;padding:.8rem 1.5rem;border-radius:6px;
  border:1px solid transparent;transition:background .15s ease,color .15s ease}
.btn--gold{background:var(--gold);color:var(--green-dark)}
.btn--gold:hover{background:#d8bb8a;color:var(--green-dark)}
.btn--ghost{border-color:rgba(255,255,255,.35);color:#fff}
.btn--ghost:hover{background:rgba(255,255,255,.1);color:#fff}
.btn--tan{background:var(--tan);color:#fff}
.btn--tan:hover{background:#6f4724;color:#fff}

/* ===============================================================
   HUB SECTIONS
   =============================================================== */
.schg-hub{max-width:var(--wide);margin:0 auto;padding:0 1.5rem 4rem}
.schg-sec{margin:3.4rem 0 0}
.schg-sec__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  border-bottom:2px solid var(--green);padding-bottom:.55rem;margin-bottom:1.2rem}
.schg-sec__h{font-size:1.28rem;letter-spacing:.01em}
.schg-sec__more{font-family:var(--display);font-size:.76rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;white-space:nowrap;text-decoration:none;color:var(--tan)}
.schg-sec__more:hover{text-decoration:underline}
.schg-sec__sub{color:var(--ink-2);font-size:.97rem;margin:-.5rem 0 1.2rem;max-width:58ch}

.schg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:1.9rem}
.schg-latest{display:grid;grid-template-columns:1.5fr 1fr;gap:2.4rem;align-items:start}
.schg-latest__side{display:flex;flex-direction:column;gap:1.15rem}

/* Cards */
.schg-card__link{display:block;text-decoration:none;color:inherit}
.schg-card__media{position:relative;overflow:hidden;border-radius:8px;background:var(--line-soft);aspect-ratio:16/9}
.schg-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.schg-card__link:hover .schg-card__media img{transform:scale(1.04)}
.schg-card__play{position:absolute;left:.75rem;bottom:.75rem;width:2.1rem;height:2.1rem;border-radius:50%;
  background:rgba(50,64,58,.82)}
.schg-card__play::after{content:"";position:absolute;top:50%;left:54%;transform:translate(-50%,-50%);
  border-style:solid;border-width:.36rem 0 .36rem .6rem;border-color:transparent transparent transparent var(--gold)}
.schg-card__cat{display:block;font-family:var(--display);font-size:.68rem;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--tan);margin:.8rem 0 .32rem}
.schg-card__title{font-size:1.14rem;line-height:1.24}
.schg-card__link:hover .schg-card__title{color:var(--green)}
.schg-card__dek{font-size:.93rem;color:var(--ink-2);margin:.45rem 0 0;line-height:1.55}
.schg-card__meta{display:block;font-size:.76rem;color:var(--ink-3);margin-top:.6rem;font-variant-numeric:tabular-nums}
.schg-card--lead .schg-card__title{font-size:1.85rem}
.schg-card--lead .schg-card__dek{font-size:1.02rem}
.schg-card--row{border-bottom:1px solid var(--line-soft);padding-bottom:1.15rem}
.schg-card--row:last-child{border-bottom:0;padding-bottom:0}
.schg-card--row .schg-card__link{display:grid;grid-template-columns:96px 1fr;gap:.95rem;align-items:start}
.schg-card--row .schg-card__media{aspect-ratio:1/1;border-radius:6px}
.schg-card--row .schg-card__play{display:none}
.schg-card--row .schg-card__cat{margin-top:0}
.schg-card--row .schg-card__title{font-size:1rem;line-height:1.28}
.schg-card--row .schg-card__meta{margin-top:.35rem}

/* Place index */
.schg-places{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.55rem}
.schg-places a{display:inline-flex;align-items:center;gap:.5rem;background:var(--surface);
  border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;text-decoration:none;
  color:var(--ink);font-size:.9rem;font-weight:600;font-family:var(--display);
  transition:border-color .15s ease,background .15s ease,color .15s ease}
.schg-places a:hover{border-color:var(--green);background:var(--sage);color:var(--green-dark)}
.schg-places .p-count{font-size:.72rem;color:var(--ink-3);font-weight:400;font-variant-numeric:tabular-nums}

/* ===============================================================
   THE ONE CTA
   Single conversion path on the whole site. Dark green card, gold
   button, per the TLG blog CTA standard. Never two on a page.
   =============================================================== */
.schg-cta{background:var(--green-dark);border-radius:12px;padding:2.2rem 2.4rem;
  margin:3rem auto;max-width:var(--measure);color:#fff}
.schg-cta--wide{max-width:var(--wide)}
.schg-cta__eyebrow{font-family:var(--display);font-size:.7rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);margin:0 0 .6rem}
.schg-cta h2{font-family:var(--serif);font-weight:400;font-size:1.6rem;color:#fff;letter-spacing:0;margin:0}
.schg-cta p{color:rgba(255,255,255,.8);margin:.7rem 0 0;max-width:48ch;font-size:1rem}
.schg-cta .btn{margin-top:1.4rem}

/* ===============================================================
   ARTICLE
   =============================================================== */
.schg-article{max-width:var(--wide);margin:0 auto;padding:0 1.5rem 4rem}
.schg-eyebrow{display:block;font-family:var(--display);font-size:.72rem;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--tan);margin-bottom:.8rem}
.schg-eyebrow a{color:inherit;text-decoration:none}
.entry-header,.schg-article > .entry-header{max-width:var(--measure);margin:2.4rem auto 1.5rem}
.entry-title{font-size:2.7rem;letter-spacing:-.022em;margin:0 0 .6rem}
.schg-byline{display:flex;flex-wrap:wrap;gap:.4rem .7rem;align-items:baseline;font-size:.9rem;
  color:var(--ink-2);padding-top:.9rem;border-top:1px solid var(--line)}
.schg-byline b{font-weight:700;color:var(--ink)}
.schg-byline .sep{color:var(--ink-3)}
.schg-updated{color:var(--ink-3)}

.entry-content > *{max-width:var(--measure);margin-left:auto;margin-right:auto}
.entry-content > figure,.entry-content > .wp-block-table,
.entry-content > .wp-block-embed,.entry-content > .schg-cta--wide{max-width:var(--wide)}
.entry-content > ul,.entry-content > ol,.entry-content > .wp-block-list{
  max-width:var(--measure);margin-left:auto;margin-right:auto;padding-left:1.35rem}
.entry-content h2{font-size:1.72rem;margin:2.5em 0 .5em}
.entry-content h3{font-size:1.22rem;margin:1.9em 0 .4em}
.entry-content p{margin:0 0 1.15em}
.entry-content li{margin:.35em 0}
.entry-content li > ul,.entry-content li > ol{margin:.35rem 0;padding-left:1.15rem}

.wp-block-embed__wrapper{position:relative;padding-top:56.25%}
.wp-block-embed__wrapper iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:8px}
.wp-element-caption,.wp-block-embed figcaption{font-size:.85rem;color:var(--ink-3);
  text-align:left;margin-top:.6rem;line-height:1.45}
.entry-content img{border-radius:8px}

/* Tables authored bare and semantic, styled once, no class required */
.entry-content .wp-block-table{overflow-x:auto}
.entry-content table{border-collapse:collapse;width:100%;background:var(--surface);
  font-size:.93rem;border:1px solid var(--line);border-radius:8px;margin:1.9rem auto}
.entry-content caption{caption-side:top;text-align:left;font-family:var(--display);font-size:.75rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:0 0 .55rem;font-weight:700}
.entry-content th{text-align:left;font-family:var(--display);font-size:.74rem;letter-spacing:.09em;
  text-transform:uppercase;color:#fff;font-weight:700;padding:.7rem .9rem;background:var(--green)}
.entry-content td{padding:.72rem .9rem;border-bottom:1px solid var(--line-soft);vertical-align:top}
.entry-content tbody tr:last-child td{border-bottom:0}
.entry-content tbody tr:nth-child(even){background:var(--sage)}
.entry-content td:not(:first-child){font-variant-numeric:tabular-nums}

.entry-content blockquote{border-left:4px solid var(--gold);background:var(--sage);
  margin:1.9rem auto;padding:1.1rem 1.4rem;border-radius:0 8px 8px 0;font-family:var(--serif);font-size:1.06rem}
.entry-content blockquote p:last-child{margin-bottom:0}

/* Quick Answer: the AEO block */
.schg-quick-answer{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--gold);
  border-radius:0 10px 10px 0;padding:1.3rem 1.5rem;margin:2rem auto;max-width:var(--measure)}
.schg-quick-answer > p:first-child,.schg-quick-answer__label{font-family:var(--display);font-size:.72rem;
  letter-spacing:.15em;text-transform:uppercase;color:var(--tan);font-weight:700;margin:0 0 .6rem}
.schg-quick-answer p:last-child{margin-bottom:0}

/* After the article */
.schg-author{max-width:var(--measure);margin:3rem auto 0;padding:1.5rem 1.7rem;background:var(--sage);
  border:1px solid var(--line);border-radius:10px}
.schg-author h2{font-family:var(--display);font-size:1.02rem;font-weight:700;margin:0 0 .45rem}
.schg-author p{font-size:.94rem;color:var(--ink-2);margin:0 0 .5rem;line-height:1.55}
.schg-author p:last-child{margin-bottom:0}
.schg-related{max-width:var(--wide);margin:3rem auto 0;padding-top:1.7rem;border-top:2px solid var(--green)}
.schg-related h2{font-family:var(--display);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 1.2rem}
.schg-related ul{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem}
.schg-related a{display:block;background:var(--surface);border:1px solid var(--line);border-radius:8px;
  padding:1.1rem 1.2rem;text-decoration:none;color:var(--ink);height:100%;transition:border-color .15s ease}
.schg-related a:hover{border-color:var(--green)}
.schg-related .r-cat{display:block;font-family:var(--display);font-size:.66rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--tan);font-weight:700;margin-bottom:.4rem}
.schg-related .r-title{font-family:var(--display);font-weight:700;font-size:1rem;line-height:1.28;display:block}

/* ===============================================================
   ARCHIVES + FOOTER
   =============================================================== */
.schg-archive-head{padding:2.6rem 0 1.7rem;border-bottom:2px solid var(--green);margin-bottom:1.6rem}
.schg-archive-head h1{font-size:2.6rem;margin:0 0 .5rem}
.schg-archive-dek{font-size:1.05rem;color:var(--ink-2);max-width:58ch;margin:0}
.schg-archive-count{font-family:var(--display);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin:.9rem 0 0;font-weight:700}
.schg-pagination{margin-top:2.5rem}

.schg-foot{background:var(--green-dark);color:rgba(255,255,255,.78);margin-top:4rem}
.schg-foot__in{max-width:var(--wide);margin:0 auto;padding:3rem 1.5rem 2rem;
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem}
.schg-foot h3{font-family:var(--display);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);margin:0 0 .9rem}
.schg-foot a{color:rgba(255,255,255,.82);text-decoration:none}
.schg-foot a:hover{color:var(--gold)}
.schg-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;font-size:.92rem}
.schg-foot .schg-logo{color:#fff;height:40px;margin-bottom:1rem}
.schg-foot__entity{font-size:.9rem;line-height:1.6;max-width:44ch}
.schg-foot__base{border-top:1px solid rgba(255,255,255,.14);margin-top:2rem;padding-top:1.2rem;
  font-size:.82rem;color:rgba(255,255,255,.55)}

@media (max-width:900px){
  .schg-hero__in{grid-template-columns:1fr;gap:2rem;padding:2.4rem 1.5rem 2.8rem}
  .schg-hero h1{font-size:2.15rem}
  .schg-latest{grid-template-columns:1fr;gap:1.8rem}
  .schg-foot__in{grid-template-columns:1fr;gap:2rem}
  .entry-title{font-size:2rem}
  .schg-head__in{flex-wrap:wrap;gap:1rem}
  .schg-search{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===============================================================
   CONTAINER OVERRIDES
   GeneratePress makes .site-content a flexbox for its sidebar layout.
   This site has no sidebar, and as a flex child the hero collapsed to
   291px with the hub sitting beside it. Force block flow, drop the
   container padding (our own sections carry it), and let the hero and
   footer break the 1200px shell to full bleed.
   =============================================================== */
/* GP ships dynamic CSS at `.separate-containers .site-content`, which
   outranks a bare `.site-content` and left a 40px band above the hero. */
.site-content,
.separate-containers .site-content,
.one-container .site-content{display:block;padding:0}
.site-main{margin:0}
.schg-hero,
.schg-foot{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.schg-article,.schg-hub{padding-left:1.5rem;padding-right:1.5rem}
.separate-containers .site-main > *{margin-bottom:0}
.schg-logo__word{font-size:25px}

/* ===============================================================
   QA FIXES
   =============================================================== */
/* Only one breakpoint existed (900px). Nothing handled 320-500px. */
@media (max-width:600px){
  body{font-size:17px}
  .schg-hub,.schg-article{padding-left:1.1rem;padding-right:1.1rem}
  .schg-grid{grid-template-columns:1fr;gap:1.5rem}
  .schg-hero h1{font-size:1.75rem}
  .schg-hero__stats{gap:1.4rem}
  .schg-hero__stat b{font-size:1.35rem}
  .schg-card--lead .schg-card__title{font-size:1.4rem}
  .schg-card--row .schg-card__link{grid-template-columns:74px 1fr;gap:.75rem}
  .entry-title{font-size:1.65rem}
  .entry-content h2{font-size:1.35rem}
  .schg-cta{padding:1.5rem 1.4rem}
  .schg-cta h2{font-size:1.3rem}
  .schg-related ul{grid-template-columns:1fr}
  .schg-topbar__in{font-size:.72rem;gap:.6rem}
  .schg-head__in{padding:.9rem 1.1rem}
  .schg-logo{height:36px}
}
/* Search was display:none below 900px, removing site search on mobile entirely. */
@media (max-width:900px){
  .schg-search{display:block;width:100%;max-width:none}
  .schg-head__search{flex:1 1 100%;order:3}
}
/* A --green outline is near invisible on the --green-dark hero and footer. */
.schg-hero :focus-visible,
.schg-foot :focus-visible,
.schg-cta :focus-visible,
.schg-topbar :focus-visible{outline:2px solid var(--gold);outline-offset:3px}
