/*
Theme Name:    Divi Child — SPP Redesign
Theme URI:     https://sheepdogprosperitypartners.com
Description:   Child theme for Divi (parent theme), holds SPP-redesign customizations: custom CSS, the [spp_discovery_url] shortcode, and any future function additions. Created during the 2026-04 SPP redesign so customizations survive parent-theme updates.
Author:        Noah Green CPA CFE
Author URI:    https://sheepdogprosperitypartners.com
Template:      Divi
Version:       1.0.0
Status:        DRAFT — to be installed at Phase 2 Step 5 of the WordPress implementation plan.
*/

/* ============================================================
   SPP REDESIGN — CUSTOM CSS
   File 01 (visual style spec) styling beyond Divi defaults.
   Locked palette per PHASE1_APPROVED_2026-04-28.md (Q1 = differentiate sister-brand):
     SPP leads with charcoal + navy accent; reserves green for STR.
   ============================================================ */

:root {
  /* Locked palette (Q1) — reference everywhere via these custom properties
     so any future palette revision is one-place. */
  --spp-color-primary:        #2d3940;  /* charcoal — headings, dominant surface */
  --spp-color-accent:         #066aab;  /* navy — primary CTA, link, key headings */
  --spp-color-bg-section:     #f3f3f3;  /* light gray — section backgrounds */
  --spp-color-bg-canvas:      #ffffff;  /* white — page canvas */
  --spp-color-alert:          #cf2e2e;  /* red — alert / form validation */
  /* Deliberately omitted: STR's vibrant green #00d084. Do not introduce. */

  /* Spacing rhythm (file 01) */
  --spp-section-pad-desktop:  60px;
  --spp-section-pad-tablet:   40px;
  --spp-section-pad-mobile:   30px;
  --spp-card-pad:             24px;
  --spp-rhythm-block:         32px;

  /* Typography stack (Phase 1 candidate default; Phase 2 validation may revise) */
  --spp-font-heading-serif:   'Lora', Georgia, serif;
  --spp-font-heading-sans:    'Montserrat', system-ui, sans-serif;
  --spp-font-body:            'Lato', 'Open Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* --- Button focus indicators (accessibility, file 08 D) --------- */
.et_pb_button:focus,
a.et_pb_button:focus,
input[type="submit"]:focus,
button:focus {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* --- Footer block layout (file 02 wireframes — footer) ---------- */
.spp-footer-veteran-line {
  font-size: 14px;
  font-weight: 600;
  margin-top: 16px;
  /* Q3-conditional: visible only if the veteran line is included.
     Working assumption (locked 2026-04-28) = include. */
}

.spp-footer-dba-disclosure {
  font-size: 13px;
  margin-top: 4px;
  opacity: 0.85;
  /* Q5-conditional: visible only if DBA disclosure is included.
     Working assumption (locked 2026-04-28) = include light footer one-liner. */
}

.spp-footer-pre-engagement {
  font-size: 12px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  opacity: 0.85;
}

.spp-footer-pre-engagement a {
  text-decoration: underline;
}

/* --- Hero rhythm (file 01 — measured-executive cadence) --------- */
/* Hero subhead spacing: more generous than STR's urgent rhythm. */
.spp-hero .et_pb_text + .et_pb_button_module_wrapper {
  margin-top: 24px;
}

/* --- Service card consistency (file 02 — Services page) --------- */
.spp-service-card {
  padding: 24px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 6px;
  height: 100%;
}

.spp-service-card h3 {
  margin-top: 0;
  margin-bottom: 12px;
}

/* --- Process step numbering (file 02 — Process page) ------------ */
.spp-process-step-number {
  font-family: var(--spp-font-heading-serif);
  font-size: 36px;
  font-weight: 700;
  opacity: 0.4;
  display: block;
  line-height: 1;
  margin-bottom: 12px;
  color: var(--spp-color-accent);
}

/* --- Disclaimer block (file 06) on Contact page ----------------- */
#disclaimer {
  scroll-margin-top: 100px; /* offset for sticky header on anchor jump */
  padding: var(--spp-rhythm-block);
  background: var(--spp-color-bg-section);
  border-radius: 6px;
  margin-top: 48px;
  border-left: 3px solid var(--spp-color-accent);
}

#disclaimer h3 {
  margin-top: 0;
  color: var(--spp-color-primary);
}

/* --- Sister-brand legibility safeguard (file 01 — Q1) ----------- */
/* SPP palette deliberately excludes STR's vibrant green (#00d084).
   Locked palette is defined in :root above as --spp-color-primary,
   --spp-color-accent. Apply via Divi Customizer to module-level
   color settings, not via this override. */

/* ============================================================
 * Topic 3D + duplicate-H1 suppression (added 2026-04-29)
 *   - Hide Divi auto-rendered page-title H1 since each page's
 *     post_content carries its own strategic H1 per file 03.
 *   - Suppress sidebar widgets site-wide (Topic 3D).
 * ============================================================ */
.entry-title.main_title,
.et_pb_pagebuilder_layout .entry-title.main_title {
    display: none;
}

#sidebar,
.et_pb_widget_area,
body.et_full_width_page #sidebar,
body.et_right_sidebar #sidebar,
body.et_left_sidebar #sidebar {
    display: none !important;
}

/* When sidebar is hidden, expand main content to full container width. */
body.et_right_sidebar #left-area,
body.et_left_sidebar #left-area {
    width: 100% !important;
    float: none;
}

/* ============================================================
 * Topic 3E polish — Google Fonts + palette element binding
 * Added 2026-04-29.
 * ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Lora:wght@400;600;700&family=Lato:wght@400;600;700&family=Montserrat:wght@400;600;700&display=swap');

body {
    font-family: var(--spp-font-body);
    color: var(--spp-color-primary);
    background: var(--spp-color-bg-canvas);
    line-height: 1.55;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--spp-font-heading-serif);
    color: var(--spp-color-primary);
}

h3, h4 {
    font-family: var(--spp-font-heading-sans);
}

a {
    color: var(--spp-color-accent);
}

/* Buttons */
.et_pb_button,
a.et_pb_button,
button.et_pb_button {
    background-color: var(--spp-color-accent);
    color: #ffffff !important;
    border: 2px solid var(--spp-color-accent);
    padding: 12px 24px !important;
    font-family: var(--spp-font-body);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 6px;
    transition: background-color 150ms ease, color 150ms ease;
}

.et_pb_button:hover,
a.et_pb_button:hover {
    background-color: #054d83 !important;
    color: #ffffff !important;
}

.et_pb_button_secondary,
a.et_pb_button_secondary {
    background-color: transparent !important;
    color: var(--spp-color-accent) !important;
}

.et_pb_button_secondary:hover {
    background-color: var(--spp-color-accent) !important;
    color: #ffffff !important;
}

/* Section padding rhythm */
.spp-hero, .spp-value-props, .spp-credibility, .spp-closing-cta,
.spp-page-header, .spp-services-grid, .spp-process-steps, .spp-page-cta,
.spp-direct-schedule, .spp-form-pane, .spp-disclaimer,
.spp-about-body, .spp-principles, .spp-principal {
    padding: 32px 24px;
    max-width: 1080px;
    margin: 0 auto;
}

.spp-hero {
    text-align: center;
    padding: var(--spp-section-pad-desktop) 24px;
}

.spp-cta-row {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 24px;
}

.spp-services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 24px;
    padding: 32px 24px;
    max-width: 1080px;
    margin: 0 auto;
}

.spp-process-steps {
    max-width: 720px;
}

.spp-process-step {
    margin-bottom: var(--spp-rhythm-block);
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(0,0,0,0.06);
}

.spp-process-step:last-child {
    border-bottom: none;
}

@media (max-width: 768px) {
    .spp-hero, .spp-page-header {
        padding: var(--spp-section-pad-mobile) 16px;
    }
    .spp-cta-row {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ============================================================
 * 3E polish — 2026-04-30
 *   - Button text-decoration safety (DISCOVERY CALL footer artifact fix)
 *   - Value-props 3-column grid per file 02 wireframe
 *   - Section centering for credibility / closing-cta / page-header / page-cta
 * ============================================================ */

/* Button text-decoration safety: prevent any underline/strikethrough bleed onto Divi buttons */
.et_pb_button,
a.et_pb_button,
.et_pb_button:hover,
a.et_pb_button:hover,
.et_pb_button:focus,
a.et_pb_button:focus {
    text-decoration: none !important;
}

/* Value-props section: file 02 wants 3-column on desktop, stacked on mobile, all centered */
.spp-value-props {
    text-align: center;
}
.spp-value-props > h2 {
    text-align: center;
    margin: 0 auto 24px auto;
}
.spp-value-props .spp-value-prop {
    text-align: center;
}
.spp-value-props .spp-value-prop h3 {
    text-align: center;
}

@media (min-width: 768px) {
    .spp-value-props {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
        align-items: start;
    }
    .spp-value-props > h2 {
        grid-column: 1 / -1;
        margin-bottom: 8px;
    }
}

/* Credibility strip + closing CTA: centered text per file 01 measured-executive cadence */
.spp-credibility,
.spp-closing-cta {
    text-align: center;
}

/* Inner-page header (Services/Process/About/Contact): centered */
.spp-page-header {
    text-align: center;
}
.spp-page-header h1,
.spp-page-header p {
    text-align: center;
}

/* Inner-page CTA strip */
.spp-page-cta {
    text-align: center;
}

/* ============================================================
 * 3E polish v2 — 2026-04-30 — specificity escalation
 *
 * Reason: Divi parent CSS uses .et_pb_pagebuilder_layout descendant
 * selectors (specificity 0,2,0) which beat plain .et_pb_button etc.
 * (0,1,0). Cache-state changes whether child wins → unstable rendering.
 *
 * Fix: prefix all child rules with body.et_pb_pagebuilder_layout to
 * reach (0,2,X) tier, plus !important on values that must win across
 * Divi's static-CSS regenerations.
 * ============================================================ */

/* Buttons: solid accent fill across all contexts */
body.et_pb_pagebuilder_layout .et_pb_button,
body.et_pb_pagebuilder_layout a.et_pb_button {
    background-color: var(--spp-color-accent) !important;
    color: #ffffff !important;
    border: 2px solid var(--spp-color-accent) !important;
    padding: 12px 24px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border-radius: 6px !important;
    text-decoration: none !important;
}

body.et_pb_pagebuilder_layout .et_pb_button:hover,
body.et_pb_pagebuilder_layout a.et_pb_button:hover {
    background-color: #054d83 !important;
    color: #ffffff !important;
    border-color: #054d83 !important;
}

body.et_pb_pagebuilder_layout .et_pb_button_secondary,
body.et_pb_pagebuilder_layout a.et_pb_button_secondary {
    background-color: transparent !important;
    color: var(--spp-color-accent) !important;
}

body.et_pb_pagebuilder_layout .et_pb_button_secondary:hover {
    background-color: var(--spp-color-accent) !important;
    color: #ffffff !important;
}

/* Hero section: centered, padded, max-width */
body.et_pb_pagebuilder_layout .spp-hero {
    text-align: center !important;
    padding: 60px 24px !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
}

body.et_pb_pagebuilder_layout .spp-hero .spp-cta-row {
    display: flex !important;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 24px;
}

/* Value-props: centered text on mobile, 3-col grid on desktop */
body.et_pb_pagebuilder_layout .spp-value-props {
    text-align: center !important;
    padding: 32px 24px !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
}

@media (min-width: 768px) {
    body.et_pb_pagebuilder_layout .spp-value-props {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
        align-items: start;
    }
    body.et_pb_pagebuilder_layout .spp-value-props > h2 {
        grid-column: 1 / -1;
    }
}

/* Other named sections */
body.et_pb_pagebuilder_layout .spp-credibility,
body.et_pb_pagebuilder_layout .spp-closing-cta,
body.et_pb_pagebuilder_layout .spp-page-header,
body.et_pb_pagebuilder_layout .spp-page-cta,
body.et_pb_pagebuilder_layout .spp-direct-schedule,
body.et_pb_pagebuilder_layout .spp-form-pane,
body.et_pb_pagebuilder_layout .spp-disclaimer,
body.et_pb_pagebuilder_layout .spp-about-body,
body.et_pb_pagebuilder_layout .spp-principles,
body.et_pb_pagebuilder_layout .spp-principal {
    text-align: center !important;
    padding: 32px 24px !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
}

/* Process step border separator (clean separation) */
body.et_pb_pagebuilder_layout .spp-process-step {
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(0,0,0,0.06);
    text-align: center !important;
}

body.et_pb_pagebuilder_layout .spp-process-step:last-child {
    border-bottom: none;
}

/* ============================================================
 * 3E polish v3 — 2026-04-30 — ID-prefix sledgehammer
 *
 * Reason: even body.et_pb_pagebuilder_layout (specificity 0,2,X)
 * loses to Divi's TB-context rules using et-tb-has-template +
 * descendant chains. Use #page-container (specificity 1,X,X) to
 * guarantee win over any class-only cascade.
 * ============================================================ */

/* Buttons — ID-anchored override */
#page-container .et_pb_button,
#page-container a.et_pb_button {
    background-color: var(--spp-color-accent) !important;
    color: #ffffff !important;
    border: 2px solid var(--spp-color-accent) !important;
    padding: 12px 24px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border-radius: 6px !important;
    text-decoration: none !important;
    display: inline-block !important;
}

#page-container .et_pb_button:hover,
#page-container a.et_pb_button:hover {
    background-color: #054d83 !important;
    color: #ffffff !important;
    border-color: #054d83 !important;
}

#page-container .et_pb_button_secondary,
#page-container a.et_pb_button_secondary {
    background-color: transparent !important;
    color: var(--spp-color-accent) !important;
}

#page-container .et_pb_button_secondary:hover {
    background-color: var(--spp-color-accent) !important;
    color: #ffffff !important;
}

/* Hero — ID-anchored centering */
#page-container .spp-hero {
    text-align: center !important;
    padding: 60px 24px !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
}

/* Value-props centering + grid */
#page-container .spp-value-props {
    text-align: center !important;
    padding: 32px 24px !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
}

@media (min-width: 768px) {
    #page-container .spp-value-props {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
        align-items: start;
    }
    #page-container .spp-value-props > h2 {
        grid-column: 1 / -1;
    }
}

/* All other named SPP sections */
#page-container .spp-credibility,
#page-container .spp-closing-cta,
#page-container .spp-page-header,
#page-container .spp-page-cta,
#page-container .spp-direct-schedule,
#page-container .spp-form-pane,
#page-container .spp-disclaimer,
#page-container .spp-about-body,
#page-container .spp-principles,
#page-container .spp-principal {
    text-align: center !important;
    padding: 32px 24px !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
}

/* CTA row layout */
#page-container .spp-cta-row {
    display: flex !important;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 24px;
}

/* Process step border separator */
#page-container .spp-process-step {
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(0,0,0,0.06);
    text-align: center !important;
}

#page-container .spp-process-step:last-child {
    border-bottom: none;
}

/* ============================================================
   V4 polish hotfix — 2026-05-01
   Scope: About page (41) principles list + Contact page (42) form alignment
   Rollback: restore from style.css.bak-pre-v4-polish-2026-05-01
   ============================================================ */

/* About: remove visible bullets, keep centered stacked principles */
#page-container .spp-principles ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 16px auto 0 !important;
    max-width: 560px !important;
}
#page-container .spp-principles li {
    margin: 6px 0 !important;
    padding: 0 !important;
    display: block !important;
}

/* Contact: center form container, left-align form internals */
#page-container .spp-form-pane .wpforms-container,
#page-container .spp-form-pane form.wpforms-form {
    max-width: 560px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: left !important;
}
#page-container .spp-form-pane .wpforms-form .wpforms-field,
#page-container .spp-form-pane .wpforms-form .wpforms-field-container,
#page-container .spp-form-pane .wpforms-form .wpforms-field-label,
#page-container .spp-form-pane .wpforms-form .wpforms-field-description,
#page-container .spp-form-pane .wpforms-form .wpforms-field-sublabel,
#page-container .spp-form-pane .wpforms-form .wpforms-required-label {
    text-align: left !important;
}
#page-container .spp-form-pane .wpforms-form .wpforms-submit-container {
    text-align: center !important;
}

/* ============================================================
   /daily-dd/ page — 2026-05-02
   Scope: Daily Due Diligence editorial home page
   Rollback: restore from style.css.bak-pre-daily-dd-2026-05-02
   ============================================================ */

#page-container .spp-daily-dd-audience,
#page-container .spp-daily-dd-themes,
#page-container .spp-daily-dd-insights,
#page-container .spp-daily-dd-articles,
#page-container .spp-daily-dd-tools,
#page-container .spp-daily-dd-closing {
    text-align: center !important;
    padding: 32px 24px !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
}

#page-container .spp-daily-dd-subhead {
    max-width: 720px !important;
    margin: 12px auto 24px !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
    color: rgba(0,0,0,0.75) !important;
}

#page-container .spp-daily-dd-audience-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 16px auto 0 !important;
    max-width: 720px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 8px 12px !important;
}

#page-container .spp-daily-dd-audience-list li {
    margin: 0 !important;
    padding: 6px 14px !important;
    background: rgba(0,0,0,0.05);
    border-radius: 999px;
    font-size: 14px;
    line-height: 1.4;
}

#page-container .spp-daily-dd-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
    gap: 16px !important;
    margin: 20px auto 0 !important;
    max-width: 960px !important;
    text-align: left !important;
}

#page-container .spp-daily-dd-card {
    border: 1px solid rgba(0,0,0,0.08) !important;
    border-radius: 8px !important;
    padding: 20px !important;
    background: white !important;
}

#page-container .spp-daily-dd-card h3 {
    margin: 0 0 6px !important;
    font-size: 16px !important;
    line-height: 1.35 !important;
}

#page-container .spp-daily-dd-card-meta {
    margin: 0 !important;
    color: rgba(0,0,0,0.6) !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
}

#page-container .spp-daily-dd-coming-soon {
    opacity: 0.92;
}

#page-container .spp-daily-dd-coming-soon-label {
    display: inline-block !important;
    margin-top: 12px !important;
    padding: 3px 10px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    background: rgba(0,0,0,0.06) !important;
    color: rgba(0,0,0,0.65) !important;
    border-radius: 999px !important;
}

/* ============================================================
   DAILY DD NATIVE ARCHIVE (2026-05-05)
   Long-form reading treatment for category=daily-dd posts +
   archive listing on the /daily-dd/ hub.
   Scoped via body classes set by spp_daily_dd_body_class().
   Pre-edit backup at style.css.bak-pre-dd-archive-2026-05-05.
   ============================================================ */

/* --- Article reading width + chrome suppression --- */
body.spp-daily-dd-article #main-content,
body.spp-daily-dd-article .et_pb_section,
body.spp-daily-dd-article .et_pb_row {
  background: var(--spp-color-bg-canvas);
}

body.spp-daily-dd-article #left-area {
  width: 100%;
  padding-right: 0;
  max-width: 720px;
  margin: 0 auto;
  float: none;
}

body.spp-daily-dd-article #sidebar {
  display: none;
}

body.spp-daily-dd-article .container.et_right_sidebar #left-area,
body.spp-daily-dd-article .container.et_left_sidebar #left-area,
body.spp-daily-dd-article .container.et_full_width_page #left-area {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  float: none;
  padding: 0;
}

body.spp-daily-dd-article .container {
  max-width: 760px;
  width: 92%;
}

body.spp-daily-dd-article .et_post_meta_wrapper h1.entry-title {
  font-family: var(--spp-font-heading-serif);
  font-size: 38px;
  line-height: 1.2;
  color: var(--spp-color-primary);
  margin-bottom: 8px;
}

body.spp-daily-dd-article .et_post_meta_wrapper p.post-meta,
body.spp-daily-dd-article .et_post_meta_wrapper .post-meta {
  font-size: 13px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: rgba(45, 57, 64, 0.65);
  margin-bottom: 24px;
}

body.spp-daily-dd-article .entry-content {
  font-family: var(--spp-font-body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--spp-color-primary);
}

body.spp-daily-dd-article .entry-content p {
  margin-bottom: 1.2em;
}

body.spp-daily-dd-article .entry-content h2 {
  font-family: var(--spp-font-heading-serif);
  font-size: 26px;
  line-height: 1.25;
  color: var(--spp-color-primary);
  margin-top: 2em;
  margin-bottom: 0.6em;
  border-left: 3px solid var(--spp-color-accent);
  padding-left: 14px;
}

body.spp-daily-dd-article .entry-content h3 {
  font-family: var(--spp-font-heading-serif);
  font-size: 20px;
  margin-top: 1.6em;
  margin-bottom: 0.4em;
  color: var(--spp-color-primary);
}

body.spp-daily-dd-article .entry-content strong {
  color: var(--spp-color-primary);
}

body.spp-daily-dd-article .entry-content a {
  color: var(--spp-color-accent);
  text-decoration: underline;
}

body.spp-daily-dd-article .entry-content .spp-daily-dd-dek {
  font-family: var(--spp-font-heading-serif);
  font-size: 19px;
  line-height: 1.5;
  color: rgba(45, 57, 64, 0.85);
  border-left: 3px solid var(--spp-color-accent);
  padding-left: 14px;
  margin-bottom: 8px;
}

body.spp-daily-dd-article .entry-content .spp-daily-dd-byline {
  font-size: 13px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: rgba(45, 57, 64, 0.65);
  margin-bottom: 32px;
}

body.spp-daily-dd-article .entry-content .spp-daily-dd-rule {
  border: none;
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  margin: 36px 0 20px 0;
}

body.spp-daily-dd-article .entry-content .spp-daily-dd-disclaimer {
  font-size: 13px;
  line-height: 1.55;
  color: rgba(45, 57, 64, 0.7);
}

/* Hide author chrome / category meta blocks Divi adds by default
   on single posts; comments are usually closed but ensure no
   leftover comment chrome leaks into the reading lane. */
body.spp-daily-dd-article .nav-single,
body.spp-daily-dd-article .et_post_meta_wrapper .updated,
body.spp-daily-dd-article #comment-wrap,
body.spp-daily-dd-article .et_audio_container,
body.spp-daily-dd-article .et-social-icons {
  display: none;
}

/* --- Daily DD archive listing on /daily-dd/ hub --- */
.spp-daily-dd-archive {
  padding: 48px 24px 40px 24px;
  background: var(--spp-color-bg-canvas);
}

.spp-daily-dd-archive > h2 {
  font-family: var(--spp-font-heading-serif);
  font-size: 28px;
  color: var(--spp-color-primary);
  margin-bottom: 24px;
  border-left: 3px solid var(--spp-color-accent);
  padding-left: 14px;
}

.spp-daily-dd-archive-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

@media (min-width: 768px) {
  .spp-daily-dd-archive-list {
    grid-template-columns: 1fr 1fr;
  }
}

.spp-daily-dd-archive-item {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 6px;
  padding: 24px;
  display: flex;
  flex-direction: column;
}

.spp-daily-dd-archive-item .spp-daily-dd-archive-date {
  font-size: 12px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: rgba(45, 57, 64, 0.65);
  margin: 0 0 8px 0;
}

.spp-daily-dd-archive-item .spp-daily-dd-archive-title {
  font-family: var(--spp-font-heading-serif);
  font-size: 20px;
  line-height: 1.3;
  margin: 0 0 10px 0;
  color: var(--spp-color-primary);
}

.spp-daily-dd-archive-item .spp-daily-dd-archive-title a {
  color: var(--spp-color-primary);
  text-decoration: none;
}

.spp-daily-dd-archive-item .spp-daily-dd-archive-title a:hover {
  color: var(--spp-color-accent);
  text-decoration: underline;
}

.spp-daily-dd-archive-item .spp-daily-dd-archive-dek {
  font-size: 15px;
  line-height: 1.55;
  color: rgba(45, 57, 64, 0.85);
  margin: 0 0 16px 0;
  flex: 1 0 auto;
}

.spp-daily-dd-archive-item .spp-daily-dd-archive-readmore {
  margin: 0;
}

.spp-daily-dd-archive-item .spp-daily-dd-archive-readmore a {
  font-size: 13px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--spp-color-accent);
  text-decoration: none;
  border-bottom: 1px solid var(--spp-color-accent);
  padding-bottom: 1px;
}

.spp-daily-dd-archive-item .spp-daily-dd-archive-readmore a:hover {
  color: var(--spp-color-primary);
  border-bottom-color: var(--spp-color-primary);
}

.spp-daily-dd-archive-empty {
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: var(--spp-color-bg-section);
  border-radius: 6px;
  padding: 24px;
}
