/* =========================================================
   RADD ICENOGGLE — supplemental block theme styles
   Most design tokens live in theme.json. This file adds:
   - Hero (Ken Burns + reveal)
   - Block style variants (eyebrow, lede, card, divided cols, etc.)
   - Marquee strip
   - A handful of polish utilities used by patterns
   ========================================================= */

/* ---------- Base polish ---------- */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(143,155,126,0.06), transparent 60%),
    radial-gradient(900px 500px at 0% 110%, rgba(180,122,69,0.04), transparent 60%),
    var(--wp--preset--color--bg);
}

/* ---------- Hero (cover block with .is-style-rip-hero) ---------- */
.wp-block-cover.is-style-rip-hero {
  min-height: 92vh;
  overflow: hidden;
  isolation: isolate;
}
.wp-block-cover.is-style-rip-hero .wp-block-cover__image-background {
  transform: scale(1.06);
  animation: ripKenBurns 28s ease-in-out 1200ms forwards;
  will-change: transform;
}
.wp-block-cover.is-style-rip-hero::before {
  content: "";
  position: absolute; inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(4,6,10,0.78) 0%, rgba(4,6,10,0.35) 38%, rgba(4,6,10,0) 65%),
    linear-gradient(180deg, rgba(4,6,10,0.30) 0%, rgba(4,6,10,0) 28%, rgba(4,6,10,0.55) 72%, var(--wp--preset--color--bg) 100%);
}
.wp-block-cover.is-style-rip-hero .wp-block-cover__inner-container {
  position: relative;
  z-index: 3;
  opacity: 0;
  transform: translateY(14px);
  animation: ripReveal 1400ms cubic-bezier(.2,.7,.2,1) 800ms forwards;
}
@keyframes ripKenBurns {
  from { transform: scale(1.06) translate3d(0,0,0); }
  to   { transform: scale(1.14) translate3d(-1.5%, -2%, 0); }
}
@keyframes ripReveal {
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .wp-block-cover.is-style-rip-hero .wp-block-cover__image-background { animation: none; transform: none; }
  .wp-block-cover.is-style-rip-hero .wp-block-cover__inner-container { animation: none; opacity: 1; transform: none; }
}

/* ---------- Eyebrow (heading or paragraph .is-style-rip-eyebrow) ---------- */
.is-style-rip-eyebrow {
  display: inline-flex !important;
  align-items: center;
  gap: 12px;
  font-family: var(--wp--preset--font-family--sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
  color: var(--wp--preset--color--sage) !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  margin: 0 0 18px !important;
}
.is-style-rip-eyebrow::before {
  content: "";
  width: 28px; height: 1px;
  background: var(--wp--preset--color--copper);
  flex: none;
}

/* ---------- Lede paragraph ---------- */
.is-style-rip-lede {
  font-family: var(--wp--preset--font-family--serif) !important;
  font-size: clamp(18px, 1.4vw, 22px) !important;
  line-height: 1.6 !important;
  color: var(--wp--preset--color--ivory-dim) !important;
  max-width: 56ch;
}

/* ---------- Field meta (mono) ---------- */
.is-style-rip-mono-meta {
  font-family: var(--wp--preset--font-family--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--wp--preset--color--muted-2) !important;
}

/* ---------- Card group ---------- */
.wp-block-group.is-style-rip-card {
  background: linear-gradient(180deg, var(--wp--preset--color--surface) 0%, var(--wp--preset--color--bg-2) 100%);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 18px;
  padding: 32px;
  transition: border-color 250ms ease, transform 250ms ease;
}
.wp-block-group.is-style-rip-card:hover {
  border-color: var(--wp--preset--color--line-strong);
  transform: translateY(-2px);
}
.wp-block-group.is-style-rip-card-feature {
  background: linear-gradient(180deg, rgba(180,122,69,0.06) 0%, var(--wp--preset--color--surface) 100%);
  border: 1px solid var(--wp--preset--color--copper);
  border-radius: 18px;
  padding: 32px;
}

/* ---------- Divided columns (vertical hairline between cols) ---------- */
.wp-block-columns.is-style-rip-divided > .wp-block-column + .wp-block-column {
  border-left: 1px solid var(--wp--preset--color--line);
  padding-left: 32px;
}
@media (max-width: 781px) {
  .wp-block-columns.is-style-rip-divided > .wp-block-column + .wp-block-column {
    border-left: 0; padding-left: 0;
    border-top: 1px solid var(--wp--preset--color--line);
    padding-top: 32px;
  }
}

/* ---------- Buttons ---------- */
.wp-block-button .wp-block-button__link {
  transition: background 220ms ease, color 220ms ease, transform 220ms ease, border-color 220ms ease;
}
.wp-block-button .wp-block-button__link:hover {
  transform: translateY(-1px);
}
.wp-block-button.is-style-rip-secondary .wp-block-button__link {
  background: transparent;
  color: var(--wp--preset--color--ivory);
  border: 1px solid var(--wp--preset--color--line-strong);
}
.wp-block-button.is-style-rip-secondary .wp-block-button__link:hover {
  border-color: var(--wp--preset--color--sage);
  color: var(--wp--preset--color--sage);
  background: rgba(143,155,126,0.04);
}
.wp-block-button.is-style-rip-sage .wp-block-button__link {
  background: var(--wp--preset--color--sage);
  color: #0B0F0D;
}
.wp-block-button.is-style-rip-sage .wp-block-button__link:hover {
  background: #A1AE8E;
}

/* ---------- List w/ dashed copper marker ---------- */
.wp-block-list.is-style-rip-dashed { list-style: none; padding-left: 0; }
.wp-block-list.is-style-rip-dashed li {
  padding: 10px 0;
  border-bottom: 1px dashed var(--wp--preset--color--line);
  font-size: 14px;
  color: var(--wp--preset--color--ivory-dim);
  display: flex; gap: 12px; align-items: center;
}
.wp-block-list.is-style-rip-dashed li::before {
  content: "";
  width: 14px; height: 1px;
  background: var(--wp--preset--color--copper);
  flex: none;
}

/* ---------- Pullquote variant ---------- */
.wp-block-quote.is-style-rip-pullquote {
  border: 0;
  padding: 0;
}
.wp-block-quote.is-style-rip-pullquote p {
  font-family: var(--wp--preset--font-family--display) !important;
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.2;
  color: var(--wp--preset--color--ivory);
  font-style: normal;
  margin: 0;
}
.wp-block-quote.is-style-rip-pullquote cite {
  display: block;
  margin-top: 16px;
  font-family: var(--wp--preset--font-family--sans);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--copper);
  font-style: normal;
}

/* ---------- Header + footer chrome ---------- */
.wp-block-template-part.site-header,
header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  background: rgba(7, 11, 9, 0.78);
  border-bottom: 1px solid var(--wp--preset--color--line);
}
.wp-block-site-logo img {
  border-radius: 50%;
}
.wp-block-navigation .wp-block-navigation-item__content {
  padding: 6px 0;
  position: relative;
  transition: color 180ms ease;
}
.wp-block-navigation .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content:hover {
  color: var(--wp--preset--color--sage);
}
.wp-block-navigation .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -2px;
  height: 1px; background: var(--wp--preset--color--copper);
}

/* ---------- Marquee strip (group with class .rip-marquee) ---------- */
.rip-marquee {
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--wp--preset--color--line);
  border-bottom: 1px solid var(--wp--preset--color--line);
  background: var(--wp--preset--color--bg-2);
  padding: 22px 0;
}
.rip-marquee-track {
  display: flex;
  gap: 56px;
  white-space: nowrap;
  font-family: var(--wp--preset--font-family--display);
  font-size: 16px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted);
  animation: ripMarquee 60s linear infinite;
}
.rip-marquee-track > span { display: inline-flex; align-items: center; gap: 56px; }
.rip-marquee-track .sep { color: var(--wp--preset--color--copper); }
@keyframes ripMarquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ---------- Pills / tags (utility class for plain <span>s in HTML blocks) ---------- */
.rip-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--wp--preset--font-family--sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--sage);
  padding: 6px 12px;
  border: 1px solid var(--wp--preset--color--line-strong);
  border-radius: 999px;
  background: rgba(11, 15, 13, 0.6);
  backdrop-filter: blur(8px);
}

/* ---------- Image utilities ---------- */
.wp-block-image.is-style-rounded img { border-radius: 18px; }
.wp-block-image.is-style-bordered img { border: 1px solid var(--wp--preset--color--line); border-radius: 18px; }

/* ---------- Footer chrome ---------- */
footer.wp-block-template-part,
.wp-block-template-part.site-footer {
  background: #050807;
  border-top: 1px solid var(--wp--preset--color--line);
}

/* ---------- Inputs (used by Contact form pattern) ---------- */
.rip-form input,
.rip-form select,
.rip-form textarea {
  width: 100%;
  padding: 14px 16px;
  background: var(--wp--preset--color--bg);
  border: 1px solid var(--wp--preset--color--line-strong);
  border-radius: 10px;
  color: var(--wp--preset--color--ivory);
  font-family: var(--wp--preset--font-family--sans);
  font-size: 15px;
}
.rip-form label {
  display: block;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted-2);
  margin-bottom: 8px;
  font-weight: 600;
}
.rip-form .field { margin-bottom: 22px; }
.rip-form textarea { min-height: 140px; font-family: var(--wp--preset--font-family--serif); }

/* Installer hardening: keep Claude Design sections full-bleed while preserving readable inner widths. */
.wp-site-blocks > main.wp-block-group {
  max-width: none;
  width: 100%;
}
.wp-block-post-content > .alignfull {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: 100vw !important;
  width: 100vw !important;
}


/* =========================================================
   RADD PATCH — keep page sections the same visual width
   as the header instead of running edge-to-edge.
   ========================================================= */

:root {
  --rip-page-frame: 1320px;
  --rip-page-gutter: clamp(18px, 3vw, 32px);
}

/* Keep the header inner content and page content using the same frame. */
.wp-block-template-part.site-header > .wp-block-group.alignfull,
header.wp-block-template-part > .wp-block-group.alignfull,
.wp-site-blocks main .wp-block-post-content > .alignfull,
.wp-site-blocks main > .alignfull,
.wp-site-blocks main > .wp-block-group.alignfull,
.wp-site-blocks main > .wp-block-cover.alignfull,
.wp-site-blocks .entry-content > .alignfull {
  width: min(var(--rip-page-frame), calc(100vw - (var(--rip-page-gutter) * 2))) !important;
  max-width: min(var(--rip-page-frame), calc(100vw - (var(--rip-page-gutter) * 2))) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Prevent WordPress alignfull rules from forcing negative margins. */
.wp-site-blocks main .wp-block-post-content > .alignfull,
.wp-site-blocks .entry-content > .alignfull {
  left: auto !important;
  right: auto !important;
}

/* Keep the cinematic hero polished inside the constrained frame. */
.wp-block-cover.is-style-rip-hero.alignfull {
  border-radius: 0 0 18px 18px;
  overflow: hidden;
}

/* Make the hero text align cleanly inside the same frame. */
.wp-block-cover.is-style-rip-hero .wp-block-cover__inner-container {
  width: 100% !important;
  max-width: 100% !important;
}

/* HTML marquee was not a normal alignfull block, so constrain it too. */
.rip-marquee {
  width: min(var(--rip-page-frame), calc(100vw - (var(--rip-page-gutter) * 2))) !important;
  max-width: min(var(--rip-page-frame), calc(100vw - (var(--rip-page-gutter) * 2))) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* On phones, let content breathe but stay full usable width. */
@media (max-width: 700px) {
  :root {
    --rip-page-gutter: 14px;
  }

  .wp-block-cover.is-style-rip-hero.alignfull {
    border-radius: 0;
  }
}


/* =========================================================
   RADD PATCH — full-bleed imagery, header-width content
   Goal:
   - Keep hero/background sections visually cinematic and full-width.
   - Constrain the actual text/content to the same visual frame as header.
   ========================================================= */

:root {
  /*
    This is the visual content frame shown in the screenshot:
    roughly header-logo-left to CTA-right.
    Increase to 1240px if you want slightly wider.
    Decrease to 1120px if you want tighter.
  */
  --rip-content-frame: 1184px;
  --rip-mobile-gutter: 22px;
}

/* Keep full-bleed hero/image sections full-width. */
.wp-block-cover.is-style-rip-hero.alignfull,
.wp-block-cover.is-style-rip-hero {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  border-radius: 0 !important;
}

/* The hero's text/content frame: this is the important part. */
.wp-block-cover.is-style-rip-hero > .wp-block-cover__inner-container {
  width: min(var(--rip-content-frame), calc(100vw - (var(--rip-mobile-gutter) * 2))) !important;
  max-width: min(var(--rip-content-frame), calc(100vw - (var(--rip-mobile-gutter) * 2))) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Remove the extra left shove inside the hero group. */
.wp-block-cover.is-style-rip-hero > .wp-block-cover__inner-container > .wp-block-group {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* Keep hero copy from running absurdly wide. */
.wp-block-cover.is-style-rip-hero h1 {
  max-width: 920px !important;
}

.wp-block-cover.is-style-rip-hero p {
  max-width: 980px !important;
}

/* Main full-width sections should have full-bleed backgrounds,
   but their inner content should line up with the header/content frame. */
.wp-site-blocks main > .wp-block-group.alignfull,
.wp-site-blocks .entry-content > .wp-block-group.alignfull,
.wp-block-post-content > .wp-block-group.alignfull {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

/* For regular alignfull groups, use their padding as the breathing room,
   but constrain the actual children. */
.wp-site-blocks main > .wp-block-group.alignfull > *,
.wp-site-blocks .entry-content > .wp-block-group.alignfull > *,
.wp-block-post-content > .wp-block-group.alignfull > * {
  max-width: var(--rip-content-frame) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Do not constrain full-width media/background elements inside sections. */
.wp-site-blocks main > .wp-block-group.alignfull > .alignfull,
.wp-site-blocks .entry-content > .wp-block-group.alignfull > .alignfull,
.wp-block-post-content > .wp-block-group.alignfull > .alignfull {
  max-width: none !important;
}

/* Marquee should also sit in the same visual content frame, not edge-to-edge. */
.rip-marquee {
  width: min(var(--rip-content-frame), calc(100vw - (var(--rip-mobile-gutter) * 2))) !important;
  max-width: min(var(--rip-content-frame), calc(100vw - (var(--rip-mobile-gutter) * 2))) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Mobile: allow normal edge breathing. */
@media (max-width: 760px) {
  :root {
    --rip-mobile-gutter: 18px;
  }

  .wp-block-cover.is-style-rip-hero h1,
  .wp-block-cover.is-style-rip-hero p {
    max-width: 100% !important;
  }
}


/* =========================================================
   RADD PATCH — hero image full bleed, hero text constrained
   This intentionally overrides earlier page-frame constraints.
   ========================================================= */

/* Prevent accidental horizontal scroll from 100vw full-bleed sections. */
html,
body {
  overflow-x: hidden;
}

/* Force the hero/background image block to span the full browser width. */
.wp-site-blocks main .wp-block-cover.is-style-rip-hero.alignfull,
.wp-site-blocks .entry-content .wp-block-cover.is-style-rip-hero.alignfull,
.wp-block-post-content .wp-block-cover.is-style-rip-hero.alignfull,
.wp-block-cover.is-style-rip-hero.alignfull {
  width: 100vw !important;
  max-width: 100vw !important;
  min-width: 100vw !important;

  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;

  left: auto !important;
  right: auto !important;

  border-radius: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* Make sure the cover image itself fills the full-bleed hero. */
.wp-block-cover.is-style-rip-hero.alignfull img.wp-block-cover__image-background,
.wp-block-cover.is-style-rip-hero.alignfull video.wp-block-cover__video-background {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Keep only the hero text/content aligned with the header frame. */
.wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container {
  width: min(1184px, calc(100vw - 44px)) !important;
  max-width: min(1184px, calc(100vw - 44px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Keep inner hero group from adding its own weird offset. */
.wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container > .wp-block-group {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Keep the headline readable, not full-width. */
.wp-block-cover.is-style-rip-hero.alignfull h1 {
  max-width: 920px !important;
}

.wp-block-cover.is-style-rip-hero.alignfull p {
  max-width: 980px !important;
}

@media (max-width: 760px) {
  .wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container {
    width: calc(100vw - 36px) !important;
    max-width: calc(100vw - 36px) !important;
  }

  .wp-block-cover.is-style-rip-hero.alignfull h1,
  .wp-block-cover.is-style-rip-hero.alignfull p {
    max-width: 100% !important;
  }
}


/* =========================================================
   RADD PATCH — hero copy should pop and occupy left 50%
   ========================================================= */

/* Keep the hero image full-bleed. */
.wp-block-cover.is-style-rip-hero.alignfull {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

/* Strengthen the dark readability gradient on the left side. */
.wp-block-cover.is-style-rip-hero.alignfull::before {
  opacity: 0.74 !important;
  background:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.86) 0%,
      rgba(0, 0, 0, 0.72) 24%,
      rgba(0, 0, 0, 0.46) 48%,
      rgba(0, 0, 0, 0.20) 72%,
      rgba(0, 0, 0, 0.08) 100%
    ) !important;
}

/* The overall hero content frame lines up with the header. */
.wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container {
  width: min(1184px, calc(100vw - 44px)) !important;
  max-width: min(1184px, calc(100vw - 44px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* The actual text/call-to-action group only uses the left half. */
.wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container > .wp-block-group {
  width: 50% !important;
  max-width: 592px !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* Make the eyebrow legible. */
.wp-block-cover.is-style-rip-hero.alignfull .rip-eyebrow,
.wp-block-cover.is-style-rip-hero.alignfull p.has-text-transform-uppercase,
.wp-block-cover.is-style-rip-hero.alignfull p:first-child {
  color: rgba(232, 222, 202, 0.88) !important;
  opacity: 1 !important;
  letter-spacing: 0.18em !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.85) !important;
}

/* Make headline pop. */
.wp-block-cover.is-style-rip-hero.alignfull h1 {
  max-width: 100% !important;
  color: rgba(238, 231, 216, 0.94) !important;
  opacity: 1 !important;
  text-shadow:
    0 2px 8px rgba(0, 0, 0, 0.92),
    0 8px 28px rgba(0, 0, 0, 0.72),
    0 18px 60px rgba(0, 0, 0, 0.62) !important;
}

/* Keep italic/accent words visible but refined. */
.wp-block-cover.is-style-rip-hero.alignfull h1 em,
.wp-block-cover.is-style-rip-hero.alignfull h1 i {
  color: rgba(196, 132, 72, 0.95) !important;
  opacity: 1 !important;
  text-shadow:
    0 2px 8px rgba(0, 0, 0, 0.88),
    0 10px 30px rgba(0, 0, 0, 0.62) !important;
}

/* Make the supporting line readable. */
.wp-block-cover.is-style-rip-hero.alignfull p {
  max-width: 100% !important;
  color: rgba(236, 230, 218, 0.82) !important;
  opacity: 1 !important;
  text-shadow:
    0 1px 5px rgba(0, 0, 0, 0.95),
    0 8px 24px rgba(0, 0, 0, 0.72) !important;
}

/* Make buttons separate from the background. */
.wp-block-cover.is-style-rip-hero.alignfull .wp-block-button__link {
  opacity: 1 !important;
  box-shadow:
    0 8px 24px rgba(0, 0, 0, 0.42),
    inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
}

/* Tablet: allow a little more room. */
@media (max-width: 1000px) {
  .wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container > .wp-block-group {
    width: 62% !important;
    max-width: 620px !important;
  }
}

/* Mobile: full width inside the mobile gutter. */
@media (max-width: 700px) {
  .wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container {
    width: calc(100vw - 36px) !important;
    max-width: calc(100vw - 36px) !important;
  }

  .wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container > .wp-block-group {
    width: 100% !important;
    max-width: 100% !important;
  }

  .wp-block-cover.is-style-rip-hero.alignfull::before {
    background:
      linear-gradient(
        90deg,
        rgba(0, 0, 0, 0.88) 0%,
        rgba(0, 0, 0, 0.76) 55%,
        rgba(0, 0, 0, 0.36) 100%
      ) !important;
  }
}


/* =========================================================
   RADD PATCH — stronger hero text pop
   ========================================================= */

/* Stronger dark shaping behind the copy, still transparent. */
.wp-block-cover.is-style-rip-hero.alignfull::before {
  opacity: 0.86 !important;
  background:
    radial-gradient(
      circle at 22% 48%,
      rgba(0, 0, 0, 0.78) 0%,
      rgba(0, 0, 0, 0.66) 28%,
      rgba(0, 0, 0, 0.38) 52%,
      rgba(0, 0, 0, 0.12) 78%,
      rgba(0, 0, 0, 0.04) 100%
    ),
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.88) 0%,
      rgba(0, 0, 0, 0.76) 28%,
      rgba(0, 0, 0, 0.42) 52%,
      rgba(0, 0, 0, 0.14) 78%,
      rgba(0, 0, 0, 0.05) 100%
    ) !important;
}

/* Put a very subtle editorial shadow-panel behind the left copy only. */
.wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container > .wp-block-group {
  position: relative !important;
  isolation: isolate !important;
}

.wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container > .wp-block-group::before {
  content: "" !important;
  position: absolute !important;
  z-index: -1 !important;
  inset: -32px -34px -34px -34px !important;
  border-radius: 28px !important;
  background:
    linear-gradient(
      135deg,
      rgba(0, 0, 0, 0.46),
      rgba(0, 0, 0, 0.24) 58%,
      rgba(0, 0, 0, 0.08)
    ) !important;
  box-shadow:
    0 28px 80px rgba(0, 0, 0, 0.52),
    inset 0 1px 0 rgba(255, 255, 255, 0.045) !important;
  backdrop-filter: blur(1.5px) !important;
}

/* Eyebrow: brighter and cleaner. */
.wp-block-cover.is-style-rip-hero.alignfull .rip-eyebrow,
.wp-block-cover.is-style-rip-hero.alignfull p.has-text-transform-uppercase,
.wp-block-cover.is-style-rip-hero.alignfull p:first-child {
  color: rgba(244, 235, 214, 0.96) !important;
  opacity: 1 !important;
  font-weight: 600 !important;
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 1),
    0 4px 14px rgba(0, 0, 0, 0.95),
    0 12px 34px rgba(0, 0, 0, 0.75) !important;
}

/* Headline: brighter, heavier contrast, better edge definition. */
.wp-block-cover.is-style-rip-hero.alignfull h1 {
  color: rgba(248, 243, 232, 0.98) !important;
  opacity: 1 !important;
  font-weight: 500 !important;
  text-shadow:
    0 1px 1px rgba(0, 0, 0, 1),
    0 3px 9px rgba(0, 0, 0, 0.98),
    0 10px 28px rgba(0, 0, 0, 0.84),
    0 24px 70px rgba(0, 0, 0, 0.72) !important;
}

/* Accent italic: make it visible but still elegant. */
.wp-block-cover.is-style-rip-hero.alignfull h1 em,
.wp-block-cover.is-style-rip-hero.alignfull h1 i {
  color: rgba(220, 145, 74, 1) !important;
  opacity: 1 !important;
  text-shadow:
    0 1px 1px rgba(0, 0, 0, 1),
    0 4px 12px rgba(0, 0, 0, 0.95),
    0 14px 42px rgba(0, 0, 0, 0.78) !important;
}

/* Body copy: enough contrast to actually read. */
.wp-block-cover.is-style-rip-hero.alignfull p:not(:first-child) {
  color: rgba(246, 240, 228, 0.90) !important;
  opacity: 1 !important;
  font-weight: 420 !important;
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 1),
    0 4px 12px rgba(0, 0, 0, 0.95),
    0 14px 38px rgba(0, 0, 0, 0.76) !important;
}

/* CTA buttons: stronger, cleaner, less muddy. */
.wp-block-cover.is-style-rip-hero.alignfull .wp-block-button__link {
  filter: contrast(1.08) saturate(1.08) !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.58) !important;
  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.55),
    0 2px 8px rgba(0, 0, 0, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.18) !important;
}

/* Slightly reduce image brightness only under the text side. */
.wp-block-cover.is-style-rip-hero.alignfull::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  z-index: 1 !important;
  background:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.20) 0%,
      rgba(0, 0, 0, 0.12) 38%,
      rgba(0, 0, 0, 0.00) 70%
    ) !important;
}

/* Keep actual content above the overlay. */
.wp-block-cover.is-style-rip-hero.alignfull > .wp-block-cover__inner-container {
  position: relative !important;
  z-index: 2 !important;
}


/* =========================================================
   RADD PATCH — remove header tagline under site title
   ========================================================= */

.site-header .wp-block-site-tagline,
header .wp-block-site-tagline,
.wp-block-template-part .wp-block-site-tagline {
  display: none !important;
}

/* If Claude exported the tagline as a normal paragraph instead of site-tagline,
   hide only the small uppercase paragraph inside the header brand area. */
.site-header p:has(+ *),
header p.has-small-font-size,
.wp-block-template-part header p.has-small-font-size {
  display: none !important;
}


/* =========================================================
   RADD PATCH — align section eyebrow labels with content
   Fixes labels like SERVICES / PROCESS sitting in far-left gutter.
   ========================================================= */

:root {
  --rip-content-frame: 1184px;
  --rip-mobile-gutter: 22px;
}

/* Direct section eyebrow labels should align with the section content frame,
   not the browser edge or outer alignfull padding. */
.wp-site-blocks main > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center),
.wp-site-blocks .entry-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center),
.wp-block-post-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) {
  display: flex !important;
  width: min(var(--rip-content-frame), calc(100vw - (var(--rip-mobile-gutter) * 2))) !important;
  max-width: min(var(--rip-content-frame), calc(100vw - (var(--rip-mobile-gutter) * 2))) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 18px !important;
  box-sizing: border-box !important;
  justify-content: flex-start !important;
}

/* Keep the small copper rule and text grouped on the left edge of that frame. */
.wp-site-blocks main > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center)::before,
.wp-site-blocks .entry-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center)::before,
.wp-block-post-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center)::before {
  flex: 0 0 28px !important;
}

/* Make sure the following major headings use the same frame. */
.wp-site-blocks main > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) + h1,
.wp-site-blocks main > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) + h2,
.wp-site-blocks main > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) + h3,
.wp-site-blocks .entry-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) + h1,
.wp-site-blocks .entry-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) + h2,
.wp-site-blocks .entry-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) + h3,
.wp-block-post-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) + h1,
.wp-block-post-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) + h2,
.wp-block-post-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) + h3 {
  width: min(var(--rip-content-frame), calc(100vw - (var(--rip-mobile-gutter) * 2))) !important;
  max-width: min(var(--rip-content-frame), calc(100vw - (var(--rip-mobile-gutter) * 2))) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Mobile: normal breathing room. */
@media (max-width: 760px) {
  :root {
    --rip-mobile-gutter: 18px;
  }

  .wp-site-blocks main > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center),
  .wp-site-blocks .entry-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center),
  .wp-block-post-content > .wp-block-group.alignfull > p.is-style-rip-eyebrow:not(.has-text-align-center) {
    width: calc(100vw - 36px) !important;
    max-width: calc(100vw - 36px) !important;
  }
}
