@charset "UTF-8";
:root {
  --ink:#102b32;
  --muted:#607074;
  --paper:#f7f8f4;
  --line:#dce3de;
  --dark:#10282f;
  --teal:#98e4c8;
  --accent:#207f68;
  --white:#fff;
  --radius:12px;
  font-family:Inter,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;
  color:var(--ink);
  background:var(--paper);
  font-synthesis:none
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}
body {
  margin:0;
  font-size:16px;
  line-height:1.75
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button,a,input,select,summary {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
img,video {
  display:block;
  max-width:100%;
  height:auto
}
figure {
  margin:0
}
h1,h2,h3,p {
  margin-top:0
}
h1,h2,h3 {
  line-height:1.35;
  font-weight:600;
  letter-spacing:-.035em
}
h1 {
  font-size:clamp(38px,4.4vw,66px);
  margin-bottom:26px
}
h2 {
  font-size:clamp(28px,2.8vw,42px);
  margin-bottom:22px
}
h3 {
  font-size:24px;
  margin-bottom:12px
}
p {
  margin-bottom:20px
}
a,button,summary {
  touch-action:manipulation
}
:focus-visible {
  outline:3px solid #df9852;
  outline-offset:5px
}
::selection {
  background:#b6eed8;
  color:#102b32
}
.container {
  width:min(1280px,calc(100% - 96px));
  margin-inline:auto
}
.section {
  padding:98px 0
}
.section-muted {
  background:#edf0eb
}
.dark-section {
  background:var(--dark);
  color:#f2f6ef
}
.dark-section p {
  color:#b7c8c8
}
.eyebrow {
  font-size:12px;
  letter-spacing:.13em;
  font-weight:600;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:23px
}
.dark-section .eyebrow {
  color:var(--teal)
}
.status-dot {
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--teal);
  margin-right:10px;
  box-shadow:0 0 0 5px #98e4c812
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:32px;
  padding:13px 24px;
  background:var(--teal);
  color:var(--ink);
  border:1px solid transparent;
  border-radius:8px;
  font-weight:600;
  font-size:15px;
  min-height:48px;
  transition:background .2s,transform .2s
}
.button:hover {
  background:#b8f4db;
  transform:translateY(-2px)
}
.button-dark {
  background:var(--ink);
  color:white
}
.button-dark:hover {
  background:#285057
}
.button-small {
  padding:10px 17px;
  min-height:43px;
  gap:19px
}
.text-link {
  display:inline-block;
  font-size:15px;
  font-weight:600;
  border-bottom:1px solid currentColor;
  padding-bottom:4px
}
.text-link:hover {
  color:var(--accent)
}
.dark-section .text-link:hover {
  color:var(--teal)
}
.actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:28px
}
.skip-link {
  position:fixed;
  left:20px;
  top:-80px;
  z-index:99;
  padding:12px;
  background:white;
  color:var(--ink)
}
.skip-link:focus {
  top:15px
}
.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:#10282ff5;
  border-bottom:1px solid #ffffff14;
  color:#f4f7f2;
  backdrop-filter:blur(16px)
}
.header-inner {
  height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:12px;
  flex-shrink:0
}
.brand-mark {
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--teal);
  color:var(--dark);
  font-size:39px;
  letter-spacing:-6px;
  width:43px;
  height:45px;
  font-family:Georgia,serif;
  border-radius:11px 11px 11px 3px;
  padding-right:6px;
  line-height:1
}
.brand-mark span {
  font-size:23px;
  align-self:flex-end;
  margin-bottom:8px
}
.brand-logo {
  width:46px;
  height:46px;
  object-fit:contain
}
.brand-name {
  display:block;
  font-size:22px;
  font-weight:600;
  letter-spacing:.035em;
  line-height:1.3
}
.brand-label {
  font-size:9px;
  display:block;
  letter-spacing:.15em;
  margin-top:5px;
  color:#adc0bf
}
.site-nav {
  display:flex;
  align-items:center;
  gap:30px;
  font-size:14px
}
.site-nav a[aria-current=page]:not(.button) {
  color:var(--teal)
}
.site-nav>a:not(.button):hover {
  color:var(--teal)
}
.nav-language {
  font-size:12px;
  border-left:1px solid #ffffff30;
  padding-left:25px
}
.nav-language-disabled {
  opacity:.45
}
.menu-toggle {
  display:none;
  background:none;
  color:inherit;
  border:1px solid #ffffff40;
  border-radius:4px;
  padding:7px 10px
}
.hero {
  position:relative;
  overflow:hidden
}
.hero-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  padding-top:88px;
  padding-bottom:70px;
  min-height:650px;
  align-items:center
}
.hero-copy h1 {
  max-width:640px;
  font-size:clamp(36px,3.55vw,54px);
  line-height:1.4;
  letter-spacing:-.045em
}
.hero-lead {
  font-size:16px;
  line-height:1.95;
  max-width:560px;
  margin-bottom:30px
}
.hero-disciplines {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  font-size:9px;
  letter-spacing:.17em;
  color:#a4bcbb;
  margin-top:52px
}
.hero-bottom {
  display:flex;
  justify-content:space-between;
  padding-block:22px;
  border-top:1px solid #ffffff24;
  font-size:11px;
  letter-spacing:.08em;
  color:#b7c8c8
}
.hero-bottom a:hover {
  color:white
}
.hero-stage {
  position:relative;
  height:455px;
  isolation:isolate;
  min-width:0
}
.stage-orbit {
  position:absolute;
  width:410px;
  height:410px;
  border:1px solid #98e4c82b;
  border-radius:50%;
  top:-5px;
  right:0;
  z-index:-1;
  box-shadow:0 0 110px #98e4c80c,inset 0 0 120px #98e4c806
}
.stage-orbit:after {
  content:"";
  position:absolute;
  inset:35px;
  border:1px dashed #98e4c81e;
  border-radius:50%
}
.screen-main {
  position:absolute;
  left:-5px;
  right:0;
  top:62px;
  transform:rotate(-3deg);
  border:5px solid #294248;
  border-radius:10px;
  background:#152d33;
  box-shadow:0 35px 60px #0006;
  overflow:hidden
}
.screen-main img {
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover
}
.screen-main figcaption {
  padding:10px 13px;
  font-size:9px;
  letter-spacing:.1em;
  color:#c3d5d2
}
.screen-portrait {
  position:absolute;
  width:25%;
  max-width:140px;
  bottom:26px;
  left:8px;
  border:5px solid #496164;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 20px 45px #0005;
  transform:rotate(5deg);
  background:#1a3b45
}
.stage-note {
  position:absolute;
  bottom:0;
  right:0;
  max-width:65%;
  border-left:1px solid #98e4c875;
  padding-left:18px
}
.stage-note span {
  display:block;
  font-size:9px;
  letter-spacing:.18em;
  color:var(--teal);
  margin-bottom:9px
}
.stage-note strong {
  font-weight:400;
  font-size:17px;
  color:#ebf4ed
}
.section-heading {
  margin-bottom:38px
}
.section-heading p:not(.eyebrow) {
  color:var(--muted);
  font-size:15px;
  max-width:680px;
  margin-bottom:0
}
.split-heading {
  display:flex;
  justify-content:space-between;
  gap:40px;
  align-items:flex-end
}
.split-heading>.text-link {
  flex-shrink:0;
  margin-bottom:5px
}
.project-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px
}
.project-card {
  min-width:0;
  border:1px solid #dce3de;
  border-radius:18px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 5px 20px #193c3005;
  transition:box-shadow .25s,transform .25s,border-color .25s
}
.project-card:hover {
  transform:translateY(-5px);
  box-shadow:0 18px 40px #193c3012;
  border-color:#b4c8bd
}
.project-card-link {display:flex;flex-direction:column;height:100%}
.project-card:focus-within {outline:3px solid #df9852;outline-offset:4px}
.project-card-link:focus-visible {outline:none}
.project-image {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:1.5;
  overflow:hidden;
  padding:32px 24px;
  background:radial-gradient(ellipse at 50% 100%,#425a56,#1a3034 85%)
}
.project-image>img {
  width:100%;height:100%;object-fit:contain;
  border-radius:5px;
  filter:drop-shadow(0 12px 16px #0005);
  transition:transform .4s
}
.project-card:hover .project-image>img {transform:scale(1.025)}
.project-category {
  position:absolute;top:18px;left:18px;
  padding:4px 11px;border:1px solid #ffffff26;
  border-radius:30px;background:#152b30db;color:#edf6ee;
  backdrop-filter:blur(10px);font-size:11px;letter-spacing:.04em
}
.project-info {padding:26px 26px 24px;display:flex;flex-direction:column;flex:1}
.project-title {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.project-info h3,.page-work .project-info h3 {font-size:23px;margin:0;line-height:1.5;letter-spacing:-.02em}
.image-arrow {
  flex-shrink:0;width:36px;height:36px;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:50%;font-size:20px;
  transition:background .2s,color .2s
}
.project-card:hover .image-arrow {background:var(--ink);color:white;border-color:var(--ink)}
.project-info>p {font-size:14px;color:var(--muted);line-height:1.85;margin-bottom:22px}
.project-read {margin-top:auto;display:flex;align-items:center;gap:14px;font-size:12px;color:var(--accent);font-weight:600}
.project-read span {transition:transform .2s}
.project-card:hover .project-read span {transform:translateX(5px)}
.project-placeholder {display:grid;min-height:200px;place-items:center;font-size:24px;color:var(--teal);padding:25px}
.page-work .project-grid {row-gap:32px}
.services-intro {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:70px
}
.services-intro .section-heading {
  max-width:300px;
  padding-top:16px
}
.service-row {
  display:grid;
  grid-template-columns:40px 1fr 35px;
  gap:24px;
  padding:30px 0;
  border-bottom:1px solid #cbd5cf;
  transition:color .2s
}
.service-row:first-child {
  border-top:1px solid #cbd5cf
}
.service-row:hover {
  color:var(--accent)
}
.service-row p {
  font-size:14px;
  line-height:1.85;
  color:var(--muted);
  max-width:740px;
  margin-bottom:15px
}
.row-number {
  font-family:Georgia,serif;
  font-size:22px;
  color:#72928a;
  padding-top:2px
}
.row-arrow {
  font-size:27px;
  line-height:1.3;
  text-align:right
}
.service-row h3 {
  font-size:26px;
  margin-bottom:13px
}
.tag-list {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  list-style:none;
  padding:0;
  margin:0
}
.tag-list>span,.tag-list>li {
  font-size:11px;
  padding:4px 10px;
  border:1px solid #cbd8d0;
  border-radius:4px;
  color:#557269
}
.full-service-list .service-row {
  padding:40px 0;
  grid-template-columns:70px 1fr 50px
}
.full-service-list h2 {
  font-size:32px;
  margin-bottom:17px
}
.full-service-list p {
  font-size:16px
}
.support-section {
  background:#e1eee7
}
.support-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:105px
}
.support-grid>div>p:not(.eyebrow) {
  color:#576e65;
  font-size:15px;
  max-width:500px
}
.support-diagram {
  margin-top:36px;
  width:100%;
  max-width:450px
}
.need-list details {
  border-top:1px solid #b5cbbf;
  padding:24px 0
}
.need-list details:last-child {
  border-bottom:1px solid #b5cbbf
}
.need-list summary {
  cursor:pointer;
  display:flex;
  gap:18px;
  align-items:baseline;
  list-style:none;
  font-size:19px;
  line-height:1.5;
  font-weight:500
}
.need-list summary::-webkit-details-marker {
  display:none
}
.need-list summary>span {
  font-size:12px;
  color:#638475
}
.need-list summary b {
  font-size:22px;
  font-weight:400;
  margin-left:auto
}
.need-list details[open] summary b {
  transform:rotate(45deg)
}
.need-list details p {
  padding-left:34px;
  margin-top:19px;
  font-size:14px;
  color:#576e65;
  margin-bottom:3px
}
.about-grid {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:70px
}
.about-grid>div {
  max-width:790px
}
.about-grid p:not(.eyebrow) {
  font-size:17px;
  line-height:1.9
}
.about-grid h2 {
  max-width:700px
}
.about-grid .text-link {
  color:var(--teal)
}
.contact-band {
  background:#f3f1e8
}
.contact-band-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center
}
.contact-band-inner h2 {
  max-width:500px;
  font-size:34px
}
.contact-band-inner p:not(.eyebrow) {
  color:var(--muted)
}
.contact-methods {display:grid;gap:16px;width:100%}
.contact-method {
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px
}
.contact-identity {min-width:0;display:flex;align-items:center;gap:12px}
.contact-channel-icon {display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:12px;background:#eaf2e8;transition:background .2s}
.contact-channel-icon img {width:26px;height:26px}
.contact-channel-qq {background:#edf4fa}
.contact-channel-icon:hover {background:#dcebdd}
.contact-channel-qq:hover {background:#daeaf6}
.contact-channel-icon:focus-visible {outline:2px solid var(--accent);outline-offset:3px}
.contact-value {font-family:"Segoe UI",sans-serif;font-weight:600;font-size:25px;letter-spacing:.015em;user-select:all;overflow-wrap:anywhere;line-height:1.5}
.contact-actions {display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.contact-action,.copy-button {
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:9px 13px;border:1px solid #d8e2d9;border-radius:7px;background:transparent;
  font-size:12px;line-height:1.6;white-space:nowrap;color:var(--ink);min-height:38px
}
.contact-primary {background:var(--ink);color:white;border-color:var(--ink)}
.contact-secondary {border-color:transparent;color:var(--accent);padding-inline:4px}
.contact-action:hover,.copy-button:hover {background:#edf4e9}
.contact-primary:hover {background:#28564a;border-color:#28564a;color:white}
.copy-button:disabled {opacity:.7}
.copy-feedback {display:none;font-size:12px;flex-basis:100%;color:var(--accent)}
.copy-feedback:not(:empty) {display:block}
.site-footer {
  background:#f7f8f4;
  padding:65px 0 0
}
.footer-grid {
  display:grid;
  grid-template-columns:1.4fr .6fr 1fr;
  gap:70px
}
.site-footer .brand-name {
  font-size:20px
}
.site-footer .brand-mark {
  transform:scale(.82);
  transform-origin:left center;
  margin-right:-5px
}
.footer-grid>div>p {
  font-size:13px;
  color:var(--muted);
  max-width:360px;
  margin-top:20px
}
.footer-grid>div>p.footer-invite {
  font-size:12px;
  color:#7d8b83
}
.footer-grid nav {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  font-size:13px;
  padding-top:10px
}
.footer-contact .contact-value {
  font-size:18px
}
.footer-contact .contact-methods {
  gap:5px
}
.footer-contact .contact-method {
  padding-bottom:13px;
  gap:8px
}
.footer-contact .copy-button {
  font-size:10px;
  padding:5px 8px
}
.footer-bottom {
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:22px 0;
  margin-top:55px;
  font-size:11px;
  color:#78857f
}
.page-hero {
  padding:70px 0 76px
}
.page-hero h1 {
  max-width:980px;
  font-size:clamp(36px,4vw,56px)
}
.page-hero p:not(.eyebrow) {
  max-width:830px;
  font-size:17px;
  line-height:1.9;
  margin-bottom:0
}
.breadcrumbs {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  font-size:12px;
  color:#9db5b2;
  margin-bottom:36px
}
.breadcrumbs a {
  text-decoration:underline
}
.reading-width {
  max-width:820px
}
.narrow {
  max-width:1000px
}
.detail-grid {
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(250px,.8fr);
  gap:75px;
  align-items:start
}
.case-index {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (max-width:700px) {
  .case-index {grid-template-columns:minmax(0,1fr)}
}
.rich-content {
  font-size:16px;
  line-height:1.95;
  overflow-wrap:anywhere
}
.rich-content h2 {
  font-size:29px;
  margin-top:45px;
  margin-bottom:20px
}
.rich-content h3 {
  font-size:22px;
  margin-top:32px
}
.rich-content h2:first-child {
  margin-top:0
}
.rich-content p,.rich-content li {
  color:#4e6261
}
.rich-content a:not(.button) {
  text-decoration:underline
}
.rich-content img {
  border-radius:8px
}
.rich-content ul {
  padding-left:22px
}
.rich-content li {
  margin-bottom:12px
}
.check-list {
  padding-left:20px
}
.detail-visual {
  margin-bottom:40px
}
.detail-visual>img,.detail-visual>video {
  width:100%;
  height:auto;
  border-radius:8px
}
.detail-visual figcaption {
  font-size:12px;
  color:#6b7d74;
  margin-top:12px
}
.rich-content figure {margin:28px 0 40px;}
.rich-content figure>img,.rich-content figure>video {display:block;width:100%;height:auto;}
.rich-content figure>figcaption {font-size:13px;line-height:1.7;color:#6b7d74;margin-top:12px;}
.portrait-visual {
  max-width:360px;
  margin:35px auto
}
.fact-card {
  position:sticky;
  top:130px;
  background:#edf1ea;
  padding:28px;
  border-top:2px solid var(--accent)
}
.fact-card h2 {
  font-size:26px
}
.fact-card p {
  font-size:14px;
  color:var(--muted)
}
.fact-card .contact-value {
  font-size:20px
}
.fact-card .contact-methods {
  margin-block:26px
}
.fact-card>.text-link {
  font-size:13px
}
.fact-card li {
  font-size:14px
}
.filter-bar {
  display:flex;
  gap:20px;
  align-items:end;
  margin-bottom:45px;
  flex-wrap:wrap
}
.filter-bar label {
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:12px;
  min-width:180px
}
.filter-bar label:first-child {
  flex:1
}
.filter-bar input,.filter-bar select {
  padding:12px 15px;
  border:1px solid #bacbc3;
  border-radius:5px;
  color:var(--ink);
  background:white;
  min-height:49px;
  font-size:14px;
  width:100%
}
.pagination {
  display:flex;
  gap:25px;
  justify-content:center;
  margin-top:40px
}
.empty-state {
  text-align:center;
  padding:70px 20px
}
.article-list {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px;
  margin-top:30px
}
.article-list article {
  border-top:1px solid var(--line);
  padding-top:24px
}
.article-list h3 {
  font-size:22px
}
.article-list p {
  font-size:14px;
  color:var(--muted)
}
.insight-cover {
  width:100%;
  margin-bottom:25px
}
.article-meta {
  font-size:13px;
  color:var(--muted)
}
.contact-page {
  padding:100px 0 130px;
  min-height:650px
}
.contact-page-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:110px;
  align-items:center
}
.contact-page h1 {
  font-size:clamp(40px,4.8vw,70px)
}
.contact-notes {
  margin-top:50px;
  border-top:1px solid #ffffff25;
  padding-top:23px;
  font-size:12px;
  letter-spacing:.03em
}
.contact-notes p {
  margin-bottom:10px
}
.contact-panel {
  padding:38px;
  background:#e7f0e8;
  color:var(--ink);
  border-radius:8px
}
.contact-panel .eyebrow {
  color:#44826b
}
.contact-panel .contact-methods {
  gap:28px
}
.contact-panel .contact-value {
  font-size:30px
}
.contact-panel .contact-label {
  color:#547467
}
.error-section {
  text-align:center;
  padding:100px 0
}
.error-code {
  font-size:80px;
  color:var(--accent)
}
@media(min-width:1500px) {
  .hero-grid {
    gap:90px
  }
  .hero-stage {
    height:490px
  }
  .screen-main {
    top:70px
  }
  .screen-portrait {
    bottom:30px
  }
}
@media(max-width:1100px) {
  .container {
    width:calc(100% - 56px)
  }
  .site-nav {
    gap:20px
  }
  .brand-name {
    font-size:20px
  }
  .hero-grid {
    gap:32px;
    padding-top:65px;
    min-height:570px
  }
  .hero-copy h1 {
    font-size:clamp(27px,3.4vw,38px)
  }
  .hero-stage {
    height:380px
  }
  .stage-orbit {
    width:330px;
    height:330px
  }
  .screen-main {
    top:45px
  }
  .screen-portrait {
    bottom:35px
  }
  .stage-note {
    max-width:60%
  }
  .stage-note strong {
    font-size:14px
  }
  .services-intro,.about-grid {
    gap:40px
  }
  .support-grid {
    gap:50px
  }
  .contact-band-inner {
    gap:50px
  }
  .footer-grid {
    gap:35px
  }
  .detail-grid {
    gap:40px
  }
  .contact-page-grid {
    gap:45px
  }
  .project-info h3 {
    font-size:20px
  }
  .contact-panel {
    padding:28px
  }
}
@media(max-width:820px) {
  .header-inner {
    height:78px
  }
  .site-nav {
    gap:15px
  }
  .brand-name {
    font-size:18px
  }
  .brand-label {
    font-size:8px
  }
  .brand-mark {
    width:36px;
    height:39px;
    font-size:34px
  }
  .site-nav {
    font-size:12px
  }
  .button-small {
    font-size:12px;
    padding:8px 12px;
    gap:8px
  }
  .nav-language {
    padding-left:14px
  }
  .hero-copy h1 {
    font-size:clamp(27px,3.4vw,38px)
  }
  .hero-grid {
    gap:25px
  }
  .hero-lead {
    font-size:14px
  }
  .hero-stage {
    height:340px
  }
  .stage-orbit {
    width:260px;
    height:260px
  }
  .screen-portrait {
    bottom:34px
  }
  .stage-note strong {
    font-size:12px
  }
  .hero-disciplines {
    gap:12px;
    font-size:8px;
    margin-top:35px
  }
  .section {
    padding:70px 0
  }
  .project-grid {
    gap:20px
  }
  .project-info h3 {
    font-size:18px
  }
  .project-info>p:last-child {
    font-size:12px
  }
  .image-caption {
    font-size:9px
  }
  .services-intro {
    grid-template-columns:1fr;
    gap:0
  }
  .services-intro .section-heading {
    max-width:none
  }
  .support-grid {
    gap:30px
  }
  .support-grid h2 {
    font-size:30px
  }
  .need-list summary {
    font-size:17px;
    gap:12px
  }
  .contact-band-inner {
    grid-template-columns:1fr;
    gap:25px
  }
  .contact-band-inner h2 {
    max-width:600px
  }
  .footer-grid {
    grid-template-columns:1fr 1fr
  }
  .footer-grid nav {
    grid-column:1;
    grid-row:2;
    flex-direction:row;
    flex-wrap:wrap
  }
  .footer-contact {
    grid-column:2;
    grid-row:1 / span 2
  }
  .detail-grid {
    grid-template-columns:1fr
  }
  .fact-card {
    position:static
  }
  .fact-card .contact-method {
    display:flex
  }
  .fact-card .contact-methods {
    max-width:500px
  }
  .contact-page-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .contact-page h1 {
    font-size:48px
  }
  .contact-notes {
    margin-top:30px
  }
  .contact-panel {
    max-width:650px
  }
  .page-hero {
    padding:55px 0
  }
  .page-hero h1 {
    font-size:38px
  }
  .article-list {
    grid-template-columns:1fr 1fr
  }
}
@media(max-width:640px) {
  .container {
    width:calc(100% - 40px)
  }
  .header-inner {
    height:74px;
    gap:14px
  }
  .brand-name {
    font-size:19px
  }
  .brand-label {
    font-size:8px
  }
  .brand-mark {
    width:36px;
    height:39px
  }
  .js-ready .menu-toggle {
    display:block;
    font-size:12px
  }
  .site-nav {
    flex-wrap:wrap;
    padding:15px 0;
    gap:20px
  }
  .header-inner {
    flex-wrap:wrap;
    height:auto;
    min-height:74px
  }
  .header-inner .brand {
    margin:14px 0
  }
  .site-nav {
    width:100%;
    justify-content:flex-start
  }
  .js-ready .site-nav {
    display:none;
    position:absolute;
    top:73px;
    left:0;
    width:100%;
    padding:24px 20px;
    background:var(--dark);
    box-shadow:0 15px 20px #0003;
    border-top:1px solid #ffffff20;
    flex-direction:column;
    align-items:stretch;
    gap:0
  }
  .js-ready .site-nav[data-open=true] {
    display:flex
  }
  .site-nav>a {
    padding:12px
  }
  .site-nav .nav-language {
    border-left:0
  }
  .site-nav .button {
    margin-top:12px
  }
  .hero-grid {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    padding-top:46px;
    padding-bottom:30px;
    gap:25px
  }
  .hero-copy h1 {
    font-size:clamp(24px,7.6vw,39px);
    line-height:1.45;
    max-width:460px;
    margin-bottom:20px
  }
  .hero-copy .eyebrow {
    font-size:10px;
    letter-spacing:.07em;
    margin-bottom:23px
  }
  .hero-lead {
    font-size:14px;
    margin-bottom:25px
  }
  .hero-disciplines {
    margin-top:28px
  }
  .hero-stage {
    height:340px;
    width:100%;
    max-width:450px;
    align-self:center
  }
  .stage-orbit {
    width:280px;
    height:280px;
    right:15px
  }
  .screen-main {
    left:30px;
    right:6px;
    top:35px
  }
  .screen-portrait {
    width:100px;
    bottom:20px;
    left:8px
  }
  .stage-note {
    bottom:0;
    right:5px
  }
  .hero-bottom {
    font-size:9px;
    letter-spacing:0;
    padding-block:18px;
    gap:15px
  }
  .section {
    padding:55px 0
  }
  h2 {
    font-size:29px
  }
  .eyebrow {
    font-size:10px;
    margin-bottom:18px
  }
  .split-heading {
    display:block
  }
  .split-heading>.text-link {
    margin-top:20px
  }
  .section-heading {
    margin-bottom:28px
  }
  .section-heading p:not(.eyebrow) {
    font-size:14px
  }
  .project-grid {
    grid-template-columns:1fr;
    gap:35px
  }

  .project-info h3,.page-work .project-info h3 {
    font-size:23px
  }
  .project-info>p:last-child {
    font-size:14px
  }
  .image-caption {
    font-size:10px;
    margin-bottom:17px
  }
  .service-row,.full-service-list .service-row {
    grid-template-columns:25px 1fr 22px;
    gap:15px;
    padding:26px 0
  }
  .service-row h3,.full-service-list h2 {
    font-size:24px
  }
  .service-row p,.full-service-list p {
    font-size:13px
  }
  .row-number {
    font-size:18px
  }
  .row-arrow {
    font-size:23px
  }
  .tag-list>span {
    font-size:10px;
    padding:3px 7px
  }
  .support-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .support-diagram {
    max-width:340px;
    margin-top:25px
  }
  .need-list summary {
    font-size:17px
  }
  .need-list details {
    padding:21px 0
  }
  .about-grid {
    grid-template-columns:1fr;
    gap:5px
  }
  .about-grid p:not(.eyebrow) {
    font-size:15px
  }
  .contact-band-inner {
    gap:22px
  }
  .contact-band-inner h2 {
    font-size:29px
  }
  .contact-method {
    gap:10px
  }
  .contact-value {
    font-size:24px
  }
  .copy-button {
    font-size:11px
  }
  .footer-grid {
    grid-template-columns:1fr;
    gap:20px
  }
  .footer-grid nav {
    grid-row:auto;
    grid-column:auto;
    gap:18px
  }
  .footer-contact {
    grid-row:auto;
    grid-column:auto;
    margin-top:8px
  }
  .footer-grid>div>p {
    max-width:none
  }
  .site-footer {
    padding-top:42px
  }
  .footer-bottom {
    margin-top:32px;
    font-size:10px;
    flex-wrap:wrap;
    padding-block:20px
  }
  .page-hero h1 {
    font-size:34px;
    line-height:1.45
  }
  .page-hero p:not(.eyebrow) {
    font-size:15px
  }
  .page-hero {
    padding:44px 0
  }
  .breadcrumbs {
    font-size:11px;
    margin-bottom:27px
  }
  .filter-bar {
    gap:15px
  }
  .filter-bar label {
    min-width:0;
    flex:1
  }
  .filter-bar label:first-child {
    flex-basis:100%
  }
  .filter-bar>.button {
    font-size:13px;
    padding-inline:16px
  }
  .detail-grid {
    gap:30px
  }
  .rich-content {
    font-size:15px
  }
  .rich-content h2 {
    font-size:25px
  }
  .fact-card {
    padding:22px
  }
  .contact-page {
    padding:55px 0 65px
  }
  .contact-page h1 {
    font-size:43px
  }
  .contact-panel {
    padding:25px 22px
  }
  .contact-panel .contact-value {
    font-size:26px
  }
  .contact-panel .contact-method {
    align-items:flex-start
  }
  .contact-panel .copy-button {
    margin-top:18px
  }
  .contact-notes {
    font-size:11px
  }
  .article-list {
    grid-template-columns:1fr
  }
  .reading-width {
    width:calc(100% - 40px)
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
}
.hero-copy h1>span {
  display:block
}
.image-failure {
  display:grid;
  min-height:200px;
  place-items:center;
  color:#718078;
  background:#e6ece5;
  padding:25px
}
.project-image img[hidden],.detail-visual img[hidden] {
  display:none
}
.error-section .actions {
  justify-content:center
}

/* 直接联系入口与竖屏案例画面。 */
.contact-identity {min-width:0;}
.contact-method {flex-wrap:wrap;}
.site-footer .project-image.portrait-cover {background:radial-gradient(ellipse at 50% 100%,#dbc292,#83765b);padding:22px;}
.project-image.portrait-cover>img {width:auto;border-radius:10px;}
.project-image.diagram-cover>img {object-fit:contain;}
.detail-visual.cover-portrait {max-width:430px;margin-inline:auto;}
.portrait-case figure {max-width:430px;margin-inline:auto;}

/* 案例以完整产品画面为中心，文字使用适合阅读的行宽。 */
.portfolio-hero,.case-hero {
  position:relative;
  color:var(--ink);
  background:radial-gradient(ellipse at 90% 0,#e3ecdf,transparent 60%),#f1f3ec;
  border-bottom:1px solid var(--line)
}
.portfolio-hero {padding:85px 0 78px}
.portfolio-hero h1 {font-size:clamp(38px,4.7vw,64px);letter-spacing:-.045em;margin-bottom:22px}
.portfolio-hero p:not(.eyebrow) {color:var(--muted);max-width:720px;font-size:16px}
.projects-page>.section {padding-top:44px}
.projects-page .filter-bar {padding:22px 26px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:38px;gap:18px}
.projects-page .filter-bar label:first-child {flex:1.7}
.projects-page .filter-bar label {flex:1}
.projects-page .filter-bar input,.projects-page .filter-bar select {background:#f8faf6;border-color:#e0e6de;border-radius:7px}
.case-index .project-image {padding:40px 30px;aspect-ratio:1.6}
.case-index .project-image.portrait-cover {padding:22px}
.case-index .project-info {padding:28px 30px}
.case-index .project-info h3 {font-size:27px}
.case-hero {padding:30px 0 60px}
.case-hero .breadcrumbs {margin-bottom:42px;color:#6b7c72}
.case-hero .breadcrumbs a {text-decoration:none}
.case-hero .breadcrumbs a:hover {color:var(--accent)}
.case-introduction {display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:end}
.case-introduction h1 {font-size:clamp(34px,4vw,55px);margin:0;letter-spacing:-.04em}
.case-introduction .eyebrow {margin-bottom:16px}
.case-summary p:not(.eyebrow) {font-size:15px;color:var(--muted);line-height:1.9;margin-bottom:20px}
.case-summary .text-link {font-size:13px;color:var(--accent)}
.case-page>.section {padding-top:56px}
.case-content {max-width:1160px}
.case-content>.rich-content {max-width:1000px;margin-inline:auto}
.case-content>.rich-content>h2,.case-content>.rich-content>h3,.case-content>.rich-content>p,.case-content>.rich-content>ul {max-width:760px;margin-left:auto;margin-right:auto}
.case-content>.rich-content>h2 {font-size:30px;margin-top:68px;margin-bottom:20px;letter-spacing:-.025em}
.case-content>.rich-content>h2:first-child {margin-top:0}
.case-content>.rich-content>p {font-size:16px;line-height:2}
.case-content .rich-content figure {margin-top:30px;margin-bottom:52px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 32px #193c3007;overflow:hidden}
.case-content .rich-content figure>img,.case-content .rich-content figure>video {border-radius:8px}
.case-content .rich-content figure>figcaption {padding:0 8px 2px;margin-top:14px;color:#6b7c72;font-size:12px}
.case-content .rich-content .portrait-visual {margin-inline:auto}
.case-content .portrait-case {max-width:760px}
.case-content .portrait-case figure {max-width:430px;margin-inline:auto}
.case-conversation {display:grid;grid-template-columns:1.2fr 1fr;gap:64px;margin-top:80px;padding-top:60px;border-top:1px solid var(--line);scroll-margin-top:110px}
.case-conversation h2 {font-size:28px}
.case-delivery p:not(.eyebrow) {font-size:15px;color:var(--muted)}
.case-delivery .check-list {padding:0;list-style:none;margin:24px 0}
.case-delivery .check-list li {position:relative;padding:12px 0 12px 25px;border-bottom:1px solid var(--line);font-size:14px}
.case-delivery .check-list li:before {content:'↗';position:absolute;left:0;color:var(--accent)}
.case-contact {border-radius:18px;background:#e9efe6;padding:36px;align-self:start}
.case-contact>p:not(.eyebrow) {font-size:14px;color:var(--muted)}
.case-contact .contact-value {font-size:23px}
.case-contact .contact-methods {gap:20px;margin-top:30px}
.case-page .section-muted {background:#edf0e9;border-top:1px solid var(--line)}
.site-footer {border-top:1px solid var(--line)}
@media(max-width:820px) {
 .case-introduction {grid-template-columns:1fr;gap:24px}
 .case-conversation {grid-template-columns:1fr;gap:32px}
 .project-info {padding:22px}
 .project-info h3,.page-work .project-info h3 {font-size:21px}
 .case-page .project-grid {grid-template-columns:1fr}
 .case-page .project-image {aspect-ratio:2}
}
@media(max-width:640px) {
 .portfolio-hero {padding:46px 0}
 .portfolio-hero h1 {font-size:36px}
 .case-hero {padding:24px 0 36px}
 .case-hero .breadcrumbs {margin-bottom:30px;font-size:12px}
 .case-introduction h1 {font-size:34px}
 .case-summary p:not(.eyebrow) {font-size:14px}
 .projects-page>.section,.case-page>.section {padding-top:28px}
 .projects-page .filter-bar {padding:18px;gap:12px;margin-bottom:26px}
 .projects-page .filter-bar label:first-child {flex-basis:100%}
 .projects-page .filter-bar label {min-width:0}
 .projects-page .filter-bar .button {padding-inline:15px}
 .case-index .project-image,.project-image {padding:30px 18px;aspect-ratio:1.5}
 .case-index .project-info,.project-info {padding:22px}
 .case-index .project-info h3 {font-size:23px}
 .project-info>p {font-size:14px}
 .case-content>.rich-content>h2 {font-size:25px;margin-top:44px}
 .case-content>.rich-content>p {font-size:15px}
 .case-content .rich-content figure {padding:8px;margin-bottom:34px;border-radius:12px}
 .case-content .rich-content figure>figcaption {font-size:11px;padding:0 4px 2px;margin-top:10px}
 .case-conversation {margin-top:48px;padding-top:36px}
 .case-contact {padding:26px}
 .case-contact .contact-value {font-size:22px}
 .project-category {top:12px;left:12px;font-size:10px}
}

/* 首页、服务与联系区域共用案例页的色彩和卡片层级。 */
.studio-hero {background:radial-gradient(ellipse at 85% 25%,#dce8db,transparent 65%),#f1f3ec;border-bottom:1px solid var(--line)}
.studio-hero .hero-grid {gap:64px;min-height:620px;padding-top:68px;padding-bottom:60px}
.studio-hero .hero-copy h1 {font-size:clamp(36px,3.8vw,56px);line-height:1.35;max-width:620px}
.studio-hero .hero-lead {color:var(--muted);line-height:2}
.studio-hero .status-dot {background:var(--accent);box-shadow:0 0 0 5px #207f6810}
.studio-hero .hero-disciplines {color:#6f8579;letter-spacing:.12em}
.studio-hero .hero-bottom {border-top-color:#cdd9cc;color:#667e72}
.studio-hero .hero-bottom a:hover {color:var(--accent)}
.studio-hero .stage-orbit {border-color:#a6c2ad66;box-shadow:none}
.studio-hero .stage-orbit:after {border-color:#a6c2ad66}
.studio-hero .screen-main {transform:rotate(-2deg);border:1px solid #294248;box-shadow:0 22px 50px #193c3022;border-radius:16px}
.studio-hero .screen-portrait {width:30%;max-width:158px;border-color:#f3f6ef;box-shadow:0 15px 40px #193c3030;bottom:0;left:0;transform:rotate(3deg)}
.studio-hero .screen-main a,.studio-hero .screen-portrait a {display:block}
.studio-hero .screen-main a:focus-visible,.studio-hero .screen-portrait a:focus-visible {outline:3px solid var(--teal);outline-offset:-3px}
.studio-hero .stage-note {bottom:-15px;right:0;max-width:70%;padding:13px 17px;border:1px solid #d6e2d2;border-radius:10px;background:#f7f9f2;box-shadow:0 8px 24px #193c3012}
.studio-hero .stage-note span {color:var(--accent)}
.studio-hero .stage-note strong {color:var(--ink);font-size:15px}
.home-page .section-muted {background:#eff2eb;border-block:1px solid var(--line)}
.home-page .services-intro {display:block}
.home-page .services-intro>.section-heading {max-width:700px;padding:0;margin-bottom:38px}
.service-card-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.service-card {
 display:flex;flex-direction:column;padding:36px;border-radius:18px;background:#fff;
 border:1px solid var(--line);box-shadow:0 5px 20px #193c3005;
 transition:transform .25s,box-shadow .25s,border-color .25s
}
.service-card:hover {transform:translateY(-4px);box-shadow:0 18px 40px #193c3012;border-color:#b4c8bd}
.service-card-top {display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}
.service-number {display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#edf3e8;color:var(--accent);font-family:Georgia,serif;font-size:21px}
.service-card:hover .image-arrow {background:var(--ink);border-color:var(--ink);color:white}
.service-card h2,.service-card h3 {font-size:28px;letter-spacing:-.02em;margin-bottom:16px}
.service-card>p {font-size:15px;line-height:1.95;color:var(--muted);margin-bottom:24px}
.service-card .tag-list {margin-top:auto;gap:8px}
.service-card .tag-list>span {background:#f7f9f4;border:1px solid #e5ebe0;border-radius:6px;padding:5px 10px;font-size:11px}
.service-card .project-read {margin-top:28px;padding-top:20px;border-top:1px solid #edf0e8}
.home-page .support-section {background:var(--paper)}
.home-page .support-grid {gap:72px;align-items:start}
.home-page .need-list {display:grid;gap:12px}
.home-page .need-list details,.home-page .need-list details:last-child {background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 24px}
.home-page .need-list details[open] {background:#f1f5ed;border-color:#bfcfbd}
.home-page .need-list summary {font-size:17px}
.home-page .need-list summary b {font-size:20px;color:#72917d}
.home-page .need-list details p {padding-left:32px;font-size:14px;line-height:1.9}
.home-page .support-diagram {padding:16px;border-radius:14px;background:#eef2e9;border:1px solid var(--line)}
.home-page .about-strip {padding-top:0}
.home-page .about-grid {border-radius:22px;padding:56px;grid-template-columns:.65fr 2fr;gap:50px;background:radial-gradient(ellipse at 100% 0,#2c4d42,transparent 70%),var(--dark)}
.home-page .about-grid h2 {font-size:34px}
.home-page .about-grid p:not(.eyebrow) {font-size:16px}
.contact-band {background:#edf2e8;border-block:1px solid var(--line)}
.contact-band-inner {gap:70px}
.contact-band-inner h2 {font-size:34px}
.services-page>.section:not(.contact-band) {padding-top:48px}
.services-page .portfolio-hero h1 {max-width:1000px;font-size:clamp(36px,4vw,54px);line-height:1.45}
.service-detail-page .portfolio-hero {padding:30px 0 56px}
.service-detail-page .portfolio-hero .breadcrumbs {color:#6b7c72;margin-bottom:35px}
.service-detail-page .portfolio-hero h1 {font-size:clamp(34px,3.8vw,50px);line-height:1.4}
.service-detail-page .portfolio-hero p:not(.eyebrow) {font-size:16px;color:var(--muted)}
.service-detail-page>.section {padding-top:48px}
.service-detail-page .detail-grid {grid-template-columns:minmax(0,1fr) 340px;gap:32px}
.service-detail-page .rich-content {background:white;border:1px solid var(--line);border-radius:18px;padding:40px;min-width:0}
.service-detail-page .rich-content h2 {font-size:27px;padding-top:30px;margin-top:35px;border-top:1px solid var(--line)}
.service-detail-page .rich-content h2:first-child {padding-top:0;margin-top:0;border-top:0}
.service-detail-page .rich-content figure {padding:12px;background:#f4f7ef;border:1px solid var(--line);border-radius:12px}
.service-facts {border:1px solid var(--line);border-radius:18px;background:#edf2e8;padding:26px;top:108px}
.service-facts .check-list {padding-left:18px;margin-block:20px 28px}
.service-facts .contact-method {padding:18px;display:block}
.service-facts .contact-actions {margin-top:16px;gap:8px}
.service-facts .contact-value {font-size:22px}
.service-facts .contact-methods {margin:24px 0}
.service-facts .copy-feedback:not(:empty) {margin-top:12px}
.contact-page {padding:80px 0 100px;min-height:640px}
.contact-page h1 {font-size:clamp(40px,4.5vw,62px)}
.contact-page .hero-lead {color:var(--muted)}
.contact-page .contact-notes {border-top-color:var(--line);color:var(--muted)}
.contact-panel {padding:0;background:transparent;border-radius:0}
.contact-panel>.eyebrow {color:var(--accent);margin-bottom:20px}
.contact-panel .contact-methods {gap:18px}
.contact-panel .contact-method {padding:28px}
.contact-panel .contact-value {font-size:28px}
.contact-panel .copy-button {margin-top:0}
.footer-contact .contact-method {background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 0 18px;gap:12px}
.footer-contact .contact-methods {gap:10px}
.footer-contact .contact-value {font-size:19px}
.footer-contact .contact-action,.footer-contact .copy-button {padding:6px 9px;font-size:11px;min-height:32px}
.footer-contact .contact-secondary {padding-inline:0}
@media(max-width:1100px) {
 .studio-hero .hero-grid {gap:36px}
 .studio-hero .hero-copy h1 {font-size:38px}
 .home-page .support-grid {gap:40px}
 .service-card {padding:28px}
 .contact-band-inner {gap:40px}
 .contact-method {padding:20px}
 .service-detail-page .detail-grid {grid-template-columns:minmax(0,1fr) 300px;gap:24px}
 .service-detail-page .rich-content {padding:28px}
}
@media(max-width:820px) {
 .studio-hero .hero-grid {grid-template-columns:1fr;min-height:0;padding-block:50px;gap:34px}
 .studio-hero .hero-copy {max-width:660px}
 .studio-hero .hero-stage {width:100%;max-width:540px;justify-self:center;height:420px}
 .studio-hero .hero-copy h1 {font-size:42px}
 .home-page .support-grid {grid-template-columns:1fr}
 .home-page .support-diagram {max-width:420px}
 .home-page .about-grid {padding:38px;grid-template-columns:1fr;gap:12px}
 .service-detail-page .detail-grid {grid-template-columns:1fr}
 .service-facts {position:static}
 .service-facts .contact-method {display:flex}
 .service-facts .contact-actions {margin-top:0}
 .service-facts .contact-methods {max-width:none}
 .contact-page-grid {gap:36px}
 .contact-page {padding:56px 0 70px}
 .contact-panel {max-width:none}
}
@media(max-width:640px) {
 .studio-hero .hero-grid {padding-top:42px;padding-bottom:40px;gap:24px}
 .studio-hero .hero-copy h1 {font-size:clamp(30px,8vw,40px)}
 .studio-hero .hero-stage {height:330px;max-width:440px}
 .studio-hero .hero-lead {font-size:14px}
 .studio-hero .stage-note {bottom:0;right:0}
 .studio-hero .stage-note strong {font-size:12px}
 .studio-hero .screen-portrait {bottom:22px;width:110px}
 .studio-hero .hero-disciplines {margin-top:28px}
 .service-card-grid {grid-template-columns:1fr;gap:18px}
 .service-card {padding:25px}
 .service-card h2,.service-card h3 {font-size:25px}
 .service-card>p {font-size:14px}
 .service-card-top {margin-bottom:20px}
 .services-page .portfolio-hero h1 {font-size:34px}
 .services-page>.section:not(.contact-band) {padding-top:28px}
 .home-page .services-intro>.section-heading {margin-bottom:28px}
 .home-page .about-grid {padding:30px 24px;border-radius:16px}
 .home-page .about-grid h2 {font-size:28px}
 .home-page .about-grid p:not(.eyebrow) {font-size:15px}
 .home-page .need-list details,.home-page .need-list details:last-child {padding:20px}
 .home-page .need-list summary {font-size:16px;gap:10px}
 .home-page .need-list details p {padding-left:25px}
 .contact-band-inner h2 {font-size:29px}
 .contact-method {padding:20px;gap:16px}
 .contact-value {font-size:24px}
 .contact-actions {gap:10px}
 .contact-page h1 {font-size:38px}
 .contact-panel .contact-method {padding:23px}
 .contact-panel .contact-value {font-size:25px}
 .contact-panel .copy-button {margin-top:0}
 .service-detail-page .portfolio-hero {padding:24px 0 36px}
 .service-detail-page .portfolio-hero h1 {font-size:32px}
 .service-detail-page .portfolio-hero p:not(.eyebrow) {font-size:14px}
 .service-detail-page .rich-content {padding:24px}
 .service-detail-page .rich-content h2 {font-size:24px}
 .service-detail-page>.section {padding-top:28px}
 .service-facts {padding:24px}
 .case-contact .contact-method {padding:18px}
}
