
/* GP News Guide – design system */
:root{
  --radius: 6px;
  --radius2: 4px;
  --pad: 18px;
  --max: 1140px;
  --font-serif: "Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,"Times New Roman",serif;
  --font-sans: "Segoe UI",Tahoma,Arial,sans-serif;
  --paper: var(--bg);
  --paper2: var(--surface);
  --ink: var(--text);
  --ink-muted: var(--muted);
  --rule: var(--line);
  --rule-strong: var(--line);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:17px/1.65 var(--font-serif);
}
body.gpng-style-newspaper{
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,0) 30%),
    repeating-linear-gradient(90deg, rgba(0,0,0,.018) 0 1px, rgba(0,0,0,0) 1px 3px);
}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
.gpng-wrap{min-height:100vh;display:flex;flex-direction:column}
.gpng-container{width:min(var(--max), calc(100% - 32px));margin:0 auto}
.gpng-style-newspaper{
  --paper: #f7f4ee;
  --paper2: #ffffff;
  --ink: #14110c;
  --ink-muted: #5f584d;
  --rule: #d6cfc0;
  --rule-strong: #bfb6a6;
  --radius: 6px;
  --radius2: 4px;
}
.gpng-style-modern{
  --paper: var(--bg);
  --paper2: var(--surface);
  --ink: var(--text);
  --ink-muted: var(--muted);
  --rule: var(--line);
  --rule-strong: var(--line);
  --radius: 18px;
  --radius2: 14px;
}
.gpng-style-minimal{
  --paper: #ffffff;
  --paper2: #ffffff;
  --ink: #14110c;
  --ink-muted: #5c5c5c;
  --rule: #e6e6e6;
  --rule-strong: #d8d8d8;
  --radius: 0px;
  --radius2: 0px;
}
.gpng-header{
  background:var(--paper);
  border-top:2px solid var(--rule-strong);
  border-bottom:3px double var(--rule);
}
.gpng-masthead{
  display:grid;
  gap:6px;
  justify-items:center;
  text-align:center;
  padding:18px 0 10px;
}
.gpng-masthead__date{
  font:12px/1.2 var(--font-sans);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink-muted);
}
.gpng-masthead__tagline{
  font:13px/1.3 var(--font-sans);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink-muted);
}
.gpng-logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:clamp(30px,5vw,60px);
  letter-spacing:-.02em;
}
.gpng-logo__text{
  text-transform:uppercase;
  font-family:var(--font-serif);
}
.gpng-logo__img{height:48px;width:auto}
.gpng-navrow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-top:1px solid var(--rule);
  padding:10px 0 12px;
}
.gpng-nav{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  font:12px/1.2 var(--font-sans);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.gpng-nav a{padding:6px 8px;color:var(--ink);font-weight:700}
.gpng-nav a:hover{text-decoration:none;color:var(--brand)}
.gpng-search{display:flex;align-items:center;gap:10px}
.gpng-search form{position:relative}
.gpng-search input[type="search"]{
  width:200px;
  max-width:45vw;
  border:0;
  border-bottom:1px solid var(--rule);
  padding:8px 2px;
  background:transparent;
  font:12px/1.2 var(--font-sans);
  letter-spacing:.06em;
  text-transform:uppercase;
}
.gpng-search button{display:none}
.gpng-main{flex:1}
.gpng-section{padding:26px 0}
.gpng-section + .gpng-section{border-top:1px solid var(--rule)}
.gpng-section__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
  padding-bottom:8px;
  border-bottom:1px solid var(--rule);
}
.gpng-h2{
  font-size:26px;
  line-height:1.1;
  margin:0;
  letter-spacing:-.02em;
  font-family:var(--font-serif);
}
.gpng-sub{
  margin:0;
  color:var(--ink-muted);
  font-size:12px;
  font-family:var(--font-sans);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.gpng-card{
  background:var(--surface);
  border:1px solid var(--rule);
  border-radius:var(--radius2);
  box-shadow:none;
  overflow:hidden;
}
.gpng-card--flat{box-shadow:none}
.gpng-media{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:#e9edf3}
.gpng-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.gpng-card:hover .gpng-media img{transform:scale(1.03)}
.gpng-card--overlay .gpng-media{aspect-ratio:4/3}
.gpng-media__shade{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.55) 100%);opacity:.9;pointer-events:none}
.gpng-media__title{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  color:#fff;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.15;
  font-size:clamp(14px,1.2vw,16px);
  text-shadow:0 6px 24px rgba(0,0,0,.35);
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  font-family:var(--font-serif);
}
.gpng-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid var(--rule);
  background:#fff;
  color:var(--ink);
  font-size:11px;
  font-family:var(--font-sans);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.gpng-meta{
  color:var(--ink-muted);
  font-size:12px;
  font-family:var(--font-sans);
  letter-spacing:.04em;
}
.gpng-title{
  margin:0;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.15;
  font-family:var(--font-serif);
}
.gpng-title--xl{font-size:46px}
.gpng-title--lg{font-size:30px}
.gpng-title--md{font-size:20px}
.gpng-excerpt{margin:10px 0 0;color:var(--ink-muted)}
.gpng-pad{padding:18px}
.gpng-hero{display:grid;grid-template-columns: 2.1fr 1fr;gap:18px}
.gpng-headlines{
  background:transparent;
  border:1px solid var(--rule);
  border-radius:var(--radius2);
  padding:16px;
}
.gpng-headlines__title{
  margin:0 0 10px;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-family:var(--font-sans);
}
.gpng-hitem{display:grid;grid-template-columns:48px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--rule)}
.gpng-hitem:first-of-type{border-top:0}
.gpng-hthumb{width:48px;height:48px;border-radius:var(--radius2);overflow:hidden;background:#e9edf3}
.gpng-hthumb img{width:100%;height:100%;object-fit:cover}
.gpng-hcompact{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.gpng-hcompact a{
  color:var(--ink-muted);
  font-weight:700;
  font-size:12px;
  line-height:1.3;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-family:var(--font-sans);
}
.gpng-hcompact a:hover{color:var(--ink);text-decoration:none}
.gpng-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gpng-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gpng-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}

/* Category cards */
.gpng-catcard{padding:16px;position:relative;overflow:hidden}
.gpng-catcard::before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:var(--rule-strong);opacity:.8}
.gpng-catcard__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gpng-catcard__title{font-weight:700;letter-spacing:-.02em;font-size:18px;font-family:var(--font-serif)}
.gpng-catcard__count{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 10px;border:1px solid var(--rule);border-radius:999px;color:var(--ink-muted);font-weight:700;font-size:11px;background:#fff;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em}
.gpng-catcard__list{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.gpng-catcard__item{color:var(--ink-muted);font-weight:700;font-size:12px;line-height:1.3;font-family:var(--font-sans)}
.gpng-catcard__item:hover{color:var(--ink);text-decoration:none}
.gpng-air{background:transparent;border:1px dashed rgba(0,0,0,0);padding:24px 0}
.gpng-air__box{
  background:var(--surface);
  border:1px solid var(--rule);
  border-radius:var(--radius2);
  padding:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.gpng-air__title{
  margin:0;
  font-size:22px;
  letter-spacing:-.02em;
  font-family:var(--font-serif);
}
.gpng-chips{display:flex;gap:10px;flex-wrap:wrap}
.gpng-chip{
  border:1px solid var(--rule);
  background:#fff;
  padding:8px 12px;
  border-radius:999px;
  font-size:11px;
  color:var(--ink-muted);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-family:var(--font-sans);
}
.gpng-chip:hover{background:rgba(0,0,0,.04);text-decoration:none;color:var(--ink)}
.gpng-layout{display:grid;grid-template-columns: 1.7fr 1fr;gap:20px;align-items:start}
.gpng-article{
  background:var(--surface);
  border:1px solid var(--rule);
  border-radius:var(--radius2);
  box-shadow:none;
  overflow:hidden;
}
.gpng-article__head{
  padding:22px;
  border-bottom:1px solid var(--rule);
}
.gpng-article__content{padding:0 22px 22px}
.gpng-article__content p, .gpng-article__content li{max-width:72ch}
.gpng-article__content a{color:var(--brand);text-decoration:underline}
.gpng-article__content > p:first-of-type::first-letter{
  float:left;
  font-size:3.2em;
  line-height:.9;
  padding-right:8px;
  font-weight:700;
}
.gpng-sidebar{display:flex;flex-direction:column;gap:16px}
.gpng-widget{
  background:var(--surface);
  border:1px solid var(--rule);
  border-radius:var(--radius2);
  box-shadow:none;
  padding:16px;
}
.gpng-widget__title{
  margin:0 0 10px;
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-family:var(--font-sans);
}
.gpng-sblist{margin:0;padding-left:18px;color:var(--ink-muted)}
.gpng-sblist a{color:var(--ink);font-weight:700}
.gpng-about{padding:16px}
.gpng-about__logo img{max-height:34px;width:auto}
.gpng-about__text{margin:10px 0 0;color:var(--ink-muted);font-weight:600;font-family:var(--font-sans)}
.gpng-sbthumbs{display:flex;flex-direction:column;gap:10px}
.gpng-sbthumb{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center}
.gpng-sbthumb__img{width:44px;height:44px;border-radius:var(--radius2);overflow:hidden;background:#e9edf3;flex:none}
.gpng-sbthumb__img img{width:100%;height:100%;object-fit:cover}
.gpng-sbthumb__t{font-weight:700;line-height:1.2;font-size:13px;font-family:var(--font-sans)}
.gpng-sbthumb:hover .gpng-sbthumb__t{text-decoration:underline}

/* In-article modules */
.gpng-related{
  margin:18px 0;
  padding:14px 16px;
  border:1px solid var(--rule);
  border-radius:var(--radius2);
  background:#fff;
}
.gpng-related__title{
  font-weight:700;
  letter-spacing:.08em;
  margin-bottom:8px;
  text-transform:uppercase;
  font-family:var(--font-sans);
  font-size:12px;
}
.gpng-related__list{margin:0;padding-left:18px;color:var(--ink-muted)}
.gpng-related__list a{color:var(--ink);font-weight:700}

.gpng-dontmiss{margin:28px 0 10px}
.gpng-dontmiss__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gpng-footer{
  margin-top:34px;
  background:var(--paper);
  border-top:3px double var(--rule);
}
.gpng-footer__inner{padding:26px 0}
.gpng-footer__intro{
  color:var(--ink-muted);
  font-size:13px;
  margin:0 0 14px;
  font-weight:600;
  font-family:var(--font-sans);
  letter-spacing:.04em;
}
.gpng-footer__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gpng-footer__col{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius2);padding:16px}
.gpng-footer__title{
  margin:0 0 10px;
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-family:var(--font-sans);
}
.gpng-footer__links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-family:var(--font-sans);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.gpng-footer__links a{color:var(--ink-muted);font-weight:600}
.gpng-footer__links a:hover{color:var(--ink);text-decoration:none}
.gpng-subfooter{
  border-top:1px solid var(--rule);
  padding:12px 0;
  color:var(--ink-muted);
  font-size:12px;
  font-family:var(--font-sans);
  letter-spacing:.04em;
}

/* Style variants */
.gpng-style-modern .gpng-header{
  background:var(--surface);
  border-top:0;
  border-bottom:1px solid var(--line);
}
.gpng-style-modern .gpng-masthead{padding:12px 0 8px}
.gpng-style-modern .gpng-masthead__date,
.gpng-style-modern .gpng-masthead__tagline{
  text-transform:none;
  letter-spacing:0;
  font-size:13px;
  color:var(--muted);
}
.gpng-style-modern .gpng-logo{font-size:clamp(26px,4vw,48px)}
.gpng-style-modern .gpng-nav{
  text-transform:none;
  letter-spacing:0;
  font-size:14px;
}
.gpng-style-modern .gpng-nav a:hover{
  background:rgba(0,0,0,.04);
  border-radius:999px;
}
.gpng-style-modern .gpng-search input[type="search"]{
  border:1px solid var(--line);
  border-radius:999px;
  padding:8px 12px;
  background:#fff;
  text-transform:none;
  letter-spacing:0;
  font-size:13px;
}
.gpng-style-modern .gpng-headlines__title,
.gpng-style-modern .gpng-sub,
.gpng-style-modern .gpng-widget__title,
.gpng-style-modern .gpng-footer__title{
  text-transform:none;
  letter-spacing:0;
}
.gpng-style-modern .gpng-hcompact a{
  text-transform:none;
  letter-spacing:0;
  font-size:13px;
}
.gpng-style-modern .gpng-section + .gpng-section{border-top:0}
.gpng-style-modern .gpng-section__head{border-bottom:0;padding-bottom:0}
.gpng-style-modern .gpng-card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.gpng-style-modern .gpng-headlines{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.gpng-style-modern .gpng-badge{
  background:rgba(0,0,0,.04);
  border:1px solid var(--line);
}
.gpng-style-modern .gpng-footer{
  background:var(--surface);
  border-top:1px solid var(--line);
}
.gpng-style-modern .gpng-footer__col{
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.gpng-style-modern .gpng-article__content > p:first-of-type::first-letter{
  float:none;
  font-size:inherit;
  line-height:inherit;
  padding-right:0;
}

.gpng-style-minimal .gpng-header{
  background:#fff;
  border-top:0;
  border-bottom:1px solid var(--rule);
}
.gpng-style-minimal .gpng-masthead{padding:12px 0 8px}
.gpng-style-minimal .gpng-navrow{border-top:1px solid var(--rule)}
.gpng-style-minimal .gpng-section + .gpng-section{border-top:1px solid var(--rule)}
.gpng-style-minimal .gpng-section__head{border-bottom:1px solid var(--rule)}
.gpng-style-minimal .gpng-card{
  background:transparent;
  border:0;
  border-bottom:1px solid var(--rule);
  border-radius:0;
  box-shadow:none;
}
.gpng-style-minimal .gpng-media,
.gpng-style-minimal .gpng-headlines,
.gpng-style-minimal .gpng-widget,
.gpng-style-minimal .gpng-article{
  border-radius:0;
}
.gpng-style-minimal .gpng-headlines{
  border:0;
  padding:0;
  background:transparent;
}
.gpng-style-minimal .gpng-badge{
  background:transparent;
  border:0;
  padding:0;
}
.gpng-style-minimal .gpng-footer{
  background:#fff;
  border-top:1px solid var(--rule);
}
.gpng-style-minimal .gpng-footer__col{
  border:0;
  border-top:1px solid var(--rule);
  border-radius:0;
}
.gpng-style-minimal .gpng-article__content > p:first-of-type::first-letter{
  float:none;
  font-size:inherit;
  line-height:inherit;
  padding-right:0;
}
@media (max-width: 980px){
  .gpng-hero{grid-template-columns:1fr}
  .gpng-layout{grid-template-columns:1fr}
  .gpng-grid4{grid-template-columns:repeat(2,1fr)}
  .gpng-grid3{grid-template-columns:repeat(2,1fr)}
  .gpng-footer__cols{grid-template-columns:repeat(2,1fr)}
  .gpng-title--xl{font-size:34px}
}
@media (max-width: 640px){
  .gpng-navrow{flex-wrap:wrap;justify-content:center}
  .gpng-nav{justify-content:center}
  .gpng-search{width:100%;justify-content:center}
  .gpng-grid4,.gpng-grid3,.gpng-grid2{grid-template-columns:1fr}
  .gpng-footer__cols{grid-template-columns:1fr}
  .gpng-search input[type="search"]{width:160px}
}
/* ==== WordPress native menu reset fix ==== */
.gpng-menu,
.menu,
.main-navigation ul,
.nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 18px;
  align-items: center;
}

.gpng-menu > li,
.menu > li,
.nav-menu > li {
  position: relative;
}

.gpng-menu a,
.menu a,
.nav-menu a {
  text-decoration: none;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-family: var(--font-sans);
  font-size: 12px;
}

.gpng-menu ul,
.menu ul,
.nav-menu ul {
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--surface);
  box-shadow: none;
  border: 1px solid var(--rule);
  border-radius: var(--radius2);
  list-style: none;
  padding: 12px 0;
  margin: 0;
  display: none;
  min-width: 220px;
  z-index: 999;
}

.gpng-menu li:hover > ul,
.menu li:hover > ul,
.nav-menu li:hover > ul {
  display: block;
}

.gpng-menu ul li,
.menu ul li,
.nav-menu ul li {
  padding: 8px 18px;
}
