:root{--m-bg:#070807;--m-ink:#f4f2ed;--m-muted:#b7b1a8;--m-orange:#f46b22;--m-line:rgba(255,255,255,.16)}
body{background:var(--m-bg)}
.home .site-header{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg,rgba(3,5,4,.92),rgba(3,5,4,0));border:0;color:#fff;backdrop-filter:none}.home .brand,.home .primary-nav a,.home .primary-nav span,.home .lang-switcher a{color:#fff}.home .brand img{filter:brightness(0) invert(1)}.home .menu-toggle{color:#fff;border-color:rgba(255,255,255,.35)}
.mystic-home{background:#080908;color:var(--m-ink)}
.mystic-hero{position:relative;min-height:900px;overflow:hidden;background:radial-gradient(circle at 68% 45%,#17130f 0,#090a09 38%,#050606 70%);color:#fff;isolation:isolate}
.mystic-hero-grid{min-height:900px;display:grid;grid-template-columns:minmax(0,.82fr) minmax(560px,1.18fr);gap:42px;align-items:center;padding-top:118px;padding-bottom:110px}
.mystic-hero-copy{position:relative;z-index:4;max-width:650px}.mystic-kicker{color:rgba(255,255,255,.6);margin-bottom:22px}.mystic-hero-copy h1{margin:0;font-size:clamp(3.55rem,5.7vw,6.45rem);line-height:.84;letter-spacing:-.06em;text-transform:uppercase;max-width:9ch}.mystic-hero-copy h1 span,.mystic-hero-copy h1 em{display:block;font-style:normal}.mystic-hero-copy h1 em{color:var(--m-orange)}.mystic-lead{max-width:520px;font-size:clamp(1rem,1.25vw,1.2rem);color:rgba(255,255,255,.72);margin:28px 0 34px}.mystic-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.mystic-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:54px;padding:0 28px;border:1px solid var(--m-orange);border-radius:999px;color:#fff;text-decoration:none;font-weight:800;background:rgba(8,8,8,.34);transition:.25s ease}.mystic-button:hover{background:var(--m-orange);transform:translateY(-2px)}.mystic-button.light{background:#fff;color:#0b0b0b;border-color:#fff}.mystic-text-link{color:#fff;text-decoration:none;font-weight:700}
.mystic-hero-media{position:relative;z-index:2;min-width:0;padding-right:46px}.mystic-hero-media-frame{position:relative;aspect-ratio:16/10;border-radius:30px;overflow:hidden;background:#090909;box-shadow:0 34px 90px rgba(0,0,0,.45);isolation:isolate}.mystic-hero-video,.mystic-hero-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}.mystic-hero-poster{z-index:0}.mystic-hero-video{z-index:1;opacity:1;transition:opacity .8s ease}.mystic-hero.video-finished .mystic-hero-video{opacity:0}.mystic-media-edge{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(4,5,5,.55) 0,transparent 18%,transparent 82%,rgba(4,5,5,.15) 100%),linear-gradient(180deg,rgba(0,0,0,.08),transparent 55%,rgba(0,0,0,.32));}.mystic-media-glow{position:absolute;z-index:3;inset:auto 8% -18% 8%;height:38%;border-radius:50%;background:radial-gradient(circle,rgba(244,107,34,.3),transparent 68%);filter:blur(30px);pointer-events:none}.mystic-side-label{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:18px;writing-mode:vertical-rl;color:rgba(255,255,255,.62);text-transform:uppercase;letter-spacing:.2em;font-size:.65rem}.mystic-side-label span{writing-mode:horizontal-tb}.mystic-side-label i{display:block;width:1px;height:66px;background:rgba(255,255,255,.5)}.mystic-side-label b{font-weight:500}.mystic-scroll{position:absolute;z-index:7;left:max(24px,calc((100vw - min(calc(100% - 48px),1280px))/2));bottom:28px;color:rgba(255,255,255,.68);text-decoration:none;text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;display:flex;align-items:center;gap:14px}.mystic-scroll span{width:42px;height:42px;border:1px solid var(--m-orange);border-radius:50%;display:grid;place-items:center;color:#fff}
.mystic-services,.mystic-andreasso,.mystic-manifesto,.mystic-news,.mystic-cta{padding:120px 0}.mystic-services{background:radial-gradient(circle at 20% 10%,#171714,#080908 54%);border-top:1px solid rgba(255,255,255,.08)}.mystic-section-intro{display:grid;grid-template-columns:.35fr 1fr;gap:50px;align-items:end;margin-bottom:60px}.mystic-section-intro h2,.mystic-manifesto h2,.mystic-cta h2{font-size:clamp(3rem,6.3vw,7rem);line-height:.88;letter-spacing:-.06em;margin:0}.mystic-section-intro>p:last-child{grid-column:2;color:var(--m-muted);max-width:650px;font-size:1.12rem}.mystic-service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--m-line);border-bottom:1px solid var(--m-line)}.mystic-service-card{color:#fff;text-decoration:none;padding:30px 26px 34px;border-right:1px solid var(--m-line);min-height:390px;display:flex;flex-direction:column;position:relative;overflow:hidden}.mystic-service-card:last-child{border-right:0}.mystic-service-card:after{content:"";position:absolute;inset:auto -20% -70% 10%;height:75%;background:radial-gradient(circle,var(--m-orange),transparent 68%);opacity:0;transition:.35s}.mystic-service-card:hover:after{opacity:.22;transform:translateY(-12%)}.mystic-service-card>span{font-size:.7rem;letter-spacing:.18em;color:rgba(255,255,255,.45)}.mystic-service-card h3{font-size:clamp(2rem,3vw,3.4rem);line-height:.95;letter-spacing:-.045em;margin:auto 0 16px}.mystic-service-card p{color:var(--m-muted);max-width:34ch}.mystic-service-card b{margin-top:16px;color:#fff}
.mystic-andreasso{background:#0d0e0c}.mystic-andreasso-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px;align-items:center}.mystic-andreasso-copy h2{font-size:clamp(3rem,5.6vw,6rem);line-height:.9;letter-spacing:-.055em;margin:.15em 0 .3em}.mystic-andreasso-copy>p:not(.eyebrow){color:var(--m-muted);max-width:46ch;font-size:1.1rem}.mystic-andreasso-visual{position:relative;display:block;min-height:620px;border-radius:28px;overflow:hidden;background:#171815}.mystic-andreasso-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.55) contrast(1.06)}.mystic-andreasso-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.75),transparent 55%)}.mystic-andreasso-visual span{position:absolute;z-index:2;right:4%;bottom:8%;background:#050505;color:#fff;padding:18px 28px;transform:rotate(-4deg);font-size:clamp(1.2rem,2vw,2.4rem);text-transform:uppercase}.mystic-andreasso-visual strong{display:block;color:var(--m-orange);font-size:1.7em;line-height:.9}
.mystic-manifesto{background:#e7e2da;color:#111}.mystic-manifesto-grid{display:grid;grid-template-columns:.3fr 1fr;gap:50px}.mystic-manifesto-grid>div>p{max-width:720px;font-size:1.18rem;color:#5d5852}.mystic-news{background:#11120f}.mystic-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.mystic-news-card{border-top:1px solid var(--m-line);padding-top:20px}.mystic-news-image{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:18px;margin-bottom:18px;background:#222}.mystic-news-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.65)}.mystic-news-card h3{font-size:1.7rem;line-height:1.02}.mystic-news-card h3 a,.mystic-all-news a{color:#fff;text-decoration:none}.mystic-news-card>p:last-child{color:var(--m-muted)}.mystic-all-news{margin-top:34px}.mystic-cta{background:var(--m-orange);color:#fff}.mystic-cta-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:end}.mystic-cta-grid p{font-size:1.16rem}
@media(max-width:900px){.home .site-header{position:absolute}.home .header-nav{background:#0b0c0b}.mystic-hero-grid{grid-template-columns:1fr;min-height:100svh;padding-top:130px}.mystic-hero-spacer{display:none}.mystic-final{background-position:66% 50%}.mystic-vignette{background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.7)),linear-gradient(90deg,rgba(0,0,0,.82),transparent)}.mystic-section-intro,.mystic-andreasso-grid,.mystic-manifesto-grid,.mystic-cta-grid{grid-template-columns:1fr;gap:30px}.mystic-section-intro>p:last-child{grid-column:auto}.mystic-service-grid,.mystic-news-grid{grid-template-columns:1fr}.mystic-service-card{border-right:0;border-bottom:1px solid var(--m-line);min-height:280px}.mystic-service-card:last-child{border-bottom:0}.mystic-andreasso-visual{min-height:500px}}
@media(max-width:640px){.mystic-hero-copy h1{font-size:clamp(3rem,14vw,5.4rem)}.mystic-hero-grid{padding-bottom:110px}.mystic-scroll{left:20px}.mystic-services,.mystic-andreasso,.mystic-manifesto,.mystic-news,.mystic-cta{padding:82px 0}.mystic-andreasso-visual{min-height:390px}}
@media(prefers-reduced-motion:reduce){.mystic-frame{display:none}.mystic-final{opacity:1!important;transform:none!important}.mystic-smoke{display:none}.mystic-button,.mystic-service-card:after{transition:none}}

@media(max-width:1100px){.mystic-hero-grid{grid-template-columns:minmax(0,.9fr) minmax(480px,1.1fr);gap:24px}.mystic-hero-copy h1{font-size:clamp(3.25rem,5.4vw,5.4rem)}.mystic-hero-media{padding-right:30px}}
@media(max-width:900px){.home .site-header{position:absolute}.home .header-nav{background:#0b0c0b}.mystic-hero{min-height:auto}.mystic-hero-grid{min-height:auto;grid-template-columns:1fr;gap:44px;padding-top:140px;padding-bottom:120px}.mystic-hero-copy{max-width:720px}.mystic-hero-media{padding-right:0}.mystic-side-label{display:none}.mystic-scroll{bottom:24px}.mystic-hero-media-frame{aspect-ratio:16/10}}
@media(max-width:640px){.mystic-hero-copy h1{font-size:clamp(3rem,14vw,5.1rem)}.mystic-hero-grid{padding-top:122px;padding-bottom:110px}.mystic-hero-media-frame{border-radius:20px;aspect-ratio:4/3}.mystic-scroll{left:20px}}
@media(prefers-reduced-motion:reduce){.mystic-hero-video{display:none}.mystic-button,.mystic-service-card:after{transition:none}}

/* HAHN Mystic hero intro -> final image crossfade -> copy */
.mystic-hero-fullvideo{min-height:100svh;min-height:900px;background:#050606}

/* Phase 0: fullscreen intro video */
.mystic-hero-video-bg{position:absolute;inset:0;z-index:3;background:#050606;opacity:1;visibility:visible;transition:opacity 1.45s cubic-bezier(.4,0,.2,1),visibility 0s linear 1.45s}
.mystic-hero-video-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.mystic-hero-video-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.08));pointer-events:none}

/* Phase 1: final artwork sits behind the video and fades in while the video fades out. */
.mystic-final-stage{position:absolute;inset:0;z-index:2;opacity:0;visibility:hidden;background:#050606;overflow:hidden;transition:opacity 1.45s cubic-bezier(.4,0,.2,1),visibility 0s linear 1.45s}
.mystic-final-image{position:absolute;top:0;right:0;width:72%;height:100%;object-fit:cover;object-position:center center;transform:scale(1.025);filter:brightness(.86) saturate(.94);transition:transform 16s ease-out,filter 1.45s ease;display:block}
.mystic-final-vignette{position:absolute;inset:0;background:linear-gradient(90deg,#050606 0%,#050606 31%,rgba(5,6,6,.96) 40%,rgba(5,6,6,.64) 54%,rgba(5,6,6,.12) 73%,rgba(5,6,6,.12) 100%),linear-gradient(180deg,rgba(5,6,6,.18),transparent 34%,rgba(5,6,6,.28));pointer-events:none}
.mystic-hero-fullvideo.is-image-visible .mystic-final-stage{opacity:1;visibility:visible;transition-delay:0s}
.mystic-hero-fullvideo.is-image-visible .mystic-final-image{transform:scale(1);filter:brightness(1) saturate(1)}
.mystic-hero-fullvideo.is-video-fading .mystic-hero-video-bg{opacity:0;visibility:hidden}

/* Phase 2: headline, copy and controls appear after the video/image crossfade. */
.mystic-hero-fullvideo .mystic-hero-grid{position:relative;z-index:5;grid-template-columns:minmax(0,650px) 1fr}
.mystic-hero-fullvideo .mystic-hero-copy{opacity:0;visibility:hidden;transform:translateY(28px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.2,1),visibility 0s linear 1s}
.mystic-hero-fullvideo .mystic-scroll{opacity:0;visibility:hidden;transition:opacity .7s ease .18s,visibility 0s linear .9s}
.mystic-hero-fullvideo.is-copy-visible .mystic-hero-copy{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.mystic-hero-fullvideo.is-copy-visible .mystic-scroll{opacity:1;visibility:visible}

@media(max-width:900px){
  .mystic-hero-fullvideo{min-height:100svh}
  .mystic-hero-fullvideo .mystic-hero-grid{min-height:100svh;grid-template-columns:1fr}
  .mystic-final-image{width:100%;opacity:.60;object-position:68% center}
  .mystic-final-vignette{background:linear-gradient(90deg,rgba(5,6,6,.94),rgba(5,6,6,.58)),linear-gradient(180deg,rgba(5,6,6,.24),rgba(5,6,6,.66))}
}

@media(prefers-reduced-motion:reduce){
  .mystic-hero-fullvideo .mystic-hero-video-bg{display:none}
  .mystic-final-stage,.mystic-hero-fullvideo .mystic-hero-copy,.mystic-hero-fullvideo .mystic-scroll{opacity:1!important;visibility:visible!important;transform:none!important}
  .mystic-final-image{transform:none!important;filter:none!important}
}

/* ==========================================================================
   v0.9 – Fix: WordPress body carries class "home" on subpages too.
   Therefore do NOT scope dark subpage readability with body:not(.home).
   ========================================================================== */

/* Standard dark page heroes (News, service pages, etc.) */
.page-hero,
.news-hero {
  background:#050606;
  color:#f4f2ed;
}

.page-hero h1,
.page-hero h2,
.page-hero h3,
.news-hero h1,
.news-hero h2,
.news-hero h3 {
  color:#f4f2ed !important;
}

.page-hero .eyebrow,
.news-hero .eyebrow {
  color:rgba(255,255,255,.48) !important;
}

.page-hero p,
.page-hero .news-lead,
.news-hero p,
.news-hero .news-lead {
  color:rgba(255,255,255,.72) !important;
}

/* Header/navigation: Mystic pages use a dark header */
.wp-child-theme-hahn-mystic .site-header {
  background:#050606;
  color:#fff;
  border-color:rgba(255,255,255,.08);
}

.wp-child-theme-hahn-mystic .site-header .brand,
.wp-child-theme-hahn-mystic .site-header .primary-nav a,
.wp-child-theme-hahn-mystic .site-header .primary-nav span,
.wp-child-theme-hahn-mystic .site-header .lang-switcher a,
.wp-child-theme-hahn-mystic .site-header .menu-toggle {
  color:#fff !important;
}

.wp-child-theme-hahn-mystic .site-header .brand img {
  filter:brightness(0) invert(1);
}

/* Contact pages – independent of the incorrect "home" body class */
.page-template-page-contact main,
.page-contact main,
.contact-page,
.contact-section,
.contact-hero {
  color:#f4f2ed;
}

.page-template-page-contact main h1,
.page-template-page-contact main h2,
.page-template-page-contact main h3,
.page-template-page-contact main h4,
.page-template-page-contact main h5,
.page-template-page-contact main h6,
.page-template-page-contact main label,
.page-template-page-contact main legend,
.page-template-page-contact main strong,
.page-template-page-contact main a,
.contact-page h1,
.contact-page h2,
.contact-page h3,
.contact-page label,
.contact-section h1,
.contact-section h2,
.contact-section h3,
.contact-section label,
.contact-hero h1,
.contact-hero h2,
.contact-hero h3 {
  color:#f4f2ed !important;
}

.page-template-page-contact main p,
.page-template-page-contact main .eyebrow,
.page-template-page-contact main small,
.contact-page p,
.contact-page .eyebrow,
.contact-section p,
.contact-section .eyebrow,
.contact-hero p,
.contact-hero .eyebrow {
  color:rgba(255,255,255,.72) !important;
}

/* Ninja Forms / generic form labels on dark contact areas */
.nf-form-cont label,
.nf-form-cont .nf-field-label,
.nf-form-cont .nf-field-label label,
.contact-section label,
.contact-page label {
  color:#f4f2ed !important;
}

.nf-form-cont input,
.nf-form-cont textarea,
.nf-form-cont select {
  background:#fff;
  color:#111 !important;
}

/* ==========================================================================
   v1.0 – Navigation dropdown readability
   ========================================================================== */

/* Main navigation remains white on the dark header */
.wp-child-theme-hahn-mystic .site-header .primary-nav > ul > li > a,
.wp-child-theme-hahn-mystic .site-header .primary-nav > ul > li > span {
  color:#fff !important;
}

/* Dropdown / submenu uses a light panel, therefore text must be dark */
.wp-child-theme-hahn-mystic .site-header .primary-nav .sub-menu,
.wp-child-theme-hahn-mystic .site-header .primary-nav ul ul {
  background:#f4f1eb;
  color:#111;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 18px 50px rgba(0,0,0,.28);
}

.wp-child-theme-hahn-mystic .site-header .primary-nav .sub-menu a,
.wp-child-theme-hahn-mystic .site-header .primary-nav .sub-menu span,
.wp-child-theme-hahn-mystic .site-header .primary-nav ul ul a,
.wp-child-theme-hahn-mystic .site-header .primary-nav ul ul span {
  color:#171717 !important;
}

.wp-child-theme-hahn-mystic .site-header .primary-nav .sub-menu a:hover,
.wp-child-theme-hahn-mystic .site-header .primary-nav .sub-menu a:focus,
.wp-child-theme-hahn-mystic .site-header .primary-nav ul ul a:hover,
.wp-child-theme-hahn-mystic .site-header .primary-nav ul ul a:focus {
  color:var(--m-orange) !important;
  background:rgba(0,0,0,.035);
}

/* Keep nested dropdown arrows/icons dark as well */
.wp-child-theme-hahn-mystic .site-header .primary-nav .sub-menu svg,
.wp-child-theme-hahn-mystic .site-header .primary-nav ul ul svg {
  color:#171717;
  fill:currentColor;
}

/* ==========================================================================
   v1.1 – Contact page readability
   Detect the actual contact page by the Ninja Forms container instead of
   relying on WordPress body/page-id classes.
   ========================================================================== */

main:has(.nf-form-cont) {
  background:#050606;
  color:#f4f2ed;
}

/* Contact intro / address column */
main:has(.nf-form-cont) h1,
main:has(.nf-form-cont) h2,
main:has(.nf-form-cont) h3,
main:has(.nf-form-cont) h4,
main:has(.nf-form-cont) h5,
main:has(.nf-form-cont) h6,
main:has(.nf-form-cont) strong,
main:has(.nf-form-cont) a {
  color:#f4f2ed !important;
}

main:has(.nf-form-cont) p,
main:has(.nf-form-cont) address,
main:has(.nf-form-cont) small,
main:has(.nf-form-cont) .eyebrow {
  color:rgba(255,255,255,.72) !important;
}

/* Form labels and helper/error text */
main:has(.nf-form-cont) .nf-form-cont,
main:has(.nf-form-cont) .nf-form-cont label,
main:has(.nf-form-cont) .nf-form-cont .nf-field-label,
main:has(.nf-form-cont) .nf-form-cont .nf-field-label label,
main:has(.nf-form-cont) .nf-form-cont .nf-field-description,
main:has(.nf-form-cont) .nf-form-cont .nf-error-msg,
main:has(.nf-form-cont) .nf-form-cont .nf-form-fields-required {
  color:#f4f2ed !important;
}

/* Keep actual input content dark on white fields */
main:has(.nf-form-cont) .nf-form-cont input,
main:has(.nf-form-cont) .nf-form-cont textarea,
main:has(.nf-form-cont) .nf-form-cont select {
  background:#fff;
  color:#111 !important;
}

main:has(.nf-form-cont) .nf-form-cont input::placeholder,
main:has(.nf-form-cont) .nf-form-cont textarea::placeholder {
  color:#777 !important;
}

/* Buttons should remain clearly visible */
main:has(.nf-form-cont) .nf-form-cont input[type="button"],
main:has(.nf-form-cont) .nf-form-cont input[type="submit"],
main:has(.nf-form-cont) .nf-form-cont button {
  background:var(--m-orange);
  color:#fff !important;
  border-color:var(--m-orange);
}

/* ==========================================================================
   v1.2 – Contact page: actual template classes
   ========================================================================== */

.contact-hero {
  background:#050606;
  color:#f4f2ed;
}

.contact-hero h1,
.contact-hero h2,
.contact-hero h3,
.contact-hero p,
.contact-hero .eyebrow {
  color:#f4f2ed !important;
}

/* Actual contact content container from the template */
.contact-grid,
.contact-grid > div {
  color:#f4f2ed;
}

.contact-grid h2,
.contact-grid h3,
.contact-grid h4,
.contact-grid strong,
.contact-grid a,
.contact-grid label,
.contact-grid legend {
  color:#f4f2ed !important;
}

.contact-grid p,
.contact-grid .contact-big,
.contact-grid address,
.contact-grid small {
  color:rgba(255,255,255,.72) !important;
}

/* Make company name fully bright */
.contact-grid h2 {
  color:#f4f2ed !important;
}

/* Form labels / Ninja Forms */
.contact-grid .nf-form-cont,
.contact-grid .nf-form-cont label,
.contact-grid .nf-form-cont .nf-field-label,
.contact-grid .nf-form-cont .nf-field-label label,
.contact-grid .nf-form-cont .nf-field-description,
.contact-grid .nf-form-cont .nf-form-fields-required {
  color:#f4f2ed !important;
}

/* Inputs stay light */
.contact-grid .nf-form-cont input,
.contact-grid .nf-form-cont textarea,
.contact-grid .nf-form-cont select {
  background:#fff !important;
  color:#111 !important;
}

.contact-grid .nf-form-cont input::placeholder,
.contact-grid .nf-form-cont textarea::placeholder {
  color:#777 !important;
}

/* ==========================================================================
   v1.3 – Legal / Impressum / AGB readability
   Actual template uses .prose.legal-prose on a dark section.
   ========================================================================== */

.legal-prose {
  color:#f4f2ed;
}

.legal-prose h1,
.legal-prose h2,
.legal-prose h3,
.legal-prose h4,
.legal-prose h5,
.legal-prose h6,
.legal-prose strong,
.legal-prose b,
.legal-prose a,
.legal-prose li::marker {
  color:#f4f2ed !important;
}

.legal-prose p,
.legal-prose li,
.legal-prose blockquote,
.legal-prose small,
.legal-prose .wp-block-paragraph {
  color:rgba(255,255,255,.74) !important;
}

.legal-prose a {
  text-decoration-color:rgba(255,255,255,.5);
}

.legal-prose a:hover,
.legal-prose a:focus {
  color:var(--m-orange) !important;
  text-decoration-color:var(--m-orange);
}

/* Generic prose only when it explicitly carries the legal-prose class.
   Do not affect light editorial prose elsewhere. */
.section:has(.legal-prose) {
  background:#050606;
  color:#f4f2ed;
}

/* ==========================================================================
   v1.4 – Service page readability
   Parent template uses .service-hero, .service-layout, .service-intro-big,
   .capability-list and .service-process.
   ========================================================================== */

.service-hero {
  background:#11110f;
  color:#fff;
}
.service-hero h1,
.service-hero .eyebrow {
  color:#fff !important;
}
.service-hero .service-lead {
  color:rgba(255,255,255,.74) !important;
}

.service-layout {
  color:#f4f2ed;
}

.service-layout .service-intro-big {
  color:#f4f2ed !important;
}

.service-layout .prose,
.service-layout .prose p,
.service-layout .prose li,
.service-layout p,
.service-layout li {
  color:rgba(255,255,255,.74) !important;
}

.service-layout h2,
.service-layout h3,
.service-layout h4,
.service-layout strong,
.service-layout b,
.service-layout a {
  color:#f4f2ed;
}

.capability-list {
  color:#f4f2ed;
}
.capability-list li {
  color:rgba(255,255,255,.78) !important;
  border-color:rgba(255,255,255,.16) !important;
}
.capability-list li::before {
  color:rgba(255,255,255,.45) !important;
}

.service-process,
.service-process .section-heading,
.service-process .process-grid {
  color:#f4f2ed;
}
.service-process .eyebrow {
  color:rgba(255,255,255,.50) !important;
}
.service-process h2,
.service-process h3 {
  color:#f4f2ed !important;
}
.service-process p,
.service-process .service-closing {
  color:rgba(255,255,255,.74) !important;
}
.process-grid article {
  border-color:rgba(255,255,255,.18) !important;
}
.process-grid span {
  color:rgba(255,255,255,.45) !important;
}

/* ==========================================================================
   v1.5 – Unify legacy gold/yellow accents with Mystic orange
   Mystic orange used throughout the theme/footer: #f46b22
   ========================================================================== */

:root {
  --m-orange:#f46b22;
}

/* Legacy content often carries the old HAHN gold directly as inline CSS. */
[style*="#c18d25" i],
[style*="rgb(193, 141, 37)" i],
[style*="rgb(193,141,37)" i] {
  color:#f46b22 !important;
}

/* Old gold used as backgrounds / rules / borders */
[style*="background-color: #c18d25" i],
[style*="background:#c18d25" i],
[style*="background: #c18d25" i] {
  background-color:#f46b22 !important;
}

[style*="border-color: #c18d25" i],
[style*="border-top-color: #c18d25" i],
[style*="border-bottom-color: #c18d25" i] {
  border-color:#f46b22 !important;
}

/* WordPress / legacy primary-color helpers */
.uk-text-primary,
.uk-text-primary *,
.h-title,
.has-luminous-vivid-amber-color {
  color:#f46b22 !important;
}

.has-luminous-vivid-amber-background-color {
  background-color:#f46b22 !important;
}

.has-luminous-vivid-amber-border-color {
  border-color:#f46b22 !important;
}

/* Service pages: all intentional accent headings/labels use Mystic orange */
.service-layout .prose h2,
.service-layout .prose h3,
.service-layout .prose h4,
.service-layout .prose strong[style*="color" i],
.service-layout .prose b[style*="color" i],
.service-layout .uk-text-primary,
.service-layout .h-title {
  color:#f46b22 !important;
}

/* Horizontal accent rules in preserved service content */
.service-layout hr,
.service-layout [class*="divider"],
.service-layout [class*="separator"] {
  border-color:#f46b22 !important;
}

/* Preserve readable body copy on the dark service background. */
.service-layout .prose p,
.service-layout .prose li {
  color:rgba(255,255,255,.74) !important;
}

/* ==========================================================================
   v1.6 – Replace remaining legacy gold service divider with Mystic orange
   ========================================================================== */

.service-layout hr,
.service-layout .wp-block-separator,
.service-layout [class*="divider"],
.service-layout [class*="separator"] {
  border-color:#f46b22 !important;
  background:#f46b22 !important;
  background-color:#f46b22 !important;
  color:#f46b22 !important;
}

/* Catch decorative rules implemented as pseudo-elements */
.service-layout hr::before,
.service-layout hr::after,
.service-layout [class*="divider"]::before,
.service-layout [class*="divider"]::after,
.service-layout [class*="separator"]::before,
.service-layout [class*="separator"]::after {
  background:#f46b22 !important;
  background-color:#f46b22 !important;
  border-color:#f46b22 !important;
}

/* ==========================================================================
   v1.7 – Legacy stroke.svg accent
   The service divider is an image (/uploads/2019/12/stroke.svg), not a CSS
   border/background. Recolor it to Mystic orange with a CSS filter.
   ========================================================================== */

.service-overview .service-layout .prose img[src*="/stroke.svg"],
.service-overview .service-layout .prose img[src$="stroke.svg"] {
  /* #f46b22 */
  filter: brightness(0) saturate(100%) invert(50%) sepia(96%) saturate(2881%)
          hue-rotate(349deg) brightness(101%) contrast(92%) !important;
}

