/* LeTraducteur.org — Morocco professional identity */
:root{
 --lt-green:#006233;--lt-green-dark:#004b27;--lt-red:#c1272d;--lt-cream:#f7f2e8;--lt-white:#fffdf8;
 --lt-ink:#18312a;--lt-muted:#5d675f;--lt-gold:#b89142;
 --primary:#006233;--primary-dark:#004b27;--accent:#c1272d;--brand:#006233;--brand-2:#c1272d;
 --text:#18312a;--surface:#fffdf8;--bg:#f7f2e8;
}
html,body{background:var(--lt-cream);color:var(--lt-ink)}
body{accent-color:var(--lt-green)}
a{color:var(--lt-green-dark)}
a:hover{color:var(--lt-green)}
.tx-global-header-v26{--tx-header-accent:var(--lt-green);--tx-header-border:rgba(0,98,51,.18)}
.tx-global-header-v26 .txgh-inner{border-color:rgba(0,98,51,.16)!important}
.txh-frame{background:rgba(255,253,248,.94)!important;border-color:rgba(0,98,51,.15)!important;box-shadow:0 9px 30px rgba(24,49,42,.08)!important}
.txgh-logo .tx-brand-logo{max-height:58px!important;width:auto!important;object-fit:contain!important}
.tx-market-morocco{display:inline-flex;align-items:center;gap:.48rem;padding:.55rem .78rem;border-radius:999px;border:1px solid rgba(0,98,51,.24);background:#fffdf8;color:#004b27;font-weight:800;text-decoration:none;white-space:nowrap}
.tx-market-morocco .flag{font-size:1.05rem}.tx-market-morocco .label{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}
.txgh-quote,.v20-btn.primary,.tx-v64-cta a:first-child,.tx-sticky-mobile-quote{background:var(--lt-green)!important;border-color:var(--lt-green)!important;color:#fff!important}
.txgh-quote:hover,.v20-btn.primary:hover,.tx-sticky-mobile-quote:hover{background:var(--lt-green-dark)!important}
.tx-menu-toggle,.tx-search-trigger{color:var(--lt-green)!important}
.tx-mega-panel{border-top:3px solid var(--lt-green)!important}
.tx-menu-item::after,.tx-v64-eyebrow,.v20-kicker{color:var(--lt-green)!important}
.tx-footer-v69{background:#103c2c!important;color:#f9f5ed!important;border-top:5px solid var(--lt-red)!important}
.tx-footer-v69 a,.tx-footer-v69 h4,.tx-footer-v69 .txf-copy{color:#f9f5ed!important}
.v20-hero,.tx-v5-photo-hero,.tx-v705-hero{position:relative;isolation:isolate;background-color:#173c30}
.v20-hero::before,.tx-v5-photo-hero::before,.tx-v705-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,55,42,.78) 0%,rgba(15,55,42,.52) 40%,rgba(15,55,42,.08) 76%);z-index:-1;pointer-events:none}
[dir="rtl"] .v20-hero::before,[dir="rtl"] .tx-v5-photo-hero::before,[dir="rtl"] .tx-v705-hero::before{background:linear-gradient(270deg,rgba(15,55,42,.78) 0%,rgba(15,55,42,.52) 40%,rgba(15,55,42,.08) 76%)}
.v20-hero[data-city-label]::after,.tx-v705-hero[data-city-label]::after{content:attr(data-city-label);position:absolute;right:clamp(18px,4vw,68px);bottom:24px;padding:.48rem .75rem;border-radius:999px;background:rgba(255,253,248,.92);border:1px solid rgba(0,98,51,.22);color:var(--lt-green-dark);font-weight:800;font-size:.82rem;letter-spacing:.02em;box-shadow:0 8px 22px rgba(0,0,0,.12)}
[dir="rtl"] .v20-hero[data-city-label]::after,[dir="rtl"] .tx-v705-hero[data-city-label]::after{right:auto;left:clamp(18px,4vw,68px)}
.tx-v64-card,.tx-v64-panel,.tx68-proof-card,.tx68-testimonial{border-color:rgba(0,98,51,.14)!important}
.tx-v64-panel{background:rgba(0,98,51,.045)!important}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--lt-gold)!important;outline-offset:3px}
/* Moroccan red is reserved for accents/borders, not paragraph text. */
.lt-red-accent{border-color:var(--lt-red)!important}
@media(max-width:820px){.txgh-logo .tx-brand-logo{max-height:46px!important}.v20-hero[data-city-label]::after,.tx-v705-hero[data-city-label]::after{bottom:14px;font-size:.72rem}}

.lt-footer-contacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.lt-footer-contacts a{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(255,255,255,.06);text-decoration:none!important}.lt-footer-contacts strong{font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:#f7f2e8}.lt-footer-contacts span{color:#fffdf8;overflow-wrap:anywhere}@media(max-width:760px){.lt-footer-contacts{grid-template-columns:1fr}}


/* v1.1 — user-approved LeTraducteur.org logo */
.tx-global-header-v26 .txgh-logo .tx-brand-logo{
  display:block!important;width:auto!important;height:auto!important;max-width:150px!important;max-height:68px!important;
  object-fit:contain!important;object-position:center!important;background:#fff!important;border-radius:12px!important;padding:2px!important;
  box-shadow:0 6px 18px rgba(24,49,42,.08)!important;
}
@media(max-width:1180px){
 .tx-global-header-v26 .txh-frame-brand>.txgh-logo img.tx-brand-logo{width:auto!important;max-width:118px!important;max-height:50px!important}
}
@media(max-width:760px){
 .tx-global-header-v26 .txh-frame-brand>.txgh-logo img.tx-brand-logo{width:auto!important;max-width:94px!important;max-height:42px!important}
}
@media(max-width:380px){
 .tx-global-header-v26 .txh-frame-brand>.txgh-logo img.tx-brand-logo{width:auto!important;max-width:78px!important;max-height:36px!important}
}

/* v1.7 — frameless header media treatment.
   Removes card backgrounds from the brand, market flag, menu and search controls
   while retaining the solid header backdrop and language selector contrast. */
.tx-global-header-v26 .txh-frame,
.tx-global-header-v26 .txh-frame-brand,
.tx-global-header-v26 .txh-frame-market,
.tx-global-header-v26 .txh-frame-menu,
.tx-global-header-v26 .txh-frame-search,
.tx-global-header-v26 .txgh-actions.txh-frame-search{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
.tx-global-header-v26 .txgh-logo,
.tx-global-header-v26 .txgh-logo .tx-brand-logo,
.tx-global-header-v26 .txh-frame-brand>.txgh-logo img.tx-brand-logo{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0!important;
}
.tx-global-header-v26 .tx-market-morocco{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  color:#fff!important;
  padding:.35rem .45rem!important;
}
@media(max-width:1180px){
  .tx-global-header-v26 .txh-frame-market .flag,
  .tx-global-header-v26 .txh-frame-market-intl .flag{
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }
  .tx-global-header-v26 .txh-frame-menu>.txgh-mobile,
  .tx-global-header-v26 .txgh-actions.txh-frame-search>.tx-search-trigger{
    background:transparent!important;
    border-color:transparent!important;
    box-shadow:none!important;
  }
  .tx-global-header-v26 .txgh-actions.txh-frame-search>.tx-search-trigger{
    color:#fff!important;
  }
}

/* v1.7.1 HOTFIX — compact mobile reference sections + reliable passing bands */
/* Keep the client/testimonial carousels moving on touch devices. Mobile browsers can
   leave :hover stuck after a tap, and some Android configurations report reduced motion. */
.tx-v68-clients .tx68-track{
  animation-name:lt171-client-pass!important;
  animation-duration:76s!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
  animation-play-state:running!important;
  will-change:transform!important;
}
.tx-v68-testimonials .tx68-testimonial-track{
  animation-name:lt171-testimonial-pass!important;
  animation-duration:50s!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
  animation-play-state:running!important;
  will-change:transform!important;
}
@keyframes lt171-client-pass{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}
@keyframes lt171-testimonial-pass{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}
html[dir="rtl"] .tx-v68-clients .tx68-track,
html[dir="rtl"] .tx-v68-testimonials .tx68-testimonial-track{
  animation-direction:reverse!important;
}
/* Pause only when a real mouse/trackpad can hover. Never let touch-hover freeze a band. */
@media (hover:none),(pointer:coarse){
  .tx68-marquee:hover .tx68-track,
  .tx68-marquee:focus-within .tx68-track,
  .tx68-testimonial-track:hover,
  .tx6811-loop:hover .tx68-track,
  .tx6811-loop:focus-within .tx68-track{
    animation-play-state:running!important;
  }
}
/* User explicitly requested active passing bands; retain a slow continuous pass even
   when Android exposes reduced-motion at browser level. */
@media (prefers-reduced-motion:reduce){
  .tx-v68-clients .tx68-track{animation:lt171-client-pass 150s linear infinite!important}
  .tx-v68-testimonials .tx68-testimonial-track{animation:lt171-testimonial-pass 120s linear infinite!important}
}

/* Mobile layout repair for the home-page reference bands shown in the live capture. */
@media(max-width:620px){
  .tx-v68-clients{
    padding:32px 0 20px!important;
    min-height:0!important;
  }
  .tx-v68-clients .tx68-head,
  .tx-documented-clients .txdc-head{
    width:calc(100% - 32px)!important;
    max-width:520px!important;
    margin:0 auto 16px!important;
    padding:0!important;
  }
  .tx-v68-clients .tx68-head span,
  .tx-documented-clients .txdc-head>span{
    font-size:12px!important;
    line-height:1.25!important;
    letter-spacing:.09em!important;
  }
  .tx-v68-clients .tx68-head h2,
  .tx-documented-clients .txdc-head h2{
    max-width:100%!important;
    margin:7px auto 0!important;
    font-size:clamp(27px,7.5vw,34px)!important;
    line-height:1.08!important;
    letter-spacing:-.025em!important;
    text-wrap:balance!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .tx-v68-clients .tx68-marquee{
    min-height:86px!important;
    padding-block:4px!important;
    margin:0!important;
  }
  .tx-v68-clients .tx6811-logo-set{
    gap:18px!important;
    padding-inline:9px!important;
  }
  .tx-v68-clients .tx68-logo,
  .tx-v68-clients .tx6811-loop .tx68-logo{
    flex:0 0 144px!important;
    width:144px!important;
    min-width:144px!important;
    height:82px!important;
    min-height:82px!important;
  }
  .tx-v68-clients .tx68-logo img,
  .tx-v68-clients .tx6811-loop .tx68-logo img{
    max-width:132px!important;
    max-height:72px!important;
  }
  .tx-documented-clients{
    padding:34px 16px 40px!important;
    min-height:0!important;
  }
  .tx-documented-clients .txdc-inner{
    width:100%!important;
    max-width:100%!important;
  }
  .tx-documented-clients .txdc-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px 12px!important;
    margin-top:18px!important;
  }
  .tx-documented-clients .txdc-card{
    height:78px!important;
    min-height:78px!important;
  }
  .tx-documented-clients .txdc-card img{
    max-width:96%!important;
    max-height:72px!important;
  }
  /* Keep the floating CTA useful without obscuring the section heading/content. */
  .tx-sticky-mobile-quote{
    right:12px!important;
    left:auto!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    max-width:min(220px,calc(100vw - 24px))!important;
    min-height:44px!important;
    max-height:48px!important;
    padding:0 16px!important;
    font-size:14px!important;
    box-shadow:0 10px 26px rgba(16,40,59,.22)!important;
  }
  html[dir="rtl"] .tx-sticky-mobile-quote{
    right:auto!important;
    left:12px!important;
  }
}


/* v1.8 reciprocal Morocco ↔ International market switch — frameless */
.txh-frame-market{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;overflow:visible!important}
.tx-market-dual{display:inline-flex;align-items:center;gap:.42rem;white-space:nowrap;direction:ltr}
.tx-market-dual .tx-market-choice{display:inline-flex;align-items:center;gap:.36rem;color:rgba(255,255,255,.78);text-decoration:none!important;font-weight:750;font-size:.82rem;line-height:1;padding:.36rem .18rem;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
.tx-market-dual .tx-market-choice .flag,.tx-market-dual .tx-market-choice .globe{font-size:1.45rem;line-height:1;filter:none!important}
.tx-market-dual .tx-market-choice.is-active{color:#fff;position:relative}
.tx-market-dual .tx-market-choice.is-active:after{content:"";position:absolute;left:.15rem;right:.15rem;bottom:-.18rem;height:2px;background:#fff;border-radius:2px;opacity:.9}
.tx-market-dual .tx-market-choice:not(.is-active):hover,.tx-market-dual .tx-market-choice:not(.is-active):focus-visible{color:#fff;opacity:1}
.tx-market-dual .tx-market-sep{width:1px;height:1.65rem;background:rgba(255,255,255,.30);display:inline-block;margin:0 .08rem}
@media(max-width:820px){
 .tx-market-dual{gap:.3rem}
 .tx-market-dual .tx-market-choice{padding:.25rem .08rem}
 .tx-market-dual .tx-market-choice .label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
 .tx-market-dual .tx-market-choice .flag,.tx-market-dual .tx-market-choice .globe{font-size:1.58rem}
 .tx-market-dual .tx-market-sep{height:1.45rem}
}
html[dir="rtl"] .tx-market-dual{direction:rtl}

/* v1.9.6 FIX-ONLY — site-wide passing-band continuity.
   Uses the independent `translate` property so legacy reduced-motion rules that force
   transform:none!important cannot freeze the duplicated client/testimonial loops. */
@keyframes lt196-client-pass{
  from{translate:0 0}
  to{translate:-50% 0}
}
@keyframes lt196-testimonial-pass{
  from{translate:0 0}
  to{translate:-50% 0}
}
.tx-v68-clients .tx68-track{
  animation-name:lt196-client-pass!important;
  animation-duration:76s!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
  animation-play-state:running!important;
  will-change:translate!important;
}
.tx-v68-testimonials .tx68-testimonial-track{
  animation-name:lt196-testimonial-pass!important;
  animation-duration:50s!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
  animation-play-state:running!important;
  will-change:translate!important;
}
html[dir="rtl"] .tx-v68-clients .tx68-track,
html[dir="rtl"] .tx-v68-testimonials .tx68-testimonial-track{
  animation-direction:reverse!important;
}
@media (hover:none),(pointer:coarse){
  .tx68-marquee:hover .tx68-track,
  .tx68-marquee:focus-within .tx68-track,
  .tx68-testimonial-track:hover,
  .tx6811-loop:hover .tx68-track,
  .tx6811-loop:focus-within .tx68-track{
    animation-play-state:running!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .tx-v68-clients .tx68-track{animation:lt196-client-pass 150s linear infinite!important}
  .tx-v68-testimonials .tx68-testimonial-track{animation:lt196-testimonial-pass 120s linear infinite!important}
}
