/* =========================================================
   Eeny Meeny Miny Moe 2026 — main.css
   ========================================================= */
:root {
	--paper: #F3EAD7;
	--paper-light: #F8F1E2;
	--paper-card: #FDF7E8;
	--tan: #EADCC0;
	--tan-img: #E3D2AF;
	--ink: #4B3A2A;
	--ink-soft: #6B5A47;
	--ink-dark: #3A2C1F;
	--gold: #B08D4A;
	--gold-soft: #C9B58C;
	--gold-light: #E3CF9F;
	--bordeaux: #8C3B2E;
	--bordeaux-dark: #6A2A20;
	--olive: #56603F;
	--line-green: #3E6B3A;
	--serif-jp: 'Shippori Mincho', 'Yu Mincho', serif;
	--serif-en: 'Cormorant Garamond', Georgia, serif;
	--sans: 'Zen Kaku Gothic New', 'Hiragino Sans', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.95;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--bordeaux); }
a:hover { color: var(--bordeaux-dark); }
h1, h2, h3 { font-family: var(--serif-jp); font-weight: 600; margin: 0; line-height: 1.6; }
p { margin: 0; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 12px; top: 12px; z-index: 100; background: #fff; padding: 8px 12px; }

/* ---------- 共通パーツ ---------- */
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.container--mid { max-width: 1160px; }
.container--narrow { max-width: 1100px; }
.container--faq { max-width: 868px; }
.section { padding: 96px 0; }
.section--tan { background: var(--tan); border-top: 1px solid var(--gold-soft); border-bottom: 1px solid var(--gold-soft); }
.section--green { background: var(--olive); color: var(--paper); }
.sec-head { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 4px; margin-bottom: 40px; }
.sec-title { font-size: 30px; }
.sec-title--left { text-align: left; line-height: 1.7; }
.sec-lead { max-width: 680px; }
.eyebrow { font-family: var(--serif-en); font-style: italic; font-size: 26px; color: var(--olive); line-height: 1.2; }
.eyebrow--sm { font-size: 20px; }
.eyebrow--gold { color: var(--gold-light); }
.muted { color: var(--ink-soft); }
.small { font-size: 14px; }
.note { font-size: 13px; color: var(--ink-soft); }
.center { text-align: center; }
.empty { text-align: center; color: var(--ink-soft); }
.stack { display: flex; flex-direction: column; gap: 18px; }
.grow { flex-grow: 1; }
.split { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 56px; align-items: center; }
.split--top { align-items: start; gap: 48px; }
.btn-row { display: flex; flex-wrap: wrap; gap: 14px; }
.btn-row.center { justify-content: center; margin-top: 32px; }
.framed { background: var(--paper-light); border: 1px solid var(--gold); outline: 1px solid var(--gold); outline-offset: -8px; }
.frame { margin: 0; border: 1px solid var(--gold); padding: 8px; background: var(--paper-light); }
.frame img { width: 100%; border: 3px double var(--gold); }
.frame figcaption { font-family: var(--serif-jp); font-size: 13px; color: var(--ink-soft); text-align: center; padding-top: 6px; }
.frame--wide { margin-bottom: 44px; }
.frame--wide img { height: 440px; object-fit: cover; object-position: 50% 55%; }
.ornament { margin: 2px auto; }
.diamond { width: 9px; height: 9px; background: var(--gold); transform: rotate(45deg); display: inline-block; }

/* ---------- ボタン ---------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 12px;
	min-height: 52px; padding: 0 30px;
	font-family: var(--serif-jp); font-size: 16px; letter-spacing: .08em;
	text-decoration: none; border: 0; cursor: pointer;
}
.btn--primary { background: var(--bordeaux); color: var(--paper-light); outline: 1px solid rgba(248,241,226,.55); outline-offset: -5px; }
.btn--primary:hover { background: var(--bordeaux-dark); color: var(--paper-light); }
.btn--green { background: var(--olive); color: var(--paper-light); outline: 1px solid rgba(248,241,226,.55); outline-offset: -5px; }
.btn--green:hover { background: #454d32; color: var(--paper-light); }
.btn--line { background: var(--line-green); color: var(--paper-light); outline: 1px solid rgba(248,241,226,.55); outline-offset: -5px; }
.btn--line:hover { background: #31562e; color: var(--paper-light); }
.btn--dark { background: var(--ink); color: var(--paper-light); min-height: 44px; font-size: 14px; }
.btn--dark:hover { background: var(--ink-dark); color: var(--paper-light); }
.btn--ghost { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.btn--ghost:hover { background: var(--paper-light); color: var(--ink); }
.btn--framed { background: var(--paper-light); outline: 1px solid var(--gold); outline-offset: 4px; }
.btn--block { display: flex; width: 100%; }
.btn--shop-sm { white-space: nowrap; letter-spacing: .04em; min-height: 44px; padding: 0 22px; background: var(--bordeaux); color: var(--paper-light); outline: 1px solid var(--bordeaux); outline-offset: 3px; font-family: var(--serif-jp); }
.btn--shop-sm:hover { color: var(--paper-light); background: var(--bordeaux-dark); }
.btn--course { min-height: 48px; padding: 0 6px; font-size: 15px; letter-spacing: 0; }
.emm-arrow { flex: 0 0 auto; }

/* ---------- ヘッダー ---------- */
.site-header { position: sticky; top: 0; z-index: 40; background: var(--paper); border-bottom: 1px solid var(--gold); }
.site-header__inner { max-width: 1240px; margin: 0 auto; padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--ink); line-height: 1.15; }
.brand__logo { width: 64px; height: auto; }
.brand__text { display: flex; flex-direction: column; }
.brand__name { font-family: var(--serif-en); font-style: italic; font-size: 30px; font-weight: 500; }
.brand__sub { font-family: var(--serif-jp); font-size: 12px; letter-spacing: .2em; color: var(--ink-soft); white-space: nowrap; }
.brand__name { white-space: nowrap; }
.gnav { display: flex; align-items: center; gap: 22px; }
.gnav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: nowrap; white-space: nowrap; gap: 4px 18px; font-family: var(--serif-jp); font-size: 14px; }
.gnav__list a { color: var(--ink); text-decoration: none; }
.gnav__list a:hover { color: var(--bordeaux); }
.menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--ink); background: transparent; color: var(--ink); align-items: center; justify-content: center; padding: 0; cursor: pointer; }
.menu-toggle__close { display: none; }
.menu-toggle[aria-expanded="true"] .menu-toggle__open { display: none; }
.menu-toggle[aria-expanded="true"] .menu-toggle__close { display: inline; }
.drawer { border-top: 1px solid var(--gold); background: var(--paper-light); padding: 8px 16px 20px; }
.drawer[hidden] { display: none; }
.drawer__list { list-style: none; margin: 0; padding: 0; }
.drawer__list a { display: flex; align-items: center; min-height: 52px; border-bottom: 1px dotted var(--gold); color: var(--ink); text-decoration: none; font-family: var(--serif-jp); font-size: 16px; }
.drawer__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.drawer__actions .btn { padding: 0 8px; font-size: 14px; letter-spacing: 0; }

/* ---------- メインビジュアル ---------- */
.hero__art { border-bottom: 6px double var(--gold); }
.hero__art img { width: 100%; aspect-ratio: 1754 / 1146; object-fit: cover; }
.hero__card { position: relative; max-width: 820px; margin: -96px auto 0; padding: 44px 48px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.hero__title { font-size: 38px; }
.hero__lead { color: var(--ink-soft); max-width: 600px; }
.hero .btn-row { justify-content: center; margin-top: 6px; }

/* ---------- お知らせ ---------- */
.news-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 28px; margin-bottom: 36px; }
.news-card { background: var(--paper-light); border: 1px solid var(--gold-soft); padding: 10px; color: var(--ink); text-decoration: none; display: flex; flex-direction: column; }
.news-card:hover { border-color: var(--gold); }
.news-card__img img { width: 100%; height: 180px; object-fit: cover; }
.news-card__body { padding: 16px 12px 10px; display: flex; flex-direction: column; gap: 4px; }
.news-card time { font-family: var(--serif-en); font-size: 17px; color: var(--ink-soft); }
.news-card__title { font-family: var(--serif-jp); font-weight: 600; font-size: 17px; line-height: 1.7; }

/* ---------- 絵本の買い方 ---------- */
.buy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 32px; align-items: stretch; }
.buy-card { padding: 44px 40px; display: flex; flex-direction: column; gap: 16px; position: relative; }
.buy-card--featured { background: var(--paper-light); border: 2px solid var(--bordeaux); outline: 1px solid var(--bordeaux); outline-offset: -9px; }
.buy-card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.buy-card__head h3 { font-size: 26px; }
.buy-card__head img { width: 72px; height: 72px; object-fit: contain; }
.buy-card__foot { border-top: 1px dotted var(--gold); padding-top: 18px; display: flex; flex-direction: column; gap: 12px; }
.ribbon { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); padding: 4px 20px; background: var(--bordeaux); color: var(--paper-light); font-family: var(--serif-jp); font-size: 13px; letter-spacing: .1em; white-space: nowrap; }
.price { display: flex; align-items: baseline; gap: 8px; }
.price strong { font-family: var(--serif-en); font-weight: 600; font-size: 48px; color: var(--bordeaux); line-height: 1; }
.roman { list-style: none; margin: 0; padding: 14px 0 0; border-top: 1px dotted var(--gold); display: flex; flex-direction: column; gap: 10px; }
.roman li { display: flex; gap: 12px; }
.roman li > span:first-child { font-family: var(--serif-en); font-style: italic; font-size: 20px; color: var(--bordeaux); line-height: 1.6; flex: 0 0 auto; }
.course-head { font-family: var(--serif-jp); font-size: 15px; text-align: center; }
.course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pickup { display: block; border: 1px solid var(--gold); padding: 6px; background: var(--paper-card); color: var(--ink); text-decoration: none; }
.pickup img { width: 100%; height: 190px; object-fit: cover; object-position: 50% 55%; border: 3px double var(--gold); }
.pickup__label { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 6px 4px; color: var(--bordeaux); }
.pickup__label > span { display: flex; flex-direction: column; line-height: 1.35; }
.pickup__label strong { font-family: var(--serif-jp); font-size: 17px; color: var(--ink); }

/* ---------- 絵本をさがす ---------- */
.group-head { display: flex; align-items: center; gap: 12px; margin: 44px 0 18px; }
.group-head h3 { font-size: 22px; }
.group-head .rule { flex: 1; border-top: 1px dotted var(--gold); }
.age-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.age-card { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 12px 14px; background: var(--paper-light); border: 1px solid var(--gold); outline: 1px solid var(--gold); outline-offset: -7px; color: var(--ink); text-decoration: none; text-align: center; }
.age-card img { width: 84px; height: 84px; object-fit: cover; border-radius: 50%; border: 1px solid var(--gold); margin-bottom: 2px; }
.age-card__n { display: flex; align-items: baseline; gap: 4px; font-family: var(--serif-jp); font-size: 18px; }
.age-card__n strong { font-family: var(--serif-en); font-size: 36px; line-height: 1; color: var(--bordeaux); }
.age-card__label { font-family: var(--serif-jp); font-weight: 600; font-size: 17px; }
.age-card__note { font-size: 13px; color: var(--ink-soft); }
.age-card__more { margin-top: 4px; padding-top: 4px; border-top: 1px dotted var(--gold); display: inline-flex; align-items: center; gap: 8px; font-family: var(--serif-jp); font-size: 14px; color: var(--bordeaux); }
.tile-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.tile { display: flex; align-items: center; gap: 14px; min-height: 96px; padding: 8px 14px 8px 8px; background: var(--paper-card); border: 1px solid var(--gold); outline: 1px solid var(--gold-soft); outline-offset: -4px; color: var(--ink); text-decoration: none; }
.tile:hover { background: var(--paper-light); }
.tile img { flex: 0 0 auto; width: 76px; height: 76px; object-fit: cover; border-right: 1px dotted var(--gold); padding-right: 10px; }
.tile__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.tile__text strong { font-family: var(--serif-jp); font-size: 16px; line-height: 1.35; }
.tile__text em { font-family: var(--serif-en); font-size: 15px; line-height: 1.2; color: var(--olive); }
.tile__text small { font-size: 12px; color: var(--ink-soft); line-height: 1.5; }
.tile__chev { flex: 0 0 auto; color: var(--bordeaux); }

/* ---------- 多読 ---------- */
.section--green .sec-lead { color: var(--paper); }
.point-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; margin-bottom: 40px; }
.point { border: 1px solid var(--gold); padding: 28px; text-align: center; display: flex; flex-direction: column; gap: 8px; }
.point__n { font-family: var(--serif-en); font-style: italic; font-size: 30px; color: var(--gold-light); line-height: 1; }
.point h3 { font-size: 18px; }
.point p { font-size: 15px; }
.wokwok { background: var(--paper); color: var(--ink); padding: 36px 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.wokwok > div { flex: 1 1 420px; }
.wokwok__text { font-family: var(--serif-jp); font-size: 19px; font-weight: 600; }

/* ---------- Instagram ---------- */
.ig-profile { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; background: var(--paper-light); border: 1px solid var(--gold); margin-bottom: 20px; }
.ig-profile__who { display: flex; align-items: center; gap: 12px; }
.ig-profile__who img { width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--gold); background: #fff; padding: 4px; object-fit: contain; }
.ig-profile__who > span { display: flex; flex-direction: column; line-height: 1.4; }
.ig-profile__who small { color: var(--ink-soft); font-size: 13px; }

/* ---------- FAQ ---------- */
.faq-group { display: flex; flex-direction: column; gap: 10px; margin-bottom: 32px; }
.faq-group .group-head { margin: 0 0 4px; }
.faq { background: var(--paper-light); border: 1px solid var(--gold-soft); }
.faq summary { cursor: pointer; list-style: none; display: flex; align-items: flex-start; gap: 10px; padding: 14px 18px; font-family: var(--serif-jp); font-weight: 600; font-size: 16px; line-height: 1.6; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '＋'; margin-left: auto; color: var(--gold); font-weight: 400; }
.faq[open] summary::after { content: '－'; }
.faq__q { font-family: var(--serif-en); font-style: italic; font-size: 22px; line-height: 1.1; color: var(--bordeaux); flex: 0 0 auto; }
.faq__a { display: flex; gap: 10px; padding: 12px 18px 16px; border-top: 1px dotted var(--gold-soft); font-size: 15px; line-height: 1.85; }
.faq__a p { margin: 0 0 .6em; }
.faq__a p:last-child { margin: 0; }
.faq__mark { font-family: var(--serif-en); font-style: italic; font-size: 21px; line-height: 1.2; color: var(--olive); flex: 0 0 auto; }

/* ---------- お店について ---------- */
.info { margin: 0; display: grid; grid-template-columns: 96px 1fr; font-size: 15px; border-top: 1px dotted var(--gold); }
.info dt, .info dd { padding: 10px 0; border-bottom: 1px dotted var(--gold); margin: 0; }
.info dt { font-family: var(--serif-jp); }
.qr-box { display: flex; align-items: center; gap: 22px; padding: 18px 22px; }
.qr-box img { width: 132px; height: 132px; background: #fff; padding: 6px; border: 1px solid var(--gold-soft); flex: 0 0 auto; }
.qr-box > div { display: flex; flex-direction: column; gap: 6px; }
.qr-box strong { font-family: var(--serif-jp); font-size: 19px; }
.photo-building { height: 360px; object-fit: cover; object-position: 50% 45%; }
.photo-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.photo-pair img { height: 300px; object-fit: cover; }

/* ---------- フッター ---------- */
.site-footer { background: var(--ink-dark); color: var(--paper); padding: 64px 24px 32px; }
.site-footer__inner { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.site-footer a { color: var(--paper); }
.medal { width: 180px; height: 180px; border-radius: 50%; background: var(--paper); border: 3px double var(--gold); outline: 1px solid var(--gold); outline-offset: 5px; display: flex; align-items: center; justify-content: center; margin-bottom: 4px; }
.medal img { width: 146px; }
.site-footer__name { font-family: var(--serif-en); font-style: italic; font-size: 30px; line-height: 1.1; }
.site-footer__sub { font-family: var(--serif-jp); font-size: 13px; letter-spacing: .2em; color: var(--gold-light); }
.fnav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 28px; font-family: var(--serif-jp); font-size: 14px; }
.footer-line { display: flex; align-items: center; gap: 14px; padding: 10px 16px 10px 10px; border: 1px solid var(--ink-soft); text-align: left; font-size: 13px; line-height: 1.6; }
.footer-line img { width: 84px; height: 84px; background: #fff; padding: 4px; }
.footer-line > span { display: flex; flex-direction: column; }
.footer-line__label { font-family: var(--serif-jp); font-size: 15px; }
.legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 20px; font-size: 13px; }
.site-footer__bottom { width: 100%; border-top: 1px solid var(--ink-soft); padding-top: 20px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 12px; }

/* ---------- 固定ボタン ---------- */
.dot { flex: 0 0 auto; border-radius: 50%; background: var(--paper); border: 1px solid rgba(248,241,226,.8); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.side-cta { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 50; display: flex; flex-direction: column; gap: 6px; padding: 8px 0 8px 8px; background: var(--paper-light); border: 1px solid var(--gold); border-right: 0; box-shadow: -4px 4px 14px rgba(58,44,31,.18); }
.side-cta__item { width: 84px; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 14px 0 18px; color: var(--paper-light); outline: 1px solid rgba(248,241,226,.55); outline-offset: -5px; text-decoration: none; }
.side-cta__item:hover { color: var(--paper-light); filter: brightness(.92); }
.side-cta__item--line { background: var(--line-green); }
.side-cta__item--shop { background: var(--bordeaux); }
.side-cta .dot { width: 62px; height: 62px; }
.side-cta .dot img { width: 54px; height: 54px; object-fit: contain; }
.side-cta__label { writing-mode: vertical-rl; font-family: var(--serif-jp); font-weight: 600; font-size: 16px; letter-spacing: .2em; }
.bottom-cta { display: none; }

/* ---------- 記事・一覧ページ ---------- */
.page-head { padding: 64px 24px 24px; text-align: center; }
.page-head h1 { font-size: 30px; }
.entry { max-width: 780px; margin: 0 auto; padding: 0 24px 96px; }
.entry__thumb { margin-bottom: 28px; }
.entry__meta { text-align: center; color: var(--ink-soft); font-family: var(--serif-en); font-size: 18px; margin-bottom: 8px; }
.entry__body { background: var(--paper-light); border: 1px solid var(--gold-soft); padding: 36px 40px; }
.entry__body > * + * { margin-top: 1.1em; }
.entry__body img { margin: 1em auto; }
.entry__back { text-align: center; margin-top: 36px; }
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 36px; font-family: var(--serif-en); font-size: 18px; }
.pagination .page-numbers { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--gold-soft); color: var(--ink); text-decoration: none; padding: 0 10px; }
.pagination .current { background: var(--bordeaux); color: var(--paper-light); border-color: var(--bordeaux); }

/* =========================================================
   スマホ・タブレット
   ========================================================= */
@media (max-width: 1399px) {
	.brand__sub { display: none; }
	.brand__logo { width: 52px; }
	.brand__name { font-size: 24px; }
	.gnav { gap: 16px; }
	.gnav__list { gap: 4px 14px; font-size: 13.5px; }
}

@media (max-width: 1180px) {
	.gnav { display: none; }
	.menu-toggle { display: inline-flex; }
	.side-cta { display: none; }
	.bottom-cta {
		display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
		padding: 10px 10px calc(14px + env(safe-area-inset-bottom));
		background: var(--paper-light); border-top: 3px double var(--gold);
		box-shadow: 0 -6px 16px rgba(58,44,31,.16);
	}
	.bottom-cta__item { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 62px; padding: 6px; color: var(--paper-light); outline: 1px solid rgba(248,241,226,.55); outline-offset: -5px; text-decoration: none; }
	.bottom-cta__item:hover { color: var(--paper-light); }
	.bottom-cta__item--line { background: var(--line-green); }
	.bottom-cta__item--shop { background: var(--bordeaux); }
	.bottom-cta .dot { width: 46px; height: 46px; }
	.bottom-cta .dot img { width: 40px; height: 40px; object-fit: contain; }
	.bottom-cta__text { display: flex; flex-direction: column; line-height: 1.3; }
	.bottom-cta__text strong { font-family: var(--serif-jp); font-size: 14px; white-space: nowrap; }
	.bottom-cta__text small { font-size: 11px; }
	body { padding-bottom: 96px; }
}

@media (max-width: 640px) {
	body { font-size: 15px; line-height: 1.9; }
	.container { padding: 0 16px; }
	.section { padding: 52px 0; }
	.sec-head { margin-bottom: 24px; }
	.sec-title { font-size: 22px; }
	.eyebrow { font-size: 22px; }
	.eyebrow--sm { font-size: 18px; }
	.site-header__inner { padding: 10px 16px; }
	.brand { gap: 8px; }
	.brand__logo { width: 46px; }
	.brand__name { font-size: 22px; }
	.brand__sub { font-size: 10px; letter-spacing: .18em; }
	.hero__art img { aspect-ratio: auto; height: 380px; object-position: 50% 60%; }
	.hero__card { margin: -40px 12px 0; padding: 30px 20px; outline-offset: -6px; }
	.hero__title { font-size: 24px; }
	.hero__lead { font-size: 14px; text-align: left; }
	.hero .btn-row { flex-direction: column; width: 100%; }
	.hero .btn { width: 100%; }
	.news-grid { grid-template-columns: 1fr; gap: 12px; }
	.news-card { flex-direction: row; align-items: center; gap: 12px; padding: 8px; }
	.news-card__img img { width: 84px; height: 84px; }
	.news-card__body { padding: 0; }
	.news-card time { font-size: 15px; }
	.news-card__title { font-size: 14px; line-height: 1.6; }
	.split { grid-template-columns: 1fr; gap: 20px; }
	.buy-grid { grid-template-columns: 1fr; gap: 28px; }
	.buy-card { padding: 30px 22px 26px; }
	.buy-card__head h3 { font-size: 21px; }
	.buy-card__head img { width: 56px; height: 56px; }
	.price strong { font-size: 40px; }
	.course-grid { grid-template-columns: 1fr 1fr; }
	.pickup img { height: 170px; }
	.pickup__label strong { font-size: 14px; }
	.frame--wide img { height: 200px; }
	.frame--wide { margin-bottom: 8px; }
	.group-head { margin: 28px 0 12px; }
	.group-head h3 { font-size: 17px; }
	.age-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.age-card img { width: 60px; height: 60px; }
	.age-card__n strong { font-size: 28px; }
	.age-card__label { font-size: 13px; }
	.age-card__note, .age-card__more { display: none; }
	.tile-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
	.tile { min-height: 64px; gap: 8px; padding: 6px 8px 6px 6px; }
	.tile img { width: 52px; height: 52px; padding-right: 6px; }
	.tile__text strong { font-size: 13px; }
	.tile__text em { font-size: 13px; }
	.tile__text small { display: none; }
	.point-grid { grid-template-columns: 1fr; }
	.wokwok { padding: 22px; }
	.wokwok .btn { width: 100%; }
	.faq summary { padding: 12px; font-size: 14px; }
	.faq__a { padding: 12px 12px 14px; font-size: 13px; }
	.btn-row.center .btn { width: 100%; }
	.btn { font-size: 14px; letter-spacing: .02em; padding: 0 14px; }
	.btn--course { font-size: 14px; }
	.bottom-cta .dot { width: 40px; height: 40px; }
	.bottom-cta .dot img { width: 34px; height: 34px; }
	.bottom-cta__item { gap: 6px; }
	.tile__text strong { font-size: 12.5px; }
	.qr-box { display: none; }
	.photo-building { height: 300px; }
	.photo-pair { gap: 8px; }
	.photo-pair img { height: 200px; }
	.medal { width: 140px; height: 140px; }
	.medal img { width: 112px; }
	.site-footer__name { font-size: 24px; }
	.footer-line { display: none; }
	.entry__body { padding: 24px 18px; }
}
