:root {
    --brand: #a21653;
    --brand-bright: #e93f6d;
    --ink: #2f2930;
    --muted: #655d64;
    --paper: #fff;
    --soft: #f7f7f8;
    --dark: #18151a;
    --max: 1216px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); font-family: "Open Sans", Arial, sans-serif; font-size: 16px; line-height: 1.65; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3 { margin: 0 0 1rem; font-family: "Red Hat Display", Arial, sans-serif; line-height: 1.12; }
h1 { font-size: clamp(2.25rem, 5vw, 3.6rem); }
h2 { color: var(--brand); font-size: clamp(1.75rem, 3vw, 2rem); font-weight: 800; }
h3 { font-size: 1.45rem; }
p { margin: 0 0 1.15rem; }
.container { width: min(var(--max), calc(100% - 48px)); margin-inline: auto; }
.section { padding: 80px 0; }
.section-soft { background: var(--soft); }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 100; padding: .7rem 1rem; color: #fff; background: var(--brand); }
.skip-link:focus { top: 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header { position: absolute; inset: 0 0 auto; z-index: 20; min-height: 124px; color: #fff; background: linear-gradient(to bottom, rgba(10,8,11,.78), transparent); }
.header-inner { min-height: 124px; display: grid; grid-template-columns: 230px 1fr auto; align-items: center; gap: 24px; }
.brand img { width: 180px; }
.main-nav { display: flex; justify-content: flex-end; align-items: center; gap: 30px; }
.main-nav a { color: #fff; font-family: "Red Hat Display", sans-serif; font-size: .96rem; font-weight: 600; text-decoration: none; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color: #ff7095; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 11px 28px; border: 0; border-radius: 2px; color: #fff; background: var(--brand-bright); font-family: "Red Hat Display", sans-serif; font-weight: 700; text-decoration: none; cursor: pointer; transition: background .2s, transform .2s; }
.button:hover { background: var(--brand); transform: translateY(-1px); }
.header-button { margin-left: 8px; }

.hero { position: relative; min-height: 744px; display: grid; align-items: center; overflow: hidden; color: #fff; background: #111; }
.hero-slide { position: absolute; inset: 0; opacity: 0; background-position: center; background-size: cover; transform: scale(1.03); transition: opacity .7s ease, transform 5s linear; }
.hero-slide.is-active { opacity: 1; transform: scale(1.09); }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,7,9,.78) 0%, rgba(7,7,9,.42) 46%, rgba(7,7,9,.08) 75%); }
.hero-content { position: relative; z-index: 2; padding-top: 90px; }
.hero h1 { max-width: 680px; color: #fff; font-weight: 700; }
.hero h1, .page-hero h1 { font-size: 50px; }
.hero p { max-width: 620px; margin-bottom: 2rem; font-size: 1.05rem; font-weight: 500; }

.page-hero { min-height: 327px; padding-top: 80px; display: grid; place-items: center; color: #fff; text-align: center; background: url('/images/page-banner.jpg') center / cover; }
.page-hero h1 { margin: 0; color: #fff; }
.page-hero p { margin: .6rem 0 0; }
.split { display: grid; grid-template-columns: 3fr 2fr; gap: 70px; align-items: center; }
.split.equal { grid-template-columns: 1fr 1fr; }
.split.reverse .media { order: -1; }
.copy { max-width: 720px; }
.copy p { text-align: justify; }
.media img { width: 100%; max-height: 560px; object-fit: cover; }

.clients { padding: 70px 0; background: radial-gradient(circle, #fff 35%, #f2f2f3 100%); }
.clients-row { display: grid; grid-template-columns: 1.15fr 1fr 1fr 1.4fr; align-items: center; gap: 0; }
.clients h2 { text-align: center; }
.client-logo { min-height: 160px; padding: 22px 34px; display: grid; place-items: center; border-left: 2px dotted var(--brand); }
.client-logo img { max-height: 115px; object-fit: contain; }
.feature-panel { min-height: 480px; display: grid; place-items: center; color: #fff; text-align: center; background: linear-gradient(rgba(30,12,24,.58), rgba(30,12,24,.58)), url('/images/services-bg.jpg') center / cover; }
.feature-panel .content, .report-panel .content { width: min(825px, calc(100% - 48px)); margin-inline: auto; padding: 75px 0; }
.feature-panel h2 { color: #fff; }
.feature-panel p { max-width: 700px; margin-inline: auto; }
.report-panel { color: var(--ink); text-align: center; background: linear-gradient(rgba(255,255,255,.95), rgba(255,255,255,.95)), url('/images/report-bg.png') top center / cover; }
.report-panel h2 { color: var(--brand); }
.report-panel ul { width: fit-content; margin: 1.5rem auto; text-align: left; }
.certifications { padding: 65px 0 80px; background: var(--soft); text-align: center; }
.cert-grid { max-width: 720px; margin: 30px auto 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 55px; }
.cert-grid img { width: 100%; height: 230px; object-fit: contain; transition: transform .2s; }
.cert-grid a:hover img { transform: scale(1.03); }

.mission-grid { margin-top: 55px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; }
.card { padding: 34px; background: var(--soft); border-top: 4px solid var(--brand); }
.values { list-style: none; padding: 0; margin: 1.4rem 0 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 24px; }
.values li::before { content: "✓"; margin-right: 10px; color: var(--brand-bright); font-weight: 800; }
.pillars-grid .values { grid-template-columns: 1fr; }
.document-list { list-style: none; padding: 0; margin: 1.4rem 0 0; }
.document-list li + li { margin-top: 12px; }
.document-list a { display: block; padding: 13px 16px; color: var(--brand); background: var(--soft); font-weight: 700; text-decoration: none; }
.document-list a::before { content: "PDF"; display: inline-block; margin-right: 12px; padding: 2px 6px; color: #fff; background: var(--brand); font-size: .7rem; }

.about-section { padding: 80px; }
.company-pillars { padding: 80px; background: var(--soft); }
.pillars-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.pillar-copy + .pillar-copy { margin-top: 28px; }
.docs-section { padding: 80px; }
.services-list { width: min(var(--max), calc(100% - 48px)); margin-inline: auto; padding: 48px 0 80px; }
.service-row { display: grid; grid-template-columns: 60% 40%; align-items: stretch; background: var(--soft); }
.service-row + .service-row { margin-top: 56px; }
.service-copy { padding: 80px; align-self: center; }
.service-copy h2 { font-size: 2rem; }
.service-copy p { margin: 0; text-align: justify; }
.service-row img { width: 100%; height: 100%; min-height: 350px; object-fit: cover; }
.contact-list { list-style: none; padding: 0; margin: 1.7rem 0 0; }
.contact-list li { padding: .55rem 0; border-bottom: 1px solid #e4e0e3; }
.contact-list a { color: var(--brand); text-decoration: none; font-weight: 600; }

.form-heading { min-height: 112px; display: grid; place-items: center; text-align: center; }
.form-heading h2 { margin: 0; }
.forms-section { padding: 80px; background: var(--soft); }
.complaints-layout { display: grid; grid-template-columns: 35% 35% 30%; align-items: start; }
.complaint-column { min-width: 0; padding: 30px; }
.report-form { background: transparent; }
.report-form h3 { color: var(--brand); font-size: 1.25rem; }
.field { margin-bottom: 18px; }
.field label { display: block; margin-bottom: 6px; font-weight: 700; }
.field input, .field textarea { width: 100%; padding: 11px 12px; border: 1px solid #cfc8cd; border-radius: 2px; background: #fff; font: inherit; }
.field textarea { min-height: 115px; resize: vertical; }
.field input:focus, .field textarea:focus { border-color: var(--brand); outline: 3px solid rgba(162,22,83,.13); }
.field small { display: block; margin-top: 5px; color: var(--muted); }
.public-contact-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.report-form .button { width: 100%; }
.report-form .button:disabled { cursor: wait; opacity: .65; }
.recaptcha-message { margin: 0 0 12px; color: #721c24; font-size: .9rem; }
.guide-button { width: 100%; margin-top: 18px; padding-inline: 12px; text-align: center; text-transform: uppercase; background: var(--brand); }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-notice { margin: 0 0 30px; padding: 14px 18px; border: 1px solid; }
.form-notice.is-success { color: #155724; background: #d4edda; border-color: #b7dfc1; }
.form-notice.is-error { color: #721c24; background: #f8d7da; border-color: #efb8bd; }
.complaint-notes { padding-top: 39px; }
.complaint-notes p { margin-bottom: 0; text-align: justify; }

.site-footer { min-height: 268px; display: grid; align-items: center; padding: 40px 0; color: #fff; background: linear-gradient(rgba(0,0,0,.51), rgba(0,0,0,.51)), url('/images/footer-bg.jpg') center / cover; }
.footer-grid { display: grid; grid-template-columns: 25% 35% 40%; align-items: center; gap: 0; }
.footer-brand { justify-self: center; }
.footer-brand img { width: 162px; }
.footer-contact { display: grid; gap: 5px; font-style: normal; }
.footer-contact a { color: #fff; text-decoration: none; }
.contact-item::before { display: inline-block; width: 28px; color: var(--brand); font-weight: 700; }
.contact-item.phone::before { content: "☎"; }
.contact-item.mobile::before { content: "▯"; }
.contact-item.email::before { content: "✉"; }
.copyright { margin: 0; text-align: center; font-size: .9rem; }

@media (max-width: 900px) {
    .site-header, .header-inner { min-height: 170px; }
    .header-inner { grid-template-columns: 1fr; align-content: start; padding-top: 16px; }
    .brand img { width: 145px; }
    .main-nav { position: absolute; top: 92px; left: 24px; right: 24px; justify-content: flex-start; gap: 24px; }
    .header-button { display: none; }
    .hero { min-height: 700px; }
    .split, .split.equal { grid-template-columns: 1fr; gap: 34px; }
    .split.reverse .media { order: 0; }
    .clients-row { grid-template-columns: repeat(3, 1fr); }
    .clients-row h2 { grid-column: 1 / -1; }
    .client-logo:first-of-type { border-left: 0; }
    .complaints-layout { grid-template-columns: 1fr; }
    .complaint-notes { padding-top: 0; }
    .about-section, .company-pillars, .docs-section, .forms-section { padding: 55px 32px; }
    .services-list { padding: 48px 0 55px; }
    .pillars-grid, .service-row { grid-template-columns: 1fr; }
    .service-copy { padding: 45px; }
}

@media (max-width: 620px) {
    .container { width: min(var(--max), calc(100% - 32px)); }
    .section, .service, .forms-section { padding: 55px 0; }
    .hero { min-height: 680px; }
    .hero-content { padding-top: 165px; }
    .hero h1 { max-width: 100%; font-size: 2rem; overflow-wrap: anywhere; }
    .main-nav { left: 16px; right: auto; width: 260px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; gap: 2px; }
    .main-nav a { min-width: 0; padding: 3px; font-size: .76rem; text-align: center; white-space: nowrap; }
    .hero-slide { background-position: 62% center; }
    .hero::after { background: rgba(8,7,9,.58); }
    .page-hero { min-height: 245px; }
    .clients-row { grid-template-columns: 1fr; }
    .client-logo { min-height: 125px; border-left: 0; border-top: 2px dotted var(--brand); }
    .mission-grid, .cert-grid, .values { grid-template-columns: 1fr; }
    .cert-grid { max-width: 300px; }
    .footer-grid { grid-template-columns: 1fr; text-align: center; }
    .footer-brand img { margin-inline: auto; }
    .copyright { text-align: center; }
    .report-form { padding: 24px 18px; }
    .complaint-column { padding: 24px 0; }
    .public-contact-row { grid-template-columns: 1fr; gap: 0; }
    .about-section, .company-pillars, .docs-section, .forms-section { padding: 45px 16px; }
    .services-list { width: calc(100% - 32px); padding: 45px 0; }
    .service-copy { padding: 32px 24px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .hero-slide { transition: none; transform: none !important; }
}
