/*
Theme Name: Prime Page
Theme URI: https://primepage.in/
Author: Prime Page
Author URI: https://primepage.in/
Description: A professional blue magazine theme for blogs, articles and photography, built for Google AdSense approval. Includes a compact header with trending bar, homepage sections, photo gallery with EXIF details, ad slots, ads.txt manager, cookie notice, schema markup, a one-click setup for required pages (About, Contact, Privacy Policy, Terms, Disclaimer), and full control through the Customizer.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: prime-page
Tags: blog, news, photography, two-columns, right-sidebar, left-sidebar, custom-logo, custom-menu, custom-colors, featured-images, theme-options, threaded-comments, translation-ready, wide-blocks, footer-widgets
*/

/* Colours, fonts and sizes come from the Customizer as CSS variables (see inc/dynamic-css.php). */
:root {
  --navy: #0A2342; --blue: #134B8A; --blue-2: #1F6FC5; --bg: #FFFFFF; --surface: #FFFFFF; --tint: #F2F6FB;
  --sky: #E6F0FB; --ink: #12233A; --muted: #56677D; --line: #DCE4EE;
  --on-blue: #FFFFFF; --on-blue-muted: #C4D5EA;
  --f-display: "Public Sans", "Segoe UI", Arial, sans-serif; --f-ui: "Public Sans", "Segoe UI", Arial, sans-serif;
  --f-body: "Source Serif 4", Georgia, serif;
  --fs-base: 16px; --fs-article: 18px; --h-weight: 700; --wrap: 1180px; --sidebar: 300px; --radius: 8px;
  --logo-h: 34px; --brand-case: uppercase;
  --shadow: 0 1px 2px rgba(10, 35, 66, .05), 0 6px 18px rgba(10, 35, 66, .07);
}
@media (prefers-color-scheme: dark) {
  body.dark-auto {
    --bg: #0B1421; --surface: #12203A; --tint: #0F1B2C; --sky: #142640; --ink: #E3EBF5; --muted: #95A6BC; --line: #22334D;
    --navy: #06101D; --blue-2: #7DB2EE; --shadow: 0 1px 2px rgba(0, 0, 0, .4);
    color-scheme: dark;
  }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 80px; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--f-ui); font-size: var(--fs-base); line-height: 1.6; }
img, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--blue-2); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--blue); }
:focus-visible { outline: 2px solid var(--blue-2); outline-offset: 2px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--f-display); font-weight: var(--h-weight); line-height: 1.2; letter-spacing: -.01em; text-wrap: balance; margin: 0; color: var(--ink); }
p { margin: 0 0 1em; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { background: var(--surface); clip: auto !important; clip-path: none; color: var(--ink); display: block; height: auto; left: 8px; top: 8px; padding: 12px 16px; width: auto; z-index: 100000; }
.skip-link:focus { position: fixed !important; }

/* ---------- Top bar ---------- */
.topbar { background: var(--navy); color: var(--on-blue-muted); font-size: .76rem; }
.topbar .wrap { display: flex; align-items: center; gap: 20px; min-height: 32px; }
.topbar a { color: var(--on-blue-muted); text-decoration: none; }
.topbar a:hover { color: var(--on-blue); }
.today { flex: none; color: var(--on-blue); font-weight: 500; }
.trending { flex: 1; min-width: 0; display: flex; align-items: center; gap: 14px; white-space: nowrap; overflow: hidden; }
.trending b { flex: none; font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; background: var(--blue-2); color: #FFFFFF; padding: 2px 8px; border-radius: 3px; }
.trending a { overflow: hidden; text-overflow: ellipsis; }
.trending a + a::before { content: "·"; margin-right: 14px; color: var(--on-blue-muted); }
.topbar-right { flex: none; display: flex; align-items: center; gap: 16px; margin-left: auto; }
.topbar-menu { list-style: none; display: flex; gap: 14px; margin: 0; padding: 0; }
.topbar .social { gap: 10px; }
.topbar .social svg { width: 14px; height: 14px; }
@media (max-width: 760px) { .trending, .topbar-right .top-mail, .topbar-menu { display: none; } }

/* ---------- Header bar ---------- */
.site-header { background: var(--blue); color: var(--on-blue); z-index: 30; box-shadow: 0 1px 0 var(--navy), 0 4px 14px rgba(10, 35, 66, .18); }
.has-sticky-header .site-header { position: sticky; top: 0; }
.admin-bar.has-sticky-header .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar.has-sticky-header .site-header { top: 0; position: relative; } }
.site-header > .wrap { display: flex; align-items: center; gap: 24px; min-height: 58px; }
.site-branding { display: flex; align-items: center; gap: 10px; flex: none; text-decoration: none; color: var(--on-blue); }
.site-branding:hover { color: var(--on-blue); }
.custom-logo-link img, .site-branding .custom-logo { max-height: var(--logo-h); width: auto; }
.brand-mark { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 5px; background: #FFFFFF; color: var(--blue); font-weight: 800; font-size: .95rem; letter-spacing: -.04em; box-shadow: inset 0 -4px 0 #7DB2EE; font-family: var(--f-display); }
.site-title { font-family: var(--f-display); font-weight: 800; font-size: 1.3rem; letter-spacing: -.02em; line-height: 1; text-transform: var(--brand-case); color: var(--on-blue); margin: 0; }
.site-title span { color: #A9CDF5; }
.site-description { display: block; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--on-blue-muted); margin-top: 4px; }
.main-navigation { margin-left: auto; }
.nav-left .main-navigation { margin-left: 8px; margin-right: auto; }
.nav-center .main-navigation { margin-left: auto; margin-right: auto; }
.main-navigation ul { list-style: none; margin: 0; padding: 0; }
.main-navigation > ul, .main-navigation .menu { display: flex; }
.main-navigation li { position: relative; }
.main-navigation a { display: block; padding: 19px 11px; font-size: .86rem; font-weight: 600; color: var(--on-blue); text-decoration: none; white-space: nowrap; }
.main-navigation a:hover, .main-navigation li:focus-within > a { background: rgba(255, 255, 255, .12); color: var(--on-blue); }
.main-navigation .current-menu-item > a, .main-navigation .current_page_item > a, .main-navigation .current-menu-ancestor > a { box-shadow: inset 0 -3px 0 #FFFFFF; }
.main-navigation .sub-menu, .main-navigation .children { position: absolute; left: 0; top: 100%; min-width: 220px; background: var(--surface); border: 1px solid var(--line); border-radius: 0 0 6px 6px; box-shadow: var(--shadow); padding: 6px 0; display: none; z-index: 40; }
.main-navigation .sub-menu .sub-menu { left: 100%; top: -6px; border-radius: 6px; }
.main-navigation li:hover > .sub-menu, .main-navigation li:focus-within > .sub-menu, .main-navigation li:hover > .children, .main-navigation li:focus-within > .children { display: block; }
.main-navigation .sub-menu a, .main-navigation .children a { color: var(--ink); padding: 9px 16px; font-weight: 500; white-space: normal; }
.main-navigation .sub-menu a:hover, .main-navigation .children a:hover { background: var(--sky); color: var(--ink); }
.main-navigation .menu-item-has-children > a::after, .main-navigation .page_item_has_children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.bar-tools { display: flex; gap: 4px; flex: none; }
.icon-btn { width: 38px; height: 38px; display: grid; place-items: center; background: transparent; color: var(--on-blue); border: 0; border-radius: 4px; cursor: pointer; padding: 0; }
.icon-btn:hover, .icon-btn[aria-expanded="true"] { background: rgba(255, 255, 255, .14); }
.icon-btn svg { width: 20px; height: 20px; }
.menu-toggle { display: none; }

.header-search { background: var(--navy); border-top: 1px solid rgba(255, 255, 255, .1); }
.header-search .wrap { padding-block: 12px; }
.header-search .search-form { max-width: 640px; }
.live-results { list-style: none; margin: 8px 0 0; padding: 6px; max-width: 640px; background: var(--surface); color: var(--ink); border-radius: 6px; }
.live-results a { display: block; padding: 8px 10px; border-radius: 4px; text-decoration: none; color: var(--ink); font-size: .9rem; }
.live-results a:hover, .live-results a:focus { background: var(--sky); }
.live-results small { display: block; color: var(--muted); font-size: .75rem; text-transform: capitalize; }
.live-results .empty { padding: 8px 10px; color: var(--muted); font-size: .88rem; }

@media (max-width: 1060px) {
  .menu-toggle { display: grid; }
  .site-header > .wrap { flex-wrap: wrap; justify-content: space-between; row-gap: 0; }
  .main-navigation, .nav-left .main-navigation, .nav-center .main-navigation { order: 3; flex-basis: 100%; margin: 0; display: none; padding-bottom: 8px; }
  .main-navigation.toggled { display: block; }
  .main-navigation > ul, .main-navigation .menu { flex-direction: column; }
  .main-navigation a { padding: 12px 4px; border-top: 1px solid rgba(255, 255, 255, .15); white-space: normal; }
  .main-navigation .sub-menu, .main-navigation .children { position: static; display: block; background: transparent; border: 0; box-shadow: none; padding: 0 0 0 16px; }
  .main-navigation .sub-menu a, .main-navigation .children a { color: var(--on-blue); padding: 10px 4px; }
  .main-navigation .sub-menu a:hover, .main-navigation .children a:hover { background: rgba(255, 255, 255, .12); color: var(--on-blue); }
  .main-navigation .current-menu-item > a, .main-navigation .current_page_item > a { box-shadow: inset 3px 0 0 #FFFFFF; padding-left: 12px; }
}

/* ---------- Forms ---------- */
.search-form { display: flex; border-radius: 4px; overflow: hidden; border: 1px solid var(--line); background: var(--surface); }
.search-form label { flex: 1; min-width: 0; display: flex; }
.search-form .search-field { flex: 1; min-width: 0; border: 0; padding: 10px 12px; font: 400 .95rem var(--f-ui); color: var(--ink); background: var(--surface); outline: 0; border-radius: 0; }
.search-form .search-submit { border: 0; background: var(--blue-2); color: #FFFFFF; padding: 0 18px; font: 600 .88rem var(--f-ui); cursor: pointer; }
.header-search .search-form { border-color: transparent; }
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea, select {
  font: 400 1rem var(--f-ui); color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 4px; padding: 10px 12px; width: 100%; max-width: 100%;
}
input:focus, textarea:focus, select:focus { outline: 2px solid var(--blue-2); outline-offset: 0; }
label { font-weight: 600; font-size: .88rem; }
button, input[type="submit"], .button, .wp-block-button__link, .btn {
  display: inline-block; font: 600 .9rem var(--f-ui); text-decoration: none; border-radius: 4px; background: var(--blue); color: var(--on-blue);
  padding: 11px 20px; border: 1px solid var(--blue); cursor: pointer; line-height: 1.3;
}
button:hover, input[type="submit"]:hover, .button:hover, .btn:hover { background: var(--navy); border-color: var(--navy); color: var(--on-blue); }
.btn.ghost { background: transparent; color: var(--blue); }
.btn.ghost:hover { background: var(--sky); color: var(--blue); }
.icon-btn, .icon-btn:hover { border: 0; }
.site-header .icon-btn:hover { background: rgba(255, 255, 255, .14); }

/* ---------- Generic blocks ---------- */
.site-main { padding-block: 36px 60px; }
.eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue-2); text-decoration: none; }
.entry-meta, .meta { font-size: .8rem; color: var(--muted); display: flex; flex-wrap: wrap; gap: 4px 14px; }
.entry-meta a { color: var(--muted); text-decoration: none; }
.entry-meta a:hover { color: var(--blue-2); }
.breadcrumbs { font-size: .8rem; color: var(--muted); margin-bottom: 18px; }
.breadcrumbs a { color: var(--muted); }
.breadcrumbs span[aria-hidden] { margin: 0 6px; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); margin: 44px 0 22px; }
.section-head:first-child { margin-top: 0; }
.section-head h2 { font-size: 1.3rem; padding-bottom: 10px; margin-bottom: -1px; border-bottom: 3px solid var(--blue); }
.section-head a { font-size: .85rem; font-weight: 600; text-decoration: none; padding-bottom: 10px; }
.page-header { margin-bottom: 26px; }
.page-title { font-size: clamp(1.8rem, 4.2vw, 2.5rem); margin: 6px 0 10px; }
.archive-description, .lede { font-size: 1.05rem; color: var(--muted); max-width: 64ch; }

/* ---------- Layout ---------- */
.content-area { display: grid; grid-template-columns: minmax(0, 1fr) var(--sidebar); gap: 40px; }
.sidebar-left .content-area { grid-template-columns: var(--sidebar) minmax(0, 1fr); }
.sidebar-left .content-area > .widget-area { order: -1; }
.sidebar-none .content-area, .content-area.no-sidebar { grid-template-columns: minmax(0, 1fr); }
.content-area.narrow { max-width: 820px; margin: 0 auto; }
@media (max-width: 940px) { .content-area, .sidebar-left .content-area { grid-template-columns: minmax(0, 1fr); } .sidebar-left .content-area > .widget-area { order: 0; } }

/* ---------- Hero (homepage) ---------- */
.hero { background: linear-gradient(180deg, var(--sky), var(--tint)); border-bottom: 1px solid var(--line); }
.hero .wrap { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 36px; align-items: center; padding-block: 28px; }
.hero.no-stories .wrap { grid-template-columns: minmax(0, 1fr); }
.hero h1 { font-size: clamp(1.55rem, 2.9vw, 2.15rem); font-weight: 800; letter-spacing: -.025em; margin: 6px 0 8px; color: var(--navy); }
.dark-auto .hero h1 { color: var(--ink); }
.hero p { color: var(--muted); font-size: 1rem; max-width: 56ch; margin-bottom: 0; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: 16px; }
.hero-actions .btn { padding: 9px 16px; font-size: .86rem; }
.hero-count { font-size: .8rem; color: var(--muted); margin-left: 6px; }
.top-stories { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 16px; box-shadow: var(--shadow); }
.top-stories h2 { font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue-2); padding-bottom: 6px; }
.top-stories ol { list-style: none; margin: 0; padding: 0; }
.top-stories li + li { border-top: 1px solid var(--line); }
.top-stories a { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: center; padding: 8px 0; text-decoration: none; color: var(--ink); }
.top-stories .thumb { width: 64px; height: 44px; border-radius: 4px; overflow: hidden; background: var(--sky); }
.top-stories .thumb img { width: 100%; height: 100%; object-fit: cover; }
.top-stories span { font-size: .88rem; font-weight: 600; line-height: 1.3; }
.top-stories small { display: block; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.top-stories a:hover span { color: var(--blue-2); }
@media (max-width: 860px) { .hero .wrap { grid-template-columns: 1fr; gap: 20px; padding-block: 22px; } }

/* ---------- Category tiles ---------- */
.categories { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.categories.count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.categories.count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 760px) { .categories, .categories.count-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cat-tile { display: flex; flex-direction: column; gap: 4px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); text-decoration: none; color: var(--ink); transition: border-color .2s, transform .2s; }
.cat-tile:hover { border-color: var(--blue-2); transform: translateY(-2px); color: var(--ink); }
.cat-tile svg { width: 30px; height: 30px; color: var(--blue-2); margin-bottom: 8px; }
.cat-tile h3 { font-size: 1rem; }
.cat-tile p { font-size: .82rem; color: var(--muted); margin: 0; }
.cat-tile .count { margin-top: 8px; font-size: .75rem; font-weight: 600; color: var(--blue-2); }

/* ---------- Post cards ---------- */
.post-grid { display: grid; grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); gap: 20px; }
@media (max-width: 700px) { .post-grid { grid-template-columns: 1fr; } }
.card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--surface); }
.card .card-media { display: block; aspect-ratio: 16/10; background: var(--sky); overflow: hidden; }
.card .card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.card:hover .card-media img { transform: scale(1.03); }
.card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.card h3, .card .entry-title { font-size: 1.08rem; line-height: 1.35; }
.card h3 a { color: var(--ink); text-decoration: none; }
.card h3 a:hover { color: var(--blue-2); }
.card p { font-size: .9rem; color: var(--muted); margin: 0; }
.card .entry-meta { margin-top: auto; padding-top: 6px; }
.more-link { font-size: .85rem; font-weight: 600; text-decoration: none; }
.card.wide { grid-column: 1 / -1; flex-direction: row; }
.card.wide .card-media { flex: 0 0 46%; aspect-ratio: auto; min-height: 220px; }
.card.wide h3 { font-size: 1.35rem; }
@media (max-width: 600px) { .card.wide { flex-direction: column; } .card.wide .card-media { aspect-ratio: 16/10; min-height: 0; } }
.no-thumb .card-media { display: none; }

.post-row { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 22px; padding-block: 24px; border-bottom: 1px solid var(--line); }
.post-row:first-child { padding-top: 0; }
.post-row .row-media { display: block; aspect-ratio: 16/10; border-radius: 6px; overflow: hidden; background: var(--sky); }
.post-row .row-media img { width: 100%; height: 100%; object-fit: cover; }
.post-row .entry-title { font-size: 1.35rem; margin: 6px 0 8px; }
.post-row .entry-title a { color: var(--ink); text-decoration: none; }
.post-row .entry-title a:hover { color: var(--blue-2); }
.post-row .entry-summary { font-size: .95rem; color: var(--muted); }
.post-row.no-thumb { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 600px) { .post-row { grid-template-columns: 1fr; } }
.sticky .eyebrow::before { content: "★ "; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; padding: 0; list-style: none; }
.chips a { display: block; font-size: .85rem; font-weight: 600; text-decoration: none; border: 1px solid var(--line); color: var(--muted); padding: 6px 14px; border-radius: 99px; }
.chips a:hover { border-color: var(--blue-2); color: var(--blue-2); }
.chips .current a { background: var(--blue); border-color: var(--blue); color: var(--on-blue); }

/* ---------- Photo grid ---------- */
.photo-grid { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 10px; }
@media (max-width: 600px) { .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.photo-grid a { position: relative; display: block; border-radius: 6px; overflow: hidden; color: #FFFFFF; text-decoration: none; background: var(--sky); aspect-ratio: 4/3; }
.photo-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.photo-grid a:hover img { transform: scale(1.04); }
.photo-grid span { position: absolute; inset: auto 0 0 0; padding: 22px 10px 8px; font-size: .8rem; font-weight: 600; background: linear-gradient(transparent, rgba(6, 16, 29, .78)); }

.pp-gallery { columns: var(--cols, 3) 260px; column-gap: 18px; }
.pp-tile { break-inside: avoid; margin: 0 0 18px; display: block; text-decoration: none; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.pp-tile img { width: 100%; transition: transform .4s ease; }
.pp-tile:hover img { transform: scale(1.03); }
.pp-tile .cap { display: block; padding: 12px 14px 14px; }
.pp-tile .cap strong { font-size: 1rem; display: block; }
.exif { font-size: .76rem; color: var(--muted); font-variant-numeric: tabular-nums; }

/* ---------- Sidebar & widgets ---------- */
.widget-area { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.widget-area .widget { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; }
.widget-title, .widget h2, .wp-block-heading.widget-title { font-size: 1rem; padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px solid var(--line); }
.widget p { font-size: .9rem; color: var(--muted); }
.widget ul, .widget ol { list-style: none; margin: 0; padding: 0; font-size: .9rem; }
.widget li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.widget li:last-child { border-bottom: 0; padding-bottom: 0; }
.widget li a { color: var(--ink); text-decoration: none; }
.widget li a:hover { color: var(--blue-2); }
.widget .children, .widget .sub-menu { padding-left: 12px; margin-top: 8px; }
.widget select { width: 100%; }
.widget_categories li, .pp-cat-list li { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.pill { font-size: .72rem; font-weight: 600; background: var(--sky); color: var(--blue-2); padding: 1px 8px; border-radius: 99px; }
.widget.pp-about-widget { background: var(--blue); border-color: var(--blue); color: var(--on-blue); }
.pp-about-widget .widget-title { color: var(--on-blue); border-color: rgba(255, 255, 255, .25); }
.pp-about-widget p { color: var(--on-blue-muted); }
.pp-about-widget a { color: var(--on-blue); font-weight: 600; text-decoration: none; }
.thumbs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.thumbs a { display: block; aspect-ratio: 1; border-radius: 4px; overflow: hidden; background: var(--sky); }
.thumbs img { width: 100%; height: 100%; object-fit: cover; }
.pp-recent li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: center; }
.pp-recent .thumb { width: 64px; height: 48px; border-radius: 4px; overflow: hidden; background: var(--sky); }
.pp-recent .thumb img { width: 100%; height: 100%; object-fit: cover; }
.pp-recent a { font-weight: 600; line-height: 1.3; display: block; }
.pp-recent small { display: block; color: var(--muted); font-size: .75rem; margin-top: 2px; }
.social { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.social a { display: grid; place-items: center; text-decoration: none; }
.social svg { width: 18px; height: 18px; fill: currentColor; }
.widget .social li, .site-footer .social li { border: 0; padding: 0; }
.widget .social a { width: 36px; height: 36px; border-radius: 50%; background: var(--sky); color: var(--blue); }

/* ---------- Single article ---------- */
.entry-header { max-width: 780px; }
.single .entry-header h1, .page .entry-header h1 { font-size: clamp(1.9rem, 4.6vw, 2.7rem); font-weight: 800; letter-spacing: -.025em; margin: 10px 0 14px; }
.entry-header .lede { margin-bottom: 0; }
.byline { padding-block: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 18px; font-size: .85rem; }
.byline strong { color: var(--ink); font-weight: 600; }
.featured-image { margin: 28px 0; }
.featured-image img { width: 100%; border-radius: 6px; }
figcaption, .wp-caption-text, .wp-element-caption { font-size: .8rem; color: var(--muted); margin-top: 8px; }
.entry-content { font-family: var(--f-body); font-size: var(--fs-article); line-height: 1.75; max-width: 72ch; }
.page-template-template-full-width .entry-content, .content-area.no-sidebar .entry-content { max-width: none; }
.entry-content > * { margin-top: 0; margin-bottom: 1.1em; }
.entry-content h2 { font-size: 1.45em; margin: 1.8em 0 .6em; }
.entry-content h3 { font-size: 1.2em; margin: 1.5em 0 .5em; }
.entry-content h4 { font-size: 1.05em; margin: 1.4em 0 .5em; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content li { margin-bottom: .4em; }
.entry-content blockquote, .wp-block-quote { margin: 1.6em 0; padding: 14px 20px; border-left: 4px solid var(--blue-2); background: var(--tint); font-style: italic; border-radius: 0 6px 6px 0; }
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content table { width: 100%; border-collapse: collapse; font-family: var(--f-ui); font-size: .92rem; display: block; overflow-x: auto; }
.entry-content th, .entry-content td { border: 1px solid var(--line); padding: 8px 10px; text-align: left; }
.entry-content th { background: var(--tint); }
.entry-content pre { background: var(--tint); border: 1px solid var(--line); padding: 14px; border-radius: 6px; overflow-x: auto; font-size: .88rem; }
.entry-content code { background: var(--tint); padding: 1px 5px; border-radius: 3px; font-size: .9em; }
.entry-content img { border-radius: 4px; }
.entry-content hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
/* Photo story layout: wide main photo */
.photo-story-hero { background: var(--tint); border-bottom: 1px solid var(--line); }
.photo-story-head { padding-block: 26px 22px; max-width: calc(var(--wrap)); }
.photo-story-head .breadcrumbs { margin-bottom: 14px; }
.photo-story-head .entry-title { font-size: clamp(1.75rem, 3vw, 2.6rem); max-width: 34ch; margin: 10px 0 10px; }
.photo-story-head .lede { max-width: 70ch; font-size: 1.12rem; color: var(--muted); margin: 0 0 14px; }
.photo-story-head .byline, .photo-story-head .entry-meta { border: 0; padding: 0; margin: 0; }
.photo-story-eyebrow { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.photo-story-badge { display: inline-flex; align-items: center; gap: 6px; background: var(--navy); color: #FFFFFF; font-family: var(--f-ui); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; }
.photo-story-badge svg { width: 14px; height: 14px; }
.photo-story-figure { margin: 0; background: #070D16; }
.photo-story-frame { max-width: 1680px; margin: 0 auto; display: flex; justify-content: center; }
.photo-story-img { display: block; width: 100%; height: auto; max-height: 88vh; object-fit: contain; }
.photo-story-caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 28px; padding-block: 12px 16px; color: #C9D6E6; font-family: var(--f-ui); font-size: .86rem; line-height: 1.5; }
.photo-story-text { flex: 1 1 340px; }
.photo-story-specs { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; margin: 0; padding: 0; color: #FFFFFF; }
.photo-story-specs span { color: #8FA5C0; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; margin-right: 3px; }
.photo-story-placeholder { display: flex; gap: 16px; align-items: flex-start; margin: 0 0 26px; padding: 22px 24px; border: 2px dashed var(--line); border-radius: var(--radius); background: var(--surface); color: var(--muted); }
.photo-story-placeholder svg { width: 34px; height: 34px; flex: none; color: var(--blue-2); }
.photo-story-placeholder p { margin: 0; }
.single-format-image .site-main { padding-top: 30px; }
.entry-content .pp-credit { font-family: var(--f-ui); font-size: .85rem; color: var(--muted); }
@media (max-width: 640px) { .photo-story-head { padding-block: 18px 16px; } .photo-story-img { max-height: none; } .photo-story-caption { font-size: .8rem; } }

/* Article components (imported content) */
.entry-content h2[id], .entry-content h3[id] { scroll-margin-top: 90px; }
.entry-content h2 { padding-bottom: .3em; border-bottom: 1px solid var(--line); }
.entry-content .pp-references h2, .pp-toc h2 { border-bottom: 0; }
.entry-content .wp-block-table { margin: 1.6em 0; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: var(--radius); }
.entry-content .wp-block-table table { display: table; margin: 0; border: 0; min-width: 520px; }
.entry-content .wp-block-table th, .entry-content .wp-block-table td { border: 0; border-bottom: 1px solid var(--line); padding: 10px 14px; vertical-align: top; line-height: 1.5; }
.entry-content .wp-block-table th { background: var(--navy); color: #FFFFFF; font-weight: 600; font-size: .86rem; letter-spacing: .01em; }
.entry-content .wp-block-table tbody tr:nth-child(even) td { background: var(--tint); }
.entry-content .wp-block-table tbody tr:last-child td { border-bottom: 0; }
.entry-content .wp-block-table td:first-child { font-weight: 600; }
.entry-content .pp-note { font-size: .92em; background: var(--sky); border-left: 4px solid var(--blue-2); padding: 14px 18px; border-radius: 0 var(--radius) var(--radius) 0; color: var(--ink); }
.entry-content .pp-note em { font-style: normal; }
.entry-content .pp-warning { background: #FFF6E5; border-left: 4px solid #D98A00; padding: 14px 18px; border-radius: 0 var(--radius) var(--radius) 0; color: #3D2A00; }
.entry-content .pp-references { margin-top: 2.6em; padding: 22px 24px 8px; background: var(--tint); border: 1px solid var(--line); border-radius: var(--radius); font-family: var(--f-ui); font-size: .86rem; line-height: 1.55; }
.entry-content .pp-references h2 { font-size: 1.05rem; margin: 0 0 .8em; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.entry-content .pp-references ul { padding-left: 1.1em; }
.entry-content .pp-references li { margin-bottom: .55em; word-break: break-word; }
.pp-toc { margin: 1.4em 0 2em; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); font-family: var(--f-ui); font-size: .92rem; }
.pp-toc summary { cursor: pointer; padding: 12px 18px; font-weight: 700; color: var(--ink); list-style: none; display: flex; justify-content: space-between; align-items: center; }
.pp-toc summary::-webkit-details-marker { display: none; }
.pp-toc summary::after { content: "–"; color: var(--muted); font-weight: 400; }
.pp-toc details:not([open]) summary::after { content: "+"; }
.pp-toc ol { margin: 0; padding: 0 18px 14px 38px; columns: 2; column-gap: 28px; }
.pp-toc li { margin: 0 0 .45em; break-inside: avoid; line-height: 1.4; }
.pp-toc a { color: var(--ink); text-decoration: none; }
.pp-toc a:hover { color: var(--blue-2); text-decoration: underline; }
@media (max-width: 640px) { .pp-toc ol { columns: 1; } .entry-content .pp-references { padding: 18px 16px 4px; } }
.has-dropcap.single .entry-content > p:first-of-type::first-letter { float: left; font-family: var(--f-display); font-weight: 800; font-size: 3.4em; line-height: .9; padding: 6px 10px 0 0; color: var(--blue); }
.alignleft { float: left; margin: .3em 1.4em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.4em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignwide { max-width: none; }
.wp-caption { max-width: 100%; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.gallery-item { margin: 0; }
.note, .pp-note { background: var(--sky); border: 1px solid var(--line); padding: 14px 18px; border-radius: 6px; font-family: var(--f-ui); font-size: .95rem; }
.page-links { font-family: var(--f-ui); margin-top: 20px; }
.tags-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.tags-links a { border: 1px solid var(--line); padding: 4px 12px; border-radius: 99px; text-decoration: none; color: var(--muted); font-size: .82rem; }
.tags-links a:hover { border-color: var(--blue-2); color: var(--blue-2); }
.share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 22px; font-size: .85rem; color: var(--muted); }
.share a, .share button { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 4px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: 600 .8rem var(--f-ui); text-decoration: none; cursor: pointer; }
.share a:hover, .share button:hover { border-color: var(--blue-2); color: var(--blue-2); background: var(--surface); }
.share svg { width: 15px; height: 15px; fill: currentColor; }
.author-box { display: flex; gap: 16px; align-items: flex-start; border: 1px solid var(--line); background: var(--tint); padding: 20px; border-radius: var(--radius); margin-top: 36px; max-width: 72ch; }
.author-box img { border-radius: 50%; flex: none; }
.author-box h2 { font-size: 1rem; }
.author-box p { font-size: .92rem; margin: 4px 0 0; color: var(--muted); }
.post-navigation { margin: 36px 0 44px; }
.post-navigation .nav-links, .posts-navigation .nav-links { display: flex; justify-content: space-between; gap: 16px; padding-top: 18px; border-top: 1px solid var(--line); }
.post-navigation a { text-decoration: none; font-weight: 600; display: block; max-width: 100%; }
.post-navigation .nav-next { text-align: right; margin-left: auto; }
.post-navigation .nav-subtitle { display: block; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.pagination { margin-top: 32px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 6px; }
.page-numbers { display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: 4px; text-decoration: none; color: var(--ink); font-weight: 600; font-size: .9rem; }
.page-numbers.current { background: var(--blue); border-color: var(--blue); color: var(--on-blue); }
a.page-numbers:hover { border-color: var(--blue-2); color: var(--blue-2); }
.related { margin-top: 10px; }
.related .post-grid { --cols: 3; }
@media (max-width: 800px) { .related .post-grid { --cols: 1; } }

/* ---------- Photo attachment page ---------- */
.photo-stage { background: #06101D; padding-block: 24px; }
.photo-stage img { margin: 0 auto; max-height: 78vh; width: auto; border-radius: 2px; }
.photo-body { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 44px; }
@media (max-width: 900px) { .photo-body { grid-template-columns: 1fr; } }
.spec { width: 100%; border-collapse: collapse; font-size: .9rem; font-variant-numeric: tabular-nums; }
.spec th { text-align: left; font-weight: 500; color: var(--muted); padding: 8px 0; width: 42%; border-bottom: 1px solid var(--line); }
.spec td { padding: 8px 0; border-bottom: 1px solid var(--line); }

/* ---------- Comments ---------- */
.comments-area { margin-top: 44px; max-width: 72ch; }
.comments-title, .comment-reply-title { font-size: 1.3rem; margin-bottom: 18px; }
.comment-list { list-style: none; margin: 0 0 30px; padding: 0; }
.comment-list .children { list-style: none; padding-left: 28px; }
.comment-body { border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; margin-bottom: 14px; background: var(--surface); }
.comment-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; font-size: .85rem; margin-bottom: 8px; }
.comment-author { display: flex; align-items: center; gap: 10px; }
.comment-author img { border-radius: 50%; }
.comment-metadata a { color: var(--muted); text-decoration: none; }
.comment-content { font-size: .95rem; }
.reply a { font-size: .8rem; font-weight: 600; text-decoration: none; }
.comment-form { display: grid; gap: 14px; }
.comment-form p { margin: 0; }
.comment-form label { display: block; margin-bottom: 6px; }
.comment-form-cookies-consent { display: flex; gap: 8px; align-items: flex-start; }
.comment-form-cookies-consent input { width: auto; margin-top: 4px; }
.comment-form-cookies-consent label { font-weight: 400; }

/* ---------- Homepage about band ---------- */
.band { background: var(--tint); border-top: 1px solid var(--line); }
.band .wrap { padding-block: 48px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.band h2 { font-size: 1.7rem; font-weight: 800; letter-spacing: -.02em; margin: 6px 0 12px; }
.band p { color: var(--muted); }
.pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pillars div { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; }
.pillars b { display: block; font-size: .95rem; margin-bottom: 4px; }
.pillars span { font-size: .85rem; color: var(--muted); }
@media (max-width: 800px) { .band .wrap { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .pillars { grid-template-columns: 1fr; } }
.home-section + .home-section, .home-intro + .home-section { margin-top: 44px; }
.home-widgets { margin-top: 28px; }
.home-widgets .widget { margin-bottom: 20px; }

/* ---------- Contact page ---------- */
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 36px; margin-top: 30px; }
@media (max-width: 820px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-card { background: var(--tint); border: 1px solid var(--line); padding: 24px; border-radius: var(--radius); display: flex; flex-direction: column; gap: 18px; margin: 0; }
.contact-card dt { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue-2); }
.contact-card dd { margin: 4px 0 0; font-size: 1rem; }
.pp-contact-form { display: flex; flex-direction: column; gap: 16px; }
.pp-contact-form label { display: flex; flex-direction: column; gap: 6px; }
.pp-contact-form button { align-self: flex-start; }
.pp-hp { position: absolute !important; left: -9999px !important; }
.form-notice { padding: 12px 16px; border-radius: 6px; font-size: .95rem; }
.form-notice.ok { background: #E7F6EC; color: #14532D; border: 1px solid #B7E3C4; }
.form-notice.err { background: #FDECEC; color: #7F1D1D; border: 1px solid #F5C2C2; }

/* ---------- Ads ---------- */
.pp-ad { margin: 24px auto; text-align: center; clear: both; max-width: 100%; overflow: hidden; }
.pp-ad-label { display: block; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.pp-ad-header { margin: 16px auto 0; }
.post-row + .pp-ad, .pp-ad + .post-row { margin-top: 24px; }

/* ---------- Footer ---------- */
.site-footer { background: var(--navy); color: var(--on-blue-muted); font-size: .9rem; }
.site-footer .wrap { padding-block: 46px 22px; }
.foot-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: 32px; }
@media (max-width: 860px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .foot-grid { grid-template-columns: 1fr; } }
.site-footer h2, .site-footer .widget-title { font-size: .95rem; color: var(--on-blue); margin-bottom: 14px; padding: 0; border: 0; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.site-footer li { border: 0; padding: 0; }
.site-footer a { color: var(--on-blue-muted); text-decoration: none; }
.site-footer a:hover { color: var(--on-blue); text-decoration: underline; }
.site-footer p { color: var(--on-blue-muted); }
.site-footer .widget { background: none; border: 0; padding: 0; }
.site-footer .site-branding { margin-bottom: 14px; }
.site-footer address { font-style: normal; line-height: 1.7; }
.site-footer .social { flex-direction: row; margin-top: 14px; }
.site-footer .social a { width: 34px; height: 34px; border-radius: 50%; background: rgba(255, 255, 255, .1); color: var(--on-blue); }
.site-footer .social a:hover { background: var(--blue-2); text-decoration: none; }
.legal-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 34px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .8rem; }
.back-to-top { position: fixed; right: max(18px, env(safe-area-inset-right, 0px)); bottom: calc(18px + env(safe-area-inset-bottom, 0px)); width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; padding: 0; background: var(--blue); color: var(--on-blue); border: 0; box-shadow: var(--shadow); z-index: 50; opacity: 0; pointer-events: none; transition: opacity .2s; }
.back-to-top.show { opacity: 1; pointer-events: auto; }
.back-to-top svg { width: 18px; height: 18px; }
.cookie-open .back-to-top { bottom: 110px; }

/* ---------- Cookie notice ---------- */
.cookie-notice { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--surface); color: var(--ink); border-top: 3px solid var(--blue); box-shadow: 0 -6px 24px rgba(10, 35, 66, .15); font-size: .9rem; padding: 16px max(16px, env(safe-area-inset-right, 0px)) calc(16px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); }
.cookie-notice .inner { max-width: var(--wrap); margin: 0 auto; display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.cookie-notice p { margin: 0; max-width: 72ch; }
.cookie-notice .actions { display: flex; gap: 8px; }
.cookie-notice button { padding: 9px 18px; font-size: .88rem; }
.cookie-notice .decline { background: transparent; color: var(--ink); border-color: var(--line); }
.cookie-notice .decline:hover { background: var(--tint); color: var(--ink); border-color: var(--line); }

/* ---------- 404 / no results ---------- */
.not-found { max-width: 640px; }
.not-found .search-form { margin: 18px 0 28px; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
@media print { .topbar, .site-header, .widget-area, .site-footer, .pp-ad, .share, .cookie-notice, .back-to-top, .comments-area { display: none !important; } }
