/*
Theme Name: Arisa Sato Official
Description: 元バレーボール選手・佐藤あり紗さんの公式ホームページ用テーマ（試作版）。講演・バレー教室・イベント出演・取材の依頼窓口、予定カレンダー、実績、スポンサー、お問い合わせフォームを備えています。
Version: 0.1.0
Requires at least: 6.4
Tested up to: 7.1
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: arisa-sato
*/

/* ==========================================================================
   色・サイズの設定（ここを変えるとサイト全体の色が変わります）
   デザイン：やさしいパステル（ピンク×水色）
   ========================================================================== */
:root {
	/* メインの色（やさしいピンク） */
	--brand-50: #fff3f7;
	--brand-100: #ffe3ec;
	--brand-200: #fcc9da;
	--brand-300: #f7a9c3;
	--brand-400: #f08aad;
	--brand-500: #e86f99;
	--brand-600: #d9578a;
	--brand-700: #bd4073;
	/* サブの色（水色）：「※要確認」バッジ、試作版の注意書きなど */
	--accent-50: #eef8fd;
	--accent-100: #d8eefa;
	--accent-500: #6cc0ea;
	--accent-600: #2b8cc0;
	--clinic: #10b981;
	--media: #8b5cf6;
	--sun: #e11d48;
	/* 文字・線・背景 */
	--text: #5b4b57;
	--text-strong: #4a3843;
	--text-sub: #7a6873;
	--text-mute: #9b8a95;
	--line: #f5dbe5;
	--line-soft: #fbedf2;
	--bg-soft: #fff8fa;
	--white: #fff;
	--page-bg: #fffdfd;
	--hero-bg: linear-gradient(160deg, #ffe8f0 0%, #fff7fa 50%, #e9f6fd 100%);
	--band-bg: #fff0f5;
	--band-bg-2: #edf7fd;
	--cta-bg: linear-gradient(135deg, #f392b5, #8fd0f0);
	--footer-bg: #fff4f8;
	/* ボタン */
	--btn-bg: #ec7aa2;
	--btn-shadow: #d55a87;
	/* 飾り */
	--soft-shadow: rgba(232, 111, 153, 0.12);
	--dot-color: #f7b6cc;
	--ball-color: #7cc6ec;
	--blob-color: #d9effb;
	/* 形 */
	--radius: 28px;
	--radius-sm: 18px;
	--shadow: 0 10px 30px var(--soft-shadow);
	--shadow-md: 0 16px 36px var(--soft-shadow);
	--container: 1120px;
	/* 文字の種類（日本語は丸ゴシック、英字は筆記体） */
	--font: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
	--font-en: "Pacifico", "Zen Maru Gothic", cursive;
}

/* ==========================================================================
   基本
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--white);
	color: var(--text);
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	overflow-wrap: anywhere;
}

body.is-menu-open {
	overflow: hidden;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--brand-600);
}

h1,
h2,
h3,
h4,
p,
ul,
ol,
dl,
dd,
figure,
blockquote {
	margin: 0;
}

ul,
ol {
	padding: 0;
	list-style: none;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

:focus-visible {
	outline: 2px solid var(--brand-600);
	outline-offset: 2px;
}

.as-skip {
	position: absolute;
	left: -9999px;
	top: 8px;
	z-index: 100;
	padding: 8px 16px;
	background: var(--white);
	border-radius: 8px;
}

.as-skip:focus {
	left: 8px;
}

.as-container {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 20px;
}

.as-container--narrow {
	max-width: 960px;
}

.as-container--form {
	max-width: 760px;
}

.as-main {
	display: block;
	min-height: 50vh;
}

.as-pt {
	padding-top: 40px;
}

.as-mt {
	margin-top: 48px;
}

.as-mt-sm {
	margin-top: 24px;
}

.as-small {
	font-size: 13px;
	color: var(--text-mute);
}

.as-accent {
	color: var(--accent-600);
}

.as-lead {
	margin-top: 24px;
	font-size: 15px;
	color: var(--text-sub);
}

.as-empty {
	margin-top: 24px;
	padding: 24px;
	border: 1px dashed var(--line);
	border-radius: var(--radius-sm);
	color: var(--text-mute);
	text-align: center;
	font-size: 14px;
}

.as-icon {
	width: 20px;
	height: 20px;
	display: block;
}

.as-icon--sm {
	width: 16px;
	height: 16px;
}

/* 「※要確認」バッジ */
.as-check {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 8px;
	border-radius: 999px;
	background: var(--accent-100);
	color: var(--accent-600);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.6;
	vertical-align: middle;
	white-space: nowrap;
	letter-spacing: 0;
}

/* 試作版の注意書き */
.as-draft {
	margin-bottom: 32px;
	padding: 12px 16px;
	border: 1px solid var(--accent-100);
	border-radius: var(--radius-sm);
	background: var(--accent-50);
	color: var(--accent-600);
	font-size: 13px;
	line-height: 1.7;
}

/* 仮の画像枠 */
.as-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	width: 100%;
	padding: 24px;
	border: 2px dashed var(--brand-200);
	border-radius: var(--radius);
	background: var(--brand-50);
	text-align: center;
}

.as-placeholder__label {
	color: var(--brand-700);
	font-size: 14px;
	font-weight: 700;
}

.as-placeholder__note {
	color: var(--brand-600);
	font-size: 11px;
	line-height: 1.6;
}

.as-placeholder__draft {
	margin-top: 4px;
	color: var(--brand-500);
	font-size: 10px;
}

.as-photo {
	display: block;
	width: 100%;
	border-radius: var(--radius);
	object-fit: cover;
}

.as-ratio-4-3 {
	aspect-ratio: 4 / 3;
}

.as-ratio-4-5 {
	aspect-ratio: 4 / 5;
}

.as-ratio-3-2 {
	aspect-ratio: 3 / 2;
}

/* ==========================================================================
   ボタン・リンク
   ========================================================================== */
.as-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 24px;
	border: 0;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s, box-shadow 0.15s;
}

.as-btn--primary {
	background: var(--brand-600);
	color: var(--white);
	box-shadow: 0 6px 16px rgba(37, 121, 233, 0.2);
}

.as-btn--primary:hover {
	background: var(--brand-700);
}

.as-btn--secondary,
.as-btn--white {
	background: var(--white);
	color: var(--brand-700);
	box-shadow: inset 0 0 0 1px var(--brand-200);
}

.as-btn--secondary:hover {
	background: var(--brand-50);
}

.as-btn--white {
	box-shadow: none;
}

.as-btn--white:hover {
	background: var(--brand-50);
}

.as-btn--outline-white {
	background: transparent;
	color: var(--white);
	box-shadow: inset 0 0 0 1px var(--brand-300);
}

.as-btn--outline-white:hover {
	background: var(--brand-700);
}

.as-btn--ghost {
	background: transparent;
	color: var(--brand-700);
}

.as-btn--ghost:hover {
	background: var(--brand-50);
}

.as-btn--block {
	display: flex;
	width: 100%;
}

.as-btn-row {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 32px;
}

.as-btn-row--center {
	align-items: center;
}

.as-btn-row--center .as-btn {
	width: 100%;
	max-width: 320px;
}

.as-link {
	display: inline-block;
	color: var(--brand-600);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.as-link:hover {
	text-decoration: underline;
}

.as-more {
	margin-top: 32px;
}

.as-more a {
	color: var(--brand-700);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.as-more a:hover {
	text-decoration: underline;
}

.as-pill-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 20px;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--white);
	box-shadow: inset 0 0 0 1px var(--line);
	color: var(--text-sub);
	font-size: 14px;
	text-decoration: none;
}

.as-pill-link:hover {
	color: var(--brand-600);
}

.as-tag {
	display: inline-block;
	padding: 1px 10px;
	border-radius: 999px;
	background: var(--brand-50);
	color: var(--brand-700);
	font-size: 11px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

/* ==========================================================================
   見出し
   ========================================================================== */
.as-eyebrow {
	color: var(--brand-500);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.as-heading {
	margin-bottom: 32px;
}

.as-heading__title {
	margin-top: 8px;
	color: var(--text-strong);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
}

.as-heading__title::after {
	content: "";
	display: block;
	width: 48px;
	height: 4px;
	margin-top: 16px;
	border-radius: 999px;
	background: var(--brand-500);
}

.as-heading.is-center {
	text-align: center;
}

.as-heading.is-center .as-heading__title::after {
	margin-left: auto;
	margin-right: auto;
}

.as-heading-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
}

.as-heading-row .as-link {
	margin-bottom: 32px;
	flex-shrink: 0;
}

.as-page-header {
	border-bottom: 1px solid var(--brand-100);
	background: linear-gradient(180deg, var(--brand-50), var(--white));
}

.as-page-header .as-container {
	max-width: 960px;
	padding-top: 40px;
	padding-bottom: 40px;
}

.as-page-header__title {
	margin-top: 8px;
	color: var(--text-strong);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.4;
}

.as-page-header__lead {
	max-width: 640px;
	margin-top: 16px;
	color: var(--text-sub);
	font-size: 15px;
}

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.as-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--line-soft);
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(8px);
}

.admin-bar .as-header {
	top: 46px;
}

.as-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 10px 20px;
}

.as-logo {
	display: flex;
	align-items: baseline;
	gap: 8px;
	color: var(--text-strong);
	text-decoration: none;
}

.as-logo__name {
	font-size: 18px;
	font-weight: 700;
	white-space: nowrap;
}

.as-logo__en {
	display: none;
	color: var(--brand-500);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.as-header__actions {
	display: flex;
	align-items: center;
	gap: 4px;
}

.as-nav-pc {
	display: none;
}

.as-icon-link {
	display: inline-flex;
	padding: 8px;
	border-radius: 999px;
	color: var(--text-mute);
}

.as-icon-link:hover {
	background: var(--bg-soft);
	color: var(--brand-600);
}

.as-header__cta {
	display: none;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--brand-600);
	color: var(--white);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.as-header__cta:hover {
	background: var(--brand-700);
}

.as-menu-toggle {
	position: relative;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: transparent;
	cursor: pointer;
}

.as-menu-toggle__bar {
	position: absolute;
	left: 10px;
	width: 20px;
	height: 2px;
	border-radius: 2px;
	background: var(--text);
	transition: transform 0.2s, opacity 0.2s, top 0.2s;
}

.as-menu-toggle__bar:nth-child(1) {
	top: 13px;
}

.as-menu-toggle__bar:nth-child(2) {
	top: 19px;
}

.as-menu-toggle__bar:nth-child(3) {
	top: 25px;
}

.as-menu-toggle[aria-expanded="true"] .as-menu-toggle__bar:nth-child(1) {
	top: 19px;
	transform: rotate(45deg);
}

.as-menu-toggle[aria-expanded="true"] .as-menu-toggle__bar:nth-child(2) {
	opacity: 0;
}

.as-menu-toggle[aria-expanded="true"] .as-menu-toggle__bar:nth-child(3) {
	top: 19px;
	transform: rotate(-45deg);
}

.as-nav-sp {
	max-height: calc(100vh - 61px);
	overflow-y: auto;
	border-top: 1px solid var(--line-soft);
	background: var(--white);
	padding: 8px 20px 20px;
}

.as-nav-sp[hidden] {
	display: none;
}

.as-nav-sp__list a {
	display: block;
	padding: 12px 0;
	border-bottom: 1px solid var(--line-soft);
	color: var(--text);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
}

.as-nav-sp__list .current-menu-item > a,
.as-nav-sp__list .current_page_parent > a {
	color: var(--brand-700);
}

.as-nav-sp__cta {
	margin-top: 20px;
}

/* ==========================================================================
   フッター
   ========================================================================== */
.as-footer {
	margin-top: 80px;
	border-top: 1px solid var(--line-soft);
	background: var(--bg-soft);
	padding: 48px 0 32px;
}

.as-cta + .as-footer,
.as-main:has(> .as-cta:last-child) + .as-footer {
	margin-top: 0;
}

.as-footer__top {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.as-footer__name {
	color: var(--text-strong);
	font-size: 18px;
	font-weight: 700;
}

.as-footer__desc {
	max-width: 360px;
	margin-top: 16px;
	color: var(--text-sub);
	font-size: 14px;
}

.as-footer__nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 32px;
}

.as-footer__list {
	display: contents;
}

.as-footer__list a {
	color: var(--text-sub);
	font-size: 14px;
	text-decoration: none;
}

.as-footer__list a:hover {
	color: var(--brand-600);
}

.as-footer__bottom {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid var(--line);
}

.as-footer__draft {
	color: var(--text-mute);
	font-size: 12px;
}

.as-footer__copy {
	margin-top: 8px;
	color: #94a3b8;
	font-size: 12px;
}

/* ==========================================================================
   共通パーツ
   ========================================================================== */
.as-section {
	padding-top: 56px;
	padding-bottom: 56px;
}

.as-section-sm {
	margin-top: 56px;
}

.as-band {
	background: rgba(239, 248, 255, 0.6);
}

.as-band--gray {
	background: rgba(248, 250, 252, 0.9);
}

.as-grid {
	display: grid;
	gap: 16px;
}

.as-card {
	display: block;
	padding: 24px;
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	box-shadow: var(--shadow);
	color: inherit;
	text-decoration: none;
}

.as-card--tint {
	background: rgba(239, 248, 255, 0.7);
}

.as-card--link {
	transition: border-color 0.15s, box-shadow 0.15s;
}

.as-card--link:hover {
	border-color: var(--brand-200);
	box-shadow: var(--shadow-md);
}

.as-card__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}

.as-card__title {
	display: block;
	color: var(--text-strong);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.as-card__arrow {
	color: var(--brand-500);
	transition: transform 0.15s;
}

.as-card--link:hover .as-card__arrow {
	transform: translateX(4px);
}

.as-card__text {
	display: block;
	margin-top: 12px;
	color: var(--text-sub);
	font-size: 14px;
}

.as-card__dl {
	display: block;
	margin-top: 16px;
	color: var(--text-mute);
	font-size: 12px;
}

.as-card__dl > span {
	display: flex;
	gap: 8px;
}

.as-card__dl b {
	flex-shrink: 0;
	font-weight: 700;
}

.as-split {
	display: grid;
	gap: 32px;
}

.as-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 40px;
}

.as-chip {
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--white);
	box-shadow: inset 0 0 0 1px var(--brand-200);
	color: var(--brand-700);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.as-chip:hover {
	background: var(--brand-50);
}

.as-dots li {
	position: relative;
	padding-left: 14px;
}

.as-dots li + li {
	margin-top: 6px;
}

.as-dots li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.7em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--brand-300);
}

.as-page {
	padding-top: 40px;
	padding-bottom: 16px;
}

/* ==========================================================================
   本文（ブロックエディターで書いた内容）
   ========================================================================== */
.as-prose > * + * {
	margin-top: 16px;
}

.as-prose p {
	color: var(--text);
	font-size: 15px;
	line-height: 1.9;
}

.as-prose a {
	text-decoration: underline;
}

.as-prose--page h2 {
	margin-top: 56px;
	color: var(--text-strong);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.4;
}

.as-prose--page h2::after {
	content: "";
	display: block;
	width: 48px;
	height: 4px;
	margin: 14px 0 24px;
	border-radius: 999px;
	background: var(--brand-500);
}

.as-prose--page h3 {
	margin-top: 32px;
	color: var(--text-strong);
	font-size: 18px;
	font-weight: 700;
}

.as-prose ul:not([class*="as-"]),
.as-prose ol:not([class*="as-"]) {
	padding-left: 1.4em;
}

.as-prose ul:not([class*="as-"]) {
	list-style: disc;
}

.as-prose ol:not([class*="as-"]) {
	list-style: decimal;
}

.as-prose li {
	font-size: 15px;
}

.as-prose li + li {
	margin-top: 6px;
}

.as-prose figure,
.as-prose img {
	border-radius: var(--radius-sm);
}

.as-prose--notes ul {
	padding-left: 1.2em;
	list-style: disc;
}

.as-prose--notes li {
	font-size: 14px;
	color: var(--text-sub);
}

/* プロフィール：基本情報 */
.as-prose .as-basics {
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	overflow: hidden;
}

.as-prose .as-basics li {
	display: flex;
	gap: 16px;
	margin: 0;
	padding: 14px 20px;
	border-top: 1px solid var(--line-soft);
	font-size: 14px;
}

.as-prose .as-basics li:first-child {
	border-top: 0;
}

.as-prose .as-basics strong {
	flex-shrink: 0;
	width: 6.5em;
	color: var(--text-mute);
	font-weight: 700;
}

/* プロフィール：経歴（年表） */
.as-prose .as-timeline {
	margin-left: 6px;
	padding-left: 20px;
	border-left: 2px solid var(--brand-100);
}

.as-prose .as-timeline li {
	position: relative;
	margin: 0;
	padding-bottom: 24px;
	font-size: 15px;
}

.as-prose .as-timeline li::before {
	content: "";
	position: absolute;
	left: -28px;
	top: 6px;
	width: 14px;
	height: 14px;
	border: 2px solid var(--white);
	border-radius: 50%;
	background: var(--brand-500);
}

.as-prose .as-timeline strong {
	display: block;
	color: var(--brand-600);
	font-size: 12px;
	letter-spacing: 0.05em;
}

/* 依頼メニュー：ご依頼の流れ */
.as-prose .as-flow {
	display: grid;
	gap: 16px;
	counter-reset: flow;
}

.as-prose .as-flow li {
	margin: 0;
	padding: 24px;
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	box-shadow: var(--shadow);
	color: var(--text-sub);
	font-size: 14px;
	counter-increment: flow;
}

.as-prose .as-flow li::before {
	content: counter(flow, decimal-leading-zero);
	display: block;
	color: var(--brand-200);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
}

.as-prose .as-flow strong {
	display: block;
	margin: 8px 0 6px;
	color: var(--text-strong);
	font-size: 16px;
}

/* スポンサー：募集プラン */
.as-prose .as-plans {
	gap: 16px;
	margin-top: 24px;
}

.as-prose .as-plans > .wp-block-column {
	padding: 24px;
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	box-shadow: var(--shadow);
}

.as-prose .as-plans h3 {
	margin-top: 0;
}

.as-prose .as-plans p strong {
	color: var(--brand-600);
}

.as-prose .as-plans ul {
	margin-top: 16px;
}

/* ==========================================================================
   トップページ
   ========================================================================== */
.as-hero {
	border-bottom: 1px solid var(--brand-100);
	background: linear-gradient(180deg, var(--brand-50), var(--white) 70%);
}

.as-hero__inner {
	display: grid;
	gap: 32px;
	padding-top: 48px;
	padding-bottom: 48px;
}

.as-hero__role {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--white);
	box-shadow: inset 0 0 0 1px var(--brand-200);
	color: var(--brand-700);
	font-size: 12px;
	font-weight: 700;
}

.as-hero__catch {
	margin-top: 20px;
	color: var(--text-strong);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.01em;
}

.as-hero__lead {
	margin-top: 20px;
	color: var(--text-sub);
	font-size: 15px;
}

.as-hero__note {
	margin-top: 16px;
	color: var(--text-mute);
	font-size: 12px;
}

.as-news-list {
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	overflow: hidden;
}

.as-news-item + .as-news-item {
	border-top: 1px solid var(--line-soft);
}

.as-news-item__link {
	display: block;
	padding: 20px;
	color: inherit;
	text-decoration: none;
}

.as-news-item__link:hover {
	background: var(--bg-soft);
}

.as-news-item__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	color: var(--text-mute);
	font-size: 12px;
	font-weight: 700;
}

.as-news-item__title {
	display: block;
	margin-top: 8px;
	color: var(--text-strong);
	font-size: 15px;
	font-weight: 700;
}

.as-news-item__excerpt {
	display: block;
	margin-top: 6px;
	color: var(--text-sub);
	font-size: 14px;
}

.as-news-list--cards {
	border: 0;
	background: transparent;
	display: grid;
	gap: 16px;
}

.as-news-list--cards .as-news-item {
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	box-shadow: var(--shadow);
	overflow: hidden;
}

.as-news-list--cards .as-news-item__link {
	padding: 24px;
}

.as-cta {
	margin-top: 0;
	background: var(--brand-600);
}

.as-cta__inner {
	max-width: 880px;
	padding-top: 56px;
	padding-bottom: 56px;
	text-align: center;
}

.as-cta__title {
	color: var(--white);
	font-size: 24px;
	font-weight: 700;
}

.as-cta__text {
	max-width: 560px;
	margin: 16px auto 0;
	color: var(--brand-50);
	font-size: 15px;
}

/* 予定カレンダー */
.as-calendar {
	margin-top: 32px;
}

.as-cal {
	display: grid;
	gap: 24px;
}

.as-cal__box {
	padding: 16px;
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	box-shadow: var(--shadow);
}

.as-cal__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.as-cal__move {
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--text-mute);
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}

.as-cal__move:hover {
	background: var(--bg-soft);
	color: var(--brand-600);
}

.as-cal__month {
	color: var(--text-strong);
	font-size: 17px;
	font-weight: 700;
}

.as-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 4px;
}

.as-cal__weekdays {
	margin-top: 12px;
}

.as-cal__wd {
	padding: 6px 0;
	color: var(--text-mute);
	font-size: 11px;
	font-weight: 700;
	text-align: center;
}

.as-cal__wd.is-sun,
.as-cal__day.is-sun {
	color: var(--sun);
}

.as-cal__wd.is-sat,
.as-cal__day.is-sat {
	color: var(--brand-600);
}

.as-cal__day {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	aspect-ratio: 1 / 1;
	padding: 6px 0 0;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: var(--text);
	cursor: default;
}

.as-cal__day.has-items {
	background: rgba(239, 248, 255, 0.8);
	cursor: pointer;
}

.as-cal__day.has-items:hover {
	background: var(--brand-100);
}

.as-cal__day.is-selected {
	background: var(--brand-600);
	color: var(--white);
}

.as-cal__day.is-selected:hover {
	background: var(--brand-600);
}

.as-cal__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	font-size: 13px;
	font-weight: 700;
}

.as-cal__day.is-today:not(.is-selected) .as-cal__num {
	box-shadow: 0 0 0 2px var(--brand-500);
}

.as-cal__dots {
	display: flex;
	gap: 2px;
	margin-top: 3px;
}

.as-cal__dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #94a3b8;
}

.as-cal__day.is-selected .as-cal__dot {
	background: var(--white);
}

.as-cal__dot.is-lecture {
	background: var(--brand-500);
}

.as-cal__dot.is-clinic {
	background: var(--clinic);
}

.as-cal__dot.is-event {
	background: var(--accent-500);
}

.as-cal__dot.is-media {
	background: var(--media);
}

.as-cal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--line-soft);
	color: var(--text-mute);
	font-size: 11px;
}

.as-cal__legend li {
	display: flex;
	align-items: center;
	gap: 6px;
}

.as-cal__today-mark {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	box-shadow: inset 0 0 0 2px var(--brand-500);
}

.as-cal__list-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.as-cal__list-head p {
	color: var(--text-strong);
	font-size: 14px;
	font-weight: 700;
}

.as-cal__reset {
	padding: 0;
	border: 0;
	background: none;
	color: var(--brand-600);
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}

.as-cal__reset:hover {
	text-decoration: underline;
}

.as-cal__items {
	display: grid;
	gap: 12px;
	margin-top: 12px;
	margin-bottom: 16px;
}

.as-cal__item {
	padding: 16px;
	border: 1px solid var(--line-soft);
	border-radius: var(--radius-sm);
	background: var(--white);
	box-shadow: var(--shadow);
}

.as-cal__item-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	color: var(--text-mute);
	font-size: 12px;
}

.as-cal__item-meta time {
	color: var(--text);
	font-weight: 700;
}

.as-cal__badge {
	padding: 1px 8px;
	border-radius: 999px;
	background: #f1f5f9;
	color: var(--text-sub);
	font-size: 10px;
	font-weight: 700;
}

.as-cal__badge.is-lecture {
	background: var(--brand-50);
	color: var(--brand-700);
}

.as-cal__badge.is-clinic {
	background: #ecfdf5;
	color: #047857;
}

.as-cal__badge.is-event {
	background: var(--accent-50);
	color: var(--accent-600);
}

.as-cal__badge.is-media {
	background: #f5f3ff;
	color: #6d28d9;
}

.as-cal__item-title {
	margin-top: 8px;
	color: var(--text-strong);
	font-size: 14px;
	font-weight: 700;
}

.as-cal__item-title a {
	color: inherit;
}

.as-cal__item-place {
	margin-top: 4px;
	color: var(--text-mute);
	font-size: 12px;
}

.as-cal__none {
	margin: 12px 0 16px;
	padding: 20px;
	border: 1px dashed var(--line);
	border-radius: var(--radius-sm);
	color: var(--text-mute);
	font-size: 14px;
	text-align: center;
}

/* ==========================================================================
   プロフィール
   ========================================================================== */
.as-profile-name {
	color: var(--text-strong);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.4;
}

.as-profile-name .as-eyebrow {
	display: block;
	margin-top: 4px;
	font-size: 13px;
}

.as-split--top .as-split__body .as-draft {
	margin-top: 20px;
	margin-bottom: 0;
}

/* ==========================================================================
   依頼メニュー
   ========================================================================== */
.as-service {
	margin-top: 32px;
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	box-shadow: var(--shadow);
	overflow: hidden;
	scroll-margin-top: 90px;
}

.as-service__head {
	display: grid;
	gap: 24px;
	padding: 24px;
}

.as-service__title {
	margin-top: 8px;
	color: var(--text-strong);
	font-size: 24px;
	font-weight: 700;
}

.as-service__summary {
	margin-top: 12px;
	color: var(--text-sub);
	font-size: 15px;
}

.as-service__dl {
	display: grid;
	gap: 1px;
	border-top: 1px solid var(--line-soft);
	background: var(--line-soft);
}

.as-service__dl > div {
	padding: 20px 24px;
	background: var(--white);
}

.as-service__dl dt {
	color: var(--brand-600);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.as-service__dl dd {
	margin-top: 8px;
	color: var(--text);
	font-size: 14px;
}

.as-service__note {
	display: block;
	margin-top: 10px;
	color: var(--text-mute);
	font-size: 12px;
}

.as-service__foot {
	padding: 20px 24px;
	border-top: 1px solid var(--line-soft);
	background: rgba(239, 248, 255, 0.6);
}

/* ==========================================================================
   実績
   ========================================================================== */
.as-stats {
	display: grid;
	gap: 16px;
}

.as-stat {
	text-align: center;
}

.as-stat__value {
	color: var(--brand-600);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.3;
}

.as-stat__value span {
	margin-left: 4px;
	color: var(--brand-400);
	font-size: 14px;
}

.as-stat__label {
	margin-top: 6px;
	color: var(--text-mute);
	font-size: 12px;
}

.as-rows {
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	overflow: hidden;
}

.as-row {
	display: grid;
	gap: 8px;
	padding: 18px 20px;
}

.as-row + .as-row {
	border-top: 1px solid var(--line-soft);
}

.as-row__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.as-row__date {
	color: var(--text-mute);
	font-size: 12px;
	font-weight: 700;
}

.as-row__outlet {
	color: var(--brand-700);
	font-size: 12px;
	font-weight: 700;
}

.as-row__title {
	display: block;
	color: var(--text-strong);
	font-size: 14px;
	font-weight: 700;
}

.as-row__sub {
	display: block;
	margin-top: 4px;
	color: var(--text-mute);
	font-size: 12px;
}

.as-voice {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.as-voice__mark {
	color: var(--brand-200);
	font-size: 36px;
	line-height: 1;
}

.as-voice__body {
	flex: 1;
	margin-top: 4px;
	color: var(--text);
	font-size: 14px;
}

.as-voice__who {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--line-soft);
}

.as-voice__who b {
	display: block;
	color: var(--text-strong);
	font-size: 14px;
}

.as-voice__who span {
	display: block;
	color: var(--text-mute);
	font-size: 12px;
}

/* ==========================================================================
   スポンサー
   ========================================================================== */
.as-tier {
	color: var(--brand-700);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.as-sponsors {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 16px;
}

.as-sponsors.is-large {
	grid-template-columns: 1fr;
}

.as-sponsor {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 100%;
	padding: 20px 16px;
	border: 1px solid var(--line-soft);
	border-radius: var(--radius);
	background: var(--white);
	box-shadow: var(--shadow);
	text-align: center;
	text-decoration: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.as-sponsor:hover {
	border-color: var(--brand-200);
	box-shadow: var(--shadow-md);
}

.as-sponsor__logo {
	width: auto;
	max-width: 100%;
	height: 56px;
	object-fit: contain;
}

.as-sponsor__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 56px;
	border: 2px dashed var(--brand-200);
	border-radius: 8px;
	background: var(--brand-50);
	color: var(--brand-600);
	font-size: 11px;
	font-weight: 700;
}

.as-sponsor__name {
	color: var(--text);
	font-size: 14px;
	font-weight: 700;
}

/* ==========================================================================
   お問い合わせ
   ========================================================================== */
.as-alert {
	margin-top: 32px;
	padding: 16px 20px;
	border: 1px solid #fecdd3;
	border-radius: var(--radius-sm);
	background: #fff1f2;
	color: #be123c;
	font-size: 14px;
}

.as-alert ul {
	margin-top: 8px;
	padding-left: 1.2em;
	list-style: disc;
}

.as-form {
	margin-top: 40px;
}

.as-form__grid {
	display: grid;
	gap: 24px;
}

.as-field label {
	display: block;
	color: var(--text-strong);
	font-size: 14px;
	font-weight: 700;
}

.as-req {
	margin-left: 6px;
	color: var(--accent-600);
	font-size: 12px;
}

.as-field input,
.as-field select,
.as-field textarea {
	display: block;
	width: 100%;
	margin-top: 8px;
	padding: 12px 16px;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	background: var(--white);
	box-shadow: var(--shadow);
	color: var(--text-strong);
	font-size: 16px;
	line-height: 1.6;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.as-field select {
	appearance: none;
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 18px;
}

.as-field input::placeholder,
.as-field textarea::placeholder {
	color: #94a3b8;
}

.as-field input:focus,
.as-field select:focus,
.as-field textarea:focus {
	border-color: var(--brand-400);
	outline: none;
	box-shadow: 0 0 0 3px var(--brand-100);
}

.as-field.has-error input,
.as-field.has-error select,
.as-field.has-error textarea {
	border-color: #fb7185;
}

.as-field__help {
	margin-top: 8px;
	color: var(--text-mute);
	font-size: 12px;
}

.as-field__error {
	margin-top: 8px;
	color: #be123c;
	font-size: 12px;
	font-weight: 700;
}

.as-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.as-btn--submit {
	width: 100%;
	margin-top: 32px;
	padding: 16px 40px;
	font-size: 16px;
}

.as-contact-alt {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--line-soft);
}

.as-contact-alt h2 {
	color: var(--text-strong);
	font-size: 14px;
	font-weight: 700;
}

.as-contact-alt dl {
	margin-top: 16px;
	color: var(--text-sub);
	font-size: 14px;
}

.as-contact-alt dl > div {
	display: flex;
	flex-wrap: wrap;
	gap: 0 12px;
}

.as-contact-alt dl > div + div {
	margin-top: 6px;
}

.as-contact-alt dt {
	color: var(--text-mute);
	font-weight: 700;
}

.as-thanks {
	padding-top: 80px;
	padding-bottom: 40px;
	text-align: center;
}

.as-thanks__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 auto;
	border-radius: 50%;
	background: var(--brand-50);
	box-shadow: inset 0 0 0 1px var(--brand-200);
	color: var(--brand-600);
}

.as-thanks__icon svg {
	width: 32px;
	height: 32px;
}

.as-thanks__title {
	margin-top: 32px;
	color: var(--text-strong);
	font-size: 24px;
	font-weight: 700;
}

.as-thanks__body {
	margin-top: 20px;
	color: var(--text-sub);
}

.as-thanks .as-small {
	margin-top: 20px;
}

.as-404 {
	color: var(--brand-200);
	font-size: 48px;
	font-weight: 700;
}

/* ==========================================================================
   お知らせ詳細・ページ送り
   ========================================================================== */
.as-article__title {
	margin-top: 12px;
	color: var(--text-strong);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.5;
}

.as-article__head {
	padding-bottom: 24px;
	margin-bottom: 32px;
	border-bottom: 1px solid var(--line-soft);
}

.as-article__photo {
	margin-bottom: 32px;
}

.as-pagination {
	margin-top: 32px;
}

.as-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.as-pagination .page-numbers {
	padding: 6px 14px;
	border-radius: 999px;
	box-shadow: inset 0 0 0 1px var(--line);
	color: var(--text-sub);
	font-size: 14px;
	text-decoration: none;
}

.as-pagination .page-numbers.current {
	background: var(--brand-600);
	box-shadow: none;
	color: var(--white);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ==========================================================================
   SNS・オンラインショップ
   ========================================================================== */
.as-shop-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 8px;
	border-radius: 999px;
	color: var(--text-sub);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-decoration: none;
}

.as-shop-link:hover {
	background: var(--bg-soft);
	color: var(--brand-600);
}

.as-shop-link__text {
	display: none;
}

.as-ext {
	margin-left: 6px;
	color: var(--text-mute);
	font-size: 12px;
}

.as-sns {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 20px;
}

.as-sns__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--white);
	box-shadow: inset 0 0 0 1px var(--line);
	color: var(--text-sub);
	transition: color 0.15s, box-shadow 0.15s;
}

.as-sns__link:hover {
	color: var(--brand-600);
	box-shadow: inset 0 0 0 1px var(--brand-200);
}

.as-nav-sp .as-sns {
	margin-top: 16px;
}

.as-shop {
	display: grid;
	gap: 32px;
}

.as-shop__lead {
	color: var(--text-sub);
	font-size: 15px;
}

.as-shop .as-btn-row {
	margin-top: 24px;
}

.as-shop__items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.as-shop__items .as-placeholder {
	padding: 8px;
}

.as-shop__items .as-placeholder__draft {
	display: none;
}

.as-ratio-1-1 {
	aspect-ratio: 1 / 1;
}

/* ==========================================================================
   やさしいパステルの飾り
   （波線・ドット柄・バレーボールの線画・ころんとした写真枠・ふっくらボタン）
   ========================================================================== */
body {
	background: var(--page-bg);
	font-weight: 500;
	letter-spacing: 0.02em;
}

/* 英字の小見出しを筆記体に */
.as-eyebrow {
	font-family: var(--font-en);
	font-size: 20px;
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 1.4;
	text-transform: none;
	color: var(--brand-400);
}

.as-logo__en {
	font-family: var(--font-en);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--brand-400);
}

/* 見出しの下の線を波線に */
.as-heading__title::after,
.as-prose--page h2::after {
	width: 72px;
	height: 12px;
	border-radius: 0;
	background: var(--brand-300);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 12'%3E%3Cpath d='M2 6c6-6 11-6 17 0s11 6 17 0 11-6 17 0 11 6 17 0' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 12'%3E%3Cpath d='M2 6c6-6 11-6 17 0s11 6 17 0 11-6 17 0 11 6 17 0' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ボタンをふっくら・押せる感じに */
.as-btn {
	padding: 14px 30px;
	transition: transform 0.15s, box-shadow 0.15s, background-color 0.15s;
}

.as-btn--primary {
	background: var(--btn-bg);
	box-shadow: 0 5px 0 var(--btn-shadow);
}

.as-btn--primary:hover {
	background: var(--btn-bg);
	transform: translateY(2px);
	box-shadow: 0 3px 0 var(--btn-shadow);
}

.as-btn--secondary {
	background: var(--white);
	color: var(--brand-600);
	box-shadow: inset 0 0 0 2px var(--brand-200), 0 5px 0 var(--brand-100);
}

.as-btn--secondary:hover {
	background: var(--white);
	transform: translateY(2px);
	box-shadow: inset 0 0 0 2px var(--brand-200), 0 3px 0 var(--brand-100);
}

.as-btn--white {
	color: var(--brand-600);
	box-shadow: 0 5px 0 rgba(0, 0, 0, 0.12);
}

.as-btn--outline-white {
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.75);
}

.as-btn--outline-white:hover {
	background: rgba(255, 255, 255, 0.15);
}

.as-btn--submit {
	padding: 16px 40px;
}

.as-header__cta {
	background: var(--btn-bg);
	box-shadow: 0 3px 0 var(--btn-shadow);
}

.as-header__cta:hover {
	background: var(--btn-bg);
}

/* カード類を丸く、影をふんわり */
.as-card,
.as-service,
.as-cal__box,
.as-rows,
.as-news-list,
.as-cal__item,
.as-sponsor,
.as-news-list--cards .as-news-item,
.as-prose .as-flow li,
.as-prose .as-plans > .wp-block-column,
.as-prose .as-basics {
	border: 0;
}

.as-card--link:hover {
	transform: translateY(-3px);
}

.as-card--link {
	transition: transform 0.2s, box-shadow 0.2s;
}

.as-card__title::before {
	content: "";
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-right: 8px;
	border-radius: 50%;
	background: var(--dot-color);
	vertical-align: 2px;
}

.as-card__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--brand-50);
	font-size: 14px;
}

/* ヘッダー */
.as-header {
	border-bottom: 0;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 4px 20px var(--soft-shadow);
}

/* ヒーロー（トップの最初の画面） */
.as-hero {
	position: relative;
	overflow: hidden;
	border-bottom: 0;
	background: var(--hero-bg);
}

.as-hero::before,
.as-page-header::before {
	content: "";
	position: absolute;
	top: -60px;
	left: -60px;
	width: 260px;
	height: 260px;
	border-radius: 50%;
	background-image: radial-gradient(var(--dot-color) 2.5px, transparent 3px);
	background-size: 18px 18px;
	opacity: 0.7;
	pointer-events: none;
}

.as-hero::after {
	content: "";
	position: absolute;
	right: -40px;
	bottom: -40px;
	width: 200px;
	height: 200px;
	background: var(--ball-color);
	opacity: 0.35;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23000' stroke-width='4' stroke-linecap='round'%3E%3Ccircle cx='50' cy='50' r='45'/%3E%3Cpath d='M50 5c-8 16-8 36 0 45M50 50c18 0 32-8 41-22M50 50c-10 15-26 22-43 20M22 15c14 6 24 18 28 35M93 60c-16-4-31 0-43-10M30 91c0-18 8-32 20-41'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23000' stroke-width='4' stroke-linecap='round'%3E%3Ccircle cx='50' cy='50' r='45'/%3E%3Cpath d='M50 5c-8 16-8 36 0 45M50 50c18 0 32-8 41-22M50 50c-10 15-26 22-43 20M22 15c14 6 24 18 28 35M93 60c-16-4-31 0-43-10M30 91c0-18 8-32 20-41'/%3E%3C/svg%3E") no-repeat center / contain;
	pointer-events: none;
}

.as-hero__inner {
	position: relative;
	z-index: 1;
}

.as-hero__role {
	padding: 6px 16px;
	box-shadow: 0 4px 14px var(--soft-shadow);
	color: var(--brand-600);
}

.as-hero__catch {
	letter-spacing: 0.04em;
	word-break: auto-phrase;
}

/* 写真の枠：メインビジュアルは、ころんとした形 */
.as-hero .as-placeholder,
.as-hero .as-photo {
	border-radius: 46% 54% 52% 48% / 52% 46% 54% 48%;
	box-shadow: 18px 18px 0 var(--blob-color);
}

.as-hero .as-placeholder {
	border: 3px dashed var(--brand-200);
	background: var(--white);
}

.as-placeholder {
	background: rgba(255, 255, 255, 0.75);
}

/* プロフィール写真はアーチ形 */
.as-split .as-placeholder,
.as-split .as-photo {
	border-radius: 999px 999px 32px 32px;
	box-shadow: -14px 14px 0 var(--blob-color);
}

.as-split .as-placeholder {
	background: var(--white);
}

/* 各ページ上部の見出し */
.as-page-header {
	position: relative;
	overflow: hidden;
	border-bottom: 0;
	background: var(--hero-bg);
}

.as-page-header::before {
	top: -80px;
	left: auto;
	right: -40px;
	opacity: 0.4;
}

.as-req {
	color: var(--brand-600);
}

.as-page-header .as-container {
	position: relative;
	z-index: 1;
}

/* セクションの境目を波に */
.as-band {
	position: relative;
	background: var(--band-bg);
}

.as-band--gray {
	background: var(--band-bg-2);
}

.as-band::before,
.as-band::after,
.as-cta::before,
.as-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 22px;
	background: inherit;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 22' preserveAspectRatio='none'%3E%3Cpath d='M0 22V11C20 0 40 0 60 11s40 11 60 0v11z'/%3E%3C/svg%3E") repeat-x left bottom / 120px 22px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 22' preserveAspectRatio='none'%3E%3Cpath d='M0 22V11C20 0 40 0 60 11s40 11 60 0v11z'/%3E%3C/svg%3E") repeat-x left bottom / 120px 22px;
	pointer-events: none;
}

.as-band::before,
.as-cta::before,
.as-footer::before {
	top: -21px;
}

.as-band::after {
	bottom: -21px;
	transform: scaleY(-1);
}

/* 問い合わせの帯 */
.as-cta {
	position: relative;
	margin-top: 22px;
	background: var(--cta-bg);
}

.as-cta__inner {
	position: relative;
}

.as-cta__inner::before {
	content: "";
	position: absolute;
	top: 20px;
	right: 10px;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background-image: radial-gradient(rgba(255, 255, 255, 0.35) 2.5px, transparent 3px);
	background-size: 16px 16px;
}

.as-cta__text {
	color: rgba(255, 255, 255, 0.95);
}

/* フッター */
.as-footer {
	position: relative;
	border-top: 0;
	background: var(--footer-bg);
}

.as-main:has(> .as-cta:last-child) + .as-footer::before {
	display: none;
}

.as-pill-link {
	box-shadow: 0 4px 14px var(--soft-shadow);
}

/* タグ・バッジ・注意書き */
.as-tag {
	padding: 2px 12px;
	color: var(--brand-600);
}

.as-draft {
	border: 0;
	border-radius: 20px;
}

/* お知らせ */
.as-news-list {
	padding: 6px;
}

.as-news-item + .as-news-item {
	border-top: 2px dotted var(--line);
}

.as-news-item__link {
	border-radius: 22px;
}

.as-news-list--cards {
	padding: 0;
}

.as-news-list--cards .as-news-item + .as-news-item {
	border-top: 0;
}

/* 予定カレンダー */
.as-cal__day {
	border-radius: 14px;
}

.as-cal__day.has-items {
	background: var(--brand-50);
}

.as-cal__day.is-selected,
.as-cal__day.is-selected:hover {
	background: var(--btn-bg);
}

/* 依頼メニュー */
.as-service__foot {
	background: var(--brand-50);
}

.as-chip {
	box-shadow: inset 0 0 0 2px var(--brand-200), 0 4px 0 var(--brand-100);
}

/* 実績・参加者の声 */
.as-voice__mark,
.as-404 {
	font-family: var(--font-en);
	font-weight: 400;
}

.as-rows {
	padding: 4px 0;
}

.as-row + .as-row {
	border-top: 2px dotted var(--line);
}

/* プロフィール・ご依頼の流れ */
.as-prose .as-basics li {
	border-top: 2px dotted var(--line-soft);
}

.as-prose .as-timeline {
	border-left: 3px dotted var(--brand-200);
}

.as-prose .as-timeline li::before {
	left: -29px;
	box-shadow: 0 0 0 3px var(--brand-100);
	background: var(--brand-400);
}

.as-prose .as-flow li::before {
	font-family: var(--font-en);
	font-weight: 400;
	color: var(--brand-300);
}

/* スポンサー */
.as-sponsor__placeholder {
	border-radius: 14px;
}

/* お問い合わせフォーム */
.as-field input,
.as-field select,
.as-field textarea {
	border: 2px solid var(--line);
	border-radius: 16px;
	box-shadow: none;
}

.as-field input:focus,
.as-field select:focus,
.as-field textarea:focus {
	border-color: var(--brand-300);
	box-shadow: 0 0 0 4px var(--brand-100);
}

.as-alert {
	border-radius: 20px;
}

/* SNS・ショップ */
.as-sns__link {
	box-shadow: 0 4px 14px var(--soft-shadow);
}

.as-sns__link:hover {
	box-shadow: 0 4px 14px var(--soft-shadow), inset 0 0 0 2px var(--brand-200);
}

.as-shop__items .as-placeholder {
	border-radius: 24px;
}

@media (min-width: 640px) {
	.as-hero::before {
		width: 380px;
		height: 380px;
	}

	.as-hero::after {
		right: -60px;
		bottom: -70px;
		width: 300px;
		height: 300px;
	}
}

/* ==========================================================================
   画面幅 640px 以上（タブレット）
   ========================================================================== */
@media (min-width: 640px) {
	.as-logo__en,
	.as-header__cta,
	.as-shop-link__text {
		display: inline-block;
	}

	.as-shop-link {
		padding: 8px 12px;
	}

	.as-shop__items {
		gap: 16px;
	}

	.as-header__actions {
		gap: 8px;
	}

	.as-btn-row {
		flex-direction: row;
		flex-wrap: wrap;
	}

	.as-btn-row--center {
		justify-content: center;
	}

	.as-btn-row--center .as-btn {
		width: auto;
	}

	.as-btn--submit {
		width: auto;
	}

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

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

	.as-heading__title {
		font-size: 30px;
	}

	.as-page-header .as-container {
		padding-top: 56px;
		padding-bottom: 56px;
	}

	.as-page-header__title {
		font-size: 36px;
	}

	.as-hero__catch {
		font-size: 38px;
	}

	.as-hero__inner {
		padding-top: 64px;
		padding-bottom: 64px;
	}

	.as-section {
		padding-top: 72px;
		padding-bottom: 72px;
	}

	.as-cta__title {
		font-size: 30px;
	}

	.as-service__head {
		padding: 32px;
	}

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

	.as-row {
		grid-template-columns: 200px 1fr auto;
		align-items: center;
		gap: 20px;
	}

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

	.as-sponsors.is-large {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

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

	.as-field.is-wide {
		grid-column: 1 / -1;
	}

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

	.as-footer__top {
		flex-direction: row;
		justify-content: space-between;
	}

	.as-footer__nav {
		grid-template-columns: 1fr;
		align-content: start;
	}

	.as-cal__box {
		padding: 24px;
	}

	.as-cal__day {
		aspect-ratio: auto;
		height: 56px;
	}
}

@media (min-width: 783px) {
	.admin-bar .as-header {
		top: 32px;
	}
}

/* ==========================================================================
   画面幅 1024px 以上（PC）
   ========================================================================== */
@media (min-width: 1024px) {
	.as-nav-pc {
		display: block;
	}

	.as-nav-pc__list {
		display: flex;
		gap: 4px;
	}

	.as-nav-pc__list a {
		display: block;
		padding: 8px 12px;
		border-radius: 999px;
		color: var(--text-sub);
		font-size: 14px;
		font-weight: 500;
		text-decoration: none;
		white-space: nowrap;
	}

	.as-nav-pc__list a:hover {
		background: var(--bg-soft);
		color: var(--text-strong);
	}

	.as-nav-pc__list .current-menu-item > a,
	.as-nav-pc__list .current_page_parent > a {
		background: var(--brand-50);
		color: var(--brand-700);
	}

	.as-menu-toggle,
	.as-nav-sp {
		display: none !important;
	}

	.as-hero__inner {
		grid-template-columns: 1fr 1fr;
		align-items: center;
		gap: 48px;
		padding-top: 80px;
		padding-bottom: 80px;
	}

	.as-hero__catch {
		font-size: 46px;
	}

	.as-split {
		grid-template-columns: 2fr 3fr;
		align-items: center;
		gap: 48px;
	}

	.as-split--top {
		align-items: start;
	}

	.as-service__head {
		grid-template-columns: 2fr 1fr;
	}

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

	.as-cal {
		grid-template-columns: 3fr 2fr;
		align-items: start;
	}

	.as-shop {
		grid-template-columns: 2fr 3fr;
		align-items: center;
		gap: 48px;
	}
}
