body {
	margin: 0;
	color: var(--color-text);
	background-color: var(--color-background);
	font-family: var(--font-family-base);
}

body.home {
	overflow-x: clip;
}

/* 各ページの冒頭：共通スクロール案内 */
.ae-page-scroll-guide {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: max-content;
    margin: 0 auto;
    padding: 8px 16px 24px;
    color: #064bfa;
    font: 700 10px/1.4 sans-serif;
    letter-spacing: 0.18em;
    text-decoration: none;
}

.ae-page-scroll-guide__arrow {
    font-size: 28px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
}

.ae-page-scroll-guide:focus-visible {
    outline: 2px solid #064bfa;
    outline-offset: 3px;
}

@media (prefers-reduced-motion: no-preference) {
    .ae-page-scroll-guide__arrow {
        animation: ae-page-scroll-guide 1.8s ease-in-out infinite;
    }
}

@keyframes ae-page-scroll-guide {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(6px);
    }
}

/* PC：冒頭と案内で1画面分 */
@media (min-width: 1200px) {
    .ae-page-first-screen {
        display: flex;
        flex-direction: column;
        min-height: calc(
            100svh - var(--wp-admin--admin-bar--height, 0px)
        );
    }

    .ae-page-first-screen > .ae-page-first-screen__hero {
        flex: 1 0 auto;
    }
}

section,
#footer {
	padding: var(--spacing-section) var(--spacing-inline);
}

h1,
h2 {
	max-width: var(--content-width);
	margin: 0 auto;
}

/* =========================
   GATEWAYS
========================= */
.ae-gateways__reveal.is-ready {
	position: relative;
	z-index: 30;
	margin-top: -100svh;
	padding-bottom: 0;
}

.ae-gateways__reveal.is-ready::after {
	content: "";
	display: block;
	height: 70svh;
}

.ae-gateways__reveal.is-ready > .ae-gateways {
	position: sticky;
	top: 0;
	transform: translate3d(0, var(--gateway-reveal-y, 0px), 0);
}

.ae-gateways {
	position: relative;
	top: auto;
	min-height: 100svh;
	padding: 6rem 2rem 7rem;
	overflow: hidden;
	background: transparent;
}

.ae-gateways__paper {
	position: absolute;
	inset: 0 -2rem;
	background-color: #f7f5ef;
	background-image:
		linear-gradient(rgba(127, 169, 214, 0.18) 1px, transparent 1px),
		linear-gradient(90deg, rgba(127, 169, 214, 0.18) 1px, transparent 1px);
	background-size: 32px 32px;
	z-index: 0;
}

.ae-gateways__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	margin: 0 auto;
	padding-top: 1rem;
}

.ae-gateways__visual {
	position: relative;
	width: min(1200px, 92vw);
	height: 760px;
	margin: 0 auto;
}

.ae-gateways__folder {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	display: block;
	text-decoration: none;
	color: inherit;
	transition: transform 560ms cubic-bezier(.22, 1, .36, 1);
}

.ae-gateways__folder-image {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 14px 20px rgba(15, 23, 42, 0.10));
	transition: filter 320ms ease;
}

.ae-gateways__visual[data-open="service"] .ae-gateways__folder--service .ae-gateways__folder-image,
.ae-gateways__visual[data-open="about"] .ae-gateways__folder--about .ae-gateways__folder-image,
.ae-gateways__visual[data-open="recruit"] .ae-gateways__folder--recruit .ae-gateways__folder-image {
	filter:
		drop-shadow(0 24px 30px rgba(15, 23, 42, 0.18))
		drop-shadow(0 8px 12px rgba(15, 23, 42, 0.10));
}

.ae-gateways__folder--recruit {
	top: 10px;
	width: 760px;
	z-index: 1;
	transform: translateX(-42%);
}

.ae-gateways__folder--about {
	top: 40px;
	width: 760px;
	z-index: 2;
	transform: translateX(-46%);
}

.ae-gateways__folder--service {
	top: 70px;
	width: 820px;
	z-index: 3;
	transform: translateX(-50%);
}

/* 画面中央まで来たら3枚を広げる */
.ae-gateways__visual.is-spread .ae-gateways__folder--service {
	transform: translateX(-88%);
}

.ae-gateways__visual.is-spread .ae-gateways__folder--about {
	transform: translateX(-50%);
}

.ae-gateways__visual.is-spread .ae-gateways__folder--recruit {
	transform: translateX(-12%);
}

/* ファイル選択｜広がった後だけ横方向に操作 */

/* 01 SERVICE */
.ae-gateways__visual.is-spread.is-interactive[data-open="service"]
.ae-gateways__folder--service {
	transform: translateX(-82%);
	z-index: 4;
}

.ae-gateways__visual.is-spread.is-interactive[data-open="service"]
.ae-gateways__folder--about {
	transform: translateX(-48%);
}

.ae-gateways__visual.is-spread.is-interactive[data-open="service"]
.ae-gateways__folder--recruit {
	transform: translateX(-10%);
}


/* 02 ABOUT */
.ae-gateways__visual.is-spread.is-interactive[data-open="about"]
.ae-gateways__folder--service {
	transform: translateX(-90%);
}

.ae-gateways__visual.is-spread.is-interactive[data-open="about"]
.ae-gateways__folder--about {
	transform: translateX(-50%);
	z-index: 4;
}

.ae-gateways__visual.is-spread.is-interactive[data-open="about"]
.ae-gateways__folder--recruit {
	transform: translateX(-10%);
}


/* 03 RECRUIT */
.ae-gateways__visual.is-spread.is-interactive[data-open="recruit"]
.ae-gateways__folder--service {
	transform: translateX(-90%);
}

.ae-gateways__visual.is-spread.is-interactive[data-open="recruit"]
.ae-gateways__folder--about {
	transform: translateX(-52%);
}

.ae-gateways__visual.is-spread.is-interactive[data-open="recruit"]
.ae-gateways__folder--recruit {
	transform: translateX(-18%);
	z-index: 4;
}

/* 各ファイルの左上の出っ張りに番号を載せる */
.ae-gateways__folder-top--recruit .ae-gateways__tab {
	top: 44px;
	left: 144px;
}

.ae-gateways__folder-top--about .ae-gateways__tab {
	top: 46px;
	left: 148px;
}

.ae-gateways__folder-top--service .ae-gateways__tab {
	top: 50px;
	left: 172px;
}

.ae-gateways__folder-top {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.ae-gateways__tab {
	position: absolute;
	top: 24px;
	left: 34px;
	margin: 0;
}

.ae-gateways__keywords {
	position: absolute;
	top: 26px;
	right: 44px;
	margin: 0;
	font-size: 14px;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.ae-gateways__content {
	position: absolute;
	inset: 0;
}

.ae-gateways__main {
	position: absolute;
	top: 160px;
	left: 120px;
	max-width: 560px;
}

.ae-gateways__headline {
	margin: 0;

	font-size: clamp(42px, 5vw, 78px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.04em;

	color: #101820;

	white-space: nowrap;
}

.ae-gateways__sub {
	margin: 1.5rem 0 0;
	font-size: 1rem;
	line-height: 1.7;
	letter-spacing: 0.03em;
	color: #111827;
}

.ae-gateways__line {
	width: 68px;
	height: 1px;
	margin-top: 1.5rem;
	background: #111827;
}

.ae-gateways__list {
	margin-top: 1.4rem;
}

.ae-gateways__list p {
	margin: 0.2rem 0;
	font-size: 0.84rem;
	letter-spacing: 0.16em;
	color: #2a2a2a;
}

.ae-gateways__cta {
	position: absolute;
	right: 70px;
	top: 280px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.85rem;
}

.ae-gateways__arrow {
	display: grid;
	place-items: center;
	width: 88px;
	height: 88px;
	border: 1.5px solid #111827;
	border-radius: 50%;
	font-size: 2.8rem;
	line-height: 1;
	color: #111827;
}

.ae-gateways__viewmore {
	font-size: 0.78rem;
	letter-spacing: 0.16em;
	color: #111827;
}

.ae-gateways__mini-copy {
	position: absolute;
	top: 160px;
	right: 92px;
	margin: 0;
	font-size: 0.76rem;
	line-height: 1.45;
	letter-spacing: 0.14em;
	color: #2d2d2d;
}

.ae-gateways__footer {
	position: relative;
	z-index: 1;
	max-width: none;
	margin: 1rem auto 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: end;
	gap: 1rem;
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	color: #111827;
}

.ae-gateways__footer {
	display: none;
}

.ae-gateways__footer-left {
	line-height: 1.7;
}

.ae-gateways__footer-center {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.2rem;
}

.ae-gateways__footer-arrow {
	font-size: 1.1rem;
}

.ae-gateways__footer-right {
	text-align: right;
	line-height: 1.7;
}

.ae-gateways__footer-right span {
	font-size: 0.72rem;
	letter-spacing: 0.18em;
}

@media (max-width: 1200px) {
	.ae-gateways__inner {
		grid-template-columns: 1fr;
	}

	.ae-gateways__side {
		display: none;
	}

	.ae-gateways__visual {
		height: 680px;
	}

	.ae-gateways__folder--recruit,
	.ae-gateways__folder--about {
		width: 680px;
	}

	.ae-gateways__folder--service {
		width: 740px;
	}

	.ae-gateways__main {
		top: 140px;
		left: 90px;
		max-width: 360px;
	}

	.ae-gateways__cta {
		right: 54px;
		top: 250px;
	}

	.ae-gateways__footer {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.ae-gateways__footer-left,
	.ae-gateways__footer-right {
		text-align: center;
	}
}
.ae-gateways__title {
	margin: 0;
	font-family: "Zen Old Mincho", "Noto Serif JP", serif;
	font-size: clamp(56px, 6.2vw, 110px);
	font-weight: 700;
	line-height: 0.92;
	letter-spacing: -0.06em;
	color: #0f1726;
}
/* =========================================
   PAST｜古いPC
   ========================================= */

.ae-past {
	position: relative;
	min-height: 360svh;
	padding: 0;
	overflow: clip;

	background-color: #f7f5ef;
	background-image:
		linear-gradient(rgba(127, 169, 214, 0.18) 1px, transparent 1px),
		linear-gradient(90deg, rgba(127, 169, 214, 0.18) 1px, transparent 1px);
	background-size: 32px 32px;
}

.ae-past__inner {
	position: sticky;
	top: 0;
	width: 100%;
	height: 100svh;
	overflow: hidden;
}

/* PAST：PCの周囲に配置する文字 */
.ae-past__decoration {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    color: #151515;
    font-family: "Courier New", monospace;
    font-weight: 400;
    opacity: var(--past-decoration-opacity, 1);
}

.ae-past__decoration p {
    margin: 0;
}

.ae-past__edition,
.ae-past__top-note,
.ae-past__left-note,
.ae-past__right-note,
.ae-past__index,
.ae-past__bottom-note {
    position: absolute;
    font-size: clamp(9px, 0.85vw, 13px);
    line-height: 1.65;
    letter-spacing: 0.08em;
}

.ae-past__edition {
    top: 3%;
    left: 2.7%;
}

.ae-past__edition::after,
.ae-past__top-note::after {
    content: "";
    display: block;
    width: 65px;
    margin-top: 12px;
    border-top: 1px solid #777;
}

.ae-past__headline {
    position: absolute;
    top: 2%;
    left: 14%;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(48px, min(7.8vw, 12svh), 120px);
    font-weight: 500;
    line-height: 0.9;
    letter-spacing: -0.065em;
}

.ae-past__top-note {
    top: 3%;
    right: 2.7%;
}

.ae-past__left-note {
    top: 29%;
    left: 2.7%;
    width: 17%;
}

.ae-past__left-note p + p,
.ae-past__right-note p + p {
    margin-top: clamp(14px, 2.5svh, 28px);
}

.ae-past__services {
    padding-bottom: 14px;
    border-bottom: 1px solid #aaa;
}

.ae-past__signature {
    position: absolute;
    top: 48%;
    left: 21%;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(17px, 2vw, 30px);
    font-style: italic;
    line-height: 1.2;
    transform: rotate(-12deg);
}

.ae-past__right-note {
    top: 28%;
    right: 3%;
    width: 23%;
}

.ae-past__statement {
    font-size: clamp(18px, 2.1vw, 32px);
    line-height: 1.15;
    letter-spacing: 0.02em;
}

.ae-past__since {
    position: absolute;
    right: 5%;
    bottom: 16%;
    padding-bottom: 5px;
    border-bottom: 1px solid currentColor;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(24px, 3vw, 46px);
    font-style: italic;
    transform: rotate(-10deg);
}

.ae-past__index {
    bottom: 5%;
    left: 2.7%;
}

.ae-past__index > span {
    display: block;
    margin-bottom: 12px;
    font-size: 32px;
    line-height: 1;
}

.ae-past__scroll {
    position: absolute;
    bottom: 3%;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    white-space: nowrap;
    font-size: 12px;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

.ae-past__scroll > span {
    display: inline-block;
    font-size: 26px;
}

.ae-past__bottom-note {
    right: 3%;
    bottom: 4%;
    padding: 7px 0;
    border-top: 1px solid #777;
    border-bottom: 1px solid #777;
}

/* 高さが低い画面では、文章を絞って重なりを防ぐ */
@media (max-height: 760px) {
    .ae-past__left-note p:not(:first-child),
    .ae-past__right-note p:not(:first-child),
    .ae-past__signature {
        display: none;
    }
}

/* タブレット・スマートフォン */
@media (max-width: 900px) {
    .ae-past__headline {
        top: 12%;
        left: 6%;
        font-size: clamp(42px, min(9vw, 11svh), 80px);
    }

    .ae-past__edition {
        left: 6%;
        font-size: 9px;
    }

    .ae-past__top-note {
        right: 6%;
        font-size: 9px;
    }

    .ae-past__left-note,
    .ae-past__right-note,
    .ae-past__signature,
    .ae-past__bottom-note {
        display: none;
    }

    .ae-past__index {
        left: 6%;
        bottom: 10%;
        font-size: 9px;
    }

    .ae-past__since {
        right: 6%;
        bottom: 13%;
        font-size: 24px;
    }
}

.ae-past__stage {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;

	width: 100%;
	height: 100%;
}

.ae-past__pc {
	position: relative;
	z-index: 2;
	display: block;
	pointer-events: none;

	width: min(720px, 68vw);
	height: auto;

	transform:
    translate(
        var(--past-pc-x, 0px),
        var(--past-pc-y, 0px)
    )
    scale(var(--past-pc-scale, 1));

transform-origin: 45.3% 32%;

	will-change: transform;
}

/* PAST：ズーム後のCRTメニュー */
.ae-past__screen {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 1;

    width: var(--terminal-width, 0px);
    height: var(--terminal-height, 0px);

    display: grid;
    place-items: center;
    padding: clamp(20px, 4vw, 56px);
    box-sizing: border-box;
    overflow: hidden;

    color: #79ff9b;
    background: radial-gradient(
        ellipse at center,
        #071b10 0%,
        #020905 65%,
        #000 100%
    );

    visibility: hidden;
    pointer-events: none;

    transform-origin: center;
    transform:
        translate(-50%, -50%)
        translate(
            var(--terminal-x, 0px),
            var(--terminal-y, 0px)
        )
        scale(var(--terminal-scale, 0));

    will-change: transform;
}

/* 位置計算ができたら、PC内に表示 */
.ae-past.is-terminal-positioned .ae-past__screen {
    visibility: visible;
}

/* 最大ズームで操作可能にする */
.ae-past.is-terminal-visible .ae-past__screen {
    pointer-events: auto;
}

/* 薄い走査線。ボタン操作を妨げない */
.ae-past__screen::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: repeating-linear-gradient(
        to bottom,
        transparent 0,
        transparent 2px,
        rgba(0, 0, 0, 0.2) 2px,
        rgba(0, 0, 0, 0.2) 4px
    );
}

.ae-terminal {
    width: min(100%, 1050px);
    min-width: 0;
    font-family: "Courier New", "MS Gothic", monospace;
    font-size: clamp(12px, 1.5vw, 20px);
    line-height: 1.6;
    letter-spacing: 0.06em;
    text-shadow: 0 0 8px rgba(95, 255, 140, 0.5);
}

.ae-terminal__header,
.ae-terminal__footer {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
}

.ae-terminal__header {
    padding-bottom: 16px;
    border-bottom: 1px solid currentColor;
}

.ae-terminal__main {
    padding: clamp(24px, 5vh, 60px) 0;
}

.ae-terminal__label {
    margin: 0 0 12px;
    font-size: clamp(14px, 2.5vw, 32px);
}

.ae-terminal__question {
    margin: 0 0 24px;
    color: inherit;
    font-family: inherit;
    font-size: clamp(18px, 3vw, 36px);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: inherit;
}

.ae-terminal__choices {
    display: grid;
    gap: 10px;
    width: min(100%, 380px);
}

.ae-terminal__choice {
    appearance: none;
    display: flex;
    align-items: center;
    gap: 18px;
    width: 100%;
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: 0;
    color: inherit;
    background: transparent;
    font: inherit;
    font-size: clamp(20px, 2.6vw, 32px);
    text-align: left;
    text-shadow: inherit;
    cursor: pointer;
}

.ae-terminal__arrow {
    opacity: 0;
}

.ae-terminal__choice:first-child {
    border-color: currentColor;
}

.ae-terminal__choice:hover,
.ae-terminal__choice:focus-visible {
    color: #021007;
    background: #79ff9b;
    text-shadow: none;
    outline: 2px solid #79ff9b;
    outline-offset: 4px;
}

.ae-terminal__choice:first-child .ae-terminal__arrow,
.ae-terminal__choice:hover .ae-terminal__arrow,
.ae-terminal__choice:focus-visible .ae-terminal__arrow {
    opacity: 1;
}

.ae-terminal__choices:has(.ae-terminal__choice:nth-child(2):hover)
.ae-terminal__choice:first-child .ae-terminal__arrow,
.ae-terminal__choices:has(.ae-terminal__choice:nth-child(2):focus-visible)
.ae-terminal__choice:first-child .ae-terminal__arrow {
    opacity: 0;
}

.ae-terminal__index {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 24px;
    padding: 20px 0;
    border-top: 1px dashed currentColor;
}

.ae-terminal__footer {
    margin-top: 20px;
    font-size: 0.8em;
}

.ae-terminal__cursor {
    animation: ae-terminal-blink 1s steps(1) infinite;
}

@keyframes ae-terminal-blink {
    50% {
        opacity: 0;
    }
}

@media (max-width: 600px) {
    .ae-terminal__index {
        grid-template-columns: 1fr;
    }

    .ae-terminal__footer {
        flex-direction: column;
        gap: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ae-past__screen {
        transition: none;
    }

    .ae-terminal__cursor {
        animation: none;
    }
}
/* Tablet: contain all three folders throughout the spread animation */
@media (min-width: 651px) and (max-width: 1100px) {
  .ae-gateways {
    box-sizing: border-box;
    height: 100svh;
    min-height: 100svh;
    padding: 72px 24px 120px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .ae-gateways__inner { padding-top: 0; }
  .ae-gateways__visual {
    width: 100%;
    max-width: 960px;
    height: min(460px, calc(100svh - 220px));
  }
  .ae-gateways__folder--service,
  .ae-gateways__folder--about,
  .ae-gateways__folder--recruit {
    width: min(46%, 64svh);
  }
  .ae-gateways__folder--recruit { top: 10px; }
  .ae-gateways__folder--about { top: 35px; }
  .ae-gateways__folder--service { top: 60px; }
}
/* Touch layouts: compact flow from the folders to the old PC. */
@media (max-width: 1100px) {
  .ae-gateways__reveal.is-ready { margin-top: 0; }
  .ae-gateways__reveal.is-ready::after { height: 0; }
  .ae-gateways__reveal.is-ready > .ae-gateways {
    position: relative;
    top: auto;
    transform: none;
  }
  .ae-gateways {
    box-sizing: border-box;
    height: auto;
    min-height: 0;
    padding: 48px 24px 56px;
  }
  .ae-gateways__inner { padding-top: 0; }
  .ae-gateways__visual {
    width: 100%;
    max-width: 960px;
    height: calc(min(100vw - 48px, 960px) * .307 + 80px);
  }
  .ae-gateways__folder--service,
  .ae-gateways__folder--about,
  .ae-gateways__folder--recruit { width: 46%; cursor: pointer; touch-action: manipulation; }
  .ae-gateways__folder--recruit { top: 10px; }
  .ae-gateways__folder--about { top: 35px; }
  .ae-gateways__folder--service { top: 60px; }
  .ae-gateways__footer-center { display: none; }
  .ae-gateways__folder:focus-visible { outline: 2px solid #24aadd; outline-offset: 4px; }
}
@media (max-width: 650px) {
  .ae-gateways { padding: 40px 16px 40px; }
  .ae-gateways__visual { height: calc((100vw - 32px) * .307 + 80px); }
}
/* HERO共通 */
.ae-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

html {
	scrollbar-gutter: auto;
}
html.is-hero-locked,
html.is-hero-locked body {
	overflow: hidden;
}

html.is-hero-locked {
	padding-right: var(--hero-scrollbar-space, 0px);
}

html.is-hero-complete .ae-hero {
	display: none;
}
/* 各ページ・店内で共通の戻るボタン位置 */
:root {
    --ae-return-top: 24px;
    --ae-return-right: 40px;
    --ae-return-admin: 0px;
}

body.admin-bar {
    --ae-return-admin: 32px;
}

@media (max-width: 782px) {
    body.admin-bar {
        --ae-return-admin: 46px;
    }
}

/* 各ページの上端を配置基準にする */
body.ae-consult-page,
body.ae-about-page,
body.ae-careers-page,
body.ae-numbers-page,
body.ae-ai-page,
body.ae-contact-page,
body.ae-strengths-new-page {
    position: relative;
}

.ae-showcase-return {
    position: absolute;
    z-index: 20;
    top: var(--ae-return-top);
    right: var(--ae-return-right);
    margin: 0;
    padding: 0;
}

/* 店内も共通の上位置にそろえる */
.ae-showcase > .ae-showcase-return--street {
    top: var(--ae-return-top);
}

/* 店内への切り替え途中には表示しない */
.ae-showcase.is-entering > .ae-showcase-return--street {
    visibility: hidden;
}

/* 強みページの本文位置は維持する */
.ae-strengths-new-page .ae-sn__bar {
    min-height: 96px;
}
body .ae-showcase-return__link {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: 20px;
    min-height: 44px;
    padding: 10px 22px;
    border: 1px solid #064bfa;
    border-radius: 999px;
    background: #fff;
    color: #064bfa;
    font: 700 14px/1.85 var(--font-family-base);
    text-decoration: none;
    white-space: nowrap;
}

body .ae-showcase-return__link:focus-visible {
    outline: 3px solid #064bfa;
    outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine)
       and (prefers-reduced-motion: no-preference) {
    body .ae-showcase-return__link {
        transition: transform 240ms ease;
    }

    body .ae-showcase-return__link:hover {
        transform: translateY(-4px);
        background: #eef5ff;
    }
}

@media (max-width: 700px) {
    :root {
        --ae-return-top: 16px;
        --ae-return-right: 16px;
    }

    body .ae-showcase-return__link {
        gap: 8px;
        padding: 8px 12px;
        font-size: 12px;
    }

    .ae-strengths-new-page .ae-sn__bar {
        min-height: 92px;
    }
}
/* 各詳細ページ：下部の戻るボタンを右寄せに統一 */
body.ae-work-detail-page .ae-work-detail__footer,
body.ae-diagnosis-page .ae-diagnosis__footer,
body.ae-management-page .ae-management__back {
    box-sizing: border-box;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
    text-align: right;
}

/* 旧実績詳細の注記は、戻るボタンの上へ */
body.ae-diagnosis-page .ae-diagnosis__footer .ae-diagnosis__note {
    order: -1;
    flex-basis: 100%;
    margin: 0;
}
/* ダイアログ内の閉じるボタンのデザイン */
body.ae-careers-page .ae-benefits-dialog__footer .ae-careers-button[data-benefits-close],
body.ae-ai-page .ae-ai__report-bottom > .ae-ai__report-close {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 1 auto;
    gap: 8px;
    width: auto;
    min-width: 0;
    max-width: 100%;
    height: auto;
    min-height: 52px;
    border: 2px solid #064bfa;
    border-radius: 0;
    padding: 12px 25px;
    background: #fff;
    color: #064bfa;
    box-shadow: 3px 3px 0 #a9cdff;
    font-family: var(--font-family-base, Arial, sans-serif);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: normal;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    cursor: pointer;

    @media (hover: hover) and (pointer: fine) {
        &:hover {
            transform: none;
            background: #064bfa;
            color: #fff;
            box-shadow: 3px 3px 0 #a9cdff;
        }
    }

    &:active {
        transform: translate(2px, 2px);
        box-shadow: 1px 1px 0 #a9cdff;
    }

    &:focus-visible {
        outline: 3px solid #064bfa;
        outline-offset: 5px;
    }

    /* スマホ：PCと同じデザインでサイズだけ小さく */
    @media (max-width: 650px) {
        width: 180px;
        max-width: 100%;
        height: auto;
        min-height: 36px;
        gap: 6px;
        padding: 6px 12px;
        font-size: 11px;
    }
}
/* スマホ：相談・採用の詳細／応募ボタン */
@media (max-width: 650px) {
    body.ae-consult-page .ae-consult__detail-button,
    body.ae-careers-page:not(.ae-careers-work-page)
    :is(#career-members, #career-style, #career-entry)
    .ae-careers-button:not([data-benefits-close], [data-faq-close]) {
        box-sizing: border-box;
        display: inline-flex;
        flex: 0 1 auto;
        align-items: center;
        justify-content: space-between;
        align-self: flex-start;
        justify-self: start;
        width: fit-content;
        max-width: 100%;
        height: auto;
        min-height: 36px;
        margin-inline: 0;
        gap: 16px;
        border: 2px solid #064bfa;
        border-radius: 0;
        padding: 6px 12px;
        background: #fff;
        color: #064bfa;
        box-shadow: 3px 3px 0 #a9cdff;
        font-family: var(--font-family-base, Arial, sans-serif);
        font-size: 13px;
        font-weight: 700;
        line-height: 1.6;
        letter-spacing: normal;
        text-align: left;
        text-decoration: none;
        white-space: normal;
    }

    body.ae-careers-page:not(.ae-careers-work-page)
    .ae-careers-people-window__footer {
        justify-content: flex-start;
    }
}
/* スマホ：相談・採用の詳細／応募ボタン */
@media (max-width: 650px) {
    body.ae-consult-page .ae-consult__detail-button,
    body.ae-careers-page:not(.ae-careers-work-page)
    :is(#career-members, #career-style, #career-entry)
    .ae-careers-button:not([data-benefits-close], [data-faq-close]) {
        box-sizing: border-box;
        display: inline-flex;
        flex: 0 1 auto;
        align-items: center;
        justify-content: space-between;
        align-self: flex-start;
        justify-self: start;
        width: fit-content;
        max-width: 100%;
        height: auto;
        min-height: 36px;
        margin-inline: 0;
        gap: 16px;
        border: 2px solid #064bfa;
        border-radius: 0;
        padding: 6px 12px;
        background: #fff;
        color: #064bfa;
        box-shadow: 3px 3px 0 #a9cdff;
        font-family: var(--font-family-base, Arial, sans-serif);
        font-size: 13px;
        font-weight: 700;
        line-height: 1.6;
        letter-spacing: normal;
        text-align: left;
        text-decoration: none;
        white-space: normal;
    }

    body.ae-careers-page:not(.ae-careers-work-page)
    .ae-careers-people-window__footer {
        justify-content: flex-start;
    }
}
/* 共通目次：未選択ボタンの淡い枠と小さな影 */
body .ae-consult__floating-links a:not([aria-current="location"]),
body .ae-ai__floating-links a:not([aria-current="location"]),
body .ae-numbers-nav__links a:not([aria-current="location"]) {
    border-color: #d2e2ff;
    background: #fff;
    box-shadow:
        0 2px 4px rgba(6, 75, 250, .07),
        inset 0 1px 0 rgba(255, 255, 255, .9);
}

/* 共通目次：プレート全体を少し浮かせる */
body .ae-consult__floating-links,
body .ae-ai__floating-links,
body .ae-numbers-nav__links {
    box-shadow:
        0 5px 14px rgba(6, 75, 250, .09),
        0 12px 28px rgba(30, 70, 130, .06),
        inset 0 1px 0 rgba(255, 255, 255, .95);
}
/* メニューちゃん内のページ目次：スマホ用 */
.ae-site-menu .ae-site-menu__page-index {
    display: block;
}

@media (max-width: 780px) {
    /* 3ページ共通：右上の目次を非表示 */
    body .ae-consult__floating-nav,
    body .ae-ai__floating-nav,
    body .ae-numbers-nav {
        display: none;
    }

    /* メニューちゃん内に、そのページの目次を表示 */
    .ae-site-menu .ae-site-menu__page-index {
        display: block;
    }

    .ae-site-menu .ae-site-menu__page-index h3 {
        color: #064bfa;
    }

    .ae-site-menu .ae-site-menu__page-index a {
        padding-block: 7px;
    }
}