/* Cascais Routes — Phase 3c-6 Info / legal pages.
 * Main FAQ (body.cr-faqmain): branded header + category headers + restyled native
 * Elementor accordions. CSS-only (page keeps its native accordion widgets, editable).
 */
body.cr-faqmain {
  --faq-ink: var(--ink); --faq-soft: var(--ink-soft); --faq-yellow: #ffde01; --faq-line: var(--border);
  background: var(--surface);
}

/* keep the whole FAQ a calm, readable single column */
body.cr-faqmain .elementor-widget-heading,
body.cr-faqmain .elementor-widget-text-editor,
body.cr-faqmain .elementor-widget-accordion { max-width: 820px; margin-inline: auto; }

/* ── header (the "faq" heading) ── */
body.cr-faqmain .elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-heading); font-weight: 800; text-transform: uppercase; color: var(--faq-ink) !important;
  font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1.04; letter-spacing: -.02em; text-align: center;
  margin: clamp(2.6rem, 6vw, 4.5rem) auto .5rem; }
body.cr-faqmain .elementor-widget-heading .elementor-heading-title::before {
  content: 'Help center'; display: block; font-family: var(--font-body); font-size: .72rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--faq-soft); margin-bottom: .9rem; }
body.cr-faqmain .elementor-widget-heading .elementor-heading-title::after {
  content: ''; display: block; width: 46px; height: 3px; background: var(--faq-yellow); border-radius: 2px; margin: 1rem auto 0; }

/* ── intro lead (the text-editor right after the heading) ── */
body.cr-faqmain .elementor-widget-text-editor { /* default = category label (overridden for intro below) */
  font-family: var(--font-heading); font-weight: 800; text-transform: uppercase; letter-spacing: .01em;
  font-size: clamp(1.35rem, 2.2vw, 1.6rem); line-height: 1.1;
  display: flex; align-items: center; margin: clamp(2.6rem,5vw,3.4rem) auto 1.1rem; }
body.cr-faqmain .elementor-widget-text-editor,
body.cr-faqmain .elementor-widget-text-editor p,
body.cr-faqmain .elementor-widget-text-editor span { color: var(--faq-ink) !important; }
body.cr-faqmain .elementor-widget-text-editor p { margin: 0; }
/* underline under the category text (matches the yellow bar under "FAQ") */
body.cr-faqmain .elementor-widget-text-editor > .elementor-widget-container {
  border-bottom: 3px solid var(--faq-yellow); padding-bottom: .45rem; }
/* the very first text-editor (intro) is prose, not a category label → reset */
body.cr-faqmain .elementor-widget-heading + .elementor-widget-text-editor {
  display: block; text-transform: none; font-family: var(--font-body); font-weight: 400;
  font-size: 1.05rem; line-height: 1.7; text-align: center;
  max-width: 60ch; margin: 0 auto clamp(2rem, 4vw, 3rem); }
body.cr-faqmain .elementor-widget-heading + .elementor-widget-text-editor,
body.cr-faqmain .elementor-widget-heading + .elementor-widget-text-editor p,
body.cr-faqmain .elementor-widget-heading + .elementor-widget-text-editor span { color: var(--faq-soft) !important; }
body.cr-faqmain .elementor-widget-heading + .elementor-widget-text-editor::before { display: none; }
body.cr-faqmain .elementor-widget-heading + .elementor-widget-text-editor > .elementor-widget-container { border-bottom: 0; padding-bottom: 0; }

/* ── native accordion → clean FAQ rows ── */
body.cr-faqmain .elementor-accordion .elementor-accordion-item {
  background: transparent; border: 0; border-bottom: 1px solid var(--faq-line); }
body.cr-faqmain .elementor-accordion .elementor-tab-title,
body.cr-faqmain .elementor-accordion .elementor-tab-title a {
  padding: 1.15rem 0; font-family: var(--font-body); font-weight: 700; font-size: .95rem;
  color: var(--faq-ink) !important; background: transparent !important; border: 0; text-decoration: none;
  transition: color .2s; line-height: 1.4; }
body.cr-faqmain .elementor-accordion .elementor-tab-title:hover,
body.cr-faqmain .elementor-accordion .elementor-tab-title:hover a { color: #000 !important; }
body.cr-faqmain .elementor-accordion .elementor-accordion-icon {
  width: auto; color: var(--faq-ink) !important; }
body.cr-faqmain .elementor-accordion .elementor-accordion-icon i,
body.cr-faqmain .elementor-accordion .elementor-accordion-icon svg {
  color: var(--faq-ink) !important; fill: var(--faq-ink) !important; }
body.cr-faqmain .elementor-accordion .elementor-active .elementor-tab-title,
body.cr-faqmain .elementor-accordion .elementor-active .elementor-tab-title a { color: #000 !important; }
body.cr-faqmain .elementor-accordion .elementor-tab-content,
body.cr-faqmain .elementor-accordion .elementor-tab-content * {
  padding-block: 0; border: 0; background: transparent !important; color: var(--faq-soft) !important;
  font-size: .92rem; line-height: 1.7; }
body.cr-faqmain .elementor-accordion .elementor-tab-content { padding: 0 0 1.25rem; max-width: 70ch; }

/* breathing room around the whole thing + bottom padding */
body.cr-faqmain .elementor-widget-accordion:last-of-type { margin-bottom: clamp(3rem, 7vw, 5.5rem); }

@media (max-width: 860px) {
  body.cr-faqmain .elementor-widget-heading,
  body.cr-faqmain .elementor-widget-text-editor,
  body.cr-faqmain .elementor-widget-accordion { padding-inline: 1.25rem; }
}

/* ── Phase 3c-6 legal pages (Terms, Privacy) — keep the dark+yellow look, fix readability ── */
body.cr-legal .elementor-widget-text-editor {
  max-width: 860px !important; margin-inline: auto !important;
  padding: clamp(2.5rem, 5vw, 4.5rem) 1.5rem clamp(3rem, 7vw, 5.5rem); }
body.cr-legal .elementor-widget-text-editor,
body.cr-legal .elementor-widget-text-editor p,
body.cr-legal .elementor-widget-text-editor li { font-size: 1rem; line-height: 1.75; }
body.cr-legal .elementor-widget-text-editor p { margin: 0 0 1.1rem; }
body.cr-legal .elementor-widget-text-editor ol,
body.cr-legal .elementor-widget-text-editor ul { margin: .7rem 0 1.6rem; padding-left: 1.6rem; }
body.cr-legal .elementor-widget-text-editor li { margin-bottom: .7rem; }
body.cr-legal .elementor-widget-text-editor li:last-child { margin-bottom: 0; }
body.cr-legal .elementor-widget-text-editor ul ul,
body.cr-legal .elementor-widget-text-editor ol ul,
body.cr-legal .elementor-widget-text-editor ul ol { margin: .6rem 0 .4rem; }
/* doc title (first paragraph) → clear heading, keep its authored colour */
body.cr-legal .elementor-widget-text-editor .elementor-widget-container > p:first-of-type,
body.cr-legal .elementor-widget-text-editor .elementor-widget-container > p:first-of-type * {
  font-family: var(--font-heading) !important; font-weight: 800 !important; text-transform: uppercase; letter-spacing: -.01em;
  font-size: clamp(1.9rem, 4vw, 2.8rem) !important; line-height: 1.08; color: var(--faq-yellow, #ffde01) !important; }
body.cr-legal .elementor-widget-text-editor .elementor-widget-container > p:first-of-type { margin-bottom: 1.6rem; }
body.cr-legal .elementor-widget-text-editor a { text-decoration: underline; }

/* ════════════════════════════════════════════════════════════════════════
   Phase 3c-6 — Contacts (body.cr-contact). CSS-only: the Elementor form widget
   (11 fields, IDs, action) and the Google-map iframe stay byte-intact. Clean
   light page; intro+details left rail | form card right; framed map; footer band.
   Heading rule: a heading immediately followed by an icon-list is a sub-label;
   any other heading is a section title.
   ════════════════════════════════════════════════════════════════════════ */
body.cr-contact {
  --c-ink: var(--ink); --c-soft: var(--ink-soft); --c-yellow: #ffde01;
  --c-line: var(--border); --c-hdr: 80px;
  background: var(--surface);
}
/* kill the inherited dark Kit body image + let our surface show through */
body.cr-contact .elementor > .e-con,
body.cr-contact .e-con { background-color: transparent; }

/* ── two-column body: [intro + details] | [form card] ── */
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) > .e-con-inner {
  display: grid; grid-template-columns: 0.85fr 1.1fr; gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start; max-width: 1180px; margin-inline: auto;
  padding: clamp(3rem, 7vw, 6rem) clamp(1.25rem, 4vw, 2.5rem) clamp(2rem, 5vw, 3.5rem); }
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) > .e-con-inner > .e-con-full {
  width: 100%; max-width: 100%; }

/* ── section titles (Contact Us / Visit Us) ── */
body.cr-contact .elementor-widget-heading:not(:has(+ .elementor-widget-icon-list)) .elementor-heading-title {
  font-family: var(--font-heading) !important; font-weight: 800 !important; text-transform: uppercase;
  letter-spacing: -.015em; line-height: 1.02; color: var(--c-ink) !important;
  font-size: clamp(2.4rem, 5vw, 3.4rem) !important; margin: 0 0 .35rem; }
body.cr-contact .elementor-widget-heading:not(:has(+ .elementor-widget-icon-list)) .elementor-heading-title::after {
  content: ''; display: block; width: 48px; height: 3px; background: var(--c-yellow); border-radius: 2px; margin-top: .9rem; }

/* ── sub-labels (Get In Touch / Hours / address / RNAAT n.º) ── */
body.cr-contact .elementor-widget-heading:has(+ .elementor-widget-icon-list) .elementor-heading-title {
  font-family: var(--font-heading) !important; font-weight: 700 !important; text-transform: uppercase;
  letter-spacing: .06em; line-height: 1.2; color: var(--c-soft) !important;
  font-size: .82rem !important; margin: 1.6rem 0 .5rem; }

/* ── intro paragraph (text-editor in the left rail, before the details) ── */
body.cr-contact .e-con-full:not(:has(> [data-widget_type^="form"])) > .elementor-widget-text-editor,
body.cr-contact .e-con-boxed:has(> .e-con-inner > .elementor-widget-heading + .elementor-widget-text-editor) .elementor-widget-text-editor {
  font-family: var(--font-body); font-size: 1.02rem; line-height: 1.65; margin: .4rem 0 0; }
body.cr-contact .e-con-full:not(:has(> [data-widget_type^="form"])) .elementor-widget-text-editor,
body.cr-contact .e-con-full:not(:has(> [data-widget_type^="form"])) .elementor-widget-text-editor p {
  color: var(--c-soft) !important; }

/* ── contact-detail icon lists (phones / email / hours / address / rnaat) ── */
body.cr-contact .elementor-widget-icon-list .elementor-icon-list-items { display: grid; gap: .5rem; }
body.cr-contact .elementor-widget-icon-list .elementor-icon-list-item,
body.cr-contact .elementor-widget-icon-list .elementor-icon-list-item a {
  color: var(--c-ink) !important; font-family: var(--font-body); font-size: 1rem; }
body.cr-contact .elementor-widget-icon-list .elementor-icon-list-text { color: var(--c-ink) !important; }
body.cr-contact .elementor-widget-icon-list .elementor-icon-list-icon i,
body.cr-contact .elementor-widget-icon-list .elementor-icon-list-icon svg {
  color: var(--c-yellow) !important; fill: var(--c-yellow) !important; }
body.cr-contact .elementor-widget-icon-list a:hover .elementor-icon-list-text { color: var(--c-soft) !important; }

/* ── form card (right column) ── */
body.cr-contact .e-con-full:has(> [data-widget_type^="form"]) {
  background: var(--white); border: 1px solid var(--c-line); border-radius: var(--radius-xl);
  box-shadow: 0 18px 50px -28px rgba(10,10,10,.25);
  padding: clamp(1.75rem, 3.5vw, 2.75rem) !important; }
body.cr-contact .e-con-full:has(> [data-widget_type^="form"]) > .elementor-widget-text-editor,
body.cr-contact .e-con-full:has(> [data-widget_type^="form"]) > .elementor-widget-text-editor p,
body.cr-contact .e-con-full:has(> [data-widget_type^="form"]) > .elementor-widget-text-editor * {
  color: var(--c-ink) !important; font-family: var(--font-heading); font-weight: 700; text-transform: uppercase;
  letter-spacing: .01em; font-size: 1.15rem !important; line-height: 1.25; text-align: left !important;
  margin: 0; max-width: none !important; }
body.cr-contact .e-con-full:has(> [data-widget_type^="form"]) > .elementor-widget-text-editor { margin: 0 0 1.4rem; }

/* field labels + inputs */
body.cr-contact .elementor-field-group > label.elementor-field-label {
  color: var(--c-ink) !important; font-family: var(--font-body); font-weight: 600; font-size: .82rem;
  letter-spacing: .02em; margin-bottom: .35rem; }
body.cr-contact .elementor-field-group .elementor-field,
body.cr-contact .elementor-field-group select,
body.cr-contact .elementor-field-group textarea,
body.cr-contact .elementor-field-group .elementor-select-wrapper select,
body.cr-contact .elementor-field-textual {
  background-color: var(--surface) !important; background-image: none; border: 1px solid var(--c-line) !important; border-radius: var(--radius-md) !important;
  color: var(--c-ink) !important; font-family: var(--font-body); font-size: .95rem; padding: .7rem .85rem !important;
  transition: border-color .15s, box-shadow .15s; }
body.cr-contact .elementor-field-group .elementor-select-wrapper,
body.cr-contact .elementor-field-group .elementor-select-wrapper::before { background: transparent !important; }
/* post-108.css darkens the Service <select> with an id-scoped !important rule
   (specificity 0,5,0); out-specify it so the select matches the other fields */
body.cr-contact form.elementor-form .elementor-field-group select.elementor-field-textual,
body.cr-contact form.elementor-form .elementor-field-group select.elementor-field-textual.elementor-size-sm {
  background-color: var(--surface) !important; background-image: none !important; color: var(--c-ink) !important; }
body.cr-contact .elementor-field-group .elementor-select-wrapper select option { background: var(--white); color: var(--c-ink); }
body.cr-contact .elementor-field-textual:focus,
body.cr-contact .elementor-field-group select:focus,
body.cr-contact .elementor-field-group textarea:focus {
  border-color: var(--c-yellow) !important; box-shadow: 0 0 0 3px rgba(255,222,1,.28) !important; outline: none; }
/* radios (transportation / accommodation) */
body.cr-contact .elementor-field-subgroup .elementor-field-option label { color: var(--c-ink) !important; font-family: var(--font-body); font-size: .95rem; }
body.cr-contact .elementor-field-subgroup input[type=radio] { accent-color: var(--c-yellow); }
/* submit → yellow pill */
body.cr-contact .elementor-form .elementor-button {
  background: var(--c-yellow) !important; color: var(--c-ink) !important; border: 0 !important;
  font-family: var(--font-heading); font-weight: 800; text-transform: uppercase; letter-spacing: .05em;
  border-radius: 999px !important; padding: .95rem 2rem !important; transition: transform .12s, filter .15s; }
body.cr-contact .elementor-form .elementor-button:hover { filter: brightness(.95); transform: translateY(-1px); }
body.cr-contact .elementor-form .elementor-button .elementor-button-text { color: var(--c-ink) !important; }

/* ── map (top[B] first column) → framed ── */
body.cr-contact .e-con-boxed:has(.elementor-widget-google_maps) > .e-con-inner {
  max-width: 1180px; margin-inline: auto; padding: clamp(1.5rem,4vw,3rem) clamp(1.25rem,4vw,2.5rem) clamp(3rem,7vw,5.5rem);
  display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1.75rem, 4vw, 3rem); }
body.cr-contact .e-con-boxed:has(.elementor-widget-google_maps) > .e-con-inner > .e-con-full { width: 100%; max-width: 100%; }
body.cr-contact .elementor-widget-google_maps,
body.cr-contact .elementor-widget-google_maps .elementor-custom-embed { width: 100%; }
body.cr-contact .elementor-widget-google_maps .elementor-widget-container {
  border: 1px solid var(--c-line); border-radius: var(--radius-xl); overflow: hidden;
  box-shadow: 0 18px 50px -30px rgba(10,10,10,.3); }
body.cr-contact .elementor-widget-google_maps iframe { width: 100% !important; height: 380px !important; display: block; border: 0; }

/* ── Visit Us / address / RNAAT → centered footer block ── */
body.cr-contact .e-con-boxed:has(.elementor-widget-google_maps) > .e-con-inner > .e-con-full:not(:has(.elementor-widget-google_maps)) {
  text-align: center; align-items: center; }
body.cr-contact .e-con-boxed:has(.elementor-widget-google_maps) .elementor-widget-heading:not(:has(+ .elementor-widget-icon-list)) .elementor-heading-title {
  font-size: clamp(1.8rem, 3.5vw, 2.4rem) !important; }
body.cr-contact .e-con-boxed:has(.elementor-widget-google_maps) .elementor-widget-heading:not(:has(+ .elementor-widget-icon-list)) .elementor-heading-title::after { margin-inline: auto; }
body.cr-contact .e-con-boxed:has(.elementor-widget-google_maps) .elementor-widget-icon-list .elementor-icon-list-items { justify-content: center; }
body.cr-contact .e-con-boxed:has(.elementor-widget-google_maps) .elementor-widget-icon-list .elementor-icon-list-item { justify-content: center; }

/* ── dark contact band (the contact+form section becomes a full-bleed dark
   band; the white form card floats on it; left rail inverts to light text,
   yellow accents kept). "Dark is earned" punctuation per DESIGN.md. Uses the
   site's own dark photo bg (the global Kit body image) + a scrim for contrast.
   Relative path so it resolves on any domain (info.css → wp-content/uploads). ── */
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) {
  background-color: var(--c-ink) !important;
  background-image: linear-gradient(rgba(10,10,10,.3), rgba(10,10,10,.3)),
    url("../../../../uploads/2024/01/Background-Site-Cascais-Routes.png") !important;
  background-size: auto, contain !important;
  background-repeat: repeat, repeat !important;
  background-position: center, center !important; }
/* Contact Us title → white (its yellow underline stays) */
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) .elementor-widget-heading:not(:has(+ .elementor-widget-icon-list)) .elementor-heading-title {
  color: #ffffff !important; }
/* Get In Touch / Hours sub-labels → soft grey on dark */
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) .elementor-widget-heading:has(+ .elementor-widget-icon-list) .elementor-heading-title {
  color: #a3a3a3 !important; }
/* intro paragraph → light grey */
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) .e-con-full:not(:has(> [data-widget_type^="form"])) .elementor-widget-text-editor,
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) .e-con-full:not(:has(> [data-widget_type^="form"])) .elementor-widget-text-editor p {
  color: #d4d4d4 !important; }
/* phones / email → white (icons stay yellow from the base rule) */
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) .elementor-widget-icon-list .elementor-icon-list-text,
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) .elementor-widget-icon-list .elementor-icon-list-item a {
  color: #ffffff !important; }
body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) .elementor-widget-icon-list a:hover .elementor-icon-list-text {
  color: var(--c-yellow) !important; }

@media (max-width: 880px) {
  body.cr-contact .e-con-boxed:has(> .e-con-inner > .e-con-full [data-widget_type^="form"]) > .e-con-inner {
    grid-template-columns: 1fr; gap: 2rem; }
  body.cr-contact .e-con-full:has(> [data-widget_type^="form"]) { order: 2; }
}

/* ════════════════════════════════════════════════════════════════════════
   Phase 3c-6 — About Us (body.cr-about). CSS-only restyle into the light
   Phase-2 system. Photos (hero + why-us are editable container bg-images) and
   the newsletter form + team carousel (Elementor Pro nested-carousel/swiper)
   stay byte-intact — we only restyle card interiors and arrows, never the
   swiper track/widths. Rhythm: white hero → warm why-us → white team →
   yellow newsletter band → dark footer.
   ALL content rules are scoped to .elementor-118 (the post) so the structural
   hooks below can't leak into the global header (elementor-144) or footer
   (elementor-189) — both are also .e-con-boxed with multiple .e-con-full cols.
   Section hooks (structural, no element IDs), valid (no nested :has):
     2-col = boxed with two adjacent .e-con-full under its inner
     HERO  = that 2-col which :has(.slot)        (qualifier text uses .slot divs)
     WHY   = that 2-col which :not(:has(.slot))
     TEAM  = boxed that :has(.elementor-widget-n-carousel)
     NEWS  = boxed that :has(.elementor-widget-form)
   ════════════════════════════════════════════════════════════════════════ */
body.cr-about {
  --a-ink: var(--ink); --a-soft: var(--ink-soft); --a-yellow: #ffde01;
  --a-line: var(--border); --a-warm: #faf7f2; --a-dark: #0a0a0a;
  background: var(--surface);
}
/* drop the inherited dark Kit body image; let our light surface show */
body.cr-about .elementor-118 .e-con { background-color: transparent; }

/* Section hooks now use _element_id (added to _elementor_data, which DOES render
   here). The old :has(.slot) hero/why split broke once the qualifier moved to the
   audience section, so everything keys off IDs:
     #cr-hero  full-bleed photo hero    #cr-audience  "IF YOU ARE" block
     #cr-why   text+photo warm band     #cr-team / #cr-jobcta (dark CTA) / #cr-news
   (.slot = the qualifier text-editor's divs, now inside #cr-audience) */

/* ════ HERO — full-bleed editable photo, white headline + subline + CTA ════ */
body.cr-about #cr-hero { padding: 0 !important; margin: 0 !important; } /* kill Elementor's mobile margin-top gap */
body.cr-about #cr-hero > .e-con-inner {
  position: relative; max-width: none; margin: 0; padding: 0;
  min-height: 100vh; /* full viewport minus the 80px static header */
  display: flex; flex-direction: column; justify-content: flex-end;
}
/* photo layer = the widget-empty column (its editable container bg-image) */
body.cr-about #cr-hero > .e-con-inner > .e-con-full:not(:has(.elementor-widget)) {
  position: absolute; inset: 0; z-index: 0; min-height: 0;
  width: 100% !important; max-width: none !important; border-radius: 0; box-shadow: none;
  background-size: cover !important; background-position: center 30% !important;
}
/* scrim — darker overall + bottom-weighted so white copy stays legible over the bright sea.
   Flat tint (.28) under the gradient lifts contrast across the whole bright photo. */
body.cr-about #cr-hero > .e-con-inner::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(10,10,10,.45) 0%, rgba(10,10,10,.34) 42%, rgba(10,10,10,.88) 100%),
    rgba(10,10,10,.28);
}
/* content layer = the text column, in a centered max-width wrapper but left-aligned
   (matches the boxed left edge of the other pages' heroes) */
body.cr-about #cr-hero > .e-con-inner > .e-con-full:has(.elementor-widget) {
  position: relative; z-index: 2; width: 100% !important; max-width: 1240px; margin-inline: auto;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem) clamp(2.8rem, 6vw, 4.5rem); text-align: left;
}
body.cr-about #cr-hero .elementor-heading-title {
  font-family: var(--font-heading) !important; font-weight: 800 !important; text-transform: uppercase;
  letter-spacing: -.02em; line-height: 1.0; font-size: clamp(2.5rem, 6vw, 4.6rem) !important;
  color: #fff !important; margin: 0 0 1.2rem; text-wrap: balance; max-width: 16ch;
}
body.cr-about #cr-hero .elementor-heading-title::after {
  content: ""; display: block; width: 66px; height: 5px; border-radius: 2px; background: var(--a-yellow); margin-top: 1.3rem;
}
body.cr-about #cr-hero .elementor-widget-text-editor p {
  font-family: var(--font-body); color: #f0efed; font-size: clamp(1.05rem, 1.5vw, 1.22rem);
  line-height: 1.55; margin: 0; max-width: 54ch;
}
body.cr-about #cr-hero .elementor-widget-button { text-align: left; margin-top: clamp(1.6rem, 3vw, 2.3rem); }
/* hero meta boxes (left yellow keyline — matches the other pages' hero stat row) */
body.cr-about #cr-hero .cr-hero-meta {
  display: flex; flex-wrap: wrap; gap: clamp(1.25rem, 3vw, 2.75rem); margin-top: clamp(1.9rem, 3.5vw, 2.8rem);
}
body.cr-about #cr-hero .cr-hm {
  display: flex; flex-direction: column; gap: .25rem; padding-left: .95rem; border-left: 3px solid var(--a-yellow);
}
body.cr-about #cr-hero .cr-hm-big {
  font-family: var(--font-heading); font-weight: 800; text-transform: uppercase; color: #fff;
  font-size: clamp(1.05rem, 1.8vw, 1.5rem); line-height: 1; letter-spacing: -.01em;
}
body.cr-about #cr-hero .cr-hm-cap {
  font-family: var(--font-body); color: #d4d2cf; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em;
}

/* ════ AUDIENCE — "IF YOU ARE" editorial block (html widget .cr-aud, no photos) ════ */
body.cr-about #cr-audience > .e-con-inner {
  max-width: 1180px; margin-inline: auto;
  padding: clamp(3.5rem, 8vw, 6.5rem) clamp(1.25rem, 4vw, 2.5rem);
}
body.cr-about #cr-audience .cr-aud {
  display: grid; grid-template-columns: 0.82fr 1.18fr; gap: clamp(2rem, 5vw, 5rem); align-items: start;
}
body.cr-about #cr-audience .cr-aud-title {
  font-family: var(--font-heading); font-weight: 800; text-transform: uppercase; letter-spacing: -.02em;
  font-size: clamp(2.3rem, 5vw, 3.6rem); line-height: 1.0; color: var(--a-ink); margin: 0;
}
/* yellow bar directly under the title (coherent with the other section heads) */
body.cr-about #cr-audience .cr-aud-title::after {
  content: ""; display: block; width: 64px; height: 5px; border-radius: 2px; background: var(--a-yellow); margin: 1.2rem 0 0;
}
body.cr-about #cr-audience .cr-aud-lead {
  font-family: var(--font-body); color: var(--a-soft); font-size: clamp(1rem, 1.4vw, 1.12rem);
  line-height: 1.6; margin: 1.5rem 0 0; max-width: 36ch;
}
body.cr-about #cr-audience .cr-aud-list { list-style: none; margin: 0; padding: 0; }
body.cr-about #cr-audience .cr-aud-list li {
  display: flex; align-items: center; gap: 1.1rem; padding: 1.2rem 0; border-bottom: 1px solid var(--a-line);
}
body.cr-about #cr-audience .cr-aud-list li:first-child { padding-top: 0; }
body.cr-about #cr-audience .cr-aud-list li:last-child { border-bottom: 0; padding-bottom: 0; }
body.cr-about #cr-audience .cr-aud-ic {
  flex: 0 0 auto; width: 2.15rem; height: 2.15rem; border-radius: 50%; background: var(--a-yellow);
  display: inline-flex; align-items: center; justify-content: center; color: var(--a-ink);
}
body.cr-about #cr-audience .cr-aud-ic svg { width: 1.1rem; height: 1.1rem; display: block; }
body.cr-about #cr-audience .cr-aud-tx {
  font-family: var(--font-body); color: var(--a-soft); font-size: clamp(1.02rem, 1.4vw, 1.16rem); line-height: 1.45;
}
body.cr-about #cr-audience .cr-aud-tx b { color: var(--a-ink); font-weight: 700; }

/* ════ WHY CHOOSE US — text (left) | photo (right), warm band ════ */
body.cr-about #cr-why { background-color: var(--a-warm) !important; }
body.cr-about #cr-why > .e-con-inner {
  display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center; max-width: 1200px; margin-inline: auto;
  padding: clamp(3rem, 7vw, 6rem) clamp(1.25rem, 4vw, 2.5rem);
}
body.cr-about #cr-why > .e-con-inner > .e-con-full { width: 100% !important; max-width: 100% !important; }
body.cr-about #cr-why .elementor-heading-title {
  font-family: var(--font-heading) !important; font-weight: 800 !important; text-transform: uppercase;
  letter-spacing: -.02em; line-height: 1.04; font-size: clamp(2.1rem, 5vw, 3.4rem) !important;
  color: var(--a-ink) !important; margin: 0 0 1.1rem; text-wrap: balance;
}
body.cr-about #cr-why .elementor-heading-title::after {
  content: ""; display: block; width: 56px; height: 5px; border-radius: 2px; background: var(--a-yellow); margin-top: 1rem;
}
body.cr-about #cr-why .elementor-widget-text-editor p {
  font-family: var(--font-body); color: var(--a-soft);
  font-size: clamp(1rem, 1.35vw, 1.08rem); line-height: 1.65; margin: 0 0 .9rem; max-width: 60ch;
}
/* why photo (right col, editable bg) framed */
body.cr-about #cr-why > .e-con-inner > .e-con-full:not(:has(.elementor-widget)) {
  align-self: stretch; min-height: clamp(300px, 40vw, 480px);
  border-radius: var(--radius-xl); background-size: cover !important; background-position: center !important;
  box-shadow: 0 26px 64px -34px rgba(10,10,10,.5);
}

/* ════ TEAM — readable coach cards inside the swiper ════ */
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-n-carousel) > .e-con-inner {
  max-width: 1260px; margin-inline: auto;
  padding: clamp(3rem, 7vw, 5.5rem) clamp(1rem, 4vw, 2.5rem) clamp(2.5rem, 6vw, 4rem);
}
/* coach card: centered, small circular avatar (photos are low-res 300×169 →
   a tight circle crop reads better than a stretched landscape banner). */
body.cr-about .elementor-118 .swiper-slide .elementor-author-box {
  background: var(--white); border: 1px solid var(--a-line); border-radius: var(--radius-xl);
  height: 100%; display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: clamp(1.75rem, 3.5vw, 2.5rem) clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.5rem, 3vw, 2rem);
  box-shadow: 0 14px 40px -26px rgba(10,10,10,.32);
  transition: transform .3s ease, box-shadow .3s ease;
}
body.cr-about .elementor-118 .swiper-slide .elementor-author-box:hover {
  transform: translateY(-4px); box-shadow: 0 24px 52px -24px rgba(10,10,10,.42);
}
body.cr-about .elementor-118 .swiper-slide .elementor-author-box__avatar {
  margin: 0 0 1.1rem; width: clamp(116px, 14vw, 144px); height: clamp(116px, 14vw, 144px);
  border-radius: 50%; overflow: hidden; flex: 0 0 auto;
  box-shadow: 0 0 0 4px var(--white), 0 0 0 6px var(--a-yellow);
}
body.cr-about .elementor-118 .swiper-slide .elementor-author-box__avatar img {
  width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50%;
}
body.cr-about .elementor-118 .swiper-slide .elementor-author-box__text { padding: 0; text-align: center; }
body.cr-about .elementor-118 .swiper-slide .elementor-author-box__name {
  font-family: var(--font-heading) !important; font-weight: 800 !important;
  text-transform: uppercase; letter-spacing: -.01em; line-height: 1.16;
  font-size: clamp(1.02rem, 1.5vw, 1.18rem) !important; color: var(--a-ink) !important; margin: 0;
}
/* coach bio (7 of 8 have one): readable, clamped so cards stay uniform */
body.cr-about .elementor-118 .swiper-slide .elementor-author-box__bio {
  font-family: var(--font-body); color: var(--a-soft);
  font-size: .92rem; line-height: 1.55; margin: .65rem 0 0;
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
body.cr-about .elementor-118 .swiper-slide .elementor-author-box__bio,
body.cr-about .elementor-118 .swiper-slide .elementor-author-box__bio * { color: var(--a-soft) !important; }
/* swiper arrows → ink pill, yellow on hover (appearance only; positioning untouched) */
body.cr-about .elementor-118 .elementor-swiper-button {
  width: 46px; height: 46px; border-radius: 999px; background: var(--a-ink); color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 26px -12px rgba(10,10,10,.55); transition: background .2s ease, color .2s ease;
}
body.cr-about .elementor-118 .elementor-swiper-button:hover { background: var(--a-yellow); color: var(--a-ink); }
body.cr-about .elementor-118 .elementor-swiper-button svg { fill: currentColor; width: 18px; height: 18px; }

/* team section title + intro (real translatable widgets inserted into the data,
   before the carousel) — centered, coherent with the other section heads. */
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-n-carousel) .elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-heading) !important; font-weight: 800 !important; text-transform: uppercase;
  letter-spacing: -.02em; line-height: 1.04; font-size: clamp(2.1rem, 5vw, 3.4rem) !important;
  color: var(--a-ink) !important; text-align: center; margin: 0 0 1rem; text-wrap: balance;
}
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-n-carousel) .elementor-widget-heading .elementor-heading-title::after {
  content: ""; display: block; width: 56px; height: 5px; border-radius: 2px;
  background: var(--a-yellow); margin: 1rem auto 0;
}
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-n-carousel) .elementor-widget-text-editor p {
  font-family: var(--font-body); color: var(--a-soft); text-align: center;
  font-size: clamp(1rem, 1.4vw, 1.1rem); line-height: 1.6; max-width: 62ch; margin: 0 auto;
}
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-n-carousel) .elementor-widget-text-editor {
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

/* ════ JOB CTA — "Want to work with us?" as a real CTA block on a dark band ════ */
body.cr-about #cr-jobcta {
  background: var(--a-dark); border-radius: var(--radius-xl); text-align: center;
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
  padding: clamp(2.6rem, 6vw, 4rem) clamp(1.5rem, 5vw, 3rem);
}
/* heading + subline on the dark band → invert to light (override the team title rule) */
body.cr-about #cr-jobcta .elementor-heading-title {
  color: #fff !important; font-size: clamp(1.7rem, 3.6vw, 2.5rem) !important; margin: 0 0 .7rem;
}
body.cr-about #cr-jobcta .elementor-heading-title::after { margin: 1rem auto 0; }
body.cr-about #cr-jobcta .elementor-widget-text-editor { margin-bottom: clamp(1.4rem, 3vw, 2rem); }
body.cr-about #cr-jobcta .elementor-widget-text-editor p {
  color: #d8d6d3 !important; max-width: 48ch; margin: 0 auto;
}
body.cr-about .elementor-118 .elementor-widget-button { text-align: center; margin: 0; }
body.cr-about .elementor-118 .elementor-widget-button .elementor-button {
  background: var(--a-yellow) !important; color: var(--a-ink) !important; border: 0 !important;
  border-radius: 999px !important; font-family: var(--font-heading) !important; font-weight: 800 !important;
  text-transform: uppercase; letter-spacing: .02em; padding: 1.05rem 2.4rem !important;
  font-size: 1.02rem !important;
  box-shadow: 0 14px 34px -12px rgba(255,222,1,.55); transition: transform .2s ease, box-shadow .2s ease;
}
body.cr-about .elementor-118 .elementor-widget-button .elementor-button:hover {
  transform: translateY(-2px); box-shadow: 0 18px 40px -10px rgba(255,222,1,.7);
}

/* ════ NEWSLETTER — removed from the page per client (footer keeps the only
   newsletter signup). Hidden via CSS; the form widget stays in the data,
   delete it in Elementor for a permanent removal. The styling below is inert
   while the section is hidden, kept for easy re-enable. ════ */
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-form) { display: none !important; }
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-form) { background-color: var(--a-yellow) !important; }
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-form) > .e-con-inner {
  max-width: 940px; margin-inline: auto; text-align: center;
  padding: clamp(3rem, 7vw, 5rem) clamp(1.25rem, 4vw, 2.5rem);
}
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-form) .elementor-heading-title {
  font-family: var(--font-heading) !important; font-weight: 800 !important; text-transform: uppercase;
  letter-spacing: -.01em; line-height: 1.05; font-size: clamp(1.85rem, 4vw, 2.8rem) !important;
  color: var(--a-ink) !important; margin: 0 0 .6rem; text-wrap: balance;
}
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-form) .elementor-widget-text-editor,
body.cr-about .elementor-118 .e-con-boxed:has(.elementor-widget-form) .elementor-widget-text-editor p {
  color: #1a1a1a !important; font-family: var(--font-body) !important;
  font-size: clamp(1rem, 1.4vw, 1.1rem); line-height: 1.55; margin: 0 auto; max-width: 52ch;
}
/* inline email + dark pill */
body.cr-about .elementor-118 .elementor-widget-form .elementor-form-fields-wrapper {
  display: flex; gap: .6rem; flex-wrap: wrap; justify-content: center;
  max-width: 540px; margin: 1.6rem auto 0;
}
body.cr-about .elementor-118 .elementor-widget-form .elementor-field-type-email { flex: 1 1 250px; padding: 0; }
body.cr-about .elementor-118 .elementor-widget-form .elementor-field-type-email .elementor-field {
  width: 100%; background: #fff !important; border: 1px solid rgba(10,10,10,.25) !important;
  border-radius: 999px !important; padding: .9rem 1.3rem !important;
  color: var(--a-ink) !important; font-family: var(--font-body) !important;
}
body.cr-about .elementor-118 .elementor-widget-form .elementor-field-type-email .elementor-field:focus {
  outline: none; border-color: var(--a-dark) !important; box-shadow: 0 0 0 3px rgba(10,10,10,.16) !important;
}
body.cr-about .elementor-118 .elementor-widget-form .elementor-field-type-submit { flex: 0 0 auto; padding: 0; }
body.cr-about .elementor-118 .elementor-widget-form .elementor-button {
  background: var(--a-dark) !important; color: #fff !important; border: 0 !important;
  border-radius: 999px !important; font-family: var(--font-heading) !important; font-weight: 800 !important;
  text-transform: uppercase; letter-spacing: .02em; padding: .9rem 1.9rem !important;
  transition: background .2s ease;
}
body.cr-about .elementor-118 .elementor-widget-form .elementor-button:hover { background: #000 !important; }

/* ── responsive ── */
@media (max-width: 900px) {
  /* hero stays full-height on mobile too (svh dodges mobile browser-chrome jump) */
  body.cr-about #cr-hero > .e-con-inner { min-height: 100dvh; }
  /* why: collapse the two columns */
  body.cr-about #cr-why > .e-con-inner { grid-template-columns: 1fr; gap: 1.75rem; }
  body.cr-about #cr-why > .e-con-inner > .e-con-full:not(:has(.elementor-widget)) {
    min-height: clamp(220px, 56vw, 320px);
  }
  /* audience: stack the editorial 2-col */
  body.cr-about #cr-audience .cr-aud { grid-template-columns: 1fr; gap: 2rem; }
  body.cr-about #cr-audience .cr-aud-lead { max-width: none; }
}

/* Kill Elementor gaps in hero columns */
body.cr-about #cr-hero > .e-con-inner,
body.cr-contact #cr-hero > .e-con-inner { row-gap: 0 !important; }
body.cr-about #cr-hero .elementor-widget,
body.cr-contact #cr-hero .elementor-widget { margin-bottom: 0 !important; }
