/*
 * Design philosophy: Kansai Gateway Editorial
 * `/dining/` をReactプレビューの同名ページと一対一で同期する専用スタイル。
 * 共通詳細テンプレートのスタイルを流用せず、構造・順序・余白・アクセントを独立して固定する。
 */

body.dining-preview-page {
	--ink: #102a43;
	--blue: #0b63ce;
	--paper: #f5f1e8;
	--paper-deep: #ebe5d8;
	--coral: #f05a47;
	--moss: #6f8a5e;
	--line: rgba(16, 42, 67, .18);
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 16px;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
}

.dining-preview-page *,
.dining-preview-page *::before,
.dining-preview-page *::after { box-sizing: border-box; }
.dining-preview-page a { color: inherit; text-decoration: none; }
.dining-preview-page img { display: block; max-width: 100%; }
.dining-preview-page ::selection { background: var(--coral); color: #fff; }
.dining-preview-page a:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }

.dining-preview-page .service-page {
	--service-accent: var(--coral);
	min-height: 100vh;
	overflow-x: clip;
	color: var(--ink);
	background: var(--paper);
}

.dining-preview-page .brand { display: inline-flex; align-items: center; gap: 11px; min-width: max-content; }
.dining-preview-page .brand-symbol { position: relative; display: inline-block; width: 30px; height: 28px; }
.dining-preview-page .brand-symbol i { position: absolute; display: block; width: 12px; height: 12px; border-radius: 3px 1px 3px 1px; transform: rotate(45deg); }
.dining-preview-page .brand-symbol i:nth-child(1) { top: 8px; left: 0; background: var(--coral); }
.dining-preview-page .brand-symbol i:nth-child(2) { top: 0; left: 9px; background: var(--blue); }
.dining-preview-page .brand-symbol i:nth-child(3) { top: 11px; left: 16px; background: #f1b943; }
.dining-preview-page .brand-word { font-family: "DM Sans", sans-serif; font-size: 21px; font-weight: 700; letter-spacing: .14em; }

.dining-preview-page .header-cta {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 14px 18px;
	color: #fff;
	background: var(--ink);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	transition: transform .16s, background .2s;
}
.dining-preview-page .header-cta:hover { background: var(--blue); }
.dining-preview-page .header-cta:active { transform: scale(.97); }

.dining-preview-page .service-page-header {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 30px;
	min-height: 88px;
	padding: 0 4vw;
	border-bottom: 1px solid var(--line);
	background: rgba(245, 241, 232, .94);
	backdrop-filter: blur(14px);
}
.dining-preview-page .service-page-header .header-cta { justify-self: end; }
.dining-preview-page .service-back {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--ink);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	transition: color .2s, border-color .2s;
}
.dining-preview-page .service-back:hover { border-color: var(--service-accent); color: var(--service-accent); }

.dining-preview-page .gateway-marks { display: inline-flex; align-items: center; gap: 3px; width: max-content; line-height: 0; }
.dining-preview-page .gateway-marks i { display: block; width: 6px; height: 6px; border-radius: 1px; transform: rotate(45deg); }
.dining-preview-page .gateway-marks i:nth-child(1) { background: var(--coral); }
.dining-preview-page .gateway-marks i:nth-child(2) { background: var(--blue); }
.dining-preview-page .gateway-marks i:nth-child(3) { background: #f1b943; }

.dining-preview-page .service-detail-hero {
	display: grid;
	grid-template-columns: 51% 49%;
	min-height: 700px;
	border-bottom: 1px solid var(--line);
}
.dining-preview-page .service-detail-copy {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 86px 6vw 80px 8vw;
}
.dining-preview-page .service-detail-copy::before {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 3.4vw;
	width: 1px;
	content: "";
	background: linear-gradient(180deg, var(--blue), rgba(11, 99, 206, .18));
}
.dining-preview-page .service-detail-copy::after {
	position: absolute;
	top: 86px;
	left: calc(3.4vw - 7px);
	width: 15px;
	height: 15px;
	content: "";
	transform: rotate(45deg);
	background: var(--blue);
}
.dining-preview-page .service-rail-gateway { position: absolute; z-index: 1; top: 79px; left: calc(3.4vw - 9px); padding: 4px; background: var(--paper); }
.dining-preview-page .service-detail-meta {
	display: flex;
	align-items: center;
	gap: 22px;
	color: rgba(16, 42, 67, .56);
	font-family: "DM Sans", sans-serif;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .16em;
}
.dining-preview-page .service-detail-meta span:first-child { color: var(--blue); }
.dining-preview-page .service-detail-kicker { margin: 42px 0 12px; color: var(--service-accent); font-family: "DM Sans", sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .15em; }
.dining-preview-page .service-detail-copy h1 {
	max-width: 700px;
	margin: 0;
	font-family: "Noto Serif JP", serif;
	font-size: clamp(39px, 4.5vw, 69px);
	font-weight: 600;
	line-height: 1.33;
	letter-spacing: -.06em;
}
.dining-preview-page .service-detail-copy h1 em { color: var(--service-accent); font-style: normal; }
.dining-preview-page .service-detail-lead { max-width: 620px; margin: 27px 0 0; color: rgba(16, 42, 67, .72); font-size: 15px; line-height: 2; }
.dining-preview-page .service-route-wrap { position: relative; max-width: 492px; margin-top: 37px; }
.dining-preview-page .service-detail-route {
	display: grid;
	grid-template-columns: auto 1fr auto 1fr auto;
	align-items: center;
	gap: 12px;
	max-width: 435px;
	color: var(--blue);
	font-family: "DM Sans", sans-serif;
	font-size: 8px;
	font-weight: 700;
	letter-spacing: .16em;
}
.dining-preview-page .service-detail-route i { position: relative; height: 1px; background: var(--blue); }
.dining-preview-page .service-detail-route i::after { position: absolute; top: -3px; right: 0; width: 7px; height: 7px; border-top: 1px solid var(--blue); border-right: 1px solid var(--blue); content: ""; transform: rotate(45deg); }
.dining-preview-page .service-route-gateway { position: absolute; top: -6px; right: -30px; }
.dining-preview-page .service-hero-cta {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 11px;
	margin-top: 34px;
	padding: 13px 0 8px;
	border-bottom: 2px solid var(--service-accent);
	color: var(--ink);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.3;
	transition: color .2s, transform .16s;
}
.dining-preview-page .service-hero-cta:hover { color: var(--service-accent); transform: translateX(4px); }
.dining-preview-page .service-hero-cta:active { transform: scale(.97); }
.dining-preview-page .service-detail-image { position: relative; min-height: 700px; margin: 0; overflow: hidden; background: var(--ink); }
.dining-preview-page .service-detail-image::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 50%, rgba(5, 18, 29, .74)); pointer-events: none; }
.dining-preview-page .service-detail-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.84) contrast(1.05); }
.dining-preview-page .service-detail-image figcaption {
	position: absolute;
	z-index: 1;
	right: 30px;
	bottom: 28px;
	left: 30px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	color: #fff;
	font-family: "DM Sans", sans-serif;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .13em;
	line-height: 1.4;
}
.dining-preview-page .service-detail-image figcaption span:first-child { display: inline-flex; align-items: center; gap: 8px; padding-left: 12px; border-left: 3px solid var(--blue); }
.dining-preview-page .service-caption-gateway { flex: 0 0 auto; }

.dining-preview-page .service-detail-situations,
.dining-preview-page .service-detail-design,
.dining-preview-page .service-detail-evidence,
.dining-preview-page .service-detail-deliverables,
.dining-preview-page .service-detail-process { display: grid; grid-template-columns: 190px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.dining-preview-page .service-detail-index { padding: 74px 30px; border-right: 1px solid var(--line); }
.dining-preview-page .service-detail-index span { display: block; color: var(--blue); font-family: "DM Sans", sans-serif; font-size: 30px; font-weight: 500; }
.dining-preview-page .service-detail-index p { margin: 12px 0 0; font-family: "DM Sans", sans-serif; font-size: 8px; font-weight: 700; letter-spacing: .16em; writing-mode: vertical-rl; }
.dining-preview-page .service-detail-section-content { padding: 82px 8vw 92px; }
.dining-preview-page .service-section-heading { display: grid; grid-template-columns: minmax(170px, .48fr) minmax(0, 1fr); align-items: start; gap: 7vw; }
.dining-preview-page .service-section-heading .mini-label { margin: 11px 0 0; color: var(--blue); }
.dining-preview-page .service-section-heading h2 { margin: 0; font-family: "Noto Serif JP", serif; font-size: clamp(31px, 3.4vw, 50px); font-weight: 600; line-height: 1.53; letter-spacing: -.05em; }
.dining-preview-page .service-section-heading h2 em { color: var(--service-accent); font-style: normal; }

.dining-preview-page .service-situation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: 66px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.dining-preview-page .service-situation-grid article { min-height: 165px; padding: 27px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .25); transition: background .22s, transform .22s; }
.dining-preview-page .service-situation-grid article:hover { background: #fffdf7; transform: translateY(-4px); }
.dining-preview-page .service-situation-grid span { color: var(--blue); font-family: "DM Sans", sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.dining-preview-page .service-situation-grid p { max-width: 330px; margin: 27px 0 0; font-family: "Noto Serif JP", serif; font-size: 17px; font-weight: 600; line-height: 1.75; }

.dining-preview-page .service-detail-design { color: #fff; background: var(--blue); }
.dining-preview-page .service-detail-index-light { border-color: rgba(255, 255, 255, .2); }
.dining-preview-page .service-detail-index-light span { color: #ffc2b9; }
.dining-preview-page .service-detail-index-light p { color: rgba(255, 255, 255, .74); }
.dining-preview-page .service-detail-design .service-detail-section-content { background: linear-gradient(105deg, rgba(255, 255, 255, .025), rgba(5, 18, 29, .13)); }
.dining-preview-page .service-section-heading-light .mini-label { color: #ffc2b9; }
.dining-preview-page .service-section-heading-light h2 em { color: #ffc2b9; }
.dining-preview-page .service-design-list { margin-top: 67px; border-top: 1px solid rgba(255, 255, 255, .24); }
.dining-preview-page .service-design-list article { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 26px; min-height: 142px; border-bottom: 1px solid rgba(255, 255, 255, .24); }
.dining-preview-page .service-design-list > article > span { color: #ffc2b9; font-family: "DM Sans", sans-serif; font-size: 11px; font-weight: 700; }
.dining-preview-page .service-design-list h3 { margin: 0; font-family: "Noto Serif JP", serif; font-size: 23px; line-height: 1.5; }
.dining-preview-page .service-design-list p { max-width: 690px; margin: 9px 0 0; color: rgba(255, 255, 255, .68); font-size: 12px; line-height: 1.85; }
.dining-preview-page .service-design-list svg { color: #ffc2b9; }

.dining-preview-page .service-detail-evidence { background: #e9e2d5; }
.dining-preview-page .service-evidence-content { display: grid; grid-template-columns: minmax(290px, .86fr) minmax(0, 1.14fr); min-height: 490px; }
.dining-preview-page .service-evidence-image { position: relative; min-height: 100%; margin: 0; overflow: hidden; background: var(--ink); }
.dining-preview-page .service-evidence-image::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 48%, rgba(5, 18, 29, .68)); }
.dining-preview-page .service-evidence-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8) contrast(1.04); }
.dining-preview-page .service-evidence-image figcaption { position: absolute; z-index: 1; right: 24px; bottom: 22px; left: 24px; display: flex; align-items: center; gap: 10px; color: #fff; font-family: "DM Sans", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .15em; line-height: 1.4; }
.dining-preview-page .service-evidence-gateway { flex: 0 0 auto; }
.dining-preview-page .service-evidence-copy { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 70px 7vw 70px 6vw; }
.dining-preview-page .service-evidence-copy::before { position: absolute; top: 72px; right: 6.5vw; width: 76px; height: 76px; border: 1px solid rgba(11, 99, 206, .26); border-radius: 50%; box-shadow: 0 0 0 16px rgba(11, 99, 206, .045); content: ""; }
.dining-preview-page .service-evidence-copy .mini-label { margin: 0; color: var(--blue); }
.dining-preview-page .service-evidence-copy h2 { max-width: 600px; margin: 20px 0 0; font-family: "Noto Serif JP", serif; font-size: clamp(28px, 3vw, 43px); font-weight: 600; line-height: 1.62; letter-spacing: -.045em; }
.dining-preview-page .service-evidence-copy > p:not(.mini-label):not(.service-evidence-caption) { max-width: 580px; margin: 20px 0 0; color: rgba(16, 42, 67, .7); font-size: 13px; line-height: 1.95; }
.dining-preview-page .service-evidence-route { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 30px; color: var(--blue); font-family: "DM Sans", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .14em; }
.dining-preview-page .service-evidence-route span { display: inline-flex; align-items: center; gap: 8px; }
.dining-preview-page .service-evidence-caption { margin: 34px 0 0; padding: 12px 0 0 15px; border-top: 1px solid var(--line); border-left: 3px solid var(--coral); color: rgba(16, 42, 67, .68); font-size: 11px; font-weight: 700; }

.dining-preview-page .service-deliverable-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 67px; }
.dining-preview-page .service-deliverable-grid article { position: relative; min-height: 390px; padding: 30px 28px 28px; border: 1px solid var(--line); background: rgba(255, 255, 255, .38); transition: transform .22s, box-shadow .22s, background .22s; }
.dining-preview-page .service-deliverable-grid article::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; content: ""; background: var(--blue); }
.dining-preview-page .service-deliverable-grid article:hover { background: #fffdf7; box-shadow: 9px 10px 0 rgba(16, 42, 67, .12); transform: translateY(-7px); }
.dining-preview-page .service-deliverable-icon { display: grid; width: 48px; height: 48px; place-items: center; color: var(--service-accent); background: rgba(240, 90, 71, .10); }
.dining-preview-page .service-deliverable-icon svg { width: 27px; height: 27px; }
.dining-preview-page .service-deliverable-number { position: absolute; top: 31px; right: 27px; margin: 0; color: rgba(16, 42, 67, .42); font-family: "DM Sans", sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.dining-preview-page .service-deliverable-grid h3 { margin: 31px 0 0; font-family: "Noto Serif JP", serif; font-size: 22px; line-height: 1.5; }
.dining-preview-page .service-deliverable-grid > article > p:not(.service-deliverable-number) { margin: 13px 0 0; color: rgba(16, 42, 67, .67); font-size: 12px; line-height: 1.85; }
.dining-preview-page .service-deliverable-grid ul { display: grid; gap: 9px; margin: 23px 0 0; padding: 18px 0 0; border-top: 1px solid var(--line); list-style: none; }
.dining-preview-page .service-deliverable-grid li { display: flex; align-items: flex-start; gap: 7px; color: rgba(16, 42, 67, .77); font-size: 11px; font-weight: 700; line-height: 1.55; }
.dining-preview-page .service-deliverable-grid li svg { flex: 0 0 auto; margin-top: 1px; color: var(--blue); }

.dining-preview-page .service-detail-process { background: #ede7da; }
.dining-preview-page .service-process-content { padding-bottom: 95px; }
.dining-preview-page .service-process-list { margin-top: 66px; border-top: 1px solid var(--line); }
.dining-preview-page .service-process-list article { display: grid; grid-template-columns: 55px minmax(0, 1fr) auto; align-items: center; gap: 26px; min-height: 125px; border-bottom: 1px solid var(--line); }
.dining-preview-page .service-process-list > article > span { color: var(--blue); font-family: "DM Sans", sans-serif; font-size: 12px; font-weight: 700; }
.dining-preview-page .service-process-list h3 { margin: 0; font-family: "Noto Serif JP", serif; font-size: 22px; line-height: 1.5; }
.dining-preview-page .service-process-list p { margin: 7px 0 0; color: rgba(16, 42, 67, .65); font-size: 12px; line-height: 1.8; }
.dining-preview-page .service-process-list svg { color: var(--blue); }

.dining-preview-page .service-detail-cta { position: relative; display: grid; grid-template-columns: 1fr minmax(360px, .76fr); align-items: center; gap: 7vw; padding: 88px 8vw; overflow: hidden; border-top: 4px solid var(--coral); color: #fff; background: var(--ink); }
.dining-preview-page .service-detail-cta::after { position: absolute; top: -170px; right: -120px; width: 390px; height: 390px; border: 1px solid rgba(255, 255, 255, .1); border-radius: 50%; box-shadow: 0 0 0 48px rgba(255, 255, 255, .02), 0 0 0 96px rgba(255, 255, 255, .014); content: ""; }
.dining-preview-page .service-cta-gateway { position: absolute; z-index: 1; top: 31px; right: 8vw; opacity: .95; }
.dining-preview-page .service-cta-copy { position: relative; z-index: 1; }
.dining-preview-page .service-cta-copy .mini-label { color: #ffc2b9; }
.dining-preview-page .service-cta-copy h2 { margin: 15px 0; font-family: "Noto Serif JP", serif; font-size: clamp(36px, 4.2vw, 60px); font-weight: 600; line-height: 1.45; letter-spacing: -.05em; }
.dining-preview-page .service-cta-copy h2 em { color: #ffc2b9; font-style: normal; }
.dining-preview-page .service-cta-copy > p:last-child { max-width: 620px; margin: 0; color: rgba(255, 255, 255, .68); font-size: 13px; line-height: 1.95; }
.dining-preview-page .service-cta-button { position: relative; z-index: 1; display: flex; min-height: 106px; align-items: center; justify-content: space-between; gap: 25px; padding-left: 30px; color: var(--ink); background: var(--coral); box-shadow: 12px 12px 0 rgba(255, 255, 255, .12); font-weight: 800; line-height: 1.4; transition: transform .2s, background .22s, color .22s, box-shadow .2s; }
.dining-preview-page .service-cta-button i { display: grid; width: 67px; align-self: stretch; place-items: center; color: #fff; background: var(--blue); font-style: normal; transition: transform .25s, background .22s; }
.dining-preview-page .service-cta-button:hover { outline: 1px solid var(--coral); color: #fff; background: transparent; box-shadow: 17px 17px 0 var(--coral); transform: translate(-5px, -5px); }
.dining-preview-page .service-cta-button:hover i { background: var(--coral); transform: translateX(5px); }
.dining-preview-page .service-cta-button:active { transform: scale(.97); }

.dining-preview-page .next-service-link { display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 30px; min-height: 145px; padding: 0 8vw; border-bottom: 1px solid var(--line); background: #efe9dc; transition: color .2s, background .2s; }
.dining-preview-page .next-service-link span { color: var(--blue); font-family: "DM Sans", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .16em; }
.dining-preview-page .next-service-link strong { font-family: "Noto Serif JP", serif; font-size: 25px; font-weight: 600; line-height: 1.55; }
.dining-preview-page .next-service-link svg { transition: transform .2s; }
.dining-preview-page .next-service-link:hover { color: #fff; background: var(--blue); }
.dining-preview-page .next-service-link:hover span { color: #ffc2b9; }
.dining-preview-page .next-service-link:hover svg { transform: translateX(8px); }
.dining-preview-page .service-page-footer { display: flex; min-height: 180px; align-items: flex-end; justify-content: space-between; gap: 25px; padding: 50px 4vw; color: rgba(255, 255, 255, .72); background: #071a29; }
.dining-preview-page .service-page-footer .brand-word { color: #fff; }
.dining-preview-page .service-page-footer p { margin: 0; font-family: "DM Sans", sans-serif; font-size: 8px; letter-spacing: .12em; }

@keyframes dining-reveal {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes dining-reveal-image {
	from { opacity: 0; transform: scale(1.025); }
	to { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: no-preference) {
	.dining-preview-page .service-detail-copy > * { animation: dining-reveal .62s cubic-bezier(.23, 1, .32, 1) both; }
	.dining-preview-page .service-detail-copy > *:nth-child(2) { animation-delay: .05s; }
	.dining-preview-page .service-detail-copy > *:nth-child(3) { animation-delay: .1s; }
	.dining-preview-page .service-detail-copy > *:nth-child(4) { animation-delay: .15s; }
	.dining-preview-page .service-detail-copy > *:nth-child(5) { animation-delay: .2s; }
	.dining-preview-page .service-detail-copy > *:nth-child(6) { animation-delay: .25s; }
	.dining-preview-page .service-detail-image { animation: dining-reveal-image .75s cubic-bezier(.23, 1, .32, 1) both .12s; }
}

@media (max-width: 1100px) {
	.dining-preview-page .service-detail-hero { grid-template-columns: 56% 44%; }
	.dining-preview-page .service-detail-copy { padding-right: 5vw; padding-left: 8vw; }
	.dining-preview-page .service-section-heading { grid-template-columns: 1fr; gap: 19px; }
	.dining-preview-page .service-section-heading .mini-label { margin: 0; }
	.dining-preview-page .service-detail-cta { grid-template-columns: 1fr .72fr; }
	.dining-preview-page .service-deliverable-grid { gap: 15px; }
	.dining-preview-page .service-deliverable-grid article { padding-right: 20px; padding-left: 20px; }
}

@media (max-width: 780px) {
	.dining-preview-page .service-page-header { grid-template-columns: 1fr auto; min-height: 72px; padding: 0 18px; }
	.dining-preview-page .service-page-header .service-back { display: none; }
	.dining-preview-page .service-page-header .header-cta { font-size: 12px; }
	.dining-preview-page .service-detail-hero { display: flex; flex-direction: column; min-height: 0; }
	.dining-preview-page .service-detail-copy { padding: 66px 25px 62px 42px; }
	.dining-preview-page .service-detail-copy::before { left: 20px; }
	.dining-preview-page .service-detail-copy::after { top: 66px; left: 13px; }
	.dining-preview-page .service-rail-gateway { top: 59px; left: 12px; }
	.dining-preview-page .service-detail-meta { flex-direction: column; align-items: flex-start; gap: 7px; }
	.dining-preview-page .service-detail-kicker { margin-top: 34px; }
	.dining-preview-page .service-detail-copy h1 { font-size: 38px; line-height: 1.43; }
	.dining-preview-page .service-detail-lead { font-size: 14px; }
	.dining-preview-page .service-route-wrap { max-width: 100%; margin-top: 31px; }
	.dining-preview-page .service-detail-route { gap: 7px; }
	.dining-preview-page .service-route-gateway { top: -4px; right: 0; }
	.dining-preview-page .service-detail-image { min-height: 430px; }
	.dining-preview-page .service-detail-image figcaption { right: 20px; bottom: 20px; left: 20px; flex-direction: column; align-items: flex-start; }
	.dining-preview-page .service-detail-situations,
	.dining-preview-page .service-detail-design,
	.dining-preview-page .service-detail-evidence,
	.dining-preview-page .service-detail-deliverables,
	.dining-preview-page .service-detail-process { grid-template-columns: 1fr; }
	.dining-preview-page .service-detail-index { padding: 42px 22px 0; border-right: 0; }
	.dining-preview-page .service-detail-index span { font-size: 24px; }
	.dining-preview-page .service-detail-index p { margin-top: 5px; writing-mode: horizontal-tb; }
	.dining-preview-page .service-detail-section-content { padding: 38px 22px 70px; }
	.dining-preview-page .service-section-heading h2 { font-size: 31px; }
	.dining-preview-page .service-situation-grid { grid-template-columns: 1fr; margin-top: 43px; }
	.dining-preview-page .service-situation-grid article { min-height: 0; padding: 24px 21px; }
	.dining-preview-page .service-situation-grid p { margin-top: 19px; font-size: 16px; }
	.dining-preview-page .service-design-content { padding-bottom: 66px; }
	.dining-preview-page .service-design-list { margin-top: 43px; }
	.dining-preview-page .service-design-list article { grid-template-columns: 34px 1fr auto; gap: 13px; min-height: 0; padding: 23px 0; }
	.dining-preview-page .service-design-list h3 { font-size: 19px; }
	.dining-preview-page .service-design-list p { font-size: 11px; }
	.dining-preview-page .service-evidence-content { grid-template-columns: 1fr; min-height: 0; }
	.dining-preview-page .service-evidence-image { min-height: 310px; }
	.dining-preview-page .service-evidence-copy { padding: 45px 22px 58px; }
	.dining-preview-page .service-evidence-copy::before { top: 45px; right: 22px; width: 56px; height: 56px; box-shadow: 0 0 0 11px rgba(11, 99, 206, .045); }
	.dining-preview-page .service-evidence-copy h2 { font-size: 29px; }
	.dining-preview-page .service-deliverable-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 43px; }
	.dining-preview-page .service-deliverable-grid article { min-height: 0; padding: 27px 24px 25px; }
	.dining-preview-page .service-deliverable-grid h3 { margin-top: 26px; }
	.dining-preview-page .service-process-content { padding-bottom: 70px; }
	.dining-preview-page .service-process-list { margin-top: 43px; }
	.dining-preview-page .service-process-list article { grid-template-columns: 36px 1fr auto; gap: 12px; min-height: 0; padding: 23px 0; }
	.dining-preview-page .service-process-list h3 { font-size: 19px; }
	.dining-preview-page .service-process-list p { font-size: 11px; }
	.dining-preview-page .service-detail-cta { grid-template-columns: 1fr; gap: 38px; padding: 68px 22px 78px; }
	.dining-preview-page .service-cta-gateway { top: 25px; right: 22px; }
	.dining-preview-page .service-cta-copy h2 { font-size: 40px; }
	.dining-preview-page .service-cta-button { min-height: 95px; padding-left: 21px; font-size: 13px; }
	.dining-preview-page .next-service-link { grid-template-columns: 1fr auto; gap: 18px; min-height: 140px; padding: 30px 22px; }
	.dining-preview-page .next-service-link span { grid-column: 1 / -1; }
	.dining-preview-page .next-service-link strong { font-size: 21px; }
	.dining-preview-page .service-page-footer { min-height: 160px; flex-direction: column; align-items: flex-start; padding: 40px 22px; }
}

@media (max-width: 420px) {
	.dining-preview-page .service-detail-copy h1 { font-size: 34px; }
	.dining-preview-page .service-detail-route { grid-template-columns: auto 1fr auto 1fr auto; }
	.dining-preview-page .service-cta-button i { width: 55px; }
}
