/* ==========================================================================
   PRIME WEB STUDIO — Core Stylesheet
   Design tokens, base type, layout primitives, motion, RTL handling
   ========================================================================== */

:root{
  /* --- Color tokens --- */
  --olive-900:#161f18;   /* deepest, near-black olive for max contrast text on dark */
  --olive-800:#1c2a20;
  --olive-700:#26382a;   /* primary */
  --olive-600:#344936;
  --olive-500:#445a43;
  --olive-400:#66745d;
  --olive-300:#98a08c;
  --olive-200:#c7cabb;

  --paper-000:#ffffff;
  --paper-050:#f7f7f3;
  --paper-100:#f1f2ec;
  --paper-150:#e8e9df;

  --charcoal-900:#101310;
  --charcoal-800:#161a16;
  --charcoal-700:#1e231e;

  --accent-clay:#b4633f;  /* single warm accent used sparingly — CTA underline, active states */

  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease-in-out: cubic-bezier(.65,0,.35,1);
  --dur-fast: .25s;
  --dur-med: .5s;
  --dur-slow: .9s;

  --container: 1240px;
  --gutter: clamp(20px, 5vw, 64px);

  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 18px;
}

/* --- Reset & base --- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

body{
  margin:0;
  background:var(--paper-050);
  color:var(--olive-900);
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

html[lang="ar"] body{
  font-family:'IBM Plex Sans Arabic','Inter',sans-serif;
}

h1,h2,h3,h4{
  font-family:'Manrope','IBM Plex Sans Arabic',sans-serif;
  font-weight:700;
  line-height:1.05;
  letter-spacing:-0.02em;
  margin:0;
  color:var(--olive-900);
}
html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3, html[lang="ar"] h4{
  letter-spacing:0;
  font-weight:700;
}

p{ margin:0; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font:inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
label{ display:block; }

.container{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--olive-500);
  font-weight:600;
}
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--olive-500);
  display:inline-block;
}
html[lang="ar"] .eyebrow{ letter-spacing:0; }

/* --- Buttons --- */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding:.95rem 1.7rem;
  border-radius:var(--radius-md);
  font-weight:600;
  font-size:.95rem;
  border:1px solid transparent;
  transition:transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
  white-space:nowrap;
}
.btn-primary{
  background:var(--olive-700);
  color:var(--paper-050);
}
.btn-primary:hover{
  background:var(--olive-900);
  transform:translateY(-2px);
}
.btn-primary .btn-arrow{ transition:transform var(--dur-fast) var(--ease-out); }
.btn-primary:hover .btn-arrow{ transform:translateX(3px); }
html[dir="rtl"] .btn-primary:hover .btn-arrow{ transform:translateX(-3px) scaleX(-1); }

.btn-ghost{
  background:transparent;
  color:var(--olive-900);
  border-color:var(--olive-300);
}
.btn-ghost:hover{
  border-color:var(--olive-700);
  background:var(--paper-100);
}

.btn-light{
  background:var(--paper-050);
  color:var(--olive-900);
}
.btn-light:hover{
  background:var(--paper-000);
  transform:translateY(-2px);
}

.btn-outline-light{
  background:transparent;
  color:var(--paper-050);
  border-color:rgba(247,247,243,.35);
}
.btn-outline-light:hover{
  border-color:var(--paper-050);
  background:rgba(247,247,243,.08);
}

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

/* --- Header --- */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  padding-block:22px;
  transition:padding var(--dur-med) var(--ease-out), background var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out), border-color var(--dur-med) var(--ease-out);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  padding-block:14px;
  background:rgba(247,247,243,.82);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom-color:var(--paper-150);
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
.brand{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:1.15rem;
  letter-spacing:-0.01em;
  color:var(--olive-900);
}
.brand-mark{
  width:34px; height:34px;
  border-radius:8px;
  background:var(--olive-700);
  position:relative;
  flex:none;
}
.brand-mark::after{
  content:"";
  position:absolute;
  inset:9px;
  border:1.5px solid var(--paper-050);
  border-radius:2px;
}
.brand-mark::before{
  content:"";
  position:absolute;
  left:9px; right:9px; top:14px;
  height:1.5px;
  background:var(--paper-050);
}

.main-nav{
  display:flex;
  align-items:center;
  gap:2.4rem;
}
.main-nav a{
  position:relative;
  font-size:.92rem;
  font-weight:600;
  color:var(--olive-800);
  padding-block:4px;
}
.main-nav a::after{
  content:"";
  position:absolute;
  left:0; right:100%;
  bottom:0;
  height:1.5px;
  background:var(--olive-900);
  transition:right var(--dur-fast) var(--ease-out);
}
.main-nav a:hover::after, .main-nav a.is-active::after{
  right:0;
}
.main-nav a.is-active{ color:var(--olive-900); }

.header-actions{
  display:flex;
  align-items:center;
  gap:1.1rem;
}

.lang-switch{
  display:flex;
  align-items:center;
  border:1px solid var(--olive-300);
  border-radius:999px;
  padding:3px;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.02em;
}
.lang-switch button{
  padding:.4rem .75rem;
  border-radius:999px;
  background:transparent;
  color:var(--olive-500);
  transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.lang-switch button.is-active{
  background:var(--olive-700);
  color:var(--paper-050);
}

.menu-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  padding:8px;
}
.menu-toggle span{
  width:22px; height:1.5px;
  background:var(--olive-900);
  transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);
}

.mobile-nav{
  position:fixed;
  inset:0;
  background:var(--paper-050);
  z-index:99;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:var(--gutter);
  transform:translateY(-100%);
  transition:transform var(--dur-med) var(--ease-in-out);
}
.mobile-nav.is-open{ transform:translateY(0); }
.mobile-nav a{
  font-family:'Manrope',sans-serif;
  font-size:2rem;
  font-weight:700;
  padding-block:.5rem;
  border-bottom:1px solid var(--paper-150);
}
.mobile-nav .lang-switch{ margin-top:2rem; align-self:flex-start; }

/* --- Section rhythm --- */
section{ position:relative; }
.section{ padding-block:clamp(72px,10vw,140px); }
.bg-paper{ background:var(--paper-050); }
.bg-white{ background:var(--paper-000); }
.bg-tint{ background:var(--paper-100); }
.bg-olive{ background:var(--olive-700); color:var(--paper-050); }
.bg-olive h1,.bg-olive h2,.bg-olive h3{ color:var(--paper-050); }
.bg-dark{ background:var(--charcoal-900); color:var(--paper-100); }
.bg-dark h1,.bg-dark h2,.bg-dark h3{ color:var(--paper-050); }

.hairline{ height:1px; background:var(--paper-150); border:none; margin:0; }
.hairline-dark{ height:1px; background:rgba(247,247,243,.16); border:none; margin:0; }

/* grain texture overlay */
.grain{
  position:absolute; inset:0;
  pointer-events:none;
  opacity:.045;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.bg-olive .grain, .bg-dark .grain{ mix-blend-mode:overlay; opacity:.08; }

/* --- Reveal-on-scroll --- */
[data-reveal]{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);
}
[data-reveal].is-visible{
  opacity:1;
  transform:translateY(0);
}
[data-reveal="fade"]{ transform:none; }
[data-reveal].is-visible{ transition-delay:var(--reveal-delay,0s); }

/* --- Hero --- */
.hero{
  padding-top:clamp(140px,18vw,200px);
  padding-bottom:clamp(60px,8vw,100px);
  position:relative;
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(32px,5vw,72px);
  align-items:end;
}
.hero-kicker{ margin-bottom:1.6rem; }
.hero-title{
  font-size:clamp(2.6rem,5.4vw,4.6rem);
  max-width:14ch;
}
.hero-title .line{ display:block; overflow:hidden; }
.hero-title .line span{
  display:inline-block;
  transform:translateY(110%);
  transition:transform .9s var(--ease-out);
}
.hero.is-ready .hero-title .line span{ transform:translateY(0); }
.hero-title .line:nth-child(1) span{ transition-delay:.05s; }
.hero-title .line:nth-child(2) span{ transition-delay:.16s; }
.hero-title .line:nth-child(3) span{ transition-delay:.27s; }

.hero-sub{
  margin-top:1.8rem;
  max-width:40ch;
  color:var(--olive-500);
  font-size:1.05rem;
}
.hero-cta-row{
  margin-top:2.4rem;
  display:flex;
  align-items:center;
  gap:1.4rem;
  flex-wrap:wrap;
}
.hero-meta{
  display:flex;
  gap:2.2rem;
  margin-top:clamp(40px,6vw,72px);
  padding-top:1.6rem;
  border-top:1px solid var(--paper-150);
}
.hero-meta .stat-num{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:1.5rem;
  color:var(--olive-900);
  display:block;
}
.hero-meta .stat-label{
  font-size:.78rem;
  color:var(--olive-400);
  letter-spacing:.03em;
}

/* Signature element: browser-frame project preview */
.browser-card{
  background:var(--paper-000);
  border:1px solid var(--paper-150);
  border-radius:var(--radius-lg);
  box-shadow:0 30px 60px -25px rgba(16,19,16,.28);
  overflow:hidden;
  transform:rotate(1.2deg) translateY(0);
  transition:transform .6s var(--ease-out);
}
.browser-card:hover{ transform:rotate(0deg) translateY(-4px); }
.browser-chrome{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  background:var(--paper-100);
  border-bottom:1px solid var(--paper-150);
}
.browser-dot{ width:8px; height:8px; border-radius:50%; background:var(--olive-300); }
.browser-address{
  flex:1;
  background:var(--paper-000);
  border:1px solid var(--paper-150);
  border-radius:6px;
  font-size:.72rem;
  color:var(--olive-400);
  padding:5px 10px;
  text-align:center;
  font-family:'Inter',sans-serif;
}
.browser-body{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
}
.browser-slide{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  padding:22px;
  opacity:0;
  transition:opacity .7s var(--ease-in-out);
}
.browser-slide.is-active{ opacity:1; }
.mock-nav{ display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.mock-dotbrand{ width:16px;height:16px;border-radius:4px; }
.mock-line{ height:8px; border-radius:3px; }
.mock-block{ border-radius:8px; }

/* --- Marquee / thin ticker --- */
.ticker{
  overflow:hidden;
  border-top:1px solid var(--paper-150);
  border-bottom:1px solid var(--paper-150);
  padding-block:14px;
}
.ticker-track{
  display:flex;
  gap:3rem;
  width:max-content;
  animation:ticker 32s linear infinite;
}
html[dir="rtl"] .ticker-track{ animation-direction:reverse; }
.ticker-track span{
  font-family:'Manrope',sans-serif;
  font-weight:700;
  font-size:.95rem;
  color:var(--olive-400);
  display:flex; align-items:center; gap:1rem;
}
.ticker-track span::after{ content:"—"; opacity:.5; }
@keyframes ticker{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
html[dir="rtl"] .ticker-track{ animation-name:ticker-rtl; }
@keyframes ticker-rtl{ from{ transform:translateX(0);} to{ transform:translateX(50%);} }

/* --- Services --- */
.service-row{
  border-top:1px solid var(--paper-150);
  padding-block:clamp(24px,3.4vw,38px);
  cursor:pointer;
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  gap:clamp(16px,3vw,40px);
  transition:background var(--dur-fast) var(--ease-out);
}
.service-list .service-row:last-child{ border-bottom:1px solid var(--paper-150); }
.service-row:hover{ background:var(--paper-100); }
.service-num{
  font-family:'Manrope',sans-serif;
  font-weight:700;
  color:var(--olive-300);
  font-size:1rem;
  min-width:2.4ch;
}
.service-row:hover .service-num{ color:var(--olive-600); }
.service-title{
  font-family:'Manrope',sans-serif;
  font-weight:700;
  font-size:clamp(1.3rem,2.6vw,2rem);
  color:var(--olive-900);
  transition:transform var(--dur-med) var(--ease-out);
}
.service-row:hover .service-title{ transform:translateX(10px); }
html[dir="rtl"] .service-row:hover .service-title{ transform:translateX(-10px); }
.service-desc{
  max-width:44ch;
  font-size:.92rem;
  color:var(--olive-500);
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height var(--dur-med) var(--ease-out), opacity var(--dur-med) var(--ease-out), margin var(--dur-med) var(--ease-out);
  grid-column:1 / -1;
  margin-top:0;
}
.service-row.is-open .service-desc{
  max-height:120px;
  opacity:1;
  margin-top:14px;
}
.service-tag{
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--olive-400);
  border:1px solid var(--olive-200);
  border-radius:999px;
  padding:.3rem .7rem;
  white-space:nowrap;
}
.service-arrow{
  width:34px; height:34px;
  border-radius:50%;
  border:1px solid var(--olive-200);
  display:flex; align-items:center; justify-content:center;
  transition:transform var(--dur-med) var(--ease-out), background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
  flex:none;
}
.service-row.is-open .service-arrow{ transform:rotate(135deg); background:var(--olive-700); border-color:var(--olive-700); }
.service-row.is-open .service-arrow svg{ stroke:var(--paper-050); }

/* --- Why us / editorial feature --- */
.why-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(40px,6vw,90px);
}
.why-list{ display:flex; flex-direction:column; }
.why-item{
  padding-block:1.6rem;
  border-top:1px solid var(--paper-150);
  display:grid;
  grid-template-columns:2.2rem 1fr;
  gap:1.2rem;
}
.why-list .why-item:last-child{ border-bottom:1px solid var(--paper-150); }
.why-mark{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  color:var(--olive-600);
}
.why-item h3{ font-size:1.05rem; margin-bottom:.4rem; }
.why-item p{ color:var(--olive-500); font-size:.92rem; max-width:42ch; }

/* --- Work / projects --- */
.work-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:clamp(20px,3vw,32px);
}
.work-item{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--paper-150);
  aspect-ratio:5/4;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:1.6rem;
}
.work-item:nth-child(odd){ grid-row: span 1; }
.work-item .work-canvas{
  position:absolute; inset:0;
  transition:transform .7s var(--ease-out);
}
.work-item:hover .work-canvas{ transform:scale(1.055); }
.work-item::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(16,19,16,0) 40%, rgba(16,19,16,.72) 100%);
  opacity:0;
  transition:opacity var(--dur-med) var(--ease-out);
}
.work-item:hover::before{ opacity:1; }
.work-info{
  position:relative;
  z-index:2;
  color:var(--paper-050);
  opacity:0;
  transform:translateY(10px);
  transition:opacity var(--dur-med) var(--ease-out), transform var(--dur-med) var(--ease-out);
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
}
.work-item:hover .work-info{ opacity:1; transform:translateY(0); }
.work-info h3{ color:var(--paper-050); font-size:1.15rem; }
.work-info span{ font-size:.78rem; color:var(--paper-150); }
.work-arrow{
  width:38px; height:38px;
  border-radius:50%;
  background:var(--paper-050);
  color:var(--olive-900);
  display:flex; align-items:center; justify-content:center;
  flex:none;
  transform:rotate(-45deg) scale(.8);
  transition:transform var(--dur-fast) var(--ease-out);
}
.work-item:hover .work-arrow{ transform:rotate(0deg) scale(1); }
.work-tag{
  position:absolute; top:1.4rem; z-index:2;
  inset-inline-start:1.4rem;
  font-size:.72rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--paper-050);
  background:rgba(16,19,16,.55);
  backdrop-filter:blur(6px);
  border-radius:999px;
  padding:.3rem .8rem;
}

/* --- Final CTA --- */
.cta-final{ text-align:center; }
.cta-final h2{
  font-size:clamp(2.2rem,5vw,4rem);
  max-width:16ch;
  margin-inline:auto;
}
.cta-final .hero-sub{ margin-inline:auto; }
.cta-actions{ display:flex; justify-content:center; gap:1.2rem; margin-top:2.2rem; flex-wrap:wrap; }

/* --- Process (about) --- */
.process-row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:clamp(20px,4vw,60px);
  align-items:start;
  padding-block:clamp(28px,4vw,44px);
  border-top:1px solid var(--paper-150);
}
.process-list .process-row:last-child{ border-bottom:1px solid var(--paper-150); }
.process-num{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:clamp(1.6rem,3vw,2.4rem);
  color:var(--olive-200);
}
.process-row.is-active .process-num{ color:var(--olive-700); }
.process-title{ font-size:clamp(1.2rem,2.2vw,1.6rem); margin-bottom:.5rem; }
.process-desc{ color:var(--olive-500); max-width:46ch; font-size:.94rem; }
.process-phase{ font-size:.75rem; color:var(--olive-400); letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }

/* --- Values --- */
.values-strip{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  border-top:1px solid rgba(247,247,243,.16);
  border-bottom:1px solid rgba(247,247,243,.16);
}
.value-cell{
  padding:2.2rem 1.4rem;
  border-inline-end:1px solid rgba(247,247,243,.16);
}
.value-cell:last-child{ border-inline-end:none; }
.value-cell h3{ color:var(--paper-050); font-size:1.05rem; margin-bottom:.5rem; }
.value-cell p{ color:var(--olive-300); font-size:.85rem; }

/* --- Team/story split --- */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,80px);
  align-items:center;
}
.story-figure{
  aspect-ratio:4/5;
  border-radius:var(--radius-lg);
  overflow:hidden;
  position:relative;
}

/* --- Contact --- */
.contact-grid{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:clamp(40px,6vw,90px);
}
.field{ margin-bottom:1.5rem; }
.field label{
  font-size:.8rem;
  font-weight:600;
  color:var(--olive-600);
  margin-bottom:.5rem;
}
.field input, .field textarea{
  width:100%;
  border:1px solid var(--olive-200);
  background:var(--paper-000);
  border-radius:var(--radius-md);
  padding:.9rem 1.1rem;
  font-family:inherit;
  font-size:.95rem;
  color:var(--olive-900);
  transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.field input::placeholder, .field textarea::placeholder{ color:var(--olive-300); }
.field input:focus, .field textarea:focus{
  outline:none;
  border-color:var(--olive-700);
  box-shadow:0 0 0 4px rgba(38,56,42,.09);
}
.field textarea{ resize:vertical; min-height:130px; }
.field.has-error input, .field.has-error textarea{ border-color:#a5463a; }
.field-error{
  display:none;
  font-size:.78rem;
  color:#a5463a;
  margin-top:.4rem;
}
.field.has-error .field-error{ display:block; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
@media (max-width:640px){ .field-row{ grid-template-columns:1fr; } }

.form-status{
  display:none;
  align-items:center;
  gap:.7rem;
  background:var(--paper-100);
  border:1px solid var(--olive-200);
  border-radius:var(--radius-md);
  padding:1rem 1.2rem;
  font-size:.9rem;
  margin-top:1.2rem;
}
.form-status.is-visible{ display:flex; }
.form-status.is-success{ border-color:#4f7358; background:#eef3ea; color:#2f4a32; }

.contact-card{
  border:1px solid var(--paper-150);
  border-radius:var(--radius-lg);
  padding:clamp(24px,3vw,36px);
  background:var(--paper-000);
}
.contact-links{ display:flex; flex-direction:column; gap:0; margin-top:1.4rem; }
.contact-link-row{
  display:flex;
  align-items:center;
  gap:1rem;
  padding-block:1rem;
  border-top:1px solid var(--paper-150);
  transition:padding-inline-start var(--dur-fast) var(--ease-out);
}
.contact-links .contact-link-row:last-child{ border-bottom:1px solid var(--paper-150); }
.contact-link-row:hover{ padding-inline-start:.5rem; }
.social-icon{
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid var(--olive-200);
  display:flex; align-items:center; justify-content:center;
  flex:none;
  transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.contact-link-row:hover .social-icon{ background:var(--olive-700); border-color:var(--olive-700); transform:scale(1.06); }
.contact-link-row:hover .social-icon svg{ stroke:var(--paper-050); }
.contact-link-text small{ display:block; color:var(--olive-400); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:.15rem; }
.contact-link-text strong{ font-size:.98rem; font-weight:600; }

/* --- Map placeholder --- */
.map-plate{
  border-radius:var(--radius-lg);
  border:1px solid var(--paper-150);
  aspect-ratio:16/7;
  position:relative;
  overflow:hidden;
  background:var(--paper-100);
}

/* --- Footer --- */
.site-footer{ padding-block:clamp(60px,7vw,90px) 30px; }
.footer-top{
  display:grid;
  grid-template-columns:1.4fr .8fr .8fr 1fr;
  gap:clamp(28px,4vw,50px);
  padding-bottom:clamp(40px,5vw,64px);
}
.footer-brand p{ color:var(--olive-300); font-size:.92rem; margin-top:1rem; max-width:32ch; }
.footer-col h4{ font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--olive-400); margin-bottom:1.1rem; font-family:'Inter',sans-serif; font-weight:600; }
.footer-col ul li{ margin-bottom:.7rem; }
.footer-col a{ font-size:.92rem; color:var(--olive-200); transition:color var(--dur-fast) var(--ease-out); }
.footer-col a:hover{ color:var(--paper-050); }
.footer-social{ display:flex; gap:.7rem; margin-top:1.2rem; }
.footer-social a{
  width:38px; height:38px;
  border-radius:50%;
  border:1px solid rgba(247,247,243,.2);
  display:flex; align-items:center; justify-content:center;
  transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.footer-social a:hover{ background:var(--paper-050); border-color:var(--paper-050); transform:translateY(-3px); }
.footer-social a:hover svg{ stroke:var(--olive-900); }
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:26px;
  border-top:1px solid rgba(247,247,243,.16);
  font-size:.8rem;
  color:var(--olive-400);
  flex-wrap:wrap;
  gap:1rem;
}
.footer-bottom a{ color:var(--olive-300); }
.footer-bottom a:hover{ color:var(--paper-050); }

/* --- Page hero (about/contact) --- */
.page-hero{ padding-top:clamp(150px,18vw,210px); padding-bottom:clamp(50px,6vw,80px); }
.page-hero h1{ font-size:clamp(2.4rem,5vw,3.8rem); max-width:16ch; }
.page-hero .hero-sub{ margin-top:1.4rem; }

/* utility */
.text-muted{ color:var(--olive-500); }
.mt-1{margin-top:.5rem;} .mt-2{margin-top:1rem;} .mt-3{margin-top:1.6rem;} .mt-4{margin-top:2.4rem;}

/* --- Responsive --- */
@media (max-width:960px){
  .main-nav, .header-actions .lang-switch{ display:none; }
  .menu-toggle{ display:flex; }
  .hero-grid{ grid-template-columns:1fr; }
  .why-grid{ grid-template-columns:1fr; }
  .split{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .work-grid{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .values-strip{ grid-template-columns:repeat(2,1fr); }
  .value-cell:nth-child(2n){ border-inline-end:none; }
  .value-cell{ border-bottom:1px solid rgba(247,247,243,.16); }
  .process-row{ grid-template-columns:auto 1fr; }
  .process-phase{ display:none; }
}
@media (max-width:600px){
  .footer-top{ grid-template-columns:1fr; }
  .service-row{ grid-template-columns:auto 1fr auto; }
  .service-tag{ display:none; }
  .hero-meta{ gap:1.4rem; flex-wrap:wrap; }
}
