/* ============================================================
   Editorial Calm design system — shared across all 3 sites
   Fonts: Cormorant Garamond (display) + DM Sans (body)
   Canvas: warm off-white/cream. Accents via --brand-* tokens.
   ============================================================ */

:root {
  --canvas: #FCFAF7;
  --cream: #F7F1E8;
  --ink: var(--brand-ink, #212121);
  --muted: #6E6456;
  --line: #E4D8C8;
  --card-r: 20px;
  --shadow-lift: 0 12px 32px rgba(26, 22, 14, .10);
  --ease: cubic-bezier(.22, .61, .36, 1);
}

body { background: var(--canvas); }

h1, h2, h3, .h-serif {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--ink);
}
h1 { font-size: clamp(2.6rem, 5vw, 4.2rem); line-height: 1.08; }
h2 { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.12; }
h3 { font-size: clamp(1.4rem, 2.2vw, 1.8rem); }

body, p, li, input, textarea, select, button {
  font-family: "DM Sans", -apple-system, sans-serif;
}

/* Big serif editorial paragraph (lede statements) */
.lede {
  font-family: "Fraunces", Georgia, serif;
  font-size: clamp(1.35rem, 2.4vw, 1.9rem);
  line-height: 1.5;
  color: var(--ink);
}

/* Eyebrow label */
.eyebrow {
  font-family: "DM Sans", sans-serif;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 1rem;
}
.eyebrow::before {
  content: "";
  display: inline-block;
  width: 28px; height: 1px;
  background: var(--brand-accent);
  vertical-align: middle;
  margin-right: .6em;
}

/* Pill CTA */
.pill-btn, .elementor-button {
  border-radius: 999px !important;
  padding: .9em 2em !important;
  font-weight: 600 !important;
  letter-spacing: .02em;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.pill-btn:hover, .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lift);
}
.pill-btn-primary, .elementor-button {
  background: var(--brand-accent) !important;
  color: #fff !important;
}
/* Blocksy header/footer buttons get the same treatment */
.ct-header .ct-button, .ct-header .ct-header-cta, .ct-footer .ct-button {
  border-radius: 999px !important;
  background: var(--brand-accent) !important;
  color: var(--brand-btn-text, #fff) !important;
  font-weight: 600 !important;
}
/* Ian's yellow + Academy gold need dark text */
.pill-btn-dark-text { color: var(--ink) !important; }

/* Secondary text-link CTA */
.link-cta {
  font-weight: 600;
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--brand-accent);
  text-decoration-thickness: 2px;
}

/* Rounded cards with hover lift */
.calm-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--card-r);
  padding: 2rem !important; /* must beat Elementor's per-element padding vars */
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.calm-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }

/* Numbered block marker */
.num-marker {
  font-family: "Fraunces", serif;
  font-size: 2.4rem;
  color: var(--brand-accent);
  line-height: 1;
  display: block;
  margin-bottom: .4em;
}

/* Cream alternating section */
.section-cream { background: var(--cream); }

/* Testimonial story card */
.story-quote {
  font-family: "Fraunces", serif;
  font-size: 1.5rem;
  font-style: italic;
  line-height: 1.4;
  color: var(--ink);
}
.story-quote::before { content: "“"; color: var(--brand-accent); font-size: 2em; line-height: 0; vertical-align: -.3em; margin-right: .1em; }

/* Thin divider */
.rule { border: 0; border-top: 1px solid var(--line); margin: 3rem 0; }

/* Stat chip */
.stat-chip {
  display: inline-block;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .5em 1.2em;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .04em;
}

/* Breathing-pace entrance (used with Elementor fade-in-up) */
.elementor-element.animated { animation-duration: 1.1s; animation-timing-function: var(--ease); }

/* Logo wall strip */
.logo-wall img {
  max-height: 48px;
  width: auto;
  filter: grayscale(1) contrast(.9);
  opacity: .75;
  transition: filter .3s var(--ease), opacity .3s var(--ease);
}
.logo-wall img:hover { filter: none; opacity: 1; }

/* ============================================================
   Design-polish layer (spacing rhythm + imagery components)
   ============================================================ */

/* Tighter mobile rhythm on top-level Elementor sections */
@media (max-width: 767px) {
  .e-con.e-parent {
    --padding-top: 44px !important;
    --padding-bottom: 44px !important;
  }
}

/* Framed hero/section photos */
.photo-frame img {
  border-radius: var(--card-r);
  box-shadow: var(--shadow-lift);
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3.4;
  object-fit: cover;
}

/* Full-width photo break band */
.photo-band { padding-top: 0 !important; padding-bottom: 0 !important; }
.photo-band img {
  width: 100%;
  height: clamp(200px, 30vw, 400px);
  object-fit: cover;
  border-radius: var(--card-r);
}

/* Image-top cards */
.card-img { margin: -2rem -2rem 0 -2rem; } /* bleed to card edges (calm-card padding) */
.card-img img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: calc(var(--card-r) - 8px) calc(var(--card-r) - 8px) 0 0;
}
.card-img-wide img { aspect-ratio: 21 / 9; }

/* Team grid — circular portraits (must outrank Elementor's widget img rules) */
.team-grid { text-align: center; }
.team-grid .elementor-widget-image img {
  width: 168px !important; height: 168px !important;
  border-radius: 50% !important;
  object-fit: cover;
  border: 3px solid var(--brand-accent);
  margin-bottom: .75rem;
}

/* Softer spacer behaviour: cap spacer widgets */
.elementor-widget-spacer .elementor-spacer-inner { max-height: 56px; }

/* ---------- Premium interactions layer ---------- */

/* Image zoom on hover (framed photos + card images) */
.photo-frame, .card-img { overflow: hidden; }
.photo-frame img, .card-img img {
  transition: transform .8s var(--ease);
}
.photo-frame:hover img, .card-img:hover img { transform: scale(1.03); }

/* Link underline sweep */
.link-cta {
  position: relative;
  text-decoration: none !important;
  padding-bottom: 3px;
  background-image: linear-gradient(var(--brand-accent), var(--brand-accent));
  background-size: 100% 2px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size .4s var(--ease), color .3s var(--ease);
}
.link-cta:hover { background-size: 100% 3px; color: var(--brand-accent); }

/* Announcement bar link hover */
.sa-bar a { transition: opacity .25s var(--ease); }
.sa-bar a:hover { opacity: .75; }

/* Entrance animation pacing (Elementor fadeInUp etc.) */
.elementor-element.animated {
  animation-duration: 1s;
  animation-timing-function: var(--ease);
}

/* Stat blocks (track record) */
.track-stat { text-align: left; }
.track-stat .stat-num {
  font-family: "Fraunces", Georgia, serif;
  font-size: clamp(2.6rem, 4.5vw, 3.6rem);
  line-height: 1;
  color: var(--brand-accent);
  display: block;
  margin-bottom: .35rem;
}
.track-stat .stat-label { font-weight: 600; letter-spacing: .02em; }

/* Testimonial image cards (real quote graphics) */
.testimonial-img-card { padding: 1rem !important; }
.testimonial-img-card img { width: 100%; height: auto; border-radius: calc(var(--card-r) - 8px); }

/* Blog archive cards — sane title size, no mid-word breaks */
.archive .entry-title, .blog .entry-title {
  font-size: 1.55rem;
  line-height: 1.25;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* Sticky header (lite — free Blocksy has no companion sticky) */
.ct-header {
  position: sticky;
  top: 0;
  z-index: 500;
  transition: box-shadow .3s var(--ease), background-color .3s var(--ease);
}
.ct-header.ct-stuck { box-shadow: 0 6px 24px rgba(26,22,14,.08); }
body.admin-bar .ct-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ct-header { top: 46px; } }

/* ---------- Fluent Forms polish ---------- */
.fluentform .ff-el-group { margin-bottom: 1.1rem; }
.fluentform .ff-el-input--label label {
  font-weight: 600;
  font-size: .9rem;
  letter-spacing: .02em;
  color: var(--ink);
  margin-bottom: .35rem;
}
.fluentform .ff-el-form-control, .fluentform select.ff-el-form-control {
  border-radius: 12px !important;
  border: 1px solid var(--line) !important;
  min-height: 48px;
  padding: .75em 1em !important;
  background: #fff !important;
  font-family: "DM Sans", sans-serif;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.fluentform textarea.ff-el-form-control { min-height: 120px; }
.fluentform .ff-el-form-control:focus {
  border-color: var(--brand-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-accent) 22%, transparent);
  outline: none;
}
.fluentform .ff-btn-submit {
  border-radius: 999px !important;
  background: var(--brand-accent) !important;
  color: var(--brand-btn-text, #fff) !important;
  border: 0 !important;
  min-height: 48px;
  padding: .8em 2.4em !important;
  font-weight: 600 !important;
  letter-spacing: .02em;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.fluentform .ff-btn-submit:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }

/* Forms on dark bands — add .on-dark to the section/container */
.on-dark .fluentform .ff-el-input--label label,
.on-dark .fluentform label { color: #fff; }
.on-dark .fluentform .ff-el-form-control {
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.28) !important;
  color: #fff;
}
.on-dark .fluentform .ff-el-form-control::placeholder { color: rgba(255,255,255,.55); }
.on-dark .fluentform select.ff-el-form-control option { color: var(--ink); }

/* Sidebar author card */
.author-card { text-align: center; }
.author-card img {
  width: 96px; height: 96px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--brand-accent);
}

/* Forms — styled in the premium interactions layer above */

/* Blog single reading column */
.single-post .entry-content { font-size: 1.06rem; line-height: 1.75; }
.single-post .entry-content blockquote {
  font-family: "Fraunces", serif;
  font-size: 1.6rem; font-style: italic;
  border-left: 3px solid var(--brand-accent);
  padding-left: 1.2em;
}

/* ============ Premium pass 2 — header / dropdown / footer ============ */

/* Announcement bar (injected above header) */
.announce-bar {
  font-size: .85rem;
  text-align: center;
  padding: 10px 16px;
  letter-spacing: .01em;
}
.announce-bar a { text-decoration: none; font-weight: 500; }
.announce-bar a:hover { text-decoration: underline; }

/* Compact header */
.ct-header [data-row] { min-height: 0 !important; }
.ct-header [data-row="middle"] > div { padding-top: 14px; padding-bottom: 14px; }
.site-logo-container img { max-height: 56px; width: auto; }

/* Menu dropdown panel — visible, elevated, padded */
.ct-header .sub-menu,
.ct-header .ct-dropdown,
.ct-header [class*="dropdown"] ul {
  background: #fff !important;
  border-radius: 14px !important;
  box-shadow: 0 16px 40px rgba(26,22,14,.14) !important;
  padding: 10px !important;
  border: 1px solid var(--line) !important;
  z-index: 999 !important;
}
.ct-header .sub-menu li a {
  padding: 10px 16px !important;
  border-radius: 8px;
  color: var(--ink) !important;
  font-weight: 500;
  white-space: nowrap;
}
.ct-header .sub-menu li a:hover {
  background: var(--cream) !important;
  color: var(--ink) !important;
}

/* Footer — dark ink band */
.ct-footer {
  background: var(--ink) !important;
  color: rgba(255,255,255,.72) !important;
}
.ct-footer a { color: var(--brand-accent2, #FFE324) !important; }
.ct-footer a:hover { opacity: .8; }
.ct-footer [data-row] > div {
  padding-top: 36px !important;
  padding-bottom: 36px !important;
}
.ct-footer .site-info, .ct-footer .copyright { color: rgba(255,255,255,.75) !important; }
.ct-footer .footer-menu, .ct-footer menu, .ct-footer ul { justify-content: center; gap: 28px; }
.ct-footer .ct-footer-menu a, .ct-footer .menu a { color: var(--brand-accent2, #FFE324) !important; }

/* Trim bottom dead space before footer */
.elementor-location-single > .elementor-section:last-child,
.ct-container > article .elementor > .elementor-section:last-child {
  margin-bottom: 0 !important;
}

/* ============ Premium pass 3 — layout fixes ============ */

:root {
  --theme-normal-container-max-width: 1160px !important;
  --theme-content-vertical-spacing: 44px !important;
}

/* Kill the viewport-stretch gap above the footer */
#main-container { min-height: 0 !important; }

/* Footer: one clean row — copyright left, menu right */
.ct-footer [data-row*="bottom"] > div,
.ct-footer [data-row*="middle"] > div {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between !important;
  gap: 16px 32px;
  padding-top: 26px !important;
  padding-bottom: 26px !important;
}
.ct-footer .footer-menu, .ct-footer .ct-footer-menu, .ct-footer nav ul {
  display: flex !important;
  flex-wrap: wrap;
  gap: 10px 26px;
  justify-content: flex-end;
}
@media (max-width: 690px) {
  .ct-footer [data-row*="bottom"] > div, .ct-footer [data-row*="middle"] > div { justify-content: center !important; text-align: center; }
  .ct-footer .footer-menu, .ct-footer nav ul { justify-content: center; }
}


/* ============ Premium branding layer ============ */
h1 em, h2 em, .h-serif em { font-style: italic; font-weight: 400; }
.hero-grain::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 250 250' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.14'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}
.duo-brand { position: relative; overflow: hidden; }
.duo-brand img { filter: grayscale(1) brightness(.94); }
.duo-brand::before { content: ""; position: absolute; inset: 0; mix-blend-mode: multiply; pointer-events: none; }
.duo-blue::before { background: linear-gradient(160deg, rgba(46,49,146,.5), rgba(29,31,78,.7)); }
.duo-gold::before { background: linear-gradient(160deg, rgba(249,178,45,.32), rgba(120,70,10,.55)); }
.duo-navy::before { background: linear-gradient(160deg, rgba(27,37,47,.5), rgba(19,27,35,.72)); }
.pill-shine { position: relative; overflow: hidden; }
.pill-shine::after {
  content: ""; position: absolute; top: 0; left: -80%; width: 50%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.5), transparent);
  transform: skewX(-20deg); transition: left .6s var(--ease);
}
.pill-shine:hover::after { left: 130%; }

/* ============================================================
   v2 homepage layer — approved concept components (all 3 sites)
   Colors flow from the per-site --brand-* tokens.
   ============================================================ */

/* Pills + text links */
.pill {
  display: inline-block; background: var(--brand-accent); color: var(--brand-btn-text, #fff);
  font-weight: 600; font-size: .95rem; padding: .95em 2.1em; border-radius: 999px;
  letter-spacing: .02em; border: none; cursor: pointer; font-family: "DM Sans", sans-serif;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.pill:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }
.pill-ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.45); }
.pill-ghost:hover { background: rgba(255,255,255,.1); box-shadow: none; }
.tlink { font-weight: 600; border-bottom: 2px solid var(--brand-accent); padding-bottom: 2px; transition: opacity .3s; }
.tlink:hover { opacity: .65; }

/* Cinematic hero */
.hero { position: relative; min-height: 88vh; display: flex; align-items: flex-end; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; animation: v2kb 26s var(--ease) infinite alternate; }
@keyframes v2kb { from { transform: scale(1); } to { transform: scale(1.07); } }
.hero-veil { position: absolute; inset: 0; }
.hero-inner { position: relative; z-index: 2; width: 100%; max-width: 1160px; margin: 0 auto; padding: 120px 28px 72px; color: #fff; }
.hero-inner h1 { font-size: clamp(2.8rem, 5.4vw, 4.6rem); max-width: 14ch; color: #fff; text-shadow: 0 2px 30px rgba(0,0,0,.3); }
.hero-inner .lead { max-width: 46ch; margin: 22px 0 34px; font-size: 1.05rem; color: rgba(255,255,255,.85); }
.hero-ctas { display: flex; gap: 26px; align-items: center; flex-wrap: wrap; }
.hero-ctas .tlink { color: #fff; }
.event-card, .talk-card {
  position: absolute; right: 28px; bottom: 72px; z-index: 3;
  background: rgba(252,250,247,.97); backdrop-filter: blur(8px);
  border-radius: 20px; padding: 26px 30px; width: 330px;
  box-shadow: 0 24px 60px rgba(0,0,0,.28);
}
.event-card h3, .talk-card h3 { font-size: 1.5rem; margin: 10px 0 14px; }
.event-card ul { list-style: none; margin: 0; padding: 0; font-size: .86rem; color: var(--muted); }
.event-card li { padding: 7px 0; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; }
.event-card li b { color: var(--brand-ink); font-weight: 600; }
.event-card .pill, .talk-card .pill { display: block; text-align: center; margin-top: 18px; padding: .8em 1em; font-size: .88rem; }
.talk-card p { font-size: .85rem; color: var(--muted); margin-bottom: 16px; }
.talk-card .phone { display: block; text-align: center; font-weight: 600; font-size: 1.05rem; color: var(--brand-accent); padding: 6px 0; }
.book-card {
  position: absolute; right: 28px; bottom: 72px; z-index: 3;
  background: rgba(252,250,247,.97); border-radius: 20px; padding: 22px; width: 300px;
  box-shadow: 0 24px 60px rgba(0,0,0,.3); display: flex; gap: 18px; align-items: flex-start;
}
.book-card img { width: 84px; border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.book-card h3 { font-size: 1.2rem; margin: 6px 0 4px; }
.book-card p { font-size: .78rem; color: var(--muted); margin-bottom: 12px; }
.book-card .pill { display: block; text-align: center; padding: .65em 1em; font-size: .82rem; }
@media (max-width: 900px) {
  .event-card, .talk-card, .book-card { position: relative; right: auto; bottom: auto; margin: 28px 28px 0; width: auto; }
}
@media (max-width: 640px) {
  .hero-inner { padding: 96px 22px 56px; }
}

/* Trust strip */
.trust { border-bottom: 1px solid var(--line); }
.trust .wrap { display: flex; justify-content: center; flex-wrap: wrap; }
.trust span { padding: 20px 32px; font-size: .82rem; font-weight: 600; letter-spacing: .05em; color: var(--muted); display: flex; align-items: center; gap: .6em; }
.trust i { font-style: normal; color: var(--brand-accent); font-size: .65rem; }
.trust.on-ink { background: var(--brand-ink); border-top: 1px solid rgba(255,255,255,.08); border-bottom: 0; }
.trust.on-ink span { color: rgba(255,255,255,.55); }

/* Section head */
.sec-head { max-width: 640px; margin-bottom: 48px; }
.sec-head h2 { font-size: clamp(2rem, 3.6vw, 2.9rem); margin: 16px 0 14px; }
.sec-head p { color: var(--muted); }

/* Event centerpiece */
.event-hero { border-radius: 24px; overflow: hidden; box-shadow: 0 20px 50px rgba(26,22,14,.10); margin-bottom: 56px; }
.event-hero img { width: 100%; height: clamp(240px, 34vw, 420px); object-fit: cover; transition: transform 1.2s var(--ease); }
.event-hero:hover img { transform: scale(1.02); }
.event-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
@media (max-width: 900px) { .event-grid { grid-template-columns: 1fr; } }
.spec { list-style: none; margin: 0; padding: 0; }
.spec li { display: flex; justify-content: space-between; gap: 16px; padding: 15px 0; border-top: 1px solid var(--line); font-size: .94rem; }
.spec li b { font-weight: 600; }
.spec li span { color: var(--muted); text-align: right; }

/* Numbered rail */
.stages { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; margin-top: 64px; position: relative; }
.stages::before { content: ""; position: absolute; top: 22px; left: 4%; right: 4%; height: 1px; background: var(--line); }
.stage { text-align: center; padding: 0 10px; position: relative; }
.stage .n { font-family: "Fraunces", Georgia, serif; font-size: 1.5rem; color: var(--brand-accent); background: var(--canvas); width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; position: relative; z-index: 2; }
.stage h4 { font-size: .86rem; font-weight: 600; margin-bottom: 6px; }
.stage p { font-size: .76rem; color: var(--muted); line-height: 1.45; }
@media (max-width: 1000px) { .stages { grid-template-columns: repeat(4, 1fr); row-gap: 36px; } .stages::before { display: none; } }
@media (max-width: 600px) { .stages { grid-template-columns: repeat(2, 1fr); } }

/* Course cards */
.courses, .services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 900px) { .courses, .services { grid-template-columns: 1fr; } }
.course, .service { background: #fff; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.course:hover, .service:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(26,22,14,.12); }
.course .img, .service .img { position: relative; height: 190px; overflow: hidden; }
.service .img { height: 170px; }
.course .img img, .service .img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.course:hover .img img, .service:hover .img img { transform: scale(1.05); }
.badge { position: absolute; top: 14px; left: 14px; background: rgba(252,250,247,.95); border-radius: 999px; padding: 6px 14px; font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.badge.on-accent { background: var(--brand-accent2); color: var(--brand-ink); }
.course .body, .service .body { padding: 26px 28px 30px; }
.service .body { padding: 24px 26px 28px; }
.course h3, .service h3 { font-size: 1.45rem; margin-bottom: 10px; }
.course p, .service p { font-size: .9rem; color: var(--muted); margin-bottom: 18px; }
.slim { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-top: 26px; padding: 22px 30px; background: var(--cream); border-radius: 16px; font-size: .95rem; }
.slim b { font-weight: 600; }

/* Accreditation / ian splits */
.split { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: center; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; gap: 36px; } }
.badge-img { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 44px; display: flex; align-items: center; justify-content: center; }
.badge-img img { max-height: 180px; }
.checks, .cred { list-style: none; margin-top: 26px; padding: 0; }
.checks li, .cred li { display: flex; gap: 14px; padding: 10px 0; font-size: .94rem; color: var(--muted); }
.checks li::before, .cred li::before { content: "—"; color: var(--brand-accent); font-weight: 600; }
.split .photo { border-radius: 20px; overflow: hidden; box-shadow: 0 20px 50px rgba(26,22,14,.12); }
.split .photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: top; }

/* Audience cards */
.aud { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
@media (max-width: 1000px) { .aud { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .aud { grid-template-columns: 1fr; } }
.aud .a { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 24px 22px; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.aud .a:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(26,22,14,.10); }
.aud h4 { font-size: .95rem; margin-bottom: 8px; }
.aud p { font-size: .8rem; color: var(--muted); line-height: 1.5; }

/* Stats band */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); text-align: center; }
@media (max-width: 800px) { .stats { grid-template-columns: repeat(2, 1fr); row-gap: 44px; } }
.stat .v { font-family: "Fraunces", Georgia, serif; font-size: clamp(3rem, 5vw, 4.4rem); color: var(--brand-accent); line-height: 1; }
.stat .l { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-top: 12px; }

/* Sponsor line */
.sponsor { display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.sponsor h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); max-width: 22ch; }

/* Journal posts */
.posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 900px) { .posts { grid-template-columns: 1fr; } }
.post { border-top: 1px solid var(--line); padding-top: 22px; }
.post time { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.post h3 { font-size: 1.35rem; margin: 12px 0 10px; }
.post h3 a:hover { border-bottom: 2px solid var(--brand-accent); }
.post p { font-size: .88rem; color: var(--muted); }

/* Newsletter card */
.news { background: var(--cream); border-radius: 24px; padding: 72px 40px; text-align: center; max-width: 760px; margin: 0 auto; }
.news h2 { font-size: clamp(1.9rem, 3.2vw, 2.6rem); margin-bottom: 12px; }
.news > p { color: var(--muted); margin-bottom: 30px; }
.news .fluentform { text-align: left; max-width: 520px; margin: 0 auto; }

/* Then / now figures */
.thennow { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.thennow figure { border-radius: 18px; overflow: hidden; box-shadow: 0 16px 40px rgba(27,37,47,.14); margin: 0; }
.thennow img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3/4; transition: transform 1s var(--ease); }
.thennow figure:hover img { transform: scale(1.04); }
.thennow figcaption { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); padding: 12px 14px; background: #fff; }
.pull { font-family: "Fraunces", Georgia, serif; font-size: clamp(1.5rem, 2.4vw, 1.9rem); font-style: italic; line-height: 1.35; color: var(--brand-ink); border-left: 3px solid var(--brand-accent); padding-left: 24px; margin: 28px 0; }

/* Book band */
.book { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; align-items: center; }
@media (max-width: 900px) { .book { grid-template-columns: 1fr; gap: 36px; } }
.book .cover { display: flex; justify-content: center; }
.book .cover img { max-height: 440px; border-radius: 12px; box-shadow: 0 32px 70px rgba(0,0,0,.45); transform: rotate(-2deg); transition: transform .5s var(--ease); }
.book .cover img:hover { transform: rotate(0deg) scale(1.02); }
.parts { list-style: none; margin: 24px 0; padding: 0; }
.parts li { padding: 11px 0; border-top: 1px solid rgba(255,255,255,.12); font-size: .9rem; color: rgba(255,255,255,.72); display: flex; gap: 14px; }
.parts li b { color: var(--brand-accent); font-family: "Fraunces", Georgia, serif; font-size: 1.05rem; min-width: 26px; }
.readerq { margin: 22px 0; padding: 18px 22px; background: rgba(255,255,255,.06); border-radius: 14px; font-size: .88rem; color: rgba(255,255,255,.8); font-style: italic; }
.readerq span { display: block; margin-top: 10px; font-style: normal; font-size: .78rem; color: rgba(255,255,255,.5); }

/* Audio tracks */
.tracks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .tracks { grid-template-columns: 1fr; } }
.track { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 26px; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.track:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(27,37,47,.10); }
.track .yr { font-family: "Fraunces", Georgia, serif; font-size: 1.6rem; color: var(--brand-accent2); }
.track h4 { font-size: 1rem; margin: 8px 0 4px; }
.track p { font-size: .8rem; color: var(--muted); margin-bottom: 18px; }
.track audio { width: 100%; height: 42px; border-radius: 999px; }

/* Video cards */
.vids { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
@media (max-width: 900px) { .vids { grid-template-columns: 1fr; } }
.vid { border-radius: 18px; overflow: hidden; box-shadow: 0 16px 40px rgba(27,37,47,.12); background: #000; }
.vid iframe { width: 100%; aspect-ratio: 16/9; display: block; border: 0; }
.vid h4 { font-size: .95rem; padding: 18px 22px; background: #fff; margin: 0; }

/* What-I-do cards */
.do { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .do { grid-template-columns: 1fr; } }
.do .d { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 32px 30px; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.do .d:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(27,37,47,.10); }
.do .n { font-family: "Fraunces", Georgia, serif; font-size: 2rem; color: var(--brand-accent2); }
.do h3 { font-size: 1.5rem; margin: 10px 0 12px; }
.do p { font-size: .9rem; color: var(--muted); margin-bottom: 18px; }

/* Quote cards */
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .quotes { grid-template-columns: 1fr; } }
.q { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 30px; }
.q .mark { font-family: "Fraunces", Georgia, serif; font-size: 2.4rem; color: var(--brand-accent); line-height: 0; display: block; margin-bottom: 16px; }
.q p { font-family: "Fraunces", Georgia, serif; font-size: 1.12rem; font-style: italic; line-height: 1.5; }
.q span { display: block; margin-top: 18px; font-size: .82rem; font-weight: 600; color: var(--muted); }

/* Press strip */
.press { background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 44px 0; }
.press .wrap { display: flex; justify-content: center; align-items: center; gap: 44px; flex-wrap: wrap; }
.press img { max-height: 36px; width: auto; filter: grayscale(1); opacity: .6; transition: filter .3s, opacity .3s; }
.press img:hover { filter: none; opacity: 1; }
.press .cap { width: 100%; text-align: center; font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); margin-bottom: 26px; }
.press .col { display: flex; flex-direction: column; align-items: center; }

/* Concern router */
.concerns { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 1000px) { .concerns { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .concerns { grid-template-columns: 1fr; } }
.concern { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 30px 26px; transition: transform .35s var(--ease), box-shadow .35s var(--ease); position: relative; }
.concern:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(46,49,146,.12); border-color: var(--brand-accent); }
.concern h3 { font-size: 1.4rem; margin-bottom: 10px; }
.concern p { font-size: .86rem; color: var(--muted); margin-bottom: 18px; line-height: 1.5; }
.concern .go { font-size: .84rem; font-weight: 600; color: var(--brand-accent); }

/* Steps rail (ink) */
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; position: relative; margin-top: 8px; }
.steps::before { content: ""; position: absolute; top: 22px; left: 6%; right: 6%; height: 1px; background: rgba(255,255,255,.2); }
.step { text-align: center; padding: 0 16px; position: relative; }
.step .n { font-family: "Fraunces", Georgia, serif; font-size: 1.5rem; color: var(--brand-ink); background: var(--brand-accent2); width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; position: relative; z-index: 2; }
.step h4 { font-size: 1rem; font-weight: 600; margin-bottom: 8px; color: #fff; }
.step p { font-size: .82rem; color: rgba(255,255,255,.6); line-height: 1.5; }
@media (max-width: 900px) { .steps { grid-template-columns: repeat(2, 1fr); row-gap: 36px; } .steps::before { display: none; } }

/* Holina pricing cards */
.hol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .hol { grid-template-columns: 1fr; } }
.hcard { background: #fff; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.hcard:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(26,22,14,.12); }
.hcard .img { height: 180px; overflow: hidden; }
.hcard .img img { width: 100%; height: 100%; object-fit: cover; }
.hcard .body { padding: 26px 28px; }
.hcard h3 { font-size: 1.4rem; margin-bottom: 4px; }
.hcard .loc { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
.hcard .price { font-family: "Fraunces", Georgia, serif; font-size: 1.7rem; color: var(--brand-accent); }
.hcard .price small { font-family: "DM Sans", sans-serif; font-size: .78rem; color: var(--muted); }
.hcard p { font-size: .85rem; color: var(--muted); margin: 12px 0 16px; }

/* Contact card */
.contact { background: var(--brand-accent); border-radius: 24px; padding: 64px 48px; max-width: 820px; margin: 0 auto; text-align: center; color: #fff; }
.contact h2 { font-size: clamp(1.9rem, 3.2vw, 2.6rem); margin-bottom: 12px; color: #fff; }
.contact > p { color: rgba(255,255,255,.75); margin-bottom: 32px; }
.contact.on-navy { background: var(--brand-ink); }
.contact .actions { display: flex; gap: 18px; align-items: center; justify-content: center; margin-top: 18px; flex-wrap: wrap; }
.contact .selftest { text-align: center; margin-top: 12px; }
.contact .selftest a { color: var(--brand-accent2); font-weight: 600; border-bottom: 2px solid var(--brand-accent2); }
.contact .wa { background: transparent; border: 1px solid rgba(255,255,255,.4); color: #fff; }
.contact .wa:hover { background: rgba(255,255,255,.1); box-shadow: none; }

/* Reveal-on-scroll (mirrors concept's IntersectionObserver) */
.rv { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.rv.on { opacity: 1; transform: none; }
.rv-d1 { transition-delay: .08s; } .rv-d2 { transition-delay: .16s; }
.rv-d3 { transition-delay: .24s; } .rv-d4 { transition-delay: .32s; }


/* ============================================================
   v2 NATIVE rebuild — visual-review fixes + native-widget mapping
   (heroes/cards/sections are now native Elementor containers that
    reuse the class hooks above; these rules patch the review list)
   ============================================================ */

/* (fix) Full-bleed hero — break out of the constrained content column */
.hero {
  width: 100vw; max-width: 100vw;
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
}

/* (fix) Hero eyebrow legibility over the veil — content column only, NOT the
   floating card (which sits on a light background and keeps dark text). */
.hero-inner .eyebrow { color: rgba(255,255,255,.9); text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.hero-inner .eyebrow::before { background: #fff; }
.hero .link-cta, .hero-inner .link-cta { color: #fff; }

/* (fix) Trust strip — native heading items, CSS separators, stronger contrast */
.trust .wrap { align-items: center; }
.trust .wrap > * { display: flex; align-items: center; margin: 0; }
.trust .wrap > * + *::before {
  content: "●"; color: var(--brand-accent); font-size: .58rem; margin: 0 26px;
}
.trust-item { font-size: .82rem; font-weight: 600; letter-spacing: .05em; color: #54493C; padding: 20px 0; margin: 0; }
.trust-item .elementor-heading-title { margin: 0; font-size: inherit; font-weight: inherit; letter-spacing: inherit; color: inherit; }
.trust.on-ink .trust-item { color: rgba(255,255,255,.78); }

/* (fix) Academy journal titles in ink, not link-blue */
.posts .post h3 a { color: var(--ink); }

/* Dark sections (native) — headings + body readable without inline styles */
.on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4 { color: #fff; }
.on-dark p, .on-dark li { color: rgba(255,255,255,.78); }
.on-dark .eyebrow { color: rgba(255,255,255,.85); }
.on-dark .eyebrow::before { background: var(--brand-accent2, #fff); }

/* (fix) Form labels + inputs readable on dark/accent contact bands */
.contact .fluentform label, .contact .fluentform .ff-el-input--label label { color: rgba(255,255,255,.92); }
.contact .fluentform .ff-el-form-control {
  background: rgba(255,255,255,.10) !important;
  border-color: rgba(255,255,255,.32) !important;
  color: #fff;
}
.contact .fluentform .ff-el-form-control::placeholder { color: rgba(255,255,255,.55); }
.contact .fluentform select.ff-el-form-control option { color: var(--ink); }

/* Native image-widget captions → concept figcaption look */
.thennow figure { margin: 0; }
.elementor-widget-image .widget-image-caption {
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--muted); padding: 12px 14px; background: #fff;
}

/* Native video widget → concept .vid card frame */
.vids .elementor-widget-video { border-radius: 18px; overflow: hidden; box-shadow: 0 16px 40px rgba(27,37,47,.12); background: #000; }
.vids .elementor-widget-video .elementor-wrapper, .vids .elementor-widget-video iframe { width: 100%; aspect-ratio: 16/9; }

/* Native press wall — keep logos capped + centred (image widgets inside .press .wrap) */
.press .wrap { display: flex; justify-content: center; align-items: center; gap: 44px; flex-wrap: wrap; }


/* Convert v2 grid wrappers to flex so the class names reuse cleanly on native
   Elementor flex containers (column count now comes from per-card width). */
.courses, .services, .aud, .posts, .tracks, .vids, .do, .quotes,
.concerns, .steps, .stages, .hol, .thennow, .split, .book, .event-grid, .stats {
  display: flex; flex-wrap: wrap;
}

/* Native image fill inside fixed-height card image wrappers */
.course .img .elementor-widget-image, .service .img .elementor-widget-image,
.hcard .img .elementor-widget-image { width: 100%; height: 100%; line-height: 0; }
.course .img img, .service .img img, .hcard .img img { width: 100%; height: 100%; object-fit: cover; }
.event-hero .elementor-widget-image, .event-hero .elementor-widget-image img { width: 100%; }

/* Phone link + small heading resets inside native card widgets */
.phone a { color: var(--brand-accent); text-decoration: none; }
.eyebrow .elementor-heading-title, .badge .elementor-heading-title,
.trust-item .elementor-heading-title, .yr .elementor-heading-title,
.n .elementor-heading-title, .v .elementor-heading-title { margin: 0; font: inherit; color: inherit; letter-spacing: inherit; }

/* Native video card caption */
.vid .vid-cap { background: #fff; }
.vid .vid-cap h4, .vid-cap .elementor-heading-title { font-size: .95rem; margin: 0; }


/* Native rebuild: reveal-on-scroll (.rv) is replaced by always-visible content.
   The old IntersectionObserver JS is gone; keep the class hooks but never hide. */
.rv { opacity: 1 !important; transform: none !important; }


/* Floating hero cards — force absolute over Elementor's --position:relative default.
   (CSS controls both breakpoints; Elementor's position control is desktop-only.) */
.hero .event-card, .hero .talk-card, .hero .book-card {
  position: absolute !important; right: 28px !important; bottom: 72px !important;
  left: auto !important; top: auto !important;
}
.hero .event-card, .hero .talk-card { width: 330px !important; max-width: 330px !important; }
.hero .book-card { width: 320px !important; max-width: 320px !important; }
@media (max-width: 900px) {
  .hero .event-card, .hero .talk-card, .hero .book-card {
    position: relative !important; right: auto !important; bottom: auto !important;
    margin: 28px 28px 0 !important; width: auto !important; max-width: none !important;
  }
}


/* Submit button on dark/accent contact cards — high contrast (accent-on-accent
   would otherwise render as plain text). */
.contact .fluentform .ff-btn-submit { background: #fff !important; color: var(--brand-ink) !important; }


/* Contact WhatsApp button → clean ghost (beat the global accent-on-button rule) */
.contact .wa, .contact .elementor-button.wa {
  background: transparent !important;
  border: 1px solid rgba(255,255,255,.45) !important;
  color: #fff !important;
}
.contact .wa:hover { background: rgba(255,255,255,.1) !important; box-shadow: none; }


/* Full-bleed hero breakout safety — prevent any 100vw-induced horizontal scroll
   (overflow-x:clip does not create a scroll container, so sticky header keeps working). */
html, body { overflow-x: clip; }

/* ============ Client pass — footer / press / links / animations ============ */

/* Hide Blocksy's default footer content (our .qf-footer replaces it) */
.ct-footer > div:not(.qf-footer) { display: none !important; }
.ct-footer { background: transparent !important; padding: 0 !important; }

/* 4-column footer */
.qf-footer { background: var(--brand-ink); color: rgba(255,255,255,.72); font-size: .92rem; }
.qf-footer-cols {
  max-width: 1160px; margin: 0 auto; padding: 56px 28px 44px;
  display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 44px;
}
.qf-footer .qf-col strong { font-family: "Fraunces", Georgia, serif; font-weight: 400; font-size: 1.6rem; color: #fff; display: block; margin-bottom: 12px; }
.qf-footer .qf-col p { color: rgba(255,255,255,.6); font-size: .9rem; max-width: 30ch; }
.qf-footer h5 { font-size: .75rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--brand-accent2); margin: 0 0 16px; }
.qf-footer ul { list-style: none; margin: 0; padding: 0; }
.qf-footer li { margin-bottom: 9px; }
.qf-footer a { color: rgba(255,255,255,.75) !important; text-decoration: none; transition: color .25s; }
.qf-footer a:hover { color: var(--brand-accent2) !important; opacity: 1 !important; }
.qf-footer-bar {
  border-top: 1px solid rgba(255,255,255,.12);
  max-width: 1160px; margin: 0 auto; padding: 22px 28px;
  display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap;
  font-size: .82rem; color: rgba(255,255,255,.55);
}
.qf-footer-bar .qf-legal, .qf-footer-bar ul { display: flex; gap: 24px; list-style: none; margin: 0; padding: 0; }
.qf-footer-bar a { color: var(--brand-accent2) !important; }
@media (max-width: 900px) {
  .qf-footer-cols { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 560px) {
  .qf-footer-cols { grid-template-columns: 1fr; }
  .qf-footer-bar { justify-content: center; text-align: center; }
}

/* Press wall — single line, evenly distributed */
.press .wrap, .logo-wall {
  display: flex !important; flex-wrap: nowrap !important; align-items: center !important;
  justify-content: space-between !important; gap: 24px !important; overflow-x: auto;
}
.press img, .logo-wall img { max-height: 34px !important; width: auto !important; flex: 0 0 auto; }

/* Bigger link text */
.link-cta, .tlink, .qflink { font-size: 1.06rem !important; }

/* Scroll reveal */
.qf-reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease, cubic-bezier(.22,.61,.36,1)), transform .9s var(--ease, cubic-bezier(.22,.61,.36,1)); }
.qf-reveal.qf-on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .qf-reveal { opacity: 1 !important; transform: none !important; } }


/* ============================================================
   CONTACT SPLIT (2-col: photo + intro | form) — ian-young, GLOBAL.
   Ink band that works on any page the Fluent form is embedded.
   Stacks photo/text above the form on mobile.
   ============================================================ */
.contact-split { background: var(--brand-ink, #1B252F); color: #fff; }
.contact-split .cs-grid { align-items: center; }
.contact-split h2 { color: #fff; }
.contact-split .eyebrow { color: rgba(255,255,255,.8); }
.contact-split .eyebrow::before { background: var(--brand-accent); }
.contact-split .cs-left p { color: rgba(255,255,255,.75); }
.contact-split .cs-photo { border-radius: 18px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.35); margin-bottom: 26px; }
.contact-split .cs-photo img { width: 100%; aspect-ratio: 4/4.3; object-fit: cover; object-position: center 20%; display: block; }

/* Dark-band Fluent Forms — GLOBAL labels/asterisks/inputs (any .on-dark or .contact-split) */
.on-dark .fluentform .ff-el-input--label label,
.contact-split .fluentform .ff-el-input--label label,
.on-dark .fluentform label,
.contact-split .fluentform label { color: rgba(255,255,255,.9) !important; }
/* required asterisk (FF renders via .asterisk-right label::after) */
.on-dark .fluentform .ff-el-input--label.ff-el-is-required label::after,
.contact-split .fluentform .ff-el-input--label.ff-el-is-required label::after,
.on-dark .fluentform .ff-el-is-required .ff-el-input--label label::after,
.contact-split .fluentform .ff-el-is-required .ff-el-input--label label::after { color: var(--brand-accent) !important; }
.on-dark .fluentform .ff-el-form-control,
.contact-split .fluentform .ff-el-form-control {
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.3) !important;
  color: #fff !important;
}
.on-dark .fluentform .ff-el-form-control::placeholder,
.contact-split .fluentform .ff-el-form-control::placeholder { color: rgba(255,255,255,.55) !important; }
.on-dark .fluentform select.ff-el-form-control option,
.contact-split .fluentform select.ff-el-form-control option { color: var(--ink) !important; }
.on-dark .fluentform .ff-el-form-control:focus,
.contact-split .fluentform .ff-el-form-control:focus { border-color: var(--brand-accent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-accent) 24%, transparent); }

/* Submit on the ink contact band — yellow pill, dark text (ian-young accent) */
.contact-split .fluentform .ff-btn-submit {
  background: var(--brand-accent) !important;
  color: var(--brand-ink) !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
  min-height: 50px;
  padding: .85em 2.6em !important;
  border: 0 !important;
}
.contact-split .fluentform .ff-btn-submit:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }

/* Trust strip — single line, no orphans */
.trust .wrap, .n-trust-row { flex-wrap: nowrap !important; white-space: nowrap; overflow-x: auto; }
.trust span { white-space: nowrap; padding: 16px 22px !important; }


/* ============================================================
   Audios page — compact 2-column track grid (ian-young)
   ============================================================ */
.track-grid { align-items: stretch; }
.track-card {
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
  padding: 22px 22px 18px !important;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.track-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.track-card .track-yr {
  font-family: "Fraunces", Georgia, serif; font-size: 1.35rem; line-height: 1;
  color: var(--brand-accent2); margin-bottom: 8px;
}
.track-card .track-yr .elementor-heading-title { font: inherit; color: inherit; margin: 0; }
.track-card h4 { font-size: 1.08rem; margin-bottom: 4px; }
.track-card .track-event { font-size: .82rem; color: var(--muted); margin-bottom: 14px; }
.track-card audio { width: 100%; height: 40px; display: block; }
.track-card iframe { width: 100%; border: 0; border-radius: 8px; display: block; }

/* Generic image-top card (used for network/destination cards) */
.img-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.img-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.img-card .img-card-img { line-height: 0; }
.img-card .img-card-img img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block;
  transition: transform .8s var(--ease); }
.img-card:hover .img-card-img img { transform: scale(1.04); }

/* Contact split — light variant + bigger reader review */
.contact-split.on-light { background: var(--cream); color: var(--brand-ink); }
.contact-split.on-light h2 { color: var(--brand-ink); }
.contact-split.on-light .eyebrow { color: var(--muted); }
.contact-split.on-light .cs-left p { color: var(--muted); }
.contact-split.on-light .cs-photo { box-shadow: 0 20px 50px rgba(26,22,14,.16); }
.contact-split.on-light .cs-right { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 34px; box-shadow: 0 14px 36px rgba(26,22,14,.06); }
.contact-split.on-light .fluentform label { color: var(--brand-ink) !important; }
.contact-split.on-light .fluentform .ff-el-form-control { background: #fff !important; border: 1px solid var(--line) !important; color: var(--brand-ink) !important; }
.contact-split.on-light .fluentform .ff-el-form-control::placeholder { color: #A39A8E !important; }

/* Bigger reader review text */
.readerq { font-size: 1.18rem !important; line-height: 1.55; padding: 24px 28px !important; }
.readerq span { font-size: .9rem !important; }

/* Portrait hero photos — anchor crop to the top so heads stay in frame */
.photo-frame img { object-position: center 15%; }

/* ============ Dan Lok hero (Ian) ============ */
.hero-dl h1 { color: #fff; font-size: clamp(2.8rem, 5.2vw, 4.4rem); }
.hero-dl h1 em { color: var(--brand-accent); font-style: italic; }
.hero-dl .eyebrow { color: rgba(255,255,255,.75); }
.hero-dl .eyebrow::before { background: var(--brand-accent); }
.dl-lead { color: rgba(255,255,255,.78); font-size: 1.06rem; max-width: 46ch; margin-top: 20px; }
.dl-photo { align-self: flex-end; }
.dl-photo img { display: block; width: 100%; max-width: 460px; height: auto; margin-left: auto; }
@media (max-width: 900px) {
  .dl-photo img { margin: 24px auto 0; max-width: 340px; }
}

/* Hero form bar */
.dl-bar-lead { color: #fff; font-size: 1.04rem; margin: 0; }
.dl-bar-lead strong { color: var(--brand-accent); }
.dl-bar-form form { display: flex; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.dl-bar-form .ff-el-group { flex: 1 1 240px; margin-bottom: 0 !important; }
.dl-bar-form .ff-el-form-control { border-radius: 10px !important; height: 50px; }
.dl-bar-form .ff-btn-submit {
  height: 50px; border-radius: 10px !important; padding: 0 28px !important;
  background: var(--brand-accent) !important; color: var(--brand-ink) !important; font-weight: 600 !important;
}

/* Dan Lok hero — balance photo height with text */
.dl-grid { align-items: center !important; }
.dl-photo img { max-height: 620px; width: auto; }
@media (max-width: 900px) { .dl-photo img { max-height: 420px; } }
.dl-photo img { max-height: 560px; }

/* Dan Lok stage hero — full-bleed photo + navy gradient */
.hero-dl-stage {
  background:
    linear-gradient(90deg, rgba(27,37,47,.94) 0%, rgba(27,37,47,.78) 34%, rgba(27,37,47,.30) 62%, rgba(27,37,47,.06) 100%),
    url('/wp-content/uploads/2026/10/ian-stage-hero.jpg') right top/cover no-repeat !important;
}
@media (max-width: 900px) {
  .hero-dl-stage {
    background:
      linear-gradient(180deg, rgba(27,37,47,.95) 30%, rgba(27,37,47,.55) 100%),
      url('/wp-content/uploads/2026/10/ian-stage-hero.jpg') right 30% center/cover no-repeat !important;
  }
}

/* ============ Dan Lok navy header + utility bar (Ian) ============ */
.brand-ian .ct-header { background: #1B252F !important; }
.brand-ian .ct-header .menu > li > a,
.brand-ian .ct-header [data-id="menu"] a { color: #fff !important; }
.brand-ian .ct-header [data-id="menu"] a:hover { color: var(--brand-accent) !important; }
.brand-ian .ct-header [data-id="menu"] .sub-menu li a { color: var(--brand-ink) !important; }
.brand-ian .ct-header .ct-search-box, .brand-ian .ct-header [data-id="search"] { color: #fff !important; }

/* Utility bar under header */
.dl-utility { background: #fff; border-bottom: 1px solid var(--line); }
.dl-utility-inner {
  max-width: 1160px; margin: 0 auto; padding: 10px 28px;
  display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap;
  font-size: .78rem; font-weight: 600; letter-spacing: .06em;
}
.dl-utility-left { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.dl-more { color: var(--muted); }
.dl-u-link { color: var(--brand-ink); text-decoration: none; text-transform: uppercase; }
.dl-u-link:hover { color: var(--brand-accent); }
.dl-utility-social { display: flex; gap: 18px; align-items: center; }
.dl-utility-social a { color: var(--brand-ink); opacity: .8; display: flex; }
.dl-utility-social a:hover { color: var(--brand-accent); opacity: 1; }
@media (max-width: 800px) { .dl-utility { display: none; } }

/* Kill the white gap above the hero */
.brand-ian body.home article .entry-content,
body.brand-ian.home article .entry-content { padding-top: 0 !important; margin-top: 0 !important; }

/* Hero bar form — match reference (white inputs on navy) */
.dl-bar .fluentform .ff-el-form-control { background: #fff !important; color: var(--brand-ink) !important; border: 1px solid #fff !important; }
.dl-bar .fluentform .ff-el-form-control::placeholder { color: #9aa0a6 !important; }
.dl-bar .fluentform label { display: none !important; }
.dl-bar-form .ff-el-group { flex: 1 1 200px; }

/* Navy header — cover all inner row wrappers */
.brand-ian .ct-header,
.brand-ian .ct-header > div,
.brand-ian .ct-header [data-row],
.brand-ian .ct-header .ct-container { background: #1B252F !important; }
.brand-ian .ct-header { border-bottom: 1px solid rgba(255,255,255,.08); }

/* Zero any theme-level top spacing before homepage hero */
body.brand-ian.home .ct-container,
body.brand-ian.home article,
body.brand-ian.home .entry-content { padding-top: 0 !important; margin-top: 0 !important; }
body.brand-ian.home .hero-dl-stage { margin-top: 0 !important; }

/* Kill theme vertical spacing var on Ian homepage */
body.brand-ian.home { --theme-content-vertical-spacing: 0px !important; }

/* Hero lead bar — one-row layout (dropdown + email + button) */
.dl-bar-form form { display: grid !important; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: start; }
.dl-bar-form .ff-el-group { flex: none !important; margin-bottom: 0 !important; }
.dl-bar-form .ff-btn-submit { height: 50px; white-space: nowrap; }
@media (max-width: 800px) { .dl-bar-form form { grid-template-columns: 1fr; } }

/* Contact section — alt light bg + compact form */
.cs-alt { background: #FCFAF7 !important; }
.cs-alt .cs-right { background: var(--cream); border: 1px solid var(--line); border-radius: 20px; padding: 30px; box-shadow: 0 14px 36px rgba(26,22,14,.07); }
.cs-alt .fluentform .ff-el-group { margin-bottom: 10px !important; }
.cs-alt .fluentform .ff-el-form-control { height: 42px; padding: .5em .9em !important; font-size: .9rem !important; }
.cs-alt .fluentform textarea.ff-el-form-control { height: auto; min-height: 84px; }
.cs-alt .fluentform .ff-el-input--label { margin-bottom: 4px !important; }
.cs-alt .fluentform .ff-el-input--label label { font-size: .82rem !important; }

/* CTA bar + stats (client mockup) */
.dl-cta-title { font-family: "Fraunces", Georgia, serif; font-style: italic; font-size: 1.5rem; color: #fff; margin: 0; }
.dl-cta-sub { color: rgba(255,255,255,.65); font-size: .9rem; margin: 4px 0 0; }
.dl-stats { border-top: 1px solid rgba(255,255,255,.12); margin-top: 22px; }
.dl-stat { text-align: center; }
.dl-stat .stat-v { font-family: "Fraunces", Georgia, serif; font-size: 1.9rem; color: var(--brand-accent); display: inline-block; margin-right: .35em; }
.dl-stat .stat-l { font-size: .78rem; font-weight: 600; letter-spacing: .14em; color: rgba(255,255,255,.6); }
.dl-bar .fluentform label { display: none !important; }
.dl-bar .fluentform .ff-el-form-control { background: #fff !important; color: var(--brand-ink) !important; height: 52px; border-radius: 8px !important; }
@media (max-width: 800px) { .dl-stats { gap: 18px; } }

/* Stats row — force horizontal */
.dl-stats { flex-direction: row !important; justify-content: space-around !important; }
.dl-stats > .dl-stat { width: auto !important; flex: 0 1 auto !important; }
@media (max-width: 700px) { .dl-stats { flex-wrap: wrap !important; } .dl-stats > .dl-stat { flex-basis: 45% !important; } }

/* Lead bar — inline fields (fieldset wrapper fix) */
.dl-bar-form form fieldset { display: flex !important; flex-wrap: wrap !important; gap: 12px !important; align-items: flex-start; }
.dl-bar-form form fieldset > .ff-el-group { flex: 1 1 0 !important; margin-bottom: 0 !important; }
.dl-bar-form form fieldset > .ff-el-group.ff_submit_btn_wrapper { flex: 0 0 auto !important; }
@media (max-width: 800px) {
  .dl-bar-form form fieldset { flex-direction: column; }
  .dl-bar-form form fieldset > .ff-el-group { width: 100%; }
}

/* Lead bar — wider fields */
.dl-bar-form form fieldset > .ff-el-group { flex: 1 1 220px !important; }
.dl-bar-form form fieldset > .ff-el-group.ff_submit_btn_wrapper { flex: 0 0 auto !important; }

/* ============ Brand coordination — navy/light rhythm ============ */
:root { --cream: #F6F1E7 !important; }
.section-cream { background: #F6F1E7 !important; }

/* Section heads on navy */
.on-dark h2, .on-dark h3 { color: #fff !important; }
.on-dark .eyebrow { color: rgba(255,255,255,.7) !important; }
.on-dark .sec-head p, .on-dark p { color: rgba(255,255,255,.72) !important; }
.on-dark .n-tracks .track { background: #fff; }
.on-dark .track .yr { color: var(--brand-accent); }
.on-dark .tlink, .on-dark .link-cta { color: #fff; border-color: var(--brand-accent); }

/* Audio players on navy — dark card with gold year */
.on-dark .track { border: 1px solid rgba(255,255,255,.08); box-shadow: 0 16px 36px rgba(0,0,0,.25); }

/* Track card text stays dark on white cards inside navy sections */
.on-dark .track h4 { color: var(--brand-ink) !important; }
.on-dark .track p { color: var(--muted) !important; }

/* CTA bar — white one-liner */
.dl-bar-light { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.dl-bar-light .dl-cta-title { color: var(--brand-ink); font-size: 1.35rem; white-space: nowrap; }
.dl-bar-light .dl-stats { border-top-color: var(--line); }
.dl-bar-light .dl-stat .stat-l { color: var(--muted); }
.dl-bar-light .fluentform .ff-el-form-control { border: 1px solid var(--line) !important; height: 48px; }
.dl-bar-light form fieldset { flex-wrap: nowrap !important; }
.dl-bar-light form fieldset > .ff-el-group { flex: 1 1 0 !important; }
.dl-bar-light form fieldset > .ff-el-group.ff_submit_btn_wrapper { flex: 0 0 auto !important; }
.dl-bar-light .ff-btn-submit { height: 48px; }
@media (max-width: 800px) { .dl-bar-light form fieldset { flex-wrap: wrap !important; } }

/* CTA bar — full-width, roomier fields */
.dl-bar-light > .e-con-inner { max-width: 1400px !important; }
.dl-bar-light .dl-cta-title { font-size: 1.3rem; padding-right: 12px; }
.dl-bar-light form fieldset > .ff-el-group { flex: 1 1 260px !important; }
.dl-bar-light form fieldset > .ff-el-group.ff_submit_btn_wrapper { flex: 0 0 auto !important; }
.dl-bar-light .fluentform .ff-el-form-control { height: 52px !important; font-size: .95rem !important; }
.dl-bar-light .ff-btn-submit { height: 52px !important; padding: 0 34px !important; }

/* CTA bar — title wraps to 2 lines, fields get the space */
.dl-bar-light .dl-cta-title { white-space: normal !important; max-width: 290px; font-size: 1.4rem; line-height: 1.25; }
.dl-bar-light .dl-cta-text { flex: 0 0 auto !important; }
.dl-bar-light .dl-bar-form { flex: 1 1 auto !important; }
.dl-bar-light form fieldset > .ff-el-group { flex: 1 1 300px !important; }

/* CTA bar — final fit */
.dl-bar-light form fieldset > .ff-el-group { flex: 1 1 260px !important; }
.dl-bar-light .ff-btn-submit { padding: 0 26px !important; }
.dl-bar-light .fluentform .ff-el-form-control { font-size: .9rem !important; }

/* Global contact box (all internal pages) */
.qf-global-contact { width: 100vw; position: relative; left: 50%; transform: translateX(-50%); margin-top: 56px; }
.qf-gc-inner { max-width: 1160px; margin: 0 auto; padding: 64px 28px; }
.qf-gc-head { max-width: 640px; margin: 0 auto 44px; text-align: center; }
.qf-gc-head h2 { margin: 12px 0 14px; }
.qf-gc-head p:last-child { color: var(--muted); }
.qf-gc-grid { display: flex; align-items: center; gap: 56px; }
.qf-gc-grid .cs-photo { flex: 0 0 42%; }
.qf-gc-grid .cs-right { flex: 0 0 calc(58% - 56px); }
@media (max-width: 900px) {
  .qf-gc-grid { flex-direction: column; gap: 32px; }
  .qf-gc-grid .cs-photo, .qf-gc-grid .cs-right { flex: 0 0 100%; width: 100%; }
}

/* CTA bar — centered, aligned to stats row width */
.dl-bar-light .dl-grid { justify-content: center !important; }
.dl-bar-light .dl-cta-text { width: auto !important; flex: 0 0 auto !important; }
.dl-bar-light .dl-bar-form { width: auto !important; flex: 1 1 auto !important; max-width: 800px; }
.dl-bar-light .dl-stats { max-width: 1400px; margin-left: auto; margin-right: auto; }
.dl-bar-light form fieldset { justify-content: center; }
.dl-bar-light form fieldset > .ff-el-group { flex: 1 1 300px !important; max-width: 340px; }
.dl-bar-light .dl-cta-title { max-width: none; }
@media (max-width: 900px) {
  .dl-bar-light .dl-grid { flex-direction: column !important; text-align: center; }
  .dl-bar-light .dl-cta-title { text-align: center; }
}

/* ============ CTA bar — navy redesign (client reference) ============ */
.dl-bar-navy { border-top: 3px solid var(--brand-accent); }
.dl-bar-navy .dl-cta-title { color: #fff; font-size: 1.55rem; line-height: 1.3; margin: 0; }
.dl-bar-navy .dl-cta-sub { color: rgba(255,255,255,.65); font-size: .92rem; margin: 8px 0 0; }
.dl-bar-navy .fluentform .ff-el-form-control { background: #fff !important; color: var(--brand-ink) !important; border: 1px solid #fff !important; height: 54px; border-radius: 6px !important; }
.dl-bar-navy .fluentform label { display: none !important; }
.dl-bar-navy .ff-btn-submit { height: 54px !important; border-radius: 6px !important; padding: 0 30px !important; font-weight: 600 !important; }
.dl-bar-navy .dl-bar-form { max-width: none; }
.dl-bar-navy .dl-grid { justify-content: flex-start !important; }

/* Stats v2 — big number + italic suffix + label + sub, vertical rules */
.dl-bar-navy .dl-stats { border-top: 1px solid rgba(255,255,255,.12); margin-top: 10px; }
.dl-stat2 { display: flex; flex-direction: column; align-items: flex-start; padding: 0 44px; position: relative; }
.dl-stat2:first-child { padding-left: 0; }
.dl-stat2 + .dl-stat2::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 1px; background: rgba(255,255,255,.12); }
.dl-stat2 .n { font-family: "Fraunces", Georgia, serif; font-size: 2.6rem; color: var(--brand-accent); line-height: 1.05; }
.dl-stat2 .n i { font-style: italic; font-size: 1.3rem; margin-left: 2px; }
.dl-stat2 .l { font-size: .82rem; font-weight: 600; letter-spacing: .14em; color: #fff; margin-top: 8px; }
.dl-stat2 .s { font-size: .8rem; color: rgba(255,255,255,.5); margin-top: 4px; }
.dl-bar-navy .elementor-widget-text-editor .dl-stat2 { text-align: left; }
@media (max-width: 900px) {
  .dl-stat2 { padding: 0 20px; }
  .dl-stat2 .n { font-size: 2rem; }
}

/* CTA bar — 3 fields in one row */
.dl-bar-navy form fieldset { display: grid !important; grid-template-columns: 1.2fr 1fr auto !important; gap: 12px !important; }
.dl-bar-navy form fieldset > .ff-el-group { flex: none !important; max-width: none !important; }
@media (max-width: 800px) { .dl-bar-navy form fieldset { grid-template-columns: 1fr !important; } }

/* Stat dividers — target the text-editor widgets directly */
.dl-bar-navy .dl-stats .elementor-widget-text-editor { position: relative; padding: 0 40px; }
.dl-bar-navy .dl-stats .elementor-widget-text-editor + .elementor-widget-text-editor::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 1px; background: rgba(255,255,255,.12); }
.dl-bar-navy .dl-stats .elementor-widget-text-editor:first-child { padding-left: 0; }

/* CTA bar — give fields breathing room */
.dl-bar-navy .dl-cta-text { width: 22% !important; }
.dl-bar-navy .dl-bar-form { width: 74% !important; }
.dl-bar-navy .fluentform .ff-el-form-control { font-size: .9rem !important; }
@media (max-width: 1000px) {
  .dl-bar-navy .dl-cta-text, .dl-bar-navy .dl-bar-form { width: 100% !important; }
}

/* Footer — centered */
.qf-footer-bar { justify-content: center !important; text-align: center; gap: 14px 32px; }
.qf-footer-bar .qf-legal { justify-content: center; }
.qf-footer-cols { text-align: left; }
@media (min-width: 901px) {
  .qf-footer-cols { grid-template-columns: 1.2fr 1fr 1fr 1fr; }
  .qf-col-brand { text-align: left; }
}
/* Global contact — tighter top */
.qf-global-contact { margin-top: 32px; }
.qf-gc-inner { padding: 48px 28px; }

/* Tighter content area top spacing site-wide */
:root { --theme-content-vertical-spacing: 26px !important; }

/* Footer — fully centered */
.qf-footer-cols { text-align: center !important; }
.qf-footer .qf-col strong { display: block; }
.qf-footer ul { display: inline-block; text-align: left; }
.qf-footer .qf-col p { margin-left: auto; margin-right: auto; }


/* ============================================================
   SS CLEANUP 2026-10-21 (1): spacing rhythm, type scale, global contact box, footer logo
   ============================================================ */
body { overflow-x: clip; }

/* tighter section rhythm (hero keeps its own padding on home) */
.elementor > .e-con.e-parent:not(.hero) {
  --padding-top: 40px !important;
  --padding-bottom: 40px !important;
}
.elementor > .e-con.e-parent:first-child:not(.hero) {
  --padding-top: 56px !important;
  --padding-bottom: 28px !important;
}
.elementor > .e-con.e-parent > .e-con-inner > .elementor-widget:last-child,
.elementor > .e-con.e-parent > .e-con-inner > .e-con:last-child { margin-bottom: 0; }

/* heading scale */
.elementor h1.elementor-heading-title, .elementor h1 { font-size: clamp(2.3rem, 1.6rem + 2vw, 3.5rem); line-height: 1.1; }
.elementor h2.elementor-heading-title, .elementor h2 { font-size: clamp(1.8rem, 1.4rem + 1.1vw, 2.4rem); line-height: 1.18; }
.elementor h3.elementor-heading-title, .elementor h3 { font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); line-height: 1.25; }

/* reading width for long copy directly inside sections (cards keep their own compact copy) */
.elementor > .e-con.e-parent > .e-con-inner > .elementor-widget-text-editor { max-width: 760px; }
.elementor > .e-con.e-parent > .e-con-inner > .elementor-widget-text-editor p { font-size: 1.06rem; line-height: 1.7; }

/* ---- Global contact box: full-bleed indigo band, photo left, form right ---- */
.qf-global-contact {
  width: 100vw; max-width: 100vw; position: relative; left: 0 !important; transform: none !important;
  margin: 0 0 0 calc(50% - 50vw) !important; clear: both;
  background: var(--brand-accent, #2E3192); color: #fff;
}
body > .qf-global-contact { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; }
.entry-content > .qf-global-contact { margin-block-start: 0 !important; }
.qf-global-contact > .elementor { width: 100%; }
.qf-global-contact .qf-gc-section { --padding-top: 48px !important; --padding-bottom: 52px !important; background: transparent !important; }
.qf-global-contact .qf-gc-section > .e-con-inner { max-width: 1160px; margin: 0 auto; flex-direction: column; align-items: center; row-gap: 32px; }
.qf-global-contact .qf-gc-section > .e-con-inner > .elementor-widget-heading { width: 100%; text-align: center; }
.qf-global-contact .qf-gc-section h2 { color: #fff !important; text-align: center; margin: 0; }
.qf-global-contact .qf-gc-grid {
  display: grid !important; grid-template-columns: 5fr 6fr; gap: 48px; align-items: center; width: 100%; flex-direction: unset;
}
.qf-global-contact .qf-gc-photo { border-radius: 18px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.28); width: 100%; }
.qf-global-contact .qf-gc-photo img { width: 100%; aspect-ratio: 1 / 1.05; object-fit: cover; object-position: center 20%; display: block; height: auto; }
.qf-global-contact .qf-gc-form {
  width: 100%; background: #fff; color: var(--brand-ink, #212121); border-radius: 18px; padding: 32px 36px;
  box-shadow: 0 20px 50px rgba(0,0,0,.22); text-align: left;
}
.qf-global-contact .qf-gc-form p { color: var(--brand-ink, #212121); margin: 0 0 18px; }
.qf-global-contact .qf-gc-form a { color: var(--brand-accent); text-decoration: underline; text-decoration-color: var(--brand-accent2); text-underline-offset: 3px; text-decoration-thickness: 2px; }
.qf-global-contact .fluentform label { color: var(--brand-ink, #212121) !important; }
.qf-global-contact .fluentform .ff-el-group { margin-bottom: 14px !important; }
.qf-global-contact .fluentform .ff-btn-submit { background: var(--brand-accent) !important; color: var(--brand-btn-text, #fff) !important; }
.qf-global-contact .fluentform .ff_submit_btn_wrapper { text-align: center; margin-top: 6px; }
.qf-global-contact .elementor-widget-button { margin-top: 4px; }
.qf-global-contact .elementor-widget-button .elementor-button { background: var(--brand-accent2, #FFE324) !important; color: var(--brand-ink, #212121) !important; border-radius: 999px; font-weight: 700; }
@media (max-width: 900px) {
  .qf-global-contact .qf-gc-grid { grid-template-columns: 1fr; gap: 28px; }
  .qf-global-contact .qf-gc-photo img { aspect-ratio: 4 / 3.2; object-position: center 18%; }
  .qf-global-contact .qf-gc-form { padding: 24px 20px; }
}

/* no gaps above/below the box */
body.page .ct-container-full, body.single .ct-container-full { padding-top: 0 !important; padding-bottom: 0 !important; }
body.page .site-main, body.single .site-main { padding-bottom: 0; }
.entry-content > .elementor { margin-bottom: 0 !important; margin-block-end: 0 !important; }

/* footer logo (first column) */
.qf-footer-logo { display: inline-block; margin-bottom: 14px; }
.qf-footer-logo img { width: 210px; max-width: 100%; height: auto; display: block; }

/* SS CLEANUP (2): mobile off-canvas menu — header rules collapse the panel (it carries .ct-header) */
#offcanvas.ct-panel.ct-header {
  position: fixed !important; inset: 0 !important; top: 0 !important; height: 100% !important; min-height: 100vh;
  background: transparent !important; border: 0 !important; box-shadow: none !important; z-index: 100000;
}
#offcanvas.ct-panel.ct-header > div, #offcanvas.ct-panel.ct-header [data-row] { min-height: 0; }
#offcanvas .ct-panel-inner { background: var(--brand-ink, #212121) !important; }
#offcanvas .ct-panel-actions { padding: 14px 20px; }
#offcanvas .ct-toggle-close { color: #fff !important; }
#offcanvas .mobile-menu a, #offcanvas .mobile-menu .menu > li > a { color: #fff !important; font-size: 1.1rem; padding: 12px 0; }
#offcanvas .mobile-menu li { border-bottom: 1px solid rgba(255,255,255,.12); }
#offcanvas .mobile-menu .sub-menu a { color: rgba(255,255,255,.85) !important; font-size: 1rem; padding: 10px 0 10px 14px; }
#offcanvas .mobile-menu .ct-toggle-dropdown-mobile, #offcanvas .mobile-menu .ct-toggle-dropdown-mobile svg { color: #fff !important; fill: #fff !important; }
#offcanvas .mobile-menu a:hover { color: var(--brand-accent2, #FFE324) !important; }

/* header dropdown arrows: ink on the white header, indigo on hover/open */
.ct-header [data-id="menu"] .ct-toggle-dropdown-desktop, .ct-header [data-id="menu"] .ct-toggle-dropdown-desktop svg,
.ct-header [data-id="menu"] .ct-toggle-dropdown-desktop svg path { color: var(--brand-ink, #212121) !important; fill: var(--brand-ink, #212121) !important; }
.ct-header [data-id="menu"] > ul > li:hover > a .ct-toggle-dropdown-desktop svg, .ct-header [data-id="menu"] > ul > li:hover > a .ct-toggle-dropdown-desktop svg path,
.ct-header [data-id="menu"] > ul > li:focus-within > a svg path { fill: var(--brand-accent, #2E3192) !important; }

/* service overview pages (Intervention / Companion) */
.ss-ov-grid { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 24px; width: 100%; flex-direction: unset; margin-top: 12px; }
.ss-ov-card { background: #fff; border: 1px solid var(--line, rgba(33,33,33,.12)); border-radius: 16px; padding: 28px 28px 24px; box-shadow: 0 10px 28px rgba(26,22,14,.06); row-gap: 8px; align-items: flex-start; }
.ss-ov-card h3 a { color: var(--brand-ink, #212121); text-decoration: none; }
.ss-ov-card h3 a:hover { color: var(--brand-accent, #2E3192); }
.ss-ov-card p { font-size: 1rem; line-height: 1.6; margin: 0; }
@media (max-width: 767px) { .ss-ov-grid { grid-template-columns: 1fr; } .ss-ov-card { padding: 22px 20px; } }

/* SS CLEANUP (3): links + buttons */
.elementor-widget-text-editor a:not(.elementor-button), .entry-content p a, .entry-content li a {
  color: var(--brand-ink, #212121); text-decoration: underline; text-decoration-color: var(--brand-accent2, #FFE324);
  text-decoration-thickness: 2px; text-underline-offset: 3px;
}
.elementor-widget-text-editor a:not(.elementor-button):hover, .entry-content p a:hover, .entry-content li a:hover { color: var(--brand-accent, #2E3192); }
.on-dark a:not(.elementor-button):not(.ff-btn-submit), .section-dark a:not(.elementor-button) { color: #fff; text-decoration-color: var(--brand-accent2, #FFE324); }
.on-dark a:not(.elementor-button):not(.ff-btn-submit):hover { color: var(--brand-accent2, #FFE324); }
.elementor-button { background: var(--brand-accent, #2E3192); color: var(--brand-btn-text, #fff) !important; border-radius: 999px; }
.elementor-button:hover { background: var(--brand-ink, #212121); color: #fff !important; }
.elementor-button[class*="yellow"], .pill-btn-dark-text, .on-dark .elementor-button { color: var(--brand-ink, #212121) !important; }

/* SS CLEANUP (4): fixed image ratios + compact contact box */
/* hero / two-up images: one ratio, object-fit cover */
.elementor .e-con:has(> .e-con > .elementor-widget-image:only-child) > .e-con > .elementor-widget-image img {
  max-width: 100%; aspect-ratio: 4 / 3; object-fit: cover; height: auto;
}
/* full-width banner images inside a section */
.elementor > .e-con > .e-con-inner > .elementor-widget-image img {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover; height: auto; border-radius: 12px;
}
.qf-global-contact .qf-gc-form { row-gap: 10px; }
.qf-global-contact .qf-gc-form .elementor-widget { margin: 0; }
.qf-global-contact .qf-gc-form .elementor-widget-text-editor:last-of-type p { margin: 0; }
.qf-global-contact .qf-gc-form p { margin: 0 0 8px; }

/* SS CLEANUP (5): blog index + single posts — no sidebar, full-width card grid, featured first post */
[data-sidebar] > aside, .ct-sidebar { display: none !important; }
.ct-container[data-sidebar], [data-sidebar="right"], [data-sidebar="left"] { grid-template-columns: minmax(0, 1fr) !important; }
body.blog .entries, body.archive .entries, body.search .entries { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
body.blog .entries > article, body.archive .entries > article { background: #fff; border: 1px solid var(--line, rgba(33,33,33,.12)); border-radius: 16px; box-shadow: 0 10px 28px rgba(26,22,14,.05); }
body.blog .entries > article:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1.1fr 1fr; column-gap: 40px; align-items: center; background: var(--cream); }
body.blog .entries > article:first-child .ct-media-container, body.blog .entries > article:first-child .ct-image-container { grid-column: 1; grid-row: 1 / span 6; }
body.blog .entries > article:first-child > *:not(.ct-media-container):not(.ct-image-container) { grid-column: 2; }
body.blog .entries > article:first-child .entry-title { font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem); }
@media (max-width: 999px) { body.blog .entries, body.archive .entries { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 689px) {
  body.blog .entries, body.archive .entries { grid-template-columns: 1fr; }
  body.blog .entries > article:first-child { display: block; }
}
body.single .ct-container-full, body.single .site-main { padding-top: 0; padding-bottom: 0; }
body.single .entry-content { max-width: 760px; margin-left: auto; margin-right: auto; }
body.single article .entry-header, body.single .hero-section { max-width: 760px; margin-left: auto; margin-right: auto; }
.author-box img, .ct-author-box img, .avatar { border-radius: 50%; object-fit: cover; }
body.blog .entries .ct-media-container img, body.archive .entries .ct-media-container img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; height: auto; }
body.blog .entries > article:first-child .ct-media-container img { aspect-ratio: 4 / 3; }
body.blog .entries > article:first-child:not(:has(img)) { display: block; padding: 8px 12px; }
body.blog .entries > article:first-child:not(:has(img)) > * { grid-column: auto; }

/* SS CLEANUP (6): alignment — legal text flush with title; button rows flush with their headline */
.page-id-6666 .elementor-widget-text-editor { align-self: flex-start; margin-left: 0 !important; max-width: 760px; }
.page-id-6666 .e-con.e-child, .page-id-6666 .e-con-inner { --padding-left: 0 !important; --padding-right: 0 !important; }
.elementor .e-con.e-child:has(> .elementor-widget-button):has(> .elementor-widget-heading.link-cta) { --padding-left: 0 !important; --padding-right: 0 !important; }
.qf-global-contact .e-con.e-child { --padding-left: 0 !important; --padding-right: 0 !important; }
.page-id-6666 .e-con .e-con > .e-con-inner { margin-left: 0 !important; margin-right: auto !important; }

/* SS CLEANUP (7): overview pages — theme title hidden (page H1 is in the content), card padding via Elementor vars */
.page-id-6807 .hero-section, .page-id-6808 .hero-section, .page-id-6807 .entry-header, .page-id-6808 .entry-header { display: none !important; }
.ss-ov-card, .elementor .e-con.ss-ov-card { --padding-top: 28px !important; --padding-right: 28px !important; --padding-bottom: 24px !important; --padding-left: 28px !important; padding: 28px 28px 24px !important; border-radius: 16px !important; }
.ss-ov-card .link-cta, .ss-ov-card .elementor-widget.link-cta { align-self: flex-start !important; width: fit-content !important; max-width: 100%; }

/* SS CLEANUP (8): compact sticky header, tighter section rhythm, hero talk-card padding restored */
/* sticky: the #header wrapper sticks (the inner .ct-header was the same height as its parent, so it never stuck) */
#header { position: sticky; top: 0; z-index: 600; background: #fff; transition: box-shadow .25s ease; }
#header .ct-header { position: static; }
#header.ct-stuck, #header:has(.ct-header.ct-stuck) { box-shadow: 0 6px 24px rgba(26,22,14,.10); }
body.admin-bar #header { top: 32px; }
.ct-header [data-row*="middle"] { --height: 72px !important; min-height: 0 !important; }
.ct-header [data-row="middle"] > div { padding-top: 0 !important; padding-bottom: 0 !important; min-height: 72px; }
.site-logo-container img, .ct-header .site-logo-container img { max-height: 44px; width: auto; }
.ct-header.ct-stuck [data-row="middle"] > div, #header.ct-stuck [data-row="middle"] > div { min-height: 64px; }

/* tighter rhythm */
.elementor > .e-con.e-parent:not(.hero) { --padding-top: 28px !important; --padding-bottom: 28px !important; }
.elementor > .e-con.e-parent:first-child:not(.hero) { --padding-top: 40px !important; --padding-bottom: 20px !important; }
.elementor > .e-con.e-parent > .e-con-inner { row-gap: 14px; }
.elementor > .e-con.e-parent > .e-con-inner > .e-con-inner, .trust > .e-con-inner { padding-top: 0; padding-bottom: 0; }
.elementor > .trust { --padding-top: 0 !important; --padding-bottom: 0 !important; }
.trust > .e-con-inner { --padding-top: 0px; --padding-bottom: 0px; padding-top: 0 !important; padding-bottom: 0 !important; }
.trust-item { padding: 12px 0; }
.sec-head { margin-bottom: 24px; }
.sec-head h2 { margin: 10px 0 8px; }
.elementor .elementor-widget-spacer { --spacer-size: 12px; }
.elementor .elementor-widget-spacer .elementor-spacer-inner { height: 12px !important; }
.press { padding: 28px 0; }

/* restore: the button-row rule must not strip padding from cards (talk-card, contact) */
.elementor .e-con.e-child:has(> .elementor-widget-button):not(:has(> .elementor-widget-heading.link-cta)) { --padding-left: initial !important; --padding-right: initial !important; }
.talk-card { --padding-top: 28px !important; --padding-right: 28px !important; --padding-bottom: 28px !important; --padding-left: 28px !important; padding: 28px !important; }
.ct-header [data-row*="middle"] > div, .ct-header [data-row*="middle"] .ct-container { min-height: 72px !important; height: auto !important; }
/* hero: lead keeps its reading width (not under the talk card), CTA link readable on the photo */
.hero-inner .lead, .hero-inner .elementor-widget-text-editor.lead { max-width: 46ch; }
.hero-inner .lead p { max-width: 46ch; }
.hero-inner .hero-ctas a:not(.elementor-button), .hero-inner a.tlink { color: #fff !important; text-decoration-color: var(--brand-accent2, #FFE324); }
.hero-inner .hero-ctas a:not(.elementor-button):hover { color: var(--brand-accent2, #FFE324) !important; }
.elementor .hero .hero-inner .elementor-widget.lead, .elementor .hero .hero-inner .elementor-widget.lead p { max-width: 46ch !important; }
.elementor .hero .hero-inner .hero-ctas .elementor-widget-text-editor a, .elementor .hero .hero-inner .hero-ctas .elementor-widget-text-editor a * { color: #fff !important; }
.elementor .hero .hero-inner .hero-ctas .elementor-widget-text-editor a:hover { color: var(--brand-accent2, #FFE324) !important; }

/* contact box: photo fills the form's height, no stray strip, anchor clears the sticky header */
.qf-global-contact .qf-gc-grid { align-items: stretch !important; }
.qf-global-contact .qf-gc-photo { position: relative; min-height: 420px; line-height: 0; }
.qf-global-contact .qf-gc-photo .elementor-widget, .qf-global-contact .qf-gc-photo .elementor-shortcode { position: static; }
.qf-global-contact .qf-gc-photo img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; object-position: 50% 30%; }
@media (max-width: 900px) { .qf-global-contact .qf-gc-photo { min-height: 0; aspect-ratio: 4 / 3.2; } }
#callback, #contact { scroll-margin-top: 90px; }

/* SS CLEANUP (9): blog category pills */
.ss-cats { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; grid-column: 1 / -1; }
.ss-cats a { padding: 8px 18px; border: 1px solid var(--line, rgba(33,33,33,.15)); border-radius: 999px; background: #fff; color: var(--brand-ink, #212121); font-size: .88rem; font-weight: 600; text-decoration: none; transition: background .2s, color .2s; }
.ss-cats a:hover { border-color: var(--brand-accent, #2E3192); color: var(--brand-accent, #2E3192); }
.ss-cats a.is-current { background: var(--brand-accent, #2E3192); border-color: var(--brand-accent, #2E3192); color: var(--brand-btn-text, #fff); }


/* SEO cleanup: blog index H1 header */
.iy-seo-blog-h1 { max-width: 1160px; margin: 0 auto; padding: 40px 0 8px; }
.iy-seo-blog-h1 h1 { font-family: var(--serif, "Fraunces", Georgia, serif); font-weight: 400; font-size: clamp(2rem, 4vw, 3.1rem); line-height: 1.1; margin: 0 0 12px; color: var(--brand-ink, #212121); }
.iy-seo-blog-h1 p { max-width: 680px; margin: 0 0 18px; font-size: 1.1rem; line-height: 1.6; color: #4A5560; }
