/* =============================================================================
   theme-aiage-news — style-v1.3.css   (FINAL — Round B)

   ADDITIVE CSS FILE — this is NOT a replacement for the live style.css and
   does NOT get pasted into it. It ships as its own file, deployed to
   assets/css/style-v1.3.css inside the theme and loaded via a SEPARATE
   wp_enqueue_style() call (see functions.php-snippet.php) that depends on the
   theme's existing 'aiage-news-style' handle, so it always loads AFTER
   style.css and its rules win by cascade order — no !important arms race with
   v1.2.0 needed except where noted (the .aiage-subnav overrides, which
   pre-empt the OLD .aiage-nav bevel rules that a renamed class no longer
   matches anyway — see the note above that block).

   The ONLY edit this pass makes to the live style.css itself is the one-line
   theme-header version bump:  Version: 1.2.0  →  Version: 1.3.0
   (see DEPLOY-STEPS.md — do NOT paste this file's contents into style.css).

   TOKENS — this file uses the theme's OWN existing CSS custom properties
   directly: --bg --white --ink --ink-2 --ink-3 --ink-4 --rule --yellow
   --yellow-2 --teal --teal-2 --display --serif --sans --mono. These are
   CONFIRMED (not guessed) — they are declared, unprefixed, on :root at the
   top of the live style.css (lines 20-28) specifically "so the component CSS
   below [stays] 1:1 with the landing page at aiagepress.com" — i.e. they are
   already the SAME names/values as MOCK-PUBHOUSE-V3-2026-07-14/assets/
   house.css's own :root tokens. No --wp--preset--* fallback chain is needed
   or used; this removes the "unverified theme.json slug" risk the v1.3-draft
   flagged (theme.json's real font-family slugs are display/serif/sans/mono —
   NOT the draft's guessed bricolage-grotesque/dm-serif-display/inter-tight/
   jetbrains-mono — moot here since style.css's own aliases are used instead).
   Only a few NEW composite values (max width, gutter, button bevel shadows)
   have no existing alias in style.css; those get local --aap-* custom
   properties, defined once below.
   ============================================================================= */

:root{
  --aap-max: var(--wp--style--global--wide-size, 1320px);
  --aap-gutter: clamp(16px, 4vw, 40px);
  --aap-shadow-lift: 0 24px 50px -22px rgba(10,10,10,.32), 0 8px 18px -10px rgba(10,10,10,.16);
  --aap-btn-rest:  inset 0 1.5px 0 rgba(255,255,255,.16), inset 0 -4px 6px rgba(0,0,0,.55), 3px 4px 0 var(--ink), 5px 8px 16px -6px rgba(10,10,10,.55);
  --aap-btn-hover: inset 0 1.5px 0 rgba(255,255,255,.28), inset 0 -3px 5px rgba(0,0,0,.3),  5px 7px 0 var(--ink), 8px 14px 22px -6px rgba(10,10,10,.6);
}

/* ---- wp-admin bar offset -------------------------------------------------
   WP core adds a fixed admin bar for logged-in users: 32px tall at ≥783px,
   46px tall at ≤782px (core breakpoint, confirmed WP default — not something
   this static-mock-derived CSS could verify against the live host, but this
   is a stable WP core constant, not theme/host-specific). Tier 1/2/3 below
   are `position:sticky`, offset from the viewport top by 0 / 40 / 74px with
   no admin bar; `.admin-bar` (the body class WP adds for logged-in users)
   pushes those same three offsets down by the admin-bar height so the sticky
   stack never renders underneath it. Tier 4 (.aiage-subnav-wrap) is static,
   not sticky, so it needs no offset rule. ---- */
.admin-bar .topstrip{ top: 32px; }
.admin-bar .netbar{ top: 72px; }   /* 32px admin bar + 40px topstrip */
.admin-bar .nav{ top: 106px; }     /* 32px admin bar + 40px topstrip + 34px netbar */
@media (max-width: 782px){
  .admin-bar .topstrip{ top: 46px; }
  .admin-bar .netbar{ top: 86px; }
  .admin-bar .nav{ top: 120px; }
}

/* ---- aap-chrome wrapper (the wp:group tiers 1-3 render inside) ---- */
.aap-chrome{ position: relative; z-index: 100; }

/* =====================================================================
   TIER 1 — topstrip marquee
   ===================================================================== */
.topstrip{
  position: sticky; top: 0; z-index: 100; height: 40px; overflow: hidden;
  background: linear-gradient(180deg, #FFE45C, var(--yellow) 45%, var(--yellow-2));
  border-bottom: 2px solid var(--ink);
}
.topstrip-track{ display: flex; width: max-content; will-change: transform; }
/* Motion default ON for ALL visitors, including OS-level prefers-reduced-motion
   (owner runs OS reduce-motion; per memory note "owner-reduce-motion-on" this
   property must NOT be OS-gated — the marquee is gentle + pauses on hover/
   focus, which is the only control). Guarded by the theme's OWN .reduce-motion
   HTML class (already the convention used everywhere else in style.css, e.g.
   `html:not(.reduce-motion) .wp-block-button__link`) rather than a
   `@media (prefers-reduced-motion: reduce)` query, so it stays consistent with
   the rest of the theme and with the brand-wide "don't OS-gate" decision. */
html:not(.reduce-motion) .topstrip-track{ animation: aapMarq 42s linear infinite; }
html.reduce-motion .topstrip-track{ animation: none; }
.topstrip:hover .topstrip-track,
.topstrip:focus-within .topstrip-track{ animation-play-state: paused; }
.topstrip span{
  display: inline-flex; align-items: center; height: 40px; padding: 0 6px;
  font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap;
  color: var(--ink);
}
.topstrip span::after{ content: "✦"; margin: 0 16px 0 18px; color: var(--teal); }
.topstrip a{ color: inherit; text-decoration: none; border-bottom: 1.5px solid rgba(10,10,10,.35); }
.topstrip a:hover{ border-bottom-color: var(--ink); }
.topstrip strong{ background: var(--ink); color: var(--yellow); padding: 3px 8px; margin-right: 8px; }
@keyframes aapMarq{ to{ transform: translateX(-50%); } }

/* =====================================================================
   TIER 2 — ink netbar + native Google Translate + ✕ Original revert
   ===================================================================== */
.netbar{
  position: sticky; top: 40px; z-index: 95;
  background: var(--ink); color: var(--bg); border-bottom: 2px solid var(--ink);
  font-family: var(--mono); font-size: 11px; letter-spacing: .06em;
}
.netbar-inner{
  max-width: var(--aap-max); margin: 0 auto; padding: 8px var(--aap-gutter);
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; justify-content: center;
}
.netbar a{ color: rgba(250,250,248,.75); text-decoration: none; border-bottom: 1px solid transparent; }
.netbar a:hover, .netbar a[aria-current="page"]{ color: var(--yellow); border-bottom-color: var(--yellow); }
.netbar .sep{ opacity: .35; }
.netbar .here{ color: var(--yellow); font-weight: 600; }

.netbar-translate{ display: inline-flex; align-items: center; gap: 8px; max-width: 100%; }
.netbar-translate .tr-label{
  font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(250,250,248,.55); white-space: nowrap;
}
@media (min-width: 720px){
  .netbar-translate{ margin-left: auto; }
  .netbar .sep-tr{ display: none; }
}
/* Native Google Website Translate widget — theme its .goog-te-combo <select>
   into the ink netbar; suppress Google's gadget chrome + top banner. Ported
   verbatim from house-v3.css (the confirmed-live apex pattern). */
#google_translate_element{ display: inline-flex; align-items: center; line-height: 1; }
#google_translate_element .goog-te-gadget{ font-size: 0; line-height: 1; color: transparent; }
#google_translate_element .goog-te-gadget > span{ display: none; }
.netbar select.goog-te-combo{
  margin: 0; background: var(--ink); color: var(--bg); border: 1px solid rgba(250,250,248,.35);
  font: 600 11px/1 var(--mono); text-transform: uppercase; letter-spacing: .08em;
  padding: 4px 6px; border-radius: 0; max-width: 46vw; cursor: pointer;
}
.netbar select.goog-te-combo:hover{ border-color: var(--yellow); }
.netbar select.goog-te-combo:focus-visible{ outline: 2px solid var(--yellow); outline-offset: 1px; }
.netbar select.goog-te-combo option{ background: #fff; color: #0A0A0A; text-transform: none; letter-spacing: 0; }
.goog-te-banner-frame, iframe.goog-te-banner-frame, .skiptranslate > iframe{ display: none !important; }
.goog-te-gadget-icon, .goog-logo-link{ display: none !important; }
body{ top: 0 !important; } /* undo Google's forced body offset when translated */

/* Custom "Show original" revert button — shown only once the page is
   translated (toggled via [hidden] by the inline script in
   functions.php-snippet.php, which mirrors the apex mock's exact
   cookie-clear + reload logic, ported byte-for-byte from
   MOCK-PUBHOUSE-V3-2026-07-14/index.html L1759-1773). */
.tr-reset{ margin-left: 6px; background: var(--yellow); color: var(--ink); border: 1px solid var(--ink); font: 700 10px/1 var(--mono); text-transform: uppercase; letter-spacing: .07em; padding: 5px 8px; border-radius: 0; cursor: pointer; white-space: nowrap; }
.tr-reset:hover{ background: var(--yellow-2); }
.tr-reset[hidden]{ display: none; }

/* =====================================================================
   TIER 3 — chunky bevel nav keys
   ===================================================================== */
.nav{
  position: sticky; top: 74px; z-index: 90;
  background: rgba(250,250,248,.9); -webkit-backdrop-filter: blur(10px) saturate(140%); backdrop-filter: blur(10px) saturate(140%);
  border-bottom: 2px solid var(--ink);
}
.nav-inner{ max-width: var(--aap-max); margin: 0 auto; padding: 11px var(--aap-gutter); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.nav .brand{ display: inline-flex; align-items: center; gap: 8px; font-family: var(--display); font-weight: 800; font-size: 21px; letter-spacing: -.02em; text-decoration: none; color: var(--ink); }
.nav .brand .sq{ width: 11px; height: 11px; background: var(--yellow); border: 1.5px solid var(--ink); }
.nav .brand em{ font-family: var(--serif); font-style: italic; color: var(--teal); font-weight: 400; }
.nav-links{ display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.nav-links a{
  font-family: var(--display); font-weight: 800; font-size: 12px; letter-spacing: .04em; text-transform: uppercase;
  padding: 8px 13px; border: 1.5px solid var(--ink); text-decoration: none;
  background: linear-gradient(180deg, var(--ink-2), var(--ink)); color: var(--yellow);
  box-shadow: var(--aap-btn-rest);
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s, background .2s, color .2s;
}
.nav-links a:hover, .nav-links a[aria-current="page"]{
  background: linear-gradient(180deg, var(--yellow), var(--yellow-2)); color: var(--ink);
  transform: translateY(-3px); box-shadow: var(--aap-btn-hover);
}
.nav-cta{
  font-family: var(--display); font-weight: 800; font-size: 13px; letter-spacing: .04em; text-transform: uppercase;
  padding: 10px 18px; border: 2px solid var(--ink); text-decoration: none;
  background: linear-gradient(180deg, #0A8A95, var(--teal), var(--teal-2)); color: var(--bg);
  box-shadow: var(--aap-btn-rest);
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s, background .2s, color .2s;
}
.nav-cta:hover{ background: linear-gradient(180deg, var(--yellow), var(--yellow-2)); color: var(--ink); transform: translateY(-3px); box-shadow: var(--aap-btn-hover); }
.nav-toggle{
  display: none; margin-left: auto; padding: 8px 12px; border: 1.5px solid var(--ink);
  background: var(--ink); color: var(--yellow); font-family: var(--mono); font-size: 10px;
  letter-spacing: .12em; text-transform: uppercase; cursor: pointer;
}
@media (max-width: 900px){
  .nav-toggle{ display: inline-flex; }
  .nav-links{ display: none; width: 100%; flex-direction: column; }
  .nav-links.is-open{ display: flex; }
}
html.reduce-motion .nav-links a:hover,
html.reduce-motion .nav-cta:hover{ transform: none; }

/* =====================================================================
   TIER 4 — secondary WP nav (the EXISTING native navigation block, ref:4 —
   News / Opportunities▾ / Subjects▾ / About / Submit / Newsletter, see
   nav-content.html). Demoted from the old v1.2.0 chunky-bevel ".aiage-nav"
   treatment to a flat, static, thin bar beneath the new chunky nav — mirrors
   news-preview/preview-news-front.html's .wp-subnav pattern (the approved
   coherence target). className was renamed aiage-nav → aiage-subnav in
   parts/header.html specifically so the OLD v1.2.0 bevel rules (style.css,
   the "V9-BOLD-2" section, `.aiage-nav .wp-block-navigation-item__content`)
   no longer match this element — those old rules become harmless dead CSS
   rather than fighting these new ones (see DEPLOY-STEPS.md §Risks for the
   cleanup note). !important is used here defensively, matching the existing
   style.css convention for overriding core navigation-block defaults.
   ===================================================================== */
.aiage-subnav-wrap{ background: var(--white); border-bottom: 2px solid var(--ink); position: relative; z-index: 40; }
.aiage-subnav-wrap .wp-block-group{ padding-top: 6px; padding-bottom: 6px; }
.aiage-subnav .wp-block-navigation-item__content{
  font-family: var(--mono) !important; font-size: 11px !important; font-weight: 600 !important;
  letter-spacing: .08em !important; text-transform: uppercase !important;
  color: var(--ink-2) !important; padding: 8px 12px !important;
  background: none !important; border: none !important; border-bottom: 2px solid transparent !important;
  box-shadow: none !important; transform: none !important;
  transition: color .15s, border-color .15s !important;
}
.aiage-subnav .wp-block-navigation-item__content:hover,
.aiage-subnav .wp-block-navigation-item__content:focus-visible{
  color: var(--teal) !important; border-bottom-color: var(--yellow) !important; background: none !important;
}
.aiage-subnav .wp-block-navigation-item[aria-current="page"] > .wp-block-navigation-item__content,
.aiage-subnav .current-menu-item > .wp-block-navigation-item__content{
  color: var(--teal) !important; border-bottom-color: var(--teal) !important;
}
/* Opportunities ▾ / Subjects ▾ dropdown panel — flat white card */
.aiage-subnav .wp-block-navigation__submenu-container{
  background: var(--white); border: 2px solid var(--ink); border-radius: 0;
  min-width: 240px; padding: 6px 0; box-shadow: 6px 6px 0 rgba(10,10,10,.14);
}
.aiage-subnav .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  font-family: var(--sans) !important; font-size: 12.5px !important; font-weight: 500 !important;
  text-transform: none !important; letter-spacing: .02em !important; color: var(--ink) !important;
  padding: 8px 16px !important; border-bottom: none !important;
}
.aiage-subnav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.aiage-subnav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible{
  background: rgba(255,214,10,.18) !important; color: var(--ink) !important; border-bottom: none !important;
}
.aiage-subnav .wp-block-navigation-submenu__toggle{ color: var(--ink-2); }
@media (max-width: 680px){
  .aiage-subnav-wrap .wp-block-group{ flex-direction: column; align-items: flex-start; }
}

/* =====================================================================
   FOOTER — 5-col grid, socials, Razorpay badge, owner-marks, copyright.
   The pre-existing .aiage-visits-line rules (style.css, unchanged) continue
   to style the WP Statistics band reused verbatim in the new footer; no new
   rule is needed for it here.
   ===================================================================== */
.aap-footer{ background: var(--ink); color: var(--bg); padding: clamp(40px,5vw,64px) 0 0; }
.shell{ max-width: var(--aap-max); margin: 0 auto; padding: 0 var(--aap-gutter); }
.foot-grid{ display: grid; grid-template-columns: 1fr; gap: 28px; padding-bottom: 32px; }
@media (min-width: 560px) and (max-width: 799px){ .foot-grid{ grid-template-columns: 1fr 1fr; } }
@media (min-width: 800px){ .foot-grid{ grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr; } }
.foot-brand{ font-family: var(--display); font-weight: 800; font-size: 20px; }
.foot-brand a{ color: var(--bg); text-decoration: none; }
.foot-brand em{ font-family: var(--serif); font-style: italic; color: var(--yellow); font-weight: 400; }
.foot-col h4{ font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: rgba(250,250,248,.55); margin: 0 0 10px; }
.foot-col a{ display: block; color: rgba(250,250,248,.85); text-decoration: none; font-size: 14px; padding: 4px 0; }
.foot-col a:hover, .foot-col a[aria-current="page"]{ color: var(--yellow); }

.foot-meta{ max-width: var(--aap-max); margin: 0 auto; padding: 18px var(--aap-gutter) 0; border-top: 1px solid rgba(255,255,255,.12); display: flex; flex-direction: column; gap: 16px; }
.foot-social{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; max-width: 100%; }
.foot-social a, .foot-social .foot-social-item{ display: inline-flex; align-items: center; gap: 7px; font-family: var(--sans); font-size: 13px; color: rgba(250,250,248,.72); text-decoration: none; }
.foot-social a:hover{ color: var(--yellow); }
.foot-social svg{ flex: none; width: 16px; height: 16px; }
.foot-social .nolink{ color: rgba(250,250,248,.5); }

.foot-pay{ padding-top: 14px; border-top: 1px solid rgba(255,255,255,.10); display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; max-width: 100%; }
.foot-pay-main{ display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: rgba(250,250,248,.75); text-decoration: none; }
.foot-pay-main:hover{ color: var(--yellow); }
.rzp-badge{ background: #fff; border-radius: 5px; padding: 4px 8px; display: inline-flex; align-items: center; box-shadow: 0 1px 3px rgba(0,0,0,.35); }
.rzp-badge img{ height: 16px; width: auto; display: block; }
.foot-pay-note{ font-family: var(--sans); font-size: 12px; color: rgba(250,250,248,.42); }

.owner-mark{ background: rgba(255,214,10,.25); outline: 2px dashed var(--yellow-2); outline-offset: 2px; font: inherit; color: inherit; padding: 0 4px; }

.foot-copy{ display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 20px var(--aap-gutter); margin-top: 18px; border-top: 1px solid rgba(255,255,255,.10); font-family: var(--mono); font-size: 11px; letter-spacing: .04em; color: rgba(250,250,248,.55); }
