/* HADS V1.2.2 — final public UI normalization layer.
   Additive only: loaded after legacy/page CSS to standardize comfort without rebuilding layouts. */
:root{
  --hads-ui-purple:#7b49a6;
  --hads-ui-purple-hi:#a760c9;
  --hads-ui-ink:#211d25;
  --hads-ui-text:#5f5964;
  --hads-ui-soft:#f7f3f9;
  --hads-ui-line:rgba(123,73,166,.18);
  --hads-ui-shadow:0 10px 26px rgba(69,43,81,.12);
  --hads-ui-header-offset:94px;
}
html{scroll-behavior:smooth;scroll-padding-top:var(--hads-ui-header-offset);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body:not(.intro){font-family:"Manrope",Arial,sans-serif;color:var(--hads-ui-ink);overflow-x:clip;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body:not(.intro) :where(h1,h2,h3,h4){font-family:"Syne","Manrope",Arial,sans-serif;text-wrap:balance}
body:not(.intro) :where(p,li,.lead,.section-lead){font-family:"Manrope",Arial,sans-serif}
body:not(.intro) :where(main,section,article,div){min-width:0}
body:not(.intro) img{max-width:100%}

/* Anchored destinations must open below the sticky header, never underneath it. */
body:not(.intro) :where(section[id],main[id],[data-anchor-target][id]){scroll-margin-top:var(--hads-ui-header-offset)}
body:not(.intro) #main{scroll-margin-top:var(--hads-ui-header-offset)}

/* Shared interactive language: fine, tactile, premium. */
body:not(.intro) :where(.btn,.cta,.request-btn,.partner-access,.cta-v7-button,.hero-actions a){
  min-height:44px;
  border-radius:14px!important;
  padding:10px 18px!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1.2!important;
  font-family:"Manrope",Arial,sans-serif!important;
  font-weight:800!important;
  letter-spacing:.025em!important;
  text-align:center;
  text-decoration:none;
  white-space:normal;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease;
}
body:not(.intro) :where(.btn,.cta,.request-btn,.partner-access,.cta-v7-button,.hero-actions a):hover{transform:translateY(-2px)}
body:not(.intro) :where(.lang-btn,.mobile-menu-btn,.mobile-submenu-btn,button){touch-action:manipulation}
body:not(.intro) :where(.lang-btn,.mobile-menu-btn,.mobile-submenu-btn){min-width:40px;min-height:40px}
body:not(.intro) :where(a,button,input,select,textarea):focus-visible{outline:3px solid rgba(163,91,208,.55);outline-offset:3px}

/* Brand/header polish without changing the validated header architecture. */
.main-header{backdrop-filter:saturate(1.05) blur(10px);-webkit-backdrop-filter:saturate(1.05) blur(10px)}
.main-header .logo img,header .logo img{image-rendering:auto;filter:drop-shadow(0 5px 12px rgba(67,39,82,.11))}
.main-header .logo small,header .logo small{color:#704a8e!important;letter-spacing:.018em!important}

/* Long translations (especially German) must wrap cleanly instead of overflowing cards/buttons. */
body:not(.intro) :where(h1,h2,h3,h4,p,a,button,span,strong){overflow-wrap:break-word}
html[lang="de"] body:not(.intro) :where(.menu-link,.btn,.cta,.hads-qbubble .label){hyphens:auto}

/* Keep rich sections complete after navigation; no scroll-snap trapping on touch devices. */
@media (hover:none),(pointer:coarse){html{scroll-snap-type:none!important}body:not(.intro) main{scroll-snap-type:none!important}}

@media(max-width:900px){
  :root{--hads-ui-header-offset:84px}
  body:not(.intro) .container{max-width:calc(100% - 28px)}
  body:not(.intro) :where(.section-title,h2){line-height:1.05}
  .main-header .logo img,header .logo img{max-width:100px!important}
}

@media(max-width:760px){
  :root{--hads-ui-header-offset:78px}
  body:not(.intro){font-size:15px;line-height:1.58}
  body:not(.intro) .container{width:auto!important;max-width:calc(100% - 24px)!important;margin-left:auto!important;margin-right:auto!important}
  body:not(.intro) main :where(h1,.hero-title){font-size:clamp(34px,10.5vw,44px)!important;line-height:1.02!important;letter-spacing:-.035em!important}
  body:not(.intro) main :where(h2,.section-title){font-size:clamp(30px,8.6vw,40px)!important;line-height:1.04!important;letter-spacing:-.025em!important}
  body:not(.intro) main :where(p,.lead,.section-lead){font-size:14px;line-height:1.65}
  body:not(.intro) :where(.btn,.cta,.request-btn,.partner-access,.cta-v7-button,.hero-actions a){
    min-height:46px;
    padding:10px 15px!important;
    border-radius:13px!important;
    font-size:11px!important;
  }
  body:not(.intro) .hero-actions{gap:10px!important}
  body:not(.intro) .hero-actions a{width:100%;max-width:100%}
  body:not(.intro) :where(.hads-qbubble,.workwear-card,.value-card,.difference-item){max-width:100%}
  body:not(.intro) :where(input,select,textarea){font-size:16px!important} /* prevents iOS zoom */
  .hads-top-companion{right:12px!important;bottom:12px!important;min-width:0!important;height:44px!important;padding:0 13px!important;font-size:10px!important}
}

@media(max-width:420px){
  :root{--hads-ui-header-offset:74px}
  body:not(.intro) .container{max-width:calc(100% - 20px)!important}
  body:not(.intro) main :where(h1,.hero-title){font-size:clamp(32px,10vw,40px)!important}
  body:not(.intro) main :where(h2,.section-title){font-size:clamp(28px,8.5vw,36px)!important}
  .main-header .logo img,header .logo img{max-width:92px!important}
  body:not(.intro) :where(.btn,.cta,.request-btn,.partner-access,.cta-v7-button,.hero-actions a){font-size:10.5px!important;letter-spacing:.015em!important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body:not(.intro) *,body:not(.intro) *::before,body:not(.intro) *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* =========================================================
   HADS V1.2.3 — PREMIUM CONSISTENCY / HERO RESTORE / LANG
   Final safe override layer. Keeps existing page identities.
   ========================================================= */
:root{
  --hads-violet:#7b49a6;
  --hads-violet-2:#9e5fc0;
  --hads-violet-soft:#efe7f4;
  --hads-ink:#211d25;
  --hads-muted:#6a626e;
  --hads-line:#e7dcec;
  --hads-surface:#fbf9fc;
}

/* Typography: one visual language across all public pages */
html{scroll-behavior:smooth}
body{font-family:Manrope,Arial,sans-serif;color:var(--hads-ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1,h2,h3,.section-title,.hero-title{font-family:Syne,Manrope,Arial,sans-serif}
p,li,a,button,input,textarea,select{font-family:Manrope,Arial,sans-serif}

/* Header logo: preserve the original artwork and prevent clipping/distortion */
.main-header .logo{
  min-width:150px!important;
  overflow:visible!important;
  align-self:stretch!important;
  justify-content:center!important;
}
.main-header .logo img{
  width:138px!important;
  max-width:none!important;
  height:auto!important;
  max-height:52px!important;
  object-fit:contain!important;
  object-position:left center!important;
  transform:none!important;
  filter:drop-shadow(0 3px 8px rgba(60,38,70,.10))!important;
}
.main-header .logo small{
  display:block!important;
  margin-top:2px!important;
  color:#7b4d94!important;
  font-size:7.5px!important;
  line-height:1.15!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
}

/* Keep all 3 languages visible. DE is the standard ISO label for German. */
.lang-switch,.langs{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:4px!important;
  min-width:108px!important;
  overflow:visible!important;
  flex:0 0 auto!important;
}
.lang-btn,.langs [data-lang]{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:30px!important;
  height:34px!important;
  padding:0 7px!important;
  border-radius:10px!important;
  font-size:11px!important;
  font-weight:750!important;
  line-height:1!important;
}
.lang-btn.active,.langs [data-lang].active{
  color:#764695!important;
  background:#f3ecf7!important;
}

/* Header navigation: retain the approved clean style while avoiding overflow */
@media (min-width:1101px){
  .main-header .nav{gap:18px!important}
  .main-header .main-menu{gap:0!important}
  .main-header .menu-link{font-size:12px!important;white-space:nowrap!important;padding-left:15px!important;padding-right:15px!important}
}

/* Expertise menu: text-only, exactly like the other header dropdowns */
.dropdown.hads-exp-rich,
.hads-exp-rich{
  min-width:238px!important;
  max-width:285px!important;
}
.hads-exp-rich a{
  display:block!important;
  min-height:0!important;
  padding:11px 14px!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  line-height:1.35!important;
}
.hads-exp-rich .hads-exp-thumb{display:none!important}
.hads-exp-rich .hads-exp-label{display:block!important;font-size:12px!important;font-weight:600!important;line-height:1.35!important}

/* Standard dropdown readability */
.dropdown{min-width:225px!important}
.dropdown a{font-size:12px!important;line-height:1.35!important;letter-spacing:0!important;word-break:normal!important;overflow-wrap:normal!important}

/* Premium buttons: fine, calm, tactile */
.btn-primary,.btn-secondary,.cta-button,.cta-v7-button,.footer-mini-cta,
a[class*="btn"],button[class*="btn"]{
  border-radius:16px!important;
  min-height:44px;
  font-weight:750;
  letter-spacing:.015em;
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease!important;
}
.btn-primary:hover,.cta-v7-button:hover,.footer-mini-cta:hover{transform:translateY(-2px)!important}

/* WHO WE ARE / VALUES / TODAY lower navigation: 3D purple wave */
.subnav{overflow:visible!important}
.subnav-inner{overflow:visible!important}
.subnav-inner a,
.history-hero-quicknav .hads-qbubble,
.today-hero-nav .today-dot{
  position:relative!important;
  overflow:hidden!important;
  border:1px solid rgba(132,76,159,.20)!important;
  background:linear-gradient(145deg,#fff 0%,#f7f0fa 52%,#eee2f4 100%)!important;
  color:#352c3a!important;
  box-shadow:0 7px 0 #dfd0e7,0 17px 30px rgba(72,42,87,.14),inset 0 1px 0 rgba(255,255,255,.96)!important;
}
.subnav-inner a::after,
.history-hero-quicknav .hads-qbubble::after,
.today-hero-nav .today-dot::after{
  content:"";
  position:absolute;
  left:-15%;right:-15%;bottom:-55%;height:82%;
  background:radial-gradient(ellipse at center,rgba(160,89,194,.30) 0%,rgba(126,70,157,.18) 48%,transparent 72%);
  transform:rotate(-4deg);
  pointer-events:none;
}
.subnav-inner a.active,
.today-hero-nav .today-dot.active{
  color:#fff!important;
  border-color:#8c50aa!important;
  background:linear-gradient(145deg,#a35fc3 0%,#8a4fac 52%,#6d3d88 100%)!important;
  box-shadow:0 8px 0 #5b3470,0 19px 32px rgba(87,45,106,.25),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
@media (min-width:901px){
  .subnav-inner a:nth-child(2),.history-hero-quicknav a:nth-child(2) .hads-qbubble{transform:translateY(6px)!important}
  .subnav-inner a:nth-child(3),.history-hero-quicknav a:nth-child(3) .hads-qbubble{transform:translateY(-2px)!important}
  .subnav-inner a:nth-child(4),.history-hero-quicknav a:nth-child(4) .hads-qbubble{transform:translateY(5px)!important}
}

/* WHY TUNISIA — lighter aubergine, smaller type, immediate readability */
#why-tunisia{
  background:linear-gradient(135deg,#35283c 0%,#44304d 46%,#2d2433 100%)!important;
  color:#fff!important;
}
#why-tunisia .nearshore-v7-copy .tag{color:#e1afeF!important}
#why-tunisia .nearshore-v7-copy .section-title,
#why-tunisia .nearshore-title{
  color:#fff!important;
  font-size:clamp(34px,3vw,54px)!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  margin:8px 0 14px!important;
}
#why-tunisia .nearshore-v7-copy>p{
  color:#e8e0eb!important;
  font-size:15px!important;
  line-height:1.55!important;
  max-width:700px!important;
}
#why-tunisia .nearshore-v7-points{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  margin-top:20px!important;
}
#why-tunisia .nearshore-v7-points>div{
  min-height:108px!important;
  padding:17px 18px!important;
  border-radius:22px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(223,191,237,.08))!important;
  border:1px solid rgba(229,190,245,.28)!important;
  box-shadow:0 7px 0 rgba(57,34,68,.48),0 17px 30px rgba(12,8,15,.18),inset 0 1px 0 rgba(255,255,255,.14)!important;
  backdrop-filter:blur(10px)!important;
}
#why-tunisia .nearshore-v7-points>div:hover{
  transform:translateY(-4px)!important;
  border-color:rgba(231,187,248,.55)!important;
  box-shadow:0 9px 0 rgba(70,39,84,.52),0 21px 34px rgba(12,8,15,.23)!important;
}
#why-tunisia .nearshore-v7-points b{font-size:12px!important;line-height:1.25!important;color:#e6b3f6!important;margin-bottom:5px!important}
#why-tunisia .nearshore-v7-points span{font-size:12.5px!important;line-height:1.42!important;color:#f4eef6!important;margin-top:0!important}

/* Footer brand: crisp and comfortably spaced on dark backgrounds */
.footer-v11 .footer-logo,.footer-logo{
  width:190px!important;
  max-width:62vw!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:left center!important;
  filter:drop-shadow(0 8px 22px rgba(163,91,195,.16))!important;
  margin-bottom:14px!important;
}
.footer-v11 .footer-brand{min-width:0!important}
.footer-v11 .footer-brandline{max-width:620px!important}

/* Hero integrity: never stretch restored imagery */
.hero img,.hero-slide img,.nearshore-map img,.industrial-v7-visual img,.resp-visual img{max-width:100%;height:auto}

/* Mobile comfort */
@media(max-width:900px){
  .main-header .logo{min-width:112px!important}
  .main-header .logo img{width:110px!important;max-height:42px!important}
  .main-header .logo small{font-size:6.2px!important}
  .lang-switch{min-width:98px!important;gap:2px!important;margin-left:auto!important;margin-right:8px!important;padding-left:6px!important}
  .lang-btn{min-width:29px!important;height:32px!important;padding:0 5px!important;font-size:10px!important}
  .subnav-inner a,.history-hero-quicknav .hads-qbubble{transform:none!important}
  #why-tunisia .nearshore-v7-points{grid-template-columns:1fr!important}
  #why-tunisia .nearshore-v7-copy .section-title,#why-tunisia .nearshore-title{font-size:clamp(31px,9.2vw,44px)!important}
}
@media(max-width:620px){
  .main-header .logo{min-width:98px!important}
  .main-header .logo img{width:96px!important;max-height:37px!important}
  .main-header .logo small{font-size:5.7px!important;max-width:105px!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .lang-switch{min-width:91px!important}
  .lang-btn{min-width:28px!important;height:30px!important;font-size:9.5px!important}
  .dropdown{max-width:calc(100vw - 32px)!important;min-width:0!important;width:100%!important}
  .hads-exp-rich a{padding:10px 12px!important}
  #why-tunisia{padding-left:0!important;padding-right:0!important}
  #why-tunisia .nearshore-v7-points>div{min-height:0!important;padding:15px 16px!important}
  .footer-v11 .footer-logo,.footer-logo{width:160px!important}
}
