/*
Theme Name: ANYHOW × alpha group
Theme URI: https://example.com/alpha-anyhow
Author: 株式会社alpha
Description: 埼玉・新潟に18サロンを展開する ANYHOW × alpha group のためのブロックテーマ。モノトーンにティールのアクセント、Montserrat / Cormorant Garamond / Zen Kaku Gothic New の組み合わせ。
Version: 1.1.5
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: alpha-anyhow
*/

:root {
	--black: #111111;
	--white: #FFFFFF;
	--grey: #F4F4F2;
	--mid: #6B6B6B;
	--line: #DDDDDA;
	--accent: #81D8D0;
	--accent-soft: #E6F7F5;
	--on-accent: #111111;
	--marker: linear-gradient(transparent 60%, var(--accent) 60%);
	--wide: 1280px;
	--ease: cubic-bezier(.2, .7, .2, 1);
	--en: "Montserrat", sans-serif;
	--ja: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
	--serif: "Cormorant Garamond", serif;
	--gutter: clamp(16px, 4vw, 24px);
	--edge: max(var(--gutter), calc((100vw - var(--wide)) / 2 + var(--gutter)));
}

/* ========== BASE ========== */
html { -webkit-text-size-adjust: 100%; }
body {
	word-break: keep-all;
	overflow-wrap: anywhere;
	overflow-x: hidden;
	line-break: strict;
	font-feature-settings: "palt" 0;
}
img { max-width: 100%; height: auto; }
a { text-underline-offset: .2em; }
:focus-visible { outline: 2px solid var(--black); outline-offset: 3px; }
.has-black-background-color :focus-visible,
.site-header :focus-visible,
.site-footer :focus-visible { outline-color: var(--accent); }

.visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	margin: 0 !important;
	padding: 0 !important;
}

.wp-site-blocks { padding-top: 0; padding-bottom: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks > footer { margin-block-start: 0; }
main.site-main { margin-block-start: 0; }
main.site-main > .alignfull,
main.site-main > .alignfull + .alignfull { margin-block-start: 0; }

.en { font-family: var(--en); }
.serif { font-family: var(--serif); }

@supports (word-break: auto-phrase) {
	h1, h2, h3, h4, .hero-copy, .concept-lead, .concept-statement { word-break: auto-phrase; overflow-wrap: normal; }
}

/* ========== HEADER ========== */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 46px; } }
@media (max-width: 600px) { .admin-bar header.wp-block-template-part { top: 0; } }

.site-header { background: var(--black); color: var(--white); }
.site-header .header-inner {
	gap: 28px;
	min-height: 64px;
	flex-wrap: nowrap;
}
.site-header .brand { margin: 0; flex-shrink: 0; line-height: 1.2; }
.site-header .brand a { display: flex; align-items: center; gap: 14px; color: inherit; text-decoration: none; }
.mono {
	position: relative;
	display: block;
	width: 40px; height: 34px;
	font-family: var(--serif);
	font-weight: 300;
	font-size: 26px;
	line-height: 1;
	flex-shrink: 0;
}
.mono .a { position: absolute; left: 1px; top: 2px; }
.mono .h { position: absolute; right: 1px; bottom: 0; }
.mono::after {
	content: "";
	position: absolute;
	left: 50%; top: 50%;
	width: 1px; height: 40px;
	background: currentColor;
	transform: translate(-50%, -50%) rotate(32deg);
	opacity: .85;
}
.brand-lockup { display: flex; align-items: center; gap: 12px; line-height: 1.2; }
.brand-word { font-family: var(--en); font-weight: 400; font-size: 13px; letter-spacing: .42em; }
.brand-word small { display: block; font-family: var(--serif); font-size: 10px; letter-spacing: .2em; opacity: .7; margin-top: 3px; }
.brand-x { font-family: var(--en); font-weight: 200; font-size: 14px; color: var(--accent); transform: translateY(-4px); }
.brand-alpha { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 19px; letter-spacing: .02em; transform: translateY(-3px); }

.site-header .site-nav { margin-left: auto; }
.site-header .site-nav .wp-block-navigation__container { gap: 22px; }
.site-header .site-nav .wp-block-navigation-item__content {
	position: relative;
	padding: 6px 0;
	opacity: .88;
	text-decoration: none;
	transition: opacity .2s;
}
.site-header .site-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	height: 1px; width: 100%;
	background: var(--white);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s var(--ease);
}
.site-header .site-nav .wp-block-navigation-item__content:hover,
.site-header .site-nav .wp-block-navigation-item__content:focus-visible { opacity: 1; color: var(--white); }
.site-header .site-nav .wp-block-navigation-item__content:hover::after,
.site-header .site-nav .wp-block-navigation-item__content:focus-visible::after { transform: scaleX(1); }
.site-header .site-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); height: 3px; background: var(--accent); }
.site-header .wp-block-navigation__responsive-container-open,
.site-header .wp-block-navigation__responsive-container-close { color: var(--white); }
.site-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px;
}
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 18px; }
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 20px;
	letter-spacing: .2em;
	font-weight: 200;
}

.site-header .btn-reserve-wrap { flex-shrink: 0; margin: 0; }
.btn-reserve .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 34px;
	padding: 0 16px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .08em;
	white-space: nowrap;
	transition: background .25s;
}
.btn-reserve .wp-block-button__link::before {
	content: "";
	width: 13px; height: 13px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.2'%3E%3Crect x='1.5' y='2.5' width='13' height='12'/%3E%3Cpath d='M1.5 6h13M5 1v3M11 1v3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.2'%3E%3Crect x='1.5' y='2.5' width='13' height='12'/%3E%3Cpath d='M1.5 6h13M5 1v3M11 1v3'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (max-width: 1180px) {
	.site-header .site-nav .wp-block-navigation__container { gap: 16px; }
	.site-header .site-nav .wp-block-navigation-item__content { font-size: 10px; letter-spacing: .12em; }
}
/* Collapse the navigation into the overlay below 1040px (core default is 600px) */
@media (min-width: 600px) and (max-width: 1199px) {
	.site-header .site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.site-header .site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
@media (max-width: 1199px) {
	.site-header .site-nav { order: 3; margin-left: 0; }
	.site-header .btn-reserve-wrap { margin-left: auto; }
	.site-header .header-inner { gap: 12px; }
}
@media (max-width: 600px) {
	.site-header .header-inner { min-height: 56px; gap: 10px; }
	.mono { width: 32px; height: 28px; font-size: 21px; }
	.mono::after { height: 32px; }
	.site-header .brand a { gap: 10px; }
	.brand-lockup { gap: 7px; }
	.brand-word { font-size: 11px; letter-spacing: .26em; }
	.brand-word small { display: none; }
	.brand-x { font-size: 12px; transform: none; }
	.brand-alpha { font-size: 15px; transform: none; }
	.btn-reserve .wp-block-button__link { height: 32px; padding: 0 10px; font-size: 11px; }
	.btn-reserve .wp-block-button__link::before { display: none; }
}
@media (max-width: 380px) {
	.brand-word { letter-spacing: .2em; }
	.site-header .btn-reserve-wrap { display: none; }
}

/* ========== HERO ========== */
.hero { position: relative; background: var(--grey); }
.hero .hero-frame { position: relative; margin: 0; overflow: hidden; }
.hero .hero-img { margin: 0; aspect-ratio: 1584 / 672; overflow: hidden; }
.hero .hero-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: heroIn .8s var(--ease) both;
}
@keyframes heroIn { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: scale(1); } }
.hero .hero-caption {
	position: absolute;
	left: 24px; bottom: 22px;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--en);
	font-size: 10px;
	letter-spacing: .3em;
	line-height: 1.4;
	color: var(--black);
	animation: fadeUp .6s .6s var(--ease) both;
}
.hero .hero-caption::before { content: ""; display: block; width: 32px; height: 1px; background: var(--black); }

/* dark band */
.hero-bar { position: relative; background: var(--black); color: var(--white); }
.hero-bar .hero-bar__inner {
	position: relative;
	gap: 40px;
	padding-top: 26px;
	padding-bottom: 26px;
	padding-right: 200px;
	flex-wrap: wrap;
}
.hero-copy { margin: 0; font-size: clamp(17px, 2vw, 22px); font-weight: 500; letter-spacing: .08em; line-height: 1.8; }
.hero-copy em { font-style: normal; color: var(--accent); }
.hero-joint {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-left: 40px;
	border-left: 1px solid rgba(255, 255, 255, .25);
	line-height: 1.8;
}
.hero-joint .lock { display: flex; align-items: baseline; gap: 10px; font-family: var(--en); font-size: 12px; letter-spacing: .32em; }
.hero-joint .lock .x { color: var(--accent); font-weight: 200; letter-spacing: 0; }
.hero-joint .lock .al { font-family: var(--serif); font-style: italic; font-size: 18px; letter-spacing: .02em; }
.hero-joint .area { font-size: 13px; letter-spacing: .1em; color: #C8C8C8; }
.hero-joint .area b { font-family: var(--en); font-weight: 600; color: var(--white); font-size: 16px; margin: 0 2px; }

/* rotating badge (shortcode output) */
.badge {
	position: absolute;
	z-index: 20;
	right: var(--edge);
	top: -74px;
	width: 148px; height: 148px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--white);
	color: var(--black);
	text-decoration: none;
	box-shadow: 0 14px 40px -14px rgba(0, 0, 0, .45);
	animation: fadeUp .8s .8s var(--ease) both;
}
.hero-bar .badge { margin: 0; }
.badge svg.ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 18s linear infinite; }
.badge text { font-family: var(--en); font-size: 10px; font-weight: 600; letter-spacing: .12em; fill: var(--black); }
.badge .core {
	width: 76px; height: 76px;
	border-radius: 50%;
	background: var(--accent);
	color: var(--on-accent);
	display: grid;
	place-items: center;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.3;
	transition: transform .4s var(--ease), background .3s;
}
.badge .core small { display: block; font-family: var(--en); font-size: 10px; font-weight: 600; letter-spacing: .2em; }
.badge:hover .core, .badge:focus-visible .core { transform: scale(1.08); background: var(--black); color: var(--accent); }
.badge--float { display: none; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

@media (max-width: 760px) {
	.hero-bar .hero-bar__inner { padding-right: 0; gap: 14px; }
	.hero-joint { padding-left: 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .25); padding-top: 12px; width: 100%; }
	.badge--hero { display: none; }
	.badge--float {
		display: grid;
		position: fixed;
		top: auto;
		right: 14px;
		bottom: 14px;
		width: 104px; height: 104px;
		z-index: 60;
	}
	.badge--float .core { width: 56px; height: 56px; font-size: 11px; }
	.badge--float .core small { font-size: 8px; }
	.badge--float text { font-size: 11.5px; }
	.site-footer { padding-bottom: 128px; }
}
@media (max-width: 600px) {
	.hero .hero-caption { display: none; }
}

/* ========== MARQUEE (shared) ========== */
.marquee { overflow: hidden; }
.marquee .marquee-track {
	display: flex;
	flex-wrap: nowrap;
	gap: 0;
	width: max-content;
	animation: marquee var(--dur, 48s) linear infinite;
}
.marquee:hover .marquee-track,
.marquee:focus-within .marquee-track { animation-play-state: paused; }
.marquee .marquee-track > .marquee-group {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	flex-shrink: 0;
	margin: 0;
}
@keyframes marquee { to { transform: translateX(-50%); } }

.svc { background: var(--accent-soft); border-bottom: 1px solid var(--black); padding: 22px 0; }
.svc .marquee-group p { margin: 0; white-space: nowrap; line-height: 1.1; }
.svc .marquee-group span {
	font-family: var(--en);
	font-weight: 800;
	font-size: clamp(34px, 5vw, 64px);
	letter-spacing: .06em;
	line-height: 1.1;
	padding: 0 .35em;
	color: transparent;
	-webkit-text-stroke: 1px var(--mid);
}
.svc .marquee-group span.f { color: var(--black); -webkit-text-stroke: 0; }
.svc .marquee-group i {
	font-family: var(--serif);
	font-style: normal;
	font-weight: 300;
	font-size: clamp(28px, 4vw, 48px);
	color: var(--mid);
	padding: 0 .15em;
}
@supports not (-webkit-text-stroke: 1px black) { .svc .marquee-group span { color: var(--black); } }
@media (max-width: 600px) { .svc { padding: 14px 0; } }

/* ========== SECTIONS (shared) ========== */
.sec { padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(64px, 9vw, 104px); }
.sec-title { margin: 0; line-height: 1; }
.sec-title .en {
	display: block;
	font-family: var(--en);
	font-weight: 200;
	font-size: clamp(44px, 7vw, 88px);
	letter-spacing: .14em;
	line-height: .95;
	white-space: nowrap;
	overflow-wrap: normal;
}
.wp-block-column .sec-title .en { font-size: clamp(40px, 5vw, 72px); }
.sec-title .ja {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 18px;
	font-family: var(--ja);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .12em;
	line-height: 1.8;
}
.sec-title .ja::before { content: ""; width: 28px; height: 4px; background: var(--accent); flex-shrink: 0; }
.has-accent-background-color .sec-title .ja::before { background: var(--black); }
.sec .sec-head { gap: 24px; align-items: flex-end; justify-content: space-between; margin-bottom: 40px; }
.sec-note { max-width: 26em; margin: 0; font-size: 14px; color: var(--mid); }
.has-black-background-color .sec-note { color: #C8C8C8; }

.more-link { margin: 0; }
.more-link a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--en);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .24em;
	padding-bottom: 4px;
	border-bottom: 1px solid currentColor;
	text-decoration: none;
	transition: color .2s, border-color .2s, gap .3s var(--ease);
}
.more-link a::after { content: "\2192"; font-weight: 400; }
.more-link a:hover, .more-link a:focus-visible { background: var(--marker); gap: 18px; }
.has-black-background-color .more-link a:hover,
.has-black-background-color .more-link a:focus-visible { background: none; color: var(--accent); }
.has-accent-background-color .more-link a:hover,
.has-accent-background-color .more-link a:focus-visible { background: none; }

.eyebrow {
	margin: 0;
	font-family: var(--en);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .24em;
	color: var(--black);
}
.has-black-background-color .eyebrow { color: var(--accent); }

/* buttons */
.wp-block-button__link { box-sizing: border-box; transition: background .25s, color .25s, border-color .25s; }
.btn-white .wp-block-button__link { background: var(--white); color: var(--black); }
.btn-white .wp-block-button__link:hover,
.btn-white .wp-block-button__link:focus-visible { background: var(--black); color: var(--white); }
.btn-outline .wp-block-button__link { background: transparent; color: inherit; border: 1px solid currentColor; }
.btn-outline .wp-block-button__link:hover,
.btn-outline .wp-block-button__link:focus-visible { background: var(--black); color: var(--white); border-color: var(--black); }
.has-black-background-color .btn-outline .wp-block-button__link:hover,
.has-black-background-color .btn-outline .wp-block-button__link:focus-visible { background: var(--white); color: var(--black); border-color: var(--white); }
.btn-dark .wp-block-button__link { background: var(--black); color: var(--white); }
.btn-dark .wp-block-button__link:hover,
.btn-dark .wp-block-button__link:focus-visible { background: var(--accent); color: var(--on-accent); }
.btn-line .wp-block-button__link { background: var(--white); color: var(--black); border: 1px solid var(--black); }
.btn-line .wp-block-button__link:hover,
.btn-line .wp-block-button__link:focus-visible { background: var(--black); color: var(--white); border-color: var(--black); }

/* ========== CONCEPT (home) ========== */
.concept-home .wp-block-columns.concept-cols { gap: clamp(32px, 6vw, 96px); }
.sec .concept-lead {
	margin: 0 0 24px;
	font-size: clamp(22px, 3vw, 34px);
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 1.7;
}
.concept-lead em { font-style: normal; background: var(--marker); }
.concept-body { color: #333333; font-size: 15px; line-height: 2.1; }

/* ========== STYLE STRIP ========== */
.style-sec { position: relative; overflow: hidden; }
.style-sec .sec-title .en { font-size: clamp(56px, 9vw, 120px); line-height: .9; }
.style-sec .drift {
	position: absolute;
	top: 140px; left: 0;
	width: 100%; height: 4px;
	margin: 0;
	pointer-events: none;
	overflow: hidden;
}
.style-sec .drift::before {
	content: "";
	position: absolute;
	top: 0; left: -30%;
	width: 30%; height: 4px;
	background: linear-gradient(90deg, transparent, var(--accent), transparent);
	animation: drift 9s linear infinite;
}
@keyframes drift { to { left: 100%; } }

.style-sec .strip {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 8px var(--edge) 28px;
	scrollbar-width: thin;
	scrollbar-color: var(--black) var(--grey);
	overscroll-behavior-x: contain;
	scroll-padding-inline: var(--edge);
}
.style-sec .strip::-webkit-scrollbar { height: 3px; }
.style-sec .strip::-webkit-scrollbar-track { background: var(--grey); }
.style-sec .strip::-webkit-scrollbar-thumb { background: var(--black); }
.style-sec .strip > * { margin: 0; }

.card {
	position: relative;
	flex: 0 0 clamp(240px, 24vw, 300px);
	scroll-snap-align: start;
	transition: transform .4s var(--ease);
}
.card:hover, .card:focus-within { transform: translateY(-6px); }
.card .card-media {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--grey);
}
.card .card-media a { display: block; position: absolute; inset: 0; }
.card .card-media img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	filter: none;
	transition: filter .6s var(--ease), transform .8s var(--ease);
}
.card:hover .card-media img,
.card:focus-within .card-media img { transform: scale(1.03); }
/* Desktop homepage strip only: monochrome until hover. Touch devices and the /style/ gallery always show real color. */
@media (hover: hover) and (pointer: fine) {
	.home .card .card-media img { filter: grayscale(1) contrast(1.05); }
	.home .card:hover .card-media img,
	.home .card:focus-within .card-media img { filter: none; }
}
.card .card-num {
	position: absolute;
	top: 12px; left: 12px;
	z-index: 2;
	margin: 0;
	font-family: var(--en);
	font-size: 10px;
	letter-spacing: .2em;
	color: var(--white);
	background: var(--black);
	padding: 3px 8px;
	line-height: 1.4;
	pointer-events: none;
}
.card .card-body { margin: 0; padding: 16px 2px 0; }
.card .card-body > * { margin: 0; }
.card .card-cat { display: inline-block; font-family: var(--en); font-weight: 600; font-size: 11px; letter-spacing: .24em; color: var(--on-accent); background: var(--accent); padding: 0 8px; line-height: 1.8; }
.card .card-cat.v { background: var(--black); color: var(--accent); }
.card .card-name { margin: 2px 0 10px; font-size: 16px; font-weight: 500; letter-spacing: .06em; line-height: 1.6; }
.card .card-cta { margin-top: 2px; }
.card .card-cta a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	letter-spacing: .08em;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--black);
	text-decoration: none;
}
.card .card-cta a::after { content: "\2192"; transition: transform .3s var(--ease); }
.card:hover .card-cta a::after { transform: translateX(4px); }

.card-more {
	position: relative;
	flex: 0 0 200px;
	scroll-snap-align: start;
	align-self: flex-start;
	aspect-ratio: 3 / 4;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 14px;
	background: var(--black);
	color: var(--white);
	padding: 28px;
	transition: background .3s;
}
.card-more.card-more > * { margin: 0; }
.card-more:hover, .card-more:focus-within { background: var(--accent); color: var(--on-accent); }
.card-more .card-more__en { font-family: var(--en); font-weight: 200; font-size: 28px; letter-spacing: .14em; line-height: 1.2; }
.card-more .card-more__ja { font-size: 13px; letter-spacing: .08em; }
.card-more .card-more__ja a { text-decoration: none; }
.card-more .card-more__ja a::before { content: ""; position: absolute; inset: 0; }
.card-more .card-more__ja a::after { content: " \2192"; }

.style-sec .strip-ctrl { gap: 16px; align-items: center; margin-top: 8px; }
.strip-ctrl button {
	width: 44px; height: 44px;
	border: 1px solid var(--black);
	background: var(--white);
	color: var(--black);
	cursor: pointer;
	display: grid;
	place-items: center;
	padding: 0;
	transition: background .2s, color .2s;
}
.strip-ctrl button:hover, .strip-ctrl button:focus-visible { background: var(--black); color: var(--white); }
.strip-ctrl svg { width: 16px; height: 10px; }
.strip-ctrl .strip-hint { margin: 0; font-family: var(--en); font-size: 10px; letter-spacing: .3em; color: var(--mid); }

@media (max-width: 600px) {
	.style-sec .strip { gap: 14px; padding-left: 16px; padding-right: 16px; }
	.card { flex-basis: 72vw; }
	.card-more { flex-basis: 56vw; }
	.style-sec .drift { top: 108px; }
}

/* ========== MENU (home + page) ========== */
.wp-block-columns.menu-picks { gap: 0; border-top: 1px solid rgba(255, 255, 255, .25); }
.menu-picks > .wp-block-column {
	padding: 28px 24px 28px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .25);
}
.menu-picks .pick-name { margin: 6px 0 14px; font-size: 17px; font-weight: 500; letter-spacing: .08em; }
.menu-picks .pick-price { margin: 0; font-family: var(--en); font-weight: 200; font-size: clamp(28px, 3vw, 40px); letter-spacing: .04em; line-height: 1.2; }
.menu-picks .pick-price small { font-family: var(--ja); font-size: 12px; margin-left: 4px; letter-spacing: .08em; }
@media (min-width: 782px) {
	.menu-picks > .wp-block-column + .wp-block-column { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .25); }
}
.tax-note { margin: 0; font-size: 12px; color: #C8C8C8; letter-spacing: .08em; }
.has-white-background-color .tax-note, .has-grey-background-color .tax-note { color: var(--mid); }

body .menu-grid { gap: 48px 56px; }
.menu-cat { margin: 0; }
.menu-grid .menu-cat > * { margin: 0; }
.menu-cat .menu-cat__title {
	display: flex;
	align-items: baseline;
	gap: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--black);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .12em;
}
.menu-cat .menu-cat__title .en { font-weight: 200; font-size: clamp(28px, 3.4vw, 40px); letter-spacing: .14em; line-height: 1.1; }
.menu-table { margin: 0; }
.menu-table table { border-collapse: collapse; width: 100%; }
.menu-table td {
	border: 0;
	border-bottom: 1px solid var(--line);
	padding: 16px 4px;
	vertical-align: baseline;
}
.menu-table td:last-child {
	text-align: right;
	font-family: var(--en);
	font-weight: 400;
	letter-spacing: .04em;
	white-space: nowrap;
	width: 9em;
}

/* ========== SALON LIST ========== */
.sec .salon-area-head { display: flex; align-items: baseline; gap: 14px; margin: 0 0 18px; padding-bottom: 12px; border-bottom: 1px solid var(--black); font-size: 18px; font-weight: 500; letter-spacing: .12em; }
.salon-area-head .en { font-size: 11px; font-weight: 600; letter-spacing: .24em; color: var(--mid); }
.salon-mini { list-style: none; margin: 0; padding: 0; }
.salon-mini li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
	font-size: 15px;
	letter-spacing: .04em;
}
.salon-mini li span {
	flex-shrink: 0;
	font-family: var(--en);
	font-size: 10px;
	letter-spacing: .2em;
	color: var(--mid);
}

body .salon-grid { gap: 20px; }
.salon-card {
	margin: 0;
	padding: 24px 22px 22px;
	background: var(--white);
	border: 1px solid var(--line);
	transition: border-color .3s, transform .3s var(--ease);
}
.salon-card:hover { border-color: var(--black); transform: translateY(-3px); }
.salon-grid .salon-card > * { margin: 0; }
.salon-card .salon-tag {
	display: inline-block;
	font-family: var(--en);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .24em;
	color: var(--white);
	background: var(--black);
	padding: 2px 10px;
	line-height: 1.6;
}
.salon-card .salon-tag.t-mens { background: var(--accent); color: var(--on-accent); }
.salon-card .salon-tag.t-eye { background: var(--accent-soft); color: var(--black); box-shadow: inset 0 0 0 1px var(--black); }
.salon-card .salon-tag.t-academy { background: var(--black); color: var(--accent); }
.salon-card .salon-tag.t-beauty { background: var(--mid); }
.salon-card .salon-name { margin-top: 14px; font-size: 19px; font-weight: 500; letter-spacing: .06em; line-height: 1.5; }
.salon-card .salon-addr { margin-top: 10px; font-size: 13px; color: #333333; line-height: 1.8; }
.salon-card .salon-access {
	margin-top: 6px;
	font-size: 13px;
	color: var(--black);
	font-weight: 500;
	display: flex;
	align-items: center;
	gap: 8px;
}
.salon-card .salon-access::before { content: ""; width: 12px; height: 4px; background: var(--accent); }

/* ========== RECRUIT ========== */
.wp-block-columns.stats { gap: 0; }
.stats > .wp-block-column { padding: 8px clamp(10px, 2vw, 20px); border-left: 1px solid rgba(255, 255, 255, .35); }
.stat { margin: 0; }
.stats .stat > * { margin: 0; }
.stat .stat-num { font-family: var(--en); font-weight: 200; font-size: clamp(56px, 7vw, 88px); line-height: 1; letter-spacing: .02em; }
.stat .stat-num small { font-family: var(--ja); font-size: clamp(12px, 1.4vw, 15px); font-weight: 500; margin-left: 6px; letter-spacing: .08em; }
.stat .stat-label { margin-top: 10px; font-size: clamp(12px, 1.4vw, 14px); letter-spacing: .1em; }
.has-white-background-color .stats > .wp-block-column,
.has-grey-background-color .stats > .wp-block-column { border-left-color: var(--line); }
.has-white-background-color .stat .stat-num,
.has-grey-background-color .stat .stat-num { color: var(--black); }

.info-table { margin: 0; }
.info-table table { border-collapse: collapse; width: 100%; }
.info-table th, .info-table td {
	border: 0;
	border-bottom: 1px solid var(--line);
	padding: 18px 8px;
	text-align: left;
	vertical-align: top;
	line-height: 1.8;
}
.info-table tr:first-child td { border-top: 1px solid var(--black); }
.info-table td:first-child {
	width: 11em;
	font-weight: 500;
	letter-spacing: .08em;
	color: var(--black);
}
.info-table td:last-child { color: #333333; }
@media (max-width: 600px) {
	.info-table tr { display: block; padding: 14px 0; border-bottom: 1px solid var(--line); }
	.info-table tr:first-child { border-top: 1px solid var(--black); }
	.info-table td { display: block; width: auto !important; border: 0 !important; padding: 2px 0; }
	.info-table td:first-child { font-size: 13px; color: var(--mid); }
}

.check-list { list-style: none; margin: 0; padding: 0; }
.check-list li {
	position: relative;
	padding: 12px 0 12px 28px;
	border-bottom: 1px solid var(--line);
	line-height: 1.7;
}
.check-list li::before {
	content: "";
	position: absolute;
	left: 2px; top: 1.3em;
	width: 12px; height: 6px;
	border-left: 2px solid var(--black);
	border-bottom: 2px solid var(--black);
	transform: rotate(-45deg);
}

.wp-block-columns.flow-steps { gap: 0; counter-reset: step; }
.flow-steps > .wp-block-column {
	position: relative;
	padding: 24px 20px 24px 0;
	counter-increment: step;
}
.flow-steps .step-num { margin: 0; font-family: var(--en); font-weight: 200; font-size: 40px; line-height: 1; color: var(--black); }
.has-black-background-color .flow-steps .step-num { color: var(--accent); }
.flow-steps .step-title { margin: 12px 0 8px; font-size: 17px; font-weight: 500; letter-spacing: .08em; }
.flow-steps .step-text { margin: 0; font-size: 14px; line-height: 1.9; }
@media (min-width: 782px) {
	.flow-steps > .wp-block-column:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 44px; right: 12px;
		width: 24px; height: 1px;
		background: currentColor;
		opacity: .4;
	}
	.flow-steps > .wp-block-column { padding-right: 44px; flex: 1 1 0; }
}
@media (max-width: 781px) {
	.flow-steps > .wp-block-column { border-bottom: 1px solid rgba(127, 127, 127, .3); }
}

/* ========== MATCHING ========== */
.matching-sec { position: relative; overflow: hidden; }
.matching-sec::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 4px;
	background: var(--accent);
}
.tag-new {
	display: inline-block;
	margin: 0;
	font-family: var(--en);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .3em;
	color: var(--on-accent);
	background: var(--accent);
	padding: 3px 10px;
}
.wp-block-columns.role-cards { gap: 20px; }
.role-card {
	height: 100%;
	margin: 0;
	padding: 28px 24px;
	border: 1px solid var(--line);
	background: var(--white);
	color: var(--black);
	transition: border-color .3s, transform .3s var(--ease);
}
.role-card:hover { border-color: var(--black); transform: translateY(-3px); }
.role-cards .role-card > * { margin: 0; }
.role-card .role-en { font-family: var(--en); font-size: 11px; font-weight: 600; letter-spacing: .24em; color: var(--mid); }
.role-card .role-name { margin-top: 6px; font-size: 20px; font-weight: 500; letter-spacing: .08em; }
.role-card .role-text { margin-top: 12px; font-size: 14px; line-height: 1.9; color: #333333; }
.role-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.role-chips span { display: inline-block; padding: 4px 14px; border: 1px solid currentColor; font-size: 13px; letter-spacing: .08em; }

.equal-cards > .wp-block-column { display: flex; flex-direction: column; flex-grow: 0; }
.equal-cards > .wp-block-column > .wp-block-group { display: flex; flex-direction: column; flex-grow: 1; }
.equal-cards .cta-bottom { margin-top: auto; padding-top: 20px; }

/* ========== FAQ ========== */
.faq-list { border-top: 1px solid var(--black); }
.faq-list > .faq-item { margin: 0; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary {
	position: relative;
	display: block;
	list-style: none;
	cursor: pointer;
	padding: 22px 48px 22px 44px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.7;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::before {
	content: "Q";
	position: absolute;
	left: 4px; top: 18px;
	font-family: var(--en);
	font-weight: 200;
	font-size: 24px;
	color: var(--black);
}
.faq-item summary::after {
	content: "";
	position: absolute;
	right: 8px; top: 50%;
	width: 14px; height: 14px;
	background:
		linear-gradient(currentColor, currentColor) center / 14px 1px no-repeat,
		linear-gradient(currentColor, currentColor) center / 1px 14px no-repeat;
	transform: translateY(-50%);
	transition: transform .3s var(--ease);
}
.faq-item[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq-item summary:hover { text-decoration: underline; text-underline-offset: .3em; }
.faq-item > p {
	position: relative;
	margin: 0;
	padding: 0 48px 24px 44px;
	color: #333333;
	font-size: 15px;
	line-height: 2;
}
.faq-item > p::before {
	content: "A";
	position: absolute;
	left: 4px; top: -6px;
	font-family: var(--en);
	font-weight: 200;
	font-size: 24px;
	color: var(--mid);
}

/* ========== NEWS ========== */
.news-list .wp-block-post-template { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--black); }
.news-list .wp-block-post-template > li { margin: 0; }
.news-list .news-item {
	gap: 8px 28px;
	padding: 22px 4px;
	border-bottom: 1px solid var(--line);
	flex-wrap: wrap;
	align-items: baseline;
}
.news-list .news-item > * { margin: 0; }
.news-list .news-date { font-family: var(--en); font-size: 12px; letter-spacing: .14em; color: var(--mid); min-width: 7em; }
.news-list .news-cat a {
	display: inline-block;
	font-family: var(--en);
	font-size: 10px;
	letter-spacing: .2em;
	padding: 2px 10px;
	border: 1px solid var(--black);
	text-decoration: none;
	line-height: 1.6;
}
.news-list .news-title { flex: 1 1 20em; font-size: 15px; font-weight: 500; letter-spacing: .06em; line-height: 1.7; }
.news-list .news-title a { text-decoration: none; }
.news-list .news-title a:hover { text-decoration: underline; }
.news-list .wp-block-query-pagination { margin-top: 40px; font-family: var(--en); font-size: 13px; letter-spacing: .12em; gap: 16px; }
.news-list .page-numbers.current { background: var(--marker); font-weight: 600; }

/* single post */
.post-meta { gap: 16px; font-family: var(--en); font-size: 12px; letter-spacing: .14em; color: #C8C8C8; }
.post-meta > * { margin: 0; }
.entry-content > * + * { margin-block-start: 1.4em; }
.entry-content h2 { font-size: 1.5rem; padding-bottom: 10px; border-bottom: 1px solid var(--black); margin-top: 2.4em; }
.entry-content h3 { font-size: 1.2rem; padding-left: 14px; border-left: 4px solid var(--accent); margin-top: 2em; }
.entry-content a { color: var(--black); text-decoration: underline; }

/* ========== OUR SALONS (logo marquee) ========== */
.salons { background: var(--grey); border-top: 1px solid var(--line); }
.salons.sec { padding-top: 56px; padding-bottom: 64px; }
.salons .salons-head { gap: 16px; justify-content: space-between; align-items: baseline; flex-wrap: wrap; margin-bottom: 28px; }
.salons .salons-head h2 { margin: 0; font-family: var(--en); font-weight: 200; font-size: clamp(28px, 4vw, 44px); letter-spacing: .2em; line-height: 1.2; }
.salons .salons-head h2 span { display: block; margin-top: 6px; font-family: var(--ja); font-size: 13px; font-weight: 500; letter-spacing: .12em; line-height: 1.8; }
.salons .marquee { --dur: 60s; padding: 6px 0; }
.salons .marquee-track > .marquee-group { gap: 16px; padding-right: 16px; }
.salon-logo {
	position: relative;
	flex-shrink: 0;
	width: 200px; height: 116px;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--white);
	color: #333333;
	border: 1px solid var(--line);
	transition: color .35s, border-color .35s, transform .35s var(--ease);
}
.marquee .salon-logo > * { margin: 0; }
.salon-logo:hover, .salon-logo:focus-within { color: var(--black); background: var(--accent-soft); border-color: var(--black); transform: translateY(-3px); }
.salon-logo .salon-logo__mark {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	line-height: 1.1;
	text-align: center;
	white-space: nowrap;
}
.salon-logo .salon-logo__mark a { color: inherit; text-decoration: none; }
.salon-logo .salon-logo__mark a::after { content: ""; position: absolute; inset: 0; }
.salon-logo .salon-logo__mark img,
.salon-logo .wp-block-image img { max-height: 48px; max-width: 160px; width: auto; filter: grayscale(1); transition: filter .35s; }
.salon-logo:hover .salon-logo__mark img,
.salon-logo:hover .wp-block-image img { filter: none; }
.salon-logo .salon-logo__area { font-size: 11px; letter-spacing: .2em; color: var(--mid); line-height: 1.4; }

.t-anyhow { font-family: var(--en); font-weight: 400; font-size: 15px; letter-spacing: .3em; flex-direction: column; }
.t-anyhow small { font-family: var(--serif); font-style: italic; font-size: 12px; letter-spacing: .08em; display: block; }
.t-ascolta { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 30px; letter-spacing: .01em; }
.t-angelotti { font-family: var(--serif); font-weight: 300; font-size: 22px; letter-spacing: .36em; text-transform: uppercase; }
.t-peqss { font-family: var(--en); font-weight: 800; font-size: 28px; letter-spacing: -.03em; text-transform: lowercase; }
.t-albis { font-family: var(--en); font-weight: 200; font-size: 24px; letter-spacing: .6em; padding-left: .6em; }
.salon-logo .t-rudus { font-family: var(--serif); font-weight: 600; font-size: 28px; letter-spacing: .04em; border: 1px solid currentColor; padding: 2px 12px; height: auto; }
.t-avectoi { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 28px; letter-spacing: .02em; }
.salon-logo .t-cotoco { font-family: var(--ja); font-weight: 700; font-size: 22px; letter-spacing: .24em; border-radius: 999px; border: 1.5px solid currentColor; padding: 2px 16px; height: auto; }
.t-bm { font-family: var(--en); font-weight: 600; font-size: 12px; letter-spacing: .34em; flex-direction: column; }
.t-bm small { display: block; font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 22px; letter-spacing: .02em; text-transform: none; }
.t-artesia { font-family: var(--serif); font-weight: 400; font-size: 24px; letter-spacing: .3em; text-transform: uppercase; font-variant: small-caps; }
.t-recharme { font-family: var(--serif); font-style: italic; font-weight: 600; font-size: 28px; }
.t-recharme b { font-family: var(--en); font-style: normal; font-weight: 200; font-size: 18px; margin-right: 4px; }
.salon-logo .t-ilda { font-family: var(--en); font-weight: 600; font-size: 26px; letter-spacing: .5em; padding-left: .5em; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; height: auto; padding-top: 2px; padding-bottom: 2px; }
.t-threea { font-family: var(--en); font-weight: 400; font-size: 20px; letter-spacing: .1em; }
.t-threea b { font-family: var(--serif); font-style: italic; font-weight: 600; font-size: 32px; margin-left: 2px; }
@media (max-width: 600px) {
	.salons.sec { padding-top: 44px; padding-bottom: 64px; }
	.salon-logo { width: 164px; height: 100px; }
}

/* ========== PAGE HERO BAND ========== */
.page-hero { position: relative; overflow: hidden; }
.page-hero .page-hero__inner { padding-top: clamp(48px, 8vw, 96px); padding-bottom: clamp(40px, 6vw, 72px); }
.page-hero .page-hero__inner > * { margin: 0; }
.page-hero .page-hero__en {
	font-family: var(--en);
	font-weight: 200;
	font-size: clamp(44px, 8vw, 104px);
	letter-spacing: .14em;
	line-height: .95;
	animation: fadeUp .8s var(--ease) both;
}
.page-hero .page-hero__ja {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 20px;
	font-size: clamp(16px, 2vw, 20px);
	font-weight: 500;
	letter-spacing: .12em;
	line-height: 1.6;
	animation: fadeUp .8s .15s var(--ease) both;
}
.page-hero .page-hero__ja::before { content: ""; width: 28px; height: 4px; background: var(--accent); flex-shrink: 0; }
.page-hero .crumbs { margin-top: 28px; font-family: var(--en); font-size: 10px; letter-spacing: .3em; color: #C8C8C8; }
.page-hero .crumbs a { text-decoration: none; }
.page-hero .crumbs a:hover { color: var(--accent); }
.page-hero::after {
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	width: 100%; height: 1px;
	height: 4px;
	background: linear-gradient(90deg, transparent, var(--accent), transparent);
	opacity: .9;
}

/* ========== CTA BAND ========== */
.cta-band .cta-inner { gap: 32px; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.cta-band .cta-inner > * { margin: 0; }
.cta-band .cta-title { margin: 0; font-size: clamp(20px, 2.6vw, 28px); font-weight: 500; letter-spacing: .1em; line-height: 1.6; }
.cta-band .cta-title .en { display: block; font-size: 11px; font-weight: 600; letter-spacing: .3em; color: var(--black); margin-bottom: 6px; }
.cta-band .cta-text { margin: 8px 0 0; font-size: 14px; color: #2A2A2A; }
.cta-band .wp-block-buttons { gap: 12px; }

/* ========== CONCEPT PAGE ========== */
.concept-statement {
	margin: 0;
	font-size: clamp(24px, 3.4vw, 40px);
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 1.7;
}
.concept-text p { font-size: 16px; line-height: 2.2; color: #333333; }
.wp-block-columns.value-cards { gap: 20px; }
.value-card { height: 100%; margin: 0; padding: 32px 26px; background: var(--white); border-top: 4px solid var(--accent); }
.value-cards .value-card > * { margin: 0; }
.value-card .value-num { font-family: var(--en); font-weight: 200; font-size: 40px; line-height: 1; color: var(--black); }
.value-card .value-en { margin-top: 18px; font-family: var(--en); font-size: 11px; font-weight: 600; letter-spacing: .24em; color: var(--mid); }
.value-card .value-title { margin-top: 4px; font-size: 19px; font-weight: 500; letter-spacing: .08em; }
.value-card .value-text { margin-top: 12px; font-size: 14px; line-height: 1.9; color: #333333; }
.photo-band { margin: 0; }
.photo-band img { display: block; width: 100%; aspect-ratio: 1584 / 672; object-fit: cover; }

/* ========== COMPANY PAGE ========== */
.message-body p { font-size: 16px; line-height: 2.2; color: #333333; }
.sec .message-sign { margin: 32px 0 0; text-align: right; letter-spacing: .12em; }
.message-sign span { display: block; font-size: 13px; color: var(--mid); }
.message-sign strong { font-size: 20px; font-weight: 500; letter-spacing: .2em; }

/* ========== FOOTER ========== */
.site-footer { background: var(--black); color: var(--white); }
.site-footer .wp-block-columns.footer-cols { gap: 40px; }
.site-footer .footer-brand { margin: 0; }
.site-footer .footer-brand a { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
.site-footer .footer-small { margin: 18px 0 0; font-size: 13px; line-height: 1.9; color: #C8C8C8; }
.site-footer .footer-label { margin: 0 0 14px; font-family: var(--en); font-size: 11px; font-weight: 600; letter-spacing: .24em; color: var(--accent); }
.site-footer .footer-links { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 24px; }
.site-footer .footer-links li { margin: 0 0 10px; break-inside: avoid; font-family: var(--en); font-size: 11px; letter-spacing: .16em; }
.site-footer .footer-links a { text-decoration: none; opacity: .88; }
.site-footer .footer-links a:hover, .site-footer .footer-links a:focus-visible { opacity: 1; color: var(--accent); }
.site-footer .footer-buttons { gap: 10px; flex-direction: column; align-items: stretch; }
.site-footer .footer-buttons .wp-block-button { width: 100%; }
.site-footer .footer-buttons .wp-block-button__link { display: block; width: 100%; padding: 12px 18px; font-size: 13px; text-align: center; }
.site-footer .footer-bottom {
	margin-top: 48px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, .2);
	gap: 12px;
	justify-content: space-between;
	flex-wrap: wrap;
}
.site-footer .footer-bottom > * { margin: 0; }
.site-footer .copyright { font-family: var(--en); font-size: 10px; letter-spacing: .2em; color: #BDBDBD; }

/* ========== ADDITIONAL COMPONENTS ========== */
.sec .sec-foot { margin-top: 36px; }
.sec .intro-text { margin: 0 0 48px; font-size: 15px; color: #333333; }
.block-title {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0 0 8px;
	padding-bottom: 14px;
	border-bottom: 1px solid currentColor;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .12em;
}
.block-title .en { font-weight: 200; font-size: clamp(26px, 3vw, 36px); letter-spacing: .14em; line-height: 1.1; }
.sec .block-title + .check-list,
.sec .block-title + .info-table { margin-top: 0; }
.sec .block-title + .info-table tr:first-child td { border-top: 0; }
.sec .recruit-lead {
	margin: 32px 0 12px;
	font-size: clamp(24px, 3vw, 36px);
	font-weight: 700;
	letter-spacing: .14em;
	line-height: 1.5;
}
.recruit-home .eyebrow,
.has-accent-background-color .eyebrow { color: var(--black); }
.has-accent-background-color .stats { margin-top: 16px; }
.has-accent-background-color .stats > .wp-block-column { border-left-color: rgba(17, 17, 17, .3); }
.has-accent-background-color .stat .stat-num small { color: var(--black); }
.cta-band .cta-title .en { color: var(--black); }
.sec .matching-lead { font-size: clamp(20px, 2.4vw, 28px); }
.matching-sec .tag-new { margin-bottom: 18px; }

.cta-cards .cta-card {
	height: 100%;
	margin: 0;
	padding: 36px 32px;
	border: 1px solid rgba(255, 255, 255, .25);
	transition: border-color .3s;
}
.cta-cards .cta-card:hover { border-color: var(--accent); }
.cta-cards .cta-card > * { margin: 0; }
.cta-card .cta-card__title { margin-top: 8px; font-size: clamp(19px, 2vw, 24px); font-weight: 500; letter-spacing: .1em; }
.cta-card .cta-card__text { margin-top: 12px; font-size: 14px; line-height: 1.9; color: #E4E4E4; }
.matching-cta .tax-note { margin-top: 24px; }

.page-body .entry-content,
.page-body > .back-link { margin-top: 0; }
.page-body .back-link { margin-top: 56px; }
.page-extra > :first-child { margin-top: 64px; }
.page-extra > :last-child { margin-bottom: 64px; }
.news-page .news-list { margin-top: 0; }
.salon-page .salon-area-head { margin-bottom: 28px; }
.salon-page .salon-grid { margin-top: 0; }
.recruit-info .check-list { margin-top: 0; }
.company-profile .info-table,
.company-message .message-body { margin-top: 0; }
.message-body > p:first-child { margin-top: 0; }

/* ========== SCROLL REVEAL ========== */
.has-js .reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.has-js .reveal.is-visible { opacity: 1; transform: none; }
.has-js .card.reveal.is-visible:hover,
.has-js .card.reveal.is-visible:focus-within { transform: translateY(-6px); }

/* === Editor: keep animated content visible while editing === */
.editor-styles-wrapper .reveal,
.editor-styles-wrapper .card,
.editor-styles-wrapper .card-more,
.editor-styles-wrapper .hero-img img,
.editor-styles-wrapper .hero-caption,
.editor-styles-wrapper .page-hero__en,
.editor-styles-wrapper .page-hero__ja,
.editor-styles-wrapper .badge {
	opacity: 1 !important;
	transform: none !important;
	animation: none !important;
	transition: none !important;
}
.editor-styles-wrapper .marquee .marquee-track { animation: none; }
.editor-styles-wrapper .marquee { overflow-x: auto; }

/* ========== REDUCED MOTION ========== */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
	.reveal, .has-js .reveal, .card, .card-more, .hero-img img, .hero-caption, .page-hero__en, .page-hero__ja, .badge {
		opacity: 1 !important;
		transform: none !important;
	}
	.marquee { overflow-x: auto; }
	.marquee .marquee-track > .marquee-clone { display: none; }
	.style-sec .drift { display: none; }
}

/* full-bleed hero */
.site-main > .hero.alignfull { padding-left: 0 !important; padding-right: 0 !important; }
.hero .hero-frame { max-width: none !important; width: 100%; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }

/* side gutters for full-width sections (mobile safety) */
.wp-site-blocks .alignfull.sec,
.wp-site-blocks .alignfull.page-hero,
.wp-site-blocks .alignfull.hero-bar {
	padding-left: var(--gutter) !important;
	padding-right: var(--gutter) !important;
}

/* ========== STORE LISTS (shortcodes) ========== */
.salon-list .salon-cat + .salon-cat { margin-top: clamp(48px, 7vw, 80px); }
.salon-list .salon-area-head { margin: 0 0 24px; }
.salon-grid-sc {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(17rem, 100%), 1fr));
	gap: 20px;
}
.salon-grid-sc .salon-card { display: flex; flex-direction: column; align-items: flex-start; }
.salon-grid-sc .salon-card > * { margin: 0; }
.salon-grid-sc .salon-card .salon-name { margin-top: 14px; }
.salon-grid-sc .salon-card .salon-addr { margin-top: 10px; }
.salon-grid-sc .salon-card .salon-access { margin-top: 6px; }
.salon-grid-sc .salon-card .salon-actions {
	margin-top: auto;
	padding-top: 18px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	width: 100%;
}
.salon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 22px;
	background: var(--accent);
	color: var(--on-accent);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .08em;
	text-decoration: none;
	transition: background .25s, color .25s;
}
.salon-btn:hover, .salon-btn:focus-visible { background: var(--black); color: var(--accent); }
.salon-btn--outline { background: transparent; color: var(--black); border: 1px solid var(--black); }
.salon-btn--outline:hover, .salon-btn--outline:focus-visible { background: var(--black); color: var(--white); }
.salon-btn--line { background: var(--white); color: var(--black); box-shadow: inset 0 0 0 1px var(--black); }
.salon-btn--line:hover, .salon-btn--line:focus-visible { background: var(--black); color: var(--white); }
.salon-tel {
	font-family: var(--en);
	font-size: 12px;
	letter-spacing: .12em;
	color: var(--black);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}
.salon-tel:hover, .salon-tel:focus-visible { background: var(--marker); }
.salon-note { width: 100%; margin: 0; font-size: 13px; color: var(--mid); }
.salon-grid-sc .salon-card > .salon-note { margin-top: auto; padding-top: 18px; }
.salon-partner-head { margin: 0 0 8px; font-size: 14px; font-weight: 500; letter-spacing: .12em; color: var(--mid); }
.salon-partner-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--mid); }
.reserve-page .reserve-note { margin-top: 48px; color: var(--mid); }
.reserve-page .reserve-note a { color: var(--black); text-decoration: underline; }

/* homepage compact list */
.salon-compact {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(20rem, 100%), 1fr));
	gap: 40px 48px;
}
.salon-compact .salon-area-head { margin: 0 0 6px; font-size: 16px; }
.salon-compact .salon-mini li { padding: 10px 0; font-size: 14px; }
.salon-compact .salon-mini a { text-decoration: none; }
.salon-compact .salon-mini a:hover, .salon-compact .salon-mini a:focus-visible { text-decoration: underline; }

/* new wordmarks */
.t-arbis { font-family: var(--serif); font-weight: 400; font-size: 28px; letter-spacing: .12em; flex-direction: column; }
.t-arbis small, .t-archange small { display: block; font-family: var(--en); font-style: normal; font-weight: 400; font-size: 9px; letter-spacing: .3em; margin-top: 4px; }
.t-archange { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 28px; letter-spacing: .04em; flex-direction: column; }

/* ========== ACCENT SYSTEM ==========
 * Accent is a FILL colour only (buttons, tags, badge core, markers, bars >= 4px).
 * Accent text / thin lines are allowed on black backgrounds only.
 */
body.accent-lemon {
	--accent: #FFF04F;
	--accent-soft: #FFFBD6;
	--marker: linear-gradient(transparent 60%, #FFF04F 60%);
	--wp--preset--color--accent: #FFF04F;
	--wp--preset--color--accent-soft: #FFFBD6;
}
body.accent-aqua {
	--marker: linear-gradient(transparent 60%, #81D8D0 60%);
}
.has-accent-background-color { color: var(--on-accent); }
.has-accent-background-color .sec-note,
.has-accent-background-color .tax-note { color: #2A2A2A; }
.has-black-background-color .wp-block-button:not(.btn-outline):not(.btn-line):not(.btn-white):not(.btn-dark) .wp-block-button__link:hover,
.has-black-background-color .wp-block-button:not(.btn-outline):not(.btn-line):not(.btn-white):not(.btn-dark) .wp-block-button__link:focus-visible {
	background: var(--white);
	color: var(--black);
}
.mark { background: var(--marker); padding: 0 .1em; }
.has-black-background-color .mark { background: none; color: var(--accent); }

/* ========== SERVICE (teaser + treatment page) ========== */
.wp-block-columns.svc-cards { gap: 20px; }
.svc-cards .svc-card {
	height: 100%;
	margin: 0;
	padding: 32px 28px 28px;
	background: var(--white);
	border-top: 4px solid var(--accent);
	box-shadow: 0 1px 0 var(--line);
	transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.svc-cards .svc-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -24px rgba(0, 0, 0, .35); }
.svc-cards .svc-card > * { margin: 0; }
.svc-card .svc-card__en { font-family: var(--en); font-weight: 200; font-size: clamp(28px, 3vw, 36px); letter-spacing: .14em; line-height: 1.1; }
.svc-card .svc-card__ja { margin-top: 6px; font-size: 13px; font-weight: 500; letter-spacing: .12em; color: var(--mid); }
.svc-card .svc-card__lead { margin-top: 18px; font-size: 16px; font-weight: 500; letter-spacing: .06em; line-height: 1.7; }
.svc-card .svc-card__brands { margin-top: 14px; font-family: var(--serif); font-style: italic; font-size: 18px; letter-spacing: .02em; line-height: 1.5; color: #333333; }
.svc-cards .svc-card .more-link { margin-top: auto; padding-top: 22px; }

.svc-cat { position: relative; overflow: hidden; isolation: isolate; }
.svc-cat::before {
	content: "";
	position: absolute;
	top: clamp(24px, 4vw, 48px);
	right: calc(var(--gutter) * -1);
	z-index: -1;
	font-family: var(--en);
	font-weight: 800;
	font-size: clamp(64px, 13vw, 190px);
	letter-spacing: .04em;
	line-height: 1;
	white-space: nowrap;
	color: transparent;
	-webkit-text-stroke: 1px #CFCFCB;
	pointer-events: none;
}
.svc-cat--treatment::before { content: "TREATMENT"; content: "TREATMENT" / ""; }
.svc-cat--color::before { content: "COLOR"; content: "COLOR" / ""; }
.svc-cat--straight::before { content: "STRAIGHT"; content: "STRAIGHT" / ""; }
.svc-cat::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: -1;
	width: 42%;
	height: 58%;
	background: var(--accent-soft);
}
.has-grey-background-color.svc-cat::after { left: auto; right: 0; }
.svc-cat .sec-head { align-items: flex-end; }
.svc-cat .svc-lead {
	margin: 0;
	font-size: clamp(16px, 2vw, 20px);
	font-weight: 500;
	letter-spacing: .08em;
	line-height: 1.7;
	max-width: 22em;
}
.svc-cat .brand-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 20px;
}
.svc-cat .brand-grid > * { margin: 0; }
.brand-grid .brand-card {
	display: flex;
	flex-direction: column;
	padding: 30px 26px 26px;
	background: var(--white);
	border: 1px solid var(--line);
	transition: border-color .3s, transform .35s var(--ease);
}
.brand-grid .brand-card:hover { border-color: var(--black); transform: translateY(-3px); }
.brand-grid .brand-card > * { margin: 0; }
.brand-card .brand-maker { font-size: 12px; letter-spacing: .12em; color: var(--mid); }
.brand-card .brand-name {
	margin-top: 6px;
	font-family: var(--serif);
	font-weight: 600;
	font-size: clamp(26px, 2.6vw, 32px);
	letter-spacing: .02em;
	line-height: 1.15;
}
.brand-card .brand-name .kana {
	display: block;
	margin-top: 6px;
	font-family: var(--ja);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .12em;
	color: var(--mid);
}
.brand-card .brand-points { list-style: none; margin-top: 18px; padding: 0; }
.brand-card .brand-points li {
	position: relative;
	padding: 8px 0 8px 18px;
	border-top: 1px solid var(--line);
	font-size: 14px;
	line-height: 1.8;
}
.brand-card .brand-points li::before {
	content: "";
	position: absolute;
	left: 0; top: 1.05em;
	width: 6px; height: 6px;
	background: var(--accent);
	box-shadow: 0 0 0 1px rgba(17, 17, 17, .25);
}
.brand-card .brand-for {
	margin-top: 14px;
	padding: 12px 14px;
	background: var(--grey);
	font-size: 13px;
	line-height: 1.8;
}
.has-grey-background-color .brand-card .brand-for { background: var(--accent-soft); }
.brand-card .brand-for span { display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; color: var(--mid); }
.brand-card .brand-price { margin-top: 14px; font-family: var(--en); font-size: 15px; letter-spacing: .04em; }
.brand-card .brand-price small { font-family: var(--ja); font-size: 11px; color: var(--mid); margin-left: 2px; }
.brand-card .cta-bottom { margin-top: auto; padding-top: 22px; }
.brand-card .cta-bottom .wp-block-button,
.brand-card .cta-bottom .wp-block-button__link { width: 100%; }

.svc-intro .svc-jump { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.svc-intro .svc-jump a {
	display: inline-block;
	padding: 6px 16px;
	font-family: var(--en);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .24em;
	text-decoration: none;
	background: var(--accent);
	color: var(--on-accent);
	transition: background .25s, color .25s;
}
.svc-intro .svc-jump a:hover, .svc-intro .svc-jump a:focus-visible { background: var(--black); color: var(--accent); }
.svc-intro .svc-note { font-size: 12px; line-height: 1.8; color: var(--mid); }
.svc-how .tax-note { margin-top: 32px; }
.sec-title.sec-title--wrap .en { white-space: normal; }
@media (max-width: 600px) {
	.svc-cat::after { width: 70%; height: 40%; }
	.svc-cat::before { top: auto; bottom: 8px; font-size: 56px; }
}

/* AI chat privacy note (FAQ page) */
.faq-page .ai-note { margin-top: 72px; padding: 28px 28px 20px; background: var(--grey); border-top: 4px solid var(--accent); }
.faq-page .ai-note > * { margin: 0; }
.faq-page .ai-note .ai-note__title { font-size: 18px; font-weight: 700; letter-spacing: .08em; margin-bottom: 8px; }
.faq-page .ai-note .check-list li { font-size: 14px; border-bottom-color: var(--line); }
.faq-page .ai-note .check-list li:last-child { border-bottom: 0; }


/* ========== HERO SLIDESHOW (CSS crossfade, 4 x 6s) ========== */
.hero .hero-slides .hero-slide { margin: 0; }
.hero .hero-slides .hero-slide:not(.slide-1) {
	position: absolute;
	inset: 0;
	z-index: 1;
	opacity: 0;
	animation: heroSlide 24s linear infinite;
}
.hero .hero-slides .hero-slide.slide-2:not(.slide-1) { animation-delay: 6s; }
.hero .hero-slides .hero-slide.slide-3:not(.slide-1) { animation-delay: 12s; }
.hero .hero-slides .hero-slide.slide-4:not(.slide-1) { animation-delay: 18s; }
.hero .hero-slides .hero-slide:not(.slide-1) img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: heroZoom 24s linear infinite;
}
.hero .hero-slides .hero-slide.slide-2:not(.slide-1) img { animation-delay: 6s; }
.hero .hero-slides .hero-slide.slide-3:not(.slide-1) img { animation-delay: 12s; }
.hero .hero-slides .hero-slide.slide-4:not(.slide-1) img { animation-delay: 18s; }
.hero .hero-slides .hero-caption { z-index: 2; background: rgba(255, 255, 255, .82); padding: 4px 10px 4px 0; }
@keyframes heroSlide {
	0% { opacity: 0; }
	5% { opacity: 1; }
	25% { opacity: 1; }
	30% { opacity: 0; }
	100% { opacity: 0; }
}
@keyframes heroZoom {
	0% { transform: scale(1); }
	30% { transform: scale(1.05); }
	100% { transform: scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
	.hero .hero-slides .hero-slide:not(.slide-1) { display: none; }
}
.editor-styles-wrapper .hero .hero-slides .hero-slide:not(.slide-1) { display: none; }

/* ========== STYLE photos ========== */
.card .card-media img { object-position: 50% 35%; }
.style-page .style-chips { display: none; gap: 8px; margin-bottom: 32px; }
.has-js .style-page .style-chips { display: flex; flex-wrap: wrap; }
.style-chips .chip .wp-block-button__link {
	padding: 8px 16px;
	background: var(--white);
	color: var(--black);
	border: 1px solid var(--black);
	font-family: var(--en);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .2em;
}
.style-chips .chip .wp-block-button__link:hover,
.style-chips .chip .wp-block-button__link:focus-visible { background: var(--black); color: var(--white); }
.style-chips .chip.is-active .wp-block-button__link { background: var(--accent); color: var(--on-accent); border-color: var(--black); }
.style-page .style-status { margin: 0 0 16px; font-size: 12px; color: var(--mid); }
.style-page .style-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px 20px;
}
.style-page .style-grid > * { margin: 0; }
.style-page .style-grid .card { flex: none; }
.style-page .style-grid .card[hidden] { display: none; }
.style-page .style-note { margin-top: 40px; }
@media (max-width: 1000px) {
	.style-page .style-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
	.style-page .style-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
	.style-page .style-grid .card-name { font-size: 14px; }
	.style-page .style-grid .card-cta a { font-size: 11px; }
}
.style-sec .strip-ctrl .more-link { margin-left: auto; }

/* ========== TREATMENT photos ========== */
.svc-cat .wp-block-columns.svc-head { gap: clamp(24px, 5vw, 64px); margin-bottom: clamp(32px, 5vw, 56px); }
.svc-cat .svc-photo { margin: 0; }
.svc-cat .svc-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	max-height: 560px;
	object-fit: cover;
}
.svc-cat .svc-head .svc-lead { margin-top: 24px; }
@media (max-width: 781px) {
	.svc-cat .svc-photo img { max-height: 60vh; aspect-ratio: auto; height: 60vh; }
}

/* ========== ACADEMY ========== */
.academy-intro .academy-lead { margin-top: 20px; font-size: 15px; line-height: 2; color: #333333; }
.academy-intro .academy-meta { margin-top: 14px; font-size: 12px; color: var(--mid); }
.academy-intro .academy-meta a { color: var(--black); text-decoration: underline; }
.wp-block-columns.debut-cards { gap: 12px; margin-top: 14px; }
.debut-cards .debut-card {
	height: 100%;
	margin: 0;
	padding: 22px 18px 20px;
	background: var(--accent);
	color: var(--on-accent);
}
.debut-cards .debut-card > * { margin: 0; }
.debut-card .debut-role { font-size: 13px; font-weight: 700; letter-spacing: .08em; line-height: 1.4; }
.debut-card .debut-role span { display: block; font-size: 11px; font-weight: 500; opacity: .8; }
.debut-card .debut-num { margin-top: 10px; font-family: var(--en); font-weight: 200; font-size: clamp(48px, 6vw, 80px); line-height: 1; }
.debut-card .debut-num small { font-family: var(--ja); font-size: 14px; font-weight: 500; margin-left: 4px; }
@media (max-width: 480px) {
	.debut-cards .debut-card { padding: 16px 10px; }
	.debut-card .debut-role { font-size: 11px; }
}

.academy-why .why-photo { margin: 0; }
.academy-why .why-photo img { display: block; width: 100%; height: 100%; min-height: 320px; max-height: 640px; object-fit: cover; }
.academy-why .why-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; height: 100%; }
.academy-why .why-grid > * { margin: 0; }
.academy-why .why-card { height: auto; }
@media (max-width: 781px) {
	.academy-why .why-photo img { max-height: 60vh; min-height: 0; aspect-ratio: 4 / 5; height: auto; }
}
@media (max-width: 600px) {
	.academy-why .why-grid { grid-template-columns: 1fr; }
}

.academy-day .timeline {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	border-top: 4px solid var(--accent);
}
.academy-day .timeline li {
	position: relative;
	padding: 22px 12px 0 0;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.6;
}
.academy-day .timeline li::before {
	content: "";
	position: absolute;
	top: -10px; left: 0;
	width: 16px; height: 16px;
	border-radius: 50%;
	background: var(--black);
	box-shadow: 0 0 0 4px var(--white);
}
.academy-day .timeline .time { display: block; font-family: var(--en); font-weight: 200; font-size: 28px; letter-spacing: .02em; line-height: 1.2; margin-bottom: 4px; }
@media (max-width: 781px) {
	.academy-day .timeline { grid-template-columns: 1fr; border-top: 0; border-left: 4px solid var(--accent); padding-left: 24px; }
	.academy-day .timeline li { padding: 0 0 20px; }
	.academy-day .timeline li::before { top: 8px; left: -34px; }
	.academy-day .timeline .time { font-size: 22px; }
}

.academy-course .course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.academy-course .course-grid > * { margin: 0; }
.course-grid .course-card { display: flex; flex-direction: column; padding: 30px 28px 26px; background: var(--white); border: 1px solid var(--line); }
.course-grid .course-card > * { margin: 0; }
.course-card .course-period {
	align-self: flex-start;
	padding: 2px 12px;
	background: var(--accent);
	color: var(--on-accent);
	font-family: var(--en);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
}
.course-card .course-name { margin-top: 14px; font-size: clamp(19px, 2vw, 22px); font-weight: 700; letter-spacing: .08em; }
.course-card .course-target { margin-top: 10px; font-size: 13px; line-height: 1.8; color: #333333; }
.course-card .course-target span,
.course-card .course-goal span {
	display: inline-block;
	margin-right: 8px;
	padding: 0 8px;
	background: var(--black);
	color: var(--white);
	font-size: 11px;
	letter-spacing: .08em;
}
.course-card .course-label { margin-top: 18px; font-size: 12px; font-weight: 700; letter-spacing: .12em; color: var(--mid); }
.course-card .course-list { margin-top: 6px; }
.course-card .course-list li { font-size: 14px; padding-top: 8px; padding-bottom: 8px; }
.course-card .course-goal { margin-top: auto; padding-top: 16px; font-size: 14px; font-weight: 500; }
.academy-course .course-common { margin-top: 32px; padding: 20px 24px; background: var(--white); border-top: 4px solid var(--accent); }
.academy-course .course-common > * { margin: 0; }
.course-common .course-common__label { font-size: 13px; font-weight: 700; letter-spacing: .1em; margin-bottom: 10px; }
.course-common .course-common__list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.course-common .course-common__list li { padding: 4px 12px; border: 1px solid var(--black); font-size: 13px; }
@media (max-width: 781px) {
	.academy-course .course-grid { grid-template-columns: 1fr; }
}

.academy-flow .flow-cta { margin-top: 32px; }
.academy-flow .flow-steps .step-title { font-size: 15px; }

.campus-cards .campus-card { height: 100%; margin: 0; padding: 30px 28px; background: var(--white); border-top: 4px solid var(--accent); }
.campus-cards .campus-card > * { margin: 0; }
.campus-card .campus-en { font-family: var(--en); font-size: 11px; font-weight: 600; letter-spacing: .24em; color: var(--mid); }
.campus-card .campus-name { margin-top: 6px; font-size: 20px; font-weight: 700; letter-spacing: .08em; }
.campus-card .campus-addr { margin-top: 12px; font-size: 14px; line-height: 1.8; }
.campus-card .campus-access { margin-top: 4px; font-size: 13px; color: var(--mid); }
.campus-card .campus-tel { margin-top: 14px; font-family: var(--en); font-size: 13px; letter-spacing: .1em; }
.campus-card .campus-tel a { text-decoration: underline; }

/* header: 10 nav items */
@media (min-width: 1200px) and (max-width: 1380px) {
	.site-header .site-nav .wp-block-navigation__container { gap: 14px; }
	.site-header .site-nav .wp-block-navigation-item__content { font-size: 10.5px; letter-spacing: .1em; }
	.site-header .header-inner { gap: 20px; }
}
.wp-block-column .sec-title.sec-title--sm .en, .sec-title.sec-title--sm .en { font-size: clamp(30px, 5vw, 64px); }

/* ========== BRAND LOGOS ========== */
.brand-logo { display: inline-block; height: 40px; width: auto; max-width: 100%; vertical-align: middle; object-fit: contain; }
.brand-logo--sm { height: 28px; }
.brand-logo--text { height: auto; font-family: var(--serif); font-weight: 600; font-size: 26px; letter-spacing: .02em; line-height: 1.2; color: var(--black); }
.brand-logo--text.brand-logo--sm { font-size: 17px; }
/* per-slug adjustments (logos sit on white cards) */
.brand-logo--tokio { filter: brightness(0); }
.brand-logo--oggiotto { height: 52px; }
.brand-logo--oggiotto.brand-logo--sm { height: 34px; }
@media (max-width: 600px) {
	.brand-logo { height: 32px; }
	.brand-logo--sm { height: 24px; }
	.brand-logo--oggiotto { height: 42px; }
}
.brand-card .brand-logo { margin-top: 14px; }
.brand-card p:has(> .brand-logo) { margin: 14px 0 0; min-height: 52px; display: flex; align-items: center; }
.brand-grid .brand-card .brand-name { margin-top: 12px; font-family: var(--ja); font-size: 15px; font-weight: 700; letter-spacing: .06em; line-height: 1.5; }
.brand-grid .brand-card .brand-name .kana { display: inline; margin: 0 0 0 8px; font-size: 12px; }
.svc-card p:has(> .brand-logo), .purpose-card p:has(> .brand-logo) {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 16px;
}
.purpose-card p:has(> .brand-logo) { padding: 10px 12px; background: var(--white); }

/* おすすめ */
.reco {
	display: inline-block;
	margin-right: 8px;
	padding: 0 8px;
	background: var(--accent);
	color: var(--on-accent);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.7;
	vertical-align: 1px;
}

/* 最終更新日 */
.page-updated { gap: 8px; margin-bottom: 24px; font-size: 12px; color: var(--mid); }
.page-updated > * { margin: 0; }
.page-updated .updated-label::after { content: "："; }
.page-updated:not(:has(.wp-block-post-date)) { display: none; }

/* ========== PURPOSE ========== */
.purpose-home .purpose-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.purpose-home .purpose-grid > * { margin: 0; }
.purpose-grid .purpose-card {
	display: flex;
	flex-direction: column;
	padding: 28px 22px 22px;
	background: #1C1C1C;
	border-top: 4px solid var(--accent);
	color: var(--white);
	transition: background .3s, transform .35s var(--ease);
}
.purpose-grid .purpose-card:hover { background: #242424; transform: translateY(-4px); }
.purpose-grid .purpose-card > * { margin: 0; }
.purpose-card .purpose-no { font-family: var(--en); font-size: 11px; font-weight: 600; letter-spacing: .24em; color: var(--accent); }
.purpose-card .purpose-title { margin-top: 12px; font-size: clamp(17px, 1.6vw, 20px); font-weight: 700; letter-spacing: .06em; line-height: 1.6; }
.purpose-card .purpose-text { margin-top: 12px; font-size: 13.5px; line-height: 1.9; color: #D6D6D6; }
.purpose-card .purpose-price { margin-top: 16px; font-size: 15px; font-weight: 500; }
.purpose-card .purpose-price span { display: inline-block; margin-right: 8px; padding: 0 6px; border: 1px solid rgba(255, 255, 255, .5); font-size: 11px; }
.purpose-card .purpose-note { margin-top: 8px; font-size: 12px; color: #BDBDBD; }
.purpose-card .purpose-links { margin-top: auto; padding-top: 18px; gap: 18px; }
@media (max-width: 1100px) { .purpose-home .purpose-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .purpose-home .purpose-grid { grid-template-columns: 1fr; } }

/* ========== FIRST VISIT / WANTED ========== */
.sec .fv-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.sec .fv-grid > * { margin: 0; }
.fv-grid .value-card { height: auto; color: var(--black); }
.fv-grid .value-card > * { margin: 0; }
.fv-grid .value-card .value-title { margin-top: 12px; font-size: 17px; line-height: 1.6; }
.fv-grid .value-card .value-text { margin-top: 10px; }
.has-black-background-color .fv-grid .value-card { background: var(--white); }
@media (max-width: 1000px) { .sec .fv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .sec .fv-grid { grid-template-columns: 1fr; } }

/* ========== WHY ALPHA ========== */
.why-alpha .why-alpha__lead { margin-top: 28px; font-size: clamp(22px, 2.6vw, 30px); }
.why-alpha .why-alpha__list { display: grid; gap: 14px; }
.why-alpha .why-alpha__list > * { margin: 0; }
.why-alpha__list .why-alpha__item {
	display: grid;
	grid-template-columns: 96px 1fr;
	grid-template-areas: "num title" "num text";
	column-gap: 20px;
	padding: 22px 24px;
	background: var(--white);
	border-left: 4px solid var(--accent);
}
.why-alpha__list .why-alpha__item > * { margin: 0; }
.why-alpha__item .why-alpha__num { grid-area: num; align-self: center; font-family: var(--en); font-weight: 200; font-size: 34px; line-height: 1; }
.why-alpha__item .why-alpha__title { grid-area: title; font-size: 17px; font-weight: 700; letter-spacing: .06em; }
.why-alpha__item .why-alpha__text { grid-area: text; margin-top: 6px; font-size: 14px; line-height: 1.9; color: #333333; }
@media (max-width: 600px) {
	.why-alpha__list .why-alpha__item { grid-template-columns: 64px 1fr; column-gap: 12px; padding: 18px 16px; }
	.why-alpha__item .why-alpha__num { font-size: 24px; }
}

/* ========== JOIN STRIP ========== */
.join-strip .join-strip__inner { gap: 16px 32px; padding-top: 22px; padding-bottom: 22px; }
.join-strip .join-strip__inner > * { margin: 0; }
.join-strip .join-strip__text { font-size: 15px; font-weight: 500; letter-spacing: .06em; }
.join-strip .join-strip__text .en { display: inline-block; margin-right: 14px; padding: 0 8px; background: var(--accent); color: var(--on-accent); font-size: 11px; font-weight: 700; letter-spacing: .2em; }
.wp-site-blocks .alignfull.join-strip { padding-left: var(--gutter) !important; padding-right: var(--gutter) !important; }

/* ========== ABOUT SUMMARY ========== */
.about-summary { max-width: 860px; margin: 0 auto !important; }
.about-summary > * { margin: 0; }
.about-summary .about-title { margin-top: 8px; font-size: clamp(20px, 2.4vw, 26px); font-weight: 700; letter-spacing: .08em; }
.about-summary .about-text { margin-top: 16px; font-size: 15px; line-height: 2.1; color: #333333; }
.about-summary .about-links { margin-top: 20px; gap: 24px; }
.about-home.sec { padding-top: 64px; padding-bottom: 72px; border-top: 1px solid var(--line); }
.brand-grid .brand-card > .brand-logo { margin-top: 16px; align-self: flex-start; }
.brand-grid .brand-card > .brand-logo--text { font-size: 26px; }
.brand-logo { max-width: 220px; object-position: left center; }
.brand-logo--sm { max-width: 150px; }
.brand-logo--text { max-width: none; }

/* ========== NEWS: tabs, empty, single CTA ========== */
.news-page .news-tabs { max-width: var(--wp--style--global--wide-size, 1232px); margin: 0 auto 28px !important; }
.news-tabs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.news-tabs a {
	display: inline-block;
	padding: 9px 18px;
	border: 1px solid var(--black);
	background: var(--white);
	color: var(--black);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .06em;
	text-decoration: none;
	transition: background .2s, color .2s;
}
.news-tabs a:hover, .news-tabs a:focus-visible { background: var(--black); color: var(--white); }
.news-tabs a.is-current { background: var(--accent); color: var(--on-accent); font-weight: 700; }
.news-page .news-cat-desc { margin: 0 auto 24px; font-size: 14px; color: var(--mid); }
.news-list .news-empty { margin: 0; padding: 28px 4px; border-bottom: 1px solid var(--line); color: var(--mid); font-size: 14px; }
.news-list .news-cat a { background: var(--white); }
.recruit-news .news-list { margin-top: 0; }

.page-hero .post-meta { margin-top: 24px; gap: 14px; }
.page-hero .post-cat a {
	display: inline-block;
	padding: 2px 10px;
	background: var(--accent);
	color: var(--on-accent);
	font-family: var(--ja);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
}
.page-hero .post-date { color: #C8C8C8; }
.page-body .post-eyecatch { max-width: 800px; margin: 0 auto 40px; }
.page-body .post-eyecatch img { width: 100%; height: auto; }
.page-body .post-cta-wrap { max-width: 800px; margin: 64px auto 0 !important; }
.post-cta { padding: 32px 28px; background: var(--accent); color: var(--on-accent); }
.post-cta--recruit { background: var(--black); color: var(--white); border-top: 4px solid var(--accent); }
.post-cta p { margin: 0; }
.post-cta .post-cta__en { font-family: var(--en); font-size: 11px; font-weight: 700; letter-spacing: .3em; }
.post-cta--recruit .post-cta__en { color: var(--accent); }
.post-cta .post-cta__title { margin-top: 8px; font-size: clamp(18px, 2.2vw, 22px); font-weight: 700; letter-spacing: .06em; line-height: 1.6; }
.post-cta .post-cta__text { margin-top: 6px; font-size: 14px; }
.post-cta .post-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 18px; }
.post-cta .post-cta__btn {
	display: inline-block;
	padding: 13px 24px;
	background: var(--black);
	color: var(--white);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
}
.post-cta--recruit .post-cta__btn { background: var(--white); color: var(--black); }
.post-cta .post-cta__btn:hover, .post-cta .post-cta__btn:focus-visible { background: var(--white); color: var(--black); }
.post-cta--recruit .post-cta__btn:hover, .post-cta--recruit .post-cta__btn:focus-visible { background: var(--accent); color: var(--on-accent); }
.post-cta .post-cta__link { color: inherit; font-size: 13px; text-decoration: underline; text-underline-offset: .25em; }
.post-back { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 32px; }
.post-back a { font-size: 13px; font-weight: 500; letter-spacing: .06em; color: var(--black); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.post-back a::before { content: "\2190  "; }

/* ========== GLAM HERO (editorial triptych) ========== */
.hero-glam { position: relative; background: var(--black); overflow: hidden; }
.hero-glam .glam-panels {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
	height: min(88vh, 820px);
	min-height: 520px;
	margin: 0;
}
.hero-glam .glam-panels > * { margin: 0; }
.hero-glam .glam-panel { position: relative; overflow: hidden; background: #1a1a1a; }
.hero-glam .glam-panel > figure { position: absolute; inset: 0; margin: 0; }
.hero-glam .glam-panel img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 25%;
	animation: glamZoom 14s ease-in-out infinite alternate;
}
.hero-glam .glam-panel .gs-1 { z-index: 1; }
.hero-glam .glam-panel .gs:not(.gs-1) { z-index: 2; opacity: 0; animation: glamFade 18s linear infinite; }
.hero-glam .panel-a .gs-2 { animation-delay: 6s; }
.hero-glam .panel-a .gs-3 { animation-delay: 12s; }
.hero-glam .panel-b .gs-2 { animation-delay: 8s; }
.hero-glam .panel-b .gs-3 { animation-delay: 14s; }
.hero-glam .panel-c .gs-2 { animation-delay: 10s; }
.hero-glam .panel-c .gs-3 { animation-delay: 16s; }
.hero-glam .panel-m { display: none; }
.hero-glam .panel-m .gs:not(.gs-1) { animation-name: heroSlide; animation-duration: 24s; }
.hero-glam .panel-m .gs-2 { animation-delay: 6s; }
.hero-glam .panel-m .gs-3 { animation-delay: 12s; }
.hero-glam .panel-m .gs-4 { animation-delay: 18s; }
@keyframes glamFade {
	0% { opacity: 0; }
	5.5% { opacity: 1; }
	33.3% { opacity: 1; }
	38.9% { opacity: 0; }
	100% { opacity: 0; }
}
@keyframes glamZoom { from { transform: scale(1); } to { transform: scale(1.04); } }
.hero-glam::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;
	background:
		linear-gradient(to top, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, .35) 32%, rgba(0, 0, 0, 0) 58%),
		linear-gradient(to right, rgba(0, 0, 0, .35) 0%, rgba(0, 0, 0, 0) 45%);
}
.hero-glam .glam-caption {
	position: absolute;
	z-index: 4;
	left: var(--edge);
	bottom: clamp(40px, 7vh, 72px);
	max-width: min(620px, calc(100% - 2 * var(--gutter)));
	margin: 0;
	color: var(--white);
	animation: fadeUp .9s .3s var(--ease) both;
}
.hero-glam .glam-caption > * { margin: 0; }
.glam-caption .glam-kicker { font-family: var(--en); font-size: 11px; font-weight: 600; letter-spacing: .32em; }
.glam-caption .glam-kicker::before { content: ""; display: inline-block; width: 28px; height: 4px; margin-right: 12px; vertical-align: middle; background: var(--accent); }
.glam-caption .glam-catch {
	margin-top: 14px;
	font-family: var(--serif);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(40px, 5.6vw, 84px);
	line-height: 1.02;
	letter-spacing: .005em;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .35);
}
.glam-caption .glam-lead { margin-top: 16px; font-size: clamp(15px, 1.5vw, 18px); font-weight: 500; letter-spacing: .1em; line-height: 1.8; }
.glam-caption .glam-actions { margin-top: 26px; gap: 12px; }
.glam-caption .glam-actions .btn-outline .wp-block-button__link { color: var(--white); border-color: var(--white); }
.glam-caption .glam-actions .btn-outline .wp-block-button__link:hover,
.glam-caption .glam-actions .btn-outline .wp-block-button__link:focus-visible { background: var(--white); color: var(--black); }
.glam-caption .glam-actions .wp-block-button:not(.btn-outline) .wp-block-button__link:hover { background: var(--white); color: var(--black); }
.glam-caption .glam-note { margin-top: 14px; font-size: 10px; letter-spacing: .1em; opacity: .75; }
@media (max-width: 959px) {
	.hero-glam .glam-panels { display: block; height: 78vh; height: 78svh; min-height: 460px; }
	.hero-glam .panel-a, .hero-glam .panel-b, .hero-glam .panel-c { display: none; }
	.hero-glam .panel-m { display: block; height: 100%; }
	.hero-glam .glam-caption { left: var(--gutter); bottom: 36px; }
}
@media (prefers-reduced-motion: reduce) {
	.hero-glam .gs:not(.gs-1) { display: none; }
}
.editor-styles-wrapper .hero-glam .gs:not(.gs-1) { display: none; }
.editor-styles-wrapper .hero-glam .glam-caption { opacity: 1; transform: none; animation: none; }

/* ========== LOOKBOOK marquee ========== */
.lookbook-strip { background: var(--black); padding: 18px 0 20px; }
.lookbook-marquee { --dur: 110s; }
.lookbook-marquee .marquee-track > .lb-group { gap: 10px; padding-right: 10px; }
.lb-tile { position: relative; flex-shrink: 0; margin: 0; height: 220px; aspect-ratio: 3 / 4; overflow: hidden; background: #1a1a1a; }
.lb-tile > * { margin: 0; }
.lb-tile .lb-img, .lb-tile .lb-img a { display: block; width: 100%; height: 100%; margin: 0; }
.lb-tile .lb-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; transition: transform .6s var(--ease), filter .4s; filter: saturate(.92); }
.lb-tile:hover .lb-img img, .lb-tile:focus-within .lb-img img { transform: scale(1.05); filter: saturate(1.05); }
.lb-tile .lb-label {
	position: absolute;
	left: 8px; bottom: 8px;
	padding: 2px 8px;
	background: var(--accent);
	color: var(--on-accent);
	font-family: var(--en);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .16em;
	pointer-events: none;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity .25s, transform .25s;
}
.lb-tile:hover .lb-label, .lb-tile:focus-within .lb-label { opacity: 1; transform: none; }
@media (max-width: 600px) { .lb-tile { height: 160px; } }

/* ========== CONCEPT editorial ========== */
.concept-home .wp-block-columns.concept-editorial { gap: clamp(32px, 6vw, 88px); }
.concept-editorial .concept-photo { position: relative; margin: 0 16px 16px 0; isolation: isolate; }
.concept-editorial .concept-photo::before {
	content: "";
	position: absolute;
	inset: 16px -16px -16px 16px;
	z-index: -1;
	background: var(--accent);
}
.concept-editorial .concept-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; object-position: center 25%; }
.concept-editorial .concept-photo figcaption,
.purpose-card .purpose-photo figcaption {
	position: absolute;
	right: 8px; bottom: 6px;
	margin: 0;
	padding: 0 6px;
	background: rgba(17, 17, 17, .6);
	color: var(--white);
	font-size: 10px;
	line-height: 1.6;
}
.concept-editorial .sec-title { margin-bottom: 28px; }
@media (max-width: 781px) { .concept-editorial .concept-photo img { max-height: 70vh; } }

/* ========== PURPOSE photo header ========== */
.purpose-grid .purpose-card > .purpose-photo { position: relative; margin: -28px -22px 20px; }
.purpose-card .purpose-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; object-position: center 22%; }

/* ========== PAGE HERO portrait ========== */
.page-hero.has-photo { position: relative; }
.page-hero.has-photo .page-hero__photo {
	position: absolute;
	top: 0; right: 0; bottom: 0;
	width: 40%;
	max-width: none !important;
	margin: 0 !important;
	z-index: 0;
	-webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, .65) 38%, #000 70%);
	mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, .65) 38%, #000 70%);
}
.page-hero.has-photo .page-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; opacity: .9; }
.page-hero.has-photo .page-hero__inner { position: relative; z-index: 1; }
@media (max-width: 959px) { .page-hero.has-photo .page-hero__photo { display: none; } }

/* ========== STYLE page lookbook ========== */
.style-page .lookbook-block { margin-bottom: 64px !important; }
.lookbook-block > * { margin: 0; }
.lookbook-block .lookbook-head { gap: 8px 24px; align-items: baseline; margin-bottom: 16px; }
.lookbook-head .lookbook-title { margin: 0; font-family: var(--en); font-weight: 200; font-size: clamp(28px, 3.4vw, 40px); letter-spacing: .16em; }
.lookbook-head .lookbook-title span { font-family: var(--ja); font-size: 13px; font-weight: 500; letter-spacing: .08em; }
.lookbook-head .lookbook-note { margin: 0; font-size: 12px; color: var(--mid); }
.lookbook-block .lookbook-row { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 12px; scrollbar-width: thin; }
.lookbook-block .lookbook-row > * { margin: 0; scroll-snap-align: start; }
.lookbook-block .lb-tile { height: 260px; }
.lookbook-block .lb-tile .lb-label { opacity: 1; transform: none; }
@media (max-width: 600px) { .lookbook-block .lb-tile { height: 200px; } }
.style-page .gallery-title { margin: 0 auto 12px !important; font-family: var(--en); font-weight: 200; font-size: clamp(28px, 3.4vw, 40px); letter-spacing: .16em; }
.style-page .gallery-title span { display: block; margin-top: 6px; font-family: var(--ja); font-size: 13px; font-weight: 500; letter-spacing: .08em; }
/* full-bleed children (core adds root padding to children of non-padded alignfull groups) */
.wp-site-blocks .hero-glam > *, .wp-site-blocks .lookbook-strip > * { padding-left: 0 !important; padding-right: 0 !important; max-width: none; }

/* ========== RECRUIT (full page) ========== */
[id="about"], [id="numbers"], [id="career"], [id="curriculum"], [id="day"], [id="interview"], [id="welfare"], [id="salons"], [id="jobinfo"], [id="flow"], [id="faq"], [id="entry"], [id="purpose"] { scroll-margin-top: 80px; }
.page-nav { background: var(--white); border-bottom: 1px solid var(--line); }
.wp-site-blocks .alignfull.page-nav { padding-left: var(--gutter) !important; padding-right: var(--gutter) !important; }
.page-nav .page-nav__links {
	max-width: 1232px;
	margin: 0 auto;
	display: flex;
	gap: 6px 28px;
	overflow-x: auto;
	white-space: nowrap;
	padding: 14px 0;
	scrollbar-width: none;
}
.page-nav .page-nav__links::-webkit-scrollbar { display: none; }
.page-nav__links a { font-family: var(--en); font-size: 11px; font-weight: 600; letter-spacing: .2em; color: var(--black); text-decoration: none; padding: 4px 0; border-bottom: 3px solid transparent; }
.page-nav__links a:hover, .page-nav__links a:focus-visible { border-bottom-color: var(--accent); }

.recruit-about .about-photo { position: relative; margin: 0 16px 16px 0; isolation: isolate; }
.recruit-about .about-photo::before { content: ""; position: absolute; inset: 16px -16px -16px 16px; z-index: -1; background: var(--accent); }
.recruit-about .about-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; object-position: center 25%; }
.recruit-about .about-photo figcaption, .recruit-entry .entry-photo figcaption { position: absolute; right: 8px; bottom: 6px; margin: 0; padding: 0 6px; background: rgba(17, 17, 17, .6); color: var(--white); font-size: 10px; line-height: 1.6; }
.recruit-about .about-lead { margin: 24px 0 8px; font-size: clamp(22px, 2.6vw, 30px); }
.recruit-about .academy-lead { margin-top: 14px; }
.recruit-about .about-close { font-weight: 700; }
.recruit-about .about-chips { margin-top: 20px; }

.recruit-numbers .num-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.recruit-numbers .num-grid > * { margin: 0; }
.num-grid .num-tile { padding: 26px 24px 22px; background: var(--accent); color: var(--on-accent); }
.num-grid .num-tile > * { margin: 0; }
.num-tile .num-value { font-family: var(--en); font-weight: 200; font-size: clamp(40px, 5vw, 64px); line-height: 1.05; letter-spacing: .01em; }
.num-tile .num-value small { font-family: var(--ja); font-size: 15px; font-weight: 700; margin-left: 4px; }
.num-tile .num-label { margin-top: 10px; font-size: 13px; font-weight: 700; letter-spacing: .06em; }
@media (max-width: 781px) { .recruit-numbers .num-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .num-grid .num-tile { padding: 18px 14px 16px; } .num-tile .num-label { font-size: 12px; } }

.recruit-career .career-tracks { display: grid; gap: 32px; }
.recruit-career .career-tracks > * { margin: 0; }
.career-track .block-title { margin-bottom: 16px; }
.career-track .career-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; counter-reset: none; }
.career-track .career-steps li {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px 16px;
	background: var(--white);
	border-top: 4px solid var(--accent);
}
.career-track .career-steps li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%; right: -9px;
	width: 8px; height: 8px;
	border-top: 2px solid var(--black);
	border-right: 2px solid var(--black);
	transform: translateY(-50%) rotate(45deg);
	z-index: 1;
}
.career-steps .lv { font-family: var(--en); font-size: 10px; font-weight: 700; letter-spacing: .2em; color: var(--mid); }
.career-steps strong { font-size: 15px; letter-spacing: .04em; line-height: 1.5; }
.career-steps .pay { font-family: var(--en); font-size: 20px; font-weight: 400; }
.career-steps li:last-child { background: var(--black); color: var(--white); }
.career-steps li:last-child .lv { color: var(--accent); }
@media (max-width: 781px) {
	.career-track .career-steps { grid-template-columns: 1fr; }
	.career-track .career-steps li:not(:last-child)::after { top: auto; bottom: -10px; right: 50%; transform: translateX(50%) rotate(135deg); }
}
.recruit-career .career-note { margin-top: 16px; color: var(--mid); }
.recruit-career .branch-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 32px; }
.recruit-career .branch-grid > * { margin: 0; }
.branch-grid .branch-card { padding: 24px 22px; background: var(--white); border-left: 4px solid var(--black); }
.branch-grid .branch-card > * { margin: 0; }
.branch-card .branch-no { font-family: var(--en); font-size: 10px; font-weight: 700; letter-spacing: .2em; color: var(--mid); }
.branch-card .branch-title { margin-top: 8px; font-size: 17px; font-weight: 700; }
.branch-card .branch-text { margin-top: 8px; font-size: 14px; line-height: 1.8; color: #333333; }
@media (max-width: 781px) { .recruit-career .branch-grid { grid-template-columns: 1fr; } }

.recruit-curriculum .curriculum-system { margin-top: 40px; }
.recruit-curriculum .works-block { margin-top: 48px !important; }
.works-block > * { margin: 0; }
.works-block .works-head { gap: 8px 24px; align-items: baseline; margin-bottom: 14px; }
.works-head .works-title { margin: 0; font-family: var(--en); font-weight: 200; font-size: clamp(24px, 2.6vw, 32px); letter-spacing: .16em; }
.works-head .works-title span { margin-left: 12px; font-family: var(--ja); font-size: 13px; font-weight: 500; letter-spacing: .08em; }
.works-block .works-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.works-block .works-row > * { margin: 0; }
.works-row .works-img img { display: block; width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; filter: grayscale(1); transition: filter .5s; }
.works-row .works-img:hover img, .works-row .works-img a:focus-visible img { filter: none; }
@media (max-width: 781px) { .works-block .works-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.recruit-welfare .welfare-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.recruit-welfare .welfare-grid > * { margin: 0; }
.welfare-grid .welfare-item { padding: 20px 18px; border: 1px solid rgba(255, 255, 255, .22); font-size: 14px; font-weight: 500; letter-spacing: .04em; line-height: 1.6; }
.welfare-grid .welfare-item::before { content: ""; display: block; width: 20px; height: 4px; margin-bottom: 12px; background: var(--accent); }
@media (max-width: 1000px) { .recruit-welfare .welfare-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .recruit-welfare .welfare-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .welfare-grid .welfare-item { font-size: 13px; padding: 16px 12px; } }

.recruit-jobinfo .job-list { display: grid; gap: 10px; }
.recruit-jobinfo .job-list > * { margin: 0; }
.job-list .job-item { background: var(--white); border: 1px solid var(--line); }
.job-list .job-item summary {
	position: relative;
	cursor: pointer;
	list-style: none;
	padding: 20px 56px 20px 24px;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .06em;
}
.job-list .job-item summary::-webkit-details-marker { display: none; }
.job-list .job-item summary::after {
	content: "";
	position: absolute;
	right: 22px; top: 50%;
	width: 14px; height: 14px;
	background: linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat, linear-gradient(currentColor, currentColor) center / 2px 14px no-repeat;
	transform: translateY(-50%);
	transition: transform .3s var(--ease);
}
.job-list .job-item[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.job-list .job-item[open] summary { border-bottom: 4px solid var(--accent); }
.job-list .job-item .job-table { margin: 0; padding: 4px 24px 20px; }
.job-list .job-item .job-table tr:first-child td { border-top: 0; }

.recruit-faq .faq-list { margin-top: 0; }

.recruit-entry { position: relative; }
.recruit-entry .entry-cols { gap: clamp(28px, 5vw, 72px); }
.recruit-entry .entry-photo { position: relative; margin: 0; }
.recruit-entry .entry-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; object-position: center 25%; }
.recruit-entry .entry-en { margin: 0; font-family: var(--en); font-size: 12px; font-weight: 700; letter-spacing: .32em; }
.recruit-entry .entry-title { margin: 10px 0 0; font-size: clamp(26px, 3.4vw, 40px); font-weight: 700; letter-spacing: .08em; line-height: 1.5; }
.recruit-entry .entry-text { margin: 14px 0 0; font-size: 15px; line-height: 1.9; }
.recruit-entry .entry-routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 28px !important; }
.recruit-entry .entry-routes > * { margin: 0; }
.entry-routes .entry-route { display: flex; flex-direction: column; padding: 22px 20px; background: var(--white); }
.entry-routes .entry-route > * { margin: 0; }
.entry-route .entry-route__no { font-family: var(--en); font-size: 10px; font-weight: 700; letter-spacing: .2em; color: var(--mid); }
.entry-route .entry-route__title { margin-top: 8px; font-size: 17px; font-weight: 700; line-height: 1.5; }
.entry-route .wp-block-buttons, .entry-route .entry-tel, .entry-route .entry-route__text { margin-top: auto; padding-top: 14px; }
.entry-route .entry-tel a { font-family: var(--en); font-size: 22px; font-weight: 400; letter-spacing: .04em; color: var(--black); }
.entry-route .entry-route__text { font-size: 13px; line-height: 1.8; }
@media (max-width: 900px) { .recruit-entry .entry-routes { grid-template-columns: 1fr; } }

/* interview (renders only when data exists) */
.recruit-interview .iv-inner { max-width: 1232px; margin: 0 auto; }
.recruit-interview .iv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 20px; margin-top: 32px; }
.iv-card { background: var(--grey); }
.iv-card .iv-photo { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.iv-card .iv-body { padding: 22px; }
.iv-card .iv-meta { margin: 0; font-size: 12px; color: var(--mid); }
.iv-card .iv-name { margin: 6px 0 12px; font-size: 18px; }
.iv-card dt { font-weight: 700; margin-top: 12px; }
.iv-card dd { margin: 4px 0 0; font-size: 14px; line-height: 1.9; }

/* sticky recruit bar (mobile) + recruiting pages: no booking badge */
.recruit-bar { display: none; }
.is-recruiting .badge--float { display: none !important; }
@media (max-width: 760px) {
	.recruit-bar {
		display: grid;
		grid-template-columns: 1fr 1fr;
		position: fixed;
		left: 0; right: 0; bottom: 0;
		z-index: 65;
		padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
		gap: 8px;
		background: rgba(17, 17, 17, .96);
	}
	.recruit-bar a { display: flex; align-items: center; justify-content: center; min-height: 46px; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-decoration: none; }
	.recruit-bar .recruit-bar__line { background: var(--accent); color: var(--on-accent); }
	.recruit-bar .recruit-bar__visit { background: var(--white); color: var(--black); }
	.has-recruit-bar .ac-launcher { bottom: calc(74px + env(safe-area-inset-bottom)); }
	.has-recruit-bar .site-footer { padding-bottom: 100px; }
}
@media (max-width: 781px) { .num-tile .num-value { font-size: 34px; } .num-tile .num-value small { font-size: 11px; margin-left: 2px; } }

/* recruit emphasis: 自分のペース / 完全週休2日 */
.num-tile .num-note { display: block; margin-top: 4px; font-size: 12px; font-weight: 500; letter-spacing: .04em; opacity: .85; }
.num-grid .num-tile--feature { grid-column: span 2; background: var(--black); color: var(--white); outline: 3px solid var(--accent); outline-offset: -3px; }
.num-tile--feature .num-value { font-family: var(--ja); font-weight: 700; font-size: clamp(30px, 4.2vw, 54px); letter-spacing: .04em; }
.num-tile--feature .num-value strong { font-family: var(--en); font-weight: 200; color: var(--accent); font-size: 1.35em; margin: 0 .06em; }
.num-tile--feature .num-value small { color: var(--white); }
.num-tile--feature .num-label { color: var(--accent); font-size: 14px; }
.welfare-grid .welfare-item--feature { background: var(--accent); color: var(--on-accent); border-color: var(--accent); font-weight: 700; }
.welfare-grid .welfare-item--feature::before { background: var(--on-accent); }
@media (max-width: 781px) { .num-tile--feature .num-value { font-size: 28px; } }

.recruit-numbers .num-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.num-grid .num-tile--feature { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; padding: 30px 32px; }
@media (max-width: 781px) { .recruit-numbers .num-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .num-grid .num-tile--feature { padding: 22px 18px; } }

/* ========== STYLE page: LOOKBOOK as filterable grid (v1.1.1) ========== */
.style-page .lookbook-block[hidden] { display: none !important; }
.style-page .style-chips + .style-status { margin-top: -20px; }
.lookbook-block .lookbook-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	overflow: visible;
	padding-bottom: 0;
}
.lookbook-block .lookbook-grid .lb-tile { height: auto; aspect-ratio: 3 / 4; width: 100%; }
.lookbook-block .lookbook-grid .lb-tile[hidden] { display: none; }
.lookbook-block .lookbook-grid .lb-tile::before {
	content: "IMAGE";
	position: absolute; top: 8px; left: 8px; z-index: 2;
	padding: 2px 7px; font-family: var(--en); font-size: 9px; letter-spacing: .18em;
	background: rgba(255,255,255,.86); color: var(--black);
}
@media (max-width: 1000px) { .lookbook-block .lookbook-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 781px) { .lookbook-block .lookbook-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .lookbook-block .lookbook-grid .lb-tile { height: auto; } }
.lookbook-block .lookbook-more {
	display: block; margin: 20px auto 0; padding: 14px 28px; cursor: pointer;
	font: inherit; font-size: 13px; letter-spacing: .08em;
	background: var(--white); color: var(--black); border: 1px solid var(--black);
}
.lookbook-block .lookbook-more:hover, .lookbook-block .lookbook-more:focus-visible { background: var(--accent); }
.lookbook-block .lookbook-more[hidden] { display: none; }
.lookbook-grid .lb-tile .lb-label { font-family: var(--ja); letter-spacing: .04em; }
