


:root { --primary:#fa6400;
    --primary-dark:#e05800;
    --accent:#5d26af;
    --accent-dark:#4a1e8c;
    --dark:#333333;
    --dark-2:#2c2c2c;
    --text:#222222;
    --border:#dddddd;
    --muted:#cbcbcb;
    --pale:#e1e1e1;
    --white:#fefefe;
    --green:#1fa96b;
    --green-bg:#e8f8f0;
    --blue:#2b6ee8;
    --blue-bg:#e6ecfb;
    --red:#e0473c;
    --red-bg:#fbe9e7;
    --orange-bg:#fdece0;
    --purple-bg:#eee4fa;
    --surface:#ffffff;
    --surface-subtle:#f7f7f7;
    --text-muted:#6d6d6d;
    --radius-sm:6px;
    --radius-md:10px;
    --shadow-sm:0 4px 20px rgba(0,0,0,.04);
    --shadow-lg:0 18px 40px rgba(0,0,0,.08);
    --space-1:8px;
    --space-2:16px;
    --space-3:24px;
    --space-4:36px;
    --space-5:56px;
    --transition:150ms ease; }
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family: 'Segoe UI', Arial, Helvetica, sans-serif;
    color: var(--text);
    background: var(--white);
    line-height:1.5; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
img { max-width:100%; display:block; }
.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; }
.container { max-width:1140px; margin:0 auto; padding:0 24px; }
.btn { display:inline-block; padding:13px 30px; border-radius:6px; font-weight:600;
    font-size:15px; border:none; cursor:pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--primary); color:#fff; }
.btn-primary:hover { background: var(--primary-dark); box-shadow:0 8px 20px rgba(250,100,0,.35); }
.btn-accent { background: var(--accent); color:#fff; }
.btn-accent:hover { background: var(--accent-dark); box-shadow:0 8px 20px rgba(93,38,175,.35); }
.btn-outline { background:transparent; color:#fff; border:1px solid #666; }
.btn-outline:hover { border-color: var(--primary); color: var(--primary); box-shadow:none; }
.btn-ghost { background: var(--pale); color: var(--text); }
.btn-ghost:hover { background:#d5d5d5; box-shadow:none; }
.btn-sm { padding:9px 18px; font-size:13px; }
.btn-full { width:100%; text-align:center; }
header { background: var(--dark); position: relative; z-index: 30; transition: box-shadow .25s ease, background .25s ease; }
.navbar { display:flex; align-items:center; justify-content:space-between; padding:20px 24px; max-width:1140px; margin:0 auto; }
.logo { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; color:#fff; font-size:22px; font-weight:700; }
.logo span { color: var(--primary); }
.logo small { font-weight:400; font-size:13px; color:#a9a9a9; }
.nav-links { display:flex; gap:32px; }
.nav-links a { color:#e8e8e8; font-size:15px; font-weight:500; transition: color .15s ease; }
.nav-links a:hover { color: var(--primary); }
.nav-links a.active { color: var(--primary); }
.nav-icon { display:none; }
.nav-icon svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.nav-cta { background: var(--primary); color:#fff; padding:10px 22px; border-radius:6px; font-weight:600; font-size:14px; white-space:nowrap; }
.nav-cta:hover { background: var(--primary-dark); }
.menu-toggle { display:none; background:none; border:none; cursor:pointer; padding:6px; }
.menu-toggle span { display:block; width:26px; height:3px; background:#fff; margin:5px 0; border-radius:2px; }
.page-hero { background: var(--dark); position:relative; overflow:hidden; padding:48px 0 80px; text-align:center; }
.page-hero .blob-purple { position:absolute; width:280px; height:280px; background: var(--accent); border-radius:38% 62% 63% 37% / 41% 44% 56% 59%; left:-90px; top:-60px; opacity:.55; z-index:1; }
.page-hero .blob-orange { position:absolute; width:220px; height:220px; background: var(--primary); border-radius:60% 40% 30% 70% / 60% 30% 70% 40%; right:-70px; bottom:-30px; opacity:.55; z-index:1; }
.page-hero .dot-grid { position:absolute; top:20px; right:14%; width:110px; height:110px; background-image: radial-gradient(rgba(255,255,255,.2) 1.5px, transparent 1.5px); background-size: 12px 12px; z-index:1; }
.page-hero-inner { position:relative; z-index:3; max-width:720px; margin:0 auto; padding:0 24px; }
.eyebrow-pill { display:inline-flex; align-items:center; gap:8px; padding:7px 16px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid #4a4a4a; color: var(--primary); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:22px; }
.eyebrow-pill::before { content:""; width:7px; height:7px; border-radius:50%; background: var(--primary); }
.page-hero h1 { font-size:34px; line-height:1.2; color:#fff; font-weight:800; margin-bottom:18px; }
.page-hero p { color:#c9c9c9; font-size:15px; max-width:600px; margin:0 auto; line-height:1.6; }
.wave-bottom { position:absolute; left:0; right:0; bottom:-1px; line-height:0; z-index:2; }
.wave-bottom svg { width:100%; height:auto; display:block; }
.section-heading { text-align:center; margin-bottom:50px; }
.section-heading h2 { font-size:32px; font-weight:800; display:inline-flex; align-items:center; gap:18px; }
.section-heading h2::before, .section-heading h2::after { content:""; width:50px; height:2px; background: var(--border); }
.section-heading p { margin-top:10px; color:#8d8d8d; font-size:15px; max-width:560px; margin-left:auto; margin-right:auto; }
.icon-card { background:#fff; border:1px solid var(--border); border-radius:8px; padding:36px 28px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.icon-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0,0,0,.08); }
.icon-circle { width:56px; height:56px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:22px; }
.icon-circle.round { border-radius:50%; }
.icon-circle.blue { background: var(--blue-bg); }
.icon-circle.orange { background: var(--orange-bg); }
.icon-circle.purple { background: var(--purple-bg); }
.icon-circle.green { background: var(--green-bg); }
.icon-card h3 { font-size:19px; font-weight:700; margin-bottom:10px; }
.icon-card p { color:#8d8d8d; font-size:14px; margin-bottom:16px; }
.icon-card .card-link { font-size:14px; font-weight:700; display:inline-flex; align-items:center; gap:6px; }
.icon-card .card-link.c-blue { color: var(--blue); }
.icon-card .card-link.c-orange { color: var(--primary); }
.icon-card .card-link.c-purple { color: var(--accent); }
.badge { display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:5px 12px; border-radius:999px; }
.badge::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.badge.b-green { color:var(--green); background:var(--green-bg); }
.badge.b-blue { color:var(--blue); background:var(--blue-bg); }
.badge.b-orange { color:var(--primary); background:var(--orange-bg); }
.badge.b-muted { color:#8d8d8d; background:#f0f0f0; }
.badge.no-dot::before { display:none; }
.tag { font-size:11px; font-weight:600; background:#f5f5f5; border:1px solid var(--border); padding:4px 10px; border-radius:5px; color:var(--text); }
footer { background: var(--dark-2); color:#e0e0e0; }
.footer-info { padding:32px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:20px; border-bottom:1px solid #444; }
.footer-item { display:flex; align-items:center; gap:12px; font-size:14px; }
.footer-item svg { flex-shrink:0; color: var(--primary); }
.footer-item a:hover { text-decoration:underline; }
.footer-bottom { justify-content:center; text-align:center; }
.socials { display:flex; gap:14px; }
.socials a { width:34px; height:34px; border-radius:50%; background:#3d3d3d; display:flex; align-items:center; justify-content:center; transition: background .15s ease; }
.socials a:hover { background: var(--primary); }
.mv-grid { display:grid; grid-template-columns:1fr 1fr; gap:36px; padding:90px 0; }
.mv-card { background:#fff; border:1px solid var(--border); border-radius:10px; padding:44px; box-shadow:0 4px 20px rgba(0,0,0,.04); }
.mv-card .icon-circle { width:60px; height:60px; }
.mv-card h3 { font-size:24px; font-weight:800; margin-bottom:14px; }
.mv-card p { color:#6d6d6d; font-size:15px; line-height:1.75; }
.pillars { background: var(--dark); padding:90px 0; }
.pillars-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; text-align:center; }
.pillar-circle { width:84px; height:84px; margin:0 auto 22px; border-radius:50%; background:#3d3d3d; display:flex; align-items:center; justify-content:center; border:1px solid #4c4c4c; }
.pillar h4 { color:#fff; font-size:18px; font-weight:700; margin-bottom:10px; }
.pillar p { color:#a9a9a9; font-size:13px; line-height:1.6; }
.story { padding:90px 0; background: var(--white); }
.story-inner { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.story-text .eyebrow { display:flex; align-items:center; gap:18px; margin-bottom:14px; }
.story-text h2 { font-size:32px; font-weight:800; white-space:nowrap; }
.story-text .eyebrow::after { content:""; flex:1; height:2px; background: var(--border); }
.story-text .who { color: var(--primary); font-weight:600; margin-bottom:18px; font-size:15px; }
.story-text p { color:#6d6d6d; margin-bottom:22px; font-size:15px; line-height:1.75; max-width:460px; }
.story-stats { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:10px; }
.story-stats div { background:#f7f7f7; border-radius:8px; padding:20px; }
.story-stats .num { font-size:26px; font-weight:800; color: var(--accent); }
.story-stats .label { font-size:12px; color:#8d8d8d; font-weight:600; text-transform:uppercase; letter-spacing:.04em; margin-top:4px; }
.story-img { border-radius:8px; overflow:hidden; box-shadow:0 25px 50px rgba(0,0,0,.15); }
.story-img img { width:100%; height:360px; object-fit:cover; }
0%,100% { transform:translateY(0) rotate(0deg); }
50% { transform:translateY(14px) rotate(-3deg); }
.blob-purple { animation: floatY 9s ease-in-out infinite; }
.blob-orange { animation: floatY2 8s ease-in-out infinite; }
header.scrolled { box-shadow:0 10px 30px rgba(0,0,0,.35); }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1); }
.reveal.in-view { opacity:1; transform:translateY(0); }
.reveal-left { opacity:0; transform:translateX(-32px); transition:opacity .7s ease, transform .7s ease; }
.reveal-left.in-view { opacity:1; transform:translateX(0); }
.reveal-right { opacity:0; transform:translateX(32px); transition:opacity .7s ease, transform .7s ease; }
.reveal-right.in-view { opacity:1; transform:translateX(0); }
.logo-img { height:30px; width:auto; display:block; }
.logo-text { font-weight:400; font-size:13px; color:#a9a9a9; margin-left:2px; }
.logo .logo-text-main { color:#fff; font-weight:700; font-size:11px; line-height:1; letter-spacing:.03em; white-space:nowrap; }
.footer-columns { display:grid; grid-template-columns:1fr; gap:32px; padding:56px 0 40px; }
.footer-col { flex:1 1 160px; min-width:0; }
.footer-col.footer-brand { flex:1 1 260px; }
.footer-col h4 { color:#fff; font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:18px; }
.footer-col ul li { margin-bottom:12px; }
.footer-col ul li a { color:#b7b7b7; font-size:14px; transition:color .15s ease, padding-left .15s ease; display:inline-block; }
.footer-col ul li a:hover { color: var(--primary); padding-left:4px; }
.footer-brand .footer-logo { display:flex; align-items:center; gap:8px; margin-bottom:16px; }
.footer-brand .footer-logo img { height:32px; width:auto; }
.footer-brand .footer-logo span { color:#fff; font-weight:700; font-size:16px; }
.footer-brand .footer-logo .footer-logo-name { color:#fff; font-weight:700; font-size:16px; line-height:1.15; }
.footer-brand > p { color:#a9a9a9; font-size:13.5px; line-height:1.7; max-width:320px; margin-bottom:20px; }
.btn:disabled { opacity:.6; cursor:not-allowed; transform:none; box-shadow:none; }
.sources { padding:90px 0; background: var(--white); }
.sources-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.contact-split { background:#f7f7f7; padding:90px 0; }
.contact-split-inner { display:grid; grid-template-columns:1.1fr 1fr; gap:60px; }
.contact-split h2 { font-size:28px; font-weight:800; margin-bottom:10px; }
.contact-split > div > p.lead { color:#6d6d6d; font-size:15px; margin-bottom:30px; max-width:460px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
.field label { display:block; font-size:13px; font-weight:700; margin-bottom:8px; }
.field input, .field textarea { width:100%; padding:13px 16px; border-radius:6px; border:1px solid var(--border);
    background:#fff; font-size:14px; font-family:inherit; color:var(--text); resize:vertical; }
.field input:focus, .field textarea:focus { outline:2px solid var(--accent); }
.field { margin-bottom:20px; }
.err-msg { font-size:12px; color: var(--red); margin-top:6px; display:none; }
.map-box { background:#e9e9e9; border:1px solid var(--border); border-radius:10px; height:230px;
    display:flex; align-items:center; justify-content:center; margin-bottom:30px; position:relative; overflow:hidden; }
.map-box span { background:#fff; border:1px solid var(--border); color: var(--accent); font-weight:700; font-size:13px; padding:9px 18px; border-radius:999px; }
.map-embed { height:280px; background:#e9e9e9; }
.map-embed iframe { width:100%; height:100%; border:0; }
.map-directions { display:inline-flex; align-items:center; gap:7px; margin:-12px 0 26px; color:var(--accent); font-size:14px; font-weight:700; }
.map-directions:hover { color:var(--primary); text-decoration:underline; }
.contact-detail a:hover { text-decoration:underline; }
.contact-detail { display:flex; align-items:flex-start; gap:16px; margin-bottom:22px; }
.contact-detail .ci { width:42px; height:42px; border-radius:50%; background:#fff; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-detail h4 { font-size:15px; font-weight:700; margin-bottom:3px; }
.contact-detail p { color:#8d8d8d; font-size:13.5px; }
.page-hero h1 .accent { color: var(--primary); }
.filter-bar { background:#f7f7f7; border-bottom:1px solid var(--border); padding:20px 0; }
.filter-bar-inner { display:flex; flex-direction:column; align-items:stretch; gap:16px; }
.search-wrap { position:relative; width:100%; max-width:100%; }
.search-wrap svg { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:#8d8d8d; }
.search-wrap input { width:100%; padding:12px 16px 12px 42px; border-radius:8px; border:1px solid var(--border); font-size:14px; font-family:inherit; background:#fff; }
.search-wrap input:focus { outline:2px solid var(--accent); }
.pill-row { display:flex; gap:10px; overflow-x:auto; padding-bottom:4px; -webkit-overflow-scrolling:touch; scrollbar-width: none; }
.pill-row::-webkit-scrollbar { display:none; }
.pill { padding:9px 18px; border-radius:999px; font-size:13px; font-weight:700; white-space:nowrap; border:1px solid var(--border); background:#fff; color: var(--text); cursor:pointer; transition:.15s; }
.pill.active { background: var(--accent); color:#fff; border-color: var(--accent); }
.pill:hover:not(.active) { border-color: var(--accent); color: var(--accent); }
.faq-wrap { padding:70px 0 90px; background: var(--white); }
.faq-list { max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.faq-item { border:1px solid var(--border); border-radius:10px; background:#fff; overflow:hidden; transition: border-color .2s ease, box-shadow .2s ease; }
.faq-item.open { border-color: var(--accent); box-shadow:0 12px 30px rgba(0,0,0,.06); }
.faq-question { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:20px 24px; background:none; border:none; text-align:left; cursor:pointer; font-family:inherit; }
.faq-question .q-text { font-size:15.5px; font-weight:700; color: var(--text); }
.faq-question .q-right { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.faq-question .chevron { flex-shrink:0; width:26px; height:26px; border-radius:50%; background: var(--pale);
    display:flex; align-items:center; justify-content:center; color:#666;
    transition: transform .25s ease, background .2s ease, color .2s ease; }
.faq-item.open .faq-question .chevron { transform:rotate(180deg); background: var(--accent); color:#fff; }
.faq-answer { max-height:0; overflow:hidden; transition: max-height .3s ease; }
.faq-answer-inner { padding:0 24px 22px; color:#666; font-size:14.5px; line-height:1.7; max-width:680px; }
#no-results { text-align:center; color:#8d8d8d; padding:30px 0; max-width:820px; margin:0 auto; }
.contact-bar { background: var(--accent);
    padding:36px 0; }
.contact-bar .container { display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:20px; }
.contact-bar h2 { color:#fff; font-size:26px; font-weight:800; line-height:1.2; }
.contact-bar .sub { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.contact-bar p { color:#e6dbfa; font-size:15px; }
.contact-bar .btn-group { display:flex; gap:14px; flex-wrap:wrap; margin-top: 8px; }
.hero { background: var(--dark);
    position:relative;
    overflow:hidden;
    padding-bottom:110px; }
.hero-inner { display:grid;
    grid-template-columns: 1.05fr 1fr;
    align-items:center;
    gap:40px;
    padding-top:70px;
    padding-bottom:40px;
    position:relative;
    z-index:3; }
.hero-text h1 { font-size:44px;
    line-height:1.2;
    color:#fff;
    font-weight:800;
    margin-bottom:20px; }
.hero-text h1 .accent { color: var(--primary); }
.hero-text p { color:#c9c9c9;
    font-size:16px;
    margin-bottom:30px;
    max-width:440px; }
.hero-btns { display:flex; gap:16px; flex-wrap:wrap; }
.hero-visual { position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:340px; }
.dot-grid { position:absolute;
    top:-10px; right:20px;
    width:130px; height:130px;
    background-image: radial-gradient(rgba(255,255,255,.25) 1.5px, transparent 1.5px);
    background-size: 12px 12px;
    z-index:1; }
.status-card { position:relative;
    z-index:4;
    width:360px;
    max-width:100%;
    background:#fff;
    border-radius:12px;
    padding:28px;
    box-shadow: 0 30px 60px rgba(0,0,0,.4); }
.status-card h3 { font-size:18px; font-weight:700; margin-bottom:18px; }
.status-card label { display:block;
    font-size:11px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#8d8d8d;
    margin-bottom:8px; }
.status-input-wrap { position:relative; margin-bottom:16px; }
.status-input-wrap span { position:absolute; left:14px; top:50%; transform:translateY(-50%);
    font-weight:700; color:#8d8d8d; font-size:15px; }
.status-input-wrap input { width:100%;
    padding:13px 14px 13px 30px;
    border-radius:6px;
    border:1px solid var(--border);
    background: #f7f7f7;
    font-size:16px;
    font-weight:700;
    font-family:inherit;
    color: var(--text); }
.status-input-wrap input:focus { outline:2px solid var(--accent); background:#fff; }
.status-result { margin-top:16px;
    padding-top:16px;
    border-top:1px solid var(--border);
    font-size:13px; }
.status-badge { display:inline-block;
    font-size:10px;
    font-weight:700;
    letter-spacing:.05em;
    text-transform:uppercase;
    padding:4px 10px;
    border-radius:999px; }
.status-badge.approved { color:var(--green); background:#e8f8f0; }
.status-badge.pending { color:var(--primary); background:#fdece0; }
.status-badge.review { color:var(--blue); background:#e6ecfb; }
.status-badge.none { color:var(--red); background:#fbe9e7; }
.status-card-dot { position:absolute;
    width:70px; height:70px;
    border-radius:50%;
    background: var(--accent);
    opacity:.5;
    z-index:1; }
.status-card-dot.d1 { top:-16px; right:-16px; }
.status-card-dot.d2 { bottom:-18px; left:-18px; background: var(--primary); width:90px; height:90px; }
.section-heading h2::before,
  .section-heading h2::after { content:"";
    width:50px;
    height:2px;
    background: var(--border); }
.section-heading.on-dark p { color:#a9a9a9; }
.section-heading.on-dark h2::before,
  .section-heading.on-dark h2::after { background:#555; }
.stats { background:var(--white); padding:60px 0; border-bottom:1px solid var(--border); }
.stats-grid { display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:30px;
    text-align:center; }
.stats-grid .num { font-size:34px; font-weight:800; color: var(--primary); margin-bottom:6px; }
.stats-grid .label { font-size:13px; font-weight:600; color:#8d8d8d; text-transform:uppercase; letter-spacing:.05em; }
.services { padding:90px 0; background: var(--white); }
.services-grid { display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:30px; }
.service-card { background:#fff;
    border:1px solid var(--border);
    border-radius:8px;
    padding:44px 28px;
    text-align:center;
    transition: transform .2s ease, box-shadow .2s ease; }
.service-card:hover { transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0,0,0,.08); }
.service-icon { width:64px; height:64px;
    margin:0 auto 22px;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%; }
.service-icon.blue { background:#e6ecfb; }
.service-icon.orange { background:#fdece0; }
.service-icon.purple { background:#eee4fa; }
.service-card h3 { font-size:19px; font-weight:700; margin-bottom:8px; }
.service-card p { color:#8d8d8d; font-size:14px; margin-bottom:22px; }
.service-card .service-link { font-size:14px; font-weight:700; display:inline-flex; align-items:center; gap:6px; }
.service-card .service-link.c-blue { color: var(--blue); }
.service-card .service-link.c-orange { color: var(--primary); }
.service-card .service-link.c-purple { color: var(--accent); }
.about { background: var(--dark); padding:90px 0; }
.about-inner { display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center; }
.about-text .eyebrow { display:flex; align-items:center; gap:18px;
    margin-bottom:14px; }
.about-text h2 { font-size:32px; font-weight:800; color:#fff; white-space:nowrap; }
.about-text .eyebrow::after { content:""; flex:1; height:2px; background:#555; }
.about-text .who { color: var(--primary); font-weight:600; margin-bottom:18px; font-size:15px; }
.about-text p { color:#bdbdbd; margin-bottom:22px; font-size:15px; line-height:1.7; max-width:460px; }
.about-list { margin-bottom:30px; }
.about-list li { display:flex; align-items:flex-start; gap:10px;
    color:#d8d8d8; font-size:14px; margin-bottom:10px; }
.about-list li svg { flex-shrink:0; margin-top:3px; }
.about-img { border-radius:8px; overflow:hidden; box-shadow:0 25px 50px rgba(0,0,0,.4); }
.about-img img { width:100%; height:340px; object-fit:cover; }
.portfolio { padding:90px 0; background: var(--white); }
.portfolio-grid { display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px; }
.portfolio-card { border:1px solid var(--border);
    border-radius:8px;
    overflow:hidden;
    background:#fff;
    transition: transform .2s ease, box-shadow .2s ease; }
.portfolio-card:hover { transform: translateY(-6px); box-shadow:0 18px 40px rgba(0,0,0,.1); }
.portfolio-card .img-wrap { height:190px; overflow:hidden; position:relative; }
.portfolio-card .img-wrap img { width:100%; height:100%; object-fit:cover; }
.portfolio-card .tag { position:absolute; top:14px; left:14px;
    background: var(--primary); color:#fff;
    font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
    padding:5px 12px; border-radius:999px; }
.portfolio-body { padding:20px; text-align:center; }
.portfolio-body h3 { font-size:18px; font-weight:700; margin-bottom:6px; }
.portfolio-body p { color:#8d8d8d; font-size:13px; margin-bottom:16px; }
.details-top { background:#f7f7f7; border-bottom:1px solid var(--border); padding:40px 0; }
.back-link { display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700; color:#8d8d8d; text-transform:uppercase; letter-spacing:.05em; margin-bottom:26px; }
.back-link:hover { color: var(--accent); }
.details-head { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.details-head-left { display:flex; align-items:center; gap:20px; }
.details-icon { width:76px; height:76px; border-radius:16px; background: var(--blue-bg); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.details-head h1 { font-size:28px; font-weight:800; margin:8px 0; }
.details-head-meta { display:flex; gap:20px; flex-wrap:wrap; color:#8d8d8d; font-size:13.5px; }
.details-head-meta span { display:flex; align-items:center; gap:6px; }
.details-actions { display:flex; gap:10px; flex-shrink:0; }
.icon-btn { width:46px; height:46px; border-radius:8px; border:1px solid var(--border); background:#fff; display:flex; align-items:center; justify-content:center; color:#8d8d8d; cursor:pointer; }
.icon-btn:hover { color: var(--accent); border-color: var(--accent); }
.id-tag { font-size:11px; background:#fff; border:1px solid var(--border); padding:3px 10px; border-radius:5px; color:#8d8d8d; }
.details-body { background: var(--white); padding:70px 0; }
.details-grid { display:grid; grid-template-columns:2fr 1fr; gap:36px; align-items:start; }
.panel { background:#fff; border:1px solid var(--border); border-radius:10px; padding:34px; margin-bottom:28px; }
.panel h3 { font-size:19px; font-weight:700; margin-bottom:18px; }
.panel p { color:#6d6d6d; font-size:14.5px; line-height:1.75; margin-bottom:14px; }
.panel p:last-child { margin-bottom:0; }
.progress-big { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:10px; }
.progress-big .pct { font-size:26px; font-weight:800; color: var(--blue); }
.progress-track-lg { width:100%; height:12px; background:#f0f0f0; border-radius:99px; overflow:hidden; border:1px solid var(--border); margin-bottom:24px; }
.progress-fill-lg { height:100%; background: linear-gradient(90deg, var(--accent), var(--blue)); border-radius:99px; }
.meta-boxes { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.meta-box { background:#f7f7f7; border:1px solid var(--border); border-radius:8px; padding:16px; }
.meta-box .label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#8d8d8d; margin-bottom:6px; }
.meta-box .value { font-weight:700; font-size:14.5px; }
.impact-list li { display:flex; align-items:flex-start; gap:12px; margin-bottom:14px; color:#6d6d6d; font-size:14.5px; }
.impact-list svg { flex-shrink:0; margin-top:2px; }
.timeline-item { position:relative; padding-left:30px; padding-bottom:26px; }
.timeline-item::before { content:""; position:absolute; left:7px; top:22px; bottom:0; width:2px; background: var(--border); }
.timeline-item:last-child::before { display:none; }
.timeline-item:last-child { padding-bottom:0; }
.timeline-dot { position:absolute; left:0; top:2px; width:16px; height:16px; border-radius:50%; background: var(--green); border:3px solid #fff; box-shadow:0 0 0 1px var(--border); }
.timeline-dot.active { background: var(--blue); }
.timeline-item h4 { font-size:14px; font-weight:700; margin-bottom:4px; }
.timeline-item h4.active { color: var(--blue); }
.timeline-item p { font-size:12.5px; color:#8d8d8d; margin-bottom:3px; }
.timeline-item .date { font-size:10.5px; font-weight:700; color:#b5b5b5; }
.subscribe-box { text-align:center; }
.subscribe-box .icon-circle { margin:0 auto 16px; background:#f0f0f0; }
.subscribe-box h4 { font-size:16px; font-weight:700; margin-bottom:8px; }
.subscribe-box p { font-size:13.5px; color:#8d8d8d; margin-bottom:18px; }
.project-list { padding:40px 0; background: var(--white); }
.project-list .list { display:flex; flex-direction:column; gap:20px; }
.project-item { border:1px solid var(--border); border-radius:10px; padding:20px;
    display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.project-item:hover { transform: translateY(-4px); box-shadow:0 18px 40px rgba(0,0,0,.08); border-color: var(--accent); }
.project-item .pi-icon { width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center; grid-column:1; grid-row:1; }
.project-item .pi-icon svg { width: 24px !important; height: 24px !important; }
.project-item .pi-body { grid-column:2; grid-row:1; min-width:0; }
.project-item .pi-meta { display:flex; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap; }
.project-item h3 { font-size:17px; font-weight:700; margin-bottom:6px; line-height:1.3; }
.project-item .pi-loc { color:#8d8d8d; font-size:13px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; line-height:1.5; }
.project-item .pi-loc svg { flex-shrink:0; vertical-align:-2px; width:14px !important; height:14px !important; }
.project-item .pi-side { grid-column:1 / -1; grid-row:2; width:100%; text-align:left; border-top:1px solid var(--border); padding-top:16px; margin-top:4px; display:flex; flex-direction:column; align-items:flex-start; }
.progress-track { width:100%; height:8px; background:#f0f0f0; border-radius:99px; overflow:hidden; margin-bottom:8px; }
.progress-fill { height:100%; background: var(--blue); border-radius:99px; }
.progress-label { font-size:11px; color:#8d8d8d; font-weight:700; margin-bottom:12px; }
.pagination { display:flex; justify-content:center; gap:8px; margin-top:50px; }
.pagination button { width:40px; height:40px; border-radius:8px; border:1px solid var(--border); background:#fff;
    display:flex; align-items:center; justify-content:center; font-weight:700; color:#8d8d8d; cursor:pointer; }
.pagination button.active { background: var(--accent); color:#fff; border-color: var(--accent); }
.pagination button:hover:not(.active) { border-color: var(--accent); color: var(--accent); }
.steps-bar { background:#f7f7f7; border-bottom:1px solid var(--border); padding:26px 0; }
.steps-row { display:flex; align-items:center; justify-content:center; gap:0; flex-wrap:wrap; }
.step-pill { display:flex; align-items:center; gap:10px; padding:8px 18px; }
.step-num { width:26px; height:26px; border-radius:50%; background:#e7e7e7; color:#8d8d8d; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.step-pill.on .step-num { background: var(--primary); color:#fff; }
.step-pill span.lbl { font-size:13px; font-weight:700; color:#8d8d8d; }
.step-pill.on span.lbl { color: var(--text); }
.step-sep { width:36px; height:2px; background:var(--border); }
.type-select { padding:80px 0 20px; background: var(--white); }
.type-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:30px; }
.type-card { cursor:pointer; text-align:center; position:relative; border-width:2px; }
.type-card .check { position:absolute; top:16px; right:16px; width:22px; height:22px; border-radius:50%; border:2px solid var(--border); background:#fff; display:flex; align-items:center; justify-content:center; }
.type-card .check svg { opacity:0; transition:opacity .15s ease; }
.type-card.selected { border-color: var(--primary); box-shadow:0 18px 40px rgba(0,0,0,.08); }
.type-card.selected .check { background: var(--primary); border-color: var(--primary); }
.type-card.selected .check svg { opacity:1; }
.type-card h3 { margin-bottom:8px; }
.form-split { background:#f7f7f7; padding:70px 0 90px; }
.form-split-inner { display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:start; }
.form-panel { background:#fff; border:1px solid var(--border); border-radius:10px; padding:34px; }
.form-panel h2 { font-size:24px; font-weight:800; margin-bottom:8px; }
.form-panel > p.lead { color:#6d6d6d; font-size:14.5px; margin-bottom:26px; }
.field .opt { font-weight:400; color:#8d8d8d; text-transform:none; }
.field input, .field textarea, .field select { width:100%; padding:13px 16px; border-radius:6px; border:1px solid var(--border);
    background:#fff; font-size:14px; font-family:inherit; color:var(--text); resize:vertical; }
.field input:focus, .field textarea:focus, .field select:focus { outline:2px solid var(--accent); }
.type-fields { display:none; border-top:1px dashed var(--border); padding-top:20px; margin-top:4px; margin-bottom:6px; }
.type-fields.show { display:block; }
.type-fields .tag { margin-bottom:16px; display:inline-block; }
.helpline-box { text-align:center; }
.helpline-box .icon-circle { margin:0 auto 16px; background:#f0f0f0; }
.helpline-box h4 { font-size:16px; font-weight:700; margin-bottom:8px; }
.helpline-box p { font-size:13.5px; color:#8d8d8d; margin-bottom:18px; }
.success-panel { display:none; text-align:center; padding:20px 10px 6px; }
.success-panel.show { display:block; }
.success-icon { width:74px; height:74px; border-radius:50%; background: var(--green-bg); display:flex; align-items:center; justify-content:center; margin:0 auto 22px; }
.success-panel h2 { font-size:23px; font-weight:800; margin-bottom:10px; }
.success-panel p { color:#6d6d6d; font-size:14.5px; margin-bottom:22px; }
.success-id { display:inline-flex; align-items:center; gap:10px; background:#f7f7f7; border:1px dashed var(--border); border-radius:8px; padding:14px 22px; margin-bottom:26px; }
.success-id .lbl { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#8d8d8d; }
.success-id .idval { font-size:20px; font-weight:800; color: var(--primary); }
.success-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* Accessibility Focus & Skip Link */
.skip-link { position: absolute; top: -40px; left: 0; background: var(--primary); color: white; padding: 8px; z-index: 100; transition: top 0.2s; }
.skip-link:focus { top: 0; }
*:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }





@media (prefers-reduced-motion: reduce) {
  .blob-purple, .blob-orange { animation:none; }
  .reveal, .reveal-left, .reveal-right { opacity:1 !important; transform:none !important; transition:none !important; }
  .reveal { opacity:1 !important; transform:none !important; transition:none !important; }
}




/* =========================================
   MOBILE FIRST BASE STYLES
   ========================================= */
.hero-inner, .about-inner, .services-grid, .portfolio-grid, .contact-split-inner, .mv-grid, .story-inner, .footer-columns, .details-grid, .type-grid, .form-split-inner, .sources-grid, .field-row {
  grid-template-columns: 1fr;
}
  .hero-visual { order: 0; min-height: 280px; }
.about-img { order: -1; }
.story-img { order: -1; }
.stats-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
.pillars-grid { grid-template-columns: 1fr 1fr; gap: 22px; }
.meta-boxes { grid-template-columns: 1fr; }
.details-icon { width:56px; height:56px; border-radius:12px; }
.details-icon svg { width:26px !important; height:26px !important; }
.nav-links { display: none; }
.nav-links.show { display:flex; position:absolute; left:0; right:0; top:100%; z-index:40; flex-direction:column; gap:0; padding:8px 24px 16px; background:var(--dark); border-top:1px solid #444; box-shadow:0 10px 20px rgba(0,0,0,.2); }
.nav-links.show a { display:flex; align-items:center; gap:10px; padding:12px 0; }
.nav-links.show .nav-icon { display:inline-flex; color:var(--primary); }
.menu-toggle { display: block; }
.nav-cta { display: none; }
.contact-bar .container { flex-direction: column; align-items: flex-start; }
.hero-text h1 { font-size: 32px; }
.section-heading h2 { font-size: 24px; gap: 10px; }
.section-heading h2::before, .section-heading h2::after { width: 26px; }
.about-text h2 { font-size: 26px; white-space: normal; }
.footer-info { flex-direction: column; }
  .footer-col, .footer-col.footer-brand { flex-basis: 100%; }
  .btn, .nav-cta { min-height:44px; }
  .pill { min-height:40px; }
  .field input, .field textarea, .field select, .search-wrap input { font-size:16px; }
  .details-head h1 { font-size:24px; }
  .details-actions { width:100%; }
  .details-actions .btn { flex:1; }

/* =========================================
   TABLET & DESKTOP OVERRIDES (min-width)
   ========================================= */
@media (min-width: 601px) {
  .page-hero { padding:64px 0 100px; }
  .page-hero h1 { font-size:42px; }
  .hero-text h1 { font-size: 44px; }
  .section-heading h2 { font-size: 32px; gap: 18px; }
  .section-heading h2::before, .section-heading h2::after { width: 50px; }
  .about-text h2 { font-size: 32px; white-space: nowrap; }
  .footer-info { flex-direction: row; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .footer-columns { grid-template-columns: 1fr 1fr; gap: 32px 40px; }
  .pillars-grid { grid-template-columns: repeat(2, 1fr); }
  .type-grid, .sources-grid { grid-template-columns: repeat(2, 1fr); }
  .field-row, .meta-boxes { grid-template-columns: 1fr 1fr; }
  .footer-col.footer-brand { grid-column: 1 / -1; }
  .filter-bar { padding:26px 0; }
  .filter-bar-inner { flex-direction:row; align-items:center; justify-content:space-between; }
  .search-wrap { max-width:380px; }
  .pill-row { padding-bottom:0; }
  .details-actions { width:auto; }
  .details-actions .btn { flex:none; }
}

@media (min-width: 901px) {
  .hero-inner { grid-template-columns: 1.05fr 1fr; }
  .hero-visual { order: 0; min-height: 340px; }
  .about-inner { grid-template-columns: 1fr 1fr; }
  .about-img { order: 0; }
  .story-inner { grid-template-columns: 1fr 1fr; }
  .story-img { order: 0; }
  .services-grid, .portfolio-grid, .type-grid, .sources-grid { grid-template-columns: repeat(3, 1fr); }
  .stats-grid { grid-template-columns: repeat(4, 1fr); }
  .mv-grid { grid-template-columns: 1fr 1fr; }
  .pillars-grid { grid-template-columns: repeat(4, 1fr); }
  .contact-split-inner, .form-split-inner { grid-template-columns: 1.1fr 1fr; }
  .details-grid { grid-template-columns: 2fr 1fr; }
  .details-icon { width:76px; height:76px; border-radius:16px; }
  .details-icon svg { width:36px !important; height:36px !important; }
  .nav-links { display: flex; }
  .menu-toggle { display: none; }
  .nav-cta { display: block; }
  .contact-bar .container { flex-direction: row; align-items: center; }
  .footer-columns { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; }
  .footer-col.footer-brand { grid-column: auto; }
  .footer-col, .footer-col.footer-brand { flex-basis: auto; }
  .project-list { padding:70px 0; }
  .project-item { display:flex; flex-direction:row; align-items:center; padding:26px; gap:24px; }
  .project-item .pi-icon { width:64px; height:64px; flex-shrink:0; }
  .project-item .pi-icon svg { width: 30px !important; height: 30px !important; }
  .project-item .pi-body { flex:1; min-width:220px; }
  .project-item h3 { font-size:19px; }
  .project-item .pi-loc { font-size:13.5px; gap:8px; }
  .project-item .pi-loc svg { width:14px !important; height:14px !important; }
  .project-item .pi-side { width:auto; text-align:right; flex-shrink:0; min-width:150px; border-top:none; padding-top:0; margin-top:0; display:block; }
  .progress-track { width:150px; margin-left:auto; margin-bottom:8px; }
}

@media (max-width: 360px) {
  .container, .navbar { padding-left:16px; padding-right:16px; }
  .page-hero { padding-top:48px; }
  .page-hero h1, .hero-text h1 { font-size:29px; }
  .status-card { padding:22px; }
}
