/* ============================================================
   אלומות – יזמות והשקעות
   Landing page styles (RTL, Hebrew)
   Palette + layout taken from Figma lKemfweV1HdTRN6RUIV5UK (node 2:557).
   The Figma file defines no Variables, so tokens below are derived
   from the raw hex values used on the canvas.
   ============================================================ */

:root{
  /* Google Sans — the family specified on every text layer in the Figma file.
     Loaded from Google Fonts (SIL OFL) at weights 400/500/600/700. */
  --font:'Google Sans',system-ui,-apple-system,'Segoe UI',sans-serif;

  --navy:#083451;        /* brand navy — headings, footer, dark bands */
  --navy-deep:#052538;
  --navy-soft:#155682;   /* from the brand mark */
  --navy-pale:#377793;   /* from the brand mark */
  --bronze:#a38469;      /* brand bronze — decorative only: 3.45:1 on #fff,
                            fails AA for body text. Use --bronze-deep for text. */
  --bronze-soft:#c4ad97;
  --bronze-pale:#e2d4c7; /* faint bronze — the big step numbers on the experience page */
  --bronze-deep:#8a6a4f; /* text/button bronze — WCAG AA (4.91:1 on #fff,
                            and 4.91:1 for white text on this background) */
  --placeholder:#677488; /* blue-gray placeholder — WCAG AA (4.74:1 on #fff) */
  --gray-bg:#f6f7f8;
  --gray-line:#e2e6ec;
  --text:#083451;
  --muted:#55697a;
  --white:#ffffff;
  --shadow-card:0 18px 40px -18px rgba(8,52,81,.28);
  --shadow-soft:0 8px 30px -12px rgba(8,52,81,.18);
  --radius:14px;
  --radius-lg:24px;
  --container:1194px;    /* Figma content spans x=363→1557 on a 1920 canvas */
  --gutter:24px;
  --header-h:100px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-family:var(--font);scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);
  color:var(--text);
  background:var(--white);
  line-height:1.6;
  font-size:16px;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
/* Form controls do not inherit font by default in any browser, and <option> is
   rendered by the OS in some of them — name the family explicitly there. */
input,select,textarea,button,optgroup{font-family:inherit;font-size:inherit}
option{font-family:var(--font)}
::placeholder{font-family:inherit}
h1,h2,h3{line-height:1.25;font-weight:700}

/* Visible focus for keyboard users — never remove without a replacement. */
:focus-visible{outline:3px solid var(--bronze-deep);outline-offset:3px;border-radius:4px}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip-link{
  position:absolute;inset-inline-start:-9999px;top:0;z-index:200;
  background:var(--navy);color:#fff;padding:12px 20px;border-radius:0 0 8px 0;
}
.skip-link:focus{inset-inline-start:0}

/* ---------- Layout ---------- */
.container--wide{
  width:100%;max-width:calc(var(--container) + var(--gutter) * 2);
  margin-inline:auto;padding-inline:var(--gutter);
}
.section{padding-block:84px}

.section__title{
  font-size:clamp(26px,3.2vw,40px);
  color:var(--navy);
  text-align:start;
  position:relative;
}
.section__title--center{text-align:center}
.section__title--onDark{color:var(--white)}

.title-underline{
  display:block;width:64px;height:3px;border-radius:2px;
  background:var(--bronze);margin:14px auto 0;
}
.section__title:not(.section__title--center) .title-underline{margin-inline-start:0}
.title-underline--wide{width:96px}

.section__sub{
  text-align:center;color:var(--muted);
  font-size:clamp(15px,1.1vw,17px);
  max-width:56ch;margin:14px auto 0;
}
.section__sub--onDark{color:rgba(255,255,255,.82)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 30px;border-radius:6px;
  font-size:16px;font-weight:600;
  transition:background-color .25s var(--ease),color .25s var(--ease),
             transform .25s var(--ease),box-shadow .25s var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}

/* Figma uses #a38469 here; --bronze-deep is the AA-compliant shade of it
   (white-on-bronze at 20px would otherwise fail WCAG AA). */
.btn--bronze{background:var(--bronze-deep);color:var(--white)}
.btn--bronze:hover{background:#75593f}

.btn--navy{background:var(--navy);color:var(--white)}
.btn--navy:hover{background:var(--navy-deep)}

.btn--outline{
  background:transparent;color:var(--navy);
  box-shadow:inset 0 0 0 1.5px var(--navy);
}
.btn--outline:hover{background:var(--navy);color:var(--white)}

/* ============================================================
   HEADER
   ============================================================ */
.header{
  position:sticky;top:0;z-index:100;
  background:var(--white);height:var(--header-h);
  transition:box-shadow .25s var(--ease);
}
.header.is-scrolled{box-shadow:0 6px 24px -12px rgba(8,52,81,.35)}
/* WordPress admin bar (logged-in): the bar is fixed at 32px on desktop, so the
   sticky header must drop below it. On mobile (<=782px) the admin bar is
   absolute and scrolls away, so the header stays at top:0. */
body.admin-bar .header{top:32px}
@media screen and (max-width:782px){ body.admin-bar .header{top:0} }

.header__inner{
  height:100%;display:flex;align-items:center;gap:0;
}
.header__logo{flex:0 0 auto}
.header__logo img{width:150px;height:auto}

/* Match Figma: the menu sits close to the logo, then social, then the CTA is
   pushed to the far end. (Mobile overrides margin-inline-start to 0 for the drawer.) */
.nav{margin-inline-start:106px}
.nav__list{display:flex;align-items:center}
.nav__link{
  position:relative;display:block;padding:6px 32px;white-space:nowrap;
  font-size:16px;color:var(--navy);
  transition:color .2s var(--ease);
}
/* Divider between items. inset-inline-START puts it on the item's leading (right,
   in RTL) edge — i.e. between this item and the previous one — so dividers sit
   between בית↔אודותינו … and NOT between צור קשר and the social icons. */
.nav__list li + li .nav__link::before{
  content:"";position:absolute;inset-inline-start:0;top:50%;
  transform:translateY(-50%);width:1px;height:21px;background:var(--bronze);
}
.nav__link:hover{color:var(--bronze-deep)}
.nav__link.is-active{font-weight:700}
.nav__close{display:none}

/* direction:ltr keeps the brand icons in the Figma order (LinkedIn, Facebook,
   Instagram) left-to-right even inside the RTL header. */
.header__social{display:flex;align-items:center;gap:6px;direction:ltr;margin-right:16px}
.social-ico{
  display:grid;place-items:center;width:24px;height:24px;border-radius:50%;
  background:var(--navy);color:var(--white);
  transition:background-color .2s var(--ease);
}
.social-ico--light{background:rgba(255,255,255,.14)}
/* Placeholders: rendered as <span>, so they are visible but not links.
   Swap to <a href="…"> and drop data-todo once the real URLs exist. */
[data-todo="add-real-url"]{pointer-events:none}

.header__cta{margin-inline-start:auto;min-height:45px;padding:0 24px;font-size:16px}

.header__burger{display:none;flex-direction:column;gap:5px;padding:8px}
.header__burger span{display:block;width:24px;height:2px;background:var(--navy);border-radius:2px}

.nav-backdrop{
  position:fixed;inset:0;z-index:98;background:rgba(8,52,81,.5);
  opacity:0;visibility:hidden;transition:opacity .25s var(--ease),visibility .25s;
}
.nav-backdrop.is-open{opacity:1;visibility:visible}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(760px,86vh);display:flex;align-items:center}
.hero__bg{position:absolute;inset:0;z-index:-2}
/* The <video> shows its poster until main.js attaches the source, so this
   sizing has to apply whether or not the clip ever loads. */
.hero__bg img,.hero__bg video{width:100%;height:100%;object-fit:cover;object-position:center 40%}
/* Lifts the text panel off the photo without washing the photo out. */
.hero__scrim{
  position:absolute;inset:0;
  background:linear-gradient(to left,rgba(255,255,255,.86) 0%,rgba(255,255,255,.62) 34%,rgba(255,255,255,.12) 62%,rgba(255,255,255,0) 100%);
}
/* Physical `left`, not `inset-inline-start`: the motif sits bottom-left in the
   Figma design and must not flip with the RTL direction. */
.hero__deco{
  position:absolute;bottom:0;left:0;z-index:-1;
  width:clamp(200px,26vw,488px);height:auto;pointer-events:none;
}
.hero__inner{width:100%;display:flex;justify-content:flex-start}
/* Translucent card behind the copy (Figma node 2037:14) — without it the
   navy text sits straight on the photo and loses contrast. */
.hero__panel{
  max-width:655px;padding:44px clamp(24px,3vw,48px);
  /* Figma: a subtle glass panel — mostly transparent with a thin light border
     and near-square corners (not a solid white rounded card). */
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.55);
  border-radius:4px;
  /* Sits just right of centre on wide screens, as in the design. */
  margin-inline-start:auto;margin-inline-end:clamp(0px,4vw,60px);
}
.hero__title{
  /* 700 is the heaviest weight Google Sans ships; 800 would make the browser
     synthesise a fake bold. Direct consequence of the font swap. */
  font-size:clamp(32px,4.2vw,54px);font-weight:700;color:var(--navy);
  line-height:1.15;letter-spacing:-.5px;
}
.hero__title span{display:block}
.hero__text{margin-top:22px;font-size:clamp(15px,1.1vw,17px);color:var(--navy);line-height:1.75}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.hero__actions .btn{min-width:200px;min-height:55px}

/* ============================================================
   EXPERTISE / המומחיות שלנו
   ============================================================ */
.expertise__grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:34px;margin-top:46px;
}
.ecard{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft)}
.ecard__media{aspect-ratio:580/335;overflow:hidden}
.ecard__media img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease);
}
.ecard:hover .ecard__media img{transform:scale(1.04)}
.ecard__label{
  display:grid;place-items:center;min-height:63px;
  font-size:clamp(17px,1.4vw,21px);font-weight:600;color:var(--white);
}
.ecard__label--navy{background:var(--navy)}
.ecard__label--bronze{background:var(--bronze-deep)}

/* ============================================================
   WHY / למה לבחור באלומות
   ============================================================ */
.why__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:46px;
}
.why__item{
  background:var(--gray-bg);border:1px solid var(--gray-line);
  border-radius:var(--radius);min-height:250px;padding:36px 26px;
  display:flex;flex-direction:column;align-items:center;text-align:center;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease);
}
.why__item:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.why__icon{height:64px;display:grid;place-items:center;margin-bottom:20px}
.why__icon img{max-height:64px;width:auto}
.why__title{font-size:clamp(16px,1.3vw,19px);color:var(--navy);margin-bottom:10px}
.why__text{font-size:14px;color:var(--muted);max-width:24ch}

/* ============================================================
   TESTIMONIALS / כתבו עלינו
   ============================================================ */
.testi{background:var(--navy);padding-block:64px 72px;color:var(--white)}
.testi__stage{display:flex;align-items:center;gap:18px;margin-top:40px}
.testi__viewport{flex:1;overflow:hidden}
.testi__track{
  display:flex;gap:28px;
  transition:transform .45s var(--ease);will-change:transform;
}
.tcard{
  flex:0 0 calc((100% - 56px) / 3);
  background:var(--white);color:var(--text);
  border-radius:var(--radius);padding:28px 26px;
  min-height:256px;display:flex;flex-direction:column;justify-content:space-between;
}
.tcard__quote{font-size:15px;line-height:1.65;color:var(--navy)}
.tcard__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}
.tcard__name{font-size:13px;color:var(--muted)}
.stars{color:var(--bronze-deep);font-size:14px;letter-spacing:2px}

.round-arrow{
  flex:0 0 auto;display:grid;place-items:center;
  width:40px;height:40px;border-radius:50%;
  background:transparent;color:var(--white);
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45);
  transition:background-color .2s var(--ease),box-shadow .2s var(--ease);
}
.round-arrow:hover{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1.5px var(--white)}

.dots{display:flex;justify-content:center;gap:8px;margin-top:26px}
.dot{
  width:8px;height:8px;border-radius:50%;padding:0;
  background:rgba(255,255,255,.35);transition:background-color .2s var(--ease),width .2s var(--ease);
}
.dot.is-active{background:var(--white);width:22px;border-radius:4px}

/* ============================================================
   FAQ / שאלות ותשובות
   ============================================================ */
.faq__list{margin-top:44px;display:flex;flex-direction:column;gap:16px}
.faq__item{
  background:var(--gray-bg);border:1px solid var(--gray-line);
  border-radius:8px;overflow:hidden;transition:border-color .2s var(--ease);
}
.faq__item.is-open{border-color:var(--bronze-soft)}
.faq__q{
  width:100%;min-height:60px;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  font-size:clamp(15px,1.2vw,18px);font-weight:600;color:var(--navy);text-align:start;
}
.faq__icon{
  flex:0 0 auto;position:relative;width:20px;height:20px;border-radius:50%;
  background:var(--navy-pale);transition:background-color .2s var(--ease);
}
.faq__item.is-open .faq__icon{background:var(--bronze-deep)}
/* Plus → minus */
.faq__icon::before,.faq__icon::after{
  content:"";position:absolute;top:50%;left:50%;background:var(--white);
  transform:translate(-50%,-50%);transition:opacity .2s var(--ease);
}
.faq__icon::before{width:10px;height:2px}
.faq__icon::after{width:2px;height:10px}
.faq__item.is-open .faq__icon::after{opacity:0}

.faq__a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.faq__a p{padding:0 24px 20px;font-size:clamp(14px,1.05vw,16px);color:var(--muted);line-height:1.7}

/* ============================================================
   CONTACT / בואו נדבר
   ============================================================ */
.contact{position:relative;isolation:isolate;padding-block:90px 110px;overflow:hidden;background:#fff}
/* Figma: the rooftop photo is a band along the BOTTOM of the section (the panel
   sits mostly on white and only its lower edge overlaps the image), not a
   full-height background behind the whole form. */
.contact__bg{position:absolute;inset:auto 0 0 0;height:52%;z-index:-1}
.contact__bg img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.contact__panel{
  background:rgba(163,132,105,.94);
  border-radius:var(--radius);padding:40px clamp(24px,4vw,64px) 44px;
  backdrop-filter:blur(2px);
}
.contact__title{font-size:clamp(24px,2.6vw,34px);color:var(--white);text-align:center}
.contact__sub{margin-top:8px;text-align:center;color:rgba(255,255,255,.9);font-size:16px}

.contact__form{
  margin-top:28px;
  display:grid;grid-template-columns:repeat(2,1fr);gap:25px;
}
.field{min-width:0}
.field input,.field select{
  width:100%;height:55px;padding:0 18px;
  background:var(--white);border:1px solid transparent;border-radius:6px;
  color:var(--text);font-size:15px;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.field input::placeholder{color:var(--placeholder)}
.field select:invalid{color:var(--placeholder)}
.field input:focus,.field select:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px rgba(8,52,81,.25)}
.field input.is-error,.field select.is-error{border-color:#b3261e;box-shadow:0 0 0 3px rgba(179,38,30,.2)}

.select-wrap{position:relative}
.select-wrap select{appearance:none;padding-inline-end:44px}
.select-arrow{
  position:absolute;inset-inline-end:16px;top:50%;transform:translateY(-50%);
  color:var(--navy);pointer-events:none;
}

.contact__submit{grid-column:1 / -1;width:100%;min-height:55px}
.contact__msg{grid-column:1 / -1;min-height:1.5em;font-size:15px;color:var(--white)}
.contact__msg.is-ok{font-weight:600}
.contact__msg.is-bad{background:rgba(179,38,30,.92);color:#fff;padding:8px 14px;border-radius:6px}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{position:relative;isolation:isolate;background:var(--navy);color:var(--white);overflow:hidden}
/* Physical `right`, like .hero__deco: the motif is anchored bottom-right in
   the design and must not flip with the RTL direction. */
.footer__deco{
  position:absolute;bottom:0;right:0;z-index:-1;
  width:clamp(180px,22vw,420px);height:auto;opacity:.9;pointer-events:none;
}
.footer__inner{
  display:grid;grid-template-columns:1.1fr .9fr .9fr 1.3fr;
  gap:40px;padding-block:56px 40px;
}
.footer__logo{width:clamp(150px,12vw,196px);height:auto}

.footer__links{display:flex;flex-direction:column;gap:14px}
.footer__links a,.footer__todo{font-size:15px;color:rgba(255,255,255,.88)}
.footer__links a{transition:color .2s var(--ease)}
.footer__links a:hover{color:var(--bronze-soft)}
.footer__todo{opacity:.7}

.footer__contact{display:flex;flex-direction:column;gap:16px}
.footer__row{
  display:flex;align-items:center;gap:12px;
  font-size:15px;color:rgba(255,255,255,.88);
  transition:color .2s var(--ease);
}
a.footer__row:hover{color:var(--bronze-soft)}
.footer__row svg{flex:0 0 auto;color:var(--bronze-soft)}

.footer__follow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
.footer__social{display:flex;gap:8px}
.footer__follow-label{font-size:14px;color:rgba(255,255,255,.7)}

.footer__bar{border-top:1px solid rgba(255,255,255,.14)}
.footer__bar-inner{padding-block:18px}
.footer__copy{font-size:13px;color:rgba(255,255,255,.65);text-align:center}

/* ============================================================
   RESPONSIVE
   Breakpoints: tablet ≤1024, mobile ≤860, narrow ≤460
   ============================================================ */
@media (max-width:1200px){
  .hero__panel{margin-inline-end:0}
}

@media (max-width:1024px){
  .section{padding-block:64px}
  :root{--header-h:74px}

  .header__social{display:none}

  .why__grid{grid-template-columns:repeat(2,1fr)}
  .tcard{flex:0 0 calc((100% - 28px) / 2)}
  .footer__inner{grid-template-columns:1fr 1fr;gap:36px}
  .hero__scrim{background:linear-gradient(to left,rgba(255,255,255,.92) 0%,rgba(255,255,255,.72) 48%,rgba(255,255,255,.25) 100%)}
}

@media (max-width:860px){
  .header__burger{display:flex}
  .header__cta{display:none}
  /* Mobile header: logo (right) and burger (left) spread across the full width
     with symmetric edge padding. On desktop the CTA's auto-margin handles this,
     but it's hidden here, so the flex row needs an explicit distribution. */
  .header__inner{justify-content:space-between;padding-inline:18px}

  /* Off-canvas drawer */
  .nav{
    position:fixed;inset-block:0;inset-inline-end:0;z-index:99;
    width:min(300px,82vw);background:var(--white);
    padding:76px 24px 24px;margin-inline-start:0;
    transform:translateX(100%);
    transition:transform .3s var(--ease);
    box-shadow:-10px 0 40px -20px rgba(8,52,81,.6);
    overflow-y:auto;
  }
  html[dir="rtl"] .nav{transform:translateX(-100%)}
  /* The open rule MUST out-specify `html[dir="rtl"] .nav` (0,2,1), otherwise the
     drawer stays translateX(-100%) (off-screen) even when .is-open is set — which
     is exactly why the menu opened but was invisible. */
  .nav.is-open,
  html[dir="rtl"] .nav.is-open{transform:translateX(0)}
  .nav__list{flex-direction:column;align-items:stretch;gap:4px}
  .nav__link{padding:14px 8px;font-size:18px;border-bottom:1px solid var(--gray-line)}
  .nav__list li + li .nav__link::before{display:none}
  .nav__close{
    display:block;position:absolute;top:18px;inset-inline-end:18px;
    font-size:32px;line-height:1;color:var(--navy);padding:4px 10px;
  }

  .hero{min-height:0;padding-block:48px 56px}
  .hero__inner{justify-content:center}
  .hero__panel{margin-inline:auto;text-align:center;padding-block:0}
  .hero__actions{justify-content:center}
  .hero__actions .btn{min-width:0;flex:1 1 180px}
  .hero__scrim{background:rgba(255,255,255,.86)}
  .hero__deco{opacity:.5}

  .expertise__grid{grid-template-columns:1fr;gap:24px}
  .tcard{flex:0 0 100%}
  .contact__form{grid-template-columns:1fr;gap:16px}
  .footer__inner{grid-template-columns:1fr;gap:28px;text-align:center}
  .footer__logo{margin-inline:auto}
  .footer__links{align-items:center}
  .footer__contact{align-items:center}
  .footer__follow{justify-content:center}
}

@media (max-width:460px){
  :root{--gutter:16px}
  .why__grid{grid-template-columns:1fr}
  .testi__stage{gap:8px}
  .round-arrow{width:34px;height:34px}
  .hero__actions{flex-direction:column}
  /* Reset the ≤860 `flex:1 1 180px`: in a column container that basis becomes
     a 180px HEIGHT, which stretches the buttons into tall blocks. */
  .hero__actions .btn{flex:0 0 auto;width:100%}
}

/* ============================================================
   INNER PAGES (about / projects / experience / contact)
   Section headings on these pages are teal (#377793) per Figma,
   unlike the navy headings on the home page.
   ============================================================ */
.section__title--teal{color:var(--navy-pale)}

/* ---------- Page hero (image banner + heading on the right) ---------- */
.page-hero{
  position:relative;isolation:isolate;
  min-height:clamp(360px,42vw,560px);
  display:flex;align-items:center;
}
.page-hero__bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.page-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center}
/* The exported photos carry a white fade, but at this crop it doesn't fully
   clear the text column — so lay a gradient that keeps the building visible on
   the start(right) third and turns the text area (left→ in LTR terms) white.
   In RTL the heading sits on the right, so the white must build toward the
   right: `to left` fades white on the inline-start(right) side. */
.page-hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to left,#fff 0%,rgba(255,255,255,.97) 46%,rgba(255,255,255,.8) 60%,rgba(255,255,255,0) 86%);
}
.page-hero__inner{width:100%}
/* Pin the copy to the RIGHT (inline-start in RTL) over the photo's white fade,
   as in Figma. NOTE: it must be `margin-inline-end:auto` — `margin-inline-start`
   would send the auto margin to the right and push the block LEFT, onto the
   building. */
.page-hero__content{
  max-width:640px;margin-inline-end:auto;text-align:right;padding-block:40px;
}
.page-hero__title{
  font-size:clamp(30px,3.4vw,40px);font-weight:700;color:var(--navy-pale);
  letter-spacing:-.8px;text-align:center;
}
.page-hero__sub{margin-top:12px;font-size:clamp(17px,1.4vw,22px);color:var(--navy);text-align:center}
.page-hero__text{margin-top:22px;font-size:clamp(15px,1.1vw,20px);color:var(--navy);line-height:1.6}
.page-hero__text p{margin-bottom:10px}
.page-hero__text p:last-child{margin-bottom:0}

/* ---------- Stats band (about) ---------- */
.stats{background:var(--navy);color:var(--white)}
.stats__inner{
  display:flex;justify-content:center;align-items:center;
  gap:clamp(40px,9vw,150px);padding-block:44px;
}
.stat{display:flex;align-items:center;gap:16px;text-align:center}
.stat__num{font-size:clamp(40px,5vw,60px);font-weight:700;letter-spacing:-1.2px;line-height:1}
.stat__label{font-size:clamp(16px,1.4vw,22px);color:rgba(255,255,255,.9)}
.stat__icon{width:clamp(38px,4vw,52px);height:auto;flex:0 0 auto;color:rgba(255,255,255,.92)}
.stat__icon svg{width:100%;height:auto;display:block}
.stats__divider{width:1.5px;align-self:stretch;background:var(--bronze);margin-block:6px}

/* ---------- Vision cards (about) ---------- */
.vision__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:46px;
}
.vision__card{
  position:relative;isolation:isolate;overflow:hidden;
  border-radius:var(--radius);min-height:383px;
  padding:40px 34px;display:flex;align-items:center;justify-content:center;
  text-align:center;color:var(--white);
  font-size:clamp(16px,1.3vw,20px);font-weight:500;line-height:1.5;
  background-size:cover;background-position:center;
}
/* Each card is a Figma photo already tinted with its brand colour. A thin extra
   scrim in the same hue guarantees white-text contrast over the lighter areas. */
.vision__card::before{content:"";position:absolute;inset:0;z-index:-1}
.vision__card--navy{background-image:url("../img/vision-1.webp")}
.vision__card--navy::before{background:rgba(8,52,81,.35)}
.vision__card--bronze{background-image:url("../img/vision-2.webp")}
.vision__card--bronze::before{background:rgba(138,106,79,.32)}
.vision__card--teal{background-image:url("../img/vision-3.webp")}
.vision__card--teal::before{background:rgba(55,119,147,.32)}

/* ---------- Management card (about) ---------- */
.mgmt{max-width:626px;margin:44px auto 0;background:var(--gray-bg);
  border:1px solid var(--gray-line);border-radius:var(--radius);
  padding:36px clamp(24px,4vw,48px);text-align:center}
.mgmt__name{font-size:24px;color:var(--navy);font-weight:700}
.mgmt__role{font-size:clamp(17px,1.4vw,22px);color:var(--navy);margin-top:4px}
.mgmt__bio{margin-top:20px;font-size:clamp(15px,1.1vw,18px);color:var(--muted);line-height:1.6}
.mgmt__bio p{margin-bottom:10px}
.mgmt__bio p:last-child{margin-bottom:0}

/* ---------- Project cards with photo (projects, tma38) ---------- */
.projgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:44px}
.pcard{
  background:var(--gray-bg);border:1.5px solid var(--gray-line);
  border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease);
}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.pcard__media{aspect-ratio:350/250;overflow:hidden}
.pcard__media img{width:100%;height:100%;object-fit:cover}
.pcard__body{padding:22px;text-align:center;display:flex;flex-direction:column;flex:1}
.pcard__title{font-size:clamp(20px,1.6vw,24px);font-weight:700;color:var(--navy)}
.pcard__desc{margin-top:12px;font-size:clamp(16px,1.2vw,20px);color:var(--navy);line-height:1.4}
.pcard__rule{width:274px;max-width:80%;height:2px;background:var(--bronze);
  margin:18px auto;border:0}
.pcard__status{font-size:clamp(15px,1.1vw,18px);color:var(--navy);margin-top:auto}

/* ---------- Project cards with icon (projects, delivered) ---------- */
.deliv__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}
.dcard{
  background:var(--gray-bg);border:1.77px solid #e0e0e0;border-radius:var(--radius);
  padding:30px 22px;text-align:center;
  display:flex;flex-direction:column;align-items:center;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease);
}
.dcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.dcard__icon{height:80px;display:grid;place-items:center;margin-bottom:16px}
.dcard__icon img{max-height:80px;width:auto}
.dcard__title{font-size:clamp(20px,1.6vw,24px);font-weight:700;color:var(--navy)}
.dcard__rule{width:236px;max-width:80%;height:2.35px;background:var(--bronze);
  margin:16px auto;border:0}
.dcard__desc{font-size:clamp(16px,1.2vw,20px);color:var(--navy);line-height:1.4}
.dcard__extra{margin-top:8px;font-size:15px;color:var(--bronze-deep);font-weight:600}

/* ---------- Numbered steps (experience) ---------- */
.steps{margin-top:40px;display:flex;flex-direction:column;gap:20px}
.step{
  position:relative;background:var(--gray-bg);border-radius:var(--radius);
  padding:34px clamp(24px,3vw,48px);
  display:flex;align-items:center;gap:clamp(20px,3vw,48px);
}
.step__num{
  flex:0 0 auto;font-size:clamp(64px,7vw,110px);font-weight:700;
  color:var(--bronze-pale);line-height:.9;letter-spacing:-4px;
  min-width:1.6em;text-align:center;
}
.step__body{text-align:right}
.step__title{font-size:clamp(19px,1.8vw,24px);font-weight:700;color:var(--navy);
  letter-spacing:-.48px;margin-bottom:10px}
.step__text{font-size:clamp(15px,1.15vw,18px);color:var(--navy);line-height:1.5}

/* ---------- Inner-page responsive ---------- */
@media (max-width:1024px){
  .deliv__grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  .page-hero{min-height:0;padding-block:44px}
  /* Small screens: the baked photo fade doesn't cover the text column, so lay
     a white scrim over the photo to keep the dark heading readable. */
  .page-hero__bg::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.72)}
  .page-hero__content{margin-inline:auto;text-align:center;max-width:none}
  .stats__inner{flex-direction:column;gap:28px}
  .stats__divider{width:60%;height:1.5px;margin:0}
  .vision__grid{grid-template-columns:1fr}
  .vision__card{min-height:0;padding:32px 26px}
  .projgrid{grid-template-columns:1fr;max-width:420px;margin-inline:auto}
  .deliv__grid{grid-template-columns:repeat(2,1fr)}
  .step{flex-direction:row;gap:18px;padding:24px}
  .step__num{font-size:clamp(48px,12vw,72px)}
}
@media (max-width:460px){
  .deliv__grid{grid-template-columns:1fr;max-width:320px;margin-inline:auto}
  .step__num{display:none}
  .step__body{text-align:right}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .btn:hover,.why__item:hover,.pcard:hover,.dcard:hover{transform:none}
  .ecard:hover .ecard__media img{transform:none}
}
