/* Condr Grup / September 2026 — editorial construction identity. */
:root {
  --ink: #111111; --ink-soft: #1f1f1f; --paper: #f7f4ee; --paper-light: #ffffff;
  --concrete: #ece8e1; --orange: #c7252a; --orange-dark: #a81e22; --muted: #64615c;
  --line: rgba(17,17,17,.16); --display: "Inter", Arial, sans-serif;
  --heading: "Oswald", "Arial Narrow", sans-serif; --serif: "Playfair Display", Georgia, serif;
  --mono: "Inter", Arial, sans-serif; --page: min(1480px, 100%);
  --gutter: clamp(24px, 5.2vw, 84px); --section: clamp(80px, 8.5vw, 132px);
}
html { scroll-padding-top: 104px; }
main { overflow-x: clip; }
.mobile-menu { visibility: hidden; }
.menu-open .mobile-menu { visibility: visible; }
body { font-size: 16px; line-height: 1.6; }
body, button, input, select, textarea { font-family: var(--display); }
button, a { -webkit-tap-highlight-color: transparent; }
.site-grain { opacity: .022; }
h1,h2,h3,h4,.display { font-family: var(--heading); font-weight: 500; letter-spacing: -.025em; }
.display { font-size: clamp(42px, 5.3vw, 78px); line-height: 1.07; text-transform: uppercase; letter-spacing: -.025em; }
.display.large { font-size: clamp(54px, 6.7vw, 100px); }
.display em,.serif { font-family: var(--serif); font-weight: 400; letter-spacing: -.055em; text-transform: none; }
.eyebrow { font-size: 14px; font-weight: 600; letter-spacing: .11em; line-height: 1.5; }
.eyebrow::before { width: 28px; height: 2px; background: var(--orange); }
.eyebrow.light { color: #cbc6bf; }
.lede { color: #64615c; line-height: 1.75; }
.button { min-height: 54px; font-size: 14px; padding: 16px 22px; gap: 24px; font-weight: 600; }
.button-small { min-height: 44px; }
.button-orange:hover { box-shadow: 0 8px 24px #c7252a26; }
.text-link { font-size: 14px; font-weight: 600; }
.site-header { height: 88px; background: #111111; border-bottom-color: #ffffff26; }
.site-header.solid,.site-header.is-scrolled { height: 78px; background: #fffffff5; }
.header-inner { gap: 30px; }
.site-logo { width: 166px; }
.main-nav { gap: clamp(18px,2vw,30px); }
.nav-link,.header-quote { font-size: 14px; font-weight: 500; }
.nav-link::after { bottom: 22px; }
.language button { min-width: 44px; min-height: 40px; font-size: 14px; }
.language-menu a,.language-menu span { font-size: 14px; }
.mega-panel { top: 88px; }
.site-header.is-scrolled .mega-panel,.site-header.solid .mega-panel { top: 78px; }
.mega-intro p { font-size: 15px; }
.mega-intro h3 { font-size: 36px; }
.mega-links a { font-weight: 500; }

/* A typographic hero. The grid and logo are intentional artwork, not missing media. */
.cg-hero { position: relative; overflow: hidden; padding-top: 88px; background: #111; color: #fff; }
.cg-hero::before { content: ""; position: absolute; top: 88px; right: 25%; bottom: 0; width: 1px; background: #ffffff07; pointer-events: none; }
.cg-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 34px; padding-bottom: 20px; color: #bcb7b0; font-size: 14px; }
.cg-hero-top .eyebrow { margin: 0; color: #d1cbc3; }
.cg-hero-top > span { font-size: 14px; }
.cg-hero-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(40px,6vw,100px); align-items: center; padding-top: 28px; padding-bottom: 66px; }
.cg-hero-title { font-size: clamp(64px,7.2vw,112px); font-family: var(--heading); font-weight: 500; text-transform: uppercase; line-height: 1.02; letter-spacing: -.035em; margin: 0 0 30px; }
.cg-hero-title em { display: block; font-family: var(--serif); font-size: .91em; font-weight: 400; text-transform: none; color: #eb5b5f; line-height: 1.08; letter-spacing: -.055em; }
.cg-hero-copy { max-width: 540px; margin: 0 0 30px; font-size: 17px; line-height: 1.8; color: #c4bfb8; }
.cg-hero .hero-actions { flex-wrap: wrap; gap: 28px; }
.cg-hero-brand { position: relative; aspect-ratio: .98; min-width: 0; border: 1px solid #ffffff29; background: #1b1b1b; display: grid; place-items: center; transform: rotate(2deg); transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.cg-hero-brand:hover { transform: rotate(0deg); }
.cg-hero-brand::before,.cg-hero-brand::after { content: "+"; position: absolute; z-index: 2; color: #b4afa7; font: 22px monospace; line-height: 1; }
.cg-hero-brand::before { top: 14px; left: 14px; }
.cg-hero-brand::after { bottom: 14px; right: 14px; }
.cg-brand-grid { position: absolute; inset: 0; background-image: linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px); background-size: 42px 42px; }
.cg-brand-logo { position: relative; z-index: 1; width: 76%; }
.cg-brand-logo img { width: 100%; filter: brightness(0) invert(1); }
.cg-brand-caption { position: absolute; left: 24px; bottom: 26px; right: 24px; display: flex; justify-content: space-between; gap: 15px; margin: 0; color: #bcb7b0; font-size: 14px; letter-spacing: .05em; text-transform: uppercase; }
.cg-hero-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 24px; padding-bottom: 26px; border-top: 1px solid #ffffff26; color: #c8c3bc; font-size: 14px; }
.cg-hero-bottom strong { color: #fff; font-weight: 500; }
.cg-ticker { display: flex; justify-content: center; flex-wrap: wrap; align-items: center; gap: 18px 42px; background: var(--orange); color: #fff; padding: 19px var(--gutter); font-family: var(--heading); font-size: clamp(18px,2vw,25px); line-height: 1.3; letter-spacing: .035em; text-transform: uppercase; }
.cg-ticker span { display: inline-flex; align-items: center; gap: 42px; }
.cg-ticker span::after { content: "+"; font-size: 25px; color: #ffffffb3; }
.cg-ticker span:last-child::after { display: none; }
.cg-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; margin-bottom: 50px; }
.cg-section-head > :first-child { max-width: 790px; }
.cg-section-head p:not(.eyebrow) { max-width: 365px; margin-bottom: 0; color: var(--muted); line-height: 1.75; }
.dark .cg-section-head p:not(.eyebrow) { color: #c4bfb8; }
.cg-section-head .text-link { flex-shrink: 0; }
.cg-services { border-top: 1px solid var(--line); }
.cg-service-row { display: grid; grid-template-columns: 55px 1.05fr 1fr 40px; align-items: center; gap: 26px; padding: 30px 0; border-bottom: 1px solid var(--line); transition: padding .3s,background .3s; }
.cg-service-row > span:first-child { color: var(--orange); font-size: 14px; }
.cg-service-row h3 { font-size: clamp(27px,3vw,40px); margin: 0; line-height: 1.2; text-transform: uppercase; }
.cg-service-row p { font-size: 16px; color: var(--muted); margin: 0; }
.cg-service-row .arrow,.cg-service-row > span:last-child { justify-self: end; font-size: 28px; transition: transform .3s; }
.cg-service-row:hover { padding-left: 18px; padding-right: 18px; background: #fff; }
.cg-service-row:hover .arrow { transform: rotate(45deg); color: var(--orange); }

/* Project cards retain readable titles outside their optional flip interaction. */
.cg-project-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; }
.cg-project-card { min-width: 0; }
.cg-flip-button { display: block; position: relative; width: 100%; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; perspective: 1200px; color: #fff; }
.cg-flip-inner { display: grid; position: relative; min-height: 310px; aspect-ratio: 1.13; transform-style: preserve-3d; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.cg-flip-front,.cg-flip-back { grid-area: 1/1; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 28px; background: #202020; border: 1px solid #ffffff15; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.cg-flip-front { background-image: linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px); background-size: 34px 34px; }
.cg-flip-front img { width: 78%; max-height: 160px; object-fit: contain; filter: brightness(0) invert(1); transition: transform .6s; }
.cg-flip-front > span,.cg-flip-front small { position: absolute; bottom: 22px; left: 24px; right: 24px; font-size: 14px; display: flex; justify-content: space-between; color: #d4cec6; }
.cg-flip-front::after { content: "↗"; position: absolute; top: 16px; right: 20px; font-size: 25px; color: #e3595d; }
.cg-flip-back { transform: rotateY(180deg); align-items: flex-start; background: var(--orange); }
.cg-flip-back h3,.cg-flip-back strong { font-family: var(--heading); font-size: 30px; font-weight: 500; line-height: 1.2; margin-bottom: 18px; text-transform: uppercase; }
.cg-flip-back p { font-size: 16px; line-height: 1.75; margin: 0; }
.cg-flip-back small,.cg-flip-back > span:last-child { font-size: 14px; margin-top: 20px; }
.cg-flip-button:hover .cg-flip-front img { transform: scale(1.04); }
.cg-flip-button.is-flipped .cg-flip-inner,.cg-project-card.is-flipped .cg-flip-inner,.cg-flip-button[aria-expanded="true"] .cg-flip-inner { transform: rotateY(180deg); }
.cg-project-meta { padding-top: 25px; }
.cg-project-meta .eyebrow { margin-bottom: 12px; font-size: 14px; color: #a81e22; letter-spacing: .04em; }
.dark .cg-project-meta .eyebrow { color: #f2787c; }
.cg-project-meta h3 { font-size: clamp(27px,2.4vw,36px); line-height: 1.2; margin-bottom: 12px; }
.cg-project-meta p { font-size: 15px; margin-bottom: 18px; color: var(--muted); }
.dark .cg-project-meta p { color: #c1bbb3; }
.cg-project-meta a { font-size: 14px; }

/* Shared map module, with list navigation beside the cartography. */
.cg-map-section { background: #ece8e1; }
.cg-map-layout { display: grid; grid-template-columns: 1.55fr 1fr; border: 1px solid #11111121; background: #fff; }
.cg-map { position: relative; z-index: 1; min-width: 0; min-height: 410px; background: #e3e2dc; }
.cg-map-section.is-full .cg-map { min-height: 520px; }
.cg-map-list { min-width: 0; display: flex; flex-direction: column; padding: 12px 28px; }
.cg-map-item { width: 100%; position: relative; display: grid; grid-template-columns: 32px 1fr; align-items: start; column-gap: 16px; padding: 26px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; cursor: pointer; transition: color .2s,background .2s; }
.cg-map-item:last-of-type { border-bottom: 0; }
.cg-map-item > span:first-child { color: var(--muted); font-size: 14px; }
.cg-map-item strong { display: block; font-family: var(--heading); font-size: 23px; font-weight: 500; line-height: 1.25; margin-bottom: 9px; }
.cg-map-item p,.cg-map-item small { display: block; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.cg-map-item.active { color: var(--orange); }
.cg-map-item.active > span:first-child { color: var(--orange); }
.cg-map-item.active::before { content: ""; position: absolute; top: 25px; bottom: 25px; left: -29px; width: 3px; background: var(--orange); }
.cg-map-note { color: var(--muted); font-size: 14px; line-height: 1.65; margin: 16px 0 0; max-width: 900px; }
.cg-map .leaflet-control-attribution { font-size: 11px; }
.cg-map .leaflet-popup-content { font-family: var(--display); font-size: 14px; line-height: 1.6; }
.cg-map .leaflet-popup-content strong { font-family: var(--heading); font-size: 21px; font-weight: 500; }
.cg-map .leaflet-control-zoom a { color: #111; }
.cg-map .leaflet-control-zoom a:focus-visible { outline-offset: -3px; }
.cg-map-marker { display: grid; place-items: center; width: 34px; height: 34px; border: 2px solid white; border-radius: 50%; background: var(--orange); color: white; font-size: 14px; font-weight: 600; box-shadow: 0 3px 12px #0004; }
.cg-process { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; border-top: 1px solid var(--line); }
.cg-process > * { padding-top: 28px; }
.cg-process .number,.cg-process > * > span:first-child { color: var(--orange); font-size: 14px; }
.cg-process h3 { font-size: 28px; line-height: 1.2; margin: 46px 0 18px; }
.cg-process p { font-size: 16px; line-height: 1.75; color: var(--muted); }

/* Existing pages inherit the new identity and remain fully functional. */
.page-hero { min-height: 540px; padding-top: 190px; background: #111; }
.page-hero::after { background: linear-gradient(120deg,#111 40%,#1f1f1f); }
.page-hero.has-image::before { display: none; }
.page-hero h1,.case-hero h1 { font-size: clamp(52px,6.7vw,98px); line-height: 1.08; letter-spacing: -.025em; text-transform: uppercase; }
.page-hero h1 em,.case-hero h1 em { text-transform: none; color: #ed696c; letter-spacing: -.055em; }
.breadcrumb { top: 115px; font-size: 14px; color: #c4bfb8; }
.page-hero p:not(.eyebrow) { color: #cbc6bf; }
.split-copy p,.service-card p,.process-step p,.check-list li,.qualification-card li,.capability-table td,.after-request li { font-size: 16px; }
.split-copy .lead { font-size: 21px; }
.service-card { padding: 30px; }
.service-card h3 { font-size: 32px; font-weight: 500; }
.service-card:hover { color: #fff; }
.service-card:hover p,.service-card:hover .number { color: #fff; }
.service-card .number,.process-step .number,.stat span,.proof-strip span { font-size: 14px; }
.process-step h3 { font-size: 27px; }
.stats strong,.proof-strip strong { font-family: var(--heading); font-weight: 500; letter-spacing: -.025em; }
.reference-summary,.b2b-band,.cta-band,.audience-business,.orange { color: white; }
.reference-summary p { font-weight: 500; letter-spacing: -.015em; }
.reference-summary-number { font-family: var(--heading); font-weight: 500; }
.reference-disclaimer,.reference-photo-label,.reference-meta,.reference-detail-link,.demo-note { font-size: 14px; }
.reference-card h3 { letter-spacing: -.02em; }
.reference-link-grid a:hover { color: #fff; }
.reference-link-grid span,.reference-link-grid small { font-size: 14px; }
.reference-link-grid a:hover span,.reference-link-grid a:hover small { color: #fff; }
.filter-button { font-size: 14px; min-height: 44px; }
.project-card-meta,.case-fact span,.case-fact p { font-size: 14px; }
.cta-band .button-ghost:hover { background: #fff; color: var(--orange); }
.cta-band .eyebrow { color: #fff; }
.cta-band .eyebrow::before { background: #fff; }
.form-field,.form-consent,.form-status,.company-card { font-size: 14px; line-height: 1.65; }
.form-field input,.form-field select,.form-field textarea { font-size: 16px; min-height: 48px; }
.form-consent input { width: 18px; height: 18px; flex-shrink: 0; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { outline: 2px solid var(--orange); outline-offset: 4px; }
.company-card { overflow-wrap: anywhere; }
.site-footer { background: #111; padding-top: 76px; }
.footer-brand p { font-family: var(--heading); font-size: 34px; font-weight: 500; line-height: 1.2; letter-spacing: -.02em; }
.footer-label { color: #b1aaa2; font-size: 14px; }
.footer-column a,.footer-column p,.social-placeholder { font-size: 14px; }
.footer-bottom { color: #b1aaa2; font-size: 14px; flex-wrap: wrap; gap: 20px; padding-bottom: 10px; }
.quick-panel p,.quick-panel a,.toast { font-size: 14px; }
.quick-toggle { border-radius: 4px; }
img.cg-logo-placeholder { object-fit: contain!important; object-position: center!important; padding: clamp(35px,6vw,100px); background-color: #f7f4ee; filter: none!important; }
.cg-logo-placeholder-wrap { background: #202020; background-image: linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px); background-size: 40px 40px; }
.cg-logo-placeholder-wrap img { object-fit: contain; padding: 18%; filter: brightness(0) invert(1); }

/* Progressive enhancement: content is visible until the observer is ready. */
.reveal { opacity: 1; transform: none; }
.cg-reveal { opacity: 1; transform: none; }
html.motion-ready .cg-reveal { transition: opacity .75s ease var(--delay,0ms),transform .85s cubic-bezier(.2,.7,.2,1) var(--delay,0ms),clip-path .85s cubic-bezier(.2,.7,.2,1) var(--delay,0ms); }
html.motion-ready .cg-reveal:not(.is-visible) { opacity: 0; transform: translateY(34px); }
html.motion-ready .cg-reveal[data-motion="left"]:not(.is-visible) { transform: translateX(-42px); }
html.motion-ready .cg-reveal[data-motion="right"]:not(.is-visible) { transform: translateX(42px); }
html.motion-ready .cg-reveal[data-motion="assemble"]:not(.is-visible) { transform: translateY(36px) scale(.96); clip-path: inset(6% 3% 6% 3%); }
html.motion-ready .cg-reveal.is-visible { opacity: 1; transform: none; clip-path: inset(0); }
@keyframes cg-enter { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: no-preference) {
  .cg-hero-top { animation: cg-enter .65s ease both; }
  .cg-hero-title { animation: cg-enter .8s .08s ease both; }
  .cg-hero-copy { animation: cg-enter .8s .18s ease both; }
  .cg-hero .hero-actions { animation: cg-enter .8s .28s ease both; }
  .cg-hero-bottom { animation: cg-enter .8s .38s ease both; }
}
@media (max-width: 1180px) {
  .header-inner { gap: 22px; }
  .main-nav { gap: 17px; }
  .header-quote { display: none; }
  .cg-hero-grid { gap: 40px; }
  .cg-hero-title { font-size: clamp(60px,7.5vw,92px); }
  .cg-flip-inner { min-height: 290px; }
  .cg-project-grid { gap: 20px; }
  .cg-map-list { padding-left: 22px; padding-right: 22px; }
  .cg-map-item.active::before { left: -23px; }
}
@media (max-width: 960px) {
  .cg-hero-grid { grid-template-columns: 1.15fr .85fr; gap: 28px; }
  .cg-hero-title { font-size: clamp(57px,8vw,76px); }
  .cg-hero-copy { font-size: 16px; }
  .cg-hero-brand { aspect-ratio: .82; }
  .cg-brand-caption { flex-direction: column; font-size: 14px; }
  .cg-project-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 38px 22px; }
  .cg-project-card:last-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; }
  .cg-project-card:last-child .cg-project-meta { padding: 0; }
  .cg-service-row { grid-template-columns: 36px 1fr 1fr 28px; gap: 16px; }
  .cg-map-layout { grid-template-columns: 1.2fr 1fr; }
  .cg-process { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  :root { --gutter: 6vw; }
  .site-header,.site-header.solid,.site-header.is-scrolled { height: 74px; }
  .site-logo { width: 146px; }
  .mobile-menu { top: 74px; }
  .mobile-service-links a,.mobile-languages { font-size: 14px; }
  .cg-hero { padding-top: 74px; }
  .cg-hero-grid { grid-template-columns: 1fr; padding-top: 28px; padding-bottom: 44px; }
  .cg-hero-title { max-width: 720px; font-size: clamp(62px,10.5vw,90px); }
  .cg-hero-copy { max-width: 600px; }
  .cg-hero-brand { aspect-ratio: 2.3; max-width: 100%; margin-top: 22px; transform: none; }
  .cg-brand-logo { width: 45%; }
  .cg-brand-caption { flex-direction: row; font-size: 14px; left: 22px; bottom: 15px; }
  .cg-hero-bottom { flex-wrap: wrap; }
  .cg-section-head { align-items: flex-start; flex-direction: column; gap: 24px; }
  .cg-section-head p:not(.eyebrow) { max-width: 620px; }
  .cg-map-layout { grid-template-columns: 1fr; }
  .cg-map { min-height: 360px; }
  .cg-map-list { padding: 8px 26px; }
  .cg-map-item { padding: 22px 0; }
  .cg-map-item.active::before { left: -27px; }
  .cg-map-section.is-full .cg-map { min-height: 440px; }
  .cg-map-item strong { font-size: 25px; }
  .cg-service-row { grid-template-columns: 30px 1fr 25px; gap: 18px; }
  .cg-service-row p { grid-column: 2; }
  .cg-service-row .arrow,.cg-service-row > span:last-child { grid-column: 3; grid-row: 1 / span 2; }
  .cg-ticker { justify-content: flex-start; gap: 13px 24px; }
  .cg-ticker span { gap: 24px; }
  .page-hero { min-height: 500px; }
}
@media (max-width: 560px) {
  .cg-hero-top { padding-top: 26px; gap: 12px; flex-direction: column; align-items: flex-start; }
  .cg-hero-top .eyebrow { font-size: 14px; letter-spacing: .05em; }
  .cg-hero-top > span { font-size: 14px; }
  .cg-hero-title { font-size: clamp(49px,12.2vw,68px); line-height: 1.06; overflow-wrap: normal; }
  .cg-hero-title em { font-size: .94em; }
  .cg-hero-grid { padding-top: 16px; gap: 20px; }
  .cg-hero-copy { font-size: 16px; line-height: 1.75; }
  .cg-hero .hero-actions { gap: 22px; }
  .cg-hero-brand { aspect-ratio: 1.75; }
  .cg-brand-logo { width: 62%; }
  .cg-brand-caption { font-size: 14px; letter-spacing: 0; left: 16px; right: 16px; }
  .cg-hero-bottom { flex-direction: column; align-items: flex-start; gap: 10px; font-size: 14px; }
  .cg-ticker { padding-top: 18px; padding-bottom: 18px; font-size: 17px; gap: 10px 18px; }
  .cg-ticker span { gap: 18px; }
  .cg-ticker span::after { font-size: 19px; }
  .cg-section-head { margin-bottom: 35px; }
  .cg-project-grid { grid-template-columns: 1fr; gap: 42px; }
  .cg-project-card:last-child { display: block; grid-column: auto; }
  .cg-project-card:last-child .cg-project-meta { padding-top: 25px; }
  .cg-flip-inner { min-height: 285px; aspect-ratio: 1.16; }
  .cg-project-meta h3 { font-size: 32px; }
  .cg-service-row { padding: 26px 0; gap: 12px; }
  .cg-service-row:hover { padding-left: 0; padding-right: 0; }
  .cg-service-row h3 { font-size: 28px; }
  .cg-process { grid-template-columns: 1fr; gap: 0; }
  .cg-process > * { border-bottom: 1px solid var(--line); padding-bottom: 18px; }
  .cg-process h3 { margin-top: 24px; }
  .cg-map { min-height: 330px; }
  .cg-map-section.is-full .cg-map { min-height: 390px; }
  .cg-map-list { padding-left: 20px; padding-right: 20px; }
  .cg-map-item { grid-template-columns: 26px 1fr; gap: 10px; }
  .cg-map-item.active::before { left: -21px; }
  .cg-map-item strong { font-size: 23px; }
  .page-hero h1,.case-hero h1 { font-size: clamp(44px,11vw,60px); }
  .page-hero { min-height: 500px; }
  .eyebrow { font-size: 14px; letter-spacing: .06em; }
  .breadcrumb { top: 106px; font-size: 14px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { padding-bottom: 54px; }
  .button { width: auto; max-width: 100%; }
  .cta-band { gap: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation: none!important; transition: none!important; }
  html.motion-ready .cg-reveal,html.motion-ready .cg-reveal:not(.is-visible),html.motion-ready .cg-reveal[data-motion]:not(.is-visible),.reveal { opacity: 1; transform: none; clip-path: none; }
  .cg-hero-brand { transform: none; }
  .cg-flip-inner,.cg-flip-button.is-flipped .cg-flip-inner,.cg-project-card.is-flipped .cg-flip-inner,.cg-flip-button[aria-expanded="true"] .cg-flip-inner { transform: none; }
  .cg-flip-back { transform: none; display: none; }
  .cg-flip-button.is-flipped .cg-flip-front,.cg-project-card.is-flipped .cg-flip-front,.cg-flip-button[aria-expanded="true"] .cg-flip-front { display: none; }
  .cg-flip-button.is-flipped .cg-flip-back,.cg-project-card.is-flipped .cg-flip-back,.cg-flip-button[aria-expanded="true"] .cg-flip-back { display: flex; }
}

/* Components reconciled with the published page templates. */
.cg-hero-title em { max-width: 590px; margin-top: 16px; font-size: .49em; line-height: 1.24; letter-spacing: -.025em; }
.cg-brand-grid { display: grid; grid-template-columns: 1fr 1fr; }
.cg-brand-grid i { display: block; background-color: #202020; background-image: linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px); background-size: 42px 42px; border: 1px solid #ffffff09; }
.cg-brand-grid i:nth-child(2),.cg-brand-grid i:nth-child(3) { background-color: #191919; }
.cg-brand-caption { bottom: 44px; font-size: 14px; }
.cg-brand-coordinate { position: absolute; z-index: 2; left: 24px; bottom: 22px; color: #c0b8ae; font-size: 14px; letter-spacing: .05em; }
.cg-ticker { display: block; overflow: hidden; padding-left: 0; padding-right: 0; }
.cg-ticker > div { display: flex; align-items: center; width: max-content; gap: 42px; padding-left: var(--gutter); }
.cg-ticker span { flex: 0 0 auto; gap: 42px; }
.cg-ticker span::after { display: none; }
.cg-ticker b { font-size: 22px; font-weight: 400; color: #ffffffad; }
.cg-service-row { grid-template-columns: 55px minmax(0,1fr) 40px; }
.cg-service-row > div { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; }
.cg-service-row .arrow { grid-column: 3; grid-row: 1; }
.cg-flip-front > .cg-project-number { inset: 20px auto auto 24px; color: #d4cec6; font-size: 14px; }
.cg-flip-back .eyebrow { color: #fff; margin-bottom: 20px; font-size: 14px; letter-spacing: .03em; }
.cg-flip-back .eyebrow::before { background: #ffffffa6; }
.cg-flip-description { display: block; font-size: 18px; line-height: 1.65; }
.cg-flip-back .cg-flip-hint { font-size: 14px; margin-top: 24px; }
.cg-project-meta h3 a { font: inherit; }
.dark .cg-process { border-color: #ffffff26; }
.dark .cg-process p { color: #c4bfb8; }
.dark .cg-process .number { color: #f2787c; }
.dark .cg-section-head .eyebrow { color: #c4bfb8; }
.cg-map-frame { position: relative; min-width: 0; display: flex; flex-direction: column; }
.cg-map-frame > .cg-map { flex: 1; width: 100%; }
.cg-map-reset { display: flex; justify-content: space-between; gap: 16px; border: 0; border-top: 1px solid var(--line); padding: 14px 20px; min-height: 52px; background: #1f1f1f; color: #fff; cursor: pointer; font-size: 14px; text-align: left; }
.cg-map-reset:hover { background: #a81e22; }
.cg-map-status,.cg-tile-error { position: absolute; z-index: 450; left: 20px; right: 20px; bottom: 20px; margin: 0; padding: 16px; background: #fff; color: #111; box-shadow: 0 4px 18px #0002; font-size: 14px; line-height: 1.65; }
.cg-map-item { grid-template-columns: 30px minmax(0,1fr) 20px; border-bottom: 0; }
.cg-map-item > span:last-child { font-size: 20px; line-height: 1.4; }
.cg-map-entry { border-bottom: 1px solid var(--line); }
.cg-map-entry:last-child { border-bottom: 0; }
.cg-map-detail { padding: 0 0 26px 46px; }
.cg-map-detail p { color: var(--muted); font-size: 15px; line-height: 1.7; }
.cg-map-pin { background: transparent; border: 0; }
.cg-map-pin::before { content: ""; position: absolute; left: 17px; bottom: 2px; width: 12px; height: 12px; transform: rotate(45deg); background: var(--orange); }
.cg-map-pin > span { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border: 2px solid #fff; border-radius: 50%; color: #fff; background: var(--orange); font: 600 14px var(--display); box-shadow: 0 3px 10px #0004; }
.cg-map-pin.selected > span { background: #111; box-shadow: 0 0 0 4px #c7252a33,0 3px 10px #0004; }
.cg-map-pin.selected::before { background: #111; }
.cg-popup p { margin: 9px 0!important; font-size: 14px; line-height: 1.55; }
.cg-popup a { display: block; color: #a81e22!important; font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; padding-top: 8px; }
.cg-faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px,6vw,90px); align-items: start; }
.cg-faq-layout .cg-section-head { margin: 0; }
.cg-faq { border-top: 1px solid #11111138; }
.cg-faq details { border-bottom: 1px solid #11111138; }
.cg-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; list-style: none; font-family: var(--heading); font-size: 25px; line-height: 1.35; padding: 25px 0; cursor: pointer; }
.cg-faq summary::-webkit-details-marker { display: none; }
.cg-faq summary > span { font-family: var(--display); color: var(--orange); font-weight: 400; font-size: 30px; transition: transform .25s; }
.cg-faq details[open] summary > span { transform: rotate(45deg); }
.cg-faq details > p { padding-right: 32px; margin: 0 0 26px; max-width: 650px; font-size: 16px; line-height: 1.8; color: var(--muted); }
.cg-detail-logo { min-height: 330px; aspect-ratio: 1.8; margin-bottom: 42px; display: grid; place-items: center; background-color: #202020; background-image: linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px); background-size: 42px 42px; }
.cg-detail-logo img { width: 70%; height: auto; filter: brightness(0) invert(1); }
.cg-case-fact { font-size: 16px!important; padding: 14px 0; margin: 0; border-bottom: 1px solid var(--line); }
.case-aside .cg-case-fact + h3 { margin-top: 30px; font-size: 29px; }
.case-aside .button + .text-link { margin-top: 22px; }
.page-hero-inner > .text-link { margin-top: 22px; }
.page-hero .eyebrow,.case-hero .eyebrow { color: #c4bfb8; }
.cg-section-head > div > .lede + .text-link { margin-top: 20px; }
.dark .cg-process > * { border-color: #ffffff26; }
.cg-scroll-progress { position: fixed; z-index: 90; left: 0; top: 0; right: 0; height: 3px; background: var(--orange); transform: scaleX(0); transform-origin: left; pointer-events: none; }
@keyframes cg-panel-build { from { opacity: 0; transform: translate(var(--build-x,0),var(--build-y,0)) rotate(var(--build-r,0deg)); } to { opacity: 1; transform: none; } }
@keyframes cg-ticker-intro { from { transform: translateX(0); } to { transform: translateX(-110px); } }
@media (prefers-reduced-motion: no-preference) {
  .cg-brand-grid i { animation: cg-panel-build 1.1s cubic-bezier(.2,.7,.2,1) both; }
  .cg-brand-grid i:nth-child(1) { --build-x: -50px; --build-y: -30px; --build-r: -4deg; animation-delay: .15s; }
  .cg-brand-grid i:nth-child(2) { --build-x: 50px; --build-y: -30px; --build-r: 4deg; animation-delay: .3s; }
  .cg-brand-grid i:nth-child(3) { --build-x: -50px; --build-y: 30px; --build-r: -4deg; animation-delay: .45s; }
  .cg-brand-grid i:nth-child(4) { --build-x: 50px; --build-y: 30px; --build-r: 4deg; animation-delay: .6s; }
  .cg-brand-logo { animation: cg-enter .8s .7s both; }
  .cg-ticker > div { animation: cg-ticker-intro 4s ease-out both; }
}
@media (max-width: 960px) {
  .cg-service-row { grid-template-columns: 36px minmax(0,1fr) 28px; }
  .cg-service-row > div { gap: 22px; }
  .cg-faq-layout { grid-template-columns: 1fr; }
  .cg-project-card:last-child:nth-child(2) { grid-column: auto; display: block; }
  .cg-project-card:last-child:nth-child(2) .cg-project-meta { padding-top: 25px; }
}
@media (max-width: 820px) {
  .cg-hero-title em { max-width: 570px; font-size: .47em; }
  .cg-brand-caption { bottom: 38px; }
  .cg-brand-coordinate { left: 22px; bottom: 15px; }
  .cg-service-row > div { display: block; }
  .cg-service-row p { margin-top: 12px; }
  .cg-service-row .arrow,.cg-service-row > span:last-child { grid-row: 1; }
  .cg-map-frame > .cg-map { min-height: 360px; flex: none; }
  .cg-map-item { grid-template-columns: 30px minmax(0,1fr) 20px; }
}
@media (max-width: 560px) {
  .cg-hero-title em { max-width: 370px; font-size: .46em; line-height: 1.28; margin-top: 18px; }
  .cg-brand-caption { bottom: 38px; left: 16px; }
  .cg-brand-coordinate { left: 16px; bottom: 14px; font-size: 14px; }
  .cg-ticker > div,.cg-ticker span { gap: 24px; }
  .cg-service-row { grid-template-columns: 25px minmax(0,1fr) 25px; }
  .cg-map-item { grid-template-columns: 26px minmax(0,1fr) 18px; }
  .cg-map-detail { padding-left: 36px; }
  .cg-map-frame > .cg-map { min-height: 330px; }
  .cg-flip-description { font-size: 17px; }
  .cg-faq summary { font-size: 24px; }
  .cg-detail-logo { min-height: 230px; }
  .cg-project-card:last-child:nth-child(2) { grid-column: auto; }
}
