/*
Theme Name: Shifa Medical Solutions
Theme URI: https://medicalshifa.com
Author: Gholamreza Alipour
Author URI: https://medicalshifa.com
Description: Lean WordPress theme for Shifa Medical Solutions (medicalshifa.com) — pharmaceutical business development, GCC and MEA. Bilingual (English / Arabic RTL), no JS framework, one shared stylesheet.
Version: 4.5.3
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: shifa-medical
Designer: Gholamreza Alipour
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=IBM+Plex+Sans+Arabic:wght@400;500;600;700&display=swap');

:root{
  --ground:#EEF1F7;
  --surface:#FFFFFF;
  --surface-2:#F4F6FA;
  --line:#D8E0EC;
  --line-strong:#B7C4D9;

  --ink:#0B1524;
  --ink-2:#3B4A63;
  --muted:#64738C;

  --navy:#141938;
  --accent:#1A3A66;
  --accent-2:#2E5A94;
  --accent-soft:#E3EAF5;

  --ok:#1F7A4D;
  --ok-soft:#E7F4EC;

  --radius:3px;
  --maxw:1120px;

  --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-serif: "Fraunces", "Newsreader", Georgia, "Times New Roman", serif;
  --font-arabic: "IBM Plex Sans Arabic", "Noto Sans Arabic", "Segoe UI", Tahoma, Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ground);
  color:var(--ink);
  font-family:var(--font);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font:inherit; cursor:pointer;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.u{direction:ltr; unicode-bidi:isolate;}

h1, h2, h3, h4, h5,
.nav-center a, .contact-link, .btn, .svc-card h3,
.team-card .role, .split-col h4, .cred-label,
.footer-col h5, .faq-q, .vision-label{
  text-transform:capitalize;
}

h1, h2 { font-family: var(--font-serif); font-weight: 500; letter-spacing:-.015em; }
h3, h4, h5 { font-family: var(--font); font-weight: 700; }

p{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  overflow-wrap: break-word;
}

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--accent-2); outline-offset:2px;
}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto !important;}
  .reveal, .reveal-stagger > *{opacity:1 !important; transform:none !important;}
}

/* ---------- scroll-reveal ---------- */
.reveal{
  opacity:0; transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
}
.reveal.in-view{opacity:1; transform:translateY(0);}
.reveal-stagger > *{
  opacity:0; transform:translateY(22px);
  transition:opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1);
}
.reveal-stagger.in-view > *{opacity:1; transform:translateY(0);}
.reveal-stagger.in-view > *:nth-child(1){transition-delay:.04s;}
.reveal-stagger.in-view > *:nth-child(2){transition-delay:.12s;}
.reveal-stagger.in-view > *:nth-child(3){transition-delay:.20s;}
.reveal-stagger.in-view > *:nth-child(4){transition-delay:.28s;}
.reveal-stagger.in-view > *:nth-child(5){transition-delay:.36s;}
.reveal-stagger.in-view > *:nth-child(6){transition-delay:.44s;}

/* ---------- skip link ---------- */
.skip-link{
  position:absolute; left:12px; top:-60px; z-index:100; background:var(--navy); color:#fff;
  padding:12px 18px; border-radius:4px; font-size:14px; font-weight:600; transition:top .2s ease;
}
.skip-link:focus{top:12px;}

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:50;
  transition: background .35s ease, border-color .35s ease, box-shadow .35s ease;
  border-bottom:1px solid transparent;
}
.site-header .nav-logo .logo-light{ display:none; }
.site-header .nav-logo .logo-dark{ display:block; }

.site-header.header-over-hero{
  background: rgba(11,21,46,.35);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}
.site-header.header-over-hero .nav-center a,
.site-header.header-over-hero .contact-link,
.site-header.header-over-hero .lang-switch,
.site-header.header-over-hero .menu-btn svg{ color:#fff; }
.site-header.header-over-hero .nav-center a::after{ background:#fff; }
.site-header.header-over-hero .lang-switch{ border-color:rgba(255,255,255,.45); }
.site-header.header-over-hero .lang-switch:hover{ border-color:#fff; color:#fff !important; }
.site-header.header-over-hero .nav-logo .logo-dark{ display:none; }
.site-header.header-over-hero .nav-logo .logo-light{ display:block; }

.site-header.header-solid,
.site-header.header-scrolled{
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom-color: var(--line);
  box-shadow: 0 4px 20px -12px rgba(11,21,46,.14);
}
.site-header.header-solid .nav-center a,
.site-header.header-scrolled .nav-center a,
.site-header.header-solid .contact-link,
.site-header.header-scrolled .contact-link,
.site-header.header-solid .lang-switch,
.site-header.header-scrolled .lang-switch,
.site-header.header-solid .menu-btn svg,
.site-header.header-scrolled .menu-btn svg{ color: var(--ink-2); }
.site-header.header-solid .nav-center a::after,
.site-header.header-scrolled .nav-center a::after{ background: var(--accent); }
.site-header.header-solid .nav-center a:hover,
.site-header.header-scrolled .nav-center a:hover{ color: var(--ink); }
.site-header.header-solid .lang-switch,
.site-header.header-scrolled .lang-switch{ border-color: var(--line-strong); }
.site-header.header-solid .lang-switch:hover,
.site-header.header-scrolled .lang-switch:hover{ border-color: var(--accent); color: var(--accent) !important; }
.site-header.header-solid .nav-logo .logo-dark,
.site-header.header-scrolled .nav-logo .logo-dark{ display:block; }
.site-header.header-solid .nav-logo .logo-light,
.site-header.header-scrolled .nav-logo .logo-light{ display:none; }

.nav{
  max-width:var(--maxw); margin:0 auto; padding:16px 32px;
  display:flex; align-items:center; justify-content:space-between; gap:32px;
}
.nav-logo{display:flex; align-items:center;}
.nav-logo img{height:52px; width:auto; display:block;}
.nav-center{display:flex; align-items:center; gap:40px;}
.nav-center a{
  font-size:14.5px; font-weight:500; color:var(--ink-2); letter-spacing:.01em;
  padding:6px 0; position:relative;
}
.nav-center a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--accent);
  transform:scaleX(0); transform-origin:center; transition:transform .25s ease;
}
.nav-center a:hover{color:var(--ink);}
.nav-center a:hover::after{transform:scaleX(1);}
.nav-right{display:flex; align-items:center; gap:24px;}
.contact-link{font-size:14.5px; font-weight:500; color:var(--ink-2);}
.contact-link:hover{color:var(--ink);}
.lang-switch{
  padding:7px 14px; border:1px solid var(--line-strong); border-radius:20px; font-weight:600; font-size:13px; color:var(--ink-2);
  transition:border-color .2s ease, color .2s ease, background .2s ease;
}
.lang-switch:hover{border-color:var(--accent); color:var(--accent) !important;}
.menu-btn{display:none; background:none; border:none; padding:6px;}
.menu-btn svg{width:24px; height:24px; color:var(--ink);}

@media (max-width:860px){
  .nav{padding:14px 24px;}
  .nav-logo img{height:44px;}
  .nav-center{
    position:fixed; inset:72px 0 0 0; height:calc(100vh - 72px); overflow-y:auto;
    background:var(--surface);
    flex-direction:column; align-items:flex-start; gap:0; padding:8px 24px 24px;
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .2s ease, transform .2s ease;
    border-top:1px solid var(--line);
  }
  .nav-center.open{opacity:1; pointer-events:auto; transform:translateY(0);}
  .nav-center a{width:100%; padding:14px 0; border-bottom:1px solid var(--line); font-size:16px; color:var(--ink-2) !important;}
  .nav-center a::after{display:none;}
  .menu-btn{display:block;}
  .nav-right .contact-link{display:none;}
  .site-header.header-over-hero .menu-btn svg{ color:#fff; }
  .site-header.header-scrolled .menu-btn svg,
  .site-header.header-solid .menu-btn svg{ color:var(--ink); }
}

/* ---------- buttons ---------- */
.btn{
  display:inline-block; padding:13px 26px; border-radius:var(--radius); font-size:15px; font-weight:600;
  border:1px solid transparent;
  transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.btn-primary{background:var(--accent); color:#fff; border-color:var(--accent);}
.btn-primary:hover{background:var(--accent-2); border-color:var(--accent-2); transform:translateY(-1px); box-shadow: 0 12px 28px -14px rgba(11,21,46,.4);}
.btn-ghost{border-color:rgba(255,255,255,.55); color:#fff;}
.btn-ghost:hover{background:rgba(255,255,255,.12);}
.btn-outline{border-color:var(--line-strong); color:var(--ink);}
.btn-outline:hover{border-color:var(--accent); color:var(--accent);}
.btn-row{display:flex; gap:14px; flex-wrap:wrap;}

/* ---------- hero (inner pages) ---------- */
.hero{
  position:relative; background:var(--navy); color:#fff; overflow:hidden;
  padding:96px 0 84px;
}
.hero-in{position:relative; max-width:680px;}
.eyebrow{display:block; font-family:var(--mono); font-size:12px; letter-spacing:.1em; color:#9FB4D8; margin-bottom:18px; text-transform:uppercase;}
.hero h1{font-size:clamp(30px,4.4vw,46px); font-weight:500; line-height:1.2; letter-spacing:-.015em; margin-bottom:20px;}
.hero .sub{font-size:16.5px; color:#C7D4E8; max-width:58ch; margin-bottom:32px;}
.hero-small{padding:64px 0 56px;}
.hero-small h1{font-size:clamp(26px,3.6vw,38px);}

/* ---------- hero VIDEO SLIDER ---------- */
.hero-slider{
  position:relative; height:100vh; min-height:600px; max-height:900px; overflow:hidden; background:var(--navy);
  margin-top: -84px;
  padding-top: 84px;
}
.slide{
  position:absolute; inset:0; display:flex; align-items:center;
  opacity:0; visibility:hidden; transition:opacity 1.1s ease;
}
.slide.active{opacity:1; visibility:visible;}
.slide-overlay{
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(11,21,46,.92) 0%, rgba(11,21,46,.75) 35%, rgba(11,21,46,.35) 65%, rgba(11,21,46,.55) 100%);
}
.slide-bg{position:absolute; inset:0; overflow:hidden;}
.slide-bg video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}

.slide-wrap{
  position:relative; z-index:2;
  width:100%;
  max-width:var(--maxw);
  margin: 0 auto;
  padding: 0 24px;
  display:flex;
  justify-content:flex-start;
}
.slide-content{
  position:relative; z-index:2; color:#fff;
  max-width:620px;
  text-align:left;
}
.slide-content h1, .slide-content h2{
  font-family: var(--font-serif);
  font-size:clamp(32px,4.6vw,52px);
  font-weight:500; line-height:1.15; letter-spacing:-.02em;
  margin-bottom:22px; color:#fff;
  text-align:left;
}
.slide-content .sub{ text-align:left; }
.slide-content > *{opacity:0; transform:translateY(18px);}
.slide.active .slide-content > *{animation:slideContentIn .7s cubic-bezier(.22,.61,.36,1) forwards;}
.slide.active .slide-content > *:nth-child(1){animation-delay:.15s;}
.slide.active .slide-content > *:nth-child(2){animation-delay:.28s;}
.slide.active .slide-content > *:nth-child(3){animation-delay:.41s;}
.slide.active .slide-content > *:nth-child(4){animation-delay:.54s;}
@keyframes slideContentIn{ to{opacity:1; transform:translateY(0);} }

.chapter-rail{
  position:absolute; z-index:4; top:0; right:0; bottom:0; width:230px;
  display:flex; flex-direction:column; justify-content:center;
  padding:0 26px; border-left:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(11,21,46,.25), rgba(11,21,46,.65));
}
.chapter{
  position:relative; padding:16px 0 16px 20px; cursor:pointer; border:none; background:none; text-align:left;
  color:rgba(255,255,255,.55); display:flex; flex-direction:column; gap:4px;
}
.chapter::before{content:""; position:absolute; left:0; top:0; bottom:0; width:1px; background:rgba(255,255,255,.25);}
.chapter .fill{position:absolute; left:0; top:0; width:1px; height:0; background:var(--accent-2);}
.chapter.active .fill{animation:fillrail 6s linear forwards;}
@keyframes fillrail{ from{height:0;} to{height:100%;} }
.chapter .idx{font-size:11.5px; font-family:var(--mono); letter-spacing:.06em; color:rgba(255,255,255,.4);}
.chapter.active .idx{color:#fff;}
.chapter .label{font-size:14.5px; color:rgba(255,255,255,.6); transition:color .3s ease;}
.chapter.active .label{color:#fff; font-weight:600;}
.chapter:hover .label{color:#fff;}

.hero-scroll{
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%);
  z-index:5;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color:rgba(255,255,255,.7); font-family:var(--mono); font-size:10.5px;
  letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  transition:color .3s ease;
}
.hero-scroll:hover{ color:#fff; }
.hero-scroll-line{
  width:1px; height:38px; background:rgba(255,255,255,.35);
  position:relative; overflow:hidden; border-radius:1px;
}
.hero-scroll-line::after{
  content:""; position:absolute; left:0; top:-38px; width:100%; height:38px;
  background:#fff; animation:scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{ top:-38px; }
  60%,100%{ top:38px; }
}

@media (max-width:900px){
  .hero-slider{ margin-top: 0; padding-top: 0; height:auto; min-height:0; max-height:none; }
  .chapter-rail{
    position:static; width:auto; flex-direction:row; border-left:none; border-top:1px solid rgba(255,255,255,.14);
    background:rgba(11,21,46,.55); padding:4px 18px;
  }
  .slide{position:absolute; min-height:min(540px, 86vh); flex-direction:column; align-items:stretch;}
  .slide.active{position:relative;}
  .slide-wrap{ padding:120px 22px 24px; max-width:none; }
  .slide-content{ max-width:none; padding:0; }
  .chapter{padding:11px 0; flex:1;}
  .chapter::before{left:0; right:0; top:0; bottom:auto; height:1px; width:auto;}
  .chapter .fill{height:1px; width:0;}
  .chapter.active .fill{animation:fillrailh 6s linear forwards;}
  @keyframes fillrailh{ from{width:0;} to{width:100%;} }
  .chapter .label{font-size:12.5px;}
  .hero-scroll{ display:none; }
}

/* ==========================================================================
   CREDIBILITY SECTION
   ========================================================================== */
.cred-section{
  position:relative;
  background: linear-gradient(165deg, #0B1226 0%, #141938 50%, #0F1730 100%);
  padding: 56px 0;
  overflow:hidden;
}
.cred-glow{position:absolute; border-radius:50%; pointer-events:none;}
.cred-glow-1{
  width:520px; height:520px; top:-260px; right:-160px;
  background: radial-gradient(circle, rgba(46,90,148,.30), transparent 65%);
}
.cred-glow-2{
  width:420px; height:420px; bottom:-220px; left:-140px;
  background: radial-gradient(circle, rgba(192,138,46,.12), transparent 65%);
}
.cred-section .cred-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
  position:relative; z-index:1;
}
.cred-card{
  position:relative;
  background: linear-gradient(165deg, rgba(255,255,255,.055) 0%, rgba(255,255,255,.02) 100%);
  border:1px solid rgba(143,176,224,.16);
  border-radius:14px;
  padding:24px 22px;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease, background .35s ease;
}
.cred-card:hover{
  transform: translateY(-5px);
  border-color: rgba(143,176,224,.36);
  background: linear-gradient(165deg, rgba(255,255,255,.09) 0%, rgba(255,255,255,.03) 100%);
  box-shadow: 0 24px 48px -24px rgba(0,0,0,.5);
}
.cred-section .cred-icon{
  width:48px; height:48px; margin-bottom:16px;
  display:flex; align-items:center; justify-content:center;
  border-radius:12px;
  background: linear-gradient(135deg, rgba(91,143,217,.24), rgba(46,90,148,.12));
  border:1px solid rgba(91,143,217,.36);
  color:#7FB0E8;
  transition: transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}
.cred-card:hover .cred-icon{
  background: linear-gradient(135deg, var(--accent-2), var(--accent));
  border-color: transparent;
  color:#fff;
  transform: scale(1.08) rotate(-4deg);
  box-shadow: 0 12px 26px -10px rgba(46,90,148,.6);
}
.cred-section .cred-icon svg{width:22px; height:22px;}
.cred-section .cred-num{
  font-family: var(--font-serif);
  font-size:26px; font-weight:500; letter-spacing:-.02em;
  color:#fff; line-height:1.1; margin-bottom:6px;
}
.cred-section .cred-label{
  font-size:12.5px; color:#9FB0C8; line-height:1.55; text-align:left;
}
@media (max-width:860px){
  .cred-section .cred-grid{grid-template-columns:repeat(2,1fr);}
  .cred-section{padding:48px 0;}
}
@media (max-width:520px){
  .cred-section .cred-grid{grid-template-columns:1fr;}
}

/* ---------- sections ---------- */
.section{padding:76px 0;}
.section-tight{padding:56px 0;}
.section-alt{background:var(--surface);}
.section-head{max-width:680px; margin-bottom:36px;}
.section-head h2{font-size:clamp(24px,3.2vw,34px); font-weight:500; line-height:1.25; letter-spacing:-.015em; color:var(--ink); font-family:var(--font-serif);}
.section-head .intro{color:var(--ink-2); font-size:15.5px; margin-top:14px;}

.section-head .kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.18em;
  color:var(--accent);
  margin-bottom:16px;
  text-transform:uppercase;
  font-weight:700;
  padding:0;
  border:0;
  background:transparent;
  line-height:1;
}
.section-head .kicker::before{
  content:"";
  display:inline-block;
  width:28px;
  height:2px;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  border-radius:2px;
}

/* ==========================================================================
   VISION SECTION
   ========================================================================== */
.vision-section{
  position:relative;
  background: linear-gradient(165deg, #0B1226 0%, #141938 45%, #0F1730 100%);
  color:#fff;
  padding: 96px 0 100px;
  overflow:hidden;
}
.vision-bg-grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(143,176,224,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143,176,224,.055) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 85%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 85%);
  pointer-events:none;
}
.vision-glow{position:absolute; border-radius:50%; pointer-events:none; filter: blur(2px);}
.vision-glow-1{
  width:640px; height:640px; top:-280px; right:-200px;
  background: radial-gradient(circle, rgba(46,90,148,.35), transparent 65%);
}
.vision-glow-2{
  width:520px; height:520px; bottom:-240px; left:-180px;
  background: radial-gradient(circle, rgba(192,138,46,.14), transparent 65%);
}

.vision-head{max-width:820px; margin-bottom:56px; position:relative; z-index:1;}
.vision-head h2{
  font-family:var(--font-serif); font-size:clamp(28px,3.6vw,42px); font-weight:500;
  line-height:1.2; letter-spacing:-.02em; color:#fff; margin-bottom:20px;
}
.vision-lede{
  font-size:16.5px; color:#B7C4D9; line-height:1.75; max-width:70ch;
  text-align: justify; hyphens: auto; -webkit-hyphens: auto;
}

.vision-kicker{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#8FB0E0;
  font-weight:700;
  padding:0;
  border:0;
  background:transparent;
  margin-bottom:22px;
  line-height:1;
}
.vision-kicker::before{
  content:"";
  display:inline-block;
  width:32px;
  height:2px;
  background:linear-gradient(90deg, #8FB0E0, rgba(143,176,224,.25));
  border-radius:2px;
}

.vision-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  position:relative; z-index:1;
}

.vision-card{
  position:relative;
  background: linear-gradient(165deg, rgba(255,255,255,.055) 0%, rgba(255,255,255,.025) 100%);
  border:1px solid rgba(143,176,224,.18);
  border-radius:16px;
  padding:30px 28px 28px;
  backdrop-filter: blur(8px);
  display:flex; flex-direction:column;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease, background .35s ease;
  overflow:hidden;
}
.vision-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, rgba(143,176,224,.5), transparent);
  opacity:0; transition:opacity .4s ease;
}
.vision-card:hover{
  transform: translateY(-6px);
  border-color: rgba(143,176,224,.4);
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.5);
  background: linear-gradient(165deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.03) 100%);
}
.vision-card:hover::before{opacity:1;}

.vision-card-top{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:22px;
}
.vision-icon{
  width:48px; height:48px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  transition: transform .3s ease;
}
.vision-icon svg{width:24px; height:24px;}
.vision-card:hover .vision-icon{ transform: scale(1.08) rotate(-4deg); }
.vision-icon-blue{
  background: linear-gradient(135deg, rgba(91,143,217,.25), rgba(46,90,148,.15));
  border:1px solid rgba(91,143,217,.4);
  color:#7FB0E8;
}
.vision-icon-amber{
  background: linear-gradient(135deg, rgba(192,138,46,.22), rgba(192,138,46,.10));
  border:1px solid rgba(192,138,46,.4);
  color:#E4B96A;
}
.vision-icon-green{
  background: linear-gradient(135deg, rgba(46,139,87,.25), rgba(46,139,87,.10));
  border:1px solid rgba(46,139,87,.4);
  color:#6FD3A0;
}
.vision-tag{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:#8FA0BC; font-weight:600;
  padding:5px 10px; border:1px solid rgba(143,160,188,.25); border-radius:14px;
}

.vision-figure{
  font-family:var(--font-serif);
  font-size: clamp(34px, 3.8vw, 46px);
  font-weight: 500; letter-spacing:-.03em; line-height:1;
  color:#fff; margin-bottom:10px;
  display:flex; align-items:baseline; flex-wrap:wrap; gap:0;
}
.vision-unit{
  font-size: 0.55em; color:#8FA0BC; font-weight: 500; margin-left:4px;
}
.vision-unit-prefix{ margin-left:0; margin-right:6px; }
.vision-figure-sep{ color:#8FA0BC; margin:0 10px; font-size:0.7em; font-weight:400; }
.vision-arrow{ color:#6FD3A0; margin:0 10px; font-size:0.7em; }

.vision-label{
  font-size:13.5px; color:#B7C4D9; line-height:1.55; margin-bottom:24px;
  text-transform:none; letter-spacing:0;
}

/* CARD 1: donut */
.vision-donut{
  position:relative; width:100%;
  aspect-ratio:1/1; max-width:170px;
  margin: 4px auto 20px;
  display:flex; align-items:center; justify-content:center;
}
.vision-donut svg{ width:100%; height:100%; }
.vision-donut svg .donut-arc{
  transition: stroke-dashoffset 1.6s cubic-bezier(.22,.61,.36,1) .2s;
}
.reveal-stagger.in-view .vision-donut .donut-arc{
  stroke-dashoffset: 13.2;
}
.vision-donut-center{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center;
}
.vision-donut-center strong{
  font-family:var(--font-serif);
  font-size:30px; font-weight:500; color:#fff; letter-spacing:-.02em; line-height:1;
}
.vision-donut-center span{
  font-family:var(--mono); font-size:10px; letter-spacing:.12em;
  text-transform:uppercase; color:#8FA0BC; margin-top:6px;
}

.vision-mini-legend{
  display:flex; flex-direction:column; gap:8px; margin-top:auto;
}
.vision-mini-item{
  display:flex; align-items:center; gap:8px;
  font-size:12px; color:#B7C4D9;
  padding:8px 12px; border-radius:8px;
  background: rgba(255,255,255,.03);
  border:1px solid rgba(143,176,224,.10);
}
.vision-mini-item .u{ margin-left:auto; color:#fff; font-weight:600; font-family:var(--mono); font-size:11.5px; }
.vision-mini-dot{
  width:8px; height:8px; border-radius:50%; flex-shrink:0;
}
.vision-mini-strong .vision-mini-dot{ background:linear-gradient(135deg,#5B8FD9,#7FB0E8); box-shadow:0 0 0 3px rgba(91,143,217,.2); }
.vision-mini-soft .vision-mini-dot{ background:rgba(143,176,224,.35); }

/* CARD 2: columns */
.vision-columns{
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
  margin-top:auto;
  padding-top:8px;
}
.vision-col{
  display:flex; flex-direction:column; align-items:center; gap:8px;
}
.vision-col-value{
  font-family:var(--mono); font-size:14px; font-weight:700;
  color:#fff;
}
.vision-col-track{
  width:100%; height:80px;
  background: rgba(255,255,255,.05);
  border-radius:8px;
  display:flex; align-items:flex-end;
  overflow:hidden;
  border:1px solid rgba(143,176,224,.10);
  padding:4px;
}
.vision-col-fill{
  width:100%; height:0; border-radius:5px;
  transition: height 1.4s cubic-bezier(.22,.61,.36,1) .2s;
}
.reveal-stagger.in-view .vision-col-fill{ height: var(--h); }
.vision-col-soft{ background: linear-gradient(180deg, rgba(143,176,224,.55), rgba(143,176,224,.25)); }
.vision-col-strong{ background: linear-gradient(180deg, #5B8FD9, #2E5A94); box-shadow: 0 -6px 18px -6px rgba(91,143,217,.5); }
.vision-col-label{
  font-size:11px; color:#9FB0C8; text-align:center; letter-spacing:.02em;
}

/* CARD 3: area chart */
.vision-trend{position:relative; margin-top:auto; padding-top:8px;}
.vision-trend svg{width:100%; height:90px; overflow:visible; display:block;}
.vision-trend-line{
  stroke:#6FD3A0; stroke-width:2.5; fill:none; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:400; stroke-dashoffset:400;
  transition: stroke-dashoffset 1.6s cubic-bezier(.22,.61,.36,1) .2s;
}
.reveal-stagger.in-view .vision-trend-line{ stroke-dashoffset:0; }
.trend-dot{
  fill:#6FD3A0;
  opacity:0;
  transition: opacity .4s ease 1.2s;
}
.reveal-stagger.in-view .trend-dot{ opacity:1; }
.trend-dot-start{ fill:rgba(143,176,224,.6); }
.trend-dot-end{ fill:#6FD3A0; filter: drop-shadow(0 0 6px rgba(111,211,160,.6)); }

.vision-trend-years{
  display:flex; justify-content:space-between; font-family:var(--mono); font-size:11px;
  color:#8FA0BC; margin-top:8px;
}
.vision-trend-badge{
  display:inline-block; margin-top:12px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.1em;
  text-transform:uppercase; font-weight:700;
  color:#6FD3A0;
  padding:5px 12px; border-radius:14px;
  background: rgba(46,139,87,.14);
  border:1px solid rgba(46,139,87,.35);
}

@media (max-width:900px){
  .vision-grid{grid-template-columns:1fr;}
  .vision-section{padding:72px 0 76px;}
}

/* ==========================================================================
   SERVICES
   ========================================================================== */
.services-section{ background: var(--surface); }
.services-cards{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
  margin-top:8px;
}
.svc-card{
  position:relative;
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:14px;
  padding: 28px 26px 26px;
  overflow:hidden;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease;
}
.svc-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  transform: scaleX(0); transform-origin:left;
  transition: transform .45s cubic-bezier(.22,.61,.36,1);
}
.svc-card:hover{
  transform: translateY(-6px);
  border-color: var(--accent-2);
  box-shadow: 0 28px 56px -28px rgba(11,21,46,.28);
}
.svc-card:hover::before{ transform: scaleX(1); }

.svc-num{
  position:absolute; top:22px; right:24px;
  font-family: var(--mono); font-size:12px; letter-spacing:.1em;
  color: var(--line-strong); font-weight:700;
  transition: color .3s ease;
}
.svc-card:hover .svc-num{ color: var(--accent-2); }

.svc-icon{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:14px;
  margin-bottom:18px;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease;
}
.svc-icon svg{width:26px; height:26px;}
.svc-card:hover .svc-icon{
  transform: scale(1.06) rotate(-4deg);
  box-shadow: 0 14px 28px -12px rgba(11,21,46,.28);
}
.svc-icon-blue{ background: linear-gradient(135deg, #E3EAF5, #D2DEF0); color: #1A3A66; }
.svc-icon-green{ background: linear-gradient(135deg, #E1F3EE, #CCEADF); color: #1F7A4D; }
.svc-icon-amber{ background: linear-gradient(135deg, #FBF0DC, #F6E3BE); color: #A87422; }
.svc-icon-rose{ background: linear-gradient(135deg, #FBEAE8, #F5D5D0); color: #B3261E; }
.svc-icon-violet{ background: linear-gradient(135deg, #EFE6FB, #E0D0F5); color: #6B3FA0; }
.svc-icon-teal{ background: linear-gradient(135deg, #DEF1F1, #C6E5E5); color: #1A7575; }

.svc-card h3{
  font-size:16.5px; font-weight:700; margin-bottom:8px; color: var(--ink);
  font-family: var(--font);
}
.svc-card p{
  font-size:14px; color: var(--ink-2); line-height:1.65;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

@media (max-width:900px){ .services-cards{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .services-cards{grid-template-columns:1fr;} }

/* ==========================================================================
   PROCESS SECTION
   ========================================================================== */
.process-section{
  position:relative;
  background: var(--ground);
  overflow:hidden;
  padding: 96px 0 88px;
}
.process-bg-grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(26,58,102,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(26,58,102,.05) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse at center, #000 25%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 25%, transparent 80%);
  pointer-events:none;
}
.process-head{
  max-width: 720px;
  margin: 0 auto 56px;
  text-align: center;
  position: relative;
  z-index: 1;
}
.process-head .kicker{ margin-bottom: 14px; }
.process-head h2{ margin-bottom: 14px; }
.process-head .intro{ margin-left: auto; margin-right: auto; }

.process-stepper{
  position:relative;
  display:grid; grid-template-columns:repeat(5,1fr); gap:20px;
  z-index:1;
}
.process-line{
  position:absolute; top:40px; left:9%; right:9%; height:2px;
  background: var(--line);
  border-radius:2px;
  z-index:0;
  overflow:hidden;
}
.process-line-fill{
  height:100%; width:0;
  background: linear-gradient(90deg, var(--accent-2), var(--accent));
  border-radius:2px;
  transition: width 2.4s cubic-bezier(.22,.61,.36,1);
}
.process-stepper.in-view .process-line-fill{ width:100%; }

.process-step{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:center;
  text-align: center;
}
.process-marker{
  position:relative;
  width:80px; height:80px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--surface);
  border:2px solid var(--line);
  color: var(--accent);
  box-shadow: 0 10px 28px -12px rgba(11,21,46,.22);
  margin-bottom:22px;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease, background .35s ease, color .35s ease;
}
.process-icon svg{ width:34px; height:34px; }
.process-num{
  position:absolute; top:-8px; right:-8px;
  width:28px; height:28px; border-radius:50%;
  background: var(--surface);
  border:2px solid var(--accent);
  color: var(--accent);
  font-family: var(--mono); font-size:12px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 4px 10px -3px rgba(11,21,46,.18);
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.process-step:hover .process-marker{
  background: linear-gradient(135deg, var(--navy), var(--accent-2));
  border-color: transparent;
  color:#fff;
  transform: scale(1.08);
  box-shadow: 0 18px 36px -14px rgba(11,21,46,.4);
}
.process-step:hover .process-num{
  background: var(--accent);
  color:#fff;
  border-color: var(--accent);
}

.process-card{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  padding: 20px 18px;
  width:100%;
  text-align:center;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease;
}
.process-step:hover .process-card{
  transform: translateY(-4px);
  border-color: var(--accent-2);
  box-shadow: 0 20px 40px -22px rgba(11,21,46,.22);
}
.process-card h4{
  font-family: var(--font); font-size:16px; font-weight:700;
  color: var(--ink); margin-bottom:6px;
}
.process-card p{
  font-size:13px; color: var(--muted); line-height:1.6; margin-bottom:12px;
  text-align:center;
}
.process-chip{
  display:inline-block;
  font-family: var(--mono); font-size:11px; font-weight:600;
  color: var(--accent); background: var(--accent-soft);
  padding:4px 10px; border-radius:20px;
}

.process-total{
  margin-top:48px;
  padding: 24px 32px;
  background: linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);
  border-radius: 14px;
  color:#fff;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  position:relative; z-index:1;
  box-shadow: 0 24px 48px -24px rgba(11,21,46,.5);
}
.process-total-left{ display:flex; flex-direction:column; gap:4px; }
.process-total-lbl{
  font-family: var(--mono); font-size:11px; letter-spacing:.12em;
  text-transform:uppercase; color:#9FB4D8; font-weight:700;
}
.process-total-val{ font-family: var(--font-serif); font-size: 24px; font-weight:500; letter-spacing:-.015em; }
.process-total-val .u{ color:#7FA8E0; }

.diagram-caption{margin-top:32px; font-size:13.5px; color:var(--muted); position:relative; z-index:1; text-align:center;}

@media (max-width:900px){
  .process-stepper{ grid-template-columns:1fr; gap:0; }
  .process-line{ display:none; }
  .process-step{ flex-direction:row; align-items:flex-start; gap:18px; padding: 18px 0; border-bottom:1px solid var(--line); text-align:left; }
  .process-step:last-child{ border-bottom:none; }
  .process-marker{ margin-bottom:0; flex-shrink:0; width:66px; height:66px; }
  .process-icon svg{ width:28px; height:28px; }
  .process-card{ text-align:left; }
  .process-card p{ text-align:left; }
  .process-total-val{ font-size:20px; }
  .diagram-caption{ text-align:left; }
}

/* ==========================================================================
   VERTICAL TIMELINE — Partner page
   ========================================================================== */
.timeline-section{ background: var(--ground); position:relative; }
.vtimeline{
  position:relative; max-width:820px; margin-top:8px;
  padding-left:8px;
}
.vtimeline::before{
  content:""; position:absolute; top:14px; bottom:14px; left:36px; width:2px;
  background: linear-gradient(180deg, var(--accent-2) 0%, var(--accent) 40%, var(--line-strong) 100%);
  border-radius:2px;
}
.vtl-item{
  position:relative;
  display:grid; grid-template-columns:72px 1fr; gap:22px;
  padding: 0 0 32px;
}
.vtl-item:last-child{ padding-bottom:0; }
.vtl-marker{ position:relative; z-index:1; display:flex; justify-content:center; padding-top:4px; }
.vtl-badge{
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--surface);
  border:2px solid var(--line);
  color: var(--accent);
  box-shadow: 0 6px 18px -8px rgba(11,21,46,.18);
  transition: transform .3s ease, box-shadow .3s ease;
}
.vtl-badge svg{ width:24px; height:24px; }
.vtl-item:hover .vtl-badge{ transform: scale(1.06); box-shadow: 0 12px 26px -12px rgba(11,21,46,.28); }
.vtl-badge-blue{ background: linear-gradient(135deg, #E3EAF5, #FFFFFF); border-color: rgba(46,90,148,.45); color: #1A3A66; }
.vtl-badge-amber{ background: linear-gradient(135deg, #FBF0DC, #FFFFFF); border-color: rgba(192,138,46,.45); color: #A87422; }
.vtl-badge-green{ background: linear-gradient(135deg, #E1F3EE, #FFFFFF); border-color: rgba(46,139,87,.45); color: #1F7A4D; }
.vtl-badge-navy{ background: linear-gradient(135deg, #141938, #1A3A66); border-color: transparent; color: #fff; }
.vtl-badge-navy svg{ color:#fff; }

.vtl-card{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius: 12px;
  padding: 20px 24px;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.vtl-item:hover .vtl-card{
  transform: translateY(-3px);
  border-color: var(--accent-2);
  box-shadow: 0 20px 40px -22px rgba(11,21,46,.22);
}
.vtl-when{
  display:inline-flex; align-items:center; gap:8px;
  font-family: var(--mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  color: var(--accent); font-weight:700; margin-bottom:8px;
}
.vtl-dot{ width:6px; height:6px; border-radius:50%; background: var(--accent-2); box-shadow: 0 0 0 3px var(--accent-soft); }
.vtl-card h4{ font-size:16px; font-weight:700; margin-bottom:6px; color: var(--ink); }
.vtl-card p{ font-size:14.5px; color: var(--ink-2); line-height:1.7; }

@media (max-width:640px){
  .vtimeline::before{ left:24px; }
  .vtl-item{ grid-template-columns: 48px 1fr; gap:14px; }
  .vtl-badge{ width:44px; height:44px; }
  .vtl-badge svg{ width:20px; height:20px; }
  .vtl-card{ padding:16px 18px; }
}

/* ---------- manufacture band ---------- */
.mfg-band{background:var(--navy); color:#fff;}
.mfg-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; padding-top:72px; padding-bottom:72px;}
.mfg-grid h2{font-size:clamp(24px,3.2vw,34px); font-weight:500; font-family:var(--font-serif); margin-bottom:16px; line-height:1.25; letter-spacing:-.015em;}
.mfg-grid p{color:#C7D4E8; font-size:15.5px; margin-bottom:24px;}
.mfg-photo{
  background:linear-gradient(160deg, #1E2A50, #10162E); border:1px solid rgba(255,255,255,.12);
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; border-radius:6px; position:relative; overflow:hidden;
}
.mfg-photo::after{
  content:""; position:absolute; width:260px; height:260px; border-radius:50%;
  background:radial-gradient(circle, rgba(46,90,148,.35), transparent 70%); top:-90px; right:-60px; pointer-events:none;
}
.mfg-photo svg{width:56%; opacity:.92; position:relative; z-index:1;}
.mfg-pulse{animation:mfgPulse 2.2s ease-in-out infinite;}
.mfg-pulse:nth-child(2){animation-delay:.3s;}
.mfg-pulse:nth-child(3){animation-delay:.6s;}
@keyframes mfgPulse{ 0%,100%{opacity:.4;} 50%{opacity:1;} }
@media (max-width:860px){ .mfg-grid{grid-template-columns:1fr; padding-top:52px; padding-bottom:52px;} }

/* ==========================================================================
   PORTFOLIO SECTION
   ========================================================================== */
.portfolio-section{
  position:relative;
  background: linear-gradient(180deg, #EEF1F7 0%, #E6EBF4 100%);
  padding: 96px 0;
  overflow:hidden;
}
.portfolio-bg-glow{
  position:absolute; top:-200px; right:-200px;
  width:640px; height:640px; border-radius:50%;
  background: radial-gradient(circle, rgba(46,90,148,.10), transparent 65%);
  pointer-events:none;
}

.portfolio-head{max-width:720px; margin-bottom:52px; position:relative; z-index:1;}
.portfolio-head h2{
  font-family:var(--font-serif); font-size:clamp(28px,3.4vw,40px);
  font-weight:500; line-height:1.2; letter-spacing:-.02em; color:var(--ink);
  margin-bottom:16px;
}
.portfolio-lede{
  font-size:16px; color:var(--ink-2); line-height:1.75; max-width:65ch;
  text-align:justify; hyphens:auto; -webkit-hyphens:auto;
}

.portfolio-head .kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:700;
  padding:0;
  border:0;
  background:transparent;
  margin-bottom:20px;
  line-height:1;
}
.portfolio-head .kicker::before{
  content:"";
  display:inline-block;
  width:28px;
  height:2px;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  border-radius:2px;
}

.portfolio-cards{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  position:relative; z-index:1;
}

.portfolio-card{
  position:relative;
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  padding: 28px 26px 26px;
  display:flex; flex-direction:column;
  overflow:hidden;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, border-color .35s ease;
}
.portfolio-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:var(--accent);
  transition: height .35s ease;
}
.portfolio-card:hover{
  transform: translateY(-8px);
  box-shadow: 0 32px 64px -32px rgba(11,21,46,.30);
}
.portfolio-card:hover::before{ height:6px; }

.portfolio-card-immunology::before{ background: linear-gradient(90deg, #6B3FA0, #A17BE0); }
.portfolio-card-immunology .portfolio-icon-badge{
  background: linear-gradient(135deg, #EFE6FB, #E0D0F5);
  color: #6B3FA0;
}
.portfolio-card-immunology .portfolio-progress-fill{
  background: linear-gradient(90deg, #6B3FA0, #A17BE0);
}
.portfolio-card-immunology .portfolio-tag-immunology{
  background: #EFE6FB; color: #6B3FA0; border-color: rgba(107,63,160,.25);
}

.portfolio-card-diabetes::before{ background: linear-gradient(90deg, #1D7A62, #46B394); }
.portfolio-card-diabetes .portfolio-icon-badge{
  background: linear-gradient(135deg, #E1F3EE, #CCEADF);
  color: #1D7A62;
}
.portfolio-card-diabetes .portfolio-progress-fill{
  background: linear-gradient(90deg, #1D7A62, #46B394);
}
.portfolio-card-diabetes .portfolio-tag-diabetes{
  background: #E1F3EE; color: #1D7A62; border-color: rgba(29,122,98,.25);
}

.portfolio-card-nephrology::before{ background: linear-gradient(90deg, #1A5AA0, #4A8AC9); }
.portfolio-card-nephrology .portfolio-icon-badge{
  background: linear-gradient(135deg, #E3EEFB, #CFDFF3);
  color: #1A5AA0;
}
.portfolio-card-nephrology .portfolio-progress-fill{
  background: linear-gradient(90deg, #1A5AA0, #4A8AC9);
}
.portfolio-card-nephrology .portfolio-tag-nephrology{
  background: #E3EEFB; color: #1A5AA0; border-color: rgba(26,90,160,.25);
}

.portfolio-num{
  position:absolute; top:22px; right:24px;
  font-family: var(--mono); font-size:12px; letter-spacing:.12em;
  color: var(--line-strong); font-weight:700;
  transition: color .3s ease;
}
.portfolio-card:hover .portfolio-num{ color: var(--accent); }

.portfolio-card-head{
  display:flex; align-items:flex-start; gap:14px;
  margin-bottom:22px;
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
}
.portfolio-icon-badge{
  width:52px; height:52px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  transition: transform .35s cubic-bezier(.22,.61,.36,1);
}
.portfolio-icon-badge svg{ width:26px; height:26px; }
.portfolio-card:hover .portfolio-icon-badge{ transform: scale(1.08) rotate(-5deg); }

.portfolio-head-text{ display:flex; flex-direction:column; gap:2px; }
.portfolio-name{
  font-family: var(--font-serif); font-size:22px; font-weight:500;
  color: var(--ink); letter-spacing:-.01em; margin:0; line-height:1.15;
  text-transform:none;
}
.portfolio-inn{
  font-family: var(--mono); font-size:11.5px; color: var(--muted);
  letter-spacing:.02em; line-height:1.5;
}

.portfolio-body{
  display:flex; flex-direction:column; gap:12px;
  margin-bottom:24px;
}
.portfolio-row{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:14px;
  font-size:13px;
}
.portfolio-row-key{
  color: var(--muted); flex-shrink:0;
}
.portfolio-row-val{
  color: var(--ink-2); font-weight:600; text-align:right;
}

.portfolio-progress{
  margin-top:auto;
  padding-top:18px;
  border-top:1px solid var(--line);
  margin-bottom:16px;
}
.portfolio-progress-top{
  display:flex; justify-content:space-between; align-items:baseline;
  font-size:11.5px; color:var(--muted);
  margin-bottom:10px;
  font-family:var(--mono); letter-spacing:.02em;
}
.portfolio-progress-top .u{ color:var(--accent); font-weight:600; }
.portfolio-progress-track{
  height:6px; border-radius:3px;
  background: var(--surface-2);
  overflow:hidden;
  border:1px solid var(--line);
}
.portfolio-progress-fill{
  height:100%; border-radius:3px; width:0;
  transition: width 1.4s cubic-bezier(.22,.61,.36,1) .2s;
}
.reveal-stagger.in-view .portfolio-progress-fill{
  width: var(--w);
}

.portfolio-tag{
  display:inline-block;
  font-family: var(--mono); font-size:10.5px; letter-spacing:.08em;
  text-transform:uppercase; font-weight:700;
  padding:5px 12px; border-radius:20px;
  border:1px solid transparent;
  align-self:flex-start;
}

.portfolio-notice{
  display:flex; gap:14px; align-items:flex-start;
  margin-top:36px; padding:20px 22px;
  background: var(--surface);
  border:1px solid var(--line);
  border-left:4px solid var(--accent);
  border-radius: 8px;
  position:relative; z-index:1;
}
.portfolio-notice-icon{
  flex-shrink:0;
  width:20px; height:20px;
  color: var(--accent);
  margin-top:2px;
}
.portfolio-notice-icon svg{ width:100%; height:100%; }
.portfolio-notice p{
  font-size:13.5px; color: var(--ink-2); line-height:1.7;
  text-align: justify; hyphens:auto; -webkit-hyphens:auto;
  margin:0;
}
.portfolio-notice strong{ color: var(--ink); font-weight:700; }

@media (max-width:900px){
  .portfolio-cards{ grid-template-columns:1fr; }
  .portfolio-section{ padding:72px 0; }
  .portfolio-notice{ padding:16px 18px; }
}

/* ---------- final CTA band ---------- */
.cta-band{background:linear-gradient(135deg, var(--accent) 0%, var(--navy) 100%); color:#fff; padding:64px 0;}
.cta-band-inner{display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;}
.cta-band h2{font-size:clamp(22px,2.8vw,32px); font-weight:500; font-family:var(--font-serif); max-width:24ch; letter-spacing:-.015em;}
.cta-band .note{font-size:13.5px; color:#D7E2F2; margin-top:10px;}

/* ---------- about / team ---------- */
.about-copy{max-width:720px; display:flex; flex-direction:column; gap:16px; font-size:15.5px; color:var(--ink-2);}
.team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:32px;}
.team-card{background:var(--surface); border:1px solid var(--line); padding:20px;}
.team-photo{aspect-ratio:1/1; background:var(--surface-2); border:1px solid var(--line); border-radius:var(--radius); margin-bottom:14px; display:flex; align-items:center; justify-content:center;}
.team-photo svg{width:38%; color:var(--line-strong);}
.team-card .name{font-weight:700; font-size:15px;}
.team-card .role{font-size:13px; color:var(--accent); margin-top:2px;}
.team-card .bio{font-size:13px; color:var(--muted); margin-top:8px; line-height:1.6;}
@media (max-width:760px){ .team-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:480px){ .team-grid{grid-template-columns:1fr;} }

/* ---------- bullet lists ---------- */
.check-list{display:flex; flex-direction:column; gap:12px; margin-top:8px;}
.check-list li{display:flex; gap:12px; font-size:15px; color:var(--ink-2); align-items:flex-start; text-align: left;}
.check-list li::before{content:"—"; color:var(--accent); flex-shrink:0;}
.closing-line{margin-top:20px; font-size:14.5px; color:var(--muted); font-style:italic;}

/* ---------- legacy timeline ---------- */
.timeline{display:flex; flex-direction:column; gap:0; margin-top:8px;}
.tl-row{display:grid; grid-template-columns:180px 1fr; gap:20px; padding:20px 0; border-top:1px solid var(--line);}
.tl-row:last-child{border-bottom:1px solid var(--line);}
.tl-when{font-family:var(--mono); font-size:13px; color:var(--accent); font-weight:600;}
.tl-body{font-size:14.5px; color:var(--ink-2); line-height:1.7;}
@media (max-width:640px){ .tl-row{grid-template-columns:1fr; gap:6px;} }

/* ---------- FAQ accordion ---------- */
.faq{max-width:760px; margin-top:8px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%; text-align:left; background:none; border:none; padding:18px 0; display:flex; align-items:center; justify-content:space-between;
  font-size:15.5px; font-weight:600; color:var(--ink); gap:16px;
}
.faq-q .plus{font-family:var(--mono); font-size:18px; color:var(--accent); transition:transform .2s ease; flex-shrink:0;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.faq-a p{font-size:14.5px; color:var(--ink-2); padding-bottom:18px; line-height:1.7; max-width:64ch;}

/* ---------- form ---------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:8px;}
.form-grid .full{grid-column:1 / -1;}
.field label{display:block; font-size:13.5px; font-weight:600; color:var(--ink-2); margin-bottom:6px;}
.field input, .field select, .field textarea{
  width:100%; border:1px solid var(--line-strong); border-radius:var(--radius); padding:11px 12px; font:inherit; font-size:14.5px;
  background:var(--surface); color:var(--ink);
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--accent);}
.field .hint{font-size:12px; color:var(--muted); margin-top:5px;}
.field textarea{min-height:96px; resize:vertical;}
.field-consent{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:var(--ink-2);}
.field-consent input{width:16px; height:16px; margin-top:3px; flex-shrink:0;}
.field-error{font-size:12.5px; color:#B3261E; margin-top:5px; display:none;}
.field.invalid input, .field.invalid select, .field.invalid textarea{border-color:#B3261E;}
.field.invalid .field-error{display:block;}
.form-foot{margin-top:22px; display:flex; align-items:center; gap:20px; flex-wrap:wrap;}
.form-success{
  display:none; background:var(--ok-soft); border:1px solid var(--ok); border-radius:var(--radius); padding:24px; margin-top:8px;
}
.form-success h3{color:var(--ok); font-size:16px; margin-bottom:8px;}
.form-success p{font-size:14.5px; color:var(--ink-2);}
.form-wrap.submitted form{display:none;}
.form-wrap.submitted .form-success{display:block;}

/* ---------- contact (legacy) ---------- */
.contact-split{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
.contact-route{padding:14px 0; border-top:1px solid var(--line);}
.contact-route:last-child{border-bottom:1px solid var(--line);}
.contact-route .label{font-weight:700; font-size:14.5px;}
.contact-route .value{font-size:14px; color:var(--accent); margin-top:2px;}
.contact-route .desc{font-size:12.5px; color:var(--muted); margin-top:2px;}
.office-line{margin-top:18px; font-size:13.5px; color:var(--muted); line-height:1.8;}
.conduct-list{display:flex; flex-direction:column; gap:12px;}
.conduct-list li{font-size:13.5px; color:var(--ink-2); line-height:1.7; padding-left:16px; position:relative; text-align:left;}
.conduct-list li::before{content:""; position:absolute; left:0; top:9px; width:5px; height:5px; border-radius:50%; background:var(--accent);}
@media (max-width:760px){ .contact-split{grid-template-columns:1fr; gap:32px;} }

/* ---------- footer ---------- */
footer{background:var(--ink); color:#B7C4D9; padding-top:56px; position:relative; overflow:hidden;}
footer::before{
  content:""; position:absolute; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(46,90,148,.16), transparent 70%); top:-220px; right:-140px; pointer-events:none;
}
.footer-notice{
  position:relative; max-width:80ch; margin:0 auto 36px; padding:0 24px 30px; border-bottom:1px solid rgba(255,255,255,.1);
  font-size:12.5px; color:#8FA0BC; line-height:1.7;
}
.footer-notice a{color:#B7C4D9; text-decoration:underline;}
.footer-grid{position:relative; max-width:var(--maxw); margin:0 auto; padding:0 24px 40px; display:grid; grid-template-columns:1.2fr 1fr 1fr 1.1fr; gap:36px;}
.footer-brand-col img{height:48px; width:auto; margin-bottom:14px;}
.footer-brand-col p{font-size:13px; color:#8FA0BC; line-height:1.7; max-width:34ch;}
.footer-col h5{font-size:12.5px; text-transform:uppercase; letter-spacing:.06em; color:#7C8FB0; margin-bottom:16px; font-weight:700;}
.footer-col ul{display:flex; flex-direction:column; gap:11px;}
.footer-col a{font-size:13.5px; color:#C6D2E4; transition:color .2s ease;}
.footer-col a:hover{color:#fff;}
.footer-contact-item{display:flex; align-items:flex-start; gap:10px; margin-bottom:14px;}
.footer-contact-item:last-child{margin-bottom:0;}
.footer-contact-item svg{width:16px; height:16px; color:#7FA8E0; flex-shrink:0; margin-top:2px;}
.footer-contact-item a, .footer-contact-item span{font-size:13.5px; color:#C6D2E4; line-height:1.55;}
.footer-contact-item a:hover{color:#fff;}
.footer-bottom{
  position:relative; border-top:1px solid rgba(255,255,255,.1); padding:22px 24px; max-width:var(--maxw); margin:0 auto;
  font-size:12px; color:#6E7F9C; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
}
.footer-bottom .u{color:#8FA0BC;}
@media (max-width:860px){ .footer-grid{grid-template-columns:1fr 1fr; row-gap:32px;} }
@media (max-width:520px){ .footer-grid{grid-template-columns:1fr;} }

/* ---------- legal pages (legacy body) ---------- */
.legal-body{max-width:720px;}
.legal-body h2{font-size:19px; font-weight:700; margin:32px 0 12px; color:var(--ink); font-family:var(--font);}
.legal-body h2:first-child{margin-top:0;}
.legal-body p{font-size:15px; color:var(--ink-2); margin-bottom:14px; line-height:1.75;}
.legal-body ul{margin:0 0 14px; padding-left:20px;}
.legal-body li{font-size:15px; color:var(--ink-2); line-height:1.75; list-style:disc; margin-bottom:6px;}
.urgent-notice{
  background:#FBEAE8; border:1px solid #E3A79E; color:#7A2A20; padding:16px 18px; border-radius:var(--radius);
  font-size:14px; margin-bottom:28px; line-height:1.6;
}
.cookie-banner{
  position:fixed; left:20px; right:20px; bottom:20px; z-index:90; max-width:640px; margin:0 auto;
  background:var(--ink); color:#E5EAF2; padding:18px 20px; border-radius:6px; box-shadow:0 12px 30px rgba(0,0,0,.25);
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  transition:opacity .25s ease, transform .25s ease;
}
.cookie-banner[hidden]{ display:none !important; }
.cookie-banner p{font-size:13px; flex:1; min-width:220px; line-height:1.6;}
.cookie-actions{display:flex; gap:10px;}
.cookie-actions button{padding:9px 16px; border-radius:var(--radius); font-size:13px; font-weight:600;}
.cookie-accept{background:var(--accent); color:#fff; border:1px solid var(--accent);}
.cookie-necessary{background:transparent; color:#E5EAF2; border:1px solid rgba(255,255,255,.35);}

/* ---------- 404 (legacy) ---------- */
.notfound{padding:110px 0; text-align:center;}
.notfound h1{font-size:28px; margin-bottom:12px;}
.notfound p{color:var(--muted); margin-bottom:24px;}

/* ==========================================================================
   PARTNER PAGE
   ========================================================================== */
.partner-hero{
  position:relative;
  background: linear-gradient(160deg, #0B1226 0%, #141938 50%, #1A2547 100%);
  color:#fff;
  padding: 214px 0 96px;
  overflow:hidden;
  margin-top: -84px;
}
.partner-hero-video{
  padding: 214px 0 110px;
}

/* video background */
.partner-hero-bg-video{
  position:absolute; inset:0;
  overflow:hidden;
  z-index:0;
}
.partner-hero-bg-video video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:.42;
  filter: saturate(.7) brightness(.6);
}
.partner-hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(ellipse 80% 60% at 30% 40%, rgba(11,21,46,.55) 0%, rgba(11,21,46,.88) 60%, rgba(11,21,46,.98) 100%),
    linear-gradient(180deg, rgba(11,21,46,.7) 0%, rgba(11,21,46,.85) 100%);
  pointer-events:none;
}
.partner-hero-bg{
  position:absolute; inset:0; z-index:1;
  background-image:
    linear-gradient(rgba(143,176,224,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143,176,224,.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  pointer-events:none;
}
.partner-hero-glow{
  position:absolute; border-radius:50%; pointer-events:none; z-index:1;
  width:720px; height:720px; top:-300px; right:-260px;
  background: radial-gradient(circle, rgba(46,90,148,.42), transparent 62%);
}
.partner-hero-inner{ position:relative; z-index:2; max-width:820px; }

.partner-hero-badge{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; color:#8FB0E0; font-weight:700;
  padding:8px 16px; border:1px solid rgba(143,176,224,.3);
  border-radius:20px; margin-bottom:28px;
  background: rgba(143,176,224,.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.partner-hero-dot,
.contact-hero-dot,
.safety-hero-dot,
.mfg-hero-dot{
  width:7px; height:7px; border-radius:50%;
  background:#6FD3A0;
  box-shadow: 0 0 0 4px rgba(111,211,160,.2), 0 0 12px rgba(111,211,160,.7);
  animation: heroDot 2s ease-in-out infinite;
}
@keyframes heroDot{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.55; transform:scale(.8); }
}

.partner-hero h1{
  font-family:var(--font-serif);
  font-size:clamp(30px,4.2vw,50px);
  font-weight:500; line-height:1.15; letter-spacing:-.02em;
  color:#fff; margin-bottom:24px;
}
.partner-hero-sub{
  font-size:17px; color:#C7D4E8; max-width:64ch;
  margin-bottom:44px; line-height:1.7;
  text-align:left;
}

.partner-hero-stats{
  display:grid; grid-template-columns:repeat(3,auto);
  gap:16px; max-width:620px;
}
.partner-hero-stat{
  background: rgba(255,255,255,.055);
  border:1px solid rgba(143,176,224,.2);
  border-radius:12px;
  padding:18px 22px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: transform .3s ease, border-color .3s ease, background .3s ease;
}
.partner-hero-stat:hover{
  transform: translateY(-3px);
  border-color: rgba(143,176,224,.42);
  background: rgba(255,255,255,.09);
}
.partner-hero-stat-num{
  display:block;
  font-family:var(--font-serif);
  font-size:34px; font-weight:500; letter-spacing:-.02em;
  color:#fff; line-height:1; margin-bottom:6px;
}
.partner-hero-stat-lbl{
  font-size:11.5px; color:#8FA0BC; letter-spacing:.04em;
  font-family:var(--mono);
}
@media (max-width:760px){
  .partner-hero{ padding-top:140px; padding-bottom:64px; margin-top:0; }
  .partner-hero-video{ padding-top:140px; padding-bottom:72px; }
  .partner-hero-stats{ grid-template-columns:1fr 1fr; }
}
@media (max-width:480px){
  .partner-hero-stats{ grid-template-columns:1fr; }
}

.partner-about{
  display:grid; grid-template-columns: 1.25fr .9fr; gap:48px;
  align-items:start;
}
.partner-about-copy{
  display:flex; flex-direction:column; gap:16px;
  font-size:15.5px; color:var(--ink-2); line-height:1.8;
}
.partner-about-cards{
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.partner-about-card{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  padding:20px 18px;
  display:flex; flex-direction:column; gap:6px;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.partner-about-card:hover{
  transform: translateY(-3px);
  border-color: var(--accent-2);
  box-shadow: 0 16px 32px -20px rgba(11,21,46,.22);
}
.partner-about-icon{
  width:38px; height:38px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  background: var(--accent-soft); color: var(--accent);
  margin-bottom:6px;
}
.partner-about-icon svg{ width:18px; height:18px; }
.partner-about-key{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); font-weight:700;
}
.partner-about-val{
  font-size:15px; font-weight:600; color:var(--ink);
  font-family: var(--font-serif);
}
@media (max-width:900px){
  .partner-about{ grid-template-columns:1fr; gap:36px; }
}
@media (max-width:480px){
  .partner-about-cards{ grid-template-columns:1fr; }
}

.partner-vision{
  position:relative;
  background: linear-gradient(165deg, #0B1226 0%, #141938 45%, #0F1730 100%);
  color:#fff;
  padding: 96px 0 100px;
  overflow:hidden;
}
.partner-vision-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(143,176,224,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143,176,224,.055) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 85%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 85%);
  pointer-events:none;
}
.partner-vision-glow{
  position:absolute; border-radius:50%; pointer-events:none;
  width:640px; height:640px; top:-280px; right:-200px;
  background: radial-gradient(circle, rgba(46,90,148,.35), transparent 65%);
}
.partner-vision-head{
  max-width:820px; margin-bottom:56px;
  position:relative; z-index:1;
}
.partner-vision-head h2{
  font-family:var(--font-serif);
  font-size:clamp(28px,3.6vw,42px); font-weight:500;
  line-height:1.2; letter-spacing:-.02em; color:#fff; margin-bottom:20px;
}
.partner-vision-head .intro{
  font-size:16.5px; color:#B7C4D9; line-height:1.75;
  max-width:70ch; text-align:justify;
}
.partner-vision-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
  position:relative; z-index:1;
}
.partner-vision-card{
  background: linear-gradient(165deg, rgba(255,255,255,.055) 0%, rgba(255,255,255,.02) 100%);
  border:1px solid rgba(143,176,224,.16);
  border-radius:16px;
  padding: 32px 26px 28px;
  display:flex; flex-direction:column;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease, background .35s ease;
}
.partner-vision-card:hover{
  transform: translateY(-6px);
  border-color: rgba(143,176,224,.4);
  background: linear-gradient(165deg, rgba(255,255,255,.09) 0%, rgba(255,255,255,.03) 100%);
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.5);
}
.partner-vision-icon{
  width:48px; height:48px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, rgba(91,143,217,.24), rgba(46,90,148,.12));
  border:1px solid rgba(91,143,217,.36);
  color:#7FB0E8;
  margin-bottom:22px;
  transition: transform .3s ease;
}
.partner-vision-card:hover .partner-vision-icon{
  transform: scale(1.08) rotate(-4deg);
}
.partner-vision-icon svg{ width:24px; height:24px; }
.partner-vision-num{
  font-family: var(--font-serif);
  font-size: clamp(38px, 4vw, 52px);
  font-weight: 500; letter-spacing:-.03em; line-height:1;
  color:#fff; margin-bottom:10px;
  display:flex; align-items:baseline; flex-wrap:wrap;
}
.partner-vision-num .suffix{
  font-size: 0.55em; color:#8FA0BC; font-weight: 500; margin-left:6px;
}
.partner-vision-lbl{
  font-size:13px; color:#B7C4D9; line-height:1.55;
  margin-top:auto;
}
@media (max-width:1000px){
  .partner-vision-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .partner-vision-grid{ grid-template-columns:1fr; }
}

.partner-focus-section{
  position:relative;
  background: var(--ground);
  padding: 96px 0;
}
.partner-focus-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  margin-top:8px;
}
.partner-focus-card{
  position:relative;
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  padding: 36px 30px 32px;
  display:flex; flex-direction:column;
  overflow:hidden;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease;
}
.partner-focus-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  transform: scaleX(0); transform-origin:left;
  transition: transform .5s cubic-bezier(.22,.61,.36,1);
}
.partner-focus-card:hover{
  transform: translateY(-6px);
  border-color: var(--accent-2);
  box-shadow: 0 32px 64px -32px rgba(11,21,46,.24);
}
.partner-focus-card:hover::before{ transform: scaleX(1); }

.partner-focus-num{
  position:absolute; top:26px; right:30px;
  font-family:var(--mono); font-size:12px; letter-spacing:.12em;
  color: var(--line-strong); font-weight:700;
  transition: color .3s ease;
}
.partner-focus-card:hover .partner-focus-num{ color: var(--accent); }

.partner-focus-icon{
  width:64px; height:64px; border-radius:18px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, #E3EAF5, #D2DEF0);
  color: var(--accent);
  margin-bottom:24px;
  transition: transform .4s cubic-bezier(.22,.61,.36,1), box-shadow .4s ease;
}
.partner-focus-icon svg{ width:30px; height:30px; }
.partner-focus-card:hover .partner-focus-icon{
  transform: scale(1.08) rotate(-5deg);
  box-shadow: 0 16px 32px -14px rgba(11,21,46,.3);
}
.partner-focus-card h3{
  font-family: var(--font-serif);
  font-size:22px; font-weight:500; color:var(--ink);
  letter-spacing:-.015em; line-height:1.2; margin-bottom:12px;
}
.partner-focus-card p{
  font-size:14.5px; color:var(--ink-2); line-height:1.7;
  text-align:left;
}
@media (max-width:900px){
  .partner-focus-grid{ grid-template-columns:1fr; }
  .partner-focus-section{ padding:72px 0; }
}

.partner-diff-section{
  position:relative;
  background: var(--surface);
  padding: 96px 0;
}
.partner-diff-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:20px;
  margin-top:8px;
}
.partner-diff-card{
  display:flex; gap:20px; align-items:flex-start;
  background: var(--surface-2);
  border:1px solid var(--line);
  border-radius:14px;
  padding: 24px 26px;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.partner-diff-card:hover{
  transform: translateY(-3px);
  border-color: var(--accent-2);
  background: var(--surface);
  box-shadow: 0 20px 40px -24px rgba(11,21,46,.2);
}
.partner-diff-icon{
  flex-shrink:0;
  width:46px; height:46px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, #E3EAF5, #D2DEF0);
  color: var(--accent);
}
.partner-diff-icon svg{ width:22px; height:22px; }
.partner-diff-body h4{
  font-size:16px; font-weight:700; color:var(--ink);
  margin-bottom:6px; letter-spacing:-.005em;
}
.partner-diff-body p{
  font-size:14px; color:var(--ink-2); line-height:1.65;
  text-align:left;
}
@media (max-width:760px){
  .partner-diff-grid{ grid-template-columns:1fr; }
  .partner-diff-section{ padding:72px 0; }
}

.partner-careers{
  position:relative;
  background: linear-gradient(135deg, #141938 0%, #1A3A66 100%);
  color:#fff;
  padding: 72px 0;
  overflow:hidden;
}
.partner-careers-glow{
  position:absolute; border-radius:50%; pointer-events:none;
  width:520px; height:520px; top:-220px; right:-140px;
  background: radial-gradient(circle, rgba(46,90,148,.5), transparent 65%);
}
.partner-careers-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between;
  gap:32px; flex-wrap:wrap;
}
.partner-careers-body h2{
  font-family:var(--font-serif);
  font-size:clamp(24px,3vw,34px); font-weight:500;
  letter-spacing:-.015em; line-height:1.25;
  margin-bottom:12px; max-width:24ch;
}
.partner-careers-body p{
  font-size:15px; color:#C7D4E8; line-height:1.7;
  max-width:58ch; text-align:left;
}
.partner-careers .btn{
  background:#fff; color: var(--accent);
  flex-shrink:0;
}
.partner-careers .btn:hover{
  background:#F4F6FA; transform: translateY(-2px);
  box-shadow: 0 14px 30px -14px rgba(0,0,0,.35);
}
@media (max-width:640px){
  .partner-careers-inner{ flex-direction:column; align-items:flex-start; }
}

.partner-types{
  display:grid; grid-template-columns:1fr 1fr; gap:22px;
  margin-top:8px;
}
.partner-type{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  padding:28px 26px;
  position:relative;
  overflow:hidden;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease;
}
.partner-type::before{
  content:""; position:absolute;
  top:0; left:0; bottom:0; width:3px;
  background: linear-gradient(180deg, var(--accent), var(--accent-2));
  transform: scaleY(0); transform-origin:top;
  transition: transform .4s cubic-bezier(.22,.61,.36,1);
}
.partner-type:hover{
  transform: translateY(-4px);
  border-color: var(--accent-2);
  box-shadow: 0 24px 48px -28px rgba(11,21,46,.24);
}
.partner-type:hover::before{ transform: scaleY(1); }
.partner-type-icon{
  width:52px; height:52px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, #E3EAF5, #D2DEF0);
  color: var(--accent);
  margin-bottom:16px;
  transition: transform .35s ease;
}
.partner-type:hover .partner-type-icon{ transform: scale(1.06) rotate(-4deg); }
.partner-type-icon svg{ width:24px; height:24px; }
.partner-type h3{
  font-size:17px; font-weight:700; color:var(--ink);
  margin-bottom:8px; letter-spacing:-.005em;
}
.partner-type p{ font-size:14.5px; color:var(--ink-2); line-height:1.7; }
@media (max-width:760px){ .partner-types{ grid-template-columns:1fr; } }

.timeline-section .vtimeline{ max-width:860px; }
.vtl-card{
  position:relative;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.vtl-card:hover{
  border-color: var(--accent-2) !important;
  box-shadow: 0 20px 40px -22px rgba(11,21,46,.22);
  transform: translateY(-3px);
}

.partner-checklist{
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
  margin-top:8px;
}
.partner-check{
  display:flex; gap:18px;
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:14px;
  padding:20px 22px;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.partner-check:hover{
  transform: translateY(-3px);
  border-color: var(--accent-2);
  box-shadow: 0 16px 32px -22px rgba(11,21,46,.2);
}
.partner-check-num{
  flex-shrink:0;
  font-family: var(--font-serif);
  font-size:26px; font-weight:500; letter-spacing:-.02em;
  color: var(--accent);
  line-height:1;
  padding-top:2px;
  min-width:44px;
}
.partner-check-body h4{
  font-size:15px; font-weight:700; color:var(--ink);
  margin-bottom:4px;
}
.partner-check-body p{
  font-size:13.5px; color:var(--ink-2); line-height:1.6;
  text-align:left;
}
@media (max-width:640px){
  .partner-checklist{ grid-template-columns:1fr; }
}

.partner-form-section{
  position:relative;
  background: linear-gradient(165deg, #0B1226 0%, #141938 60%, #0F1730 100%);
  color:#fff;
  padding: 96px 0 100px;
  overflow:hidden;
}
.partner-form-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(143,176,224,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143,176,224,.055) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse at center, #000 25%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 25%, transparent 80%);
  pointer-events:none;
}
.partner-form-head .kicker{ color:#8FB0E0; }
.partner-form-head .kicker::before{
  background: linear-gradient(90deg, #8FB0E0, rgba(143,176,224,.25));
}
.partner-form-head h2{ color:#fff; }
.partner-form-head .intro{ color:#B7C4D9; }

.partner-form-wrap{
  position:relative; z-index:1;
  max-width:760px;
  background: rgba(255,255,255,.04);
  border:1px solid rgba(143,176,224,.16);
  border-radius: 20px;
  padding: 40px 40px 36px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.partner-form-wrap .field label{ color:#B7C4D9; }
.partner-form-wrap .field input,
.partner-form-wrap .field select,
.partner-form-wrap .field textarea{
  background: rgba(255,255,255,.05);
  border-color: rgba(143,176,224,.22);
  color:#fff;
}
.partner-form-wrap .field input::placeholder,
.partner-form-wrap .field select::placeholder,
.partner-form-wrap .field textarea::placeholder{ color:#7C8FB0; }
.partner-form-wrap .field input:focus,
.partner-form-wrap .field select:focus,
.partner-form-wrap .field textarea:focus{
  border-color: #7FB0E8;
  background: rgba(255,255,255,.08);
}
.partner-form-wrap .field select option{ color: var(--ink); }
.partner-form-wrap .field .hint{ color:#7C8FB0; }
.partner-form-wrap .field-consent{ color:#B7C4D9; }
.partner-form-wrap .form-success{
  background: rgba(46,139,87,.14);
  border-color: rgba(46,139,87,.4);
}
.partner-form-wrap .form-success h3{ color:#6FD3A0; }
.partner-form-wrap .form-success p{ color:#B7C4D9; }
.partner-form-wrap .form-success a{ color:#6FD3A0; }
@media (max-width:760px){
  .partner-form-wrap{ padding: 28px 22px 24px; border-radius:16px; }
  .partner-form-section{ padding:72px 0 76px; }
}

/* ==========================================================================
   CONTACT PAGE
   ========================================================================== */
.contact-hero{
  position:relative;
  background: linear-gradient(160deg, #0B1226 0%, #141938 50%, #1A2547 100%);
  color:#fff;
  padding: 214px 0 96px;
  overflow:hidden;
  margin-top: -84px;
}
.contact-hero-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(143,176,224,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143,176,224,.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  pointer-events:none;
}
.contact-hero-glow{
  position:absolute; border-radius:50%; pointer-events:none;
  width:720px; height:720px; top:-300px; right:-260px;
  background: radial-gradient(circle, rgba(46,90,148,.42), transparent 62%);
}
.contact-hero-inner{ position:relative; z-index:1; max-width:820px; }
.contact-hero-badge{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; color:#8FB0E0; font-weight:700;
  padding:8px 16px; border:1px solid rgba(143,176,224,.3);
  border-radius:20px; margin-bottom:28px;
  background: rgba(143,176,224,.06);
}
.contact-hero h1{
  font-family:var(--font-serif);
  font-size:clamp(30px,4.2vw,50px);
  font-weight:500; line-height:1.15; letter-spacing:-.02em;
  color:#fff; margin-bottom:24px;
}
.contact-hero-sub{
  font-size:17px; color:#C7D4E8; max-width:64ch;
  line-height:1.7; text-align:left;
}
.contact-hero-sub a{ color:#fff; text-decoration:underline; text-decoration-color:rgba(255,255,255,.4); text-underline-offset:3px; }
.contact-hero-sub a:hover{ text-decoration-color:#fff; }

.contact-routes-section{ background: var(--ground); }
.contact-routes-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
  margin-top:8px;
}
.contact-route-card{
  display:grid;
  grid-template-columns: 56px 1fr 32px;
  align-items:center; gap:20px;
  background: var(--surface);
  border:1px solid var(--line);
  border-radius: 16px;
  padding: 22px 26px;
  position:relative;
  overflow:hidden;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease;
}
.contact-route-card::before{
  content:""; position:absolute; top:0; left:0; bottom:0; width:3px;
  background: linear-gradient(180deg, var(--accent), var(--accent-2));
  transform: scaleY(0); transform-origin:top;
  transition: transform .4s cubic-bezier(.22,.61,.36,1);
}
a.contact-route-card:hover{
  transform: translateY(-4px);
  border-color: var(--accent-2);
  box-shadow: 0 24px 48px -28px rgba(11,21,46,.24);
}
a.contact-route-card:hover::before{ transform: scaleY(1); }
a.contact-route-card:hover .contact-route-arrow{ transform: translateX(4px); color: var(--accent); }

.contact-route-icon{
  width:56px; height:56px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  transition: transform .35s ease;
}
.contact-route-icon svg{ width:26px; height:26px; }
.contact-route-icon-blue{ background: linear-gradient(135deg, #E3EAF5, #D2DEF0); color: #1A3A66; }
.contact-route-icon-green{ background: linear-gradient(135deg, #E1F3EE, #CCEADF); color: #1F7A4D; }
.contact-route-icon-amber{ background: linear-gradient(135deg, #FBF0DC, #F6E3BE); color: #A87422; }
.contact-route-icon-rose{ background: linear-gradient(135deg, #FBEAE8, #F5D5D0); color: #B3261E; }
.contact-route-icon-violet{ background: linear-gradient(135deg, #EFE6FB, #E0D0F5); color: #6B3FA0; }
.contact-route-icon-navy{ background: linear-gradient(135deg, #141938, #1A3A66); color:#fff; }
a.contact-route-card:hover .contact-route-icon{ transform: scale(1.06) rotate(-4deg); }

.contact-route-body h3{
  font-size:16px; font-weight:700; color:var(--ink);
  margin-bottom:4px; letter-spacing:-.005em;
}
.contact-route-mail{
  display:block;
  font-family: var(--mono); font-size:12.5px;
  color: var(--accent); font-weight:600;
  margin-bottom:6px;
}
.contact-route-body p{
  font-size:13.5px; color:var(--ink-2); line-height:1.6;
  text-align:left;
}
.contact-route-arrow{
  color: var(--line-strong);
  transition: transform .3s ease, color .3s ease;
  display:flex; align-items:center; justify-content:center;
}
.contact-route-arrow svg{ width:20px; height:20px; }

.contact-route-card-alert{
  background: linear-gradient(180deg, #FEF7F7 0%, #FFFFFF 100%);
}
.contact-route-card-office{
  background: linear-gradient(180deg, #F4F6FA 0%, #FFFFFF 100%);
}

@media (max-width:860px){
  .contact-hero{ padding-top:140px; padding-bottom:64px; margin-top:0; }
  .contact-routes-grid{ grid-template-columns:1fr; }
}
@media (max-width:520px){
  .contact-route-card{ grid-template-columns: 44px 1fr; gap:14px; padding:18px; }
  .contact-route-icon{ width:44px; height:44px; border-radius:11px; }
  .contact-route-icon svg{ width:20px; height:20px; }
  .contact-route-arrow{ display:none; }
}

/* ==========================================================================
   SAFETY PAGE
   ========================================================================== */
.safety-hero{
  position:relative;
  background: linear-gradient(160deg, #0B1226 0%, #141938 50%, #1A2547 100%);
  color:#fff;
  padding: 214px 0 96px;
  overflow:hidden;
  margin-top: -84px;
}
.safety-hero-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(143,176,224,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143,176,224,.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  pointer-events:none;
}
.safety-hero-glow{
  position:absolute; border-radius:50%; pointer-events:none;
  width:720px; height:720px; top:-300px; right:-260px;
  background: radial-gradient(circle, rgba(46,90,148,.42), transparent 62%);
}
.safety-hero-inner{ position:relative; z-index:1; max-width:820px; }
.safety-hero-badge{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; color:#8FB0E0; font-weight:700;
  padding:8px 16px; border:1px solid rgba(143,176,224,.3);
  border-radius:20px; margin-bottom:28px;
  background: rgba(143,176,224,.06);
}
.safety-hero h1{
  font-family:var(--font-serif);
  font-size:clamp(28px,3.8vw,44px);
  font-weight:500; line-height:1.2; letter-spacing:-.02em;
  color:#fff; margin-bottom:22px;
}
.safety-hero-sub{
  font-size:16.5px; color:#C7D4E8; max-width:64ch;
  line-height:1.7; text-align:left;
}

.safety-notice-section{ background: var(--ground); padding: 40px 0 0; }
.safety-notice{
  display:flex; gap:16px; align-items:flex-start;
  background: #FBEAE8;
  border:1px solid #E3A79E;
  border-left:4px solid #B3261E;
  border-radius:10px;
  padding:20px 24px;
}
.safety-notice-icon{
  flex-shrink:0;
  width:24px; height:24px;
  color:#B3261E;
  margin-top:2px;
}
.safety-notice-icon svg{ width:100%; height:100%; }
.safety-notice-body strong{
  display:block;
  color:#7A2A20; font-size:15px; font-weight:700;
  margin-bottom:4px;
}
.safety-notice-body p{
  color:#7A2A20; font-size:13.5px; line-height:1.6;
  text-align:left; margin:0;
}

.safety-report-section{ background: var(--ground); }
.safety-report-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:20px;
  margin-bottom:36px;
}
.safety-report-card{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  padding:28px 26px;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease;
}
.safety-report-card:hover{
  transform: translateY(-4px);
  border-color: var(--accent-2);
  box-shadow: 0 24px 48px -28px rgba(11,21,46,.22);
}
.safety-report-icon{
  width:52px; height:52px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:16px;
  transition: transform .35s ease;
}
.safety-report-icon svg{ width:24px; height:24px; }
.safety-report-icon-blue{ background: linear-gradient(135deg, #E3EAF5, #D2DEF0); color: #1A3A66; }
.safety-report-icon-green{ background: linear-gradient(135deg, #E1F3EE, #CCEADF); color: #1F7A4D; }
.safety-report-card:hover .safety-report-icon{ transform: scale(1.06) rotate(-4deg); }
.safety-report-card h3{
  font-size:17px; font-weight:700; color:var(--ink);
  margin-bottom:6px;
}
.safety-report-card p{
  font-size:14px; color:var(--ink-2); margin-bottom:12px;
  line-height:1.65; text-align:left;
}
.safety-report-link{
  display:inline-block;
  font-family:var(--mono); font-size:13.5px; font-weight:600;
  color:var(--accent);
  border-bottom:1px dashed rgba(26,58,102,.35);
  padding-bottom:2px;
  transition: color .2s ease, border-color .2s ease;
}
.safety-report-link:hover{ color:var(--accent-2); border-bottom-style:solid; }

.safety-report-detail{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  padding: 32px 32px 28px;
}
.safety-report-detail h3{
  font-family:var(--font-serif);
  font-size:22px; font-weight:500;
  color:var(--ink); margin-bottom:24px;
  letter-spacing:-.015em;
}
.safety-report-list{
  display:flex; flex-direction:column; gap:0;
  border-top:1px solid var(--line);
}
.safety-report-item{
  display:grid; grid-template-columns:60px 1fr;
  gap:20px; align-items:baseline;
  padding:16px 0;
  border-bottom:1px solid var(--line);
}
.safety-report-num{
  font-family:var(--font-serif);
  font-size:22px; font-weight:500;
  color: var(--accent); line-height:1;
}
.safety-report-item p{
  font-size:14.5px; color:var(--ink-2); line-height:1.65;
  text-align:left; margin:0;
}
.safety-report-note{
  font-size:13.5px; color:var(--muted); line-height:1.7;
  margin-top:22px;
  padding-top:22px;
  border-top:1px dashed var(--line);
}

.safety-medinfo{
  display:grid; grid-template-columns: 1.3fr .9fr; gap:24px;
  margin-top:8px;
}
.safety-medinfo-card{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  padding:28px 26px;
}
.safety-medinfo-card p{
  font-size:15px; color:var(--ink-2); line-height:1.75;
  margin-bottom:20px;
}
.safety-medinfo-mail{
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--mono); font-size:14px; font-weight:600;
  color: var(--accent);
  padding: 12px 18px; border-radius:10px;
  border:1px solid var(--line-strong);
  background: var(--surface-2);
  transition: border-color .2s ease, transform .2s ease, color .2s ease;
}
.safety-medinfo-mail svg{ width:18px; height:18px; transition: transform .3s ease; }
.safety-medinfo-mail:hover{
  border-color: var(--accent);
  transform: translateY(-2px);
}
.safety-medinfo-mail:hover svg{ transform: translateX(4px); }

.safety-medinfo-card-note{
  background: linear-gradient(180deg, #F4F6FA 0%, #FFFFFF 100%);
}
.safety-medinfo-card-note h3{
  font-size:15px; font-weight:700; color:var(--ink-2);
  font-family:var(--mono); text-transform:uppercase;
  letter-spacing:.06em; margin-bottom:14px;
}
.safety-medinfo-list{
  display:flex; flex-direction:column; gap:12px;
}
.safety-medinfo-list li{
  font-size:13.5px; color:var(--ink-2); line-height:1.6;
  padding-left:20px; position:relative;
}
.safety-medinfo-list li::before{
  content:"—"; color: var(--accent); position:absolute; left:0;
}

@media (max-width:860px){
  .safety-hero{ padding-top:140px; padding-bottom:64px; margin-top:0; }
  .safety-report-grid{ grid-template-columns:1fr; }
  .safety-medinfo{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .safety-report-detail{ padding:22px 20px; }
  .safety-report-item{ grid-template-columns:44px 1fr; gap:14px; }
}

/* ==========================================================================
   LEGAL PAGES (privacy / terms)
   ========================================================================== */
.legal-hero{
  position:relative;
  background: linear-gradient(160deg, #0B1226 0%, #141938 50%, #1A2547 100%);
  color:#fff;
  padding: 214px 0 96px;
  overflow:hidden;
  margin-top: -84px;
}
.legal-hero-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(143,176,224,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143,176,224,.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  pointer-events:none;
}
.legal-hero-glow{
  position:absolute; border-radius:50%; pointer-events:none;
  width:720px; height:720px; top:-300px; right:-260px;
  background: radial-gradient(circle, rgba(46,90,148,.42), transparent 62%);
}
.legal-hero-inner{ position:relative; z-index:1; max-width:820px; }
.legal-hero-badge{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; color:#8FB0E0; font-weight:700;
  padding:8px 16px; border:1px solid rgba(143,176,224,.3);
  border-radius:20px; margin-bottom:28px;
  background: rgba(143,176,224,.06);
}
.legal-hero h1{
  font-family:var(--font-serif);
  font-size:clamp(30px,4.2vw,50px);
  font-weight:500; line-height:1.15; letter-spacing:-.02em;
  color:#fff; margin-bottom:22px;
}
.legal-hero-sub{
  font-size:16.5px; color:#C7D4E8; max-width:64ch;
  line-height:1.7; text-align:left;
  margin-bottom:22px;
}
.legal-hero-meta{
  display:inline-block;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.08em;
  text-transform:uppercase; color:#8FA0BC;
  padding:8px 14px; border:1px solid rgba(143,176,224,.18);
  border-radius:8px;
}

.legal-content-section{ background: var(--ground); }
.legal-content{
  max-width:820px;
  display:flex; flex-direction:column; gap:20px;
}
.legal-block{
  display:grid; grid-template-columns:64px 1fr;
  gap:24px;
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  padding: 28px 30px;
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.legal-block:hover{
  border-color: var(--accent-2);
  box-shadow: 0 20px 40px -26px rgba(11,21,46,.2);
  transform: translateY(-2px);
}
.legal-block-num{
  font-family:var(--font-serif);
  font-size:34px; font-weight:500;
  color: var(--line-strong);
  line-height:1;
  padding-top:2px;
}
.legal-block-body h2{
  font-family:var(--font-serif);
  font-size:22px; font-weight:500;
  color:var(--ink); letter-spacing:-.015em;
  margin-bottom:12px;
}
.legal-block-body p{
  font-size:15px; color:var(--ink-2); line-height:1.75;
  margin-bottom:10px;
}
.legal-block-body p:last-child{ margin-bottom:0; }
.legal-block-body a{
  color:var(--accent); text-decoration:underline;
  text-decoration-color:rgba(26,58,102,.35);
  text-underline-offset:3px;
}
.legal-block-body a:hover{
  text-decoration-color:var(--accent);
}

@media (max-width:640px){
  .legal-hero{ padding-top:140px; padding-bottom:64px; margin-top:0; }
  .legal-block{ grid-template-columns:1fr; gap:8px; padding:22px 22px; }
  .legal-block-num{ font-size:26px; }
}

/* ==========================================================================
   MANUFACTURE PAGE
   ========================================================================== */
.mfg-hero{
  position:relative;
  background: linear-gradient(160deg, #0B1226 0%, #141938 50%, #1A2547 100%);
  color:#fff;
  padding: 214px 0 96px;
  overflow:hidden;
  margin-top: -84px;
}
.mfg-hero-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(143,176,224,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143,176,224,.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 80%);
  pointer-events:none;
}
.mfg-hero-glow{
  position:absolute; border-radius:50%; pointer-events:none;
  width:720px; height:720px; top:-300px; right:-260px;
  background: radial-gradient(circle, rgba(46,90,148,.42), transparent 62%);
}
.mfg-hero-inner{ position:relative; z-index:1; max-width:820px; }
.mfg-hero-badge{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; color:#8FB0E0; font-weight:700;
  padding:8px 16px; border:1px solid rgba(143,176,224,.3);
  border-radius:20px; margin-bottom:28px;
  background: rgba(143,176,224,.06);
}
.mfg-hero h1{
  font-family:var(--font-serif);
  font-size:clamp(30px,4.2vw,50px);
  font-weight:500; line-height:1.15; letter-spacing:-.02em;
  color:#fff; margin-bottom:24px;
}
.mfg-hero-sub{
  font-size:17px; color:#C7D4E8; max-width:64ch;
  line-height:1.7; text-align:left;
}

.mfg-incentive-section{ background: var(--ground); }
.mfg-incentive-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
  margin-top:8px;
}
.mfg-incentive-card{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  padding:26px 24px;
  display:flex; flex-direction:column;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease;
}
.mfg-incentive-card:hover{
  transform: translateY(-4px);
  border-color: var(--accent-2);
  box-shadow: 0 24px 48px -28px rgba(11,21,46,.22);
}
.mfg-incentive-primary{
  background: linear-gradient(160deg, #141938 0%, #1A3A66 100%);
  border-color: transparent;
  color:#fff;
}
.mfg-incentive-primary h3{ color:#fff; }
.mfg-incentive-primary p{ color:#B7C4D9; }
.mfg-incentive-primary .mfg-incentive-num{ color:#7FB0E8; }

.mfg-incentive-num{
  font-family:var(--font-serif);
  font-size:46px; font-weight:500; letter-spacing:-.03em;
  color: var(--accent); line-height:1;
  margin-bottom:14px;
}
.mfg-incentive-icon{
  width:46px; height:46px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background: var(--accent-soft); color: var(--accent);
  margin-bottom:16px;
}
.mfg-incentive-icon svg{ width:22px; height:22px; }
.mfg-incentive-card h3{
  font-size:16px; font-weight:700; color:var(--ink);
  margin-bottom:10px; letter-spacing:-.005em;
}
.mfg-incentive-card p{
  font-size:13.5px; color:var(--ink-2); line-height:1.65;
  text-align:left;
}

@media (max-width:1000px){
  .mfg-incentive-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .mfg-incentive-grid{ grid-template-columns:1fr; }
}

.mfg-timeline-section{ background: var(--surface); }
.mfg-split{
  display:grid; grid-template-columns:1fr 1fr; gap:22px;
  margin-top:8px;
}
.mfg-split-card{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  padding: 30px 28px;
  position:relative;
  overflow:hidden;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease;
}
.mfg-split-card:hover{ transform: translateY(-4px); box-shadow: 0 24px 48px -28px rgba(11,21,46,.22); }
.mfg-split-today{ border-top:4px solid #1F7A4D; }
.mfg-split-future{ border-top:4px solid var(--line-strong); }

.mfg-split-top{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:20px;
}
.mfg-split-badge{
  display:inline-block;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; font-weight:700;
  padding:5px 12px; border-radius:14px;
}
.mfg-split-badge-today{ background: rgba(31,122,77,.12); color:#1F7A4D; }
.mfg-split-badge-future{ background: rgba(183,196,217,.2); color:var(--muted); }
.mfg-split-icon{
  width:44px; height:44px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
}
.mfg-split-icon svg{ width:22px; height:22px; }
.mfg-split-icon-today{
  background: linear-gradient(135deg, #E1F3EE, #CCEADF);
  color:#1F7A4D;
}
.mfg-split-icon-future{
  background: linear-gradient(135deg, #E3EAF5, #D2DEF0);
  color: var(--accent);
}
.mfg-split-card h3{
  font-size:20px; font-weight:700; color:var(--ink);
  font-family: var(--font-serif);
  margin-bottom:12px; letter-spacing:-.01em;
}
.mfg-split-card p{
  font-size:14.5px; color:var(--ink-2); line-height:1.75;
  margin-bottom:12px;
}
.mfg-split-note{
  font-size:13.5px !important; color:var(--muted) !important;
  padding-top:14px; border-top:1px dashed var(--line);
  margin-top:14px !important;
}
@media (max-width:760px){
  .mfg-split{ grid-template-columns:1fr; }
}

.mfg-process-section{ background: var(--ground); }
.mfg-steps{
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
  margin-top:8px;
}
.mfg-step{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  padding:26px 24px;
  display:flex; flex-direction:column;
  position:relative;
  overflow:hidden;
  transition: transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s ease, box-shadow .35s ease;
}
.mfg-step::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  transform: scaleX(0); transform-origin:left;
  transition: transform .4s cubic-bezier(.22,.61,.36,1);
}
.mfg-step:hover{
  transform: translateY(-4px);
  border-color: var(--accent-2);
  box-shadow: 0 24px 48px -28px rgba(11,21,46,.22);
}
.mfg-step:hover::before{ transform: scaleX(1); }
.mfg-step-num{
  font-family:var(--font-serif);
  font-size:28px; font-weight:500;
  color: var(--line-strong);
  line-height:1;
  margin-bottom:14px;
}
.mfg-step:hover .mfg-step-num{ color: var(--accent); }
.mfg-step-icon{
  width:44px; height:44px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background: var(--accent-soft); color: var(--accent);
  margin-bottom:16px;
  transition: transform .35s ease, background .35s ease, color .35s ease;
}
.mfg-step-icon svg{ width:22px; height:22px; }
.mfg-step:hover .mfg-step-icon{
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color:#fff;
  transform: scale(1.06) rotate(-4deg);
}
.mfg-step h3{
  font-size:16px; font-weight:700; color:var(--ink);
  margin-bottom:8px;
}
.mfg-step p{
  font-size:13.5px; color:var(--ink-2); line-height:1.65;
  margin-bottom:14px;
}
.mfg-step-chip{
  display:inline-block; align-self:flex-start;
  font-family:var(--mono); font-size:11px; font-weight:600;
  color: var(--accent); background: var(--accent-soft);
  padding:4px 10px; border-radius:14px;
  margin-top:auto;
}
@media (max-width:1000px){
  .mfg-steps{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .mfg-steps{ grid-template-columns:1fr; }
}

.mfg-fit-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
  margin-top:8px;
}
.mfg-fit-item{
  display:flex; gap:18px; align-items:flex-start;
  background: var(--surface);
  border:1px solid var(--line);
  border-radius:14px;
  padding:22px 24px;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.mfg-fit-item:hover{
  transform: translateY(-3px);
  border-color: var(--accent-2);
  box-shadow: 0 18px 36px -24px rgba(11,21,46,.2);
}
.mfg-fit-icon{
  flex-shrink:0;
  width:44px; height:44px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, #E3EAF5, #D2DEF0);
  color: var(--accent);
}
.mfg-fit-icon svg{ width:22px; height:22px; }
.mfg-fit-item p{
  font-size:14.5px; color:var(--ink-2); line-height:1.7;
  text-align:left; margin:0;
  padding-top:4px;
}
@media (max-width:760px){
  .mfg-fit-grid{ grid-template-columns:1fr; }
}
@media (max-width:860px){
  .mfg-hero{ padding-top:140px; padding-bottom:64px; margin-top:0; }
}

/* ==========================================================================
   404 PAGE
   ========================================================================== */
.notfound-section{
  position:relative;
  background: linear-gradient(160deg, #0B1226 0%, #141938 50%, #1A2547 100%);
  color:#fff;
  padding: 214px 0 130px;
  overflow:hidden;
  min-height: 70vh;
  display:flex; align-items:center;
  margin-top: -84px;
}
.notfound-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(143,176,224,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143,176,224,.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 60% 70% at 50% 50%, #000 20%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 60% 70% at 50% 50%, #000 20%, transparent 80%);
  pointer-events:none;
}
.notfound-glow{
  position:absolute; border-radius:50%; pointer-events:none;
  width:800px; height:800px; top:-340px; left:50%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(46,90,148,.45), transparent 62%);
}
.notfound-inner{
  position:relative; z-index:1;
  text-align:center;
  max-width: 640px;
  margin: 0 auto;
}
.notfound-code{
  display:inline-block;
  font-family:var(--font-serif);
  font-size:clamp(80px,14vw,140px);
  font-weight:500; letter-spacing:-.04em;
  line-height:1;
  color: transparent;
  background: linear-gradient(180deg, #7FB0E8 0%, rgba(127,176,232,.25) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  margin-bottom: 16px;
}
.notfound-inner h1{
  font-family:var(--font-serif);
  font-size:clamp(26px,3.6vw,40px);
  font-weight:500; line-height:1.2; letter-spacing:-.015em;
  color:#fff; margin-bottom:18px;
}
.notfound-inner p{
  font-size:16px; color:#B7C4D9; line-height:1.7;
  text-align:center; margin-bottom:36px;
  max-width: 52ch;
  margin-left:auto; margin-right:auto;
}
.notfound-actions{
  display:flex; gap:14px; justify-content:center; flex-wrap:wrap;
}
.notfound-actions .btn-outline{
  border-color:rgba(255,255,255,.35); color:#fff;
}
.notfound-actions .btn-outline:hover{
  border-color:#fff; background:rgba(255,255,255,.08);
  color:#fff;
}
@media (max-width:640px){
  .notfound-section{ padding-top:140px; padding-bottom:80px; margin-top:0; min-height:0; }
}

/* ==========================================================================
   RTL overrides
   ========================================================================== */
[dir="rtl"] body{
  font-family: "IBM Plex Sans Arabic", "Noto Sans Arabic", "Segoe UI", Tahoma, Arial, var(--font);
}
[dir="rtl"] h1,
[dir="rtl"] h2,
[dir="rtl"] .slide-content h1,
[dir="rtl"] .slide-content h2,
[dir="rtl"] .partner-hero h1,
[dir="rtl"] .contact-hero h1,
[dir="rtl"] .safety-hero h1,
[dir="rtl"] .legal-hero h1,
[dir="rtl"] .mfg-hero h1,
[dir="rtl"] .notfound-inner h1,
[dir="rtl"] .section-head h2,
[dir="rtl"] .vision-head h2,
[dir="rtl"] .process-total-val,
[dir="rtl"] .partner-hero-stat-num,
[dir="rtl"] .vision-figure,
[dir="rtl"] .vision-donut-center strong,
[dir="rtl"] .portfolio-name,
[dir="rtl"] .portfolio-num,
[dir="rtl"] .legal-block-num,
[dir="rtl"] .mfg-incentive-num,
[dir="rtl"] .mfg-step-num,
[dir="rtl"] .mfg-split-card h3,
[dir="rtl"] .safety-report-num,
[dir="rtl"] .safety-report-detail h3,
[dir="rtl"] .partner-about-val,
[dir="rtl"] .partner-check-num,
[dir="rtl"] .vtl-card h4,
[dir="rtl"] .notfound-code,
[dir="rtl"] .cred-section .cred-num,
[dir="rtl"] .partner-vision-head h2,
[dir="rtl"] .partner-vision-num,
[dir="rtl"] .partner-focus-card h3,
[dir="rtl"] .partner-diff-body h4,
[dir="rtl"] .partner-careers-body h2{
  font-family: "IBM Plex Sans Arabic", "Noto Sans Arabic", "Segoe UI", Tahoma, Arial, sans-serif;
  letter-spacing:0;
}

[dir="rtl"] .hero-art svg{ right:auto; left:-6%; }
[dir="rtl"] .site-header.header-over-hero .nav-logo .logo-dark{ display:none; }
[dir="rtl"] .site-header.header-over-hero .nav-logo .logo-light{ display:block; }
[dir="rtl"] .split-col{ border-left:none; border-right:3px solid var(--ok); }
[dir="rtl"] .split-col.future{ border-right-color:var(--line-strong); border-left-color:transparent; }
[dir="rtl"] .faq-q{ text-align:right; }
[dir="rtl"] .portfolio-num{ right:auto; left:24px; }
[dir="rtl"] .portfolio-row-val{ text-align:left; }
[dir="rtl"] .portfolio-notice{ border-left:1px solid var(--line); border-right:4px solid var(--accent); }
[dir="rtl"] .contact-route-card::before,
[dir="rtl"] .partner-type::before,
[dir="rtl"] .mfg-step::before{ left:auto; right:0; transform-origin:right; }
[dir="rtl"] .legal-block{ grid-template-columns:1fr 64px; }
[dir="rtl"] .legal-block-num{ text-align:left; }
[dir="rtl"] .safety-notice{ border-left:1px solid #E3A79E; border-right:4px solid #B3261E; }
[dir="rtl"] .safety-report-item{ grid-template-columns:1fr 60px; }
[dir="rtl"] .safety-report-num{ text-align:left; }
[dir="rtl"] .mfg-split-today,
[dir="rtl"] .mfg-split-future{ border-top:4px solid transparent; }
[dir="rtl"] .mfg-split-today{ border-top-color:#1F7A4D; }
[dir="rtl"] .mfg-split-future{ border-top-color:var(--line-strong); }

[dir="rtl"] .slide-overlay{
  background: linear-gradient(-90deg, rgba(11,21,46,.92) 0%, rgba(11,21,46,.75) 35%, rgba(11,21,46,.35) 65%, rgba(11,21,46,.55) 100%);
}
[dir="rtl"] .chapter-rail{
  right: auto; left: 0;
  border-left: none; border-right: 1px solid rgba(255,255,255,.14);
}
[dir="rtl"] .chapter{ padding: 16px 20px 16px 0; text-align: right; }
[dir="rtl"] .chapter::before{ left: auto; right: 0; }
[dir="rtl"] .chapter .fill{ left: auto; right: 0; }

[dir="rtl"] .section-head .kicker::before{ order: 2; }
[dir="rtl"] .vision-kicker::before{ order: 2; }
[dir="rtl"] .portfolio-head .kicker::before{ order: 2; }

[dir="rtl"] .vision-mini-item .u{ margin-left: 0; margin-right: auto; }
[dir="rtl"] .svc-num{ right: auto; left: 24px; }
[dir="rtl"] .svc-card::before{ transform-origin: right; }
[dir="rtl"] .process-line-fill{
  background: linear-gradient(270deg, var(--accent-2), var(--accent));
}
[dir="rtl"] .process-num{ right: auto; left: -8px; }

[dir="rtl"] .vtimeline::before{ left: auto; right: 36px; }
[dir="rtl"] .vtl-item{ grid-template-columns: 1fr 72px; }
[dir="rtl"] .vtl-marker{ grid-column: 2; }
[dir="rtl"] .vtl-card{ grid-column: 1; grid-row: 1; }

[dir="rtl"] .contact-route-card{
  grid-template-columns: 32px 1fr 56px;
}
[dir="rtl"] .contact-route-arrow{
  grid-column: 1;
  transform: scaleX(-1);
}
[dir="rtl"] a.contact-route-card:hover .contact-route-arrow{
  transform: scaleX(-1) translateX(4px);
}
[dir="rtl"] .contact-route-icon{ grid-column: 3; }
[dir="rtl"] .contact-route-body{ grid-column: 2; text-align: right; }
[dir="rtl"] .contact-route-body p{ text-align: right; }

[dir="rtl"] .safety-medinfo-mail svg{ transform: scaleX(-1); }
[dir="rtl"] .safety-medinfo-mail:hover svg{ transform: scaleX(-1) translateX(4px); }

[dir="rtl"] .legal-block-body{ grid-column: 1; grid-row: 1; }

[dir="rtl"] .mfg-step-chip{ align-self: flex-end; }

[dir="rtl"] .svc-card p,
[dir="rtl"] .vision-lede,
[dir="rtl"] .portfolio-lede,
[dir="rtl"] .safety-report-card p,
[dir="rtl"] .safety-report-item p,
[dir="rtl"] .legal-block-body p,
[dir="rtl"] .mfg-incentive-card p,
[dir="rtl"] .mfg-step p,
[dir="rtl"] .mfg-fit-item p,
[dir="rtl"] .mfg-split-card p,
[dir="rtl"] .partner-about-copy p,
[dir="rtl"] .partner-type p,
[dir="rtl"] .contact-route-body p,
[dir="rtl"] .vtl-card p,
[dir="rtl"] .process-card p,
[dir="rtl"] .cred-section .cred-label,
[dir="rtl"] .partner-vision-head .intro,
[dir="rtl"] .partner-focus-card p,
[dir="rtl"] .partner-diff-body p,
[dir="rtl"] .partner-careers-body p{
  text-align: right;
}

[dir="rtl"] .vision-label,
[dir="rtl"] .portfolio-row-key,
[dir="rtl"] .portfolio-row-val,
[dir="rtl"] .cred-num,
[dir="rtl"] .section-head .kicker,
[dir="rtl"] .vision-kicker,
[dir="rtl"] .portfolio-head .kicker,
[dir="rtl"] .partner-hero-badge,
[dir="rtl"] .contact-hero-badge,
[dir="rtl"] .safety-hero-badge,
[dir="rtl"] .mfg-hero-badge{
  text-align: right;
}

/* partner page RTL fixes for new sections */
[dir="rtl"] .partner-focus-num{ right:auto; left:30px; }
[dir="rtl"] .partner-focus-card::before{ transform-origin: right; }
[dir="rtl"] .partner-careers-glow{ right:auto; left:-140px; }
[dir="rtl"] .partner-vision-glow{ right:auto; left:-200px; }
[dir="rtl"] .partner-hero-overlay{
  background:
    radial-gradient(ellipse 80% 60% at 70% 40%, rgba(11,21,46,.55) 0%, rgba(11,21,46,.88) 60%, rgba(11,21,46,.98) 100%),
    linear-gradient(180deg, rgba(11,21,46,.7) 0%, rgba(11,21,46,.85) 100%);
}

/* ==========================================================================
   v3.1 — CLIENT COMMENTS PASS
   ========================================================================== */
/* Header is always white with the navy logo — also on top of the home hero. */
@media (min-width:901px){
  .hero-slider{ margin-top:0; padding-top:0; height:calc(100vh - 84px); }
}
/* Credibility bar now has 3 cards (the "3 Products" card was removed). */
.cred-section .cred-grid{ grid-template-columns:repeat(3,1fr); }
@media (max-width:860px){ .cred-section .cred-grid{ grid-template-columns:1fr; } }
/* Partnership "By the numbers" now has 3 cards. */
.partner-vision-grid{ grid-template-columns:repeat(3,1fr); }
@media (max-width:1000px){ .partner-vision-grid{ grid-template-columns:1fr; } }
/* Contact block on the Partnership page is single-column (Ethics column removed). */
.contact-split.contact-split-single{ grid-template-columns:1fr; max-width:820px; }

/* ==========================================================================
   v4.4 — TYPOGRAPHY HARMONISATION
   One clear system instead of four mixed typefaces:
   · Fraunces  — page & section titles (h1, h2) and large display numbers
   · Inter     — everything else: card titles (h3/h4), values, labels, body, buttons
   · The system monospace (Consolas / SF Mono…) is retired — kickers, badges
     and small indices now use Inter, uppercase, tracked, tabular figures.
   · Arabic pages use IBM Plex Sans Arabic for every role.
   ========================================================================== */
:root{ --mono: var(--font); }
[dir="rtl"]{
  --font: var(--font-arabic);
  --font-serif: var(--font-arabic);
  --mono: var(--font-arabic);
}

/* Titles */
h1, h2{ font-family: var(--font-serif); font-weight:500; letter-spacing:-.015em; }

/* Card / block titles — always Inter, one weight */
h3, h4, h5,
.svc-card h3, .process-card h4, .vtl-card h4,
.partner-focus-card h3, .partner-diff-body h4, .partner-type h3,
.partner-check-body h4, .contact-route-body h3,
.safety-report-card h3, .safety-report-detail h3,
.mfg-incentive-card h3, .mfg-split-card h3, .mfg-step h3,
.portfolio-name{
  font-family: var(--font);
  font-weight: 600;
  letter-spacing: -.01em;
}
.partner-focus-card h3,
.safety-report-detail h3,
.mfg-split-card h3,
.portfolio-name{ font-size: 20px; line-height:1.3; }

/* Values in the "Who we are" cards read as data, not as titles */
.partner-about-val{
  font-family: var(--font);
  font-weight: 600;
  font-size: 17px;
  letter-spacing: -.005em;
}

/* Kickers, badges, indices and small labels (formerly monospace) */
.eyebrow, .chapter .idx, .hero-scroll,
.section-head .kicker, .vision-kicker, .portfolio-head .kicker,
.vision-tag, .vision-donut-center span, .vision-trend-badge,
.svc-num, .process-num, .process-chip, .process-total-lbl,
.vtl-when, .tl-when, .portfolio-num, .portfolio-tag,
.partner-hero-badge, .partner-hero-stat-lbl, .partner-about-key,
.partner-focus-num, .contact-hero-badge, .safety-hero-badge,
.legal-hero-badge, .legal-hero-meta, .mfg-hero-badge,
.mfg-split-badge, .mfg-step-chip, .safety-medinfo-card-note h3{
  font-family: var(--mono);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.vision-mini-item .u, .vision-col-value, .vision-trend-years,
.portfolio-inn, .portfolio-progress-top,
.contact-route-mail, .safety-report-link, .safety-medinfo-mail{
  font-family: var(--font);
  font-variant-numeric: tabular-nums;
}
[dir="rtl"] .section-head .kicker,
[dir="rtl"] .vision-kicker,
[dir="rtl"] .portfolio-head .kicker,
[dir="rtl"] .partner-about-key{ letter-spacing: 0; }

/* Partnership → Areas of focus now has 4 cards (Chemicals & Supplements added) */
.partner-focus-grid{ grid-template-columns: repeat(2, 1fr); }
@media (max-width:900px){ .partner-focus-grid{ grid-template-columns: 1fr; } }

/* ==========================================================================
   v4.5 — SITE-WIDE TYPE SCALE + ICON SYSTEM + FOOTER MAP
   ========================================================================== */

/* One heading scale for every page */
.partner-hero h1, .contact-hero h1, .safety-hero h1,
.legal-hero h1, .mfg-hero h1{
  font-size: clamp(30px, 4.2vw, 50px);
  font-weight: 500; line-height: 1.15; letter-spacing: -.02em;
}
.section-head h2, .vision-head h2, .portfolio-head h2,
.partner-vision-head h2, .mfg-grid h2, .partner-careers-body h2{
  font-size: clamp(26px, 3.4vw, 38px);
  font-weight: 500; line-height: 1.2; letter-spacing: -.015em;
}
.cta-band h2{ font-size: clamp(24px, 3vw, 34px); font-weight:500; line-height:1.2; }
.legal-block-body h2{ font-size: 22px; font-weight:500; line-height:1.3; }
[dir="rtl"] h1, [dir="rtl"] h2{ letter-spacing: 0; line-height: 1.35; }

/* Body copy — one size/leading family */
p{ line-height: 1.7; }
.btn{ font-family: var(--font); font-weight: 600; letter-spacing: 0; }

/* ---------- Icon system ---------- */
.ic{ display:block; width:100%; height:100%; max-width:100%; overflow:visible; }
.ic .ic-duo{ transition: fill-opacity .3s ease; }
.cred-card:hover .ic-duo,
.vision-card:hover .ic-duo,
.svc-card:hover .ic-duo,
.partner-about-card:hover .ic-duo,
.partner-focus-card:hover .ic-duo,
.partner-diff-card:hover .ic-duo,
.vtl-item:hover .ic-duo,
a.contact-route-card:hover .ic-duo,
.safety-report-card:hover .ic-duo,
.mfg-step:hover .ic-duo,
.mfg-fit-item:hover .ic-duo{ fill-opacity: .28; }

/* Unified icon tiles: soft gradient, inner highlight, consistent radius */
.cred-section .cred-icon,
.partner-about-icon,
.partner-focus-icon,
.partner-diff-icon,
.svc-icon,
.contact-route-icon,
.safety-report-icon,
.mfg-step-icon,
.mfg-fit-icon,
.mfg-incentive-icon{
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 1px 2px rgba(11,21,46,.06);
}
.partner-about-icon{ width:44px; height:44px; border-radius:12px; }
.partner-about-icon svg{ width:22px; height:22px; }
.partner-focus-icon svg{ width:30px; height:30px; }

/* Home — GMP illustration */
.mfg-photo{ border-radius:18px; }
.mfg-photo svg{ width:82%; opacity:1; }

/* ---------- Map cards (footer + contact) ---------- */
.map-card{
  position:relative; overflow:hidden; border-radius:14px;
  background:#1A2440;
  box-shadow:0 18px 40px -24px rgba(0,0,0,.55);
  isolation:isolate;
}
.map-card iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0; display:block;
}
.map-card-sm{
  margin-top:22px; width:100%; max-width:340px; height:190px;
  border:1px solid rgba(255,255,255,.14);
}
.map-card-addr{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:10px 14px;
  background:rgba(11,21,36,.82);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  color:#fff; font-size:12.5px; font-weight:500; line-height:1.45; text-align:center;
  transition:background .2s ease;
}
.map-card-addr:hover{ background:rgba(26,58,102,.92); color:#fff; }

/* Contact page — location */
.contact-location-grid{
  display:grid; grid-template-columns: 1fr 1.5fr; gap:24px; align-items:stretch;
}
.contact-location-info{
  background:var(--surface); border:1px solid var(--line); border-radius:18px;
  padding:30px 28px; display:flex; flex-direction:column; gap:22px;
}
.contact-location-row{ display:flex; gap:14px; align-items:flex-start; }
.contact-location-icon{
  width:42px; height:42px; flex-shrink:0; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, #E3EAF5, #D2DEF0); color:var(--accent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.contact-location-icon svg{ width:21px; height:21px; }
.contact-location-lbl{
  display:block; font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); margin-bottom:3px;
}
.contact-location-row p{ font-size:15px; color:var(--ink); line-height:1.55; text-align:start; }
.contact-location-row a:hover{ color:var(--accent-2); }
.contact-location-btn{ margin-top:auto; align-self:flex-start; }
.map-card-lg{ background:var(--surface-2); min-height:380px; border:1px solid var(--line); border-radius:18px; box-shadow:0 24px 48px -30px rgba(11,21,46,.35); }
[dir="rtl"] .contact-location-lbl{ letter-spacing:0; }
@media (max-width:860px){
  .contact-location-grid{ grid-template-columns:1fr; }
  .map-card-lg{ min-height:300px; }
  .map-card-sm{ max-width:none; }
}

/* ==========================================================================
   v4.5.3 — MOBILE ALIGNMENT PASS
   · every paragraph justified (EN + AR), except the few centred ones
   · one mobile gutter (16px) for all content, footer included
   · consistent inner padding for every card/box on phones
   ========================================================================== */
main p:not(.no-justify),
footer p,
.footer-notice{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto; -webkit-hyphens: auto;
}
.notfound-inner p:not(.no-justify){ text-align:center; }
@media (min-width:901px){ main .process-card p:not(.no-justify){ text-align:center; } }
.footer-notice{ max-width:var(--maxw); }
.footer-brand-col p{ max-width:none; }

@media (max-width:600px){
  .wrap,
  .footer-grid,
  .footer-map{ padding-left:16px; padding-right:16px; }
  .footer-notice{ padding-left:16px; padding-right:16px; }
  .footer-bottom{ padding-left:16px; padding-right:16px; }
  .slide-wrap{ padding-left:16px; padding-right:16px; }
  .map-card-sm{ max-width:none; }

  .svc-card, .partner-focus-card, .partner-diff-card, .partner-about-card,
  .vtl-card, .contact-route-card, .contact-location-info,
  .safety-report-card, .safety-report-item, .mfg-step, .mfg-fit-item,
  .mfg-split-card, .mfg-incentive-card, .legal-block, .cred-card,
  .vision-card, .partner-check, .partner-type, .portfolio-card, .process-card,
  .safety-medinfo-card, .safety-notice, .safety-report-list{
    padding-left:20px; padding-right:20px;
  }
  .partner-focus-card{ padding-top:28px; padding-bottom:26px; }
  .partner-focus-num{ top:22px; right:20px; }
  [dir="rtl"] .partner-focus-num{ right:auto; left:20px; }
  .svc-num{ right:20px; }
  [dir="rtl"] .svc-num{ right:auto; left:20px; }
  .form-wrap{ padding-left:20px; padding-right:20px; }
}
