
/* 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%}
}
