:root{
  --ink:#101d2e; --ink-soft:#25344a; --body:#5b6472;
  --blue:#14488d; --red:#c52724; --red-deep:#a81f1c;
  --paper:#ffffff; --ivory:#faf9f6; --ivory-2:#f5f3ee;
  --line:#e8e5df; --line-soft:#f0eee9;
  --serif:"Fraunces", Georgia, "Times New Roman", serif;
  --sans:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --shadow:0 24px 60px rgba(16,29,46,.08);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.75;font-size:16.5px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{text-decoration:none;color:var(--blue)}
.wrap{width:min(1200px,90%);margin:0 auto}
.narrow{width:min(880px,90%);margin:0 auto}

h1,h2,h3{font-family:var(--serif);color:var(--ink);font-weight:500;line-height:1.12;letter-spacing:-.015em}
h2.sec{font-size:clamp(2.1rem,3.8vw,3.3rem);margin-bottom:1.2rem}
.acc{color:var(--red);font-style:italic}
.lead{color:var(--body);font-size:1.08rem;max-width:60ch}

/* eyebrow */
.eyebrow{display:inline-flex;align-items:center;gap:.8rem;font-size:.72rem;font-weight:800;
  letter-spacing:.34em;text-transform:uppercase;color:var(--blue);margin-bottom:1.4rem}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--red)}
.eyebrow.center{justify-content:center}

/* sections */
.section{padding:7rem 0}
.section-ivory{background:var(--ivory);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.center{text-align:center}
.center .lead{margin:0 auto}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:1.02rem 2.1rem;border-radius:999px;
  font-weight:800;font-size:.9rem;letter-spacing:.02em;border:1.5px solid transparent;cursor:pointer;
  transition:all .22s ease;font-family:var(--sans)}
.btn svg{width:16px;height:16px;transition:transform .22s ease}
.btn:hover svg{transform:translateX(4px)}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-deep);box-shadow:0 16px 34px rgba(197,39,36,.28);transform:translateY(-2px)}
.btn-ghost{border-color:#cfd4dc;color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#1d2f47;box-shadow:0 16px 34px rgba(16,29,46,.24);transform:translateY(-2px)}

.textlink{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;color:var(--red);font-size:.93rem}
.textlink svg{width:15px;height:15px;transition:transform .2s}
.textlink:hover svg{transform:translateX(4px)}

/* ============ header ============ */
header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:.25s}
header.scrolled{border-color:var(--line);box-shadow:0 10px 34px rgba(16,29,46,.06)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:88px}
.logo-link img{height:46px;width:auto}
nav.main{display:flex;align-items:center;gap:2.2rem}
nav.main a{color:var(--ink-soft);font-weight:700;font-size:.93rem;position:relative;padding:7px 0;display:inline-flex;align-items:center}
nav.main a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--red);transition:width .22s}
nav.main a:hover::after,nav.main a.active::after{width:100%}
nav.main a.active{color:var(--ink)}
.nav-home svg{width:20px;height:20px;display:block}
.nav-cta{background:var(--red);color:#fff !important;padding:.72rem 1.55rem;border-radius:999px;
  font-size:.85rem !important;letter-spacing:.03em;transition:.22s}
.nav-cta::after{display:none}
.nav-cta:hover{background:var(--red-deep);box-shadow:0 10px 26px rgba(197,39,36,.3)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.burger span{display:block;width:26px;height:2.5px;background:var(--ink);margin:5.5px 0;border-radius:2px;transition:.22s}
.burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ============ hero ============ */
.hero{position:relative;overflow:hidden;background:#fff}
.hero-rose{position:absolute;right:-140px;top:44%;transform:translateY(-50%);width:640px;height:640px;pointer-events:none}
.hero-grid{display:grid;grid-template-columns:7fr 5fr;align-items:center;position:relative}
.hero-copy{padding:7.4rem 0 6.4rem}
.hero h1{font-size:clamp(3.2rem,7vw,5.6rem);font-weight:500;line-height:1.04;letter-spacing:-.025em}
.hero h1 .acc{font-weight:400}
.hero-sub{color:var(--body);font-size:1.14rem;max-width:520px;margin:1.8rem 0 2.6rem}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.hero-index{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);position:relative}
.hix{padding:1.7rem 1.8rem 1.9rem;border-right:1px solid var(--line)}
.hix:first-child{padding-left:0}
.hix:last-child{border-right:0}
.hix .n{font-family:var(--serif);color:var(--red);font-size:.95rem;font-style:italic}
.hix .t{font-weight:800;font-size:.93rem;color:var(--ink);margin-top:.25rem;line-height:1.45}
.hix .s{font-size:.8rem;color:var(--body);margin-top:.2rem}

/* page hero (inner pages) */
.page-hero{background:#fff;border-bottom:1px solid var(--line);padding:5.6rem 0 4.6rem}
.page-hero h1{font-size:clamp(2.6rem,5.2vw,4.2rem);max-width:900px}
.page-hero p.sub{color:var(--body);margin-top:1.3rem;font-size:1.1rem;max-width:640px}

/* ============ split ============ */
.split{display:grid;grid-template-columns:5fr 7fr;gap:4.5rem;align-items:start}
.split .bodycol{color:var(--body);font-size:1.07rem}
.split .bodycol p{margin-bottom:1.2rem}
.split .bodycol b{color:var(--ink)}

/* ============ services — editorial rows ============ */
.svc-rows{border-top:1px solid var(--line);margin-top:3.4rem}
.svc-row{display:grid;grid-template-columns:5fr 7fr;gap:3rem;padding:3.2rem 0;border-bottom:1px solid var(--line)}
.svc-head .num{font-family:var(--serif);font-style:italic;color:var(--red);font-size:1.05rem}
.svc-head h3{font-size:clamp(1.5rem,2.4vw,2rem);margin:.5rem 0 .7rem;font-weight:500}
.svc-head .tag{color:var(--body);font-size:.98rem;max-width:38ch}
.svc-head .svg-ic{width:46px;height:46px;color:var(--blue);margin-bottom:1.2rem}
.svc-items{list-style:none;columns:2;column-gap:2.6rem}
.svc-items li{break-inside:avoid;padding:.68rem 0 .68rem 1.7rem;font-size:.95rem;font-weight:600;color:var(--ink-soft);
  border-bottom:1px solid var(--line-soft);position:relative}
.svc-items li::before{content:"";position:absolute;left:0;top:1.18rem;width:7px;height:7px;border-radius:50%;
  border:1.7px solid var(--red)}
.svc-row .textlink{margin-top:1.4rem}

/* ============ mission quote ============ */
.quote{position:relative;text-align:center;padding:1rem 0}
.quote .mark{font-family:var(--serif);font-size:6rem;line-height:0;color:var(--red);display:block;margin-bottom:2.2rem;font-style:italic}
.quote .q{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.5rem);font-weight:400;color:var(--ink);
  max-width:880px;margin:0 auto;line-height:1.45;letter-spacing:-.01em}
.quote .q em{color:var(--blue);font-style:italic}
.quote .who{margin-top:2.2rem;color:var(--body);letter-spacing:.32em;font-size:.72rem;text-transform:uppercase;font-weight:800}
.quote .who::before{content:"";display:block;width:26px;height:2px;background:var(--red);margin:0 auto 1rem}

/* ============ why — columns with rules ============ */
.why-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:3.4rem;margin-top:3.6rem}
.why-col{border-top:2.5px solid var(--ink);padding-top:1.7rem;position:relative}
.why-col::before{content:"";position:absolute;top:-2.5px;left:0;width:52px;height:2.5px;background:var(--red)}
.why-col .n{font-family:var(--serif);font-style:italic;font-size:2.6rem;color:#d5d0c6;line-height:1}
.why-col h3{font-family:var(--sans);font-weight:800;font-size:1.13rem;margin:1rem 0 .6rem;letter-spacing:0}
.why-col p{color:var(--body);font-size:.97rem}

/* ============ purpose pillars ============ */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:2.8rem;margin-top:3.6rem}
.pillar{border-top:1px solid var(--line);padding-top:1.6rem}
.pillar .pic{width:46px;height:46px;color:var(--blue);margin-bottom:1.1rem}
.pillar .pic svg{width:100%;height:100%}
.pillar h3{font-family:var(--sans);font-weight:800;font-size:1.05rem;margin-bottom:.5rem}
.pillar p{color:var(--body);font-size:.93rem}

/* ============ vision / mission ============ */
.vm-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:3.2rem}
.vm-card{background:#fff;border:1px solid var(--line);padding:3rem 2.8rem;position:relative}
.vm-card::before{content:"";position:absolute;top:-1px;left:-1px;width:56px;height:56px;
  border-top:2.5px solid var(--red);border-left:2.5px solid var(--red)}
.vm-card .lb{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--blue);font-weight:800;margin-bottom:1.3rem}
.vm-card p{font-family:var(--serif);font-size:1.35rem;line-height:1.6;color:var(--ink);font-weight:400;letter-spacing:-.01em}

/* ============ team ============ */
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:3.4rem}
.team-card{display:flex;gap:1.8rem;background:#fff;border:1px solid var(--line);padding:2.4rem;
  transition:transform .24s,box-shadow .24s}
.team-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.avatar{width:78px;height:78px;border-radius:50%;background:var(--ivory);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;flex:0 0 78px;position:relative;
  font-family:var(--serif);font-weight:500;color:var(--blue);font-size:1.5rem;font-style:italic}
.avatar::after{content:"";position:absolute;inset:5px;border-radius:50%;border:1px dashed rgba(197,39,36,.4)}
.team-card h3{font-family:var(--sans);font-weight:800;font-size:1.14rem;letter-spacing:0}
.team-card .role{color:var(--red);font-size:.75rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;margin:.3rem 0 .8rem}
.team-card p.bio{color:var(--body);font-size:.95rem}

/* ============ clients — ticker ============ */
.ticker-wrap{margin-top:3.2rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:2.6rem 0}
.ticker{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker + .ticker{margin-top:2.8rem}
.tk-track{display:flex;align-items:center;width:max-content;animation:tk-scroll 48s linear infinite}
.ticker.rev .tk-track{animation-direction:reverse}
.ticker:hover .tk-track{animation-play-state:paused}
.tk-item{flex:0 0 auto;margin-right:5rem;display:flex;align-items:center;justify-content:center;height:64px}
.tk-item img{max-height:58px;max-width:150px;width:auto;object-fit:contain}
@keyframes tk-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .tk-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center;gap:2rem 0}
}

/* ============ footer socials ============ */
.f-social{display:flex;gap:.8rem;margin-top:1.6rem}
.f-social a{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--ink-soft);transition:.2s}
.f-social a:hover{background:var(--red);border-color:var(--red);color:#fff;transform:translateY(-2px)}
.f-social svg{width:18px;height:18px}

/* ============ CTA ============ */
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:2.5rem;flex-wrap:wrap}
.cta-inner h2{font-size:clamp(2.2rem,4.4vw,3.6rem)}
.cta-inner p{color:var(--body);margin-top:.7rem;max-width:52ch}

/* ============ contact ============ */
.contact-grid{display:grid;grid-template-columns:5fr 7fr;gap:2.4rem;align-items:start}
.cinfo{display:grid;gap:0;border:1px solid var(--line);background:#fff}
.cinfo-card{padding:1.8rem 2.1rem;border-bottom:1px solid var(--line);display:flex;gap:1.3rem;align-items:flex-start}
.cinfo-card:last-child{border-bottom:0}
.cinfo-card .ic{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--ivory);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--red)}
.cinfo-card .ic svg{width:17px;height:17px}
.cinfo-card .lb{font-size:.68rem;letter-spacing:.3em;color:var(--blue);font-weight:800;text-transform:uppercase;margin-bottom:.25rem}
.cinfo-card .vl{font-size:1rem;font-weight:700;color:var(--ink)}
.cinfo-card .vl a{color:var(--ink)}
.cinfo-card .vl a:hover{color:var(--red)}
.form-card{background:#fff;border:1px solid var(--line);padding:2.8rem;position:relative}
.form-card::before{content:"";position:absolute;top:-1px;right:-1px;width:56px;height:56px;
  border-top:2.5px solid var(--red);border-right:2.5px solid var(--red)}
.form-card h3{font-size:1.7rem;margin-bottom:1.7rem;font-weight:500}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.f-group{margin-bottom:1.2rem}
.f-group label{display:block;font-size:.74rem;font-weight:800;color:var(--ink);margin-bottom:.45rem;letter-spacing:.14em;text-transform:uppercase}
.f-group input,.f-group textarea{width:100%;padding:.9rem 1.05rem;border:1.5px solid #d6d9de;border-radius:0;
  font-family:inherit;font-size:.95rem;color:var(--ink);transition:.18s;background:#fff}
.f-group input:focus,.f-group textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,72,141,.12)}
.form-note{font-size:.82rem;color:#98a0ac;font-style:italic;margin-top:1.1rem}

/* ============ footer ============ */
footer{background:#fff;border-top:1px solid var(--line);color:var(--body)}
.f-grid{display:grid;grid-template-columns:5fr 3fr 4fr;gap:3rem;padding:4.6rem 0 3.6rem}
.f-brand img{height:48px;width:auto;margin-bottom:1.4rem}
.f-brand p{font-size:.95rem;max-width:36ch}
.f-trio{margin-top:1.4rem;color:var(--red);letter-spacing:.24em;font-size:.72rem;font-weight:800;text-transform:uppercase}
footer h4{color:var(--blue);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;margin-bottom:1.4rem;font-family:var(--sans)}
footer ul{list-style:none}
footer li{margin-bottom:.65rem;font-size:.95rem}
footer a{color:var(--ink-soft);font-weight:600}
footer a:hover{color:var(--red)}
.f-contact li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink-soft);font-weight:600}
.f-contact svg{width:15px;height:15px;flex:0 0 15px;margin-top:6px;color:var(--red)}
.f-bottom{border-top:1px solid var(--line);padding:1.4rem 0;font-size:.85rem;color:#9aa1ac}
.f-bottom .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* ============ SPA + reveal ============ */
.page{display:none}
.page.active{display:block;animation:fadeIn .45s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.rv{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}
.rv.on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ============ responsive ============ */
@media (max-width:1020px){
  .hero-grid{grid-template-columns:1fr}
  .hero-rose{opacity:.35;right:-300px}
  .split,.contact-grid{grid-template-columns:1fr;gap:2.4rem}
  .svc-row{grid-template-columns:1fr;gap:1.6rem}
  .svc-items{columns:2}
  .why-cols{grid-template-columns:1fr;max-width:620px}
  .pillars{grid-template-columns:1fr 1fr}
  .vm-grid,.team-grid{grid-template-columns:1fr}
  .cl-grid{grid-template-columns:repeat(4,1fr)}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  nav.main{position:fixed;inset:89px 0 auto 0;background:#fff;flex-direction:column;align-items:flex-start;
    padding:1.7rem 6% 2.1rem;gap:1.3rem;border-bottom:1px solid var(--line);box-shadow:0 30px 50px rgba(16,29,46,.12);
    transform:translateY(-140%);transition:transform .26s ease;z-index:50}
  nav.main.open{transform:translateY(0)}
  .burger{display:block}
  .hero-copy{padding:4.6rem 0 4.4rem}
  .hero-index{grid-template-columns:1fr}
  .hix{padding:1.2rem 0;border-right:0;border-bottom:1px solid var(--line)}
  .hix:last-child{border-bottom:0}
  .section{padding:4.4rem 0}
  .svc-items{columns:1}
  .pillars{grid-template-columns:1fr}
  .cl-grid{grid-template-columns:1fr 1fr}
  .team-card{flex-direction:column}
  .f-grid{grid-template-columns:1fr}
  .f-row{grid-template-columns:1fr}
  .cta-inner{flex-direction:column;align-items:flex-start}
}

/* ============ additions for PHP build ============ */
.bodylarge{font-size:1.12rem;color:var(--body)}
.bodylarge p{margin-bottom:1.25rem}
.bodylarge b{color:var(--ink)}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.tk-name{font-weight:800;color:var(--ink-soft);font-size:1rem;letter-spacing:.04em}
.hp-field{position:absolute;left:-9999px;top:-9999px}
.alert{padding:1rem 1.2rem;margin-bottom:1.2rem;font-size:.95rem;border:1px solid}
.alert-success{background:#f0f7f2;border-color:#bfdcc9;color:#14663b}
.alert-error{background:#fdf0ef;border-color:#f0c4c1;color:#9c2020}
.qacc{color:var(--blue);font-style:italic}
