:root {
	--akiba-alt-ink: #14304d;
	--akiba-alt-ink-soft: #496173;
	--akiba-alt-lake: #3f7792;
	--akiba-alt-lake-dark: #2f6681;
	--akiba-alt-line: #d5e5ed;
	--akiba-alt-mist: #eef8fc;
	--akiba-alt-paper: #fffdf8;
	--akiba-alt-white: #ffffff;
	--akiba-alt-shadow: 0 18px 45px rgba(36, 83, 108, 0.11);
	--akiba-alt-serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	--akiba-alt-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
	/* Shared page gutter — spacing between content and the screen edge.
	   This is the value the footer CTA uses; every region references it so the
	   left/right padding stays consistent across the whole site. */
	--akiba-gutter: clamp(28px, 4vw, 78px);
}

body {
	margin: 0;
	background: var(--akiba-alt-paper);
	color: var(--akiba-alt-ink);
	font-family: var(--akiba-alt-sans);
	letter-spacing: 0;
}

#masthead,
.site-header,
.site-footer {
	display: none !important;
}

/* Pages in this design use custom hero patterns (.akiba-hero /
   .akiba-page-hero) that already reserve space for the fixed akiba-alt
   header, so Kadence's own title/hero markup can stay hidden there. Blog
   posts render through Kadence's default single-post template though, so
   hiding these dropped the post title entirely and let the content run in
   flush with the top of the page, underneath the header. */
body:not(.single-post) .entry-hero,
body:not(.single-post) .page-header,
body:not(.single-post) .entry-header,
body:not(.single-post) .post-thumbnail {
	display: none !important;
}

.content-area {
	margin: 0;
}

/* Clear the fixed/absolute akiba-alt header so a single post's title and
   content don't render underneath it. */
body.single-post .content-area {
	padding-top: clamp(120px, 14vw, 170px);
}

.content-container,
.site-container,
.entry-content-wrap {
	max-width: none;
	padding: 0;
}

/* Kadence's boxed-content article applies a negative side margin and an
   over-wide (100% + 32px) width to bleed its background to the edge. That
   shifts the whole content area off-centre and shrinks every .akiba-container
   gutter to ~12px instead of the intended gutter. Reset it so content lands
   flush with the viewport and the gutter resolves correctly. */
.entry.content-bg,
.single-entry,
.entry-content,
.entry-content-wrap {
	width: 100% !important;
	max-width: 100% !important;
	margin-inline: 0 !important;
}

/* Kadence's "boxed content" style also paints the single-post article a flat
   white (Kadence's own content-bg surface color), which reads as a mismatched
   panel against this theme's cream (--akiba-alt-paper) page background —
   blend it into the page instead of standing out as a white box. */
.single-post .entry.content-bg,
.single-post .single-entry {
	background: var(--akiba-alt-paper) !important;
}

/* Every other page is authored with .akiba-container blocks, which supply the
   page's left/right gutter. Blog posts render through Kadence's default
   single-post template instead, so once the padding reset above strips
   Kadence's own boxed-content spacing, the post title and body text run
   flush to the viewport edge — most noticeable on mobile, where there's no
   wide margin left to hide it. Reapply the same shared gutter so post
   content lines up with every other page at every screen size. */
.single-post .entry-content-wrap {
	padding-inline: var(--akiba-gutter);
}

/* The prev/next post-navigation links render as a sibling of .entry, outside
   .entry-content-wrap, so the gutter above doesn't reach them — same
   flush-to-edge problem, same fix. */
.single-post .post-navigation {
	padding-inline: var(--akiba-gutter);
}

/* Kadence's "Single Post Boxed Shadow" customizer setting draws a drop shadow
   on the article box itself (.entry.single-entry). With the box's background
   already blended into the page above, that shadow just reads as a stray
   line floating between the post content and the prev/next nav — drop it. */
.entry.single-entry {
	box-shadow: none !important;
}

.akiba-alt-header {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 50;
	width: 100%;
	color: var(--akiba-alt-ink);
}

.akiba-alt-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	width: min(100%, 1760px);
	margin-inline: auto;
	padding: 40px var(--akiba-gutter) 0;
}

.akiba-alt-logo {
	display: inline-grid;
	gap: 5px;
	color: var(--akiba-alt-ink) !important;
	text-decoration: none;
	white-space: nowrap;
}

.akiba-alt-logo-ja {
	font-family: var(--akiba-alt-serif);
	font-size: clamp(1.42rem, 2vw, 2rem);
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.2;
}

.akiba-alt-logo-en {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.akiba-alt-nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: clamp(18px, 2.3vw, 44px);
	font-family: var(--akiba-alt-serif);
	font-size: 0.95rem;
	font-weight: 600;
	white-space: nowrap;
}

.akiba-alt-nav-item {
	position: relative;
}

.akiba-alt-nav a,
.akiba-alt-footer-nav a {
	position: relative;
	color: var(--akiba-alt-ink) !important;
	text-decoration: none;
}

.akiba-alt-nav-parent {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.akiba-alt-nav-parent::before {
	content: "";
	order: 2;
	width: 7px;
	height: 7px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	opacity: 0.72;
}

.akiba-alt-nav > a::after,
.akiba-alt-nav-parent::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -14px;
	width: 0;
	height: 1px;
	background: currentColor;
	transform: translateX(-50%);
	transition: width 0.22s ease;
}

.akiba-alt-nav > a:hover::after,
.akiba-alt-nav > a.is-current::after,
.akiba-alt-nav-parent:hover::after,
.akiba-alt-nav-parent.is-current::after {
	width: 42px;
}

.akiba-alt-subnav {
	position: absolute;
	top: calc(100% + 18px);
	left: 50%;
	display: grid;
	min-width: 230px;
	padding: 12px;
	background: rgba(255, 253, 248, 0.98);
	border: 1px solid var(--akiba-alt-line);
	border-radius: 8px;
	box-shadow: var(--akiba-alt-shadow);
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 8px);
	transition: opacity 0.18s ease, transform 0.18s ease;
}

.akiba-alt-subnav::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 18px;
}

.akiba-alt-subnav a {
	padding: 10px 12px;
	border-radius: 6px;
	font-family: var(--akiba-alt-sans);
	font-size: 0.88rem;
	font-weight: 700;
	white-space: nowrap;
}

.akiba-alt-subnav a:hover,
.akiba-alt-subnav a:focus-visible {
	background: var(--akiba-alt-mist);
}

@media (min-width: 1181px) {
	.akiba-alt-nav-item-has-children:hover .akiba-alt-subnav,
	.akiba-alt-nav-item-has-children:focus-within .akiba-alt-subnav {
		opacity: 1;
		pointer-events: auto;
		transform: translate(-50%, 0);
	}
}

.akiba-alt-footer-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	padding: 0 24px;
	background: var(--akiba-alt-lake);
	border-radius: 8px;
	color: var(--akiba-alt-white) !important;
	box-shadow: 0 12px 28px rgba(47, 102, 129, 0.22);
	font-family: var(--akiba-alt-sans);
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.akiba-alt-footer-button::before {
	content: "";
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("../images/icons/home-contact-line.svg") center / contain no-repeat;
	mask: url("../images/icons/home-contact-line.svg") center / contain no-repeat;
	opacity: 0.9;
}

.akiba-alt-footer-button:hover {
	background: var(--akiba-alt-lake-dark);
	transform: translateY(-2px);
}

.akiba-alt-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--akiba-alt-ink);
	line-height: 1;
	transition: none;
	transform: none;
}

.akiba-alt-menu-toggle:hover,
.akiba-alt-menu-toggle:focus,
.akiba-alt-menu-toggle:focus-visible,
.akiba-alt-menu-toggle:active,
.akiba-alt-menu-toggle[aria-expanded="true"] {
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--akiba-alt-ink);
	outline: none;
	transition: none;
	transform: none;
}

.akiba-alt-menu-icon {
	display: block;
	width: 22px;
	height: 22px;
}

.akiba-site {
	background: var(--akiba-alt-paper);
	color: var(--akiba-alt-ink);
	font-family: var(--akiba-alt-sans);
	letter-spacing: 0;
}

.akiba-site * {
	box-sizing: border-box;
}

.akiba-site a {
	color: inherit;
}

.akiba-container {
	width: min(100%, 1640px);
	margin-inline: auto;
	padding-inline: var(--akiba-gutter);
}

.akiba-narrow {
	width: min(100%, 880px);
}

.akiba-section {
	padding: clamp(72px, 8vw, 122px) 0;
	background: var(--akiba-alt-paper);
}

.akiba-section-soft,
.akiba-section-paper {
	background: var(--akiba-alt-paper);
}

.akiba-section-blue {
	background: linear-gradient(180deg, #f0f9fd 0%, #ffffff 100%);
}

.akiba-section-green {
	background: #f5faf7;
}

.akiba-site h1,
.akiba-site h2,
.akiba-site h3,
.akiba-site p {
	margin-top: 0;
}

.akiba-site h1,
.akiba-site h2 {
	font-family: var(--akiba-alt-serif);
	font-weight: 500;
	letter-spacing: 0.08em;
}

.akiba-site h1 {
	margin-bottom: 30px;
	font-size: clamp(2.8rem, 5.2vw, 5.65rem);
	line-height: 1.55;
}

.akiba-site h2 {
	margin-bottom: 18px;
	font-size: clamp(1.85rem, 3vw, 2.72rem);
	line-height: 1.55;
}

.akiba-site h3 {
	margin-bottom: 12px;
	font-family: var(--akiba-alt-serif);
	font-size: clamp(1.08rem, 1.5vw, 1.35rem);
	font-weight: 600;
	line-height: 1.55;
	letter-spacing: 0.08em;
}

.akiba-site p {
	color: var(--akiba-alt-ink-soft);
	font-size: 0.98rem;
	line-height: 2.15;
}

.akiba-eyebrow,
.akiba-kicker {
	display: block;
	margin: 0 0 14px;
	color: var(--akiba-alt-lake);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.26em;
	text-transform: uppercase;
}

.akiba-kicker::before {
	display: none;
}

.akiba-lead {
	max-width: 660px;
	font-family: var(--akiba-alt-serif);
	font-size: clamp(1.02rem, 1.25vw, 1.18rem);
	font-weight: 600;
	line-height: 2.2;
	letter-spacing: 0.06em;
}

.akiba-hero {
	position: relative;
	display: grid;
	align-items: center;
	min-height: 100vh;
	overflow: hidden;
	padding: clamp(155px, 14vw, 230px) 0 clamp(92px, 9vw, 142px);
	background:
		linear-gradient(90deg, rgba(255, 253, 248, 0.98) 0%, rgba(255, 253, 248, 0.92) 25%, rgba(255, 253, 248, 0.28) 55%, rgba(255, 253, 248, 0) 100%),
		url("../images/hero-matsudo.png") right bottom / cover no-repeat,
		var(--akiba-alt-paper);
}

.akiba-hero::before {
	display: none;
}

.akiba-hero::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 36%;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(255, 253, 248, 0) 0%, var(--akiba-alt-paper) 100%);
}

.akiba-hero-grid {
	position: relative;
	z-index: 1;
	display: block;
}

.akiba-hero-copy {
	width: min(48vw, 720px);
	min-width: 520px;
}

/* Keeps "もっと話しやすく。" from breaking mid-word and leaving a lone 「く。」
   on its own line — but only where it actually fits; on narrow screens this
   is overridden back to normal so the phrase wraps instead of overflowing
   past the page's right edge. */
.akiba-hero-line2 {
	white-space: nowrap;
}

.akiba-hero-visual {
	display: none !important;
}

.akiba-button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 58px;
}

.akiba-button,
.wp-block-button.akiba-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	padding: 0 26px;
	background: var(--akiba-alt-lake);
	border: 0;
	border-radius: 8px;
	color: var(--akiba-alt-white) !important;
	box-shadow: 0 14px 30px rgba(47, 102, 129, 0.2);
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.wp-block-button.akiba-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: inherit;
	padding: 0;
	background: transparent !important;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: inherit !important;
	font: inherit;
	line-height: inherit;
	text-decoration: none;
}

.akiba-button::before,
.wp-block-button.akiba-button::before,
.wp-block-button.akiba-button .wp-block-button__link::before {
	display: none;
	content: none;
}

.akiba-button:hover,
.akiba-card:hover,
.wp-block-button.akiba-button:hover {
	transform: translateY(-2px);
}

.akiba-button-secondary,
.wp-block-button.akiba-button-secondary {
	background: rgba(255, 255, 255, 0.86);
	border: 1px solid var(--akiba-alt-line);
	color: var(--akiba-alt-lake-dark) !important;
	box-shadow: none;
}

.akiba-section-heading {
	max-width: 820px;
	margin: 0 auto 58px;
	text-align: center;
}

.akiba-section-heading::after,
.akiba-statement::after {
	content: "";
	display: block;
	width: 38px;
	height: 1px;
	margin: 18px auto 0;
	background: var(--akiba-alt-lake);
	opacity: 0.5;
}

.akiba-section-heading.align-left {
	margin-inline: 0;
	text-align: left;
}

.akiba-section-heading.align-left::after {
	margin-left: 0;
}

.akiba-statement {
	max-width: 880px;
	margin-inline: auto;
	padding: 0;
	border: 0;
	text-align: center;
}

.akiba-statement p {
	margin-inline: auto;
	max-width: 720px;
}

.akiba-grid {
	display: grid;
	gap: 0;
}

.akiba-grid-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.akiba-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.akiba-grid-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.akiba-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: clamp(28px, 3.4vw, 52px);
	background: transparent;
	border: 0;
	border-right: 1px solid var(--akiba-alt-line);
	border-radius: 0;
	box-shadow: none;
	text-align: center;
	text-decoration: none;
	transition: transform 0.22s ease;
}

.akiba-card:last-child {
	border-right: 0;
}

.akiba-card-number {
	display: none;
}

.akiba-card h3 {
	margin-bottom: 10px;
}

.akiba-card p {
	margin-bottom: 0;
	font-size: 0.9rem;
	line-height: 1.9;
}

.akiba-card-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 18px;
	color: var(--akiba-alt-lake-dark) !important;
	font-size: 0.86rem;
	font-weight: 700;
	text-decoration: none;
}

/* Card "詳細" links render inside a core/buttons wrapper, which is
   display:flex by default and left-aligned regardless of the card's own
   text-align:center — center the wrapper itself so the link centers too. */
.akiba-card .wp-block-buttons {
	justify-content: center;
	margin-top: auto;
}

.wp-block-button.akiba-card-link {
	margin-top: 18px;
}

.wp-block-button.akiba-card-link .wp-block-button__link,
.akiba-page-index .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 0;
	background: transparent !important;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: inherit !important;
	font: inherit;
	line-height: inherit;
	text-decoration: none;
}

.akiba-card-link::after {
	content: "";
	width: 24px;
	height: 1px;
	background: currentColor;
}

.akiba-card-featured {
	background: transparent;
	color: var(--akiba-alt-ink) !important;
}

.akiba-card-featured h1,
.akiba-card-featured h2,
.akiba-card-featured h3,
.akiba-card-featured p,
.akiba-card-featured .akiba-card-link {
	color: inherit !important;
}

.akiba-card-featured p {
	color: var(--akiba-alt-ink-soft) !important;
}

.akiba-card-featured .akiba-card-link {
	color: var(--akiba-alt-lake-dark) !important;
}

.akiba-split,
.akiba-page-hero-inner,
.akiba-contact-box,
.akiba-service-detail {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1fr);
	gap: clamp(42px, 7vw, 108px);
	align-items: center;
}

/* Photo areas hold a real, editable core/image block instead of a CSS
   background-image, so the client can swap each photo from the editor. The
   frame keeps its fixed cover box; the image inside is cropped to fill it, so
   the front end looks the same as the old background box but is now editable.
   (Hero background images — .akiba-page-hero / .akiba-hero-visual below — stay
   as CSS backgrounds by design.) */
.akiba-photo,
.akiba-card.akiba-preview-about {
	position: relative;
	min-height: 390px;
	overflow: hidden;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	display: flex;
}

.akiba-photo::before,
.akiba-photo::after,
.akiba-photo-label {
	display: none;
}

.akiba-photo .wp-block-image,
.akiba-card.akiba-preview-about .wp-block-image {
	margin: 0;
	width: 100%;
	align-self: stretch;
	min-height: inherit;
}

.akiba-photo img,
.akiba-card.akiba-preview-about img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}

.akiba-page-hero {
	padding: clamp(150px, 15vw, 230px) 0 clamp(76px, 8vw, 112px);
	background:
		linear-gradient(90deg, rgba(255, 253, 248, 0.98), rgba(255, 253, 248, 0.74)),
		url("../images/hero-matsudo.png") right top / cover no-repeat;
}

.akiba-page-index {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 28px;
}

.akiba-page-index a {
	padding: 9px 15px;
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid var(--akiba-alt-line);
	border-radius: 999px;
	color: var(--akiba-alt-lake-dark) !important;
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
}

.akiba-page-index .wp-block-button__link {
	padding: 9px 15px;
	background: rgba(255, 255, 255, 0.78) !important;
	border: 1px solid var(--akiba-alt-line);
	border-radius: 999px;
	color: var(--akiba-alt-lake-dark) !important;
}

.akiba-service-sidebar,
.akiba-contact-detail {
	padding: clamp(26px, 3vw, 42px);
	background: rgba(238, 248, 252, 0.78);
	border: 1px solid var(--akiba-alt-line);
	border-radius: 8px;
}

.akiba-price {
	display: grid;
	gap: 0;
	margin-top: 22px;
}

.akiba-price-row {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 16px 0;
	border-bottom: 1px solid var(--akiba-alt-line);
	font-weight: 700;
}

.akiba-problem,
.akiba-step {
	padding: 22px 24px;
	background: var(--akiba-alt-white);
	border: 1px solid var(--akiba-alt-line);
	border-radius: 8px;
	box-shadow: 0 10px 30px rgba(36, 83, 108, 0.06);
}

.akiba-timeline {
	display: grid;
	gap: 18px;
	counter-reset: akiba-step;
}

.akiba-step {
	position: relative;
	padding-left: 76px;
}

.akiba-step::before {
	counter-increment: akiba-step;
	content: counter(akiba-step, decimal-leading-zero);
	position: absolute;
	left: 26px;
	top: 26px;
	color: var(--akiba-alt-lake);
	font-weight: 800;
}

.akiba-news-list {
	display: grid;
	border-top: 1px solid var(--akiba-alt-line);
	margin-bottom: 46px;
}

.akiba-news-item {
	display: grid;
	grid-template-columns: 150px 140px minmax(0, 1fr);
	gap: 18px;
	padding: 24px 0;
	border-bottom: 1px solid var(--akiba-alt-line);
}

.akiba-news-date,
.akiba-news-cat {
	color: var(--akiba-alt-lake-dark);
	font-weight: 700;
}

.akiba-contact-box {
	background: var(--akiba-alt-white);
	border: 1px solid var(--akiba-alt-line);
	border-radius: 8px;
	box-shadow: var(--akiba-alt-shadow);
	padding: clamp(34px, 5vw, 62px);
}

.akiba-phone {
	margin-bottom: 8px;
	color: var(--akiba-alt-lake-dark) !important;
	font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
	font-weight: 800;
	line-height: 1.2 !important;
}

.akiba-alt-footer-cta {
	position: relative;
	overflow: hidden;
	margin: 0;
	background:
		linear-gradient(90deg, rgba(47, 102, 129, 0.96), rgba(47, 102, 129, 0.84)),
		url("../images/footer.png") center bottom / cover no-repeat;
	color: var(--akiba-alt-white);
}

.akiba-alt-footer-cta-inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(24px, 4vw, 58px);
	width: min(100%, 1420px);
	margin-inline: auto;
	padding: clamp(36px, 5vw, 58px) var(--akiba-gutter);
}

.akiba-alt-footer-cta h2 {
	margin: 0 0 8px;
	color: var(--akiba-alt-white);
	font-family: var(--akiba-alt-serif);
	font-size: clamp(1.5rem, 2.5vw, 2.2rem);
	font-weight: 500;
	letter-spacing: 0.08em;
}

.akiba-alt-footer-cta p {
	margin: 0;
	color: rgba(255, 255, 255, 0.86);
}

.akiba-alt-mail-icon {
	position: relative;
	width: 78px;
	height: 78px;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 50%;
}

.akiba-alt-mail-icon::before {
	content: "";
	position: absolute;
	inset: 19px;
	background: var(--akiba-alt-white);
	-webkit-mask: url("../images/icons/home-contact-line.svg") center / contain no-repeat;
	mask: url("../images/icons/home-contact-line.svg") center / contain no-repeat;
}

.akiba-alt-mail-icon::after {
	display: none;
}

.akiba-alt-footer-button {
	background: var(--akiba-alt-white);
	color: var(--akiba-alt-lake-dark) !important;
	box-shadow: none;
}

.akiba-alt-footer-button:hover,
.akiba-alt-footer-button:focus-visible {
	color: var(--akiba-alt-white) !important;
}

.akiba-alt-footer {
	background: var(--akiba-alt-paper);
}

.akiba-alt-footer-inner {
	display: grid;
	gap: 22px;
	width: min(100%, 1640px);
	margin-inline: auto;
	padding: 44px var(--akiba-gutter) 34px;
}

.akiba-alt-footer-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 18px clamp(20px, 3vw, 42px);
	font-family: var(--akiba-alt-serif);
	font-size: 0.9rem;
	font-weight: 600;
}

.akiba-alt-footer-meta,
.akiba-alt-copy {
	margin: 0;
	color: var(--akiba-alt-ink-soft);
	font-size: 0.82rem;
	letter-spacing: 0.04em;
}

.akiba-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.72s ease, transform 0.72s ease;
	transition-delay: var(--akiba-delay, 0ms);
}

.akiba-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.akiba-fade {
	animation: akibaAltFadeUp 0.82s ease both;
}

@keyframes akibaAltFadeUp {
	from {
		opacity: 0;
		transform: translateY(18px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Editable icon blocks. Each icon is a Group block carrying .akiba-card-icon or
   .akiba-list-icon plus an .akiba-icon-* class; the glyph is painted with a CSS mask
   so it renders identically on the front end and stays a real, selectable block in
   the editor (no page-ID coupling). */
.akiba-card-icon,
.akiba-list-icon {
	display: block;
	background: var(--akiba-alt-lake);
	opacity: 0.9;
	-webkit-mask: var(--akiba-icon) center / contain no-repeat;
	mask: var(--akiba-icon) center / contain no-repeat;
}

.akiba-card-icon {
	width: 54px;
	height: 54px;
	margin: 0 auto 24px;
}

.akiba-list-icon {
	width: 32px;
	height: 32px;
	margin: 0 0 12px;
}

.akiba-icon-calculator { --akiba-icon: url("../images/icons/ph-calculator.svg"); }
.akiba-icon-handshake { --akiba-icon: url("../images/icons/ph-handshake.svg"); }
.akiba-icon-briefcase { --akiba-icon: url("../images/icons/ph-briefcase.svg"); }
.akiba-icon-rocket-launch { --akiba-icon: url("../images/icons/ph-rocket-launch.svg"); }
.akiba-icon-user { --akiba-icon: url("../images/icons/ph-user.svg"); }
.akiba-icon-list-checks { --akiba-icon: url("../images/icons/ph-list-checks.svg"); }
.akiba-icon-file-text { --akiba-icon: url("../images/icons/ph-file-text.svg"); }
.akiba-icon-bank { --akiba-icon: url("../images/icons/ph-bank.svg"); }
.akiba-icon-notepad { --akiba-icon: url("../images/icons/ph-notepad.svg"); }
.akiba-icon-calendar-check { --akiba-icon: url("../images/icons/ph-calendar-check.svg"); }
.akiba-icon-clipboard-text { --akiba-icon: url("../images/icons/ph-clipboard-text.svg"); }
.akiba-icon-chat-circle-text { --akiba-icon: url("../images/icons/ph-chat-circle-text.svg"); }
.akiba-icon-chart-bar { --akiba-icon: url("../images/icons/ph-chart-bar.svg"); }
.akiba-icon-users-three { --akiba-icon: url("../images/icons/ph-users-three.svg"); }
@media (prefers-reduced-motion: reduce) {
	.akiba-reveal,
	.akiba-fade {
		animation: none;
		opacity: 1;
		transform: none;
		transition: none;
	}
}

@media (max-width: 1180px) {
	.akiba-alt-header {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 100;
		width: 100%;
		background: var(--akiba-alt-paper);
		border-bottom: 1px solid rgba(63, 119, 146, 0.16);
	}

	.akiba-alt-header-inner {
		align-items: center;
		padding-block: 14px;
	}

	.akiba-alt-menu-toggle {
		display: inline-flex;
		flex: 0 0 auto;
	}

	.akiba-alt-nav {
		position: absolute;
		top: 100%;
		left: var(--akiba-gutter);
		right: var(--akiba-gutter);
		z-index: 100;
		display: grid;
		grid-template-columns: 1fr;
		justify-content: normal;
		justify-items: stretch;
		gap: 0;
		max-height: calc(100dvh - 96px);
		overflow-y: auto;
		padding: 0 16px;
		background: var(--akiba-alt-paper);
		border: 1px solid var(--akiba-alt-line);
		border-top: 0;
		border-radius: 8px;
		box-shadow: var(--akiba-alt-shadow);
		isolation: isolate;
		opacity: 0;
		pointer-events: none;
		transform: translate3d(0, -4px, 0);
		backface-visibility: hidden;
		visibility: hidden;
		transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
	}

	.akiba-alt-nav.is-open {
		opacity: 1;
		pointer-events: auto;
		transform: translate3d(0, 0, 0);
		visibility: visible;
	}

	.akiba-alt-nav-item {
		display: grid;
		gap: 0;
		border-bottom: 1px solid var(--akiba-alt-line);
	}

	.akiba-alt-nav > a,
	.akiba-alt-nav-parent {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		min-height: 48px;
		padding: 14px 0;
		font-family: var(--akiba-alt-serif);
		font-size: 0.95rem;
		font-weight: 600;
		letter-spacing: 0.08em;
	}

	.akiba-alt-nav > a {
		border-bottom: 1px solid var(--akiba-alt-line);
	}

	.akiba-alt-nav > a:last-child,
	.akiba-alt-nav-item:last-child {
		border-bottom: 0;
	}

	.akiba-alt-nav-parent {
		width: 100%;
	}

	.akiba-alt-subnav {
		position: static;
		display: none;
		min-width: 0;
		padding: 0 0 8px;
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		opacity: 1;
		pointer-events: auto;
		transform: none;
		transition: none;
	}

	.akiba-alt-subnav::before {
		display: none;
	}

	.akiba-alt-subnav a {
		display: block;
		min-height: 0;
		padding: 12px 0;
		font-family: var(--akiba-alt-serif);
		font-size: 0.9rem;
		font-weight: 500;
		letter-spacing: 0.08em;
		white-space: normal;
	}

	.akiba-alt-subnav a:hover,
	.akiba-alt-subnav a:focus-visible {
		background: transparent;
	}

	.akiba-alt-nav-parent::before {
		transition: transform 0.2s ease;
	}

	.akiba-alt-nav-item.is-expanded .akiba-alt-subnav {
		display: block;
	}

	.akiba-alt-nav-item.is-expanded .akiba-alt-nav-parent::before {
		transform: translateY(1px) rotate(225deg);
	}

	.akiba-alt-nav a::after {
		display: none;
	}
}

@media (max-width: 1024px) {
	.akiba-hero {
		background-position: 58% bottom;
	}

	.akiba-hero-copy {
		width: min(100%, 620px);
		min-width: 0;
	}

	.akiba-grid-4,
	.akiba-grid-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.akiba-card:nth-child(2n) {
		border-right: 0;
	}

	.akiba-split,
	.akiba-page-hero-inner,
	.akiba-contact-box,
	.akiba-service-detail,
	.akiba-alt-footer-cta-inner {
		grid-template-columns: 1fr;
	}

	.akiba-alt-footer-button {
		width: fit-content;
	}
}

/* SNS icon row in the footer. Hidden entirely when no platform is enabled
   (see akiba_japan_view_child_render_sns_row()), so there is nothing to
   collapse here — this only styles the row when it is present. */
.akiba-alt-sns-row {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.akiba-alt-sns-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	background: var(--akiba-alt-mist);
	border: 1px solid var(--akiba-alt-line);
	border-radius: 50%;
	color: var(--akiba-alt-lake-dark) !important;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.akiba-alt-sns-link:hover {
	background: var(--akiba-alt-line);
}

.akiba-alt-sns-icon {
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("../images/icons/ph-chat-circle-dots.svg") center / contain no-repeat;
	mask: url("../images/icons/ph-chat-circle-dots.svg") center / contain no-repeat;
}

.akiba-alt-footer-meta-break {
	display: none;
}

/* In-page section nav for anchor-link pages (ご挨拶 5 sections, etc.). */
.akiba-section-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 28px;
}

.akiba-section-nav a {
	padding: 10px 18px;
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid var(--akiba-alt-line);
	border-radius: 999px;
	color: var(--akiba-alt-lake-dark) !important;
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.akiba-section-nav a:hover {
	background: var(--akiba-alt-mist);
}

.akiba-anchor-section {
	scroll-margin-top: 110px;
}

/* 会社概要 (Company) info table. */
.akiba-info-table {
	width: 100%;
	border-collapse: collapse;
}

.akiba-info-table th,
.akiba-info-table td {
	padding: 20px 16px;
	border: 1px solid var(--akiba-alt-line);
	text-align: left;
	vertical-align: top;
}

.akiba-info-table th {
	width: 9.5em;
	color: var(--akiba-alt-ink);
	font-family: var(--akiba-alt-serif);
	font-weight: 600;
	white-space: nowrap;
}

.akiba-info-table td {
	color: var(--akiba-alt-ink-soft);
}

.akiba-parking-note {
	margin-top: 26px;
	padding: 22px 26px;
	background: rgba(238, 248, 252, 0.78);
	border: 1px solid var(--akiba-alt-line);
	border-radius: 8px;
}

.akiba-parking-note p {
	margin: 0;
}

.akiba-map-frame {
	position: relative;
	width: 100%;
	padding-top: 46%;
	overflow: hidden;
	border: 1px solid var(--akiba-alt-line);
	border-radius: 8px;
}

.akiba-map-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* スタッフ体制 (staff makeup) — headcount + qualification tiles, no names/photos. */
.akiba-staff-stats {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	background-color: var(--akiba-alt-line);
}

.akiba-staff-stats > * {
	margin-block: 0 !important;
}

.akiba-staff-stat {
	padding: clamp(24px, 3vw, 34px);
	background-color: var(--akiba-alt-paper);
	text-align: center;
}

.akiba-staff-stat-number {
	display: block;
	color: var(--akiba-alt-lake-dark);
	font-family: var(--akiba-alt-serif);
	font-size: clamp(2.1rem, 3.4vw, 2.9rem);
	font-weight: 700;
	line-height: 1.3;
}

.akiba-staff-stat-label {
	display: block;
	margin-top: 4px;
	font-size: 0.86rem;
	font-weight: 600;
}

/* News category filter tabs on /news/. */
.akiba-news-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 30px;
}

.akiba-news-filter-btn {
	padding: 10px 20px;
	background: transparent;
	border: 1px solid var(--akiba-alt-line);
	border-radius: 999px;
	color: var(--akiba-alt-ink-soft);
	font-family: var(--akiba-alt-sans);
	font-size: 0.88rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.akiba-news-filter-btn.is-active,
.akiba-news-filter-btn:hover {
	background: var(--akiba-alt-lake);
	border-color: var(--akiba-alt-lake);
	color: var(--akiba-alt-white);
}

.akiba-news-item {
	text-decoration: none;
	color: inherit;
	transition: background-color 0.2s ease;
}

.akiba-news-item:hover {
	background: var(--akiba-alt-mist);
}

.akiba-news-title {
	color: var(--akiba-alt-ink);
}

.akiba-news-empty {
	color: var(--akiba-alt-ink-soft);
}


@media (max-width: 700px) {
	.akiba-alt-footer-meta-break {
		display: block;
	}

	.akiba-info-table th {
		width: 6.5em;
	}
}

@media (max-width: 700px) {
	.akiba-alt-header-inner {
		padding-block: 16px;
	}

	.akiba-alt-logo-ja {
		font-size: 1.28rem;
	}

	.akiba-alt-logo-en {
		font-size: 0.62rem;
	}

	.akiba-hero {
		min-height: 760px;
		padding-top: 132px;
		background:
			linear-gradient(180deg, rgba(255, 253, 248, 0.98) 0%, rgba(255, 253, 248, 0.82) 40%, rgba(255, 253, 248, 0.2) 100%),
			url("../images/hero-matsudo.png") right bottom / cover no-repeat,
			var(--akiba-alt-paper);
	}

	/* Sized so both "税務のことを、" and "もっと話しやすく。" — each kept on
	   its own single line by the explicit <br> and .akiba-hero-line2's
	   white-space: nowrap — fit within the viewport down to a ~320px-wide
	   phone. The previous, larger clamp fit line 1 but made line 2 wider
	   than the viewport, overflowing past the page gutter. */
	.akiba-site h1 {
		font-size: clamp(1.7rem, 8.5vw, 3.5rem);
		line-height: 1.45;
	}

	.akiba-statement {
		width: 100%;
		max-width: 100%;
	}

	.akiba-container.akiba-statement {
		padding-inline: var(--akiba-gutter);
	}

	.akiba-statement h2,
	.akiba-statement p {
		max-width: min(100%, 32rem);
		margin-inline: auto;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.akiba-statement h2 {
		font-size: clamp(1.72rem, 8vw, 2.15rem);
		line-height: 1.7;
	}

	.akiba-grid-2,
	.akiba-grid-3,
	.akiba-grid-4 {
		grid-template-columns: 1fr;
	}

	.akiba-card,
	.akiba-card:nth-child(2n) {
		border-right: 0;
		border-bottom: 1px solid var(--akiba-alt-line);
	}

	.akiba-card:last-child {
		border-bottom: 0;
	}

	/* On mobile the cards are borderless dividers, so their own side padding
	   only double-indents the text past the page gutter. Drop it so card
	   content lines up with the same gutter as the CTA and footer. */
	.akiba-card {
		padding-inline: 0;
	}

	/* The contact card bleeds to the screen edge like the CTA band; align its
	   inner text to the same gutter so the heading matches the reference. */
	.akiba-contact-box {
		padding-inline: var(--akiba-gutter);
	}

	.akiba-photo,
	.akiba-card.akiba-preview-about {
		min-height: 280px;
	}

	.akiba-news-item {
		grid-template-columns: 1fr;
		gap: 6px;
	}

	.akiba-button-row,
	.akiba-button,
	.wp-block-button.akiba-button,
	.wp-block-button.akiba-button .wp-block-button__link,
	.akiba-alt-footer-button {
		width: 100%;
	}

	.akiba-alt-footer-cta {
		margin-inline: 0;
	}
}
