/* SafaSoch shared CSS: original cascade order preserved. */
/* Source: assets/css/v14-7-visual-identity.css */
/* SafaSoch V14.7 base visual identity */
:root{--ss147-cream:#f5efe4;--ss147-paper:#fbf8f1;--ss147-green:#0b3d2e;--ss147-ink:#10261f;--ss147-gold:#d5a43b;--ss147-line:rgba(16,38,31,.15);--ss147-muted:#60716b}
body{background:var(--ss147-paper);color:var(--ss147-ink)}
::selection{background:var(--ss147-gold);color:var(--ss147-green)}
figure img{display:block;max-width:100%}figcaption{color:var(--ss147-muted);font-size:12px;line-height:1.55;letter-spacing:.07em;text-transform:uppercase}
.ss1315-desktop-wa{display:none!important}.ss-social-rail{opacity:.58!important;transform:scale(.84)!important;transform-origin:right center!important}.ss-social-rail:hover{opacity:1!important}
@media(max-width:900px){.ss-social-rail{display:none!important}}


/* Source: assets/css/v14-7-1-global-consistency.css */
/* SafaSoch V14.7.1 — Global Visual Consistency */
/* Same public header everywhere */
body:not(.v15-app-mode){padding-top:0!important}
.ss143-header{position:relative!important;top:auto!important;left:auto!important;right:auto!important;z-index:1000!important;background:#fbf8f1!important;border-bottom:1px solid rgba(16,38,31,.12)!important;box-shadow:none!important}
.ss143-row{min-height:94px!important;display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto!important;gap:clamp(20px,2.2vw,38px)!important;align-items:center!important}
.ss143-mobile{display:inline-grid!important;place-items:center!important;width:46px!important;height:46px!important;border:1px solid rgba(16,38,31,.18)!important;border-radius:50%!important;background:transparent!important;color:#123d2c!important}
.ss143-brand{display:block!important}.ss143-brand img{display:block!important;width:150px!important;height:auto!important}
.ss143-nav{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:34px!important}
.ss143-nav a{font-size:14px!important;font-weight:700!important;color:#123d2c!important;text-decoration:none!important}
.ss143-actions{display:flex!important;align-items:center!important;gap:18px!important}
.ss143-lang{font-weight:750!important;color:#123d2c!important;text-decoration:none!important}
.ss143-cta{display:inline-flex!important;align-items:center!important;min-height:52px!important;padding:0 22px!important;border-radius:999px!important;background:#0b3d2e!important;color:#fff!important;text-decoration:none!important;font-weight:800!important}
/* Training page: editorial 55/45 hero using real SafaSoch photography */
.page-training .breadcrumbs{background:#fbf8f1!important;margin-top:0!important;padding-top:14px!important;padding-bottom:14px!important}
.page-training .training-hero{background:#f5efe4!important;padding:68px 0 76px!important;border-bottom:1px solid rgba(16,38,31,.12)!important}
.page-training .training-hero .hero-grid{display:grid!important;grid-template-columns:minmax(0,55%) minmax(0,45%)!important;gap:clamp(36px,5vw,78px)!important;align-items:center!important}
.page-training .training-hero .eyebrow{color:#8b6518!important;letter-spacing:.13em!important}
.page-training .training-hero h1{max-width:760px!important;margin:14px 0 22px!important;font-family:Georgia,"Times New Roman",serif!important;font-size:clamp(54px,5.2vw,82px)!important;font-weight:500!important;line-height:.96!important;letter-spacing:-.055em!important;color:#0b3d2e!important;text-wrap:balance!important}
.page-training .training-hero .lead{max-width:690px!important;font-size:18px!important;line-height:1.62!important;color:#41574f!important}
.page-training .training-hero img{width:100%!important;height:clamp(480px,48vw,690px)!important;object-fit:cover!important;object-position:center!important;border-radius:2px!important;filter:saturate(.94) contrast(1.02)!important}
.page-training .training-hero .actions{display:flex!important;gap:12px!important;flex-wrap:wrap!important;margin-top:28px!important}
.page-training .training-hero .button.primary{background:#d5a43b!important;color:#123d2c!important;border-color:#d5a43b!important}
.page-training .section-heading h2,.page-training .center h2{letter-spacing:-.035em!important}
.page-training .ssmedia24-training-band{background:#0b3d2e!important}
@media(max-width:1120px){.ss143-nav{display:none!important}.ss143-row{grid-template-columns:auto auto 1fr auto!important}}
@media(max-width:760px){
 .ss143-row{min-height:74px!important;grid-template-columns:auto 1fr auto!important;gap:12px!important;padding-left:14px!important;padding-right:14px!important}
 .ss143-brand img{width:124px!important}.ss143-actions .ss143-lang{display:none!important}.ss143-cta{min-height:44px!important;padding:0 14px!important;font-size:13px!important}
 .page-training .training-hero{padding:42px 0 56px!important}
 .page-training .training-hero .hero-grid{grid-template-columns:1fr!important;gap:28px!important}
 .page-training .training-hero h1{font-size:clamp(45px,13vw,64px)!important}
 .page-training .training-hero img{height:72vw!important;min-height:310px!important;max-height:520px!important}
}


/* Source: assets/css/v14-8-4-mobile-global-fix.css */
/* SafaSoch V14.8.4 — Mobile Global Fix
   Final cascade guard for public pages. Prevents late desktop grid rules from
   collapsing text columns on phones and normalises responsive content. */

html,body{max-width:100%;overflow-x:clip}
body.ss-brand-system main,body.ss-brand-system main>*{min-width:0}
body.ss-brand-system img,body.ss-brand-system video,body.ss-brand-system iframe{max-width:100%;height:auto}
body.ss-brand-system :where(h1,h2,h3,h4,p,li,a,span,strong){overflow-wrap:normal;word-break:normal}

@media(max-width:1060px){
  /* Important: these selectors intentionally match/exceed late desktop specificity. */
  body.ss-brand-system .sector-hero-grid,
  body.ss-brand-system .hero-grid,
  body.ss-brand-system .two-col,
  body.ss-brand-system .process-grid,
  body.ss-brand-system .article-layout,
  body.ss-brand-system .image-story,
  body.ss-brand-system .journey,
  body.ss-brand-system .proof,
  body.ss-brand-system .form-layout,
  body.ss-brand-system .content{grid-template-columns:minmax(0,1fr)!important}

  body.ss-brand-system .sector-hero-grid>* ,
  body.ss-brand-system .hero-grid>* ,
  body.ss-brand-system .two-col>* ,
  body.ss-brand-system .process-grid>* ,
  body.ss-brand-system .article-layout>* ,
  body.ss-brand-system .image-story>* ,
  body.ss-brand-system .journey>* ,
  body.ss-brand-system .proof>* ,
  body.ss-brand-system .form-layout>* ,
  body.ss-brand-system .content>*{min-width:0!important;max-width:100%}

  body.ss-brand-system .sector-hero-grid>img{width:100%;max-height:480px;object-fit:cover}
}

@media(max-width:760px){
  body.ss-brand-system .shell,
  body.hi-body .shell{width:calc(100% - 28px)!important;max-width:none!important;margin-inline:auto!important}

  /* Public header stays inside even narrow iPhones. */
  body.ss-brand-system .ss143-row{width:100%!important;min-height:74px!important;grid-template-columns:46px minmax(0,1fr) auto!important;gap:10px!important;padding-inline:14px!important}
  body.ss-brand-system .ss143-mobile{width:44px!important;height:44px!important;min-width:44px!important;padding:0!important}
  body.ss-brand-system .ss143-brand{min-width:0!important;justify-self:start!important}
  body.ss-brand-system .ss143-brand img{width:118px!important;max-width:100%!important}
  body.ss-brand-system .ss143-actions{min-width:0!important;gap:0!important}
  body.ss-brand-system .ss143-actions .ss143-lang{display:none!important}
  body.ss-brand-system .ss143-cta{min-height:44px!important;padding:0 13px!important;font-size:12px!important;white-space:nowrap!important}

  body.ss-brand-system .breadcrumbs{width:100%!important;max-width:100%!important;padding:12px 14px!important;margin:0!important;display:flex!important;gap:8px!important;overflow-x:auto!important;white-space:nowrap!important;-webkit-overflow-scrolling:touch}
  body.ss-brand-system .breadcrumbs a{flex:0 0 auto!important}

  /* Critical fix for authority/sector pages: late desktop CSS previously restored a
     minmax(360px) image column after the mobile breakpoint, squeezing copy to ~1 char. */
  body.ss-brand-system .sector-hero-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:26px!important;width:100%!important}
  body.ss-brand-system .sector-hero-grid>div{width:100%!important;min-width:0!important}
  body.ss-brand-system .sector-hero{padding:38px 0 46px!important;min-height:0!important}
  body.ss-brand-system .sector-hero h1{width:auto!important;max-width:100%!important;font-size:clamp(40px,12vw,54px)!important;line-height:.98!important;letter-spacing:-.045em!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;text-wrap:balance}
  body.ss-brand-system .sector-hero .eyebrow{display:block!important;width:auto!important;max-width:100%!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;line-height:1.45!important}
  body.ss-brand-system .sector-hero .lead{max-width:100%!important}
  body.ss-brand-system .sector-hero .actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin:24px 0!important}
  body.ss-brand-system .sector-hero .button{width:100%!important;white-space:normal!important;text-align:center!important}
  body.ss-brand-system .sector-facts{display:flex!important;flex-wrap:wrap!important;gap:7px!important}
  body.ss-brand-system .sector-hero-grid>img{width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:4/3!important;object-fit:cover!important;border-radius:18px!important}

  body.ss-brand-system :where(.module-grid,.solution-grid,.evidence-grid,.faq-grid,.course-grid,.path-grid,.cards.six,.cards.three,.target-grid,.authority-grid,.flow,.method,.sach){grid-template-columns:minmax(0,1fr)!important}
  body.ss-brand-system :where(.module-grid,.solution-grid,.evidence-grid,.faq-grid,.course-grid,.path-grid,.cards,.target-grid,.authority-grid)>*{min-width:0!important}

  body.ss-brand-system .section-heading{display:block!important}
  body.ss-brand-system .section-heading>*{max-width:100%!important}
  body.ss-brand-system .section-heading h2{max-width:100%!important}

  body.ss-brand-system .form-row,
  body.ss-brand-system .form-layout form{grid-template-columns:minmax(0,1fr)!important}
  body.ss-brand-system input,body.ss-brand-system select,body.ss-brand-system textarea{max-width:100%!important}

  body.ss-brand-system .gallery,body.ss-brand-system .video-block{grid-template-columns:minmax(0,1fr)!important}
  body.ss-brand-system .gallery img{height:auto!important;aspect-ratio:4/3;object-fit:cover}

  body.ss-brand-system .final-cta>.shell,
  body.ss-brand-system .closing-grid,
  body.ss-brand-system .cta{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:20px!important}

  body.ss-brand-system table{max-width:100%}
  body.ss-brand-system .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* Keep fixed conversion UI clear of iOS safe areas and viewport edges. */
  body.ss-brand-system :where(.wa,.whatsapp-float){right:max(14px,env(safe-area-inset-right))!important;bottom:max(14px,env(safe-area-inset-bottom))!important}
}

@media(max-width:390px){
  body.ss-brand-system .ss143-row{grid-template-columns:42px minmax(0,1fr) auto!important;gap:7px!important;padding-inline:10px!important}
  body.ss-brand-system .ss143-mobile{width:42px!important;height:42px!important;min-width:42px!important}
  body.ss-brand-system .ss143-brand img{width:105px!important}
  body.ss-brand-system .ss143-cta{padding-inline:10px!important;font-size:11px!important}
  body.ss-brand-system .sector-hero h1{font-size:clamp(37px,11.5vw,46px)!important}
}


/* Source: assets/css/v14.9-global-visual-system.css */

/* SafaSoch V14.9 — Global Visual System
   Visual-only enhancement. Preserves V14.8.5 SEO/canonical architecture. */
:root{
  --ss-green:#063f34;
  --ss-green-2:#0b5142;
  --ss-ink:#102f29;
  --ss-ivory:#f7f3e8;
  --ss-paper:#fffdf7;
  --ss-gold:#e9aa32;
  --ss-gold-soft:#f3c566;
  --ss-muted:#66756f;
  --ss-line:rgba(16,47,41,.14);
  --ss-radius:22px;
  --ss-radius-sm:14px;
  --ss-shadow:0 16px 45px rgba(6,63,52,.09);
  --ss-max:1320px;
}
html{scroll-behavior:smooth}
body{background:var(--ss-paper);color:var(--ss-ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,iframe{max-width:100%;height:auto}
main{overflow:clip}
.container,.wrap,.site-container,.section-inner{max-width:var(--ss-max);margin-inline:auto}

/* HEADER — one premium visual language */
header,.site-header,.main-header{
  background:rgba(255,253,247,.96)!important;
  border-bottom:1px solid var(--ss-line)!important;
  box-shadow:0 8px 28px rgba(6,63,52,.045);
  backdrop-filter:saturate(150%) blur(14px);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
}
header a,.site-header a,.main-header a{transition:color .2s ease,background .2s ease,transform .2s ease}
header nav a,.site-header nav a,.main-header nav a{color:var(--ss-ink)}
header nav a:hover,.site-header nav a:hover,.main-header nav a:hover{color:var(--ss-green-2)}
header img[alt*="logo" i],.site-header img,.main-header img{max-height:58px;width:auto}

/* BUTTONS */
:is(a,button,input[type=submit]).btn,
:is(a,button).button,
:is(a,button).cta,
a[href*="contact"],a[href*="booking"]{
  border-radius:999px;
}
.btn-primary,.button-primary,.cta-primary{
  background:var(--ss-green)!important;color:#fff!important;border-color:var(--ss-green)!important;
  box-shadow:0 10px 24px rgba(6,63,52,.14);
}
.btn-primary:hover,.button-primary:hover,.cta-primary:hover{transform:translateY(-1px)}
.btn-accent,.button-accent{background:var(--ss-gold)!important;color:var(--ss-ink)!important}

/* TYPOGRAPHY + SECTIONS */
h1,h2,h3{color:inherit;text-wrap:balance}
h1{letter-spacing:-.035em}
h2{letter-spacing:-.025em}
p{line-height:1.68}
section{position:relative}
section:not(.hero):not([class*="hero"]){scroll-margin-top:100px}
.eyebrow,.kicker,.overline{letter-spacing:.16em;text-transform:uppercase;font-weight:700}

/* CARDS / CONTENT SURFACES */
.card,[class*="-card"],.panel,.feature,.service-card,.training-card{
  border-radius:var(--ss-radius);
}
.card,.panel,.feature,.service-card,.training-card{
  border:1px solid var(--ss-line);
  box-shadow:var(--ss-shadow);
}
.card img,[class*="-card"] img{border-radius:calc(var(--ss-radius) - 5px)}

/* HERO */
.hero,[class*="hero"]{isolation:isolate}
.hero h1,[class*="hero"] h1{max-width:16ch}
.hero p,[class*="hero"] p{max-width:68ch}
.hero img,[class*="hero"] img{object-fit:cover}

/* BREADCRUMBS */
.breadcrumb,.breadcrumbs,[aria-label="breadcrumb"]{
  font-size:.94rem;color:var(--ss-muted);
  overflow-x:auto;white-space:nowrap;scrollbar-width:none;
}
.breadcrumb::-webkit-scrollbar,.breadcrumbs::-webkit-scrollbar{display:none}

/* FORMS */
input,select,textarea{
  border-radius:12px!important;
  border:1px solid rgba(16,47,41,.22)!important;
  background:#fff!important;
}
input:focus,select:focus,textarea:focus{
  outline:3px solid rgba(233,170,50,.22)!important;
  border-color:var(--ss-gold)!important;
}

/* FOOTER — premium global treatment without changing semantic content */
footer,.site-footer,.main-footer{
  background:var(--ss-green)!important;
  color:var(--ss-ivory)!important;
  border-top:1px solid rgba(255,255,255,.12);
}
footer a,.site-footer a,.main-footer a{color:rgba(255,253,247,.88)!important;text-decoration:none}
footer a:hover,.site-footer a:hover,.main-footer a:hover{color:var(--ss-gold-soft)!important}
footer h2,footer h3,footer h4,.site-footer h2,.site-footer h3,.site-footer h4{color:#fff!important}
footer hr,.site-footer hr{border-color:rgba(255,255,255,.14)}
footer img{max-height:68px;width:auto}

/* Accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--ss-gold)!important;outline-offset:3px;
}

/* TABLET */
@media (max-width:1024px){
  :root{--ss-radius:18px}
  header,.site-header,.main-header{min-height:auto}
  .container,.wrap,.site-container,.section-inner{padding-inline:24px}
  .hero h1,[class*="hero"] h1{max-width:18ch}
}

/* MOBILE GLOBAL GUARD */
@media (max-width:767px){
  html,body{max-width:100%;overflow-x:hidden}
  .container,.wrap,.site-container,.section-inner{width:100%;padding-inline:18px}
  header,.site-header,.main-header{padding-inline:0!important}
  header img[alt*="logo" i],.site-header img,.main-header img{max-height:46px}
  h1{font-size:clamp(2.15rem,10vw,3.4rem)!important;line-height:1.02!important}
  h2{font-size:clamp(1.7rem,7.5vw,2.55rem)!important;line-height:1.08!important}
  h3{line-height:1.18}
  h1,h2,h3,p,a,span,strong{
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  .hero h1,[class*="hero"] h1,.hero p,[class*="hero"] p{max-width:100%!important}
  .hero-grid,.sector-hero-grid,.two-col,.two-column,.split,.grid-2,.columns-2{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .hero-grid>*,.sector-hero-grid>*,.two-col>*,.two-column>*,.split>*,.grid-2>*,.columns-2>*{
    min-width:0!important;width:auto!important;max-width:100%!important;
  }
  .card,[class*="-card"],.panel,.feature,.service-card,.training-card{border-radius:16px}
  footer,.site-footer,.main-footer{padding-bottom:max(28px,env(safe-area-inset-bottom))}
  footer .container,footer .wrap,.site-footer .container{padding-inline:20px}
}

/* SMALL PHONE */
@media (max-width:390px){
  .container,.wrap,.site-container,.section-inner{padding-inline:16px}
  h1{font-size:clamp(2rem,10.5vw,2.8rem)!important}
  .btn,.button,.cta,button{max-width:100%}
}


/* Source: assets/css/v14.9.1-visual-consistency-mobile-polish.css */

/* SafaSoch V14.9.1 — Visual Consistency & Mobile Polish
   Presentation-only patch. V14.8.5 SEO/canonical signals remain unchanged. */
:root{
  --ss941-green:#063f34;
  --ss941-green-dark:#04382f;
  --ss941-ivory:#fbf8f0;
  --ss941-gold:#e5ad39;
  --ss941-ink:#14362f;
  --ss941-muted-light:#cbd7d1;
  --ss941-line:rgba(20,54,47,.14);
}

/* ---------- Legacy/static pages: make header match the main site ---------- */
body > header .header-inner{
  min-height:96px;
  display:flex;
  align-items:center;
  gap:24px;
}
body > header .brand{
  width:220px!important;
  height:auto!important;
  min-height:54px;
  overflow:visible!important;
  display:flex!important;
  align-items:center;
}
body > header .brand img{
  position:static!important;
  inset:auto!important;
  width:220px!important;
  max-width:100%!important;
  max-height:64px!important;
  height:auto!important;
  object-fit:contain!important;
}
body > header nav a:last-child,
body > header .business-call{
  border-radius:999px!important;
  padding:13px 22px!important;
  background:var(--ss941-green)!important;
  color:#fff!important;
}

/* ---------- Footer repair / consistency ---------- */
footer .brand{
  width:220px!important;
  height:auto!important;
  min-height:52px;
  overflow:visible!important;
  display:flex!important;
  align-items:center;
}
footer .brand img{
  position:static!important;
  inset:auto!important;
  width:220px!important;
  max-width:100%!important;
  max-height:70px!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:left center!important;
  border-radius:0!important;
}
/* Square legacy footer logo: keep it compact instead of showing a white slab */
footer .brand img[src*="original-logo"]{
  width:72px!important;
  height:72px!important;
  object-fit:contain!important;
  background:transparent!important;
}
footer .small,
footer .muted,
footer [class*="tagline"],
.ss1316a-footer p,
.ss1316a-footer span{
  color:rgba(255,253,247,.78)!important;
}
footer p, footer li{color:rgba(255,253,247,.88)}
footer .footer-bottom,
footer .ss1316a-footer-bottom{
  border-color:rgba(255,255,255,.18)!important;
}

/* ---------- Dark section contrast fixes ---------- */
.v14-work,.v14-work .shell,.v14-case,.v14-case-foot,
[class*="dark-section"],[class*="green-section"]{
  --ss-dark-copy:#f6f2e8;
}
.v14-work .v14-case-foot p,
.v14-work .v14-case-meta span,
.v14-work .v14-case-meta b{
  color:rgba(255,253,247,.82)!important;
}
.v14-work .v14-case-foot strong,
.v14-work .v14-case-foot a{
  color:#fff!important;
}
.v14-work .v14-case-foot a:hover{color:var(--ss941-gold)!important}

/* ---------- Fixed mobile actions: smaller and non-obstructive ---------- */
@media(max-width:700px){
  body:not(.v15-app-mode){padding-bottom:92px}
  body:not(.v15-app-mode) .ss1315-mobile-actions{
    left:16px!important;
    right:16px!important;
    bottom:calc(10px + env(safe-area-inset-bottom,0px))!important;
    min-height:58px!important;
    border-radius:20px!important;
    padding:6px!important;
    gap:6px!important;
    box-shadow:0 12px 34px rgba(3,44,35,.18)!important;
  }
  body:not(.v15-app-mode) .ss1315-mobile-actions>a{
    min-height:46px!important;
    padding:8px 12px!important;
    font-size:13px!important;
    border-radius:15px!important;
  }
  .ss-ai{
    right:14px!important;
    bottom:calc(82px + env(safe-area-inset-bottom,0px))!important;
  }

  /* Drawer gets clearance above the persistent action bar */
  .v11-menu-panel,
  .v11-menu-drawer,
  #v15-mobile-menu{
    padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
  }

  /* Static-page header: same logo/hamburger/CTA visual language */
  body > header .header-inner{
    min-height:92px!important;
    flex-wrap:nowrap!important;
    padding-block:12px;
  }
  body > header .brand{
    width:178px!important;
    min-height:48px;
  }
  body > header .brand img{
    width:178px!important;
    max-height:52px!important;
  }
  body > header .menu-toggle{
    display:grid!important;
    place-items:center;
    width:48px!important;
    height:48px!important;
    min-height:48px!important;
    padding:0!important;
    border:1px solid #cbd5cf!important;
    border-radius:50%!important;
    background:var(--ss941-ivory)!important;
    color:transparent!important;
    font-size:0!important;
    position:relative;
    flex:0 0 48px;
  }
  body > header .menu-toggle::before{
    content:"☰";
    color:var(--ss941-green)!important;
    font-size:22px;
    line-height:1;
  }
  body > header nav{
    position:absolute;
    left:0;right:0;top:100%;
    z-index:1500;
    background:var(--ss941-ivory);
    border-top:1px solid var(--ss941-line);
    box-shadow:0 20px 40px rgba(3,44,35,.12);
    padding:12px 18px 24px!important;
  }
  body > header nav a{
    min-height:48px;
    display:flex;
    align-items:center;
    border-bottom:1px solid var(--ss941-line);
  }
  body > header nav a:last-child{
    justify-content:center;
    border:0!important;
    margin-top:12px!important;
  }

  /* Static footer: less oversized, better rhythm */
  footer{padding-top:34px!important}
  footer .footer-grid{
    grid-template-columns:1fr 1fr!important;
    gap:26px 22px!important;
    padding-bottom:24px!important;
  }
  footer .footer-grid>div:first-child{grid-column:1/-1!important}
  footer h2{font-size:1.55rem!important;margin-bottom:14px!important}
  footer a:not(.brand),footer p{font-size:.98rem!important;line-height:1.55}
  footer .footer-bottom{
    padding-block:18px!important;
    gap:12px!important;
  }
  footer .footer-bottom div{gap:12px 18px!important}

  /* Prevent content from hiding under browser/fixed controls */
  main{min-height:40vh}
}

/* Narrow phones */
@media(max-width:390px){
  body > header .brand{width:158px!important}
  body > header .brand img{width:158px!important}
  footer .footer-grid{grid-template-columns:1fr!important}
  footer .footer-grid>div:first-child{grid-column:auto!important}
  .ss1315-mobile-actions{left:10px!important;right:10px!important}
}

/* Keep content readable on all dark-green V14 blocks */
.v14-work p,.v14-work li{color:rgba(255,253,247,.82)}
.v14-work h2,.v14-work h3,.v14-work b{color:#fff}


/* Source: assets/css/v14.9.2-mobile-header-menu-contrast.css */
/* SafaSoch V14.9.2 — Mobile Header, Menu & Contrast Fix */
:root{--ss1492-green:#063f34;--ss1492-deep:#032f28;--ss1492-ivory:#fbf8f0;--ss1492-gold:#e5ad39;--ss1492-ink:#14362f}
@media(max-width:720px){
  /* Static microsite pages: one clean header, no in-content menu overlay */
  body>header{position:relative;z-index:1600;background:var(--ss1492-ivory)!important}
  body>header .header-inner{min-height:96px!important;padding:12px 0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;flex-wrap:nowrap!important}
  body>header .brand{width:176px!important;height:auto!important;min-height:50px!important;margin:0!important}
  body>header .brand img{width:176px!important;height:auto!important;max-height:58px!important;object-fit:contain!important}
  body>header .menu-toggle{order:3!important;display:grid!important;place-items:center!important;width:52px!important;height:52px!important;min-height:52px!important;flex:0 0 52px!important;border-radius:50%!important;border:1px solid rgba(6,63,52,.22)!important;background:var(--ss1492-ivory)!important;color:transparent!important;font-size:0!important;padding:0!important;z-index:2}
  body>header .menu-toggle::before{content:"☰";font-size:23px;line-height:1;color:var(--ss1492-green)}
  body>header .menu-toggle[aria-expanded="true"]::before{content:"×";font-size:32px;font-weight:400}
  body>header #main-nav{display:none!important;position:fixed!important;inset:0!important;width:100%!important;height:100dvh!important;background:var(--ss1492-ivory)!important;z-index:1590!important;padding:118px 28px calc(120px + env(safe-area-inset-bottom,0px))!important;overflow-y:auto!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;box-shadow:none!important}
  body>header #main-nav.open{display:flex!important}
  body>header #main-nav a{font-size:1.25rem!important;min-height:58px!important;padding:15px 4px!important;border-bottom:1px solid rgba(20,54,47,.13)!important;background:transparent!important;color:var(--ss1492-ink)!important;border-radius:0!important;margin:0!important}
  body>header #main-nav a[aria-current]{color:#4f7b40!important;border-bottom-color:rgba(20,54,47,.13)!important}
  body>header #main-nav .business-call{margin-top:22px!important;min-height:56px!important;justify-content:center!important;border:0!important;border-radius:999px!important;background:var(--ss1492-green)!important;color:#fff!important;padding:15px 22px!important}
  body:has(#main-nav.open){overflow:hidden}

  /* Main PHP header stays compact and consistent */
  .ss143-header{background:var(--ss1492-ivory)!important}
  .ss143-header .ss143-row{min-height:92px!important;padding-block:10px!important}
  .ss143-brand img{max-height:56px!important;width:auto!important}
  .ss143-mobile{width:48px!important;height:48px!important;min-width:48px!important}
  .ss143-cta{white-space:nowrap!important}

  /* Persistent actions: useful without swallowing content */
  body:not(.v15-app-mode) .ss1315-mobile-actions{min-height:54px!important;bottom:calc(8px + env(safe-area-inset-bottom,0px))!important}
  body:not(.v15-app-mode) .ss1315-mobile-actions>a{min-height:42px!important;font-size:12.5px!important}
  .ss-ai{bottom:calc(74px + env(safe-area-inset-bottom,0px))!important}
}
@media(max-width:430px){
  .ss143-header .ss143-actions .ss143-cta{font-size:12px!important;padding:11px 14px!important}
  .ss143-brand{max-width:150px!important}
  body>header .brand,body>header .brand img{width:164px!important}
}
@media(max-width:365px){.ss143-header .ss143-actions .ss143-cta{display:none!important}}

/* Footer / dark-surface contrast */
.ss1316a-footer,.ss1316a-footer *{--ss1492-footer-copy:#f6f3e9}
.ss1316a-footer h2,.ss1316a-footer h3,.ss1316a-footer strong{color:#fff!important}
.ss1316a-footer p,.ss1316a-footer li,.ss1316a-footer a,.ss1316a-footer span{color:rgba(255,253,247,.88)!important}
.ss1316a-footer .eyebrow{color:#e7c56e!important}
.ss1316a-footer .ss1316a-school-cta h2{color:#fff!important;opacity:1!important}
footer{background:var(--ss1492-green)!important;color:#fff!important}
footer h2,footer h3,footer a,footer p,footer span{color:rgba(255,253,247,.9)!important}
footer .small{color:#e7c56e!important}


/* Source: assets/v15-design.css */
/* SafaSoch V15 — reversible visual-only overlay. No content, schema or tracking changes. */
:root{--v15-forest:#163f36;--v15-deep:#102f29;--v15-gold:#e8b75f;--v15-cream:#f7f4ed;--v15-ink:#222c29;--v15-muted:#65716b;--v15-line:#e6e9e3;--v15-radius:18px;--v15-shadow:0 16px 45px rgba(16,47,41,.075)}
html{scroll-behavior:smooth}body.v15-ui{color:var(--v15-ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.v15-ui :is(h1,h2,h3){letter-spacing:-.035em;text-wrap:balance}body.v15-ui h1{font-weight:750;line-height:1.065}body.v15-ui h2{line-height:1.12}body.v15-ui :is(p,li){overflow-wrap:break-word}body.v15-ui :is(p,li){line-height:1.72}
body.v15-ui :is(a,button,input,textarea,select){-webkit-tap-highlight-color:transparent}body.v15-ui :is(a,button,input,textarea,select):focus-visible{outline:3px solid var(--v15-gold);outline-offset:3px}
body.v15-ui :is(a,button){transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
body.v15-ui :is(button,[type='submit'],a[class*='btn'],a[class*='button'],[class*='cta'] a){border-radius:12px}
body.v15-ui :is(button,[type='submit'],a[class*='btn'],a[class*='button']):not(:disabled):hover{transform:translateY(-1px)}
body.v15-ui :is(input:not([type='checkbox']):not([type='radio']),textarea,select){max-width:100%;border-radius:12px}
body.v15-ui img{max-width:100%;height:auto}body.v15-ui :is(article,section) img{border-radius:clamp(12px,1.5vw,22px)}
body.v15-ui :is(header,nav){--v15-nav-line:rgba(22,63,54,.08)}body.v15-ui header{backdrop-filter:saturate(1.2) blur(12px);-webkit-backdrop-filter:saturate(1.2) blur(12px)}
body.v15-ui :is(.card,.course-card,.programme-card,.program-card,.service-card,.resource-card,.feature-card,.training-card){border-radius:var(--v15-radius);box-shadow:var(--v15-shadow);transition:transform .25s ease,box-shadow .25s ease}
body.v15-ui :is(.card,.course-card,.programme-card,.program-card,.service-card,.resource-card,.feature-card,.training-card):hover{transform:translateY(-3px);box-shadow:0 22px 55px rgba(16,47,41,.115)}
body.v15-ui :is(.badge,.chip,.tag){border-radius:999px;letter-spacing:.035em}
body.v15-ui :is(footer,[role='contentinfo']){position:relative}body.v15-ui :is(footer,[role='contentinfo']) a{text-decoration-thickness:1px;text-underline-offset:4px}
body.v15-ui :is(main,section){scroll-margin-top:90px}body.v15-ui :is(main,section,article){min-width:0}
/* Scope stronger design tokens only to previews or sections explicitly marked v15; avoids overriding unknown legacy colour contracts. */
body.v15-ui .v15-panel{background:var(--v15-cream);border:1px solid var(--v15-line);border-radius:24px;padding:clamp(20px,3vw,44px)}
body.v15-ui .v15-dark{background:var(--v15-forest);color:white;border-radius:26px}body.v15-ui .v15-accent{color:var(--v15-gold)}
@media(max-width:767px){body.v15-ui h1{font-size:clamp(2.35rem,9vw,3.6rem)}body.v15-ui h2{font-size:clamp(1.8rem,6.5vw,2.6rem)}body.v15-ui :is(button,[type='submit'],a[class*='btn'],a[class*='button']){min-height:44px}body.v15-ui :is(.card,.course-card,.programme-card,.program-card,.service-card,.resource-card,.feature-card,.training-card){box-shadow:0 8px 24px rgba(16,47,41,.06)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body.v15-ui *,body.v15-ui *::before,body.v15-ui *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
