/* Shared editorial rhythm; brand palettes and approved copy remain site-specific. */
.editorial-visual { width: min(1320px,calc(100% - 112px)); margin: 0 auto 88px; }
.editorial-visual img { display:block; width:100%; height:auto; aspect-ratio: 16 / 8; object-fit:cover; }
.editorial-visual figcaption { display:flex; justify-content:space-between; gap:20px; padding:16px 0; border-bottom:1px solid #d0d7da; color:#667275; font:12px/1.6 Arial,"Microsoft YaHei",sans-serif; letter-spacing:0; }
.design-refined *, .site-group *, .site-media *, .site-digital * { letter-spacing:0; }
.design-refined h2, .design-refined h3, .section-head h2 { text-wrap:balance; }
.design-refined a:focus-visible { outline:3px solid #f36a21; outline-offset:5px; }
.design-refined .rg-header, .design-refined .site-header, .design-refined .dg-header { backdrop-filter:blur(18px); }

/* Group: broad imagery and alternating unframed editorial bands. */
.design-group { --warm-white:#f5f7f8; }
.design-group .rg-hero { min-height: min(850px,90svh); }
.design-group .rg-hero-word { font-size:120px; line-height:1; }
.design-group .rg-hero-copy h1 { font-size:34px; line-height:1.5; }
.design-group #company-introduction { display:grid; grid-template-columns:1fr 2fr; gap:64px; padding:88px max(56px,calc((100% - 1320px)/2)); background:#fff; }
.design-group #company-introduction::before { display:none; }
.design-group #company-introduction h2 { font-size:44px; margin:0; border-top:3px solid #ef702e; padding-top:24px; }
.design-group #company-introduction > p { font-size:17px; line-height:2; margin:0; color:#43515a; }
.design-group .editorial-visual { margin-top:0; padding-top:0; }
.design-group .rg-section-head { padding:72px max(56px,calc((100% - 1320px)/2)) 48px; grid-template-columns:220px 1fr; }
.design-group .rg-section-head h2 { font-size:44px; line-height:1.3; }
.design-group .rg-capability { display:grid; grid-template-columns:1fr 1fr; min-height:460px; background:#fff; color:#17252d; border-top:1px solid #dde3e5; overflow:hidden; }
.design-group .rg-capability::before,.design-group .rg-capability::after { display:none; }
.design-group .rg-capability .rg-capability-media { position:relative; inset:auto; width:100%; height:100%; min-height:460px; object-fit:cover; opacity:1; transform:none; filter:none; mask-image:none; order:2; }
.design-group .rg-capability .rg-capability-inner { width:100%; margin:0; padding:64px 64px; display:flex; align-items:center; order:1; }
.design-group .rg-capability.is-right .rg-capability-media { order:1; }
.design-group .rg-capability.is-right .rg-capability-inner { order:2; background:#edf3f5; }
.design-group .rg-capability .rg-capability-copy { width:100%; max-width:560px; margin:0; }
.design-group .rg-capability.is-right .rg-capability-copy { width:100%; max-width:560px; margin:0; }
.design-group .rg-capability h3 { font-size:38px; line-height:1.3; color:#17252d; }
.design-group .rg-capability p { font-size:17px; line-height:1.95; color:#43515a; }
.design-group .rg-capability-mark { font-size:12px; color:#b34316; }
.design-group .rg-capability-link { color:#17252d; }
.design-group .rg-framework { padding-top:96px; padding-bottom:96px; }
.design-group .rg-framework h2 { font-size:42px; line-height:1.3; }
.design-group .rg-framework-head { grid-template-columns:1.2fr 1fr; }
.design-group .rg-framework-head h2 { font-size:36px; max-width:600px; }
.design-group .rg-network::after,.design-group .rg-network::before { display:none; }
.design-group .rg-network { min-height:0; padding-top:96px; padding-bottom:96px; background:#162b34; }
.design-group .rg-network h2 { font-size:44px; line-height:1.25; }
.design-group .rg-contact h2 { font-size:52px; }

/* Media: larger photography, clearer orange accents and compact product imagery. */
.design-media { --warm:#f7f8f8; }
.design-media .hero { min-height:92svh; padding-bottom:100px; }
.design-media .hero-content { padding-top:156px; }
.design-media .hero h1 { font-size:100px; line-height:1.05; }
.design-media .hero-intro { max-width:660px; font-size:17px; }
.design-media .position { padding-top:88px; padding-bottom:72px; min-height:0; }
.design-media .position-copy h2 { font-size:48px; line-height:1.3; }
.design-media .position-copy p { font-size:16px; line-height:2; }
.design-media .services-head { min-height:360px; padding-top:76px; padding-bottom:76px; }
.design-media .services-head h2 { font-size:48px; line-height:1.25; }
.design-media .service-feature { min-height:420px; padding-top:70px; padding-bottom:70px; }
.design-media .service-copy h3 { font-size:38px; }
.design-media .service-no { font-size:28px; }
.design-media .product-grid article { overflow:hidden; padding:28px; }
.design-media .product-grid .product-visual { width:calc(100% + 56px); max-width:none; height:180px; display:block; margin:-28px -28px 24px; object-fit:cover; }
.design-media .product-grid article > p:first-of-type { margin-top:20px; }
.design-media .product-grid h3 { font-size:23px; }
.design-media .products-heading h2,.design-media .method-heading h2,.design-media .cases-heading h2 { font-size:44px; line-height:1.3; }
.design-media .products-heading { grid-template-columns:140px 1fr 300px; gap:32px; }
.design-media .method-track div { border-radius:0; border-width:0 0 2px; background:none; }
.design-media .hero-signal,.design-media .service-orbit,.design-media .media-radar { display:none; }
.design-media .service-photo { position:absolute; right:0; top:0; width:46%; height:100%; object-fit:cover; }
.design-media .service-feature:has(.service-photo) .service-copy { position:relative; z-index:2; width:100%; max-width:420px; }
.design-media .service-photo-caption { position:absolute; bottom:12px; right:16px; color:#fff; background:#17252dcc; padding:4px 8px; font-size:10px; z-index:3; }
.design-media .brand-wall li { font-size:16px; min-height:96px; }

/* Digital: white product photography, readable information and restrained green. */
.design-digital .dg-hero { min-height:90svh; }
.design-digital .dg-hero h1 { font-size:88px; line-height:1.1; }
.design-digital .dg-hero-lead { font-size:17px; line-height:1.9; }
.design-digital .dg-thesis { padding-top:88px; padding-bottom:72px; background:#fff; }
.design-digital .dg-thesis { grid-template-columns:1.1fr 1fr; align-items:start; column-gap:64px; }
.design-digital .dg-thesis > .dg-kicker { grid-column:1 / -1; }
.design-digital .dg-thesis h2 { grid-column:1; grid-row:2; }
.design-digital .dg-thesis > p:last-child { grid-column:2; grid-row:2; }
.design-digital .dg-thesis h2 { font-size:38px; }
.design-digital .editorial-visual { margin-bottom:88px; }
.design-digital .dg-capability { min-height:460px; }
.design-digital .dg-capability-copy { padding:72px 56px; }
.design-digital .dg-capability h2 { font-size:38px; }
.design-digital .dg-capability-visual { min-height:400px; }
.design-digital .dg-capability-visual img { opacity:1; }
.design-digital .dg-products-head h2,.design-digital .dg-system-head h2,.design-digital .dg-cases h2 { font-size:44px; }
.design-digital .dg-contact h2,.design-digital .dg-organic h2 { font-size:44px; line-height:1.3; text-wrap:balance; }
.design-digital .dg-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid #b9cbca; }
.design-digital .dg-product-grid article { min-height:220px; padding:32px; border-bottom:1px solid #b9cbca; }
.design-digital .dg-product-grid article h3 { font-size:25px; }

/* Inner pages retain CMS content and gain matching imagery and reading rhythm. */
.site-group .editorial-visual,.site-media .editorial-visual,.site-digital .editorial-visual { margin-top:64px; margin-bottom:32px; }
.site-group .inner-hero::before,.site-media .inner-hero::before,.site-digital .inner-hero::before { display:none; }
.inner-hero .hero-content h1 { font-size:62px; line-height:1.2; }
.inner-hero .hero-content > div { max-width:850px; }
.section-head h2 { font-size:38px; line-height:1.3; }
.inner-section { padding-top:76px; padding-bottom:76px; }
.copy-layout > div { max-width:940px; }
.copy-layout p { font-size:16px; line-height:2.1; }
.copy-layout aside { background:transparent; border-left:3px solid var(--accent); padding:12px 24px; }
.card-grid article { border-radius:0; box-shadow:none; }

@media(min-width:1600px) {
  .design-group .rg-hero { min-height:840px; }
  .design-media .hero { min-height:840px; }
  .design-digital .dg-hero { min-height:840px; }
}
@media(max-width:1100px) {
  .editorial-visual { width:calc(100% - 64px); }
  .design-group #company-introduction { gap:36px; padding-left:32px; padding-right:32px; }
  .design-group .rg-capability .rg-capability-inner { padding:48px 32px; }
  .design-media .products-heading { grid-template-columns:100px 1fr; }
  .design-media .products-heading > p { grid-column:2; }
  .design-media .hero h1 { font-size:80px; }
  .design-digital .dg-hero h1 { font-size:74px; }
}
@media(max-width:720px) {
  .editorial-visual { width:calc(100% - 40px); margin-bottom:48px; }
  .editorial-visual img { aspect-ratio:4 / 3; }
  .editorial-visual figcaption { font-size:10px; gap:12px; padding:12px 0; }
  .design-group .rg-hero { min-height:680px; }
  .design-group .rg-hero-word { font-size:58px; }
  .design-group .rg-hero-copy h1 { font-size:23px; }
  .design-group #company-introduction { display:block; padding:56px 24px 40px; }
  .design-group #company-introduction h2 { font-size:32px; margin-bottom:26px; }
  .design-group #company-introduction > p { font-size:15px; line-height:1.95; }
  .design-group .rg-section-head { display:block; padding:48px 24px 32px; }
  .design-group .rg-section-head h2 { font-size:32px; }
  .design-group .rg-capability { display:flex; flex-direction:column; min-height:0; }
  .design-group .rg-capability .rg-capability-media { height:250px; min-height:250px; order:1; }
  .design-group .rg-capability .rg-capability-inner { order:2; padding:40px 24px 48px; }
  .design-group .rg-capability h3 { font-size:30px; }
  .design-group .rg-capability p { font-size:15px; }
  .design-group .rg-framework,.design-group .rg-network { padding:60px 24px; }
  .design-group .rg-framework h2,.design-group .rg-network h2,.design-group .rg-contact h2 { font-size:32px; }
  .design-media .hero { min-height:740px; padding-bottom:100px; }
  .design-media .hero-content { padding-top:140px; }
  .design-media .hero h1 { font-size:64px; }
  .design-media .hero-intro { font-size:15px; }
  .design-media .position { padding:60px 24px 40px; }
  .design-media .position-copy h2 { font-size:34px; }
  .design-media .position-copy p { font-size:15px; }
  .design-media .services-head { min-height:0; padding:56px 24px; }
  .design-media .services-head h2 { font-size:34px; }
  .design-media .service-feature { min-height:360px; padding:48px 24px; }
  .design-media .service-feature:has(.service-photo) { padding-top:300px; }
  .design-media .service-photo { width:100%; height:250px; }
  .design-media .service-photo-caption { top:218px; bottom:auto; }
  .design-media .service-no { margin-bottom:30px; }
  .design-media .service-copy h3 { font-size:32px; }
  .design-media .service-growth { padding-bottom:230px; }
  .design-media .products-heading { display:block; }
  .design-media .products-heading h2,.design-media .method-heading h2,.design-media .cases-heading h2 { font-size:34px; }
  .design-media .brand-wall li { font-size:14px; }
  .design-digital .dg-hero { min-height:700px; }
  .design-digital .dg-hero h1 { font-size:56px; }
  .design-digital .dg-hero-lead { font-size:15px; }
  .design-digital .dg-thesis { padding:56px 24px 40px; gap:24px; }
  .design-digital .dg-thesis { display:block; }
  .design-digital .dg-thesis > .dg-kicker { margin-bottom:24px; }
  .design-digital .dg-thesis > p:last-child { margin-top:24px; }
  .design-digital .dg-thesis h2,.design-digital .dg-capability h2 { font-size:30px; }
  .design-digital .dg-capability-copy { padding:56px 24px; }
  .design-digital .dg-capability-visual { min-height:280px; }
  .design-digital .dg-products-head h2,.design-digital .dg-system-head h2,.design-digital .dg-cases h2 { font-size:34px; }
  .design-digital .dg-contact h2,.design-digital .dg-organic h2 { font-size:34px; }
  .design-digital .dg-product-grid { grid-template-columns:1fr; }
  .design-digital .dg-product-grid article { min-height:0; padding:30px 0; }
  .site-group .editorial-visual,.site-media .editorial-visual,.site-digital .editorial-visual { margin-top:32px; }
  .inner-hero .hero-content h1 { font-size:36px; }
  .section-head h2 { font-size:30px; }
  .copy-layout p { font-size:15px; line-height:2; }
  .inner-section { padding-top:48px; padding-bottom:48px; }
}
.brand-strategy { padding:48px max(32px,calc((100% - 1240px)/2)) 64px; background:#f0f3f2; color:#152b36; letter-spacing:0; }
.strategy-topline { display:flex; justify-content:space-between; gap:24px; font:12px Arial,sans-serif; padding-bottom:24px; border-bottom:1px solid #b7c2c6; }
.strategy-statement { padding:48px 0 56px; }
.strategy-statement > p { color:#66757b; font-size:16px; margin:0 0 22px; }
.brand-strategy .strategy-statement h2 { font-size:60px; line-height:1.35; margin:0; font-weight:700; letter-spacing:0; }
.strategy-statement em { font-style:normal; color:#d34a16; }
.strategy-path { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid #b7c2c6; }
.strategy-path > div { padding:28px 20px 0 0; }
.strategy-path span { font:11px Arial,sans-serif; color:#6b7c83; }
.strategy-path h3 { font-size:26px; margin:16px 0 12px; }
.strategy-path p { font-size:14px; color:#53666f; margin:0; }
.client-showcase { padding:52px max(32px,calc((100% - 1240px)/2)); background:#fff; color:#142b36; letter-spacing:0; }
.client-showcase-heading { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:24px; }
.client-showcase-heading > div > p { font:12px Arial,sans-serif; color:#bc471c; margin:0 0 16px; }
.client-showcase-heading h2 { font-size:30px; line-height:1.3; margin:0; letter-spacing:0; }
.client-showcase-heading > p { font-size:14px; line-height:1.9; color:#586b74; margin:0; }
.client-showcase-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); grid-auto-rows:88px; list-style:none; padding:0; margin:0; border-top:1px solid #ccd5d9; border-left:1px solid #ccd5d9; }
.client-showcase-grid li { min-height:0; padding:12px 10px; border-right:1px solid #ccd5d9; border-bottom:1px solid #ccd5d9; display:flex; flex-direction:column; justify-content:space-between; gap:8px; transition:background .2s; }
.client-showcase-grid li:hover { background:#f0f4f4; }
.client-showcase-grid span { font-size:10px; color:#687a83; }
.client-showcase-grid strong { font-size:14px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.group-home-link { display:inline-flex; gap:8px; align-items:center; white-space:nowrap; font-size:13px; color:inherit; padding:10px 0 10px 20px; border-left:1px solid currentColor; opacity:.9; flex-shrink:0; }
.group-home-link:hover { opacity:1; text-decoration:underline; text-underline-offset:5px; }
.group-home-link:focus-visible { outline:2px solid #f36a21; outline-offset:4px; }
.inner-header:has(.group-home-link) { grid-template-columns:220px 1fr auto auto auto; gap:20px; }
.design-media .site-header { gap:20px; }
.design-media .site-header .brand { min-width:240px; }
.design-media .site-header .brand img { width:160px; }
.design-media .desktop-nav { gap:20px; }
.design-digital .dg-header { gap:22px; }
@media(max-width:1100px) {
  .brand-strategy .strategy-statement h2 { font-size:48px; }
  .client-showcase-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .inner-header:has(.group-home-link) { grid-template-columns:1fr auto auto; }
  .inner-header:has(.group-home-link) .inner-nav,.inner-header:has(.group-home-link) .header-contact { display:none; }
  .inner-header:has(.group-home-link) .inner-menu { display:grid; place-content:center; gap:6px; width:42px; height:42px; border:0; color:white; background:transparent; }
  .inner-header:has(.group-home-link) .inner-menu span { width:23px; height:1px; background:currentColor; }
  .site-media .mobile-nav,.site-digital .mobile-nav { position:fixed; z-index:45; inset:80px 0 auto; display:grid; max-height:0; overflow:hidden; padding:0 20px; background:#05141ffa; color:#fff; }
  .site-media .mobile-nav.is-open,.site-digital .mobile-nav.is-open { max-height:560px; padding:18px 20px 26px; }
  .site-media .mobile-nav a,.site-digital .mobile-nav a { padding:13px 0; border-bottom:1px solid #ffffff26; font-size:14px; }
  .design-media .site-header .desktop-nav,.design-media .site-header .header-links { display:none; }
  .design-media .site-header > .group-home-link { margin-left:auto; }
  .design-media .site-header .menu-button { display:grid; width:42px; height:42px; padding:12px; background:transparent; border:1px solid #ffffff66; align-content:center; gap:7px; }
  .design-media .menu-button i { height:1px; background:#fff; }
  .design-media .mobile-nav { display:grid; position:fixed; z-index:70; top:80px; left:0; right:0; padding:20px; background:#081e2b; transform:translateY(-150%); }
  .design-media .mobile-nav.is-open { transform:none; }
  .design-media .mobile-nav a { padding:12px 4px; border-bottom:1px solid #ffffff26; }
}
@media(max-width:720px) {
  .brand-strategy { padding:32px 24px 40px; }
  .strategy-topline { font-size:10px; align-items:start; }
  .strategy-topline span:last-child { max-width:145px; text-align:right; line-height:1.6; }
  .strategy-statement { padding:38px 0; }
  .brand-strategy .strategy-statement h2 { font-size:32px; }
  .strategy-path { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 12px; }
  .strategy-path > div { padding:22px 0 0; }
  .strategy-path h3 { font-size:23px; }
  .strategy-path p { font-size:12px; }
  .client-showcase { padding:36px 20px; }
  .client-showcase-heading { display:block; margin-bottom:28px; }
  .client-showcase-heading h2 { font-size:28px; }
  .client-showcase-heading > p { margin-top:20px; }
  .client-showcase-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .client-showcase-grid li { min-height:0; padding:12px; }
  .client-showcase-grid strong { font-size:14px; }
  .group-home-link { font-size:12px; padding-left:12px; gap:4px; }
  .design-media .site-header,.design-digital .dg-header { gap:12px; }
  .design-media .site-header .brand { min-width:0; }
  .design-media .site-header .brand img { display:none; }
  .design-media .site-header .brand span { display:grid; border:0; padding:0; }
  .design-media .site-header .menu-button { margin-left:0; }
  .design-media .mobile-nav { top:64px; }
  .design-digital .dg-header .group-home-link { margin-left:auto; }
  .design-digital .dg-header .menu-button { margin-left:0; }
  .inner-header:has(.group-home-link) { padding-left:18px; padding-right:18px; gap:12px; }
  .inner-header:has(.group-home-link) .inner-brand { min-width:0; }
  .inner-header:has(.group-home-link) .inner-brand small { font-size:8px; }
}
