/* 4DGeosteering Core v2.0.0 — self-contained component/editor styling. */
.fourdg-responsive-type :where(.fourdg-hero-v2-title,.fourdg-section-title,.fourdg-cta-title) { font-size: var(--fourdg-type-title-desktop, revert); }
.fourdg-responsive-type :where(.fourdg-hero-v2-copy,.fourdg-section-copy,.fourdg-cta-copy) { font-size: var(--fourdg-type-text-desktop, revert); }
.fourdg-responsive-type :where(.fourdg-card-title,.fourdg-carousel-title,.fourdg-accordion-title,.fourdg-stat-value,.fourdg-button--premium) { font-size: var(--fourdg-type-item-desktop, revert); }
@media (max-width: 64rem) {
  .fourdg-responsive-type :where(.fourdg-hero-v2-title,.fourdg-section-title,.fourdg-cta-title) { font-size: var(--fourdg-type-title-tablet, var(--fourdg-type-title-desktop, revert)); }
  .fourdg-responsive-type :where(.fourdg-hero-v2-copy,.fourdg-section-copy,.fourdg-cta-copy) { font-size: var(--fourdg-type-text-tablet, var(--fourdg-type-text-desktop, revert)); }
  .fourdg-responsive-type :where(.fourdg-card-title,.fourdg-carousel-title,.fourdg-accordion-title,.fourdg-stat-value,.fourdg-button--premium) { font-size: var(--fourdg-type-item-tablet, var(--fourdg-type-item-desktop, revert)); }
}

/* Authority Profile — portable structured composition (Elementor + Gutenberg). */
.fourdg-authority {
  --fourdg-authority-width: 760px;
  --fourdg-authority-portrait: 210px;
  --fourdg-authority-padding: 36px;
  --fourdg-authority-gap: 22px;
  --fourdg-authority-radius: 0px;
  --fourdg-authority-surface: var(--fourdg-primary, #210610);
  --fourdg-authority-accent: var(--fourdg-accent, #d6b36a);
  position: relative;
  isolation: isolate;
  overflow: clip;
  width: min(100%, var(--fourdg-authority-width));
  margin-inline: auto;
  border-radius: var(--fourdg-authority-radius);
  color: var(--fourdg-off-white, #f7f3f0);
  background-color: var(--fourdg-authority-surface);
  background-image: linear-gradient(180deg, rgba(19,3,9,.16), rgba(19,3,9,.72)), var(--fourdg-authority-bg, none);
  background-size: cover;
  background-position: center;
  box-shadow: 0 30px 90px rgba(10,0,4,.28);
}
.fourdg-authority::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(circle at 50% 15%, rgba(214,179,106,.12), transparent 42%), linear-gradient(135deg, transparent, rgba(255,255,255,.025), transparent); }
.fourdg-authority__inner { display:flex; flex-direction:column; align-items:center; gap:var(--fourdg-authority-gap); padding:var(--fourdg-authority-padding); text-align:center; }
.fourdg-authority__portrait { width:min(100%,var(--fourdg-authority-portrait)); aspect-ratio:4/5; object-fit:contain; object-position:center bottom; margin-bottom:calc(var(--fourdg-authority-gap) * -.7); filter:drop-shadow(0 20px 25px rgba(0,0,0,.32)); }
.fourdg-authority__identity { display:grid; gap:.35rem; }
.fourdg-authority__name { margin:0; color:var(--fourdg-off-white,#f7f3f0); font-family:var(--wp--preset--font-family--display,serif); font-size:clamp(2rem,5vw,3.5rem); line-height:1; }
.fourdg-authority__role,.fourdg-authority__profile-label,.fourdg-authority__proof,.fourdg-authority__tagline { margin:0; }
.fourdg-authority__role,.fourdg-authority__profile-label,.fourdg-authority__tagline { color:var(--fourdg-authority-accent); }
.fourdg-authority__audience { display:grid; grid-template-columns:auto auto; justify-content:center; align-items:baseline; gap:.2rem .7rem; }
.fourdg-authority__audience > :first-child,.fourdg-authority__audience > :last-child { grid-column:1/-1; }
.fourdg-authority__audience strong { color:var(--fourdg-authority-accent); font-family:var(--wp--preset--font-family--display,serif); font-size:clamp(2rem,6vw,4rem); line-height:1; }
.fourdg-authority__audience b { font-size:clamp(1.05rem,2.5vw,1.6rem); }
.fourdg-authority__proof { max-width:62ch; font-family:var(--wp--preset--font-family--display,serif); font-weight:700; line-height:1.4; }
.fourdg-authority__logos { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:clamp(1rem,4vw,2.5rem); width:100%; }
.fourdg-authority__logos img { width:auto; height:clamp(42px,8vw,76px); max-width:150px; object-fit:contain; }
.fourdg-authority__stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; width:100%; background:rgba(214,179,106,.24); }
.fourdg-authority__stat { display:grid; gap:.25rem; padding:1rem .55rem; background:rgba(24,4,11,.88); }
.fourdg-authority__stat strong { color:var(--fourdg-authority-accent); font-size:clamp(1.35rem,4vw,2.25rem); }
.fourdg-authority__stat span { font-size:.85rem; line-height:1.25; }
.fourdg-authority__tagline { padding-top:.5rem; border-top:1px solid rgba(214,179,106,.3); width:100%; }
.fourdg-authority__button { display:inline-flex; justify-content:center; align-items:center; min-height:54px; width:min(100%,360px); padding:.85rem 1.5rem; border-radius:999px; color:var(--fourdg-off-white,#f7f3f0); background:var(--fourdg-primary,#541226); font-family:var(--wp--preset--font-family--display,serif); font-size:1.15rem; font-weight:700; text-decoration:none; box-shadow:0 14px 35px rgba(0,0,0,.24); transition:transform .2s ease,filter .2s ease; }
.fourdg-authority__button:hover,.fourdg-authority__button:focus-visible { color:#fff; filter:brightness(1.18); transform:translateY(-2px); }
@media (max-width:767px) {
  .fourdg-authority { --fourdg-authority-padding:clamp(20px,6vw,32px); --fourdg-authority-gap:clamp(12px,4vw,20px); }
  .fourdg-authority__stats { grid-template-columns:1fr; }
  .fourdg-authority__stat { grid-template-columns:auto 1fr; align-items:center; text-align:left; padding:.75rem 1rem; }
  .fourdg-authority__logos img { max-width:105px; }
}
@media (max-width: 48rem) {
  .fourdg-responsive-type :where(.fourdg-hero-v2-title,.fourdg-section-title,.fourdg-cta-title) { font-size: var(--fourdg-type-title-mobile, var(--fourdg-type-title-tablet, var(--fourdg-type-title-desktop, revert))); }
  .fourdg-responsive-type :where(.fourdg-hero-v2-copy,.fourdg-section-copy,.fourdg-cta-copy) { font-size: var(--fourdg-type-text-mobile, var(--fourdg-type-text-tablet, var(--fourdg-type-text-desktop, revert))); }
  .fourdg-responsive-type :where(.fourdg-card-title,.fourdg-carousel-title,.fourdg-accordion-title,.fourdg-stat-value,.fourdg-button--premium) { font-size: var(--fourdg-type-item-mobile, var(--fourdg-type-item-tablet, var(--fourdg-type-item-desktop, revert))); }
}
:where(:root) {
  --fourdg-maroon: var(--wp--preset--color--maroon, #3c0b1b);
  --fourdg-deep-maroon: var(--wp--preset--color--deep-maroon, #210610);
  --fourdg-off-white: var(--wp--preset--color--off-white, #f7f3f0);
  --fourdg-warm-white: var(--wp--preset--color--warm-white, #fffdfc);
  --fourdg-charcoal: var(--wp--preset--color--charcoal, #251c20);
  --fourdg-warm-gray: var(--wp--preset--color--warm-gray, #d9d0cc);

  --fourdg-bg: var(--fourdg-off-white);
  --fourdg-surface: var(--fourdg-warm-white);
  --fourdg-text: var(--fourdg-charcoal);
  --fourdg-heading: var(--fourdg-maroon);
  --fourdg-accent: var(--fourdg-maroon);
  --fourdg-accent-contrast: var(--fourdg-off-white);
  --fourdg-border: color-mix(in srgb, var(--fourdg-maroon) 16%, transparent);

  --fourdg-radius-sm: 0.5rem;
  --fourdg-radius-md: 1rem;
  --fourdg-radius-lg: 1.5rem;
  --fourdg-radius-pill: 999px;

  --fourdg-shadow-sm: 0 0.5rem 1.5rem rgb(37 28 32 / 0.08);
  --fourdg-shadow-md: 0 1.25rem 3.5rem rgb(37 28 32 / 0.12);

  --fourdg-space-xs: clamp(0.5rem, 0.45rem + 0.2vw, 0.75rem);
  --fourdg-space-sm: clamp(0.75rem, 0.65rem + 0.4vw, 1rem);
  --fourdg-space-md: clamp(1rem, 0.85rem + 0.7vw, 1.5rem);
  --fourdg-space-lg: clamp(1.5rem, 1.1rem + 1.2vw, 2.5rem);
  --fourdg-space-xl: clamp(2rem, 1.4rem + 2vw, 4rem);
  --fourdg-space-2xl: clamp(3rem, 2rem + 3vw, 6rem);

  --fourdg-container: 80rem;
  --fourdg-container-wide: 90rem;
  --fourdg-container-content: 51.25rem;
  --fourdg-gutter: clamp(1rem, 0.5rem + 2.2vw, 2.5rem);

  --fourdg-transition: 180ms ease;
}

html[data-theme="dark"] {
  --fourdg-bg: var(--fourdg-maroon);
  --fourdg-surface: var(--fourdg-deep-maroon);
  --fourdg-text: var(--fourdg-off-white);
  --fourdg-heading: var(--fourdg-off-white);
  --fourdg-accent: var(--fourdg-off-white);
  --fourdg-accent-contrast: var(--fourdg-maroon);
  --fourdg-border: color-mix(in srgb, var(--fourdg-off-white) 22%, transparent);
}

@media (prefers-color-scheme: dark) {
  html[data-theme="system"] {
    --fourdg-bg: var(--fourdg-maroon);
    --fourdg-surface: var(--fourdg-deep-maroon);
    --fourdg-text: var(--fourdg-off-white);
    --fourdg-heading: var(--fourdg-off-white);
    --fourdg-accent: var(--fourdg-off-white);
    --fourdg-accent-contrast: var(--fourdg-maroon);
    --fourdg-border: color-mix(in srgb, var(--fourdg-off-white) 22%, transparent);
  }
}


.fourdg-component, .fourdg-component * { box-sizing: border-box; }
.fourdg-component { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.65; }
.fourdg-component img { display:block; max-width:100%; height:auto; }
.fourdg-component a { text-underline-offset:.16em; }
.fourdg-component :focus-visible { outline:3px solid currentColor; outline-offset:4px; }
/* Buttons */
.fourdg-button,
.wp-element-button,
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.7rem 1.3rem;
  border: 1px solid transparent;
  border-radius: var(--fourdg-radius-pill);
  background: var(--fourdg-accent);
  color: var(--fourdg-accent-contrast);
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
  transition: transform var(--fourdg-transition), opacity var(--fourdg-transition), background-color var(--fourdg-transition), color var(--fourdg-transition);
}

.fourdg-site-header .fourdg-button {
  background: var(--fourdg-header-text);
  color: var(--fourdg-header-bg);
}

.fourdg-button--inverse {
  background: var(--fourdg-off-white);
  color: var(--fourdg-maroon);
}

.fourdg-button:hover,
.wp-element-button:hover,
.wp-block-button__link:hover { transform: translateY(-1px); opacity: 0.92; }

/* Generic cards */
.fourdg-card {
  overflow: clip;
  border: 1px solid var(--fourdg-border);
  border-radius: var(--fourdg-radius-lg);
  background: var(--fourdg-surface);
  box-shadow: var(--fourdg-shadow-sm);
}
.fourdg-card-media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.fourdg-card-body { padding: var(--fourdg-space-lg); }
.fourdg-card-title { font-size: clamp(1.35rem, 1.2rem + 0.5vw, 1.85rem); }
.fourdg-card-title a { color: inherit; text-decoration: none; }
.fourdg-kicker {
  margin: 0 0 0.65rem;
  color: var(--fourdg-accent);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.fourdg-text-link { font-weight: 750; }
.fourdg-featured-image { margin: var(--fourdg-space-xl) 0; overflow: clip; border-radius: var(--fourdg-radius-lg); }


/* --------------------------------------------------------------
   4DGeosteering Component Library — Phase 7 v0.7.0
   Presentation only. Interactive behavior lives in 4DGeosteering Core.
-------------------------------------------------------------- */

/* Component-local tone scopes */
.fourdg-tone--dark {
  --fourdg-bg: var(--fourdg-maroon);
  --fourdg-surface: var(--fourdg-deep-maroon);
  --fourdg-text: var(--fourdg-off-white);
  --fourdg-heading: var(--fourdg-off-white);
  --fourdg-accent: var(--fourdg-off-white);
  --fourdg-accent-contrast: var(--fourdg-maroon);
  --fourdg-border: color-mix(in srgb, var(--fourdg-off-white) 22%, transparent);
  background: var(--fourdg-bg);
  color: var(--fourdg-text);
}

.fourdg-tone--light {
  --fourdg-bg: var(--fourdg-off-white);
  --fourdg-surface: var(--fourdg-warm-white);
  --fourdg-text: var(--fourdg-charcoal);
  --fourdg-heading: var(--fourdg-maroon);
  --fourdg-accent: var(--fourdg-maroon);
  --fourdg-accent-contrast: var(--fourdg-off-white);
  --fourdg-border: color-mix(in srgb, var(--fourdg-maroon) 16%, transparent);
  background: var(--fourdg-bg);
  color: var(--fourdg-text);
}

.fourdg-component {
  position: relative;
  isolation: isolate;
}

.fourdg-component :where(h1,h2,h3,h4,h5,h6) { color: var(--fourdg-heading); }
.fourdg-component :where(p) { color: var(--fourdg-text); }

.fourdg-component-shell {
  width: min(100% - (2 * var(--fourdg-gutter)), var(--fourdg-container));
  margin-inline: auto;
}

.fourdg-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 var(--fourdg-space-sm);
  color: var(--fourdg-accent);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.fourdg-eyebrow::before {
  content: "";
  width: 1.75rem;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}

.fourdg-component-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: var(--fourdg-space-lg);
}

.fourdg-button--ghost {
  border-color: var(--fourdg-border);
  background: transparent;
  color: var(--fourdg-accent);
}

.fourdg-button--ghost:hover {
  background: color-mix(in srgb, var(--fourdg-accent) 8%, transparent);
  opacity: 1;
}

/* Grid */
.fourdg-grid {
  --fourdg-grid-cols: 3;
  display: grid;
  grid-template-columns: repeat(var(--fourdg-grid-cols), minmax(0, 1fr));
  gap: var(--fourdg-space-lg);
}

.fourdg-grid--2 { --fourdg-grid-cols: 2; }
.fourdg-grid--3 { --fourdg-grid-cols: 3; }
.fourdg-grid--4 { --fourdg-grid-cols: 4; }
.fourdg-grid--5 { --fourdg-grid-cols: 5; }
.fourdg-grid--6 { --fourdg-grid-cols: 6; }

/* Rich card */
.fourdg-card--interactive {
  height: 100%;
  transition: transform var(--fourdg-transition), box-shadow var(--fourdg-transition), border-color var(--fourdg-transition);
}

.fourdg-card--interactive:hover {
  transform: translateY(-0.25rem);
  border-color: color-mix(in srgb, var(--fourdg-accent) 36%, transparent);
  box-shadow: var(--fourdg-shadow-md);
}

.fourdg-card-media { overflow: hidden; }
.fourdg-card-media img { transition: transform 450ms ease; }
.fourdg-card--interactive:hover .fourdg-card-media img { transform: scale(1.025); }
.fourdg-card-body > :last-child { margin-bottom: 0; }
.fourdg-card-copy { color: var(--fourdg-text); }
.fourdg-card-action { margin-top: var(--fourdg-space-md); }

/* Hero */
.fourdg-hero {
  min-height: clamp(34rem, 82svh, 52rem);
  display: grid;
  align-items: center;
  overflow: clip;
  padding-block: var(--fourdg-space-2xl);
}

.fourdg-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: min(38rem, 74vw);
  aspect-ratio: 1;
  right: -14rem;
  top: -10rem;
  border: 1px solid color-mix(in srgb, var(--fourdg-accent) 16%, transparent);
  border-radius: 50%;
}

.fourdg-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(20rem, 0.95fr);
  align-items: center;
  gap: clamp(2rem, 3vw, 5rem);
}

.fourdg-hero--no-media .fourdg-hero-grid { grid-template-columns: minmax(0, 52rem); }
.fourdg-hero--center .fourdg-hero-grid { grid-template-columns: minmax(0, 58rem); justify-content: center; text-align: center; }
.fourdg-hero--center .fourdg-component-actions { justify-content: center; }
.fourdg-hero--center .fourdg-eyebrow { justify-content: center; }

.fourdg-hero-title {
  max-width: 13ch;
  margin-bottom: var(--fourdg-space-md);
  font-size: clamp(2.9rem, 2rem + 4vw, 6.6rem);
  letter-spacing: -0.035em;
}

.fourdg-hero--center .fourdg-hero-title { margin-inline: auto; }
.fourdg-hero-copy { max-width: 42rem; font-size: clamp(1.05rem, 0.98rem + 0.35vw, 1.3rem); }
.fourdg-hero--center .fourdg-hero-copy { margin-inline: auto; }

.fourdg-hero-media {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--fourdg-border);
  border-radius: clamp(1.25rem, 2vw, 2rem);
  background: var(--fourdg-surface);
  box-shadow: var(--fourdg-shadow-md);
}

.fourdg-hero-media img {
  width: 100%;
  min-height: 25rem;
  max-height: 42rem;
  object-fit: cover;
}

/* CTA */
.fourdg-cta {
  overflow: clip;
  padding-block: var(--fourdg-space-xl);
}

.fourdg-cta-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--fourdg-space-xl);
  padding: clamp(1.5rem, 1rem + 2.4vw, 3.5rem);
  border: 1px solid var(--fourdg-border);
  border-radius: clamp(1.25rem, 2vw, 2rem);
  background: var(--fourdg-surface);
  box-shadow: var(--fourdg-shadow-sm);
}

.fourdg-cta-title { max-width: 19ch; margin-bottom: 0.4rem; }
.fourdg-cta-copy { max-width: 48rem; margin: 0; }

/* Stats */
.fourdg-stats { padding-block: var(--fourdg-space-xl); }
.fourdg-stats-grid {
  display: grid;
  grid-template-columns: repeat(var(--fourdg-stat-cols, 4), minmax(0, 1fr));
  border: 1px solid var(--fourdg-border);
  border-radius: var(--fourdg-radius-lg);
  overflow: hidden;
  background: var(--fourdg-surface);
}

.fourdg-stat {
  min-width: 0;
  padding: clamp(1.25rem, 1rem + 1.4vw, 2.4rem);
  border-right: 1px solid var(--fourdg-border);
}
.fourdg-stat:last-child { border-right: 0; }
.fourdg-stat-value {
  display: block;
  color: var(--fourdg-heading);
  font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
  font-size: clamp(2.25rem, 1.7rem + 2.4vw, 4.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 0.95;
}
.fourdg-stat-label { display: block; margin-top: 0.65rem; color: var(--fourdg-text); font-weight: 650; }
.fourdg-stat-note { display: block; margin-top: 0.35rem; color: color-mix(in srgb, var(--fourdg-text) 72%, transparent); font-size: 0.9rem; }

/* Accordion */
.fourdg-accordion { display: grid; gap: 0.7rem; }
.fourdg-accordion-item {
  border: 1px solid var(--fourdg-border);
  border-radius: var(--fourdg-radius-md);
  background: var(--fourdg-surface);
  overflow: clip;
}
.fourdg-accordion-item summary {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 4rem;
  padding: 1rem 3.5rem 1rem 1.25rem;
  color: var(--fourdg-heading);
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}
.fourdg-accordion-item summary::-webkit-details-marker { display: none; }
.fourdg-accordion-item summary::after {
  content: "+";
  position: absolute;
  right: 1.25rem;
  display: grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  border: 1px solid var(--fourdg-border);
  border-radius: 50%;
  color: var(--fourdg-accent);
  font-size: 1.15rem;
  line-height: 1;
}
.fourdg-accordion-item[open] summary::after { content: "−"; }
.fourdg-accordion-content { padding: 0 1.25rem 1.25rem; color: var(--fourdg-text); }
.fourdg-accordion-content > :last-child { margin-bottom: 0; }

/* Tabs */
.fourdg-tabs { border: 1px solid var(--fourdg-border); border-radius: var(--fourdg-radius-lg); background: var(--fourdg-surface); overflow: clip; }
.fourdg-tab-list {
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  padding: 0.55rem;
  border-bottom: 1px solid var(--fourdg-border);
  scrollbar-width: thin;
}
.fourdg-tab-button {
  flex: 0 0 auto;
  min-height: 2.75rem;
  padding: 0.55rem 1rem;
  border: 0;
  border-radius: var(--fourdg-radius-pill);
  background: transparent;
  color: var(--fourdg-text);
  font-weight: 750;
  cursor: pointer;
}
.fourdg-tab-button[aria-selected="true"] { background: var(--fourdg-accent); color: var(--fourdg-accent-contrast); }
.fourdg-tab-panel { padding: clamp(1.25rem, 1rem + 1vw, 2rem); }
.fourdg-tab-panel[hidden] { display: none; }
.fourdg-tab-panel > :last-child { margin-bottom: 0; }

/* Carousel / Slider */
.fourdg-carousel {
  --fourdg-slides-desktop: 3;
  --fourdg-slides-tablet: 2;
  --fourdg-slides-mobile: 1;
  --fourdg-carousel-gap: 24px;
  position: relative;
}
.fourdg-carousel-viewport {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.fourdg-carousel-viewport::-webkit-scrollbar { display: none; }
.fourdg-carousel-track { display: flex; gap: var(--fourdg-carousel-gap); }
.fourdg-slide {
  flex: 0 0 calc((100% - (var(--fourdg-carousel-gap) * (var(--fourdg-slides-desktop) - 1))) / var(--fourdg-slides-desktop));
  min-width: 0;
  scroll-snap-align: start;
}
.fourdg-slider .fourdg-slide { flex-basis: 100%; }
.fourdg-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
}
.fourdg-carousel-arrows { display: flex; gap: 0.55rem; }
.fourdg-carousel-button {
  display: grid;
  place-items: center;
  width: 2.8rem;
  height: 2.8rem;
  border: 1px solid var(--fourdg-border);
  border-radius: 50%;
  background: var(--fourdg-surface);
  color: var(--fourdg-accent);
  cursor: pointer;
}
.fourdg-carousel-button:hover { background: var(--fourdg-accent); color: var(--fourdg-accent-contrast); }
.fourdg-carousel-dots { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.fourdg-carousel-dot {
  width: 0.55rem;
  height: 0.55rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--fourdg-accent) 28%, transparent);
  cursor: pointer;
}
.fourdg-carousel-dot[aria-current="true"] { width: 1.5rem; border-radius: 999px; background: var(--fourdg-accent); }
.fourdg-carousel[data-fourdg-arrows="false"] .fourdg-carousel-arrows,
.fourdg-carousel[data-fourdg-dots="false"] .fourdg-carousel-dots { display: none; }

/* Gallery + lightbox trigger */
.fourdg-gallery {
  display: grid;
  grid-template-columns: repeat(var(--fourdg-gallery-cols, 3), minmax(0, 1fr));
  gap: var(--fourdg-space-md);
}
.fourdg-gallery-item {
  position: relative;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: var(--fourdg-radius-md);
  overflow: hidden;
  background: var(--fourdg-surface);
  cursor: zoom-in;
}
.fourdg-gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 350ms ease; }
.fourdg-gallery-item:hover img { transform: scale(1.025); }
.fourdg-gallery-caption {
  position: absolute;
  inset: auto 0 0;
  padding: 2.5rem 1rem 0.85rem;
  background: linear-gradient(transparent, rgb(20 8 13 / 0.82));
  color: #fff;
  font-size: 0.9rem;
  text-align: left;
}

.fourdg-lightbox {
  width: min(92vw, 76rem);
  max-height: 90vh;
  padding: 0;
  border: 0;
  border-radius: var(--fourdg-radius-lg);
  overflow: hidden;
  background: #12090d;
  color: #fff;
}
.fourdg-lightbox::backdrop { background: rgb(10 4 7 / 0.82); backdrop-filter: blur(6px); }
.fourdg-lightbox-figure { margin: 0; }
.fourdg-lightbox-image { width: 100%; max-height: 78vh; object-fit: contain; background: #12090d; }
.fourdg-lightbox-caption { margin: 0; padding: 0.9rem 3.75rem 1rem 1.1rem; color: #fff; }
.fourdg-lightbox-close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgb(255 255 255 / 0.24);
  border-radius: 50%;
  background: rgb(18 9 13 / 0.76);
  color: #fff;
  font-size: 1.4rem;
  cursor: pointer;
}

/* Native pattern helpers */
.fourdg-pattern-section { padding-block: var(--fourdg-space-2xl); }
.fourdg-pattern-section > .wp-block-group__inner-container,
.fourdg-pattern-inner { width: min(100% - (2 * var(--fourdg-gutter)), var(--fourdg-container)); margin-inline: auto; }

/* Responsive */
@media (max-width: 64rem) {
  .fourdg-hero-grid { grid-template-columns: 1fr; }
  .fourdg-hero-media { max-width: 46rem; }
  .fourdg-grid--4, .fourdg-grid--5, .fourdg-grid--6 { --fourdg-grid-cols: 2; }
  .fourdg-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .fourdg-stat { border-bottom: 1px solid var(--fourdg-border); }
  .fourdg-stat:nth-child(even) { border-right: 0; }
  .fourdg-stat:nth-last-child(-n+2) { border-bottom: 0; }
  .fourdg-slide { flex-basis: calc((100% - (var(--fourdg-carousel-gap) * (var(--fourdg-slides-tablet) - 1))) / var(--fourdg-slides-tablet)); }
  .fourdg-gallery:not(.fourdg-gallery--1) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 48rem) {
  .fourdg-grid, .fourdg-grid--2, .fourdg-grid--3, .fourdg-grid--4, .fourdg-grid--5, .fourdg-grid--6 { --fourdg-grid-cols: 1; }
  .fourdg-cta-box { grid-template-columns: 1fr; }
  .fourdg-stats-grid { grid-template-columns: 1fr; }
  .fourdg-stat { border-right: 0; border-bottom: 1px solid var(--fourdg-border); }
  .fourdg-stat:nth-last-child(-n+2) { border-bottom: 1px solid var(--fourdg-border); }
  .fourdg-stat:last-child { border-bottom: 0; }
  .fourdg-slide { flex-basis: calc((100% - (var(--fourdg-carousel-gap) * (var(--fourdg-slides-mobile) - 1))) / var(--fourdg-slides-mobile)); }
  .fourdg-gallery { grid-template-columns: 1fr; }
  .fourdg-carousel-controls { align-items: flex-end; }
  .fourdg-hero { min-height: auto; }
  .fourdg-hero-media img { min-height: 18rem; }
}

@media (prefers-reduced-motion: reduce) {
  .fourdg-carousel-viewport { scroll-behavior: auto; }
  .fourdg-card--interactive,
  .fourdg-card-media img,
  .fourdg-gallery-item img { transition: none; }
}

/* --------------------------------------------------------------
   Phase 4 — Advanced Background Hero + Dynamic Content
-------------------------------------------------------------- */
.fourdg-hero-v2 {
  --fourdg-hero-v2-image: none;
  --fourdg-hero-v2-overlay: .58;
  --fourdg-hero-v2-min-height: 720px;
  --fourdg-hero-v2-min-height-mobile: 640px;
  --fourdg-hero-v2-content-width: 780px;
  --fourdg-hero-v2-bg-position: center center;
  --fourdg-hero-v2-bg-position-mobile: 70% center;
  position: relative;
  display: grid;
  min-height: var(--fourdg-hero-v2-min-height);
  overflow: clip;
  background: var(--fourdg-maroon);
  color: var(--fourdg-off-white);
}

.fourdg-hero-v2-backdrop {
  position: absolute;
  inset: 0;
  z-index: -3;
  background-image: var(--fourdg-hero-v2-image);
  background-position: var(--fourdg-hero-v2-bg-position);
  background-size: cover;
  background-repeat: no-repeat;
  transform: scale(1.002);
}

.fourdg-hero-v2::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgb(30 5 14 / .93) 0%, rgb(55 8 24 / .84) 35%, rgb(84 18 38 / .36) 64%, rgb(20 5 10 / .08) 100%),
    linear-gradient(180deg, rgb(10 2 5 / .2), rgb(10 2 5 / .42));
  opacity: var(--fourdg-hero-v2-overlay);
}

.fourdg-hero-v2--center::before {
  background: linear-gradient(180deg, rgb(28 5 13 / .72), rgb(35 6 16 / .6));
}

.fourdg-hero-v2--right::before {
  background: linear-gradient(270deg, rgb(30 5 14 / .93) 0%, rgb(55 8 24 / .84) 35%, rgb(84 18 38 / .36) 64%, rgb(20 5 10 / .08) 100%);
}

.fourdg-hero-v2--no-image::before { opacity: 1; }

.fourdg-hero-v2-pattern {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .3;
  background:
    radial-gradient(circle at 16% 74%, transparent 0 6.2rem, rgb(247 243 240 / .09) 6.25rem 6.32rem, transparent 6.36rem 9.4rem, rgb(247 243 240 / .06) 9.45rem 9.52rem, transparent 9.6rem),
    linear-gradient(118deg, transparent 0 57%, rgb(247 243 240 / .08) 57.1% 57.2%, transparent 57.3% 100%);
  mask-image: linear-gradient(90deg, #000 0%, rgb(0 0 0 / .7) 55%, transparent 92%);
}

.fourdg-hero-v2-shell {
  display: grid;
  align-items: center;
  padding-block: clamp(7.5rem, 12vh, 10.5rem) clamp(4.5rem, 9vh, 7rem);
}

.fourdg-hero-v2--v-top .fourdg-hero-v2-shell { align-items: start; }
.fourdg-hero-v2--v-center .fourdg-hero-v2-shell { align-items: center; }
.fourdg-hero-v2--v-bottom .fourdg-hero-v2-shell { align-items: end; }
.fourdg-hero-v2--right .fourdg-hero-v2-shell { justify-items: end; }
.fourdg-hero-v2--center .fourdg-hero-v2-shell { justify-items: center; }

.fourdg-hero-v2-content {
  width: min(100%, var(--fourdg-hero-v2-content-width));
  text-align: left;
  transform: translateY(var(--fourdg-hero-v2-content-y, 0px));
}
.fourdg-hero-v2--center .fourdg-hero-v2-content { text-align: center; }
.fourdg-hero-v2--right .fourdg-hero-v2-content { text-align: right; }
.fourdg-hero-v2--center .fourdg-eyebrow,
.fourdg-hero-v2--center .fourdg-component-actions { justify-content: center; }
.fourdg-hero-v2--right .fourdg-eyebrow,
.fourdg-hero-v2--right .fourdg-component-actions { justify-content: flex-end; }

.fourdg-hero-v2-badge {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  margin-bottom: 1rem;
  padding: .42rem .78rem;
  border: 1px solid rgb(247 243 240 / .24);
  border-radius: 999px;
  background: rgb(84 18 38 / .35);
  color: var(--fourdg-off-white);
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .05em;
  backdrop-filter: blur(8px);
}

.fourdg-hero-v2 .fourdg-eyebrow {
  color: var(--fourdg-off-white);
  opacity: .92;
}

.fourdg-hero-v2-title {
  max-width: 14ch;
  margin: 0;
  color: var(--fourdg-off-white) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 2rem + 4.5vw, 7.25rem);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: .96;
  text-wrap: balance;
  text-shadow: 0 2px 28px rgb(0 0 0 / .22);
}
.fourdg-hero-v2--center .fourdg-hero-v2-title { margin-inline: auto; }
.fourdg-hero-v2--right .fourdg-hero-v2-title { margin-left: auto; }

.fourdg-hero-v2-copy {
  max-width: 42rem;
  margin-top: clamp(1.25rem, 2vw, 2rem);
  color: rgb(247 243 240 / .92);
  font-size: clamp(1.05rem, .98rem + .35vw, 1.34rem);
  line-height: 1.65;
  text-wrap: pretty;
}
.fourdg-hero-v2-copy p { color: inherit; }
.fourdg-hero-v2--center .fourdg-hero-v2-copy { margin-inline: auto; }
.fourdg-hero-v2--right .fourdg-hero-v2-copy { margin-left: auto; }

.fourdg-button--premium {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-height: 3.65rem;
  padding: .9rem 1.15rem .9rem 1.5rem;
  border: 1px solid rgb(247 243 240 / .46);
  border-radius: .75rem;
  background: linear-gradient(135deg, #6a1732, var(--fourdg-maroon));
  color: var(--fourdg-off-white);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 780;
  line-height: 1;
  box-shadow: 0 12px 34px rgb(25 4 11 / .28), inset 0 1px 0 rgb(255 255 255 / .08);
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.fourdg-button--premium:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #781b39, #5d142b);
  color: var(--fourdg-off-white);
  box-shadow: 0 16px 38px rgb(25 4 11 / .36), inset 0 1px 0 rgb(255 255 255 / .12);
  opacity: 1;
}
.fourdg-button--premium:focus-visible { outline: 3px solid var(--fourdg-off-white); outline-offset: 4px; }
.fourdg-button--premium-ghost {
  background: rgb(247 243 240 / .08);
  border-color: rgb(247 243 240 / .32);
  backdrop-filter: blur(8px);
}
.fourdg-button--premium-ghost:hover { background: rgb(247 243 240 / .14); }
.fourdg-button-arrow {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: rgb(247 243 240 / .13);
  font-size: 1.15rem;
  transition: transform 180ms ease;
}
.fourdg-button--premium:hover .fourdg-button-arrow { transform: translateX(3px); }

.fourdg-hero-v2-scroll-mark {
  position: absolute;
  left: 50%;
  bottom: 1.5rem;
  width: 1px;
  height: 2.5rem;
  background: linear-gradient(var(--fourdg-off-white), transparent);
  opacity: .55;
}

/* WordPress native Cover-block version of the same hero language. */
.fourdg-native-hero-cover {
  min-height: clamp(34rem, 82svh, 54rem);
  color: var(--fourdg-off-white);
}
.fourdg-native-hero-cover .wp-block-cover__background {
  background: linear-gradient(90deg, rgb(30 5 14 / .9), rgb(84 18 38 / .6) 58%, rgb(20 5 10 / .15)) !important;
}
.fourdg-native-hero-cover .wp-block-cover__inner-container {
  width: min(100% - (2 * var(--fourdg-gutter)), var(--fourdg-container));
  margin-inline: auto;
}
.fourdg-native-hero-cover h1 {
  max-width: 14ch;
  color: var(--fourdg-off-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 2rem + 4.5vw, 7rem);
  line-height: .96;
  letter-spacing: -.045em;
}
.fourdg-native-hero-cover p { max-width: 42rem; color: rgb(247 243 240 / .9); }

/* Dynamic content cards */
.fourdg-dynamic-grid { align-items: stretch; }
.fourdg-dynamic-card .fourdg-card-media img { aspect-ratio: 16 / 10; object-fit: cover; }
.fourdg-card-meta {
  margin: -.25rem 0 .8rem;
  color: color-mix(in srgb, var(--fourdg-text) 70%, transparent) !important;
  font-size: .88rem;
  font-weight: 650;
}
.fourdg-dynamic-card--testimonial .fourdg-card-title { font-size: 1.15rem; }
.fourdg-dynamic-card--testimonial .fourdg-card-copy { font-size: 1.05rem; font-style: italic; }

/* Structured single-content detail panels */
.fourdg-structured-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-block: var(--fourdg-space-xl);
}
.fourdg-structured-detail {
  padding: clamp(1.15rem, 2vw, 1.8rem);
  border: 1px solid var(--fourdg-border);
  border-radius: var(--fourdg-radius-md);
  background: var(--fourdg-surface);
}
.fourdg-structured-detail h2,
.fourdg-structured-detail h3 { margin-bottom: .5rem; font-size: clamp(1.05rem, 1rem + .4vw, 1.35rem); }
.fourdg-structured-detail p:last-child { margin-bottom: 0; }

@media (max-width: 48rem) {
  .fourdg-hero-v2 { min-height: var(--fourdg-hero-v2-min-height-mobile); }
  .fourdg-hero-v2-backdrop { background-position: var(--fourdg-hero-v2-bg-position-mobile); }
  .fourdg-hero-v2::before,
  .fourdg-hero-v2--right::before {
    background: linear-gradient(180deg, rgb(30 5 14 / .77), rgb(45 8 20 / .82) 62%, rgb(20 4 10 / .94));
  }
  .fourdg-hero-v2-shell { padding-block: 7.2rem 5rem; align-items: end; }
  .fourdg-hero-v2-title { font-size: clamp(2.65rem, 11vw, 4.4rem); }
  .fourdg-hero-v2-content,
  .fourdg-hero-v2--right .fourdg-hero-v2-content { text-align: left; }
  .fourdg-hero-v2--right .fourdg-eyebrow,
  .fourdg-hero-v2--right .fourdg-component-actions { justify-content: flex-start; }
  .fourdg-hero-v2--right .fourdg-hero-v2-title,
  .fourdg-hero-v2--right .fourdg-hero-v2-copy { margin-left: 0; }
  .fourdg-hero-v2-actions { align-items: stretch; }

  .fourdg-hero-v2--mobile-v-top .fourdg-hero-v2-shell { align-items: start; }
  .fourdg-hero-v2--mobile-v-center .fourdg-hero-v2-shell { align-items: center; }
  .fourdg-hero-v2--mobile-v-bottom .fourdg-hero-v2-shell { align-items: end; }
  .fourdg-hero-v2-content { transform: translateY(var(--fourdg-hero-v2-content-y-mobile, 0px)); }
  .fourdg-button--premium { width: 100%; justify-content: space-between; }
  .fourdg-structured-details { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .fourdg-button--premium,
  .fourdg-button-arrow { transition: none; }
}

.fourdg-native-premium-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  min-height: 3.65rem;
  padding: .95rem 1.55rem;
  border: 1px solid rgb(247 243 240 / .46);
  border-radius: .75rem;
  background: linear-gradient(135deg, #6a1732, var(--fourdg-maroon));
  color: var(--fourdg-off-white);
  font-weight: 780;
  box-shadow: 0 12px 34px rgb(25 4 11 / .28), inset 0 1px 0 rgb(255 255 255 / .08);
}
.fourdg-native-premium-button .wp-block-button__link:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #781b39, #5d142b);
  color: var(--fourdg-off-white);
}


/* --------------------------------------------------------------
   Phase 5 — Elementor editing experience + shared section chrome
-------------------------------------------------------------- */
.fourdg-editor-section,
.fourdg-collection-section {
  padding-block: clamp(3.5rem, 7vw, 7rem);
}

.fourdg-section-intro {
  max-width: 52rem;
  margin-bottom: clamp(1.75rem, 3vw, 3rem);
}
.fourdg-section-title {
  max-width: 20ch;
  margin: 0;
  font-size: clamp(2rem, 1.45rem + 2.2vw, 4rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
.fourdg-section-copy {
  max-width: 46rem;
  margin-top: .9rem;
  font-size: clamp(1rem, .96rem + .25vw, 1.18rem);
}
.fourdg-section-copy > :last-child { margin-bottom: 0; }
.fourdg-section-intro--center { margin-inline: auto; text-align: center; }
.fourdg-section-intro--center .fourdg-eyebrow { justify-content: center; }
.fourdg-section-intro--center .fourdg-section-title,
.fourdg-section-intro--center .fourdg-section-copy { margin-inline: auto; }
.fourdg-section-intro--right { margin-left: auto; text-align: right; }
.fourdg-section-intro--right .fourdg-eyebrow { justify-content: flex-end; }
.fourdg-section-intro--right .fourdg-section-title,
.fourdg-section-intro--right .fourdg-section-copy { margin-left: auto; }

.fourdg-cta-actions { margin-top: 0; justify-content: flex-end; }
.fourdg-cta--center .fourdg-cta-box { grid-template-columns: 1fr; text-align: center; }
.fourdg-cta--center .fourdg-eyebrow,
.fourdg-cta--center .fourdg-cta-actions { justify-content: center; }
.fourdg-cta--center .fourdg-cta-title,
.fourdg-cta--center .fourdg-cta-copy { margin-inline: auto; }

.fourdg-tone--light .fourdg-button--premium-ghost {
  border-color: color-mix(in srgb, var(--fourdg-maroon) 28%, transparent);
  background: transparent;
  color: var(--fourdg-maroon);
}
.fourdg-tone--light .fourdg-button--premium-ghost .fourdg-button-arrow {
  background: color-mix(in srgb, var(--fourdg-maroon) 10%, transparent);
}

.fourdg-elementor-empty {
  padding: 1rem 1.2rem;
  border: 1px dashed color-mix(in srgb, var(--fourdg-maroon) 30%, transparent);
  border-radius: var(--fourdg-radius-md);
  background: color-mix(in srgb, var(--fourdg-off-white) 92%, var(--fourdg-maroon));
  color: var(--fourdg-maroon);
  font-weight: 650;
}

@media (max-width: 48rem) {
  .fourdg-hero-v2--mobile-center .fourdg-hero-v2-content { text-align: center; }
  .fourdg-hero-v2--mobile-center .fourdg-eyebrow,
  .fourdg-hero-v2--mobile-center .fourdg-component-actions { justify-content: center; }
  .fourdg-hero-v2--mobile-center .fourdg-hero-v2-title,
  .fourdg-hero-v2--mobile-center .fourdg-hero-v2-copy { margin-inline: auto; }
  .fourdg-hero-v2--mobile-center .fourdg-button--premium { justify-content: center; }
  .fourdg-section-intro--right { text-align: left; }
  .fourdg-section-intro--right .fourdg-eyebrow { justify-content: flex-start; }
  .fourdg-cta-actions { justify-content: flex-start; }
}

/* --------------------------------------------------------------
   Phase 6 — Native WordPress block styles
-------------------------------------------------------------- */
.wp-block-group.is-style-fourdg-section-light,
.wp-block-group.is-style-fourdg-section-dark {
  position: relative;
  isolation: isolate;
  padding-block: var(--fourdg-space-2xl);
}

.wp-block-group.is-style-fourdg-section-light {
  --fourdg-bg: var(--fourdg-off-white);
  --fourdg-surface: var(--fourdg-warm-white);
  --fourdg-text: var(--fourdg-charcoal);
  --fourdg-heading: var(--fourdg-maroon);
  --fourdg-accent: var(--fourdg-maroon);
  --fourdg-accent-contrast: var(--fourdg-off-white);
  --fourdg-border: color-mix(in srgb, var(--fourdg-maroon) 16%, transparent);
  background: var(--fourdg-bg);
  color: var(--fourdg-text);
}
.wp-block-group.is-style-fourdg-section-light :where(h1,h2,h3,h4,h5,h6) { color: var(--fourdg-maroon); }

.wp-block-group.is-style-fourdg-section-dark {
  --fourdg-bg: var(--fourdg-maroon);
  --fourdg-surface: var(--fourdg-deep-maroon);
  --fourdg-text: var(--fourdg-off-white);
  --fourdg-heading: var(--fourdg-off-white);
  --fourdg-accent: var(--fourdg-off-white);
  --fourdg-accent-contrast: var(--fourdg-maroon);
  --fourdg-border: color-mix(in srgb, var(--fourdg-off-white) 22%, transparent);
  background: var(--fourdg-bg);
  color: var(--fourdg-text);
}
.wp-block-group.is-style-fourdg-section-dark :where(h1,h2,h3,h4,h5,h6) { color: var(--fourdg-off-white); }
.wp-block-group.is-style-fourdg-section-dark a:not(.wp-block-button__link) { color: var(--fourdg-off-white); }

.wp-block-group.is-style-fourdg-card {
  height: 100%;
  padding: clamp(1.25rem, 1rem + 1vw, 2rem);
  border: 1px solid var(--fourdg-border);
  border-radius: var(--fourdg-radius-lg);
  background: var(--fourdg-surface);
  box-shadow: var(--fourdg-shadow-sm);
}

.wp-block-group.is-style-fourdg-glass {
  padding: clamp(1.25rem, 1rem + 1vw, 2rem);
  border: 1px solid rgb(255 255 255 / .18);
  border-radius: var(--fourdg-radius-lg);
  background: rgb(84 18 38 / .62);
  box-shadow: var(--fourdg-shadow-md);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  color: var(--fourdg-off-white);
}
.wp-block-group.is-style-fourdg-glass :where(h1,h2,h3,h4,h5,h6) { color: var(--fourdg-off-white); }

.wp-block-cover.is-style-fourdg-hero-cover,
.wp-block-cover.fourdg-native-hero-cover {
  min-height: clamp(42rem, 88svh, 58rem);
  align-items: center;
}
.wp-block-cover.is-style-fourdg-hero-cover .wp-block-cover__background,
.wp-block-cover.fourdg-native-hero-cover .wp-block-cover__background {
  background: linear-gradient(90deg, rgb(35 5 14 / .96) 0%, rgb(84 18 38 / .88) 42%, rgb(84 18 38 / .42) 72%, rgb(20 7 10 / .22) 100%) !important;
  opacity: 1 !important;
}
.wp-block-cover.is-style-fourdg-hero-cover .wp-block-cover__inner-container,
.wp-block-cover.fourdg-native-hero-cover .wp-block-cover__inner-container {
  width: min(100% - (2 * var(--fourdg-gutter)), var(--fourdg-container));
  margin-inline: auto;
  color: var(--fourdg-off-white);
}
.wp-block-cover.is-style-fourdg-hero-cover :where(h1,h2,h3,p),
.wp-block-cover.fourdg-native-hero-cover :where(h1,h2,h3,p) { color: var(--fourdg-off-white); }

.wp-block-cover.is-style-fourdg-cinematic-cover {
  min-height: clamp(30rem, 65svh, 46rem);
  border-radius: clamp(1rem, 2vw, 2rem);
  overflow: clip;
  box-shadow: var(--fourdg-shadow-md);
}

.wp-block-button.is-style-fourdg-primary .wp-block-button__link,
.wp-block-button.fourdg-native-premium-button .wp-block-button__link {
  min-height: 3.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  padding: .85rem 1.4rem;
  border: 1px solid color-mix(in srgb, var(--fourdg-off-white) 40%, transparent);
  border-radius: .75rem;
  background: linear-gradient(135deg, #721b39, var(--fourdg-maroon));
  color: var(--fourdg-off-white);
  box-shadow: 0 .8rem 2.1rem rgb(32 4 13 / .24);
  text-decoration: none;
  transition: transform var(--fourdg-transition), box-shadow var(--fourdg-transition);
}
.wp-block-button.is-style-fourdg-primary .wp-block-button__link:hover,
.wp-block-button.fourdg-native-premium-button .wp-block-button__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 1rem 2.5rem rgb(32 4 13 / .32);
}

.wp-block-button.is-style-fourdg-secondary .wp-block-button__link {
  min-height: 3.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .85rem 1.4rem;
  border: 1px solid var(--fourdg-off-white);
  border-radius: .75rem;
  background: var(--fourdg-off-white);
  color: var(--fourdg-maroon);
  font-weight: 800;
}

.wp-block-button.is-style-fourdg-outline .wp-block-button__link {
  min-height: 3.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .85rem 1.4rem;
  border: 1px solid currentColor;
  border-radius: .75rem;
  background: transparent;
  color: inherit;
  font-weight: 800;
}

.wp-block-image.is-style-fourdg-rounded img {
  border-radius: var(--fourdg-radius-lg);
  box-shadow: var(--fourdg-shadow-sm);
}
.wp-block-image.is-style-fourdg-cinematic img {
  width: 100%;
  border-radius: clamp(1rem, 2vw, 2rem);
  box-shadow: var(--fourdg-shadow-md);
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.wp-block-details.is-style-fourdg-accordion {
  margin-block: .65rem;
  padding: 0;
  border: 1px solid var(--fourdg-border);
  border-radius: var(--fourdg-radius-md);
  background: var(--fourdg-surface);
  overflow: clip;
}
.wp-block-details.is-style-fourdg-accordion > summary {
  padding: 1rem 1.25rem;
  color: var(--fourdg-heading);
  font-weight: 800;
  cursor: pointer;
}
.wp-block-details.is-style-fourdg-accordion > :not(summary) { margin-inline: 1.25rem; }
.wp-block-details.is-style-fourdg-accordion > :last-child { margin-bottom: 1.25rem; }

.wp-block-quote.is-style-fourdg-testimonial {
  margin: 0;
  padding: clamp(1.5rem, 1rem + 1vw, 2.25rem);
  border: 1px solid var(--fourdg-border);
  border-left: .3rem solid var(--fourdg-maroon);
  border-radius: var(--fourdg-radius-lg);
  background: var(--fourdg-surface);
  box-shadow: var(--fourdg-shadow-sm);
}
.wp-block-quote.is-style-fourdg-testimonial p { font-size: clamp(1.1rem, 1rem + .45vw, 1.4rem); }

.wp-block-columns.is-style-fourdg-card-grid { align-items: stretch !important; }
.wp-block-columns.is-style-fourdg-card-grid > .wp-block-column {
  padding: clamp(1.2rem, 1rem + .8vw, 1.8rem);
  border: 1px solid var(--fourdg-border);
  border-radius: var(--fourdg-radius-lg);
  background: var(--fourdg-surface);
  box-shadow: var(--fourdg-shadow-sm);
}

@media (max-width: 767px) {
  .wp-block-cover.is-style-fourdg-hero-cover,
  .wp-block-cover.fourdg-native-hero-cover {
    min-height: clamp(42rem, 92svh, 54rem);
  }
  .wp-block-cover.is-style-fourdg-hero-cover .wp-block-cover__image-background,
  .wp-block-cover.fourdg-native-hero-cover .wp-block-cover__image-background {
    object-position: 72% center !important;
  }
  .wp-block-cover.is-style-fourdg-hero-cover .wp-block-cover__background,
  .wp-block-cover.fourdg-native-hero-cover .wp-block-cover__background {
    background: linear-gradient(180deg, rgb(29 5 12 / .86) 0%, rgb(84 18 38 / .72) 56%, rgb(20 7 10 / .52) 100%) !important;
  }
  .wp-block-cover.is-style-fourdg-hero-cover .wp-block-cover__inner-container,
  .wp-block-cover.fourdg-native-hero-cover .wp-block-cover__inner-container { align-self: stretch; display: flex; align-items: center; }
  .wp-block-columns.is-style-fourdg-card-grid { gap: 1rem; }
}

.fourdg-block-control-group{padding:10px 0;border-top:1px solid #ddd;}

/* 4DG Free Canvas: responsive, real HTML layers with editor-safe geometry. */
.fourdg-free-canvas{position:relative;isolation:isolate;overflow:hidden;width:100%;min-height:var(--fourdg-canvas-height-desktop,640px);background:var(--fourdg-canvas-bg,#210610);color:var(--fourdg-off-white,#f7f3f0)}
.fourdg-free-canvas__layer{position:absolute;left:var(--fourdg-x-desktop,0%);top:var(--fourdg-y-desktop,0%);width:var(--fourdg-w-desktop,30%);height:var(--fourdg-h-desktop,auto);transform:rotate(var(--fourdg-r-desktop,0deg));transform-origin:center;z-index:var(--fourdg-z,1);max-width:100%;box-sizing:border-box}
.fourdg-free-canvas__layer img{display:block;width:100%;height:100%;object-fit:var(--fourdg-fit,contain)}
.fourdg-free-canvas__text{margin:0;color:inherit;font:inherit;white-space:pre-wrap}
.fourdg-free-canvas__button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.3rem;border-radius:.3rem;background:var(--fourdg-maroon,#541226);color:#fff;text-decoration:none;font-weight:700}
.fourdg-free-canvas-editor{position:relative;overflow:hidden;border:1px solid #8c8f94;background:#210610;color:#fff;min-height:520px;touch-action:none}
.fourdg-free-canvas-editor .fourdg-free-canvas__layer{cursor:move;outline:1px dashed transparent}
.fourdg-free-canvas-editor .is-selected{outline:2px solid #72aee6}
.fourdg-free-canvas-handle{position:absolute;right:4px;bottom:4px;width:18px;height:18px;padding:0;border:2px solid #fff;border-radius:50%;background:#2271b1;cursor:nwse-resize}
.fourdg-free-canvas-rotate{position:absolute;left:50%;top:4px;width:20px;height:20px;padding:0;margin-left:-10px;border:2px solid #fff;border-radius:50%;background:#541226;cursor:grab}
body.elementor-editor-active .fourdg-free-canvas{touch-action:none}


/* --------------------------------------------------------------
   Platform v2.2 — Approved responsive hero artwork
   Desktop/tablet follow the approved open-door composition.
   Mobile switches to the approved illuminated-door visual supplied for the final mobile direction.
-------------------------------------------------------------- */
.fourdg-hero-v2 {
  --fourdg-hero-v2-image-mobile: var(--fourdg-hero-v2-image);
}
.fourdg-hero-v2--approved-reference .fourdg-hero-v2-shell {
  width: min(calc(100% - 2 * clamp(1.25rem, 3vw, 3rem)), 1360px);
}
.fourdg-hero-v2--approved-reference .fourdg-hero-v2-content {
  width: min(100%, 760px);
}
.fourdg-hero-v2--approved-reference .fourdg-hero-v2-title {
  max-width: 15.5ch;
  font-size: clamp(3.5rem, 5.05vw, 5.35rem);
  line-height: .98;
  letter-spacing: -.04em;
}
.fourdg-hero-v2--approved-reference .fourdg-hero-v2-copy {
  max-width: 36rem;
  margin-top: 1.35rem;
  font-size: clamp(1.08rem, .98rem + .3vw, 1.28rem);
}
.fourdg-hero-v2--approved-reference::before {
  background:
    linear-gradient(90deg, rgb(15 2 7 / .88) 0%, rgb(36 5 15 / .69) 36%, rgb(84 18 38 / .28) 60%, transparent 83%),
    linear-gradient(180deg, rgb(9 2 5 / .08), rgb(9 2 5 / .26));
}
.fourdg-hero-v2--approved-reference .fourdg-hero-v2-pattern {
  opacity: .22;
}
.fourdg-hero-v2--approved-reference .fourdg-hero-v2-scroll-mark {
  display: none;
}

@media (min-width: 48.001rem) and (max-width: 64rem) {
  .fourdg-hero-v2--approved-reference {
    min-height: min(800px, 88svh);
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-shell {
    width: min(calc(100% - 2 * 2rem), 1180px);
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-content {
    width: min(54%, 560px);
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-title {
    max-width: 100%;
    font-size: clamp(3rem, 5.3vw, 4.6rem);
  }
}

@media (max-width: 48rem) {
  .fourdg-hero-v2--approved-reference {
    min-height: var(--fourdg-hero-v2-min-height-mobile);
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-backdrop {
    background-image: var(--fourdg-hero-v2-image-mobile);
    background-position: var(--fourdg-hero-v2-bg-position-mobile, 88% center);
    background-size: cover;
  }
  .fourdg-hero-v2--approved-reference::before,
  .fourdg-hero-v2--approved-reference.fourdg-hero-v2--right::before {
    background:
      linear-gradient(90deg, rgb(13 2 6 / .94) 0%, rgb(25 3 10 / .84) 43%, rgb(55 8 24 / .38) 66%, transparent 100%),
      linear-gradient(180deg, rgb(8 1 4 / .18), rgb(12 2 6 / .38));
    opacity: .9;
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-shell {
    width: min(calc(100% - 2 * 1.25rem), 100%);
    padding-block: 7.3rem 3.5rem;
  }
  .fourdg-hero-v2--approved-reference.fourdg-hero-v2--mobile-v-top .fourdg-hero-v2-shell { align-items: start; }
  .fourdg-hero-v2--approved-reference.fourdg-hero-v2--mobile-v-center .fourdg-hero-v2-shell { align-items: center; }
  .fourdg-hero-v2--approved-reference.fourdg-hero-v2--mobile-v-bottom .fourdg-hero-v2-shell { align-items: end; }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-content {
    width: 100%;
    max-width: 24rem;
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-title {
    max-width: 100%;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.72rem, 11.2vw, 3.6rem);
    font-weight: 600;
    letter-spacing: -.045em;
    line-height: .98;
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-copy {
    max-width: 19rem;
    font-size: 1.05rem;
    line-height: 1.55;
  }
  .fourdg-hero-v2--approved-reference .fourdg-button--premium {
    width: min(100%, 22.5rem);
    min-height: 3.75rem;
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-actions {
    max-width: 22.5rem;
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-scroll-mark {
    display: block;
  }
}

/* v2.3 approved hero typography and mobile composition */
.fourdg-hero-v2--approved-reference .fourdg-hero-v2-title {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-weight: 600;
}
.fourdg-hero-v2--approved-reference .fourdg-hero-v2-copy,
.fourdg-hero-v2--approved-reference .fourdg-eyebrow {
  font-family: Manrope, Inter, ui-sans-serif, system-ui, sans-serif;
}
.fourdg-hero-v2--approved-reference .fourdg-button--premium {
  border-radius: .25rem;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 1.2rem;
  font-weight: 600;
}
.fourdg-button--mobile-only { display: none; }

@media (max-width: 48rem) {
  .fourdg-hero-v2--approved-reference {
    min-height: max(var(--fourdg-hero-v2-min-height-mobile), 100svh);
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-shell {
    width: min(calc(100% - 2 * 1.2rem), 100%);
    padding-block: 9.6rem 3rem;
  }
  .fourdg-hero-v2--approved-reference.fourdg-hero-v2--mobile-v-top .fourdg-hero-v2-shell { align-items: start; }
  .fourdg-hero-v2--approved-reference.fourdg-hero-v2--mobile-v-center .fourdg-hero-v2-shell { align-items: center; }
  .fourdg-hero-v2--approved-reference.fourdg-hero-v2--mobile-v-bottom .fourdg-hero-v2-shell { align-items: end; }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-content {
    width: 100%;
    max-width: 24rem;
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-title {
    max-width: 100%;
    margin: 0;
    font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    font-size: clamp(2.2rem, 10.7vw, 3.45rem);
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: .96;
    text-wrap: initial;
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-copy {
    max-width: 20.5rem;
    margin-top: 2rem;
    font-family: Manrope, Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: clamp(.98rem, 4.2vw, 1.08rem);
    line-height: 1.5;
  }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .75rem;
    width: min(100%, 20.5rem);
    max-width: 20.5rem;
    margin-top: 1.45rem;
  }
  .fourdg-hero-v2--approved-reference .fourdg-button--premium {
    width: 100%;
    min-height: 4.15rem;
    padding: .9rem 1.15rem;
    border-radius: .22rem;
    justify-content: space-between;
    font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    font-size: clamp(1.2rem, 5.4vw, 1.45rem);
    font-weight: 600;
  }
  .fourdg-hero-v2--approved-reference .fourdg-button--premium-ghost {
    background: rgb(20 4 9 / .16);
    border-color: rgb(247 243 240 / .62);
  }
  .fourdg-hero-v2--approved-reference .fourdg-button-arrow {
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    font-size: 1.55rem;
  }
  .fourdg-hero-v2--approved-reference .fourdg-button--mobile-only { display: inline-flex; }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-scroll-mark { display: none; }
}

@media (max-width: 23rem) {
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-shell { padding-top: 8.6rem; }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-title { font-size: clamp(2.08rem, 10.4vw, 2.45rem); }
  .fourdg-hero-v2--approved-reference .fourdg-hero-v2-copy { margin-top: 1.5rem; }
}
