/* ===================================================================
   ELAN MANAGEMENT SERVICES — Global Stylesheet
   Brand: Deep green (#0F3D2E) + Gold (#C9A961)
   =================================================================== */

:root {
  --green:        #0F3D2E;
  --green-deep:   #0A2C20;
  --green-soft:   #15543E;
  --gold:         #C9A961;
  --gold-bright:  #D8BD7E;
  --gold-soft:    #EAD9B4;
  --red:          #E07A6F;   /* light red — accent */
  --red-soft:     #F4D9D5;   /* light red — tint / backgrounds */
  --red-deep:     #C85A4E;   /* light red — hover / emphasis */
  --ink:          #1A1A1A;
  --ink-soft:     #4A4A4A;
  --paper:        #FFFFFF;
  --off-white:    #F8F8F5;
  --line:         #E4E2DA;
  --shadow-sm:    0 2px 12px rgba(15,61,46,.06);
  --shadow-md:    0 14px 40px rgba(15,61,46,.10);
  --shadow-lg:    0 28px 70px rgba(15,61,46,.16);
  --serif:        'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans:         'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ease:         cubic-bezier(.22,.61,.36,1);
  --max:          1240px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
  line-height: 1.7;
  font-size: 17px;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4 { font-family: var(--serif); line-height: 1.18; color: var(--green); font-weight: 600; }
h1 { font-size: clamp(2.3rem, 5vw, 4rem); }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.9rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }
.r-hi { color: var(--red); font-style: italic; }       /* red highlight word in headings */
.r-em { color: var(--red); font-weight: 700; }         /* inline red emphasis */
p  { color: var(--ink-soft); }
a  { color: inherit; text-decoration: none; transition: color .25s var(--ease); }
img { max-width: 100%; display: block; }
ul { list-style: none; }

.container { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 28px; }
.section   { padding: 100px 0; }
.section--tight { padding: 70px 0; }
.text-center { text-align: center; }

/* ---- Eyebrow / kicker ---- */
.kicker {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--sans); font-size: .78rem; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold);
  margin-bottom: 18px;
}
/* red dot + gold dash before label — red appears on every kicker site-wide */
.kicker::before {
  content: ""; display: inline-block; width: 44px; height: 8px; flex: none;
  background:
    radial-gradient(circle at 4px 4px, var(--red) 3.5px, transparent 4px),
    linear-gradient(to right, transparent 0, transparent 12px, var(--gold) 12px, var(--gold) 44px);
  background-repeat: no-repeat;
}
.kicker.is-center { justify-content: center; }
.kicker.is-center::after {
  content: ""; display: inline-block; width: 44px; height: 8px; flex: none;
  background:
    radial-gradient(circle at 40px 4px, var(--red) 3.5px, transparent 4px),
    linear-gradient(to right, var(--gold) 0, var(--gold) 32px, transparent 32px);
  background-repeat: no-repeat;
}
/* fully red accent kicker — used as variation */
.kicker--accent { color: var(--red); }
.kicker--accent::before {
  background:
    radial-gradient(circle at 4px 4px, var(--gold) 3.5px, transparent 4px),
    linear-gradient(to right, transparent 0, transparent 12px, var(--red) 12px, var(--red) 44px);
}
.kicker--accent.is-center::after {
  background:
    radial-gradient(circle at 40px 4px, var(--gold) 3.5px, transparent 4px),
    linear-gradient(to right, var(--red) 0, var(--red) 32px, transparent 32px);
}
.accent-rule { width: 56px; height: 3px; background: var(--red); border-radius: 2px; margin: 0 auto; }

.section-head { max-width: 720px; margin: 0 auto 60px; }
.section-head p { margin-top: 14px; font-size: 1.05rem; }

/* ---- Buttons ---- */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--sans); font-weight: 600; font-size: .95rem;
  letter-spacing: .03em; padding: 16px 34px; border-radius: 2px;
  cursor: pointer; border: 1.5px solid transparent;
  transition: all .35s var(--ease); text-align: center;
}
.btn--gold       { background: var(--gold); color: var(--green-deep); }
.btn--gold:hover { background: var(--gold-bright); transform: translateY(-2px); box-shadow: 0 16px 34px rgba(201,169,97,.34); }
.btn--ghost      { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.btn--ghost:hover{ background: #fff; color: var(--green); border-color:#fff; }
.btn--green      { background: var(--green); color: #fff; }
.btn--green:hover{ background: var(--green-soft); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn--outline    { background: transparent; color: var(--green); border-color: var(--green); }
.btn--outline:hover { background: var(--green); color:#fff; }
.btn--red        { background: var(--red); color:#fff; }
.btn--red:hover  { background: var(--red-deep); transform: translateY(-2px); box-shadow: 0 16px 34px rgba(224,122,111,.32); }

/* =====================  HEADER  ===================== */
.topbar {
  background: var(--green-deep); color: rgba(255,255,255,.78);
  font-size: .82rem; letter-spacing: .02em;
}
.topbar .container { display: flex; justify-content: space-between; align-items: center; padding-top: 10px; padding-bottom: 10px; }
.topbar a:hover { color: var(--gold); }
.topbar__contact { display: flex; gap: 26px; flex-wrap: wrap; }
.topbar__contact span { display: inline-flex; align-items: center; gap: 8px; }
.topbar__social { display: flex; gap: 16px; }
.topbar__social a { display: inline-flex; }
.topbar__social svg { width: 15px; height: 15px; fill: rgba(255,255,255,.7); transition: fill .25s; }
.topbar__social a:hover svg { fill: var(--gold); }

.header {
  position: sticky; top: 0; z-index: 1000;
  background: var(--green);
  transition: box-shadow .3s var(--ease), background .3s var(--ease);
}
.header.scrolled { box-shadow: 0 10px 30px rgba(10,44,32,.28); }
.nav { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; }
.nav__logo img { height: 52px; width: auto; }
.nav__menu { display: flex; align-items: center; gap: 4px; }
.nav__menu > li > a {
  display: block; padding: 12px 18px; color: rgba(255,255,255,.9);
  font-weight: 500; font-size: .94rem; letter-spacing: .02em; position: relative;
}
.nav__menu > li > a::after {
  content:""; position:absolute; left:18px; right:18px; bottom:6px; height:2px;
  background: var(--gold); transform: scaleX(0); transform-origin:left;
  transition: transform .3s var(--ease);
}
.nav__menu > li > a:hover, .nav__menu > li > a.active { color:#fff; }
.nav__menu > li > a:hover::after, .nav__menu > li > a.active::after { transform: scaleX(1); }

.nav__has-drop { position: relative; }
.nav__drop {
  position: absolute; top: 100%; left: 0; min-width: 280px;
  background: #fff; box-shadow: var(--shadow-lg); border-radius: 2px;
  padding: 12px 0; opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: all .3s var(--ease); border-top: 3px solid var(--gold);
}
.nav__has-drop:hover .nav__drop { opacity:1; visibility:visible; transform: translateY(0); }
.nav__drop a { display:block; padding: 11px 24px; color: var(--ink-soft); font-size:.92rem; }
.nav__drop a:hover { background: var(--off-white); color: var(--green); padding-left: 28px; }

.nav__cta { margin-left: 14px; padding: 12px 26px; font-size:.9rem; }
.nav__toggle { display:none; background:none; border:0; cursor:pointer; padding:8px; }
.nav__toggle span { display:block; width:26px; height:2px; background:#fff; margin:5px 0; transition: all .3s var(--ease); }
.nav__toggle.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav__toggle.open span:nth-child(2){ opacity:0; }
.nav__toggle.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* =====================  HERO SLIDER  ===================== */
.hero { position: relative; height: 88vh; min-height: 580px; max-height: 860px; overflow: hidden; background: var(--green-deep); }
.hero__slide {
  position:absolute; inset:0; opacity:0; visibility:hidden;
  transition: opacity 1.1s var(--ease);
  display:flex; align-items:center;
}
.hero__slide.active { opacity:1; visibility:visible; }
.hero__slide::before {
  content:""; position:absolute; inset:0;
  background: linear-gradient(100deg, rgba(10,44,32,.93) 0%, rgba(10,44,32,.72) 45%, rgba(10,44,32,.40) 100%);
  z-index:1;
}
.hero__bg { position:absolute; inset:0; object-fit:cover; width:100%; height:100%; transform: scale(1.05); }
.hero__slide.active .hero__bg { animation: kenburns 7s ease-out forwards; }
@keyframes kenburns { from{ transform: scale(1.05);} to{ transform: scale(1.14);} }

.hero__inner { position:relative; z-index:2; max-width: 760px; }
.hero__kicker {
  font-size:.8rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
  color: var(--gold); margin-bottom:22px; opacity:0;
}
.hero__title { color:#fff; font-size: clamp(2.5rem, 5.6vw, 4.6rem); margin-bottom:22px; opacity:0; }
.hero__title span { color: var(--gold); }
.hero__title span.r { color: var(--red); font-style: italic; }
.hero__text { color: rgba(255,255,255,.85); font-size:1.12rem; max-width:560px; margin-bottom:38px; opacity:0; }
.hero__actions { display:flex; gap:16px; flex-wrap:wrap; opacity:0; }

.hero__slide.active .hero__kicker { animation: fadeUp .8s var(--ease) .25s forwards; }
.hero__slide.active .hero__title  { animation: fadeUp .8s var(--ease) .42s forwards; }
.hero__slide.active .hero__text   { animation: fadeUp .8s var(--ease) .60s forwards; }
.hero__slide.active .hero__actions{ animation: fadeUp .8s var(--ease) .78s forwards; }
@keyframes fadeUp { from{opacity:0; transform:translateY(34px);} to{opacity:1; transform:translateY(0);} }

.hero__dots { position:absolute; bottom:38px; left:50%; transform:translateX(-50%); z-index:5; display:flex; gap:14px; }
.hero__dots button { width:42px; height:3px; background:rgba(255,255,255,.35); border:0; cursor:pointer; transition: background .3s; }
.hero__dots button.active { background: var(--gold); }
.hero__arrow {
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:54px; height:54px; border:1px solid rgba(255,255,255,.3);
  background:rgba(255,255,255,.06); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition: all .3s var(--ease); backdrop-filter: blur(4px);
}
.hero__arrow:hover { background: var(--gold); border-color:var(--gold); color:var(--green-deep); }
.hero__arrow--prev { left:28px; } .hero__arrow--next { right:28px; }

/* =====================  REVEAL ON SCROLL  ===================== */
[data-reveal]{ opacity:0; transform: translateY(38px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal-delay="1"]{ transition-delay:.12s; }
[data-reveal-delay="2"]{ transition-delay:.24s; }
[data-reveal-delay="3"]{ transition-delay:.36s; }
[data-reveal-delay="4"]{ transition-delay:.48s; }
[data-reveal-delay="5"]{ transition-delay:.60s; }

/* =====================  INTRO STRIP  ===================== */
.intro { background: var(--off-white); }
.intro__grid { display:grid; grid-template-columns: 1fr 1.1fr; gap: 70px; align-items:center; }
.intro__media { position:relative; }
.intro__media .ph { aspect-ratio: 4/5; border-radius:2px; }
.intro__media .badge {
  position:absolute; bottom:-32px; right:-22px; background: var(--green);
  color:#fff; padding:30px 36px; border-radius:2px; box-shadow: var(--shadow-lg);
  border-top: 4px solid var(--red);
}
.intro__media .badge b { font-family: var(--serif); font-size:2.6rem; color: var(--gold); display:block; line-height:1; }
.intro__media .badge span { font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; opacity:.85; }
.intro__list { margin-top:26px; display:grid; gap:14px; }
.intro__list li { display:flex; gap:14px; align-items:flex-start; color: var(--ink-soft); }
.intro__list svg { flex-shrink:0; margin-top:3px; width:22px; height:22px; }

/* =====================  SERVICES GRID  ===================== */
.services { background:#fff; }
.svc-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.svc-card {
  background:#fff; border:1px solid var(--line); padding: 44px 36px;
  border-radius:2px; transition: all .4s var(--ease); position:relative; overflow:hidden;
}
.svc-card::before {
  content:""; position:absolute; left:0; top:0; height:4px; width:0;
  background: linear-gradient(90deg, var(--red) 0%, var(--gold) 100%);
  transition: width .45s var(--ease);
}
.svc-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-md); border-color: transparent; }
.svc-card:hover::before { width:100%; }
.svc-card__ico {
  width:64px; height:64px; border-radius:50%; background: var(--off-white);
  display:flex; align-items:center; justify-content:center; margin-bottom:24px;
  transition: all .4s var(--ease);
}
.svc-card:hover .svc-card__ico { background: var(--green); }
.svc-card__ico svg { width:30px; height:30px; stroke: var(--green); transition: stroke .4s var(--ease); }
.svc-card:hover .svc-card__ico svg { stroke: var(--gold); }
.svc-card h3 { margin-bottom:12px; }
.svc-card p { font-size:.97rem; margin-bottom:20px; }
.svc-card__link { font-weight:600; font-size:.88rem; letter-spacing:.06em; text-transform:uppercase; color:var(--green); display:inline-flex; gap:8px; align-items:center; }
.svc-card__link svg { width:16px; height:16px; transition: transform .3s var(--ease); }
.svc-card:hover .svc-card__link { color: var(--gold-bright); }
.svc-card:hover .svc-card__link svg { transform: translateX(5px); }

/* =====================  STATS  ===================== */
.stats { background: var(--green); position:relative; overflow:hidden; }
.stats::after {
  content:""; position:absolute; right:-120px; top:-120px; width:420px; height:420px;
  border:1px solid rgba(201,169,97,.16); border-radius:50%;
}
.stats::before {
  content:""; position:absolute; left:-150px; bottom:-150px; width:480px; height:480px;
  border:1px solid rgba(201,169,97,.10); border-radius:50%;
}
.stats__grid { display:grid; grid-template-columns: repeat(4,1fr); gap:30px; position:relative; z-index:2; }
.stat { text-align:center; padding: 20px; }
.stat__num { font-family: var(--serif); font-size: clamp(2.8rem,4.5vw,3.8rem); color: var(--gold); line-height:1; }
.stat__lbl { color:#fff; font-weight:600; margin-top:10px; font-size:1.02rem; }
.stat__desc { color: rgba(255,255,255,.62); font-size:.86rem; margin-top:8px; }
.stat + .stat { border-left:1px solid rgba(255,255,255,.10); }

/* =====================  CTA BANNER  ===================== */
.cta-band { position:relative; background: var(--green-deep); overflow:hidden; }
.cta-band::before {
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(circle at 80% 30%, rgba(201,169,97,.16), transparent 55%),
    radial-gradient(circle at 12% 80%, rgba(21,84,62,.5), transparent 50%);
}
.cta-band__inner { position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:50px; flex-wrap:wrap; }
.cta-band h2 { color:#fff; max-width:640px; }
.cta-band p  { color: rgba(255,255,255,.78); margin-top:14px; max-width:560px; }

/* =====================  CLIENTS STRIP  ===================== */
.clients { background: var(--off-white); }
.client-grid { display:grid; grid-template-columns: repeat(6,1fr); gap:20px; }
.client-logo {
  position:relative; overflow:hidden;
  background:#fff; border:1px solid var(--line); height:104px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; border-radius:2px;
  color:var(--green); font-size:.72rem; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; transition: all .35s var(--ease); text-align:center; padding:14px 10px;
}
.client-logo::before {
  content:""; position:absolute; left:0; top:0; width:100%; height:3px;
  background: var(--red); transform: scaleX(0); transform-origin:left;
  transition: transform .4s var(--ease);
}
.client-logo img.cl-mark { width:30px; height:30px; opacity:.55; transition: opacity .35s var(--ease); }
.client-logo span.cl-tag { color:var(--ink-soft); font-weight:600; }
.client-logo:hover {
  border-color: var(--gold); transform: translateY(-4px); box-shadow: var(--shadow-sm);
}
.client-logo:hover::before { transform: scaleX(1); }
.client-logo:hover img.cl-mark { opacity:1; }

/* =====================  TESTIMONIALS  ===================== */
.tst { background:#fff; }
.tst__view { position:relative; max-width:880px; margin:0 auto; min-height: 280px; }
.tst__slide {
  position:absolute; inset:0; opacity:0; visibility:hidden;
  transition: opacity .7s var(--ease); text-align:center; padding: 0 20px;
}
.tst__slide.active { opacity:1; visibility:visible; position:relative; }
.tst__quote { font-family: var(--serif); font-size: clamp(1.3rem,2.4vw,1.95rem); color: var(--green); line-height:1.5; font-style:italic; margin-bottom:30px; }
.tst__mark { font-family: var(--serif); font-size:5rem; color: var(--red); line-height:0; display:block; height:36px; opacity:.85; }
.tst__person { display:flex; align-items:center; justify-content:center; gap:16px; }
.tst__avatar { width:54px; height:54px; border-radius:50%; background:var(--green); color:var(--gold); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:1.3rem; }
.tst__name { font-weight:700; color:var(--green); }
.tst__role { font-size:.85rem; color: var(--ink-soft); }
.tst__dots { display:flex; gap:12px; justify-content:center; margin-top:42px; }
.tst__dots button { width:11px; height:11px; border-radius:50%; border:0; background: var(--line); cursor:pointer; transition: all .3s; }
.tst__dots button.active { background: var(--gold); transform: scale(1.25); }

/* =====================  FAQ  ===================== */
.faq { background: var(--off-white); }
.faq__wrap { max-width: 860px; margin:0 auto; }
.faq__item { background:#fff; border:1px solid var(--line); margin-bottom:14px; border-radius:2px; overflow:hidden; transition: box-shadow .3s; }
.faq__item.open { box-shadow: var(--shadow-sm); border-color: var(--red); border-left:4px solid var(--red); }
.faq__q {
  width:100%; text-align:left; background:none; border:0; cursor:pointer;
  padding: 24px 28px; font-family: var(--serif); font-size:1.12rem; color:var(--green);
  font-weight:600; display:flex; justify-content:space-between; align-items:center; gap:20px;
}
.faq__q span.ic { flex-shrink:0; width:26px; height:26px; position:relative; }
.faq__q span.ic::before, .faq__q span.ic::after {
  content:""; position:absolute; background: var(--gold); transition: transform .3s var(--ease), background .3s var(--ease);
}
.faq__q span.ic::before { top:50%; left:0; right:0; height:2px; transform:translateY(-50%); }
.faq__q span.ic::after  { left:50%; top:0; bottom:0; width:2px; transform:translateX(-50%); }
.faq__item.open .faq__q span.ic::before { background: var(--red); }
.faq__item.open .faq__q span.ic::after { transform: translateX(-50%) scaleY(0); }
.faq__a { max-height:0; overflow:hidden; transition: max-height .4s var(--ease); }
.faq__a p { padding: 0 28px 26px; color: var(--ink-soft); font-size:.98rem; }

/* =====================  FOOTER  ===================== */
.footer { background: var(--green-deep); color: rgba(255,255,255,.7); border-top: 4px solid var(--red); }
.footer__top { padding: 80px 0 56px; }
.footer__grid { display:grid; grid-template-columns: 1.6fr 1fr 1fr 1.4fr; gap:48px; }
.footer__logo img { height:54px; margin-bottom:22px; }
.footer__about { font-size:.95rem; line-height:1.8; max-width:340px; }
.footer h4 { color:#fff; font-family: var(--sans); font-size:.86rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:24px; font-weight:700; display:flex; align-items:center; gap:10px; }
.footer h4::before { content:""; width:8px; height:8px; border-radius:50%; background: var(--red); display:inline-block; }
.footer__links li { margin-bottom:13px; }
.footer__links a { font-size:.95rem; }
.footer__links a:hover { color: var(--gold); padding-left:6px; }
.footer__contact li { display:flex; gap:13px; margin-bottom:18px; font-size:.94rem; align-items:flex-start; }
.footer__contact svg { flex-shrink:0; width:18px; height:18px; stroke: var(--gold); margin-top:3px; }
.footer__contact a:hover { color: var(--gold); }
.footer__social { display:flex; gap:13px; margin-top:26px; }
.footer__social a {
  width:40px; height:40px; border:1px solid rgba(255,255,255,.18); border-radius:50%;
  display:flex; align-items:center; justify-content:center; transition: all .3s var(--ease);
}
.footer__social svg { width:16px; height:16px; fill: rgba(255,255,255,.7); }
.footer__social a:hover { background: var(--red); border-color: var(--red); transform: translateY(-3px); }
.footer__social a:hover svg { fill: #fff; }
.footer__bottom {
  border-top:1px solid rgba(255,255,255,.10); padding: 26px 0;
  display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
  font-size:.86rem;
}
.footer__bottom a:hover { color: var(--gold); }

/* =====================  PLACEHOLDER IMAGE BLOCKS  ===================== */
.ph {
  background:
    repeating-linear-gradient(45deg, rgba(15,61,46,.04) 0 14px, rgba(15,61,46,.07) 14px 28px),
    var(--green);
  display:flex; align-items:center; justify-content:center; text-align:center;
  color: rgba(255,255,255,.6); font-size:.8rem; letter-spacing:.1em;
  text-transform:uppercase; font-weight:600; padding:20px; min-height:200px;
}
.ph small { display:block; font-size:.7rem; opacity:.7; margin-top:8px; letter-spacing:.04em; text-transform:none; }

/* =====================  PAGE BANNER (inner pages)  ===================== */
.pbanner { position:relative; background: var(--green-deep); padding: 130px 0 90px; overflow:hidden; }
.pbanner::before {
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(circle at 85% 20%, rgba(201,169,97,.18), transparent 50%),
    repeating-linear-gradient(45deg, rgba(255,255,255,.015) 0 18px, transparent 18px 36px);
}
.pbanner__inner { position:relative; z-index:2; max-width:760px; }
.pbanner h1 { color:#fff; }
.pbanner h1::after {
  content:""; display:block; width:96px; height:6px; background: var(--red);
  border-radius:3px; margin-top:24px;
  box-shadow: 0 0 22px rgba(224,122,111,.45);
}
.pbanner p { color: rgba(255,255,255,.78); margin-top:16px; font-size:1.08rem; max-width:580px; }
.pbanner__crumb { color: var(--gold); font-size:.85rem; letter-spacing:.1em; margin-bottom:18px; }
.pbanner__crumb a { color: rgba(255,255,255,.7); } .pbanner__crumb a:hover{ color:#fff; }

/* =====================  FORMS  ===================== */
.form-card { background:#fff; border:1px solid var(--line); padding: 48px; border-radius:2px; box-shadow: var(--shadow-sm); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.field { margin-bottom:22px; }
.field label { display:block; font-size:.86rem; font-weight:600; color:var(--green); margin-bottom:9px; letter-spacing:.02em; }
.field label .req { color: var(--red); font-weight:700; }
.field input, .field select, .field textarea {
  width:100%; padding:14px 16px; border:1.5px solid var(--line); border-radius:2px;
  font-family: var(--sans); font-size:.96rem; color:var(--ink); background:var(--off-white);
  transition: all .25s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline:0; border-color: var(--gold); background:#fff; box-shadow: 0 0 0 4px rgba(201,169,97,.12);
}
.field textarea { resize:vertical; min-height:140px; }
.field input[type=file] { padding:11px 14px; background:#fff; cursor:pointer; }
.field .err { color:#c0392b; font-size:.8rem; margin-top:6px; display:none; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color:#c0392b; background:#fdf3f2; }
.field.invalid .err { display:block; }
.form-ok {
  background: #eef6f1; border:1px solid var(--green-soft); color: var(--green);
  padding:18px 22px; border-radius:2px; margin-bottom:24px; font-size:.95rem;
  display:none; align-items:center; gap:12px;
}
.form-ok.show { display:flex; }
.form-ok svg { flex-shrink:0; width:22px; height:22px; stroke: var(--green); }

/* =====================  GENERIC CARD GRIDS  ===================== */
.grid-2 { display:grid; grid-template-columns: repeat(2,1fr); gap:30px; }
.grid-3 { display:grid; grid-template-columns: repeat(3,1fr); gap:26px; }
.info-card { background:#fff; border:1px solid var(--line); padding:40px 34px; border-radius:2px; transition: all .4s var(--ease); position:relative; overflow:hidden; }
.info-card::after {
  content:""; position:absolute; top:0; right:0; width:0; height:4px;
  background: var(--red); transition: width .45s var(--ease);
}
.info-card:hover { transform:translateY(-6px); box-shadow: var(--shadow-md); border-color:transparent; }
.info-card:hover::after { width:100%; }
.info-card__ico { width:58px; height:58px; border-radius:50%; background:var(--off-white); display:flex; align-items:center; justify-content:center; margin-bottom:22px; }
.info-card__ico svg { width:28px; height:28px; stroke:var(--green); }
.info-card h3 { margin-bottom:12px; }
.info-card p { font-size:.96rem; }

.value-card { background: var(--off-white); padding:38px 32px; border-radius:2px; border-left:4px solid var(--gold); transition: all .35s var(--ease); position: relative; }
.value-card:nth-child(2n) { border-left-color: var(--red); }
.value-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-sm); }
.value-card h3 { font-size:1.3rem; margin-bottom:10px; }
.value-card p { font-size:.95rem; }

.team-card { text-align:center; }
.team-card .ph { aspect-ratio:1; border-radius:2px; margin-bottom:20px; }
.team-card h3 { font-size:1.3rem; }
.team-card .role { color: var(--red); font-weight:700; font-size:.9rem; letter-spacing:.05em; text-transform:uppercase; margin-top:6px; }
.team-card p { font-size:.92rem; margin-top:12px; }

.job-card { background:#fff; border:1px solid var(--line); border-radius:2px; padding:34px 36px; transition: all .35s var(--ease); display:flex; justify-content:space-between; align-items:center; gap:30px; flex-wrap:wrap; }
.job-card:hover { box-shadow: var(--shadow-md); border-color: var(--gold); }
.job-card h3 { font-size:1.35rem; margin-bottom:8px; }
.job-card .meta { display:flex; gap:22px; flex-wrap:wrap; color:var(--ink-soft); font-size:.88rem; }
.job-card .meta span { display:inline-flex; align-items:center; gap:7px; }

.prose { max-width: 860px; margin:0 auto; }
.prose h2 { font-size:1.7rem; margin: 44px 0 16px; }
.prose h3 { font-size:1.25rem; margin: 30px 0 12px; }
.prose p, .prose li { color: var(--ink-soft); margin-bottom:14px; }
.prose ul { margin: 0 0 20px 22px; list-style: disc; }
.prose ul li { margin-bottom:8px; }
.prose strong { color: var(--green); }

.contact-grid { display:grid; grid-template-columns: 1.2fr 1fr; gap:50px; }
.contact-info { background: var(--green); color:#fff; padding:48px; border-radius:2px; }
.contact-info h3 { color:#fff; margin-bottom:28px; }
.contact-info li { display:flex; gap:16px; margin-bottom:26px; align-items:flex-start; }
.contact-info svg { flex-shrink:0; width:22px; height:22px; stroke: var(--gold); margin-top:3px; }
.contact-info a:hover { color: var(--gold); }
.contact-info .ci-lbl { font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color: var(--gold); margin-bottom:4px; }
.map-embed { margin-top:40px; }
.map-embed .ph { min-height:260px; }

/* =====================  RESPONSIVE  ===================== */
@media (max-width: 1024px){
  .svc-grid, .grid-3 { grid-template-columns: repeat(2,1fr); }
  .stats__grid { grid-template-columns: repeat(2,1fr); gap:36px 20px; }
  .stat:nth-child(odd){ border-left:0; }
  .stat:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.1); padding-top:34px; }
  .footer__grid { grid-template-columns: 1fr 1fr; gap:40px; }
  .intro__grid { grid-template-columns:1fr; gap:50px; }
  .intro__media .badge { right:18px; }
  .contact-grid { grid-template-columns:1fr; }
}
@media (max-width: 860px){
  .topbar { display:none; }
  .nav__toggle { display:block; }
  .nav__menu {
    position: fixed; top:0; right:-100%; width:min(86vw,360px); height:100vh;
    background: var(--green-deep); flex-direction:column; align-items:stretch;
    padding: 90px 26px 40px; gap:2px; transition: right .4s var(--ease);
    overflow-y:auto; box-shadow: -20px 0 60px rgba(0,0,0,.4); z-index:1200;
  }
  .nav__menu.open { right:0; }
  .nav__menu > li > a { padding:15px 14px; font-size:1rem; border-bottom:1px solid rgba(255,255,255,.07); }
  .nav__menu > li > a::after{ display:none; }
  .nav__drop { position:static; opacity:1; visibility:visible; transform:none; box-shadow:none;
    background:transparent; border:0; padding:4px 0 8px; max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
  .nav__has-drop.open .nav__drop { max-height:420px; }
  .nav__drop a { color: rgba(255,255,255,.66); padding:10px 22px; }
  .nav__drop a:hover { background: rgba(255,255,255,.05); color:#fff; }
  .nav__cta { display:none; }
  .nav-overlay { position:fixed; inset:0; background:rgba(0,0,0,.5); opacity:0; visibility:hidden; transition:.3s; z-index:1100; }
  .nav-overlay.show { opacity:1; visibility:visible; }
}
@media (max-width: 680px){
  .section { padding: 66px 0; }
  .svc-grid, .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .client-grid { grid-template-columns: repeat(3,1fr); }
  .stats__grid { grid-template-columns:1fr; }
  .stat { border-left:0 !important; border-top:1px solid rgba(255,255,255,.1); padding-top:30px; }
  .stat:first-child { border-top:0; }
  .footer__grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .form-card { padding:30px 22px; }
  .cta-band__inner { flex-direction:column; align-items:flex-start; }
  .hero { height:auto; min-height:auto; padding:120px 0; }
  .hero__arrow{ display:none; }
  .container { padding:0 20px; }
}
@media (max-width: 380px){
  .client-grid { grid-template-columns: repeat(2,1fr); }
}
