.subpage-main { padding-top: 80px; }
.page-hero { padding: clamp(54px, 6vw, 90px) 0 34px; background: var(--paper); }
.page-hero-grid { display: grid; grid-template-columns: minmax(400px, .88fr) minmax(520px, 1.12fr); gap: clamp(42px, 7vw, 100px); align-items: center; }
.page-breadcrumb { display: flex; flex-wrap: wrap; gap: 9px; color: #777a73; font-size: 10px; font-weight: 750; letter-spacing: .05em; }
.page-breadcrumb a { border-bottom: 1px solid #aaa79f; }
.page-kicker { margin-top: 42px; color: var(--brick); font-size: 10px; font-weight: 850; letter-spacing: .17em; }
.page-hero h1 { margin: 22px 0 0; font-size: clamp(46px, 5.4vw, 76px); line-height: 1.04; letter-spacing: -.065em; font-weight: 710; }
.page-lead { max-width: 680px; margin-top: 28px; color: #575a54; font-size: 16px; line-height: 1.86; }
.page-hero-media { position: relative; aspect-ratio: 16 / 11; overflow: hidden; border-radius: 160px 34px 34px 34px; background: #d7d4cb; }
.page-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.page-hero-media.contain img { object-fit: contain; background: #171917; }
.page-hero-media figcaption { position: absolute; right: 18px; bottom: 18px; padding: 9px 12px; border-radius: 999px; background: rgba(22,24,22,.84); color: #fff; font-size: 8px; font-weight: 850; letter-spacing: .12em; }

.page-facts-wrap { padding: 0 0 clamp(58px, 7vw, 88px); background: var(--paper); }
.page-facts { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 30px; background: #fff; }
.page-facts div { min-width: 0; padding: 22px 24px; border-right: 1px solid var(--line); }
.page-facts div:last-child { border-right: 0; }
.page-facts dt { color: var(--brick); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.page-facts dd { margin-top: 9px; font-size: 13px; font-weight: 720; line-height: 1.55; }

.page-section { padding: clamp(66px, 7vw, 96px) 0; background: #fff; }
.page-section.alt { background: var(--paper-deep); }
.page-section.dark { background: #171917; color: #fff; }
.page-section-grid { display: grid; grid-template-columns: minmax(150px, .27fr) minmax(0, 1fr); gap: clamp(38px, 6vw, 90px); }
.page-section-label { color: var(--brick); font-size: 9px; font-weight: 850; letter-spacing: .16em; }
.dark .page-section-label { color: #c8897d; }
.page-copy { min-width: 0; }
.page-copy > h2 { max-width: 970px; margin: 0; font-size: clamp(35px, 4.4vw, 60px); line-height: 1.13; letter-spacing: -.053em; }
.page-copy > p { max-width: 900px; margin-top: 24px; color: #5d605a; font-size: 15px; line-height: 1.9; }
.dark .page-copy > p { color: #b9bcb6; }
.page-copy > p + p { margin-top: 15px; }
.page-inline-link { display: inline-flex; justify-content: space-between; gap: 30px; margin-top: 26px; padding-bottom: 7px; border-bottom: 1px solid #8e908a; font-size: 10px; font-weight: 850; }

.principle-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 34px; }
.principle-grid article { min-height: 205px; padding: 28px; border-radius: 30px; background: var(--paper); }
.alt .principle-grid article { background: rgba(255,255,255,.62); }
.principle-grid span { color: var(--brick); font-size: 9px; font-weight: 850; letter-spacing: .11em; }
.principle-grid h3 { margin: 24px 0 0; font-size: 22px; letter-spacing: -.035em; }
.principle-grid p { margin-top: 11px; color: #686b64; font-size: 12px; line-height: 1.75; }

.page-photo-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; margin-top: 36px; }
.page-photo { grid-column: span 4; min-width: 0; }
.page-photo.wide { grid-column: span 8; }
.page-photo figure { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 30px; background: #d1cec5; }
.page-photo.wide figure { aspect-ratio: 16 / 9; }
.page-photo img { width: 100%; height: 100%; object-fit: cover; }
.page-photo.contain img { object-fit: contain; background: #141614; }
.page-photo h3 { margin: 15px 4px 0; font-size: 17px; letter-spacing: -.025em; }
.page-photo p { margin: 7px 4px 0; color: #70736c; font-size: 11px; line-height: 1.65; }
.dark .page-photo p { color: #aaaDA7; }

.operating-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; margin-top: 30px; border-top: 1px solid var(--line); }
.operating-list article { display: grid; grid-template-columns: 108px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.operating-list > article > span { color: var(--brick); font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.operating-list h3 { margin: 0; font-size: 20px; letter-spacing: -.03em; }
.operating-list p { margin-top: 7px; color: #6b6e67; font-size: 12px; line-height: 1.7; }
.operating-list-dark { border-color: rgba(255,255,255,.18); }
.operating-list-dark article { border-color: rgba(255,255,255,.18); }
.operating-list-dark p { color: #aeb1aa; }

.service-directory { margin-top: 36px; border-top: 1px solid var(--line); }
.service-row { display: grid; grid-template-columns: 100px minmax(250px, .7fr) minmax(360px, 1.3fr); gap: clamp(24px, 4vw, 56px); align-items: start; padding: 34px 0; border-bottom: 1px solid var(--line); }
.service-row > span { color: var(--brick); font-size: 9px; font-weight: 850; letter-spacing: .11em; }
.service-row h3 { margin: 0; font-size: clamp(25px, 2.6vw, 36px); line-height: 1.2; letter-spacing: -.045em; }
.service-row-copy > p { color: #5e615a; font-size: 13px; line-height: 1.8; }
.service-row-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; }
.service-row-meta span { padding: 7px 10px; border: 1px solid #cecac1; border-radius: 999px; color: #555851; font-size: 9px; font-weight: 750; }
.service-row a { display: inline-flex; gap: 16px; margin-top: 18px; padding-bottom: 5px; border-bottom: 1px solid #8c8f88; font-size: 9px; font-weight: 850; }

.case-feature { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(350px, .82fr); gap: 14px; margin-top: 36px; padding: 14px; border-radius: 48px; background: #222422; }
.case-feature figure { min-height: 500px; overflow: hidden; border-radius: 34px 120px 34px 34px; background: #111; }
.case-feature img { width: 100%; height: 100%; object-fit: cover; }
.case-feature-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 4vw, 50px); }
.case-feature-copy > span { color: #d0897b; font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.case-feature-copy h3 { margin: 22px 0 0; font-size: clamp(29px, 3.1vw, 44px); line-height: 1.16; letter-spacing: -.048em; }
.case-feature-copy p { margin-top: 18px; color: #b9bcb6; font-size: 13px; line-height: 1.8; }
.case-feature-copy a { align-self: flex-start; margin-top: 25px; padding-bottom: 6px; border-bottom: 1px solid #737772; color: #fff; font-size: 10px; font-weight: 850; }

.channel-board { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 32px; }
.channel-board span { min-height: 76px; display: grid; place-items: center; padding: 12px; border: 1px solid rgba(255,255,255,.22); border-radius: 28px; color: #eceee9; font-size: 11px; font-weight: 780; text-align: center; }
.channel-board span:nth-child(2), .channel-board span:nth-child(5) { border-radius: 50px 24px 24px 24px; }
.network-note { margin-top: 22px; color: #969a93; font-size: 11px; line-height: 1.75; }

.page-cta { padding: 24px 0 84px; background: #fff; }
.page-cta-panel { display: flex; justify-content: space-between; gap: 44px; align-items: center; padding: clamp(38px, 5vw, 62px); border-radius: 44px; background: #111312; color: #fff; }
.page-cta h2 { margin: 0; font-size: clamp(30px, 3.8vw, 50px); line-height: 1.15; letter-spacing: -.05em; }
.page-cta p { margin-top: 14px; color: #aeb1aa; font-size: 13px; line-height: 1.75; }
.page-cta .button { flex: 0 0 auto; border-color: #fff; background: #fff; color: var(--ink); }

@media (max-width: 1120px) {
  .page-hero-grid { grid-template-columns: 1fr; }
  .page-hero-media { aspect-ratio: 16 / 9; }
  .page-facts { grid-template-columns: 1fr 1fr; }
  .page-facts div:nth-child(2) { border-right: 0; }
  .page-facts div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .case-feature { grid-template-columns: 1fr; }
  .case-feature figure { min-height: 0; aspect-ratio: 16 / 9; }
}

@media (max-width: 760px) {
  .subpage-main { padding-top: 68px; }
  .page-hero { padding-top: 44px; }
  .page-kicker { margin-top: 32px; }
  .page-hero h1 { font-size: 43px; }
  .page-lead { font-size: 14px; }
  .page-hero-media { aspect-ratio: 4 / 3; border-radius: 82px 24px 24px 24px; }
  .page-facts { grid-template-columns: 1fr; border-radius: 24px; }
  .page-facts div, .page-facts div:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .page-facts div:last-child { border-bottom: 0; }
  .page-section-grid { display: block; }
  .page-section-label { display: block; margin-bottom: 18px; }
  .page-copy > h2 { font-size: 37px; }
  .principle-grid { grid-template-columns: 1fr; }
  .principle-grid article { min-height: 0; }
  .page-photo-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .page-photo, .page-photo.wide { grid-column: auto; }
  .page-photo.wide { grid-column: 1 / -1; }
  .page-photo figure, .page-photo.wide figure { aspect-ratio: 4 / 3; border-radius: 22px; }
  .operating-list { grid-template-columns: 1fr; }
  .operating-list article { grid-template-columns: 86px 1fr; gap: 14px; }
  .service-row { grid-template-columns: 1fr; gap: 13px; padding: 27px 0; }
  .service-row h3 { font-size: 27px; }
  .case-feature { border-radius: 30px; }
  .case-feature figure { border-radius: 22px 72px 22px 22px; }
  .case-feature-copy { padding: 25px 12px; }
  .channel-board { grid-template-columns: 1fr 1fr; }
  .channel-board span:last-child { grid-column: 1 / -1; }
  .page-cta-panel { align-items: flex-start; flex-direction: column; border-radius: 30px; }
  .page-cta .button { width: 100%; }
}

/* Refined corporate layout: fewer visual devices, stronger content hierarchy */
.page-hero { padding: 68px 0 82px; }
.page-hero-grid { grid-template-columns: minmax(420px,.9fr) minmax(520px,1.1fr); gap: clamp(46px,6vw,84px); }
.page-kicker { margin-top: 34px; }
.page-hero h1 { font-size: clamp(46px,4.8vw,66px); line-height: 1.08; }
.page-lead { max-width: 650px; margin-top: 24px; }
.page-hero-media { aspect-ratio: 16/11; border-radius: 34px; }
.page-hero-media figcaption { display: none; }
.page-facts-wrap { display: none; }
.page-section { padding: clamp(70px,7vw,92px) 0; }
.page-section-grid { display: block; }
.page-section-label { display: none; }
.page-copy { max-width: 1120px; margin: 0 auto; }
.page-copy > h2 { max-width: 860px; font-size: clamp(34px,3.8vw,52px); }
.page-copy > p { max-width: 780px; }
.principle-grid { gap: 34px; border-top: 1px solid var(--line); }
.principle-grid article, .alt .principle-grid article { min-height: 0; padding: 28px 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
.principle-grid h3 { margin-top: 15px; }
.principle-grid p { max-width: 280px; }
.page-photo-grid { gap: 18px; }
.page-photo figure, .page-photo.wide figure { border-radius: 22px; }
.service-row { grid-template-columns: minmax(250px,.7fr) minmax(360px,1.3fr); }
.service-row > span { display: none; }
.case-feature { border-radius: 26px; }
.case-feature figure { border-radius: 18px; }
.channel-board { gap: 0; border-top: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.channel-board span, .channel-board span:nth-child(2), .channel-board span:nth-child(5) { min-height: 66px; border: 0; border-right: 1px solid rgba(255,255,255,.2); border-radius: 0; }
.channel-board span:last-child { border-right: 0; }
.page-cta-panel { border-radius: 26px; }

@media (max-width: 1120px) {
  .page-hero-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .page-hero { padding: 42px 0 62px; }
  .page-hero h1 { font-size: 42px; }
  .page-hero-media { border-radius: 22px; }
  .page-section { padding: 62px 0; }
  .page-copy > h2 { font-size: 34px; }
  .principle-grid { gap: 0; }
  .service-row { grid-template-columns: 1fr; }
  .channel-board { grid-template-columns: 1fr 1fr; }
  .channel-board span { border-bottom: 1px solid rgba(255,255,255,.2); }
  .channel-board span:nth-child(2n) { border-right: 0; }
  .channel-board span:last-child { border-bottom: 0; }
}
