@import url("./font-tokens.css");
/* Approved modern engineering system. Body typography can be swapped centrally.
   Header and logo typography are deliberately not targeted by these rules. */
:root {
  --ce-ink: #102e45;
  --ce-navy: #071f31;
  --ce-blue: #183b50;
  --ce-steel: #31546a;
  --ce-ice: #e2edf3;
  --ce-pale: #f5f9fb;
  --ce-line: #c5d5df;
  --ce-copper: #ab603f;
  --ce-copper-light: #deb18e;
  --ce-content: 1296px;
  --ce-body-size: 18px;
  --ce-data-size: 16px;
  --ce-caption-size: 16px;
}
.ce-modern { color:var(--ce-ink); font:400 var(--ce-body-size)/1.5 var(--ce-font-body); }
.ce-modern *, .ce-modern *::before, .ce-modern *::after { box-sizing:border-box; }
.ce-modern img { display:block; max-width:100%; height:auto; }
.ce-modern p { margin:0; }
.ce-modern p + p { margin-top:14px; }
.ce-modern a { color:inherit; text-decoration:none; }
.ce-modern h1,.ce-modern h2,.ce-modern h3 { margin:0; font-family:var(--ce-font-display); font-weight:500; line-height:1.08; }
.ce-modern h1 { font-size:clamp(42px,4.6vw,70px); letter-spacing:-.018em; }
.ce-modern h2 { font-size:clamp(32px,3.5vw,50px); letter-spacing:-.012em; }
.ce-modern h3 { font-size:clamp(25px,2.2vw,32px); }
.ce-modern h4 { margin:0; font:600 19px/1.3 var(--ce-font-body); }
.ce-shell { width:min(calc(100% - 80px),var(--ce-content)); margin-inline:auto; }
.ce-band { padding:46px 0; }
.ce-band--white { background:#fff; }
.ce-band--ice { background:linear-gradient(115deg,#d5e5ed,#f4f9fb 54%,#dbe8ef); }
.ce-band--steel { background:#dde7ec; }
.ce-band--navy { background:#102f43; color:#f6fafc; }
.ce-band--navy p,.ce-band--navy li { color:#d7e5ed; }
.ce-band--navy .ce-caption { color:#d7e5ed; }
.ce-band--copper { background:linear-gradient(112deg,#092338 0%,#17384e 44%,#5b4b45 75%,#ac7051 100%); color:#fff; }
.ce-kicker { margin:0 0 13px; color:var(--ce-copper); font:600 12px/1.3 var(--ce-font-body); letter-spacing:.18em; text-transform:uppercase; }
.ce-band--navy .ce-kicker,.ce-band--copper .ce-kicker { color:var(--ce-copper-light); }
.ce-section-heading { margin-bottom:26px; }
.ce-section-heading h2 + p { margin-top:13px; max-width:900px; }
.ce-section-heading--center { text-align:center; }
.ce-section-heading--center p { margin-inline:auto; }
.ce-hero { background:var(--ce-navy); color:#fff; }
.ce-hero .ce-kicker { color:#a8c8d9; }
.ce-hero-intro { padding:32px 0 25px; }
.ce-hero-intro p { color:#dfebf2; font-size:22px; max-width:1020px; margin-top:14px; }
.ce-hero-intro .ce-actions { margin-top:20px; }
.ce-hero-image { width:100%; max-height:420px; object-fit:cover; }
.ce-hero--split .ce-shell { display:grid; grid-template-columns:1fr 1.05fr; gap:42px; align-items:center; padding-block:36px; }
.ce-hero--split .ce-hero-intro { padding:0; }
.ce-hero--split img { width:100%; height:380px; object-fit:contain; }
.ce-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 23px; border:1px solid #c88e6b; background:var(--ce-copper); color:white!important; font:400 17px/1.25 var(--ce-font-body); cursor:pointer; }
.ce-button--light { color:var(--ce-ink)!important; background:var(--ce-pale); border-color:var(--ce-line); }
.ce-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.ce-split { display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:center; }
.ce-split--wide-image { grid-template-columns:1.4fr 1fr; }
.ce-split--data { grid-template-columns:1fr 1.8fr; }
.ce-grid { display:grid; gap:22px; }
.ce-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ce-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ce-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.ce-card { min-width:0; padding:24px; background:#f4f8fa; }
.ce-card--plain { padding:0; background:transparent; }
.ce-card h3 + p { margin-top:12px; }
.ce-card--center { text-align:center; }
.ce-card--center p { max-width:100%; margin-inline:auto; }
.ce-card--navy { background:#21485f; color:white; }
.ce-card img { width:100%; height:220px; object-fit:contain; margin-bottom:18px; }
.ce-card--plain img { margin-bottom:17px; }
.ce-card--photo img { height:245px; object-fit:cover; }
.ce-caption { font:400 var(--ce-caption-size)/1.45 var(--ce-font-caption); color:#2f4c60; }
.ce-figure { margin:0; }
.ce-figure img { width:100%; object-fit:contain; }
.ce-figure figcaption { margin-top:12px; text-align:center; font:400 var(--ce-caption-size)/1.45 var(--ce-font-caption); }
.ce-measurement { padding:20px; background:var(--ce-blue); color:white; }
.ce-measurement strong { display:block; font:500 31px/1.15 var(--ce-font-display); margin-bottom:9px; }
.ce-measurement small { font:400 15px/1.4 var(--ce-font-body); color:#d4e3ec; }
.ce-table-scroll { max-width:100%; overflow-x:auto; border:1px solid var(--ce-line); }
.ce-modern table { width:100%; border-collapse:collapse; font:400 var(--ce-data-size)/1.4 var(--ce-font-data); }
.ce-modern th { padding:12px 14px; background:#183b50; color:white; font-weight:600; text-align:left; }
.ce-modern td { padding:11px 14px; background:#f6f9fb; border:1px solid #cfdae2; vertical-align:top; }
.ce-modern td p { font:inherit; }
.ce-numeric { font-variant-numeric:tabular-nums; }
.ce-technical-note { font:400 14px/1.45 var(--ce-font-body); color:#4d6574; margin-top:14px!important; }
.ce-band--navy .ce-technical-note { color:#c3d4df; }
.ce-reference { background:#f5f9fb; border:1px solid #b8cbd7; color:var(--ce-ink); margin-top:16px; }
.ce-reference summary { cursor:pointer; padding:17px 20px; font:600 17px/1.4 var(--ce-font-body); }
.ce-reference[open] summary { border-bottom:1px solid var(--ce-line); }
.ce-reference-body { padding:22px; overflow-x:auto; }
.ce-reference-body > :first-child { margin-top:0; }
.ce-reference-body h3 { margin:20px 0 12px; }
.ce-reference-body p,.ce-reference-body li { font-size:16px; line-height:1.5; }
.ce-reference-body table { margin:16px 0; }
.ce-library-card { display:flex; align-items:center; gap:18px; background:#e7f0f5; padding:18px; min-width:0; }
.ce-library-card img { width:82px; height:70px; object-fit:contain; flex:none; }
.ce-library-card h3 { font-size:27px; }
.ce-library-card p { font-size:14px; margin-top:7px; }
.ce-project { padding:40px 0; }
.ce-project .ce-shell { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:38px; }
.ce-project img { width:100%; height:310px; object-fit:contain; background:white; padding:15px; }
.ce-project-inputs { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:25px 0; }
.ce-project-inputs strong { display:block; font-size:16px; }
.ce-project-inputs p { font-size:15px; color:#d7e5ed; margin-top:7px; }
.ce-modern :focus-visible { outline:3px solid #af714d; outline-offset:4px; }
@media(max-width:1100px) {
 .ce-shell { width:calc(100% - 48px); }
 .ce-split--data { grid-template-columns:1fr 1.5fr; }
 .ce-grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ce-hero--split .ce-shell { gap:24px; }
 .ce-hero--split img { height:320px; }
}
@media(max-width:700px) {
 :root { --ce-body-size:17px; --ce-data-size:15px; --ce-caption-size:15px; }
 .ce-shell { width:calc(100% - 32px); }
 .ce-band { padding:30px 0; }
 .ce-hero-intro { padding:26px 0 22px; }
 .ce-hero-intro p { font-size:19px; }
 .ce-hero-image { max-height:none; object-fit:contain; }
 .ce-hero--split .ce-shell,.ce-split,.ce-split--wide-image,.ce-split--data,.ce-project .ce-shell { grid-template-columns:1fr; gap:24px; }
 .ce-hero--split img { height:auto; max-height:320px; }
 .ce-grid--2,.ce-grid--3,.ce-grid--4 { grid-template-columns:1fr; gap:24px; }
 .ce-card { padding:20px; }
 .ce-card img { height:230px; }
 .ce-card--plain { padding:0; }
 .ce-modern h1 { font-size:42px; }
 .ce-modern h2 { font-size:34px; }
 .ce-modern h3 { font-size:28px; }
 .ce-reference-body { padding:16px; }
 .ce-project-inputs { gap:18px 14px; }
 .ce-project img { height:260px; }
 .ce-modern th,.ce-modern td { padding:9px 11px; }
}
@font-face{font-family:'Source Serif 4';src:url('/assets/empire-v2/fonts/source-serif-4-variable.woff2') format('woff2');font-weight:200 900;font-display:swap}
@font-face{font-family:Cormorant;src:url('/assets/empire-v2/fonts/cormorant-500.woff2') format('woff2');font-weight:500;font-display:swap}
.ce-modern{padding:0!important;margin:0!important;max-width:none!important}.ce-modern section{scroll-margin-top:85px}.ce-modern img{border-radius:0}.ce-modern h1,.ce-modern h2,.ce-modern h3{text-transform:none}.ce-modern .ce-card img{border:0}.ce-modern a:hover{text-decoration:underline;text-underline-offset:4px}
.ce-modern h1,.ce-modern h2,.ce-modern h3,.ce-modern h4,.ce-modern p{color:inherit!important}.ce-modern .ce-band{padding:46px 0!important}.ce-modern .ce-hero{padding:0!important}.cookie-panel[hidden]{display:none!important}

/* Body links: color and focus identify interaction; no decorative underlining. */
.ce-modern a,.ce-approved a{text-decoration:none!important}.ce-modern a:focus-visible,.ce-approved a:focus-visible{outline:3px solid #b97450;outline-offset:4px}
