/* ============================================================
   lapis-overrides.css — split out of lapis.css 2026-06-04 (v1.1.1)
   per ruling: lapis.css must stay BYTE-IDENTICAL to
   PWG Web Design/assets/pwg.css (contract 08 §4). All site-specific
   overrides live here, enqueued AFTER lapis.css.
   ============================================================ */

/* The PDL utility classes get redefined to LAPIS tokens */
.palazzo-burgundy {
  background-color: var(--navy) !important;
  color: var(--vellum) !important;
}
.palazzo-cream {
  background-color: var(--vellum) !important;
  color: var(--ink) !important;
}
.palazzo-gold {
  background-color: var(--gold) !important;
  color: var(--navy) !important;
}
.palazzo-eyebrow { color: var(--gold) !important; }
.palazzo-border { border-color: var(--gold-hair) !important; }

/* Footer newsletter band "Stay on the Wrist of the Market" */
.palazzo-footer-newsletter {
  background: var(--navy) !important;
  color: var(--vellum) !important;
  padding: 88px 40px !important;
  border-top: 1px solid rgba(196,160,94,0.3) !important;
}
.palazzo-footer-newsletter h3 {
  font-family: var(--display) !important;
  font-weight: 400 !important;
  font-size: clamp(28px, 4vw, 42px) !important;
  color: var(--vellum) !important;
  margin: 0 0 20px !important;
  text-align: center !important;
}
.palazzo-footer-newsletter p {
  color: rgba(239,231,210,0.78) !important;
  font-family: var(--body) !important;
  font-size: 18px !important;
  text-align: center !important;
  max-width: 540px !important;
  margin: 0 auto 36px !important;
  line-height: 1.5 !important;
}

/* Newsletter card (the "Subscribe to Our Newsletter" box) */
.palazzo-newsletter-card,
.palazzo-newsletter-popup {
  background: var(--navy) !important;
  border: 1px solid rgba(196,160,94,0.4) !important;
  color: var(--vellum) !important;
}
.palazzo-newsletter-card h3,
.palazzo-newsletter-card h2 {
  color: var(--vellum) !important;
  font-family: var(--display) !important;
}
.palazzo-newsletter-card label,
.palazzo-newsletter-card p {
  color: rgba(239,231,210,0.78) !important;
  font-family: var(--body) !important;
}

/* WatchTrack-rendered form chrome */
.palazzo-wt-form { color: var(--vellum) !important; }

.palazzo-wt-form input[type="email"],
.palazzo-wt-form input[type="text"],
.palazzo-wt-form input[type="tel"],
.palazzo-wt-form textarea,
.palazzo-wt-form select {
  background: #fff !important;
  border: 1px solid var(--mist) !important;
  border-radius: 0 !important;
  padding: 14px 15px !important;
  font-family: var(--body) !important;
  font-size: 16px !important;
  color: var(--ink) !important;
}
.palazzo-wt-form input:focus,
.palazzo-wt-form textarea:focus,
.palazzo-wt-form select:focus {
  outline: none !important;
  border-color: var(--gold) !important;
}

/* Submit button — LAPIS gold CTA */
.palazzo-wt-form button[type="submit"],
.palazzo-wt-form input[type="submit"],
.palazzo-wt-form .palazzo-submit,
.palazzo-wt-form .submit-btn {
  background: var(--gold) !important;
  color: var(--navy) !important;
  border: 1px solid var(--gold) !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 18px 32px !important;
  min-height: 52px !important;
  cursor: pointer !important;
  transition: background 0.18s ease !important;
}
.palazzo-wt-form button[type="submit"]:hover,
.palazzo-wt-form input[type="submit"]:hover,
.palazzo-wt-form .palazzo-submit:hover {
  background: #b8924d !important;
  border-color: #b8924d !important;
}

/* ============================================================
   ELEMENTOR PRO SECTION OVERRIDES — catch any remaining burgundy
   bands not in our Kit swap (specific section IDs that hold inline
   color overrides).
   ============================================================ */

/* The Subscribe to Our Newsletter inner section */
.elementor-element-ff038ef,
.elementor-element-62e409e,
.elementor-element-1cce70b,
.elementor-element-79ce086 {
  background-color: var(--navy) !important;
}

/* PDL-era named utility classes that survived */
.elementor-section[style*="#5B0004"],
.elementor-section[style*="#5b0004"] { background-color: var(--navy) !important; }

/* Newsletter submit input element styling */
input[type="submit"].newsletter-submit,
button.newsletter-submit {
  background: var(--gold) !important;
  color: var(--navy) !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
}

/* Brand-Lapis legacy class kill — any old PDL burgundy inline */
[style*="background-color: #5B0004"],
[style*="background-color:#5B0004"],
[style*="background: #5B0004"],
[style*="background:#5B0004"] {
  background-color: var(--navy) !important;
}
[style*="color: #5B0004"],
[style*="color:#5B0004"] {
  color: var(--navy) !important;
}

/* Hello Elementor parent footer base background just in case */
footer.site-footer,
footer.elementor-location-footer {
  background: var(--navy) !important;
}

/* PDL Italic gold mark legacy */
.palazzo-italic-gold,
em.gold {
  font-family: var(--body) !important;
  font-style: italic !important;
  color: var(--gold) !important;
}

/* ── Sitewide one-H1 enforcement (2026-06-09) ──────────────────────────────
   The Hello Elementor page-header title is demoted from <h1> to
   <p class="entry-title pwg-page-eyebrow"> on PAGES (see child
   template-parts/single.php) so each page has a single content <h1>.
   These values are pinned (captured from the live <h1 class="entry-title">,
   flat across desktop+mobile) so the demoted <p> renders pixel-identical —
   a purely semantic change. Single POSTS keep their <h1>. */
.page-header .entry-title {
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: 40px;
	font-weight: 500;
	font-style: normal;
	line-height: 48px;
	letter-spacing: normal;
	text-transform: none;
	color: #2C2620; /* Batch 5A / F25: orphaned cold #0B1626 -> canon warm Inkbrown (matches F17 sitewide --ink) */
	margin: 8px 0 16px;
	padding: 0;
}

/* One-H1 (2026-06-09) — legal-page titles promoted <p> -> <h1> (Privacy /
   Authenticity / Shipping / Terms). Inherit the Text Editor widget's own
   (responsive) typography so the <h1> renders pixel-identical to the prior <p>;
   reset the <h1> UA size/weight/margin. Scoped to the 4 title widgets only. */
.elementor-element-b34e16d h1,
.elementor-element-241b53d3 h1,
.elementor-element-b92d6e6 h1,
.elementor-element-9f31835 h1 {
	font: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	color: inherit;
	margin: 0 0 14.4px;
}

/* Brand-archive stacked-hero CLS guard (Day+2 2026-06-15). Inside the stacked
   breakpoint the v19 Customizer rule `.pwgb-hero__img .mitered{width:fit-content}`
   + frame aspect-ratio + img{height:100%} is circular sizing: pre-image the
   frame collapses to the 28px miter pips, and the text column below drops
   ~360px when the image decodes (CLS flap 0<->0.32; forced-late-image repro).
   Deterministic width breaks the circle. Extra `.pwgb-hero` ancestor beats the
   Customizer rule (same-!important, later in cascade, lower specificity). */
@media (max-width: 860px) {
	.pwgb-hero .pwgb-hero__img .mitered {
		width: 100% !important;
		margin-left: 0 !important;
	}
	.pwgb-hero .pwgb-hero__frame {
		width: 100%;
	}
}

/* Brand-archive hero intro cold-CLS reservation (v1.1.10, 2026-06-20). Canonical
   copy of the #pwg-cls-guards inline rule (RUCSS regen safety). The intro <p>
   (drop-cap ::first-letter Italiana + Cormorant body) reflows ~+31px / one line
   on the cold fallback paint before the webfont settles → intra-column shift of
   the stats/CTA (desktop) + hero-grow page-shift (mobile, 1-col). Reserving the
   intro min-height (sized to the taller fallback render at each band) makes
   cold == warm. Validated delta 0 / statsTopShift 0 at 1366 / 900 / 390.
   Floor-only — never clips a longer or shorter brand intro. */
.pwgb-hero__intro { min-height: 290px; }
@media (max-width: 1100px) and (min-width: 861px) {
	.pwgb-hero__intro { min-height: 380px; }
}
@media (max-width: 860px) {
	.pwgb-hero__intro { min-height: 410px; }
}

/* ============================================================
   FOOTER MOBILE — 2026-06-14 PDP polish (sitewide footer #lapisftr1 .pwg-foot).
   FIX 6: hide the 4-up trust strip on mobile (redundant w/ buy-box + Service band).
   FIX D (supersedes the earlier single-stack Fix 5 — Michael 2026-06-14): keep the
   footer COLUMNAR on mobile, do NOT collapse to one stack. .pwg-foot__top has 4 kids
   (brand + SHOP + SERVICES + VISIT, the nav cols unclassed) → 2-col grid with the
   brand spanning full width, so the nav columns flow SHOP | SERVICES, then VISIT
   below-left. ~halves footer height vs a single stack, keeps the columnar feel.
   Newsletter stacks; links get ≥44px tap targets. Footer street address kept.
   !important beats the footer's later-in-DOM embedded <style> (non-important rules).
   ============================================================ */
@media (max-width: 760px) {
	footer .pwg-trust { display: none !important; }
	footer .pwg-foot__top { grid-template-columns: 1fr 1fr !important; gap: 30px 24px !important; }
	footer .pwg-foot__brand { grid-column: 1 / -1 !important; }
	footer .pwg-foot__news { grid-template-columns: 1fr !important; }
	footer .pwg-foot li { margin-bottom: 0 !important; }
	footer .pwg-foot li a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* ===== BRAND-POLISH 2026-06-18 drawer — kill "Account" ghost (mobile bleed + desktop render) ===== */
/* drawer-availability gate raised 761 -> 1201 (2026-06-28) to match the header-collapse
   breakpoint (lapis.css max-width:1200). Drawer is available/openable up to 1200px; hidden at >=1201. */
@media (min-width:1201px){ .pwg-drawer{ display:none !important; } }
.pwg-drawer{ overflow:hidden; }
.pwg-drawer:not(.open){ transform:translateY(-100%) !important; visibility:hidden !important; pointer-events:none !important; }
.pwg-drawer.open{ visibility:visible !important; pointer-events:auto !important; }
/* ===== END BRAND-POLISH drawer ===== */

/* ===== LEGAL / UTILITY PAGES -> Lapis (2026-06-18; purge old-brand policy template) =====
   Pairs with the _elementor_data transform that removed Libertinus + #5B0004/#FBB520 + Frame/Group.
   Scoped to the 7 legal/utility page IDs only. */
body.page-id-3, body.page-id-417, body.page-id-427, body.page-id-430,
body.page-id-4629, body.page-id-4676, body.page-id-10191, body.page-id-10469 { background-color: #FAF6E8; }
/* H1 -> single-tone lapis Italiana (replaces the old two-tone Libertinus #5B0004/#FBB520) */
body.page-id-3 h1, body.page-id-417 h1, body.page-id-427 h1, body.page-id-430 h1,
body.page-id-4629 h1, body.page-id-4676 h1, body.page-id-10191 h1, body.page-id-10469 h1 {
  font-family: 'Italiana', Georgia, serif !important;
  color: #0F2A52 !important; font-weight: 400 !important;
}
/* section headings -> lapis Marcellus */
body.page-id-3 h2, body.page-id-3 h3, body.page-id-417 h2, body.page-id-417 h3,
body.page-id-427 h2, body.page-id-427 h3, body.page-id-430 h2, body.page-id-430 h3,
body.page-id-4629 h2, body.page-id-4629 h3, body.page-id-4676 h2, body.page-id-4676 h3,
body.page-id-10191 h2, body.page-id-10191 h3, body.page-id-10469 h2, body.page-id-10469 h3 {
  font-family: 'Marcellus', Georgia, serif !important;
  color: #0F2A52 !important;
}
/* plain-template legal pages (cookie, do-not-sell): comfortable measure + lapis links */
body.page-id-4676 .page-content, body.page-id-4676 .entry-content, body.page-id-4676 article .elementor,
body.page-id-10191 .page-content, body.page-id-10191 .entry-content, body.page-id-10191 article .elementor {
  max-width: 62ch; margin-left: auto; margin-right: auto;
}
body.page-id-4676 a, body.page-id-10191 a { color: #0F2A52; }
/* ===== END legal/utility lapis ===== */

/* ============================================================
 * BATCH 4 · 2026-06-22 — F17 ink-token reconcile (full-site audit)
 * --ink was defined #0B1626 (cold near-black) in lapis.css:13 (the
 * pwg.css byte-identical contract region — must NOT be edited there)
 * while the PDP scope (.pdp-redesign in lapis-pdp-redesign.css) uses
 * the canon warm Inkbrown #2C2620 (CLAUDE.md §2). Non-PDP body copy
 * therefore rendered colder than canon. Michael decided 2026-06-22:
 * unify to #2C2620 sitewide. This override file loads AFTER lapis.css
 * (dep palazzo-lapis-canon), so this :root wins for non-PDP pages; on
 * PDPs .pdp-redesign already sets the same warm values, so no conflict.
 * Muted variants reconciled to the same warm base as the PDP for parity.
 * ============================================================ */
:root{
  --ink:     #2C2620;            /* warm Inkbrown — canon §2 */
  --ink-70:  rgba(44,38,32,0.70);
  --ink-55:  rgba(44,38,32,0.55);
}

/* ============================================================
 * SHOP / ARCHIVE PRODUCT CARDS — moved out of lapis.css (Batch 5A / F25, 2026-06-22)
 * to restore the lapis.css <-> pwg.css byte-identical contract. Originally shipped
 * 2026-06-19 (theme 1.1.32-1.1.34) as direct edits to lapis.css's .card block, which
 * silently diverged the canon file from pwg.css (next pwg.css re-sync would have
 * reverted the card-height/CLS fixes). This file loads AFTER lapis.css (dep
 * palazzo-lapis-canon), so these rules override the pwg.css base .card rules with an
 * IDENTICAL computed result — verified property-by-property, zero visual change.
 * Equal-height cards + PDP-matched type: title = Bodoni Moda lapis; eyebrow/meta/price/
 * affirm = Hanken Grotesk (both self-hosted via inc/typography.php). .card__rule
 * margin-top:auto bottom-aligns the price block; .card__model reserves 2 lines so titles
 * bottom-align. .pwgs grid/inquire = the 2026-06-19 even-card/row hotfix.
 * ============================================================ */
.card { height: 100%; }
.card__img { aspect-ratio: 1/1; }
.card__brand { font-family: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; }
.card__model { font-family: 'Bodoni Moda', Georgia, 'Times New Roman', serif; font-weight: 500; color: var(--navy); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(1.15em * 2); }
.card__meta { font-family: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif; font-weight: 600; color: #2C2620; letter-spacing: normal; }
.card__rule { margin-top: auto; }
.card__price { font-family: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif; font-size: 18px; font-weight: 500; color: var(--navy); letter-spacing: normal; }
.card__affirm { font-family: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: normal; }
.pwgs .grid { grid-auto-rows: 1fr; }
.pwgs .card__inquire { min-height: 64px; }

/* ============================================================
 * /sell/ — "WHAT WE'RE BUYING RIGHT NOW" LAPIS BAND + TOGGLE OVERFLOW FIX
 * Shipped 2026-07-28 (theme 1.1.47).
 * Bundle: SEO-Optimization/2026-07-28-reviews-strip-curation/
 *         PASTE-2026-07-28-SELL-LAPIS-BAND-OVERFLOW.txt  + ADDENDUM 1
 *
 * WHY THIS FILE AND NOT THE PAGE: the /sell/ markup AND its CSS live inline
 * in page 10200 post_content (hand-coded, wrapper id="pwg-sell"). That
 * <style> block renders inside <body>, i.e. AFTER this head-enqueued sheet,
 * so an EQUAL-specificity override would lose on document order. Every rule
 * below is therefore deliberately one step more specific than its page
 * counterpart (page: "#pwg-sell .buying ..."  ->  here: "#pwg-sell
 * section.buying ..."). Zero page content is touched; rollback is deleting
 * this block and reverting the style.css version bump.
 * ============================================================ */

/* D14 — named token, mirroring the existing --cream-on-navy pairing name.
 * --warn (#C08A2E) is fine as a FILL and on lapis, but as SMALL INK on a
 * light/near-white surface it measures 2.99:1 against the #FFFDF9 tag card
 * and fails WCAG AA (needs 4.5:1 at 9.5px). #96690F is the same gold family
 * darkened to 4.78:1 on that card. Use for small gold text on light grounds. */
:root{
  --gold-on-light: #96690F;
}

/* --- A · LAPIS BAND — scoped to section.buying ONLY.
 * .pwg-lead and every sibling section are deliberately untouched. --- */
#pwg-sell section.buying{ background: var(--navy); }
#pwg-sell section.buying .buying__head h2{ color: var(--vellum); }

/* A5 — measured on the new lapis ground: --success #2E7D5B = 2.85:1, which
 * fails BOTH the 4.5:1 text floor and the 3:1 non-text-graphic floor.
 * Text -> vellum (11.56:1). Status dot -> gold (5.79:1); gold keeps the dot
 * a distinct accent beside vellum text and reuses an existing token. */
#pwg-sell section.buying .buying__head .live{ color: var(--vellum); }
#pwg-sell section.buying .buying__head .live::before{ background: var(--gold); }

/* --- A6, as AMENDED by ADDENDUM 1 · "HOT" pill INK ONLY ---
 * Pre-existing AA failure, NOT introduced by this band: the cards stay vellum
 * and the pill sat at 2.99:1 on the #FFFDF9 card before this ship. Ink ->
 * --gold-on-light = 4.78:1. Chip shape, border, padding, font-size and
 * letter-spacing are UNCHANGED per the addendum. .hot.premium is excluded via
 * :not() because #2E7D5B already passes at 4.92:1 and must not move. */
#pwg-sell section.buying .tag .hot:not(.premium){ color: var(--gold-on-light); }

/* --- B · 8px horizontal overflow at <=390 ---
 * ROOT CAUSE (measured, not inferred): <button> computes white-space:nowrap,
 * so each button's default min-width:auto floor equals its full single-line
 * text width (164.33 + 224.81 + 2px border = 391.14px). flex-shrink therefore
 * has zero room, and .segmented is pinned at its min-content width inside a
 * 311px .toggle-row, spilling 8.07px past the 375px client box on each side
 * (justify-content:center) -> documentElement.scrollWidth 383 vs 375.
 * NOT the cause: box-sizing was ALREADY border-box via "#pwg-sell *".
 * FIX: release the floor (min-width:0) and let the labels wrap
 * (white-space:normal) so flex-shrink can actually do its job. This is the
 * bundle's stated "let it shrink" shape (B2) and is a verified no-op at 1440
 * (identical scrollWidth, .segmented width and button heights). */
#pwg-sell .toggle-row{ max-width: 100%; }
#pwg-sell .segmented{ max-width: 100%; }
#pwg-sell .segmented button{ min-width: 0; white-space: normal; }
