/* Ellen Brand 2026 — helper classes for what block attributes can't express.
   Colours mirror theme.json: paper #F4EEE2 · ink #211B15 · oxblood #7C2E27
   gold #B8863C / #D2A65B · petrol #315B80 · navy #12283F · nero #0C0D10 */

:root{
  --e-paper:#F4EEE2; --e-paper2:#EDE5D5; --e-ivory:#ECE6D8;
  --e-ink:#211B15; --e-soft:#5C5245; --e-rule:#C9BCA3;
  --e-oxblood:#7C2E27; --e-gold:#B8863C; --e-gold-lt:#D2A65B;
  --e-petrol:#315B80; --e-navy:#12283F; --e-nero:#0C0D10; --e-mute:#8A8577;
}

/* --- Eyebrow / kicker ------------------------------------------------ */
.e-kicker{font-family:'Spectral',Georgia,serif;font-size:.72rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--e-petrol);margin:0 0 1.2em;line-height:1.4;}
.e-kicker--gold{color:#96682A;}
.e-kicker--sand{color:#E4C089;}
.e-kicker--blue{color:#8FB3D0;}

/* --- Rules and friezes ----------------------------------------------- */
/* The run-head lives in a Custom HTML block, which has no alignment
   control, so it breaks out of the reading column to the shared measure
   on its own. */
.e-runhead{
  display:flex;align-items:center;gap:18px;
  width:100%;
  max-width:min(var(--e-measure), calc(100vw - var(--e-gutter) * 2));
  margin-inline:auto;
}
.e-runhead .ln{min-width:40px;}
.e-runhead .mk{font-family:'Spectral',serif;font-size:.72rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--e-soft);white-space:nowrap;}
.e-runhead .ln{flex:1;border-top:1px solid var(--e-rule);}

.e-frieze{height:22px;
  background:
    repeating-linear-gradient(45deg,transparent 0 10px,rgba(96,74,52,.16) 10px 11px,transparent 11px 21px),
    repeating-linear-gradient(-45deg,transparent 0 10px,rgba(96,74,52,.16) 10px 11px,transparent 11px 21px);
  background-color:var(--e-paper2);
  border-top:1px solid rgba(184,134,60,.32);border-bottom:1px solid rgba(184,134,60,.32);}

.e-frieze-dark{height:16px;
  background:
    repeating-linear-gradient(45deg,transparent 0 9px,rgba(226,208,172,.10) 9px 10px,transparent 10px 19px),
    repeating-linear-gradient(-45deg,transparent 0 9px,rgba(208,180,125,.10) 9px 10px,transparent 10px 19px),
    #0B1622;
  border-top:1px solid rgba(226,208,172,.09);border-bottom:1px solid rgba(226,208,172,.09);}

/* --- Site header ------------------------------------------------------ */
.e-header{background:var(--e-nero);border-bottom:1px solid rgba(226,208,172,.14);}
.e-utilbar{background:#0A0B0E;border-bottom:1px solid rgba(226,208,172,.10);}
.e-utilbar .in{display:flex;justify-content:space-between;align-items:center;
  max-width:1120px;margin:0 auto;padding:8px 46px;}
.e-utilbar .msg{display:flex;align-items:center;gap:12px;font-family:'Space Grotesk',sans-serif;
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--e-mute);}
.e-utilbar .msg a{color:#C9C2B2;text-decoration:none;}
.e-utilbar .msg a:hover{color:#D8B26A;}
.e-utilbar .msg .sep{opacity:.35;}
.e-utilbar .msg .sub{text-transform:none;letter-spacing:.02em;opacity:.55;margin-left:3px;}
.e-utilbar .env{width:14px;height:14px;color:var(--e-mute);flex:none;}
.e-utilbar .social{display:flex;align-items:center;gap:13px;}
.e-utilbar .social a{color:var(--e-mute);display:inline-flex;}
.e-utilbar .social a:hover{color:#D8B26A;}
.e-utilbar .social svg{width:15px;height:15px;}

.e-mast{display:flex;justify-content:space-between;align-items:baseline;
  max-width:1120px;margin:0 auto;padding:18px 46px;gap:24px;flex-wrap:wrap;}
.e-mast .mark{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.95rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--e-paper);text-decoration:none;}
.e-mast nav{display:flex;align-items:center;gap:26px;flex-wrap:wrap;}
.e-mast nav a{font-family:'Space Grotesk',sans-serif;font-size:.68rem;letter-spacing:.24em;
  text-transform:uppercase;text-decoration:none;color:rgba(244,238,226,.72);}
.e-mast nav a:hover{color:var(--e-gold-lt);}
.e-mast nav a.on{color:var(--e-gold-lt);border-bottom:1px solid var(--e-gold-lt);padding-bottom:2px;}
.e-mast nav a.buy{color:var(--e-nero);background:#C6923E;padding:9px 15px;}
.e-mast nav a.buy:hover{color:var(--e-nero);background:#D8B26A;}

@media(max-width:720px){
  .e-utilbar .msg .sep,.e-utilbar .msg a.blog{display:none;}
  .e-utilbar .in,.e-mast{padding-left:22px;padding-right:22px;}
}

/* --- Type devices ----------------------------------------------------- */
.e-dropcap::first-letter{font-family:'Marcellus',serif;float:left;font-size:5.2rem;
  line-height:.7;padding:.04em .16em 0 0;color:#E4C089;}
.e-fifty{font-family:'Marcellus',serif;font-weight:300;font-size:clamp(2.8rem,6vw,3.6rem);
  color:var(--e-oxblood);line-height:1;margin:0;}
.e-stars{color:#C6923E;letter-spacing:.18em;font-size:.9rem;margin:0 0 14px;}
.e-scrollcue{font-family:'Spectral',serif;font-size:.6rem;letter-spacing:.4em;
  text-transform:uppercase;color:var(--e-mute);text-align:center;margin:0;}

/* --- Framed photo ------------------------------------------------------ */
.e-framed{padding:12px;background:var(--e-paper);border:1px solid var(--e-rule);
  box-shadow:0 14px 34px rgba(33,27,21,.16);}
.e-framed img{display:block;width:100%;border:1px solid var(--e-rule);}
.e-framed figcaption,.wp-block-image.e-framed figcaption{margin-top:9px;font-size:.82rem;
  color:var(--e-soft);text-align:center;}
.wp-block-image.e-framed{display:block;margin-left:0;margin-right:0;}
.wp-block-image.e-framed img{width:100%;}

/* --- Gilt-framed quote card -------------------------------------------- */
.e-gilt{max-width:560px;margin:0 auto;padding:12px;
  background:linear-gradient(135deg,var(--e-gold-lt),var(--e-gold) 45%,#8A6524 70%,var(--e-gold-lt));
  box-shadow:0 16px 34px rgba(33,27,21,.22);}
.e-gilt .inner{background:var(--e-paper);padding:38px 34px;text-align:center;}
.e-gilt .q{font-family:'Marcellus',serif;font-size:3rem;color:var(--e-oxblood);line-height:.5;}
.e-gilt p{font-family:'Marcellus',serif;font-size:1.5rem;line-height:1.4;color:var(--e-navy);margin:0;}
.e-gilt .attr{margin-top:14px;font-family:'Spectral',serif;font-size:.86rem;color:var(--e-oxblood);}

/* --- Charity strip ------------------------------------------------------ */
/* The pattern is a wp:html block, so the theme drops it inside the
   constrained content flow and caps it at the content measure. Break it back
   out to the viewport edges. Works for patterns already inserted in pages,
   which a change to the pattern markup would not reach. */
/* Full bleed anchored to the viewport, not to the parent's content box: the
   percentage form resolved differently on each side and left a paper strip. */
.e-dogband{background:var(--e-navy);color:#DCE3EC;
  position:relative;z-index:0;left:50%;right:50%;
  padding-block:34px;margin-block:0 !important;
  width:100vw;max-width:100vw;
  margin-left:-50vw !important;margin-right:-50vw !important;}
/* The wrapper's own top padding was landing inside the navy and reading as
   extra space above the logo. Own both edges here instead. */
.e-dogband .in{margin-block:0;}
.e-dogband p,.e-dogband .in > *{margin-block:0;}
/* Only skip the bleed when an ANCESTOR is already full-bleed — never when the
   band itself carries the class, or the two rules cancel each other out. */
/* No special case for a full-width parent: "width:100vw" with
   "margin-inline:calc(50% - 50vw)" resolves correctly whatever the parent's
   width, because the 50% is measured against the parent's content box. An
   earlier override here cancelled the bleed and left paper strips. */
/* NOTE: an earlier version collapsed padding and painted navy on ":has(>
   .e-dogband)". That matched the page's whole content wrapper — every sibling
   section lost its padding and inherited the navy. The band is self-contained
   via the 100vw bleed above; it needs nothing from its parent. */
.e-dogband .in{display:flex;align-items:center;justify-content:center;gap:16px;
  flex-wrap:wrap;text-align:center;max-width:1120px;margin:0 auto;padding:0 46px;}
.e-dogband img{height:42px;background:var(--e-paper);padding:6px;border-radius:4px;}
.e-dogband span{font-family:'Spectral',serif;font-size:.95rem;}
.e-dogband a{color:#8FB3D0;}

/* --- Footer -------------------------------------------------------------- */
.e-footer{background:
    repeating-linear-gradient(45deg,transparent 0 11px,rgba(219,181,107,.05) 11px 12px,transparent 12px 23px),
    repeating-linear-gradient(-45deg,transparent 0 11px,rgba(219,181,107,.05) 11px 12px,transparent 12px 23px),
    var(--e-nero);
  color:#B9B3A4;padding:46px 0;border-top:1px solid rgba(219,181,107,.14);}
.e-footer .in{max-width:1120px;margin:0 auto;padding:0 46px;}
.e-footer .grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.e-footer .fname{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.82rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--e-ivory);}
.e-footer .ftag{font-family:'Spectral',serif;font-size:.95rem;color:var(--e-mute);
  margin-top:8px;max-width:30ch;}
.e-footer .cols{display:flex;gap:44px;flex-wrap:wrap;}
.e-footer .col a{display:block;font-family:'Space Grotesk',sans-serif;font-size:.7rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--e-mute);text-decoration:none;padding:5px 0;}
.e-footer .col a:hover{color:#D8B26A;}
.e-footer .col .h{color:#8FB3D0;}
.e-footer .copyline{margin-top:34px;padding-top:18px;border-top:1px solid rgba(219,181,107,.10);
  text-align:center;font-family:'Space Grotesk',sans-serif;font-size:.62rem;letter-spacing:.14em;
  text-transform:uppercase;color:#7C776B;}
.e-footer .copyline a{color:#D8B26A;text-decoration:none;}
.e-footer .copyline a:hover{color:var(--e-ivory);}
.e-footer .copyline a[href*="spectodesign"]{color:inherit;}
.e-footer .copyline a[href*="spectodesign"]:hover{color:#D8B26A;}
@media(max-width:720px){.e-footer .in,.e-dogband .in{padding-left:22px;padding-right:22px;}}

/* --- Contact form --------------------------------------------------------- */
.e-form .field{margin-bottom:22px;}
.e-form label{display:block;font-family:'Spectral',serif;font-size:.72rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--e-navy);margin-bottom:9px;}
.e-form input,.e-form textarea{width:100%;font-family:'Spectral',serif;font-size:1rem;
  color:var(--e-ink);background:var(--e-paper2);border:1px solid var(--e-rule);
  padding:15px 20px;border-radius:3px;outline:none;transition:border-color .15s;}
.e-form textarea{min-height:150px;resize:vertical;}
.e-form input:focus,.e-form textarea:focus{border-color:var(--e-petrol);}
.e-form .spam{display:flex;align-items:center;gap:14px;margin-bottom:26px;flex-wrap:wrap;}
.e-form .spam label{letter-spacing:0;text-transform:none;font-size:.95rem;color:var(--e-soft);margin:0;}
.e-form .spam input{width:96px;text-align:center;}
.e-form button{font-family:'Spectral',serif;font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;
  color:#fff;background:var(--e-oxblood);border:none;border-radius:3px;padding:16px 40px;cursor:pointer;}
.e-form button:hover{background:#6A2721;}
.e-form .priv{margin-top:16px;font-size:.82rem;color:var(--e-soft);}

/* --- Newsletter inline form ------------------------------------------------ */
.e-signup{display:inline-flex;border:1px solid rgba(219,181,107,.28);}
.e-signup input{background:transparent;border:none;color:var(--e-ivory);font-family:'Spectral',serif;
  font-size:1.1rem;padding:14px 18px;width:300px;outline:none;}
.e-signup button{border:none;background:#6E9AC0;color:var(--e-nero);font-family:'Spectral',serif;
  font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;padding:0 26px;cursor:pointer;}

/* --- Meta strip ------------------------------------------------------------ */
.e-metastrip{border-top:1px solid rgba(219,181,107,.28);border-bottom:1px solid rgba(219,181,107,.28);}
.e-metastrip .in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;
  max-width:1180px;margin:0 auto;padding:20px 46px;}
.e-metastrip div{font-family:'Spectral',serif;font-size:.66rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--e-mute);}
.e-metastrip b{color:#D8B26A;font-weight:400;}
@media(max-width:720px){.e-metastrip .in{padding-left:22px;padding-right:22px;}}

/* --- Caption laid over the photo (about page) ------------------------- */
.wp-block-image.e-caption-overlay{position:relative;}
.wp-block-image.e-caption-overlay figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;
  padding:10px 14px;text-align:left;color:var(--e-paper);font-size:.82rem;
  background:linear-gradient(0deg, rgba(18,40,63,.78), transparent);}

/* --- Pull line -------------------------------------------------------- */
.e-pull{font-family:'Marcellus',serif;font-size:clamp(1.5rem,3.4vw,2.2rem);
  color:var(--e-oxblood);text-align:center;margin:0;}

/* --- Blog feed -------------------------------------------------------- */
.e-letter{border-bottom:1px solid var(--e-rule);}
.e-letter:last-child{border-bottom:none;}
.e-meta{text-align:center;font-family:'Spectral',serif;font-size:.7rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--e-soft);margin:0 0 16px;}
.e-meta .cat{color:#96682A;}
.e-readmore{text-align:center;margin:0;}
.e-readmore a{font-family:'Spectral',serif;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--e-oxblood);text-decoration:none;border-bottom:1px solid var(--e-oxblood);padding-bottom:2px;}
.e-readmore a:hover{color:#6A2721;}
.e-older{text-align:center;margin:0;}
.e-older a{font-family:'Space Grotesk',sans-serif;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--e-petrol);text-decoration:none;border:1px solid var(--e-petrol);padding:12px 22px;display:inline-block;}
.e-older a:hover{background:var(--e-petrol);color:#fff;}

/* --- Contact: other ways row ------------------------------------------ */
.e-ways .h{font-family:'Spectral',serif;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--e-petrol);display:block;margin-bottom:6px;}
.e-ways p{font-size:.95rem;color:var(--e-soft);max-width:26ch;margin:0;}
.e-ways a{color:var(--e-ink);text-decoration:none;border-bottom:1px solid var(--e-rule);}
.e-ways a:hover{border-color:var(--e-petrol);color:var(--e-petrol);}

/* --- Inline text link (gold, on dark) ---------------------------------- */
.e-lnk-gold a{font-family:'Spectral',serif;font-size:.8rem;letter-spacing:.05em;text-decoration:none;
  color:#E4C089;border-bottom:1px solid #8A6A3F;padding-bottom:2px;}
.e-lnk-gold a:hover{border-color:#E4C089;}

/* --- Header built from core blocks (site title + navigation) ----------- */
.e-headerblocks{background:var(--e-nero);border-bottom:1px solid rgba(226,208,172,.14);}
.e-headerblocks .wp-block-site-title a{font-family:'Space Grotesk',sans-serif;font-weight:600;
  font-size:.95rem;letter-spacing:.22em;text-transform:uppercase;color:var(--e-paper);text-decoration:none;}
.e-headerblocks .wp-block-site-title a:hover{color:var(--e-gold-lt);}

.e-nav .wp-block-navigation-item__content{font-family:'Space Grotesk',sans-serif;font-size:.68rem;
  letter-spacing:.24em;text-transform:uppercase;color:rgba(244,238,226,.72);text-decoration:none;}
.e-nav .wp-block-navigation-item__content:hover{color:var(--e-gold-lt);text-decoration:none;}
.e-nav .current-menu-item .wp-block-navigation-item__content{color:var(--e-gold-lt);
  border-bottom:1px solid var(--e-gold-lt);padding-bottom:2px;}
.e-nav .wp-block-navigation__responsive-container-open,
.e-nav .wp-block-navigation__responsive-container-close{color:var(--e-paper);}
.e-nav .wp-block-navigation__responsive-container.is-menu-open{background:var(--e-nero);padding:32px 22px;}
.e-nav .is-menu-open .wp-block-navigation-item__content{font-size:1rem;color:var(--e-paper);}

.e-utilbar-blocks{background:#0A0B0E;border-bottom:1px solid rgba(226,208,172,.10);}
.e-utilbar-blocks p{font-family:'Space Grotesk',sans-serif;font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--e-mute);margin:0;}
.e-utilbar-blocks a{color:#C9C2B2;text-decoration:none;}
.e-utilbar-blocks a:hover{color:#D8B26A;}
.e-utilbar-blocks .wp-block-social-links .wp-social-link{color:var(--e-mute);}

/* --- Blog feed, Query Loop variant ------------------------------------- */
.e-query .wp-block-post{border-bottom:1px solid var(--e-rule);padding:40px 0;}
.e-query .wp-block-post:last-child{border-bottom:none;}
.e-query .wp-block-post-featured-image img{width:100%;border:1px solid var(--e-rule);
  box-shadow:0 14px 34px rgba(33,27,21,.14);}
.e-query .wp-block-post-title{text-align:center;font-size:2.05rem;line-height:1.12;margin:28px 0 10px;}
.e-query .wp-block-post-title a{text-decoration:none;color:var(--e-ink);}
.e-query .wp-block-post-title a:hover{color:var(--e-oxblood);}
.e-query .wp-block-post-terms{text-align:center;font-family:'Spectral',serif;font-size:.7rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--e-soft);margin-bottom:16px;}
.e-query .wp-block-post-terms a{color:#96682A;text-decoration:none;}
.e-query .wp-block-post-excerpt{text-align:center;max-width:60ch;margin:0 auto 20px;color:var(--e-soft);}
.e-query .wp-block-post-excerpt__more-link{display:block;margin-top:16px;font-family:'Spectral',serif;
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--e-oxblood);
  text-decoration:none;}
.e-query .wp-block-post-excerpt__more-link:hover{color:#6A2721;}
.e-query .wp-block-query-pagination{justify-content:center;margin-top:40px;}
.e-query .wp-block-query-pagination a{font-family:'Space Grotesk',sans-serif;font-size:.7rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--e-petrol);text-decoration:none;
  border:1px solid var(--e-petrol);padding:12px 22px;}
.e-query .wp-block-query-pagination a:hover{background:var(--e-petrol);color:#fff;}

/* --- Footer built from core blocks -------------------------------------- */
.e-footerblocks{background:
    repeating-linear-gradient(45deg,transparent 0 11px,rgba(219,181,107,.05) 11px 12px,transparent 12px 23px),
    repeating-linear-gradient(-45deg,transparent 0 11px,rgba(219,181,107,.05) 11px 12px,transparent 12px 23px),
    var(--e-nero);
  color:#B9B3A4;border-top:1px solid rgba(219,181,107,.14);}
.e-footerblocks .wp-block-site-title a{font-family:'Space Grotesk',sans-serif;font-weight:600;
  font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;color:var(--e-ivory);text-decoration:none;}
.e-footerblocks .e-ftag{font-family:'Spectral',serif;font-size:.95rem;color:var(--e-mute);
  margin:8px 0 0;max-width:30ch;}
.e-footerblocks .e-colhead{font-family:'Space Grotesk',sans-serif;font-size:.7rem;letter-spacing:.2em;
  text-transform:uppercase;color:#8FB3D0;margin:0 0 4px;}
.e-fnav .wp-block-navigation-item__content{font-family:'Space Grotesk',sans-serif;font-size:.7rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--e-mute);text-decoration:none;padding:5px 0;}
.e-fnav .wp-block-navigation-item__content:hover{color:#D8B26A;}
.e-footerblocks .e-copyline{border-top:1px solid rgba(219,181,107,.10);text-align:center;
  font-family:'Space Grotesk',sans-serif;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:#7C776B;margin:34px 0 0;padding-top:18px;}
.e-footerblocks .e-copyline a{color:#D8B26A;text-decoration:none;}
.e-footerblocks .e-copyline a:hover{color:var(--e-ivory);}
.e-footerblocks .e-copyline a[href*="spectodesign"]{color:inherit;}
.e-footerblocks .e-copyline a[href*="spectodesign"]:hover{color:#D8B26A;}

/* --- Hero vignette (matches the sample's radial darkening) -------------- */
.wp-block-cover.e-hero-vignette::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(125% 85% at 50% 42%, transparent 52%, rgba(0,0,0,.6) 100%);z-index:1;}
.wp-block-cover.e-hero-vignette > .wp-block-cover__inner-container{position:relative;z-index:2;}

/* --- One measure for everything ---------------------------------------
   Header, hero and footer must share an inner width. Block-level
   contentSize is unreliable while the theme owns layout, so pin it here. */
:root{ --e-measure:1120px; --e-gutter:clamp(16px, 4.166667vw, 46px); }

.e-utilbar-blocks > .wp-block-group,
.e-headerblocks  > .wp-block-group,
.e-footerblocks  > .wp-block-columns,
.e-footerblocks  > .e-copyline{
  max-width:var(--e-measure);
  margin-inline:auto;
  width:100%;
}

/* Hero and the other full-bleed bands align to the same measure. */
.wp-block-cover.e-hero-vignette > .wp-block-cover__inner-container > .wp-block-columns,
.wp-block-cover.e-hero-vignette > .wp-block-cover__inner-container > .e-scrollcue{
  max-width:var(--e-measure);
  margin-inline:auto;
}

/* The fixed-HTML header/footer already use 1120 — keep them in step. */
.e-utilbar .in,.e-mast,.e-footer .in,.e-dogband .in,.e-metastrip .in{
  max-width:calc(var(--e-measure) + var(--e-gutter) * 2);
  padding-inline:var(--e-gutter);
  box-sizing:border-box;
}

@media(max-width:1220px){
  .e-utilbar-blocks > .wp-block-group,
  .e-headerblocks  > .wp-block-group,
  .e-footerblocks  > .wp-block-columns,
  .e-footerblocks  > .e-copyline{ padding-inline:0; }
}
/* --e-gutter now tracks theme.json's root padding clamp, so the fixed-HTML
   bands stay flush with block sections at every width. No breakpoint needed. */

/* Masthead rhythm — matches the sample's 26px band. */
.e-mast{padding-top:26px;padding-bottom:26px;}
.e-headerblocks{padding-top:26px !important;padding-bottom:26px !important;}

/* Any full-bleed cover band aligns its content to the shared measure,
   whether or not the block carries our hero class. */
/* Cap the cover's inner container once — children then behave normally. */
.wp-block-cover > .wp-block-cover__inner-container{
  width:min(100% - var(--e-gutter) * 2, var(--e-measure));
  max-width:none;
  margin-inline:auto;
}
.wp-block-cover > .wp-block-cover__inner-container > *{ max-width:100%; }

/* A copy column laid over a portrait keeps its own narrow measure and
   hugs the left edge of that container. Matches blocks already placed
   (left-positioned cover) as well as the tagged pattern. */
.wp-block-cover .e-band-copy,
.wp-block-cover.is-position-center-left > .wp-block-cover__inner-container > .wp-block-group,
.wp-block-cover.is-position-top-left > .wp-block-cover__inner-container > .wp-block-group,
.wp-block-cover.is-position-bottom-left > .wp-block-cover__inner-container > .wp-block-group{
  width:min(100%, 460px);
  max-width:none;
  margin-inline:0;
}

/* Cover content-position (is-position-center-left etc.) pins the inner
   container to the edge with margin-left:0. Keep the alignment, but bring
   the container back onto the shared measure. */
.wp-block-cover.has-custom-content-position > .wp-block-cover__inner-container{
  width:min(100% - var(--e-gutter) * 2, var(--e-measure)) !important;
  max-width:none !important;
  flex-basis:auto;
  flex-grow:0;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* An empty column exists only to hold space for the photograph. */
.wp-block-cover .wp-block-column:empty{ min-height:1px; }

/* --- Single post (letter) ---------------------------------------------- */
.e-backlink a{font-family:'Spectral',serif;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--e-petrol);text-decoration:none;}
.e-backlink a:hover{color:var(--e-oxblood);}
.e-postmeta{font-family:'Spectral',serif;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--e-soft);margin:0 0 14px;}
.e-postmeta a,.e-postmeta .wp-block-post-terms__separator{color:#96682A;text-decoration:none;}
.e-byline{font-size:1rem;color:var(--e-soft);margin:14px 0 0;}
.e-postbody > p:first-of-type::first-letter{font-family:'Marcellus',serif;float:left;font-size:4.4rem;
  line-height:.72;padding:.04em .12em 0 0;color:var(--e-oxblood);}
.e-signature{font-family:'Marcellus',serif;font-size:1.3rem;color:var(--e-ink);margin:1.4em 0 0;}
.e-postnote{border-top:1px solid var(--e-rule);margin-top:32px;padding-top:20px;font-size:.95rem;
  color:var(--e-soft);}
.e-postnote a{color:var(--e-oxblood);}
@media(min-width:960px){
  .e-post-titlecol{position:sticky;top:32px;align-self:start;}
}


/* --- Browser chrome continuity -----------------------------------------
   The header colour should read as continuing up into the Safari address
   bar and down past the footer. Three parts, all needed:

   1. theme-color (includes/favicon.php) tints the chrome itself.
   2. html carries the dark colour, so the elastic overscroll area at the
      very top and bottom is dark rather than white — body keeps paper.
   3. The header pads itself by the safe-area inset, so with
      viewport-fit=cover its background paints under the notch while the
      logo and nav stay below it. */
html{background:#0A0B0E;overflow-x:clip;}
/* Paper is the page floor. Global Styles can set a navy body background, which
   leaves any section without its own background reading dark ink on navy.
   Sections that DO set a background (the dark bands, covers) still win. */
body{background:var(--e-paper) !important;}
.wp-site-blocks{background:var(--e-paper);}
/* A group with a background gets WordPress's own 1.25em/2.375em padding, which
   throws off the shared measure on our full-bleed sections. Vertical padding is
   set per pattern; horizontal comes from the layout. */
/* Every full-width section gets the shared gutter, whatever block type it is
   and whether or not it sets a background. Opted out below:
     - covers: their inner container already carries the measure + gutter
     - anything with its own .in wrapper (dog band, meta strip, fixed header/
       footer HTML): the wrapper owns the padding
     - .e-dogband: full-bleed navy by design */
.alignfull:not(.wp-block-cover):not(.e-dogband):not(:has(> .in)){
  padding-left:var(--e-gutter);
  padding-right:var(--e-gutter);
}
/* The header/footer patterns ship a hardcoded 46px inline, which beats any
   rule here, so those three need the override. */
.e-utilbar-blocks,.e-headerblocks,.e-footerblocks{
  padding-left:var(--e-gutter) !important;
  padding-right:var(--e-gutter) !important;
}
/* Nested full-width sections must not stack two gutters. */
.alignfull .alignfull{padding-left:0;padding-right:0;}

/* --- Shared gutter ------------------------------------------------------
   Full-width sections carry the gutter; elements that own their edges (covers,
   the bleeding bands, full-bleed media) opt out and pad their inner wrapper. */
.alignfull:not(.wp-block-cover):not(.e-dogband):not(.e-metastrip):not(:has(> .in)){
  padding-left:var(--e-gutter);
  padding-right:var(--e-gutter);
}
.alignfull .alignfull{padding-left:0;padding-right:0;}
figure.wp-block-image,.wp-block-post-featured-image{padding-left:0;padding-right:0;}


/* ======================================================================
   Kit (ConvertKit) embedded form — brand skin
   Matches .e-signup on the newsletter band: gold hairline frame, transparent
   field, blue SIGN UP block. Kit ships inline style attributes on the input
   and button, so these need !important.
   Add class "ellen-kit-light" to the wrapper for the paper/oxblood variant.
   ====================================================================== */

.formkit-form,.formkit-form *{box-sizing:border-box;}
.formkit-form{max-width:100% !important;margin:0 auto;font-family:'Spectral',Georgia,serif;
  display:flex;flex-direction:column;align-items:center;text-align:center;}
.formkit-form [data-style="clean"]{padding:0 !important;width:auto !important;}
.formkit-form .formkit-powered-by-convertkit-container{display:none !important;}

.formkit-form .formkit-fields{
  display:grid !important;grid-template-columns:340px auto;align-items:stretch;
  gap:0;margin:0 auto;width:auto;
  border:1px solid rgba(219,181,107,.28);max-width:100%;
}
.formkit-form .formkit-field{margin:0 !important;min-width:0;width:100%;display:flex;}
.formkit-form .formkit-submit{margin:0 !important;position:static !important;
  display:flex;align-items:center;justify-content:center;}

.formkit-form .formkit-input{
  width:100%;height:100%;
  font-family:'Spectral',Georgia,serif !important;
  font-size:1.1rem !important;font-weight:400 !important;
  color:var(--e-ivory) !important;
  background:transparent !important;
  border:0 !important;border-radius:0 !important;
  padding:6px 18px !important;outline:none !important;
}
.formkit-form .formkit-input::placeholder{color:var(--e-mute) !important;opacity:1;}

.formkit-form .formkit-submit{
  background:#6E9AC0 !important;border:0 !important;border-radius:0 !important;
  color:var(--e-nero) !important;overflow:visible;transition:background .2s ease;
}
.formkit-form .formkit-submit > span{
  display:block;padding:0 26px !important;line-height:1;
  font-family:'Spectral',Georgia,serif;font-size:.68rem;letter-spacing:.28em;
  text-transform:uppercase;font-weight:400;white-space:nowrap;
  color:var(--e-nero);background:transparent !important;
}
.formkit-form .formkit-submit:hover,
.formkit-form .formkit-submit:focus{background:#8FB3D0 !important;}
.formkit-form .formkit-submit:hover > span,
.formkit-form .formkit-submit:focus > span{background:transparent !important;}
.formkit-form .formkit-submit:focus-visible{outline:2px solid var(--e-gold-lt);outline-offset:3px;}
.formkit-form .formkit-spinner > div{background-color:var(--e-nero);}

.formkit-form .formkit-alert{
  background:var(--e-navy);border:1px solid var(--e-gold-lt);border-radius:0;
  font-family:'Spectral',serif;font-size:.9rem;color:var(--e-paper);
  margin:0 0 16px;padding:12px 16px;text-align:center;
}
.formkit-form .formkit-alert-error{background:#3A1512;border-color:#B4564C;color:#F3D9D5;}
.formkit-form .formkit-email-suggestion{
  font-family:'Spectral',Georgia,serif !important;
  background:var(--e-navy) !important;border-radius:0 !important;color:var(--e-paper) !important;
}
.formkit-form .formkit-email-suggestion a{color:var(--e-gold-lt) !important;}

/* --- Light variant, for paper sections --------------------------------- */
.ellen-kit-light .formkit-fields{border-color:var(--e-rule);}
.ellen-kit-light .formkit-input{background:var(--e-paper2) !important;color:var(--e-ink) !important;}
.ellen-kit-light .formkit-input::placeholder{color:#9A9082 !important;}
.ellen-kit-light .formkit-submit{background:var(--e-oxblood) !important;}
.ellen-kit-light .formkit-submit > span{color:#fff;}
.ellen-kit-light .formkit-submit:hover{background:#6A2721 !important;}
.ellen-kit-light .formkit-spinner > div{background-color:#fff;}
.ellen-kit-light .formkit-alert{background:var(--e-paper2);border-color:var(--e-rule);color:var(--e-ink);}

@media (max-width:600px){
  .formkit-form .formkit-fields{grid-template-columns:1fr !important;width:100%;}
  .formkit-form .formkit-submit{width:100% !important;}
  .formkit-form .formkit-submit > span{width:100%;text-align:center;padding:14px 26px !important;}
}


/* ======================================================================
   Kit "Form Builder" block — brand skin
   Second embed option alongside the .formkit-* skin above. Use for the
   WordPress block (markup: .wp-block-convertkit-form-builder), which posts
   to the site itself rather than to Kit's hosted page.
   Add class "ellen-kit-light" to the block for the paper/oxblood variant.
   Light-variant selectors are scoped to the block so they cannot leak onto
   other inputs or buttons inside a light section.
   ====================================================================== */

.wp-block-convertkit-form-builder,
.wp-block-convertkit-form-builder *{box-sizing:border-box;}

.wp-block-convertkit-form-builder{
  max-width:100%;margin:0 auto;
  font-family:'Spectral',Georgia,serif;
  display:flex;flex-direction:column;align-items:center;text-align:center;
}

.wp-block-convertkit-form-builder form{
  display:grid;grid-template-columns:340px auto;align-items:stretch;
  gap:0;margin:0 auto;width:auto;max-width:100%;
  border:1px solid rgba(219,181,107,.28);
}

/* The notice the plugin prepends after a successful subscribe. */
.wp-block-convertkit-form-builder .convertkit-form-builder-subscribed-message{
  grid-column:1 / -1;
  font-family:'Spectral',Georgia,serif;font-size:1rem;color:var(--e-paper);
  padding:14px 18px;margin:0;text-align:center;
}
/* Success state. The plugin keeps the field and button in the markup and just
   prepends the message, so collapse to one column and drop the frame, the
   field and the orphaned button. */
.wp-block-convertkit-form-builder form:has(.convertkit-form-builder-subscribed-message){
  grid-template-columns:1fr;border-color:transparent;
}
.wp-block-convertkit-form-builder form:has(.convertkit-form-builder-subscribed-message) .convertkit-form-builder-field,
.wp-block-convertkit-form-builder form:has(.convertkit-form-builder-subscribed-message) .convertkit-form-builder-submit-button{display:none;}

/* The block renders a visible "Email address *" label. Hide it accessibly so
   the inline pill layout survives; the placeholder carries the cue. */
.wp-block-convertkit-form-builder label{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

.wp-block-convertkit-form-builder .convertkit-form-builder-field{
  margin:0;min-width:0;width:100%;display:flex;grid-column:1;
}

.wp-block-convertkit-form-builder input[type="email"],
.wp-block-convertkit-form-builder input[type="text"]{
  width:100%;height:100%;
  font-family:'Spectral',Georgia,serif;
  font-size:1.1rem;font-weight:400;
  color:var(--e-ivory);
  background:transparent;
  border:0;border-radius:0;
  padding:6px 18px;outline:none;
}
.wp-block-convertkit-form-builder input::placeholder{color:var(--e-mute);opacity:1;}
.wp-block-convertkit-form-builder input:focus-visible{
  outline:2px solid var(--e-gold-lt);outline-offset:-2px;
}

/* The submit is a core button block, so core's .wp-element-button styles are
   what these have to beat. */
.wp-block-convertkit-form-builder .convertkit-form-builder-submit-button{margin:0;display:flex;grid-column:2;}
.wp-block-convertkit-form-builder .wp-block-button__link,
.wp-block-convertkit-form-builder button[type="submit"]{
  display:flex;align-items:center;justify-content:center;
  height:100%;margin:0 !important;
  background:#6E9AC0 !important;border:0 !important;border-radius:0 !important;
  color:var(--e-nero) !important;
  padding:0 26px !important;line-height:1;
  font-family:'Spectral',Georgia,serif;font-size:.68rem;letter-spacing:.28em;
  text-transform:uppercase;font-weight:400;white-space:nowrap;
  transition:background .2s ease;cursor:pointer;
}
.wp-block-convertkit-form-builder .wp-block-button__link:hover,
.wp-block-convertkit-form-builder button[type="submit"]:hover{background:#8FB3D0 !important;}
.wp-block-convertkit-form-builder .wp-block-button__link:focus-visible,
.wp-block-convertkit-form-builder button[type="submit"]:focus-visible{
  outline:2px solid var(--e-gold-lt);outline-offset:3px;
}

/* Notices the plugin prints after a submit. */
.wp-block-convertkit-form-builder .convertkit-form-builder-notice,
.wp-block-convertkit-form-builder .convertkit-form-builder-error,
.wp-block-convertkit-form-builder .convertkit-form-builder-success{
  grid-column:1 / -1;
  background:var(--e-navy);border:1px solid var(--e-gold-lt);border-radius:0;
  font-family:'Spectral',serif;font-size:.9rem;color:var(--e-paper);
  margin:0;padding:12px 16px;text-align:center;
}
.wp-block-convertkit-form-builder .convertkit-form-builder-error{
  background:#3A1512;border-color:#B4564C;color:#F3D9D5;
}

/* --- Light variant, for paper sections --------------------------------- */
.ellen-kit-light .wp-block-convertkit-form-builder form,
.wp-block-convertkit-form-builder.ellen-kit-light form{border-color:var(--e-rule);}
.ellen-kit-light .wp-block-convertkit-form-builder input[type="email"],
.ellen-kit-light .wp-block-convertkit-form-builder input[type="text"],
.wp-block-convertkit-form-builder.ellen-kit-light input[type="email"],
.wp-block-convertkit-form-builder.ellen-kit-light input[type="text"]{
  background:var(--e-paper2);color:var(--e-ink);
}
.ellen-kit-light .wp-block-convertkit-form-builder input::placeholder,
.wp-block-convertkit-form-builder.ellen-kit-light input::placeholder{color:#9A9082;}
.ellen-kit-light .wp-block-convertkit-form-builder button[type="submit"],
.ellen-kit-light .wp-block-convertkit-form-builder .wp-block-button__link,
.wp-block-convertkit-form-builder.ellen-kit-light button[type="submit"],
.wp-block-convertkit-form-builder.ellen-kit-light .wp-block-button__link{
  background:var(--e-oxblood) !important;color:#fff !important;
}
.ellen-kit-light .wp-block-convertkit-form-builder button[type="submit"]:hover,
.ellen-kit-light .wp-block-convertkit-form-builder .wp-block-button__link:hover,
.wp-block-convertkit-form-builder.ellen-kit-light button[type="submit"]:hover,
.wp-block-convertkit-form-builder.ellen-kit-light .wp-block-button__link:hover{
  background:#6A2721 !important;
}
.ellen-kit-light .wp-block-convertkit-form-builder .convertkit-form-builder-notice,
.ellen-kit-light .wp-block-convertkit-form-builder .convertkit-form-builder-success,
.wp-block-convertkit-form-builder.ellen-kit-light .convertkit-form-builder-notice,
.wp-block-convertkit-form-builder.ellen-kit-light .convertkit-form-builder-success{
  background:var(--e-paper2);border-color:var(--e-rule);color:var(--e-ink);
}

@media (max-width:600px){
  .wp-block-convertkit-form-builder form{grid-template-columns:1fr;width:100%;}
  .wp-block-convertkit-form-builder .convertkit-form-builder-field,
  .wp-block-convertkit-form-builder .convertkit-form-builder-submit-button{grid-column:1;width:100%;}
  .wp-block-convertkit-form-builder .wp-block-button__link,
  .wp-block-convertkit-form-builder button[type="submit"]{width:100%;padding:14px 26px !important;}
}
