/*
 * Theme Name: Editorial Archive Child
 * Template:   astra
 * Version:    1.0
 *
 * Design system extracted from Google Stitch export.
 * Parent theme: Astra / Kadence / GeneratePress (update Template above to match)
 */

/* ============================================================
   1. GOOGLE FONTS IMPORT
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant:wght@500;600&family=Literata:ital,wght@0,400;0,700;1,400&display=swap');

/* ============================================================
   2. DESIGN TOKENS (CSS Custom Properties)
   ============================================================ */
:root {
  /* --- Primary (Deep Crimson) --- */
  --color-primary:            #5c0004;
  --color-primary-container:  #801111;
  --color-surface-tint:       #ac322c;
  --color-inverse-primary:    #ffb4ab;
  --color-on-primary:         #ffffff;
  --color-on-primary-container: #ff897d;

  /* --- Secondary (Muted Rose) --- */
  --color-secondary:           #8d4c45;
  --color-secondary-container: #ffaca2;
  --color-on-secondary:        #ffffff;

  /* --- Tertiary (Deep Navy) --- */
  --color-tertiary:            #002a51;
  --color-tertiary-container:  #004077;

  /* --- Surface Scale (Warm Parchment) --- */
  --color-surface:                    #fff9ed;
  --color-surface-bright:             #fff9ed;
  --color-surface-container-lowest:   #ffffff;
  --color-surface-container-low:      #fff4cd;
  --color-surface-container:          #f9eec8;
  --color-surface-container-high:     #f3e8c3;
  --color-surface-container-highest:  #ede2bd;
  --color-surface-variant:            #ede2bd;
  --color-surface-dim:                #e4dab5;
  --color-background:                 #fff9ed;

  /* --- Text --- */
  --color-on-surface:         #201b05;
  --color-on-surface-variant: #58413e;
  --color-on-background:      #201b05;
  --color-inverse-surface:    #363017;
  --color-inverse-on-surface: #fcf1cb;

  /* --- Outline / Borders --- */
  --color-outline:         #8c716d;
  --color-outline-variant: #e0bfbb;

  /* --- Error --- */
  --color-error:           #ba1a1a;
  --color-error-container: #ffdad6;
  --color-on-error:        #ffffff;

  /* --------------------------------------------------------
     Typography
  -------------------------------------------------------- */
  --font-headline: 'Cormorant', Georgia, serif;
  --font-body:     'Literata', Georgia, serif;

  /* --------------------------------------------------------
     Border Radius (sharp/editorial aesthetic)
  -------------------------------------------------------- */
  --radius:      0.125rem;  /* 2px  — default, near-square */
  --radius-lg:   0.25rem;   /* 4px */
  --radius-xl:   0.5rem;    /* 8px */
  --radius-pill: 0.75rem;   /* 12px — tags/pills */

  /* --------------------------------------------------------
     Spacing
  -------------------------------------------------------- */
  --section-gap:       6rem;    /* 96px between major sections */
  --content-max-width: 896px;   /* max-w-4xl equivalent */
  --prose-max-width:   60ch;    /* readable line length */

  /* --------------------------------------------------------
     Astra global palette mapping
     Maps Astra's own CSS vars to the design tokens above so
     every Astra component inherits this palette automatically.
     Slots: 0 Primary · 1 Accent/Links · 2 Text · 3 Background
             4 Muted · 5 Surface variant · 6 Outline · 7 Error
  -------------------------------------------------------- */
  --ast-global-color-0: #5c0004;   /* primary */
  --ast-global-color-1: #801111;   /* primary-container / links */
  --ast-global-color-2: #201b05;   /* on-surface (body text) */
  --ast-global-color-3: #fff9ed;   /* surface / background */
  --ast-global-color-4: #8c716d;   /* outline / muted text */
  --ast-global-color-5: #ede2bd;   /* surface-container-highest */
  --ast-global-color-6: #e0bfbb;   /* outline-variant */
  --ast-global-color-7: #ba1a1a;   /* error */

  /* Astra semantic tokens */
  --ast-body-color:          #201b05;
  --ast-link-color:          #801111;
  --ast-link-hover-color:    #5c0004;
  --ast-heading-color:       #801111;
  --ast-border-color:        #e0bfbb;
  --ast-header-bg-color:     rgba(255, 249, 237, 0.6);

  /* Astra button tokens */
  --ast-button-bg-color:         #801111;
  --ast-button-color:            #ffffff;
  --ast-button-bg-hover-color:   #5c0004;
  --ast-button-color-hover:      #ffffff;

  /* Astra typography tokens */
  --ast-body-font-family:    'Literata', Georgia, serif;
  --ast-heading-font-family: 'Cormorant', Georgia, serif;
  --ast-body-font-size:      17px;
  --ast-body-line-height:    1.8;
}

/* ============================================================
   3. BASE / RESET
   ============================================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.8;
  color: var(--color-on-surface);
  background-color: var(--color-background);
}

/* ============================================================
   4. TYPOGRAPHY
   ============================================================ */

/* --- Headline font applied to all heading levels --- */
h1, h2, h3, h4, h5, h6,
.editorial-headline {
  font-family: var(--font-headline);
  font-weight: 500;
  color: var(--color-primary-container);
  line-height: 1.15;
}

/* --- Scale --- */
h1 { font-size: clamp(3rem, 7vw, 5rem); }   /* Hero: 48–80px */
h2 { font-size: clamp(2rem, 4vw, 3rem); }   /* Section: 32–48px */
h3 { font-size: clamp(1.5rem, 3vw, 2rem); } /* Article: 24–32px */
h4 { font-size: 1.375rem; }
h5 { font-size: 1.125rem; }

/* --- Body --- */
p {
  font-size: 17px;
  line-height: 1.8;
  color: var(--color-on-surface);
  margin-bottom: 1.5rem;
}

/* --- Prose justification (apply .justified-text to article content) --- */
.justified-text {
  text-align: justify;
  text-justify: inter-word;
}

/* --- Drop cap (first paragraph of a post) --- */
.entry-content > p:first-of-type::first-letter,
.post-content > p:first-of-type::first-letter {
  font-family: var(--font-headline);
  font-size: 4rem;
  font-weight: 500;
  color: var(--color-primary-container);
  float: left;
  line-height: 0.85;
  margin-right: 0.1em;
  margin-top: 0.1em;
}

/* --- Italic / muted subheading --- */
.site-tagline,
.page-subtitle {
  font-size: 1.125rem;
  font-style: italic;
  color: var(--color-on-surface);
  opacity: 0.6;
}

/* --- Meta / caption text (dates, categories, labels) --- */
.entry-meta,
.post-meta,
time,
.meta-label {
  font-family: var(--font-body);
  font-size: 0.625rem;        /* 10px */
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-outline);
}

/* ============================================================
   5. NAVIGATION
   ============================================================ */
.site-header,
#masthead {
  position: sticky;
  top: 0;
  z-index: 50;
  background-color: rgba(255, 249, 237, 0.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.site-branding .site-title,
.site-branding .site-title a {
  font-family: var(--font-headline);
  font-size: 2.25rem;       /* 36px */
  font-weight: 500;
  color: var(--color-primary-container);
  text-decoration: none;
  letter-spacing: -0.02em;
  line-height: 1;
}

/* Nav links */
.main-navigation a,
.nav-menu a {
  font-family: var(--font-body);
  font-size: 0.75rem;       /* 12px */
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--color-primary-container);
  text-decoration: none;
  opacity: 0.8;
  transition: opacity 0.3s ease;
}

.main-navigation a:hover,
.nav-menu a:hover {
  opacity: 1;
  color: var(--color-primary);
}

.main-navigation .current-menu-item > a,
.nav-menu .current-menu-item > a {
  opacity: 1;
  font-weight: 700;
  border-bottom: 1px solid var(--color-primary-container);
}

/* ============================================================
   6. LAYOUT
   ============================================================ */
.site-content,
.wp-site-blocks,
.entry-content {
  max-width: var(--content-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

/* Constrain prose to readable line length */
.entry-content p,
.entry-content li,
.prose-content {
  max-width: var(--prose-max-width);
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================
   7. SCROLL PROGRESS INDICATOR
   ============================================================ */
.reading-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  background-color: var(--color-primary-container);
  width: 0%;
  z-index: 100;
  transition: width 0.1s linear;
}

/* ============================================================
   8. POST / ARTICLE CARDS
   ============================================================ */

/* --- Featured post: asymmetric 12-col grid --- */
.featured-post-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 3rem;
  align-items: center;
  margin-bottom: var(--section-gap);
}

.featured-post-image  { grid-column: span 7; }
.featured-post-text   { grid-column: span 5; }

/* --- Post archive: centered column --- */
.post-archive article {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 6rem;
}

/* --- Journalism list: 4-col date + content --- */
.journalism-list-item {
  display: grid;
  grid-template-columns: 1fr 3fr;
  gap: 2rem;
  margin-bottom: 5rem;
}

/* --- Fiction / card grid --- */
.fiction-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

@media (max-width: 768px) {
  .fiction-grid               { grid-template-columns: repeat(2, 1fr); }
  .featured-post-image,
  .featured-post-text         { grid-column: span 12; }
  .journalism-list-item       { grid-template-columns: 1fr; gap: 0.5rem; }
}

@media (max-width: 480px) {
  .fiction-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   9. IMAGE TREATMENTS
   ============================================================ */

/* Featured post images */
.featured-image,
.wp-post-image {
  filter: grayscale(100%) contrast(1.25);
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Fiction card images: grayscale → color on hover */
.fiction-card img {
  filter: grayscale(100%);
  transition: filter 0.7s ease;
}

.fiction-card:hover img {
  filter: grayscale(0%);
}

/* Author portrait */
.author-portrait {
  filter: grayscale(100%) opacity(0.9) sepia(0.2);
}

/* Aspect ratios */
.aspect-4-3  { aspect-ratio: 4 / 3; overflow: hidden; }
.aspect-4-5  { aspect-ratio: 4 / 5; overflow: hidden; }
.aspect-3-4  { aspect-ratio: 3 / 4; overflow: hidden; }

/* ============================================================
   10. PULL QUOTE / BLOCKQUOTE
   ============================================================ */
blockquote,
.pull-quote {
  border-left: 2px solid rgba(128, 17, 17, 0.2);
  padding: 1rem 0 1rem 2rem;
  margin: 2rem 0;
  font-family: var(--font-headline);
  font-size: 1.75rem;
  font-style: italic;
  color: var(--color-primary-container);
  line-height: 1.5;
}

blockquote cite,
.pull-quote cite {
  display: block;
  margin-top: 1rem;
  font-family: var(--font-body);
  font-size: 0.625rem;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgba(32, 27, 5, 0.6);
}

/* Desktop: bleed pull-quote into right margin */
@media (min-width: 1024px) {
  .pull-quote {
    margin-right: -8rem;
    padding-left: 4rem;
    align-self: flex-end;
    width: 120%;
  }
}

/* ============================================================
   11. BUTTONS & LINKS
   ============================================================ */

/* Primary CTA button */
.wp-block-button__link,
.btn-primary,
button[type="submit"] {
  background-color: var(--color-primary-container);
  color: var(--color-on-primary);
  font-family: var(--font-body);
  font-size: 0.6875rem;     /* 11px */
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  padding: 0.75rem 2.5rem;
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.wp-block-button__link:hover,
.btn-primary:hover,
button[type="submit"]:hover {
  opacity: 0.9;
}

/* Inline text link / read more */
.read-more-link,
.entry-content a.text-link {
  color: var(--color-primary-container);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(128, 17, 17, 0.3);
  padding-bottom: 1px;
  transition: border-color 0.2s ease;
}

.read-more-link:hover,
.entry-content a.text-link:hover {
  border-color: var(--color-primary-container);
}

/* ============================================================
   12. TAXONOMY PILLS / TAGS
   ============================================================ */
.tag-pill,
.wp-block-post-terms a,
.post-categories a,
.post-tags a {
  display: inline-block;
  background-color: rgba(237, 226, 189, 0.4);
  color: var(--color-on-surface-variant);
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.25rem 1rem;
  border-radius: var(--radius-pill);
  text-decoration: none;
}

/* ============================================================
   13. NEWSLETTER / EMAIL SIGNUP SECTION
   ============================================================ */
.newsletter-section {
  border-top: 0.5px solid rgba(224, 191, 187, 0.3);
  border-bottom: 0.5px solid rgba(224, 191, 187, 0.3);
  padding: 5rem 0;
  text-align: center;
}

.newsletter-section input[type="email"] {
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(224, 191, 187, 0.6);
  padding: 0.75rem 0;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--color-on-surface);
  outline: none;
  width: 100%;
  max-width: 320px;
  transition: border-color 0.2s ease;
}

.newsletter-section input[type="email"]:focus {
  border-color: var(--color-primary-container);
}

.newsletter-section input[type="email"]::placeholder {
  color: rgba(140, 113, 109, 0.5);
}

/* ============================================================
   14. FOOTER
   ============================================================ */
.site-footer,
#colophon {
  background-color: var(--color-surface-container-high); /* #f3e8c3 */
  padding: 3rem 0;
  text-align: center;
}

.site-footer .site-info,
.site-footer p {
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-style: italic;
  color: var(--color-primary-container);
}

.site-footer a {
  color: var(--color-on-surface);
  opacity: 0.7;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  text-decoration: underline;
  transition: opacity 0.2s ease;
}

.site-footer a:hover {
  opacity: 1;
}

/* ============================================================
   15. READING PROGRESS BAR (JS hook — add script separately)
   ============================================================
   Add this script to your child theme's functions.php or
   a Custom HTML block in your header:

   <script>
   const bar = document.querySelector('.reading-progress-bar');
   if (bar) {
     window.addEventListener('scroll', () => {
       const scrollTop = window.scrollY;
       const docHeight = document.documentElement.scrollHeight - window.innerHeight;
       bar.style.width = (scrollTop / docHeight * 100) + '%';
     });
   }
   </script>
   ============================================================ */

/* ============================================================
   16. SELECTION COLOR
   ============================================================ */
::selection {
  background-color: var(--color-primary-container);
  color: #ffffff;
}

/* ============================================================
   17. UTILITY CLASSES
   ============================================================ */
.text-crimson    { color: var(--color-primary-container); }
.text-muted      { color: var(--color-outline); }
.text-uppercase  { text-transform: uppercase; letter-spacing: 0.18em; }
.font-headline   { font-family: var(--font-headline); font-weight: 500; }
.font-body       { font-family: var(--font-body); }
.max-prose       { max-width: var(--prose-max-width); margin-inline: auto; }
.surface-warm    { background-color: var(--color-surface-container-low); }

/* ============================================================
   18. ASTRA-SPECIFIC OVERRIDES
   Astra outputs inline <style> via the Customizer after this
   stylesheet, so selectors that Astra controls need !important
   to win. Limit !important to the properties Astra actually
   inlines (bg, color, font-family on its own elements).
   ============================================================ */

/* --- Page background & body text --- */
body.ast-page-builder-template,
body {
  background-color: var(--color-background) !important;
  color: var(--color-on-surface) !important;
  font-family: var(--font-body) !important;
  font-size: 17px !important;
}

/* --- Global link color --- */
a,
.ast-builder-menu .main-navigation a,
.main-navigation .ast-nav-menu > li > a {
  color: var(--color-primary-container) !important;
}
a:hover {
  color: var(--color-primary) !important;
}

/* --- Headings (Astra inlines its own heading color) --- */
h1, h2, h3, h4, h5, h6,
.ast-blog-single-element h1,
.ast-blog-single-element h2,
.ast-blog-single-element h3,
.entry-title,
.entry-title a {
  font-family: var(--font-headline) !important;
  color: var(--color-primary-container) !important;
}

/* --- Astra header / masthead --- */
#masthead,
#ast-fixed-header,
.ast-header-break-point .ast-header,
.site-header {
  background-color: rgba(255, 249, 237, 0.6) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 0.5px solid var(--color-outline-variant);
}

/* --- Site title --- */
.ast-site-title-wrap .site-title,
.ast-site-title-wrap .site-title a,
.site-branding .site-title,
.site-branding .site-title a {
  font-family: var(--font-headline) !important;
  color: var(--color-primary-container) !important;
  font-size: 2.25rem !important;
  font-weight: 500 !important;
}

/* --- Astra nav menu --- */
.ast-nav-menu > li > a,
.main-navigation .ast-nav-menu > li > a,
.ast-builder-menu .ast-nav-menu > li > a {
  font-family: var(--font-body) !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.18em !important;
  color: var(--color-primary-container) !important;
  opacity: 0.8;
}
.ast-nav-menu > li > a:hover,
.main-navigation .ast-nav-menu > li > a:hover {
  color: var(--color-primary) !important;
  opacity: 1;
}
.ast-nav-menu > li.current-menu-item > a {
  font-weight: 700 !important;
  border-bottom: 1px solid var(--color-primary-container);
  opacity: 1;
}

/* --- Mobile hamburger / off-canvas --- */
.ast-mobile-menu-trigger-fill,
.ast-mobile-menu-trigger-minimal {
  color: var(--color-primary-container) !important;
}

/* --- Astra buttons --- */
.ast-button,
.ast-custom-button,
.menu-item .ast-button,
.ast-builder-button-wrap a,
#ast-fixed-footer .ast-builder-button-wrap a,
.ast-btn,
.button,
input[type="submit"],
button[type="submit"] {
  background-color: var(--color-primary-container) !important;
  color: var(--color-on-primary) !important;
  border-color: var(--color-primary-container) !important;
  font-family: var(--font-body) !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.2em !important;
  border-radius: var(--radius) !important;
}
.ast-button:hover,
.ast-custom-button:hover,
.ast-builder-button-wrap a:hover,
.ast-btn:hover,
.button:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: #ffffff !important;
}

/* --- WooCommerce / form buttons (if active) --- */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  background-color: var(--color-primary-container) !important;
  color: #ffffff !important;
}

/* --- Astra footer --- */
#ast-footer-overlay,
#colophon,
.site-footer,
footer.site-footer {
  background-color: var(--color-surface-container-high) !important;
  color: var(--color-primary-container) !important;
}

/* --- Astra sidebar widget titles --- */
.widget-title,
.widgettitle {
  font-family: var(--font-headline) !important;
  color: var(--color-primary-container) !important;
}

/* --- Astra page-level container max-width --- */
.ast-container,
.ast-narrow-container {
  max-width: var(--content-max-width);
}

/* ============================================================
   19. FRONT-PAGE TEMPLATE (front-page.php)
   Layout styles for the ea-* components.  Everything else
   (colors, typography, buttons, tags) is inherited from
   sections 2-18 above.
   ============================================================ */

/* --- Home wrapper --- */
.ea-home {
  min-height: 100vh;
  padding-top: 4rem;
  padding-bottom: 6rem;
}

/* --- Hero --- */
.ea-hero {
  max-width: var(--content-max-width);
  margin: 0 auto 6rem;
  padding: 0 1.5rem;
  text-align: center;
}

.ea-hero__headline {
  font-size: clamp(3rem, 7vw, 4.5rem);
  line-height: 1.1;
  margin-bottom: 1rem;
}

.ea-hero__subtitle {
  font-size: 1.125rem;
  font-style: italic;
  color: var(--color-on-surface);
  opacity: 0.6;
  max-width: 32rem;
  margin: 0 auto;
}

/* --- Featured post section --- */
.ea-featured {
  max-width: 64rem;             /* max-w-5xl */
  margin: 0 auto 8rem;
  padding: 0 1.5rem;
}

.ea-featured__grid {
  gap: 3rem;
  align-items: center;
}

.ea-featured__image-wrap {
  overflow: hidden;
}

.ea-featured__image,
.ea-featured__image-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%) contrast(1.25);
}

.ea-featured__image-placeholder {
  background: var(--color-surface-dim);
  aspect-ratio: 4 / 3;
}

.ea-featured__content {
  /* inherits from .featured-post-text grid placement */
}

.ea-label {
  display: block;
  margin-bottom: 1rem;
}

.ea-featured__title {
  font-size: clamp(1.75rem, 3.5vw, 2.25rem);
  line-height: 1.2;
  margin-bottom: 1.5rem;
}

.ea-featured__title a {
  color: inherit;
  text-decoration: none;
}

.ea-featured__title a:hover {
  opacity: 0.8;
}

.ea-featured__excerpt {
  font-size: 17px;
  line-height: 1.6;
  color: var(--color-on-surface);
  margin-bottom: 2rem;
  max-width: var(--prose-max-width);
}

/* --- Archive listing --- */
.ea-archive {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 0 1.5rem;
}

.ea-archive__entry {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 6rem;
}

.ea-archive__title {
  font-size: clamp(1.75rem, 3.5vw, 2.25rem);
  line-height: 1.2;
  margin-bottom: 1.5rem;
  transition: opacity 0.2s ease;
  cursor: pointer;
}

.ea-archive__title a {
  color: inherit;
  text-decoration: none;
}

.ea-archive__title:hover {
  opacity: 0.8;
}

.ea-archive__excerpt {
  font-size: 17px;
  line-height: 1.6;
  color: var(--color-on-surface);
}

.ea-archive__tags {
  display: flex;
  gap: 0.75rem;
  margin-top: 2rem;
}

/* --- CTA --- */
.ea-cta {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 8rem 1.5rem 0;
  text-align: center;
}

.ea-cta .btn-primary,
a.btn-primary {
  display: inline-block;
  text-decoration: none;
  color: var(--color-on-primary) !important;
}

a.btn-primary:hover {
  color: var(--color-on-primary) !important;
}

/* ============================================================
   10. CONNECT / CONTACT PAGE
   ============================================================ */
.ea-connect {
  min-height: 100vh;
  background: var(--color-surface-container-low);
  padding: 5rem 1.5rem 8rem;
}

/* --- Header --- */
.ea-connect__header {
  max-width: var(--prose-width);
  margin: 0 auto 4rem;
}

.ea-connect__title {
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  color: var(--color-primary-container);
  margin-bottom: 2rem;
  line-height: 1.1;
}

.ea-connect__intro {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--color-on-surface);
}

/* --- WPForms Overrides (match Stitch design) --- */
.ea-connect__form-wrap {
  max-width: var(--prose-width);
  margin: 0 auto 6rem;
}

/* Remove WPForms default container styling */
.ea-connect__form-wrap .wpforms-container {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* Labels → uppercase micro-labels like Stitch */
.ea-connect__form-wrap .wpforms-field-label {
  font-family: var(--font-body) !important;
  font-size: 0.6875rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: rgba(128, 17, 17, 0.6) !important;
  margin-bottom: 0.5rem !important;
  font-weight: 400 !important;
}

/* Inputs → transparent bg, bottom border only */
.ea-connect__form-wrap .wpforms-field input[type="text"],
.ea-connect__form-wrap .wpforms-field input[type="email"],
.ea-connect__form-wrap .wpforms-field textarea {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid rgba(140, 113, 109, 0.4) !important;
  border-radius: 0 !important;
  padding: 0.75rem 0 !important;
  font-family: var(--font-body) !important;
  font-size: 1.0625rem !important;
  color: var(--color-on-surface) !important;
  transition: border-color 0.3s ease !important;
  box-shadow: none !important;
  outline: none !important;
}

.ea-connect__form-wrap .wpforms-field input[type="text"]:focus,
.ea-connect__form-wrap .wpforms-field input[type="email"]:focus,
.ea-connect__form-wrap .wpforms-field textarea:focus {
  border-bottom-color: var(--color-primary-container) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Textarea sizing */
.ea-connect__form-wrap .wpforms-field textarea {
  resize: none !important;
  min-height: 8rem;
}

/* Submit button → match Stitch "Send Correspondence" */
.ea-connect__form-wrap .wpforms-submit-container {
  padding-top: 1rem !important;
}

.ea-connect__form-wrap .wpforms-submit {
  background: var(--color-primary-container) !important;
  color: var(--color-on-primary) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 1rem 2.5rem !important;
  font-family: var(--font-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background 0.3s ease !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
}

.ea-connect__form-wrap .wpforms-submit:hover {
  background: var(--color-primary) !important;
  color: var(--color-on-primary) !important;
}

/* Field spacing */
.ea-connect__form-wrap .wpforms-field {
  margin-bottom: 2rem !important;
  padding: 0 !important;
}

/* --- Digital Footprints Section --- */
.ea-connect__social {
  max-width: var(--prose-width);
  margin: 0 auto;
  padding-top: 4rem;
  border-top: 1px solid rgba(140, 113, 109, 0.1);
}

.ea-connect__social-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ea-connect__social-title {
  font-size: 1.5rem;
  color: var(--color-primary-container);
  margin-bottom: 0.5rem;
}

.ea-connect__social-subtitle {
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-style: italic;
  color: var(--color-outline);
}

.ea-connect__social-links {
  display: flex;
  gap: 2.5rem;
}

.ea-connect__social-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--color-primary-container) !important;
  text-decoration: none !important;
  transition: transform 0.3s ease;
}

.ea-connect__social-link:hover {
  transform: scale(1.1);
  color: var(--color-primary-container) !important;
}

.ea-connect__social-icon {
  font-size: 1.5rem;
  margin-bottom: 0.25rem;
}

.ea-connect__social-label {
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: -0.025em;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.ea-connect__social-link:hover .ea-connect__social-label {
  opacity: 1;
}

/* --- Connect page mobile --- */
@media (max-width: 768px) {
  .ea-connect {
    padding: 3rem 1.5rem 5rem;
  }
  .ea-connect__social-inner {
    flex-direction: column;
    text-align: center;
    gap: 2rem;
  }
}

/* --- Mobile (featured post stacks) --- */
@media (max-width: 768px) {
  .ea-featured {
    margin-bottom: 5rem;
  }
  .ea-featured__grid {
    gap: 2rem;
  }
  .ea-archive__entry {
    margin-bottom: 4rem;
  }
  .ea-cta {
    padding-top: 4rem;
  }
}
