/* Etico website redesign - shared stylesheet.
   Tokens: BRIEF.md section 4, except the red, which is sampled from the Etico
   logo (#af1417) - every red on these pages must match the mark. */

:root{
  --ink:#151210;          /* near-black, dark fields and primary text */
  --paper:#FBFAF8;         /* neutral page field */
  --crimson:#af1417;       /* Etico logo red - brand, CTAs, lines, fills */
  --crimson-deep:#8f1014;  /* red text on light fields */
  --crimson-lite:#e58b8d;  /* red text/links on dark (ink) fields */
  --crimson-pale:#f2d9d9;  /* light text on a red field */
  --sand:#EFE9DE;          /* business track field */
  --sand-2:#E6DCC9;        /* business track field, second step */
  --stone:#DDE2E4;         /* enterprise / public sector field */
  --stone-2:#CDD5D8;       /* enterprise / public sector field, second step */
  --muted:#6B6560;         /* secondary text on light fields */
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Archivo,system-ui,sans-serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--crimson);outline-offset:3px}

/* Body text on light fields, per page (BRIEF section 4).
   data-track on <body> is the page-scope hook (never collides with a component class). */
[data-track="business"],[data-track="about"],[data-track="solutions"],[data-track="contact"]{--body-text:#3B3733}
[data-track="enterprise"]{--body-text:#33393B}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition-duration:.001ms !important}
}

/* ---------- Header ---------- */

/* Static header carrying the page colour: logo | main menu | primary CTA. */
header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 40px}
[data-track="business"] header{background:var(--sand)}
[data-track="enterprise"] header{background:var(--stone)}
[data-track="about"] header,[data-track="solutions"] header,[data-track="contact"] header{background:var(--paper)}
.hgroup{display:flex;align-items:center;gap:24px}
.hnav{display:flex;align-items:center;gap:26px;font-size:14px;font-variation-settings:'wght' 500}
.hnav a{padding-bottom:2px;border-bottom:2px solid transparent}
.hnav a:hover{color:var(--crimson)}
.hnav a[aria-current="page"]{border-bottom-color:var(--crimson)}
.hcta{background:var(--crimson);color:#fff;padding:10px 18px;font-size:13.5px;
  font-variation-settings:'wght' 600;white-space:nowrap;transition:background .2s}
.hcta:hover{background:var(--ink)}

header img{height:52px;display:block}

/* ---------- Colour fields ---------- */

.field{padding:100px 6vw}
.ink{background:var(--ink);color:var(--paper)}
.paper{background:var(--paper)}
.red{background:var(--crimson);color:#fff}
.sand{background:var(--sand)}
.sand2{background:var(--sand-2)}
.stone{background:var(--stone)}
.stone2{background:var(--stone-2)}

.split{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:7vw;align-items:start}

/* ---------- Track top ---------- */

.top{padding:11vh 6vw 10vh}
.top h1{font-size:clamp(38px,5vw,74px);line-height:.98;letter-spacing:-.032em;
  font-variation-settings:'wght' 600,'wdth' 108;max-width:16ch;margin-bottom:24px}
.top p{font-size:19px;line-height:1.62;max-width:56ch;color:var(--body-text)}

/* ---------- Headings & prose ---------- */

.field h2{font-size:clamp(29px,3.2vw,48px);font-variation-settings:'wght' 600,'wdth' 106;
  letter-spacing:-.028em;line-height:1.03;max-width:16ch}
.red h2{max-width:20ch;margin-bottom:16px}

.prose p{font-size:18px;line-height:1.66;max-width:56ch}
.prose p + p{margin-top:20px}
.ink .prose p{color:#A8A29C}
.paper .prose p,.sand .prose p,.sand2 .prose p,.stone .prose p,.stone2 .prose p{color:var(--body-text)}

/* A prose block set as a standalone statement (business "the hard part is…"). */
.prose.statement p{font-size:clamp(20px,2.4vw,27px);line-height:1.46;max-width:34ch;color:#C4BEB6}

/* ---------- Recognisable situations (business, full-bleed field) ---------- */

.scan{columns:2;column-gap:58px;margin-top:24px}
.scan p{break-inside:avoid;margin:0 0 26px;font-size:16.5px;line-height:1.5;
  color:var(--body-text);max-width:46ch}
.scan p:last-child{margin-bottom:0}
.scan b{font-variation-settings:'wght' 620,'wdth' 104;color:var(--ink)}

/* ---------- History timeline (about) ---------- */

.timeline{margin-top:8px;border-top:1px solid rgba(21,18,16,.15)}
.tl{display:grid;grid-template-columns:5.5rem 1fr;gap:0 34px;align-items:baseline;
  padding:16px 0;border-bottom:1px solid rgba(21,18,16,.15)}
.tl b{font-variation-settings:'wght' 600,'wdth' 104;font-size:18px;letter-spacing:-.01em;
  color:var(--crimson-deep)}
.tl p{font-size:16px;line-height:1.5;color:var(--body-text);max-width:62ch}

/* ---------- Capability list (enterprise "What we deliver") ---------- */

.inc{list-style:none;margin-top:34px;columns:2;column-gap:44px}
.inc li{font-size:15.5px;padding:10px 0;border-top:1px solid rgba(21,18,16,.14);
  break-inside:avoid;color:var(--body-text)}
.ink .inc li{border-color:rgba(255,255,255,.18);color:#C3BEB8}

/* ---------- About hero with a CTA in the right whitespace ---------- */

.herowrap{display:grid;grid-template-columns:minmax(0,1.15fr) auto;gap:6vw;align-items:end}
.herowrap > div{max-width:52ch}
.herowrap .btn{align-self:end}

/* ---------- Solutions grid ---------- */

.solutions{display:grid;grid-template-columns:repeat(2,1fr);gap:0 6vw;margin-top:20px;
  border-top:1px solid rgba(21,18,16,.16)}
.sol{padding:26px 0 28px;border-bottom:1px solid rgba(21,18,16,.16)}
.sol h3{font-size:20px;font-variation-settings:'wght' 600,'wdth' 104;letter-spacing:-.015em;
  line-height:1.2;margin-bottom:8px}
.sol p{font-size:15.5px;line-height:1.55;color:var(--body-text);max-width:48ch}
.sol .meta{font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;
  font-variation-settings:'wght' 600,'wdth' 92;color:var(--crimson-deep);margin-bottom:9px}

/* ---------- Contact form ---------- */

.contact{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:7vw;align-items:start}
.cinfo p{font-size:16px;line-height:1.6;color:var(--body-text);margin-bottom:18px}
.cinfo b{display:block;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;
  font-variation-settings:'wght' 600,'wdth' 92;color:var(--muted);margin-bottom:4px}
.cformwrap{min-width:0}
.cform{display:flex;flex-direction:column;gap:20px}
.cform[hidden]{display:none}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cform label{display:block;font-size:13px;letter-spacing:.02em;
  font-variation-settings:'wght' 600;color:var(--muted)}
.cform label > span{color:var(--crimson-deep)}
.cform input,.cform textarea{display:block;width:100%;margin-top:6px;
  font:inherit;font-size:16px;font-variation-settings:'wght' 400;
  color:var(--ink);background:var(--paper);border:1px solid rgba(21,18,16,.28);
  padding:11px 13px;border-radius:0}
.cform textarea{resize:vertical;min-height:130px}
.cform input:focus,.cform textarea:focus{outline:3px solid var(--crimson);outline-offset:2px;border-color:var(--crimson)}
.cform .hp{position:absolute;left:-9999px}
.cform button{align-self:start;font:inherit;font-size:16px;font-variation-settings:'wght' 600;
  padding:15px 30px;background:var(--ink);color:var(--paper);border:0;cursor:pointer;transition:background .2s}
.cform button:hover{background:var(--crimson)}
.cform .err{font-size:14px;color:var(--crimson-deep);font-variation-settings:'wght' 500}
.cok{font-size:17px;line-height:1.5;font-variation-settings:'wght' 500;color:var(--body-text);max-width:44ch}
.cok::before{content:"";display:block;width:34px;height:3px;background:var(--crimson);margin-bottom:16px}

/* ---------- Client logo wall (enterprise, about) ---------- */

.logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:36px 40px;margin-top:22px;align-items:center}
.logos div{display:flex;align-items:center;justify-content:center;padding:4px;min-height:56px}
/* colour logos; multiply drops the baked white/grey rectangles of the JPG/GIF files
   into the near-white field without touching the marks themselves */
.logos img{max-width:100%;max-height:40px;object-fit:contain;mix-blend-mode:multiply}
.logos img[alt="Facebook"]{max-height:48px}

/* ---------- Procurement vehicles (enterprise) ---------- */

.vehicles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;margin-top:14px}
.veh{padding:34px 30px 30px;background:var(--paper)}
.veh:nth-child(2),.veh:nth-child(5){background:var(--stone)}
.veh:nth-child(3){background:var(--stone-2)}
.veh h3{font-size:21px;font-variation-settings:'wght' 600;letter-spacing:-.018em;
  margin-bottom:10px;line-height:1.14}
.veh p{font-size:15.5px;line-height:1.58;color:#33393B}

/* ---------- Reference examples (enterprise, ink field) ---------- */

.refs{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:64px;margin-top:16px}
.ref .meta{font-size:13px;color:#8B8680;margin-bottom:12px}
.ref h3{font-size:clamp(22px,2.2vw,30px);font-variation-settings:'wght' 600;letter-spacing:-.022em;
  line-height:1.1;max-width:22ch;margin-bottom:16px}
.ref p{font-size:16.5px;line-height:1.64;color:#A8A29C;margin-bottom:20px}
.ref a,.reflink{font-size:14.5px;color:var(--crimson-lite);border-bottom:1px solid rgba(229,139,141,.5);padding-bottom:2px}
.reflink{font-family:inherit;font-variation-settings:'wght' 500;background:none;border-width:0 0 1px;
  border-style:solid;border-color:rgba(229,139,141,.5);padding:0 0 2px;cursor:pointer}
.reflink:hover{color:#fff;border-color:rgba(255,255,255,.7)}

/* ---------- Case-study modal ---------- */

dialog.modal{border:0;padding:0;margin:auto;width:min(720px,92vw);max-height:86vh;overflow:hidden;
  color:var(--body-text);background:var(--paper);box-shadow:0 32px 90px -24px rgba(21,18,16,.55)}
dialog.modal::backdrop{background:rgba(21,18,16,.64)}
.modal-inner{display:flex;flex-direction:column;max-height:86vh}
.modal-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;
  gap:20px;padding:16px 22px 15px;border-bottom:1px solid rgba(21,18,16,.14)}
.modal-tag{font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  font-variation-settings:'wght' 600,'wdth' 92;color:var(--crimson-deep)}
.modal-x{font-family:inherit;font-size:26px;line-height:1;background:none;border:0;
  color:var(--muted);cursor:pointer;padding:0 2px}
.modal-x:hover{color:var(--ink)}
.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:26px 30px 30px}
.modal-body h2{font-size:clamp(21px,2.4vw,27px);font-variation-settings:'wght' 600,'wdth' 106;
  letter-spacing:-.02em;line-height:1.16;margin-bottom:18px;max-width:30ch}
.modal-body h3{font-size:15.5px;font-variation-settings:'wght' 600;letter-spacing:.01em;
  text-transform:uppercase;color:var(--muted);margin:24px 0 9px}
.modal-body h4{font-size:15px;font-variation-settings:'wght' 600;margin:16px 0 6px}
.modal-body p{font-size:15px;line-height:1.62;margin-bottom:13px;max-width:66ch}
.modal-body ul,.modal-body ol{margin:0 0 15px;padding-left:19px}
.modal-body li{font-size:15px;line-height:1.55;margin:6px 0;max-width:64ch}
.modal-src{font-size:12.5px;color:var(--muted);margin-top:24px;padding-top:14px;
  border-top:1px solid rgba(21,18,16,.12)}

/* ---------- Close (crimson) ---------- */

.red .lead{font-size:18px;line-height:1.6;color:var(--crimson-pale);max-width:48ch;margin-bottom:34px}
.red a.cta{display:inline-block;background:#fff;color:var(--crimson-deep);
  padding:17px 32px;font-variation-settings:'wght' 600;font-size:16.5px}
.red a.cta:hover{background:var(--ink);color:#fff}

/* ---------- Buttons ---------- */

.btn{display:inline-flex;align-items:center;gap:12px;font-size:16px;
  font-variation-settings:'wght' 600;padding:16px 26px;background:var(--ink);color:var(--paper);
  align-self:start;white-space:nowrap;transition:background .2s}
.btn:hover{background:var(--crimson)}
.btn span{font-size:19px;line-height:1}

/* ---------- Footer ---------- */

footer{background:var(--ink);color:#8B8680;padding:44px 6vw;display:flex;
  flex-direction:column;gap:22px;font-size:14px}
.ftop{display:flex;align-items:center;flex-wrap:wrap;gap:12px 28px}
.flogo img{height:20px;display:block;filter:brightness(0) invert(1);opacity:.82}
.fnav{display:flex;flex-wrap:wrap;gap:14px 28px;font-variation-settings:'wght' 500}
.fnav a{color:#C6C0B9}
.fnav a:hover{color:#fff}
.fmeta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;
  padding-top:22px;border-top:1px solid rgba(255,255,255,.13)}
.fmeta a:hover{color:#fff}

/* ---------- Responsive ---------- */

@media(max-width:900px){
  header{padding:14px 20px;flex-wrap:wrap;gap:12px}
  .hgroup{width:100%;justify-content:space-between;flex-wrap:wrap;gap:12px 16px}
  .hnav{flex-wrap:wrap;gap:10px 18px;font-size:13.5px}

  .field,.top{padding:56px 8vw}
  .split,.herowrap,.contact{grid-template-columns:1fr;gap:24px}
  .herowrap{align-items:start}
  .solutions{grid-template-columns:1fr;gap:0}
  .inc,.scan{columns:1}
  .scan p{max-width:none}
  .tl{grid-template-columns:1fr;gap:4px;padding:14px 0}
  .cform .row{grid-template-columns:1fr}
  .refs{gap:40px}
}
