/*
 * Design philosophy: Kansai Gateway Editorial
 * Warm paper / gateway blue / coral / editorial Japanese serif.
 * 編集レール、Gateway Line、地域キャプションを一貫して使う。
 */

:root {
  --paper: #f7f3ec;
  --paper-deep: #ebe4d8;
  --ink: #182638;
  --blue: #1d4c85;
  --blue-deep: #0d2b52;
  --coral: #e3604c;
  --moss: #596750;
  --line: rgba(24, 38, 56, .18);
  --muted: #5f6870;
  --serif: "Noto Serif JP", Georgia, serif;
  --sans: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;
  --display: "DM Sans", var(--sans);
  --ease-out: cubic-bezier(.23, 1, .32, 1);
  --ease-in-out: cubic-bezier(.77, 0, .175, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.75; }
img { display: block; width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
button, input, select, textarea { font: inherit; }
.site-shell { overflow: hidden; }

/* Brand and header */
.site-header { position: relative; z-index: 30; background: var(--paper); border-bottom: 1px solid var(--line); }
.header-inner { width: min(1440px, calc(100% - 48px)); min-height: 76px; margin: 0 auto; display: grid; grid-template-columns: 190px 1fr auto; align-items: center; gap: 32px; }
.brand { display: inline-flex; align-items: center; width: max-content; gap: 12px; font-family: var(--display); font-weight: 700; letter-spacing: -.05em; font-size: 23px; line-height: 1; }
.brand-symbol { width: 35px; height: 31px; position: relative; display: inline-grid; grid-template-columns: repeat(3, 8px); gap: 3px; align-items: end; transform: skewX(-12deg); }
.brand-symbol i { display: block; height: 22px; background: var(--blue); border-radius: 1px; }
.brand-symbol i:nth-child(2) { height: 30px; background: var(--coral); }
.brand-symbol i:nth-child(3) { height: 17px; background: var(--moss); }
.desktop-nav { justify-self: center; display: flex; align-items: center; gap: clamp(14px, 2vw, 32px); font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.desktop-nav a { position: relative; padding: 8px 0; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 2px; height: 2px; background: var(--coral); transition: right 180ms var(--ease-out); }
.desktop-nav a:hover::after { right: 0; }
.header-cta, .hero-cta, .final-contact-button, .case-next-button, .case-cta-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; color: #fff; background: var(--blue); font-weight: 700; font-size: 13px; letter-spacing: .03em; transition: transform 180ms var(--ease-out), background 180ms var(--ease-out), box-shadow 180ms var(--ease-out); }
.header-cta { min-height: 46px; padding: 0 16px; }
.header-cta:hover, .hero-cta:hover, .final-contact-button:hover, .case-next-button:hover, .case-cta-button:hover { transform: translateY(-3px); background: var(--coral); box-shadow: 7px 8px 0 rgba(24, 38, 56, .2); }
.header-cta:active, .hero-cta:active, .final-contact-button:active, .case-next-button:active, .case-cta-button:active { transform: scale(.97); }
.header-cta-icon { font-size: 20px; line-height: 1; transform: rotate(-15deg); }
.mobile-menu, .mobile-navigation { display: none; }

/* Utility and label */
.editorial-section { width: min(1440px, calc(100% - 48px)); margin: 0 auto; }
.section-label { min-height: 58px; display: grid; grid-template-columns: 52px 98px 1fr; align-items: center; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--blue); font-family: var(--display); font-weight: 700; font-size: 11px; letter-spacing: .15em; }
.section-label > span { font-size: 12px; color: var(--coral); }
.section-label p { margin: 0; }
.rail-gateway { display: flex; align-items: center; gap: 4px; }
.rail-gateway i { display: block; width: 17px; height: 5px; background: var(--blue); transform: skewX(-25deg); }
.rail-gateway i:nth-child(2) { background: var(--coral); }
.rail-gateway i:nth-child(3) { background: var(--moss); }
.mini-label { margin: 0 0 14px; color: var(--coral); font-family: var(--display); font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.section-heading { margin: 68px 0 44px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .55fr); align-items: end; gap: 48px; }
.section-heading h2, .industry-copy h2, .final-contact h2, .case-next-copy h2, .archive-contact-panel h2, .case-section-title h2 { margin: 0; font-family: var(--serif); font-weight: 600; font-size: clamp(31px, 4.05vw, 61px); line-height: 1.35; letter-spacing: -.065em; }
.section-heading h2 em, .industry-copy h2 em, .final-contact h2 em, .case-next-copy h2 em, .archive-contact-panel h2 em, .case-section-title h2 em, .not-found-page h1 em { color: var(--blue); font-style: normal; }
.section-heading > p { margin: 0 0 6px; color: var(--muted); font-size: 14px; }
.text-link { display: inline-flex; gap: 14px; align-items: center; padding-bottom: 8px; border-bottom: 2px solid var(--blue); font-weight: 700; font-size: 14px; transition: color 180ms var(--ease-out), border-color 180ms var(--ease-out); }
.text-link:hover { color: var(--coral); border-color: var(--coral); }

/* Hero */
.hero { width: min(1440px, calc(100% - 48px)); min-height: min(720px, calc(100svh - 76px)); margin: 0 auto; display: grid; grid-template-columns: minmax(420px, .92fr) minmax(420px, 1.08fr); position: relative; }
.hero-copy { padding: clamp(82px, 12vw, 170px) clamp(24px, 5vw, 100px) 88px 0; position: relative; z-index: 2; }
.eyebrow { display: flex; flex-wrap: wrap; gap: 13px; font-family: var(--display); color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: .14em; }
.eyebrow span + span::before { content: "•"; padding-right: 13px; color: var(--coral); }
.hero-kicker { margin: 42px 0 13px; color: var(--coral); font-weight: 700; font-size: 14px; }
.hero h1 { margin: 0; font-family: var(--serif); font-size: clamp(44px, 5.1vw, 78px); font-weight: 600; line-height: 1.25; letter-spacing: -.09em; }
.hero h1 span { color: var(--blue); }
.hero h1 em { color: var(--coral); font-style: normal; }
.hero-summary { max-width: 450px; margin: 35px 0; color: var(--muted); font-size: 15px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; }
.hero-cta { min-height: 54px; padding: 0 23px; }
.hero-visual { margin: 0; position: relative; min-height: 100%; overflow: hidden; background: var(--blue-deep); }
.hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(24, 38, 56, .16), transparent 45%), linear-gradient(0deg, rgba(10, 29, 52, .62), transparent 40%); pointer-events: none; }
.hero-visual img { height: 100%; object-fit: cover; filter: saturate(.85) contrast(1.05); }
.hero-visual figcaption { position: absolute; z-index: 1; left: 28px; right: 28px; bottom: 24px; display: flex; justify-content: space-between; gap: 20px; color: #fff; font: 700 10px var(--display); letter-spacing: .12em; }
.hero-gateway { position: absolute; z-index: 3; bottom: -1px; left: 0; display: flex; align-items: flex-end; gap: 5px; }
.hero-gateway span { width: 66px; height: 4px; background: var(--paper); margin: 0 5px 12px 0; }
.hero-gateway i { width: 13px; height: 35px; display: block; background: var(--blue); transform: skewX(-16deg); }
.hero-gateway i:nth-of-type(2) { height: 53px; background: var(--coral); }
.hero-gateway i:nth-of-type(3) { height: 25px; background: var(--moss); }

/* Issues */
.issues-section { padding: 130px 0 64px; }
.issues-heading { grid-template-columns: minmax(0, .96fr) minmax(260px, .6fr); }
.issue-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.issue-card { min-height: 262px; position: relative; padding: 26px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background 180ms var(--ease-out), color 180ms var(--ease-out); }
.issue-card:hover { background: var(--blue); color: #fff; }
.issue-number { color: var(--coral); font: 700 12px var(--display); letter-spacing: .12em; }
.issue-card h3 { max-width: 260px; margin: 42px 0 13px; font-family: var(--serif); font-size: 23px; line-height: 1.45; letter-spacing: -.055em; }
.issue-card p { max-width: 290px; margin: 0; font-size: 13px; color: var(--muted); line-height: 1.7; transition: color 180ms var(--ease-out); }
.issue-card:hover p { color: rgba(255,255,255,.78); }
.issue-arrow { position: absolute; right: 24px; bottom: 20px; color: var(--blue); font-size: 23px; transition: color 180ms var(--ease-out), transform 180ms var(--ease-out); }
.issue-card:hover .issue-arrow { color: var(--coral); transform: translate(4px,-4px); }

/* Gateway map */
.gateway-map { margin: 64px 0 0; padding: 80px max(24px, calc((100vw - 1440px)/2 + 24px)); display: grid; grid-template-columns: minmax(280px, .75fr) minmax(500px, 1.25fr); align-items: center; gap: 80px; background: var(--blue-deep); color: #fff; }
.gateway-map-intro > span { color: var(--coral); font: 700 11px var(--display); letter-spacing: .14em; }
.gateway-map h2 { margin: 16px 0 0; font-family: var(--serif); font-size: clamp(34px, 4vw, 56px); line-height: 1.36; letter-spacing: -.08em; }
.gateway-map h2 em { color: var(--coral); font-style: normal; }
.gateway-steps { display: grid; grid-template-columns: repeat(4, 1fr); position: relative; border-top: 1px solid rgba(255,255,255,.35); }
.gateway-steps::before { content: ""; position: absolute; top: -2px; left: 0; width: 78%; height: 4px; background: var(--coral); }
.gateway-steps > div { padding: 31px 18px 0 0; position: relative; }
.gateway-steps > div::after { content: ""; position: absolute; top: -7px; left: 0; width: 13px; height: 13px; border: 3px solid var(--blue-deep); border-radius: 50%; background: var(--coral); }
.gateway-steps > div:nth-child(2)::after { background: #8fc0e7; }
.gateway-steps > div:nth-child(3)::after { background: var(--moss); }
.gateway-steps > div:nth-child(4)::after { background: var(--paper); }
.gateway-steps span { display: block; color: rgba(255,255,255,.55); font: 700 10px var(--display); letter-spacing: .12em; }
.gateway-steps strong { display: block; margin-top: 8px; font: 700 15px var(--display); letter-spacing: .04em; }
.gateway-steps p { margin: 12px 0 0; color: rgba(255,255,255,.74); font-size: 12px; line-height: 1.65; }

/* Services */
.services-section { padding: 140px 0; }
.service-stack { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.service-card { min-height: 510px; padding: 26px; position: relative; overflow: hidden; border: 1px solid var(--line); background: #fcfaf6; display: flex; flex-direction: column; }
.service-card::after { content: ""; position: absolute; left: 0; bottom: 0; height: 8px; width: 100%; transition: height 220ms var(--ease-out); }
.service-card:hover::after { height: 15px; }
.service-card-coral::after { background: var(--coral); }
.service-card-blue::after { background: var(--blue); }
.service-card-moss::after { background: var(--moss); }
.service-card-top { display: flex; align-items: center; justify-content: space-between; color: var(--blue); font: 700 10px var(--display); letter-spacing: .14em; }
.gateway-dot { width: 20px; height: 20px; display: block; border: 4px solid var(--coral); transform: rotate(45deg); }
.service-card-blue .gateway-dot { border-color: var(--blue); }
.service-card-moss .gateway-dot { border-color: var(--moss); }
.service-card h3 { margin: 72px 0 15px; font-family: var(--serif); font-size: 31px; font-weight: 600; line-height: 1.35; letter-spacing: -.07em; }
.service-lead { margin: 0; min-height: 58px; color: var(--blue); font-family: var(--serif); font-size: 18px; font-weight: 600; line-height: 1.65; }
.service-text { margin: 26px 0; color: var(--muted); font-size: 13px; }
.service-card ul { padding: 0; margin: 0 0 26px; list-style: none; font-size: 12px; color: var(--muted); }
.service-card li { padding: 8px 0 8px 19px; position: relative; border-top: 1px solid var(--line); }
.service-card li::before { content: "→"; position: absolute; left: 0; color: var(--coral); }
.service-card > a { margin-top: auto; padding-top: 16px; border-top: 2px solid var(--ink); display: flex; justify-content: space-between; font-size: 13px; font-weight: 700; }
.service-card > a span { color: var(--coral); font-size: 19px; }

/* Industry */
.industry-section { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 640px; background: var(--paper-deep); }
.industry-image { position: relative; min-height: 520px; overflow: hidden; }
.industry-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,26,46,.62), transparent 55%); }
.industry-image img { height: 100%; object-fit: cover; filter: saturate(.76); }
.industry-image span { position: absolute; z-index: 2; left: 32px; bottom: 25px; color: #fff; font: 700 10px var(--display); letter-spacing: .15em; }
.industry-copy { padding: clamp(64px, 9vw, 142px) clamp(32px, 7vw, 120px) 60px; align-self: center; }
.industry-copy > p:not(.mini-label) { margin: 28px 0; color: var(--muted); font-size: 14px; }
.industry-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 32px 0; }
.industry-tags span { padding: 7px 9px; border: 1px solid rgba(24,38,56,.3); color: var(--blue); font: 700 10px var(--display); letter-spacing: .08em; }

/* Cases */
.cases-section { padding: 140px 0 0; }
.cases-heading { grid-template-columns: minmax(0, .9fr) minmax(270px, .5fr); }
.case-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.case-card { min-width: 0; background: var(--paper); display: grid; grid-template-columns: minmax(180px, .68fr) minmax(230px, 1fr); }
.case-card-image { min-height: 315px; position: relative; overflow: hidden; background: var(--blue-deep); }
.case-card-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,29,52,.46), transparent 50%); }
.case-card-image img { height: 100%; object-fit: cover; transition: transform 480ms var(--ease-out); }
.case-card:hover .case-card-image img { transform: scale(1.06); }
.case-card-location { position: absolute; z-index: 1; bottom: 17px; left: 18px; color: #fff; font: 700 9px var(--display); letter-spacing: .12em; }
.case-card-placeholder { height: 100%; display: grid; place-items: center; color: #fff; font: 700 14px var(--display); letter-spacing: .15em; }
.case-card-body { padding: 24px; display: flex; flex-direction: column; }
.case-card-meta { display: flex; justify-content: space-between; gap: 8px; color: var(--blue); font: 700 9px var(--display); letter-spacing: .11em; }
.case-card-meta span:last-child { color: var(--muted); text-align: right; }
.case-card h3 { margin: 25px 0 17px; font-family: var(--serif); font-size: 21px; font-weight: 600; line-height: 1.5; letter-spacing: -.055em; }
.case-card-metric { margin-top: auto; display: flex; gap: 11px; align-items: flex-end; }
.case-card-metric strong { color: var(--blue); font: 700 clamp(33px, 3vw, 48px) var(--display); line-height: 1; letter-spacing: -.07em; }
.case-card-metric small { font-size: .45em; margin-left: 2px; }
.case-card-metric span { max-width: 78px; padding-bottom: 3px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.case-card-result { margin: auto 0 0; color: var(--blue); font-family: var(--serif); font-weight: 600; font-size: 17px; }
.case-card-note { margin: 8px 0 0; color: var(--muted); font-size: 11px; }
.case-card-link { display: flex; justify-content: space-between; margin-top: 20px; padding-top: 13px; border-top: 1px solid var(--line); font-size: 12px; font-weight: 700; }
.case-card-link span { color: var(--coral); font-size: 18px; line-height: .9; transition: transform 180ms var(--ease-out); }
.case-card:hover .case-card-link span { transform: translateX(5px); }
.case-empty { padding: 55px 24px; border: 1px solid var(--line); color: var(--muted); }
.case-cta-band { margin-top: 64px; padding: 32px 44px 44px; display: grid; grid-template-columns: 1.2fr 1.1fr auto; align-items: end; gap: 38px; color: #fff; background: var(--blue-deep); position: relative; overflow: hidden; }
.case-cta-band::after { content: ""; position: absolute; width: 230px; height: 230px; right: -95px; bottom: -115px; border: 28px solid rgba(227,96,76,.9); transform: rotate(45deg); }
.case-cta-line { grid-column: 1/-1; display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.65); font: 700 9px var(--display); letter-spacing: .12em; }
.case-cta-line i { display: block; width: 25px; height: 3px; background: var(--coral); transform: skewX(-20deg); }
.case-cta-line i:nth-of-type(2) { background: #8fc0e7; }.case-cta-line i:nth-of-type(3) { background: var(--moss); }
.case-cta-band h3 { margin: 0; font-family: var(--serif); font-size: clamp(29px, 3.2vw, 48px); line-height: 1.38; letter-spacing: -.075em; }
.case-cta-band h3 em { color: var(--coral); font-style: normal; }
.case-cta-band .mini-label { margin: 0 0 11px; }
.case-cta-button { position: relative; z-index: 1; min-height: 58px; padding: 0 18px 0 24px; background: var(--coral); white-space: nowrap; }
.case-cta-button i { width: 27px; height: 27px; display: grid; place-items: center; background: #fff; color: var(--coral); font-size: 18px; font-style: normal; border-radius: 50%; transition: transform 180ms var(--ease-out); }
.case-cta-button:hover i { transform: rotate(-30deg) scale(1.1); }

/* Process / final */
.process-section { padding: 140px 0; }
.process-list { margin: 48px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.process-list li { display: grid; grid-template-columns: 135px 1fr; gap: 22px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.process-list > li > span { color: var(--coral); font: 700 17px var(--display); letter-spacing: .08em; }
.process-list h3 { margin: 0 0 7px; font-family: var(--serif); font-size: 24px; letter-spacing: -.05em; }.process-list p { margin: 0; color: var(--muted); font-size: 13px; }
.final-contact { padding: 120px 24px; text-align: center; color: #fff; background: var(--blue-deep); position: relative; overflow: hidden; }
.final-contact::before, .final-contact::after { content: ""; position: absolute; width: 40vw; height: 40vw; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.final-contact::before { left: -23vw; bottom: -18vw; }.final-contact::after { right: -22vw; top: -20vw; }
.final-contact > * { position: relative; z-index: 1; }
.final-contact-mark { height: 35px; display: flex; justify-content: center; align-items: flex-end; gap: 5px; margin-bottom: 18px; }.final-contact-mark i { display:block; width: 12px; height: 25px; background: #8fc0e7; transform: skewX(-15deg); }.final-contact-mark i:nth-child(2){height:35px;background:var(--coral)}.final-contact-mark i:nth-child(3){height:17px;background:var(--moss)}
.final-contact h2 { color: #fff; }.final-contact h2 em { color: var(--coral); }.final-contact > p:not(.mini-label) { max-width: 530px; margin: 25px auto 34px; color: rgba(255,255,255,.76); font-size: 14px; }.final-contact-button { min-height: 59px; padding: 0 27px; background: var(--coral); }

/* Case archive */
.case-archive-page { padding-top: 0; }.archive-hero { width: min(1440px, calc(100% - 48px)); min-height: 400px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 60px; padding: 95px 0 75px; }.archive-hero-copy h1 { margin: 20px 0; font-family: var(--serif); font-weight: 600; font-size: clamp(43px, 5vw, 72px); line-height: 1.3; letter-spacing: -.09em; }.archive-hero-copy h1 em { color: var(--blue); font-style: normal; }.archive-hero-copy > p:last-child { max-width: 540px; color: var(--muted); font-size: 14px; }.archive-hero-rail { align-self: stretch; padding: 25px 0; border-left: 1px solid var(--line); display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--blue); font: 700 10px var(--display); letter-spacing: .13em; }.archive-hero-rail > span { color: var(--coral); }.archive-hero-rail i { display: block; width: 4px; height: 45px; background: var(--blue); }.archive-hero-rail i:nth-of-type(2){background:var(--coral)}.archive-hero-rail i:nth-of-type(3){background:var(--moss)}.archive-hero-rail strong { margin-top: auto; writing-mode: vertical-rl; font-size: 9px; }.archive-cases { padding: 70px 0 140px; }.case-grid-archive { grid-template-columns: repeat(2,1fr); }.navigation.pagination { margin-top: 34px; display: flex; gap: 12px; }.page-numbers { display:grid; place-items:center; min-width:36px; min-height:36px; border:1px solid var(--line); font-size:12px; }.page-numbers.current { color:#fff; background:var(--blue); }.archive-contact-panel { display: grid; grid-template-columns: 1fr auto; gap: 35px; align-items: end; padding: 78px max(24px, calc((100vw - 1120px)/2)); background: var(--paper-deep); }.archive-contact-panel .mini-label { margin-bottom: 12px; }.archive-contact-panel .case-cta-button { min-width: 260px; }

/* Case detail */
.case-detail-hero { width: min(1440px, calc(100% - 48px)); margin: 0 auto; display: grid; grid-template-columns: .88fr 1.12fr; min-height: 600px; }.case-detail-copy { padding: 58px clamp(35px, 7vw, 115px) 60px 0; display: flex; flex-direction: column; justify-content: center; }.case-back { width:max-content; margin-bottom:auto; padding: 7px 0; border-bottom:1px solid var(--blue); color:var(--blue); font-size:12px;font-weight:700; }.case-detail-meta { display:flex; gap:16px; color:var(--blue); font:700 10px var(--display); letter-spacing:.13em; }.case-detail-meta span:first-child { color:var(--coral); }.case-detail-industry { margin:37px 0 9px; color:var(--coral);font-weight:700;font-size:14px; }.case-detail-copy h1 { margin:0; font-family:var(--serif);font-weight:600;font-size:clamp(34px,4.2vw,61px);line-height:1.36;letter-spacing:-.08em; }.case-detail-lead { margin:25px 0;color:var(--muted);font-size:14px; }.case-detail-route { margin-top:15px; display:flex; align-items:center;gap:8px;color:var(--blue);font:700 9px var(--display);letter-spacing:.13em; }.case-detail-route i{display:block;width:27px;height:3px;background:var(--coral);transform:skewX(-20deg)}.case-detail-route i:nth-of-type(2){background:var(--moss)}.case-detail-image{margin:0;position:relative;min-height:600px;overflow:hidden;background:var(--blue-deep)}.case-detail-image img{height:100%;object-fit:cover}.case-detail-image::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,29,52,.62),transparent 50%)}.case-detail-image figcaption{position:absolute;z-index:1;left:25px;right:25px;bottom:22px;display:flex;justify-content:space-between;color:#fff;font:700 9px var(--display);letter-spacing:.13em}.case-detail-image-fallback{height:100%;display:grid;place-items:center;color:#fff;font:700 14px var(--display);letter-spacing:.13em}
.case-detail-summary,.case-detail-actions,.case-detail-voice { width:min(1220px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:175px 1fr;gap:50px;padding:110px 0; }.case-detail-index{display:flex;align-items:flex-start;gap:15px;color:var(--blue);font:700 10px var(--display);letter-spacing:.13em}.case-detail-index span{color:var(--coral);font-size:17px}.case-detail-index p{margin:5px 0 0}.case-detail-summary h2{margin:0;max-width:860px;font-family:var(--serif);font-size:clamp(27px,3.4vw,49px);font-weight:600;line-height:1.5;letter-spacing:-.07em}.case-public-note{max-width:650px;margin:28px 0 0;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.case-detail-actions{border-top:1px solid var(--line);padding-bottom:120px}.case-section-title{margin-bottom:50px}.case-action-list{border-top:1px solid var(--line)}.case-action-list article{display:grid;grid-template-columns:90px 1fr 34px;gap:18px;padding:26px 0;border-bottom:1px solid var(--line)}.case-action-list article>span{color:var(--coral);font:700 13px var(--display)}.case-action-list h3{margin:0 0 7px;font-family:var(--serif);font-size:23px;letter-spacing:-.05em}.case-action-list p{margin:0;color:var(--muted);font-size:13px}.case-action-list i{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--blue);color:var(--blue);font-style:normal;border-radius:50%}.case-empty-copy{color:var(--muted)}
.case-detail-results{padding:96px max(24px,calc((100vw - 1220px)/2));display:grid;grid-template-columns:175px minmax(0,1fr) 280px;gap:46px;background:var(--blue-deep);color:#fff}.case-detail-index-light{color:#fff}.case-detail-index-light span{color:var(--coral)}.case-results-main .mini-label{color:#8fc0e7}.case-big-metric{margin:20px 0}.case-big-metric strong{color:var(--coral);font:700 clamp(76px,10vw,142px) var(--display);line-height:.85;letter-spacing:-.09em}.case-big-metric small{font-size:.34em;letter-spacing:-.03em}.case-big-metric span{display:block;margin-top:12px;font:700 11px var(--display);letter-spacing:.12em}.case-results-main h2{margin:22px 0 0;font-family:var(--serif);font-size:clamp(26px,3vw,44px);line-height:1.45;letter-spacing:-.06em}.case-results-main>p:not(.mini-label){margin:10px 0 0;color:rgba(255,255,255,.72);font-size:14px}.case-result-symbol{margin:28px 0 20px;display:flex;align-items:center;gap:13px;color:var(--coral)}.case-result-symbol>span{font-size:72px;line-height:.8}.case-result-symbol small{font:700 10px var(--display);letter-spacing:.14em}.case-result-proof{align-self:end;padding:22px;border:1px solid rgba(255,255,255,.26);font-size:12px}.case-result-proof>span{color:var(--coral);font:700 10px var(--display);letter-spacing:.13em}.case-result-proof p{margin:14px 0;color:rgba(255,255,255,.7)}.case-result-proof a{display:inline-block;padding-bottom:4px;border-bottom:1px solid #fff;font-weight:700}
.case-detail-voice{padding-top:112px}.voice-card{position:relative;padding:50px 50px 43px;background:var(--paper-deep)}.voice-quote-icon{display:block;margin-bottom:9px;color:var(--coral);font-family:var(--serif);font-size:79px;line-height:.7}.voice-card blockquote{max-width:820px;margin:0;font-family:var(--serif);font-size:clamp(21px,2.5vw,34px);font-weight:600;line-height:1.7;letter-spacing:-.055em}.voice-card h2{margin:0;font-family:var(--serif);font-size:30px}.voice-by{margin:24px 0 0;color:var(--muted);font-size:13px}.voice-note{max-width:720px;margin:19px 0 0;color:var(--muted);font-size:13px}.voice-card>a{display:inline-block;margin-top:24px;padding-bottom:5px;border-bottom:1px solid var(--blue);color:var(--blue);font-weight:700;font-size:12px}
.case-next-cta{padding:76px max(24px,calc((100vw - 1220px)/2));display:grid;grid-template-columns:1fr auto;align-items:end;gap:50px;background:var(--paper-deep)}.case-next-copy>p:not(.mini-label){max-width:520px;margin:20px 0 0;color:var(--muted);font-size:13px}.case-next-button{min-width:288px;min-height:64px;padding:0 16px 0 23px;background:var(--coral)}.case-next-button i{width:29px;height:29px;display:grid;place-items:center;background:#fff;color:var(--coral);border-radius:50%;font-style:normal;font-size:20px}.next-case-link{width:min(1220px,calc(100% - 48px));margin:58px auto 116px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:18px;color:var(--blue)}.next-case-link span{font:700 10px var(--display);letter-spacing:.13em}.next-case-link strong{font-family:var(--serif);font-size:27px;font-weight:600;letter-spacing:-.05em}.next-case-link i{font-style:normal;font-size:24px;color:var(--coral)}.next-case-link:hover{color:var(--coral)}

/* Contact */
.contact-page{width:min(1440px,calc(100% - 48px));margin:0 auto}.contact-hero{padding:104px 0 70px;display:grid;grid-template-columns:1fr 130px;gap:40px;border-bottom:1px solid var(--line)}.contact-hero h1{margin:16px 0;font-family:var(--serif);font-weight:600;font-size:clamp(43px,5vw,70px);line-height:1.3;letter-spacing:-.09em}.contact-hero h1 em{color:var(--blue);font-style:normal}.contact-hero>div>p:last-child{max-width:540px;color:var(--muted);font-size:14px}.contact-gateway{display:flex;align-items:flex-end;justify-content:center;gap:5px;border-left:1px solid var(--line)}.contact-gateway i{display:block;width:13px;height:70px;background:var(--blue);transform:skewX(-15deg)}.contact-gateway i:nth-child(2){height:111px;background:var(--coral)}.contact-gateway i:nth-child(3){height:47px;background:var(--moss)}.contact-promises{padding:55px 0;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.contact-promises article{padding:0 30px;border-left:1px solid var(--line)}.contact-promises article:first-child{padding-left:0;border-left:0}.contact-promises span{color:var(--coral);font:700 12px var(--display);letter-spacing:.1em}.contact-promises h2{margin:16px 0 7px;font-family:var(--serif);font-size:23px;letter-spacing:-.05em}.contact-promises p{margin:0;color:var(--muted);font-size:13px}.contact-layout{padding:80px 0 140px;display:grid;grid-template-columns:.53fr 1fr;gap:clamp(42px,9vw,160px)}.contact-aside h2{margin:12px 0 22px;font-family:var(--serif);font-size:clamp(28px,3vw,42px);line-height:1.45;letter-spacing:-.06em}.contact-aside>p:not(.mini-label){color:var(--muted);font-size:14px}.contact-steps{margin:39px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.contact-steps li{display:grid;grid-template-columns:37px 1fr;gap:9px;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px}.contact-steps span{color:var(--coral);font:700 11px var(--display);letter-spacing:.1em}.contact-form-wrap{padding:36px;background:#fcfaf6;border:1px solid var(--line)}.contact-form-wrap h2{margin:0 0 25px;font-family:var(--serif);font-size:27px;letter-spacing:-.05em}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-field{display:flex;flex-direction:column;gap:7px}.contact-field-full{grid-column:1/-1}.contact-field label,.contact-consent label{font-size:13px;font-weight:700}.contact-field label span{margin-left:7px;color:var(--coral);font:700 10px var(--display);letter-spacing:.1em}.contact-field input,.contact-field select,.contact-field textarea{width:100%;padding:12px 13px;border:1px solid rgba(24,38,56,.25);border-radius:0;background:#fff;color:var(--ink);font-size:14px;transition:border-color 160ms var(--ease-out),box-shadow 160ms var(--ease-out)}.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,76,133,.12);outline:none}.contact-field textarea{min-height:146px;resize:vertical}.contact-consent{grid-column:1/-1;padding-top:4px;display:flex;align-items:flex-start;gap:10px;font-size:12px}.contact-consent input{width:17px;height:17px;flex:0 0 17px;accent-color:var(--blue)}.contact-consent label{font-weight:400}.contact-submit{grid-column:1/-1;min-height:58px;border:0;cursor:pointer;background:var(--blue);color:#fff;font-weight:700;letter-spacing:.04em;transition:background 180ms var(--ease-out),transform 180ms var(--ease-out),box-shadow 180ms var(--ease-out)}.contact-submit:hover{background:var(--coral);transform:translateY(-3px);box-shadow:6px 7px 0 rgba(24,38,56,.17)}.contact-submit:active{transform:scale(.97)}.form-notice{grid-column:1/-1;margin:0;padding:14px;background:#e4f0e6;color:#255c36;font-size:13px}.form-notice-error{background:#fde7e3;color:#8c3023}.form-privacy-note{grid-column:1/-1;margin:0;color:var(--muted);font-size:11px}

/* Standard pages / posts / 404 */
.standard-page{width:min(940px,calc(100% - 48px));margin:0 auto;padding:100px 0}.standard-page-header{margin-bottom:58px;padding-bottom:31px;border-bottom:1px solid var(--line)}.standard-page-header h1{margin:13px 0 0;font-family:var(--serif);font-size:clamp(38px,4.4vw,63px);line-height:1.3;letter-spacing:-.08em}.entry-content{font-size:16px}.entry-content h2,.entry-content h3{margin:2em 0 .7em;font-family:var(--serif);line-height:1.45;letter-spacing:-.04em}.entry-content h2{font-size:32px}.entry-content h3{font-size:24px}.entry-content p,.entry-content ul,.entry-content ol{margin:0 0 1.4em}.entry-content a{color:var(--blue);text-decoration:underline;text-decoration-color:var(--coral);text-underline-offset:4px}.standard-page-cta{margin:60px 0 0;padding:35px;background:var(--paper-deep);display:flex;justify-content:space-between;align-items:center;gap:20px}.standard-page-cta p{margin:0;font-family:var(--serif);font-size:22px}.standard-page-cta a{padding:13px 18px;background:var(--blue);color:#fff;font-size:13px;font-weight:700}.post-list{border-top:1px solid var(--line)}.post-list-item{padding:28px 0;border-bottom:1px solid var(--line)}.post-list-item>p{margin:0;color:var(--coral);font:700 10px var(--display);letter-spacing:.11em}.post-list-item h2{margin:7px 0;font-family:var(--serif);font-size:29px;letter-spacing:-.05em}.post-list-item .wp-block-post-excerpt__excerpt,.post-list-item>p:not(:first-child){color:var(--muted);font-size:13px}.post-list-item>a{display:inline-block;margin-top:9px;color:var(--blue);font-size:12px;font-weight:700}.not-found-page{width:min(1040px,calc(100% - 48px));min-height:70vh;margin:0 auto;padding:150px 0}.not-found-page h1{margin:17px 0;font-family:var(--serif);font-size:clamp(42px,5vw,72px);line-height:1.35;letter-spacing:-.08em}.not-found-page>p{color:var(--muted)}.not-found-page>div{display:flex;flex-wrap:wrap;gap:12px;margin-top:35px}.not-found-page a{padding:14px 19px;border:1px solid var(--blue);color:var(--blue);font-size:13px;font-weight:700}.not-found-page a:last-child{background:var(--blue);color:#fff}

/* Footer */
.site-footer{padding:65px max(24px,calc((100vw - 1440px)/2 + 24px)) 18px;background:#0b223f;color:#fff}.footer-grid{display:grid;grid-template-columns:1.5fr .65fr .85fr;gap:45px;padding-bottom:67px}.footer-brand .brand{color:#fff}.footer-brand p{margin:25px 0 0;color:rgba(255,255,255,.68);font-size:13px}.footer-links{display:flex;flex-direction:column;gap:10px;font-size:13px}.footer-links>p,.footer-contact>p{margin:0 0 8px;color:var(--coral);font:700 10px var(--display);letter-spacing:.13em}.footer-links a{width:max-content;border-bottom:1px solid transparent;transition:border-color 180ms var(--ease-out)}.footer-links a:hover{border-color:var(--coral)}.footer-contact-link{display:inline-flex;align-items:center;gap:12px;margin-top:14px;color:#fff;font-family:var(--serif);font-size:22px;border-bottom:1px solid rgba(255,255,255,.6)}.footer-contact-link span{color:var(--coral)}.footer-bottom{padding-top:18px;border-top:1px solid rgba(255,255,255,.18);display:flex;justify-content:space-between;gap:20px;color:rgba(255,255,255,.52);font:700 9px var(--display);letter-spacing:.1em}.footer-bottom p{margin:0}

@media (max-width: 1050px) {
  .header-inner{grid-template-columns:auto 1fr auto;gap:18px}.desktop-nav{gap:14px;font-size:11px}.hero{grid-template-columns:.9fr 1.1fr}.hero-copy{padding-right:40px}.case-card{grid-template-columns:1fr}.case-card-image{min-height:240px}.case-card-body{min-height:260px}.case-cta-band{grid-template-columns:1fr auto}.case-cta-line{grid-column:1/-1}.case-cta-band>div:nth-child(2){grid-column:1/-1}.case-detail-hero{grid-template-columns:.9fr 1.1fr}.case-detail-copy{padding-right:50px}.case-detail-results{grid-template-columns:140px 1fr}.case-result-proof{grid-column:2}.archive-hero{grid-template-columns:1fr 88px}.contact-layout{gap:55px}
}

@media (max-width: 760px) {
  .site-header{position:fixed;top:0;left:0;right:0;z-index:100}.site-shell{padding-top:64px}body{font-size:15px}.header-inner{width:calc(100% - 32px);min-height:64px;grid-template-columns:1fr auto}.desktop-nav,.header-cta{display:none}.mobile-menu{display:flex;width:42px;height:42px;padding:10px;justify-content:center;flex-direction:column;gap:5px;border:1px solid var(--line);background:transparent}.mobile-menu span{display:block;height:2px;width:100%;background:var(--ink);transition:transform 180ms var(--ease-out),opacity 180ms var(--ease-out)}.mobile-menu.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.mobile-menu.is-open span:nth-child(2){opacity:0}.mobile-menu.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-navigation{position:absolute;left:0;right:0;top:100%;padding:20px 20px 24px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 14px 28px rgba(24,38,56,.12)}.mobile-navigation:not([hidden]){display:flex;flex-direction:column;gap:0}.mobile-nav-section{padding:14px 0;border-bottom:1px solid var(--line)}.mobile-nav-section:last-of-type{border-bottom:0}.mobile-nav-label{margin:0 0 8px;color:#6aaaf2;font-family:"DM Sans",sans-serif;font-size:9px;letter-spacing:.16em;font-weight:700}.mobile-nav-section a{display:block;padding:7px 0;font-size:14px;font-weight:700;color:var(--ink);border:0}.mobile-nav-section address{font-size:13px;font-style:normal;color:rgba(16,42,67,.62);line-height:1.7}.mobile-nav-cta{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding:14px 18px;background:var(--ink);color:#fff;font-size:13px;font-weight:700;letter-spacing:.03em}.mobile-nav-cta span{font-size:17px}.editorial-section,.hero,.case-archive-page .archive-hero,.case-detail-hero,.contact-page{width:calc(100% - 32px)}.hero{min-height:auto;display:flex;flex-direction:column}.hero-copy{padding:68px 0 44px}.eyebrow{font-size:9px}.hero-kicker{margin-top:30px}.hero h1{font-size:clamp(40px,10.3vw,56px)}.hero-summary{margin:25px 0}.hero-actions{gap:18px}.hero-visual{min-height:370px}.hero-visual figcaption{left:16px;right:16px;font-size:8px}.hero-gateway{left:0}.issues-section{padding:78px 0 35px}.section-label{grid-template-columns:34px 66px 1fr;min-height:47px;font-size:9px}.section-heading{margin:45px 0 31px;display:block}.section-heading h2,.industry-copy h2,.final-contact h2,.case-next-copy h2,.archive-contact-panel h2,.case-section-title h2{font-size:clamp(29px,8.3vw,45px)}.section-heading>p{margin-top:20px}.issue-grid{grid-template-columns:1fr}.issue-card{min-height:188px;padding:20px}.issue-card h3{margin:26px 0 8px;font-size:21px}.gateway-map{margin-top:35px;padding:54px 16px;display:block}.gateway-map h2{font-size:39px}.gateway-steps{margin-top:45px;grid-template-columns:repeat(2,1fr);gap:26px 10px}.gateway-steps::before{width:100%;}.gateway-steps>div{padding-top:25px}.services-section{padding:80px 0}.service-stack{grid-template-columns:1fr}.service-card{min-height:auto;padding:23px}.service-card h3{margin-top:55px}.industry-section{display:block;min-height:0}.industry-image{min-height:340px}.industry-copy{padding:58px 24px}.cases-section{padding-top:80px}.case-grid{grid-template-columns:1fr}.case-card{grid-template-columns:minmax(0, 1fr) minmax(0,1.25fr)}.case-card-image{min-height:250px}.case-card-body{min-height:250px;padding:18px}.case-card h3{margin:18px 0 10px;font-size:19px}.case-card-meta{display:block}.case-card-meta span:last-child{display:block;margin-top:4px;text-align:left;font-size:8px}.case-card-metric strong{font-size:36px}.case-cta-band{margin-top:34px;padding:25px 21px 28px;display:block}.case-cta-line{display:none}.case-cta-band h3{font-size:30px}.case-cta-button{margin-top:26px;width:100%;min-height:55px}.process-section{padding:80px 0}.process-list{margin-top:32px}.process-list li{grid-template-columns:42px 1fr;gap:11px;padding:19px 0}.process-list h3{font-size:19px}.final-contact{padding:83px 22px}.final-contact>p:not(.mini-label){font-size:13px}.final-contact-button{width:100%;min-height:56px}.archive-hero{min-height:0;display:grid;grid-template-columns:1fr 45px;gap:18px;padding:68px 0 52px}.archive-hero-copy h1{font-size:43px}.archive-hero-rail{padding:12px 0}.archive-hero-rail i{height:35px}.archive-hero-rail strong{font-size:7px}.archive-cases{padding:35px 0 80px}.case-grid-archive{grid-template-columns:1fr}.archive-contact-panel{display:block;padding:58px 16px}.archive-contact-panel .case-cta-button{width:100%;margin-top:25px}.case-detail-hero{display:flex;flex-direction:column}.case-detail-copy{padding:28px 0 42px}.case-back{margin-bottom:50px}.case-detail-industry{margin-top:28px}.case-detail-copy h1{font-size:37px}.case-detail-image{min-height:350px}.case-detail-summary,.case-detail-actions,.case-detail-voice{width:calc(100% - 32px);display:block;padding:72px 0}.case-detail-index{margin-bottom:30px}.case-detail-summary h2{font-size:27px}.case-detail-actions{padding-bottom:75px}.case-section-title{margin-bottom:30px}.case-action-list article{grid-template-columns:45px 1fr 28px;gap:8px;padding:20px 0}.case-action-list h3{font-size:19px}.case-detail-results{padding:66px 16px;display:block}.case-detail-results .case-detail-index{margin-bottom:32px}.case-big-metric strong{font-size:92px}.case-result-proof{margin-top:35px}.voice-card{padding:38px 24px}.voice-card blockquote{font-size:21px}.case-next-cta{padding:62px 16px;display:block}.case-next-button{width:100%;margin-top:30px;min-width:0}.next-case-link{width:calc(100% - 32px);margin:40px auto 70px;grid-template-columns:1fr auto}.next-case-link span{grid-column:1/-1}.next-case-link strong{font-size:23px}.contact-hero{padding:72px 0 45px;grid-template-columns:1fr 44px;gap:13px}.contact-hero h1{font-size:43px}.contact-gateway i{width:8px;height:51px}.contact-gateway i:nth-child(2){height:80px}.contact-gateway i:nth-child(3){height:36px}.contact-promises{display:block;padding:40px 0}.contact-promises article,.contact-promises article:first-child{padding:20px 0;border-left:0;border-top:1px solid var(--line)}.contact-promises article:first-child{border-top:0;padding-top:0}.contact-layout{padding:54px 0 80px;display:block}.contact-form-wrap{margin-top:47px;padding:25px 18px}.contact-form{grid-template-columns:1fr;gap:17px}.contact-field-full,.contact-consent,.contact-submit,.form-notice,.form-privacy-note{grid-column:auto}.standard-page{width:calc(100% - 32px);padding:70px 0}.standard-page-header{margin-bottom:36px}.standard-page-cta{display:block;padding:25px}.standard-page-cta a{display:inline-block;margin-top:17px}.not-found-page{width:calc(100% - 32px);padding:100px 0}.footer-grid{display:block;padding-bottom:38px}.footer-links,.footer-contact{margin-top:38px}.footer-bottom{display:block}.footer-bottom p + p{margin-top:8px}
}

@media (prefers-reduced-motion: reduce) {
  html{scroll-behavior:auto}.issue-card,.issue-card p,.issue-arrow,.case-card-image img,.case-card-link span,.header-cta,.hero-cta,.final-contact-button,.case-next-button,.case-cta-button,.contact-submit,.desktop-nav a::after{transition:none!important}
}
