/* Southern Gazette — crisp editorial front page */
:root{--sg-paper:#f2f5ec;--sg-ink:#111713;--sg-muted:#707b79;--sg-green:#2f7c3b;--sg-rule:#cfd6cd}
html{background:var(--sg-paper)}
body{background:var(--sg-paper);color:var(--sg-ink);font-family:Georgia,"Times New Roman",serif}
.site-shell{width:min(1104px,calc(100% - 36px));margin:10px auto;background:transparent;border:0;box-shadow:none}
.utility{height:31px;display:flex;align-items:center;gap:18px;border-top:1px solid var(--sg-rule);color:var(--sg-muted);font:500 11px/1 Arial,sans-serif}
.utility time{color:#44504e}.utility-links{margin-left:auto;display:flex;gap:14px}.utility a{color:inherit;text-decoration:none}
.masthead{height:146px;background:transparent;border:0;border-bottom:3px double #46514d;overflow:visible}
.brand{display:grid;grid-template-columns:auto auto;align-items:baseline;justify-content:center;column-gap:.24em;color:#151a17;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.85rem,5vw,4.35rem);font-weight:400;line-height:1;letter-spacing:-.035em}
.brand .the{font-size:.42em;color:#38423e;font-weight:400;font-style:italic;margin:0;letter-spacing:0}
.brand small{grid-column:1/-1;margin-top:.9rem;color:#59635f;font:400 12px/1.25 Georgia,"Times New Roman",serif;letter-spacing:.045em;text-transform:none}
.magnolia{display:none}
.nav{min-height:51px;background:transparent;border-bottom:1px solid var(--sg-rule);justify-content:center;align-items:center;gap:0}
.nav a{color:#596563;padding:18px 15px 16px;font:700 13px/1 Arial,sans-serif;letter-spacing:0;text-transform:uppercase}
.nav a:hover,.nav a:focus{background:transparent;color:var(--sg-green)}
.page{padding:0 0 30px}
.news-line{height:50px;display:flex;align-items:center;gap:12px;overflow:hidden;white-space:nowrap;border-bottom:0;color:#26302e;font:400 12px/1 Arial,sans-serif}
.news-line strong{color:#626c6a;text-transform:uppercase;font-size:12px}.news-line span{color:#dc542f;font-weight:700}.news-line a{color:#252c2a;text-decoration:none;overflow:hidden;text-overflow:ellipsis}
.edition-rule{display:none}
.lead-grid{display:grid;grid-template-columns:247px minmax(0,532px) 266px;gap:20px;align-items:start}
.lead-side{display:grid;gap:22px;border-right:1px solid var(--sg-rule);padding-right:20px}
.slider{height:auto;min-height:0;background:transparent;border:0;overflow:visible;position:relative}
.slide{position:absolute;inset:0;display:none;grid-template-rows:auto auto;opacity:0}.slide.active{position:relative;display:grid;opacity:1}
.slide-image{display:block;width:100%;aspect-ratio:532/355;overflow:hidden;background:#d9ddd4}.slide img{width:100%;height:100%;object-fit:cover}
.slide-copy{padding:10px 4px 0;text-align:center;background:transparent}
.slide .kicker{display:block;color:var(--sg-green);margin-top:10px;font:700 12px/1 Arial,sans-serif;letter-spacing:0}
.slide h1{margin:0 auto;font-size:clamp(2rem,3.1vw,2.55rem);line-height:.98;letter-spacing:-.025em;color:#0c100d;font-weight:500;max-width:520px}
.slide h1 a{color:inherit;text-decoration:none}
.slide p{margin:28px auto 0;padding:0 12px;color:var(--sg-muted);font:400 13.5px/1.35 Arial,sans-serif;max-width:500px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.slide-prev,.slide-next{top:158px;width:31px;height:40px;background:#202b2788;font-size:1.35rem}.slide-dots{top:335px;right:10px;bottom:auto}.slide-dots button{width:8px;height:8px;background:#fff8}
.side-card{background:transparent;border:0;border-bottom:1px solid var(--sg-rule);box-shadow:none;padding-bottom:22px}
.side-card .story-image{aspect-ratio:247/145}.side-card .story-copy{padding:9px 0 0}
.side-card .kicker{color:var(--sg-green);font:700 12px/1 Arial,sans-serif;letter-spacing:0}
.side-card .story-copy h3{margin:5px 0 9px;color:#151a17;font-size:19px;line-height:1.05;font-weight:500}
.side-card .story-copy p{display:none}.side-card time{color:var(--sg-muted);font:500 11px/1.2 Arial,sans-serif;text-transform:uppercase}
.latest{min-height:0;padding:0 0 0 0;background:transparent;border:0}
.latest h2{height:0;overflow:hidden;margin:0;padding:0;border:0}
.latest>a{position:relative;display:block;min-height:122px;padding:3px 93px 18px 0;border-bottom:1px solid var(--sg-rule);color:#111713;text-decoration:none;font-weight:400}
.latest>a+a{padding-top:26px;min-height:148px}
.latest a span{display:block;margin-bottom:5px;color:var(--sg-green);font:700 12px/1 Arial,sans-serif;text-transform:uppercase}
.latest a b{display:block;font-size:19px;line-height:1.03;font-weight:500}
.latest a time{display:block;margin-top:12px;color:var(--sg-muted);font:500 11px/1.1 Arial,sans-serif;text-transform:uppercase}
.latest a img{position:absolute;right:0;top:3px;width:89px;height:89px;object-fit:cover;background:#dde2d8}.latest a+a img{top:26px}
.small-features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0 0;padding-top:24px;border-top:1px solid var(--sg-rule);border-bottom:1px solid var(--sg-rule)}
.story-card{background:transparent;border:0;border-bottom:1px solid var(--sg-rule);box-shadow:none}
.story-image{background:#dfe4da}.story-card:hover img{transform:none}
.story-copy{padding:9px 0 18px}.story-copy .kicker{color:var(--sg-green);font:700 11px/1 Arial,sans-serif;letter-spacing:0}.story-copy h3,.small-card .story-copy h3{font-size:19px;line-height:1.08;font-weight:500;margin:5px 0}.story-copy a{color:#111713}.story-copy p{color:var(--sg-muted);font:400 13px/1.35 Arial,sans-serif}.story-copy time{color:var(--sg-muted);font:500 11px/1 Arial,sans-serif;text-transform:uppercase}
.section-heading{margin-top:30px;border-bottom:1px solid #27322f}.section-heading h2{font-size:24px;font-weight:500;color:#111713}.section-heading a{color:var(--sg-green);font:600 12px Arial,sans-serif}
.latest-grid{gap:20px}.article,.archive-head{background:transparent;box-shadow:none}
footer{background:transparent;color:#596563;border-top:1px solid #27322f;font:500 12px Arial,sans-serif}footer a{color:var(--sg-green)}
.news-ticker{height:50px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border-bottom:1px solid var(--sg-rule);font-family:Arial,sans-serif}.news-ticker>strong{color:#626c6a;font-size:12px;text-transform:uppercase}.ticker-items{position:relative;height:18px;overflow:hidden}.ticker-item{position:absolute;inset:0;display:flex;align-items:center;gap:14px;opacity:0;transform:translateY(8px);pointer-events:none;text-decoration:none;transition:opacity .25s ease,transform .25s ease}.ticker-item.active{opacity:1;transform:none;pointer-events:auto}.ticker-item span{color:var(--sg-green);font-size:12px;font-weight:700;white-space:nowrap}.ticker-item b{color:#252c2a;font-size:12px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticker-controls{display:flex;gap:2px}.ticker-controls button{width:30px;height:30px;border:0;background:transparent;color:#7b8582;font-size:17px;cursor:pointer}.ticker-controls button:hover,.ticker-controls button:focus{color:var(--sg-green)}
.story-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}.agency-link{color:var(--sg-green)!important;font:600 11px/1.2 Arial,sans-serif;text-decoration:none}.agency-link:hover{text-decoration:underline}.breadcrumb{display:flex;gap:10px;margin:19px 0 0;color:#707b79;font:12px Arial,sans-serif}.breadcrumb a{color:var(--sg-green);text-decoration:none}.section-title{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin:17px 0 20px}.section-title span{height:1px;background:var(--sg-rule)}.section-title h1{margin:0;color:#4e5b58;font-size:36px;font-weight:500}.section-lead-grid{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(280px,1fr);gap:64px}.section-lead-image{display:block;aspect-ratio:1.42/1;overflow:hidden;background:#dfe4da}.section-lead-image img{width:100%;height:100%;object-fit:cover}.section-lead h2{margin:10px 0 8px;font-size:42px;line-height:1.02;font-weight:500;letter-spacing:-.02em}.section-lead h2 a{color:inherit;text-decoration:none}.section-lead>p{color:#5f6966;font:15px/1.45 Arial,sans-serif}.lead-source{display:inline-block;margin-top:6px;font-size:12px}.section-updates{background:#f8faf5;padding:30px 24px}.section-updates>h2{margin:0 0 22px;text-align:center;color:#46534f;font-size:29px;font-weight:500}.section-updates article{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--sg-rule)}.section-updates article>div>a:first-child{display:block;color:#151a17;font-size:18px;line-height:1.08;text-decoration:none}.section-updates img{width:100px;height:66px;object-fit:cover}.section-updates .agency-link{display:block;margin-top:8px}
@media(max-width:850px){.section-lead-grid{gap:25px;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr)}.section-lead h2{font-size:34px}.section-updates{padding:22px 16px}.section-updates article{grid-template-columns:minmax(0,1fr) 78px}.section-updates img{width:78px;height:58px}}
@media(max-width:1100px){.lead-grid{grid-template-columns:minmax(190px,.72fr) minmax(0,1.6fr) minmax(210px,.78fr)}.nav a{padding-left:10px;padding-right:10px}}
@media(max-width:850px){.lead-grid{grid-template-columns:minmax(190px,.7fr) minmax(0,1.55fr)}.latest{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.latest>a{padding-right:93px}.masthead{height:132px}}
@media(max-width:580px){.site-shell{width:100%;margin:0}.utility{padding:0 10px}.utility>span:first-child{display:none}.masthead{height:116px}.brand{font-size:2.35rem;column-gap:.18em}.brand small{font-size:10px;letter-spacing:.02em;margin-top:.65rem}.nav{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.nav a{white-space:nowrap}.page{padding:0 10px}.news-line{height:42px}.lead-grid{display:flex;flex-direction:column}.slider{order:1;width:100%}.slide h1{font-size:2rem}.slide p{margin-top:16px}.lead-side{order:2;grid-template-columns:1fr 1fr;border-right:0;padding-right:0}.latest{order:3;display:block}.small-features,.story-grid{grid-template-columns:1fr 1fr}.story-card{display:block}.story-image{height:auto;aspect-ratio:16/9}.story-copy p{display:none}}
@media(max-width:580px){.news-ticker{grid-template-columns:auto minmax(0,1fr);height:44px;gap:9px}.ticker-controls{display:none}.ticker-item span{display:none}.section-title{gap:13px}.section-title h1{font-size:29px}.section-lead-grid{display:block}.section-lead h2{font-size:31px}.section-updates{margin-top:28px}.section-updates article{grid-template-columns:minmax(0,1fr) 88px}.section-updates img{width:88px;height:60px}}

/* =========================================================
   SOUTHERN GAZETTE MASTHEAD REFINEMENT
   ========================================================= */

.masthead .brand {
  column-gap: .12em;
  font-size: clamp(3rem, 5vw, 4.55rem);
  letter-spacing: -.045em;
}

.masthead .brand .the {
  font-size: .55em;
  font-style: italic;
  letter-spacing: -.025em;
  transform: translateY(-.03em);
}

.masthead .brand small {
  margin-top: .8rem;
  letter-spacing: .065em;
}


/* Masthead experiment — Anglican "The" only */
@font-face {
  font-family: "AnglicanText";
  src: url("../fonts/anglicantext-owzo-webfont.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
}

.masthead .brand .the {
  font-family: "AnglicanText", Georgia, serif;
  font-style: normal;
}

/* Masthead experiment — full Anglican nameplate */
.masthead .brand {
  font-family: "AnglicanText", Georgia, serif;
  letter-spacing: 0;
}


/* Masthead — restrained final direction */
.masthead .brand {
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
}

/* =========================================================
   SOUTHERN GAZETTE ILLUSTRATED MASTHEAD — FIRST COMPOSITION
   ========================================================= */

@font-face {
  font-family: "CormorantUpright";
  src: url("../fonts/cormorant-upright-regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}

.masthead {
  height: 170px;
  position: relative;
  overflow: hidden;
  background: #f5f6ed;
  isolation: isolate;
}

/* Living South — foreground magnolia */
.masthead-magnolia {
  position: absolute;
  z-index: 3;
  left: -35px;
  bottom: -28px;
  width: 330px;
  height: auto;
  opacity: .72;
  pointer-events: none;
}

/* Southern past — faded ruins */
.masthead-ruins {
  position: absolute;
  z-index: 1;
  right: -20px;
  bottom: -70px;
  width: 470px;
  height: auto;
  opacity: .22;
  pointer-events: none;
}

/* Real text remains above the artwork */
.masthead .brand {
  position: relative;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(760px, 70%);
  height: 100%;
  margin: 0 auto;
  color: #171b19;
  text-decoration: none;
  font-family: "CormorantUpright", Georgia, serif;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
}

.masthead .masthead-creed {
  display: block;
  margin: 0 0 .55rem;
  color: #9a7635;
  font: 600 10px/1.2 Georgia, serif;
  letter-spacing: .20em;
  text-transform: uppercase;
}

.masthead .masthead-name {
  display: block;
  font-family: "CormorantUpright", Georgia, serif;
  font-size: clamp(3.2rem, 5.3vw, 4.65rem);
  font-weight: 400;
  line-height: .95;
  white-space: nowrap;
}

.masthead .masthead-ornament {
  display: flex;
  align-items: center;
  width: 70%;
  margin-top: .65rem;
  color: #aa8439;
  font-size: 8px;
}

.masthead .masthead-ornament::before,
.masthead .masthead-ornament::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #b58c3e;
}

.masthead .masthead-ornament::before {
  margin-right: 8px;
}

.masthead .masthead-ornament::after {
  margin-left: 8px;
}

@media (max-width: 850px) {
  .masthead-magnolia {
    width: 250px;
    opacity: .55;
  }

  .masthead-ruins {
    width: 360px;
    opacity: .16;
  }

  .masthead .brand {
    width: 78%;
  }
}

@media (max-width: 580px) {
  .masthead {
    height: 125px;
  }

  .masthead-magnolia {
    width: 175px;
    left: -55px;
  }

  .masthead-ruins {
    width: 240px;
    right: -70px;
  }

  .masthead .brand {
    width: 90%;
  }

  .masthead .masthead-name {
    font-size: 2.5rem;
  }

  .masthead .masthead-creed {
    font-size: 8px;
    letter-spacing: .12em;
  }
}

/* Masthead refinement 3 — softened Southern memory */
.masthead-ruins {
  width: 650px;
  right: -10px;
  bottom: -92px;
  opacity: .36;
}

/* Masthead refinement 4 — dissolve memory into background */
.masthead-ruins {
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    rgba(0,0,0,.15) 10%,
    rgba(0,0,0,.65) 24%,
    black 38%,
    black 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    rgba(0,0,0,.15) 10%,
    rgba(0,0,0,.65) 24%,
    black 38%,
    black 100%
  );
}

/* =========================================================
   SECOND-TIER FEATURE ROW — compact newspaper treatment
   ========================================================= */

.small-features {
  gap: 24px;
  margin-top: 22px;
  padding-top: 20px;
  padding-bottom: 18px;
}

.small-features .story-image {
  display: block;
  aspect-ratio: 16 / 7;
  overflow: hidden;
}

.small-features .story-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.small-features .story-copy {
  padding: 10px 0 12px;
}

.small-features .story-copy h3 {
  margin: 5px 0 7px;
  font-size: 20px;
  line-height: 1.05;
}

.small-features .story-summary {
  color: var(--sg-muted);
  font: 400 12.5px/1.35 Arial, sans-serif;
}

.small-features .story-meta {
  margin-top: 9px;
}

/* =========================================================
   LATEST STORIES — compact two-column newspaper digest
   ========================================================= */

.latest-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
  margin-top: 14px;
}

.latest-grid .story-card {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 0 0 18px;
  margin-bottom: 18px;
}

.latest-grid .story-image {
  display: block;
  width: 145px;
  height: 96px;
  aspect-ratio: auto;
  overflow: hidden;
}

.latest-grid .story-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.latest-grid .story-copy {
  padding: 0;
}

.latest-grid .story-copy .kicker {
  margin-bottom: 4px;
}

.latest-grid .story-copy h3 {
  margin: 0 0 6px;
  font-size: 18px;
  line-height: 1.05;
}

.latest-grid .story-summary {
  color: var(--sg-muted);
  font: 400 12px/1.3 Arial, sans-serif;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.latest-grid .story-summary p {
  margin: 0;
}

.latest-grid .story-meta {
  margin-top: 7px;
  gap: 7px 12px;
}

@media (max-width: 850px) {
  .latest-grid {
    grid-template-columns: 1fr;
  }
}

/* Front page — tighten transition from Latest Stories to footer */
.page + .gazette-footer {
  margin-top: 1.25rem;
}

/* Story has an attached X post / video */
.x-marker {
  display: inline-block;
  margin-left: 7px;
  padding: 2px 5px 1px;
  border: 1px solid #69736f;
  color: #343c39;
  font: 700 9px/1 Arial, sans-serif;
  letter-spacing: .08em;
  vertical-align: 1px;
}

/* =========================================================
   ARCHIVE — permanent newspaper index
   ========================================================= */

.archive-index-head {
  max-width: 820px;
  margin: 0 auto;
  padding-bottom: 22px;
}

.archive-filter {
  margin: 24px auto 0;
  text-align: left;
}

.archive-search-box {
  max-width: 650px;
  margin: 0 auto 14px;
}

.archive-search-box > label {
  display: block;
  margin-bottom: 6px;
  color: var(--navy);
  font: 700 11px/1.2 Arial, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.archive-search-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px;
}

.archive-search-row input,
.archive-selects select {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid #b9b7ab;
  background: #fff;
  color: var(--navy);
  font: 14px/1.2 Arial, sans-serif;
}

.archive-search-row input {
  padding: 10px 12px;
}

.archive-search-row button,
.archive-apply {
  border: 1px solid var(--navy);
  background: var(--navy);
  color: #fff;
  padding: 8px 16px;
  font: 700 11px/1 Arial, sans-serif;
  letter-spacing: .04em;
  cursor: pointer;
}

.archive-selects {
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 12px;
}

.archive-selects label {
  min-width: 180px;
}

.archive-selects label > span {
  display: block;
  margin-bottom: 4px;
  color: var(--sg-muted);
  font: 700 10px/1.2 Arial, sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.archive-selects select {
  padding: 8px 10px;
}

.archive-clear {
  align-self: center;
  margin-top: 16px;
  color: var(--green);
  font: 700 11px/1 Arial, sans-serif;
  text-decoration: none;
}

.archive-index {
  margin: 8px 0 28px;
  border-top: 1px solid #9b998e;
}

.archive-month {
  margin: 0;
  padding: 18px 0 8px;
  border-bottom: 2px solid var(--navy);
  color: var(--navy);
  font: 700 18px/1.1 Georgia, serif;
  letter-spacing: .06em;
}

.archive-month-list {
  margin-bottom: 10px;
}

.archive-entry {
  display: grid;
  grid-template-columns: 72px 90px minmax(0, 1fr) 145px;
  gap: 12px;
  align-items: baseline;
  padding: 10px 4px;
  border-bottom: 1px solid #d4d1c5;
}

.archive-entry time {
  color: var(--sg-muted);
  font: 700 10px/1.2 Arial, sans-serif;
  letter-spacing: .04em;
}

.archive-section {
  color: var(--green);
  font: 700 10px/1.2 Arial, sans-serif;
  text-transform: uppercase;
}

.archive-entry h3 {
  margin: 0;
  font: 400 17px/1.12 Georgia, serif;
}

.archive-entry h3 a {
  color: var(--navy);
  text-decoration: none;
}

.archive-entry h3 a:hover {
  text-decoration: underline;
}

.archive-source {
  color: var(--green);
  font: 700 10px/1.2 Arial, sans-serif;
  text-decoration: none;
  text-align: right;
}

@media (max-width: 760px) {
  .archive-selects {
    align-items: stretch;
    flex-direction: column;
  }

  .archive-selects label {
    min-width: 0;
  }

  .archive-entry {
    grid-template-columns: 65px 80px minmax(0, 1fr);
  }

  .archive-source {
    grid-column: 3;
    text-align: left;
  }
}

/* Section pages — keep lead photograph prominent without swallowing the page */
.section-lead-image {
  aspect-ratio: 16 / 9;
}

/* Story pages — close excess space between article and footer */
.page:has(> .article) {
  padding-bottom: 0;
}

.page:has(> .article) + .gazette-footer {
  margin-top: .75rem;
}
