:root { --black:#050505; --ink:#111; --muted:#666; --line:#d8d8d8; --paper:#fff; --soft:#f4f4f4; --max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial, Helvetica, sans-serif; font-size:16px; line-height:1.55; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
.container { width:min(calc(100% - 64px), var(--max)); margin:0 auto; }
.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; }
.site-header { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); backdrop-filter:blur(10px); }
.nav-wrap { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand img { width:292px; height:auto; }
.site-nav { display:flex; align-items:center; gap:30px; font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.site-nav a { transition:opacity .2s ease; }
.site-nav a:hover { opacity:.55; }
.nav-cta { border:1px solid var(--black); padding:12px 17px; }
.menu-toggle { display:none; background:none; border:0; padding:8px; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:5px 0; background:var(--black); }
.hero { background:var(--black); color:white; padding:76px 0 82px; }
.hero-grid { display:grid; grid-template-columns:1.02fr .98fr; align-items:center; gap:7.5%; }
.eyebrow, .section-kicker { margin:0 0 18px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; font-size:12px; }
.eyebrow { color:#bdbdbd; }
h1, h2, h3, p { margin-top:0; }
h1 { font-size:clamp(42px, 6.2vw, 84px); line-height:.99; letter-spacing:-.055em; margin-bottom:28px; max-width:720px; }
h2 { font-size:clamp(34px, 4.6vw, 62px); line-height:1.02; letter-spacing:-.045em; margin-bottom:25px; }
h3 { font-size:27px; line-height:1.08; letter-spacing:-.03em; margin:8px 0 13px; }
.hero-lead { max-width:570px; font-size:19px; line-height:1.55; color:#d1d1d1; }
.hero-actions { margin-top:38px; display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:17px; min-height:52px; padding:14px 21px; border:1px solid var(--black); font-size:14px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; transition:background .2s ease, color .2s ease, transform .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-light { color:var(--black); background:white; border-color:white; }
.button-light:hover { background:transparent; color:white; }
.button-dark { color:white; background:var(--black); }
.button-dark:hover { color:var(--black); background:white; }
.text-link { display:inline-flex; align-items:center; gap:13px; font-size:13px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:5px; }
.light-link { color:white; }
.hero-media { position:relative; }
.hero-media img { position:relative; width:100%; aspect-ratio:1.5 / 1; object-fit:cover; object-position:center center; }
.hero-caption { position:relative; margin-top:18px; color:#aaa; font-size:12px; text-transform:uppercase; letter-spacing:.08em; display:flex; align-items:center; gap:10px; }
.caption-line { width:30px; height:1px; background:#aaa; }
.section-pad { padding:120px 0; }
.intro { border-bottom:1px solid var(--line); }
.intro-grid { display:grid; grid-template-columns:25% 1fr; gap:8%; }
.section-kicker { color:#777; }
.intro h2 { max-width:730px; }
.large-copy { font-size:22px; line-height:1.48; max-width:750px; color:#4b4b4b; }
.section-heading { display:flex; justify-content:space-between; gap:40px; align-items:end; margin-bottom:48px; }
.section-heading h2 { margin-bottom:0; max-width:710px; }
.section-note { margin:0; max-width:325px; color:var(--muted); }
.category-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; }
.category-card { border:1px solid var(--line); display:grid; grid-template-columns:42% 58%; min-height:300px; background:white; }
.category-card-featured { background:var(--black); color:white; border-color:var(--black); }
.category-image { min-height:100%; overflow:hidden; background:#ddd; }
.category-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.category-card:hover .category-image img { transform:scale(1.05); }
.category-body { padding:27px 27px 25px; display:flex; flex-direction:column; align-items:flex-start; }
.category-number { font-size:12px; font-weight:700; letter-spacing:.09em; color:#888; }
.category-card-featured .category-number { color:#999; }
.category-body p { color:#5d5d5d; margin-bottom:25px; }
.category-card-featured .category-body p { color:#c8c8c8; }
.category-body .text-link { margin-top:auto; }
.capability { background:var(--soft); }
.capability-grid { display:grid; grid-template-columns:1fr 1fr; gap:9%; align-items:center; }
.capability-copy > p:not(.section-kicker) { max-width:570px; color:#555; font-size:18px; }
.capability-list { margin-top:38px; border-top:1px solid #cfcfcf; }
.capability-list div { display:flex; gap:24px; padding:18px 0; border-bottom:1px solid #cfcfcf; }
.capability-list span { color:#777; font-size:12px; font-weight:700; }
.capability-list p { margin:0; font-weight:700; }
.capability-photo img { width:100%; aspect-ratio:1.05/1; object-fit:cover; }
.coverage { background:white; }
.coverage-grid { display:grid; grid-template-columns:38% 1fr; gap:10%; align-items:center; }
.coverage-mark { font-size:clamp(90px, 16vw, 220px); font-weight:700; letter-spacing:-.11em; line-height:.8; color:var(--black); }
.coverage .large-copy { margin-bottom:35px; }
.visual-strip { display:grid; grid-template-columns:1.12fr 1fr 1.12fr; height:310px; }
.visual-strip-item { overflow:hidden; background:#ddd; }
.visual-strip img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.visual-strip-item:hover img { transform:scale(1.04); }
.quote { background:var(--black); color:white; }
.quote .section-kicker { color:#9c9c9c; }
.quote-grid { display:grid; grid-template-columns:38% 1fr; gap:10%; }
.quote-intro h2 { font-size:clamp(48px, 7vw, 88px); }
.quote-intro > p:not(.section-kicker) { color:#c8c8c8; font-size:18px; max-width:360px; }
.contact-details { margin-top:46px; display:flex; flex-direction:column; align-items:flex-start; gap:7px; }
.contact-details a { font-size:18px; font-weight:700; border-bottom:1px solid #666; }
.contact-details p { color:#aaa; margin-top:16px; }
.whatsapp-links { display:flex; gap:18px; flex-wrap:wrap; margin-top:24px; }
.whatsapp-links a { font-size:12px; text-transform:uppercase; font-weight:700; letter-spacing:.08em; color:#aaa; }
.quote-form { background:white; color:var(--ink); padding:36px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.quote-form label { display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-bottom:20px; }
.quote-form input, .quote-form select, .quote-form textarea { display:block; width:100%; margin-top:8px; border:1px solid #bdbdbd; border-radius:0; background:white; color:var(--ink); padding:13px 14px; font:16px Arial, Helvetica, sans-serif; }
.quote-form textarea { resize:vertical; min-height:138px; }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { outline:2px solid var(--black); outline-offset:1px; }
.form-submit { width:100%; cursor:pointer; }
.form-note, .form-status { font-size:12px; color:#777; margin:14px 0 0; }
.form-status { color:var(--black); font-weight:700; }
.site-footer { background:white; border-top:1px solid var(--line); padding:54px 0 25px; }
.footer-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:50px; align-items:start; }
.footer-brand img { width:265px; }
.footer-grid p { margin:4px 0 0; max-width:300px; color:#666; }
.footer-links { display:flex; flex-direction:column; align-items:flex-end; gap:10px; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.06em; }
.footer-links a { border-bottom:1px solid #aaa; padding-bottom:4px; }
.footer-bottom { border-top:1px solid var(--line); margin-top:48px; padding-top:18px; display:flex; justify-content:space-between; color:#777; font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
@media (max-width:900px) { .container { width:min(calc(100% - 40px), var(--max)); } .nav-wrap { min-height:72px; } .brand img { width:230px; } .menu-toggle { display:block; } .site-nav { display:none; position:absolute; top:72px; left:0; right:0; padding:20px; background:white; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0; } .site-nav.is-open { display:flex; } .site-nav a { padding:15px 0; border-bottom:1px solid var(--line); } .site-nav .nav-cta { padding:13px 15px; margin-top:12px; text-align:center; border:1px solid var(--black); } .hero { padding:56px 0 68px; } .hero-grid, .intro-grid, .capability-grid, .coverage-grid, .quote-grid { grid-template-columns:1fr; gap:48px; } .hero-media { max-width:680px; } .section-pad { padding:82px 0; } .section-heading { display:block; } .section-note { margin-top:20px; } .category-grid { grid-template-columns:1fr; } .visual-strip { height:230px; } .footer-grid { grid-template-columns:1fr 1fr; } .footer-brand { grid-column:1/-1; } .footer-links { align-items:flex-start; } }
@media (max-width:580px) { h1 { font-size:48px; } h2 { font-size:39px; } .hero-lead { font-size:17px; } .category-card { grid-template-columns:1fr; } .category-image { height:210px; } .form-row { grid-template-columns:1fr; gap:0; } .quote-form { padding:23px; } .visual-strip { grid-template-columns:1fr 1fr; height:260px; } .visual-strip-item:last-child { display:none; } .footer-grid { grid-template-columns:1fr; gap:24px; } .footer-links { align-items:flex-start; } .footer-bottom { flex-direction:column; gap:8px; } }

/* Honeypot -- must be reachable by bots but invisible to people.
   Positioned off-screen rather than display:none, which some bots detect. */
.hp-field {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Quote form status messages */
.form-status[data-state='pending'] { opacity: 0.75; }
.form-status[data-state='success'] { color: #2e7d32; font-weight: 600; }
.form-status[data-state='error']   { color: #c62828; font-weight: 600; }
.form-submit[disabled]             { opacity: 0.6; cursor: not-allowed; }
