/*
Theme Name: ManabiPress
Theme URI: https://manabipress.jp/
Author: ManabiPress
Description: 会員制オンラインスクール向けのManabiPress Starterテーマです。
Version: 0.1.38.8
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: manabipress
Tags: education, custom-logo, featured-images, block-styles, wide-blocks
*/

:root {
	--mp-color-primary: #3157d5;
	--mp-color-primary-dark: #2846af;
	--mp-color-button: #2444ad;
	--mp-color-button-hover: #1d378e;
	--mp-color-accent: #14b8a6;
	--mp-color-text: #172033;
	--mp-color-muted: #64748b;
	--mp-color-surface: #ffffff;
	--mp-color-background: #f5f7fb;
	--mp-color-border: #e2e8f0;
	--mp-color-footer: #111827;
	--mp-radius: 18px;
	--mp-shadow: 0 18px 45px rgba(23, 32, 51, 0.08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--mp-color-background);
	color: var(--mp-color-text);
	font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.75;
}
body#tinymce.wp-editor {
	margin: 15px;
}
a { color: var(--mp-color-primary); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
img { max-width: 100%; height: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link:focus { top: 12px; left: 12px; width: auto; height: auto; margin: 0; padding: 10px 14px; clip: auto; background: #fff; z-index: 9999; }
.mp-container { width: min(1120px, calc(100% - 32px)); margin-inline: auto; }
.mp-site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--mp-color-border); backdrop-filter: blur(12px); }
.mp-header-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.mp-brand { display: flex; align-items: center; gap: 12px; color: var(--mp-color-text); font-size: 1.25rem; font-weight: 800; }
.mp-brand a { color: inherit; text-decoration: none; }
.custom-logo { max-height: 44px; width: auto; }
.mp-nav ul { display: flex; align-items: center; gap: 5px; margin: 0; padding: 0; list-style: none; }
.mp-nav a { display: block; padding: 9px 12px; border-radius: 999px; color: var(--mp-color-text); font-size: .91rem; font-weight: 600; line-height: 1.4; text-decoration: none; transition: color .2s ease, background .2s ease, transform .2s ease; }
.mp-nav a:hover,.mp-nav a:focus-visible,.mp-nav .current-menu-item>a { background: color-mix(in srgb, var(--mp-color-primary) 10%, transparent); color: var(--mp-color-primary); }
.mp-menu-toggle { display: none; position: relative; width: 44px; height: 44px; padding: 0; border: 1px solid var(--mp-color-border); border-radius: 12px; background: var(--mp-color-surface); color: var(--mp-color-text); cursor: pointer; }
.mp-menu-toggle::before,.mp-menu-toggle::after,.mp-menu-toggle span { position: absolute; left: 11px; width: 20px; height: 2px; border-radius: 2px; background: currentColor; content: ""; transition: transform .2s ease, top .2s ease, opacity .2s ease; }
.mp-menu-toggle::before { top: 14px; }
.mp-menu-toggle span { top: 20px; }
.mp-menu-toggle::after { top: 26px; }
.mp-menu-toggle[aria-expanded="true"]::before { top: 20px; transform: rotate(45deg); }
.mp-menu-toggle[aria-expanded="true"] span { opacity: 0; }
.mp-menu-toggle[aria-expanded="true"]::after { top: 20px; transform: rotate(-45deg); }
.mp-main { min-height: 65vh; padding-block: 48px 72px; }
.mp-card { background: var(--mp-color-surface); border: 1px solid var(--mp-color-border); border-radius: var(--mp-radius); box-shadow: var(--mp-shadow); padding: clamp(22px, 4vw, 40px); }
.mp-learning-main > .mp-card { min-width: 0; }
.mp-learning-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); align-items: start; gap: 28px; }
.mp-learning-layout--single { grid-template-columns: minmax(0, 1fr); }
.mp-learning-main, .mp-learning-main-widgets { display: grid; gap: 24px; min-width: 0; }
.mp-learning-sidebar { display: grid; gap: 20px; }
.mp-learning-sidebar .mp-widget { overflow: hidden; }
.mp-widget { overflow-wrap: anywhere; background: var(--mp-color-surface); border: 1px solid var(--mp-color-border); border-radius: 14px; box-shadow: var(--mp-shadow); padding: 22px; }
.mp-widget-title { margin: 0 0 16px; font-size: 1.15rem; line-height: 1.4; }
.mp-learning-sidebar .mp-widget-title {
	margin: -22px -22px 18px;
	padding: 13px 16px;
	border-left: 7px solid var(--mp-color-primary);
	border-radius: 0 13px 0 0;
	background: color-mix(in srgb, var(--mp-color-primary) 11%, transparent);
	color: var(--mp-color-primary);
}
.mp-widget-account .manabipress-link-button,.widget_manabipress_learner_status .manabipress-link-button { width: 100%; justify-content: center; border-color: var(--mp-color-button); background: var(--mp-color-button); color: #fff; font-weight: 800; }
.mp-widget-account .manabipress-link-button:hover,.widget_manabipress_learner_status .manabipress-link-button:hover { background: var(--mp-color-button-hover); color: #fff; }
.mp-main-widget { padding: clamp(22px, 3vw, 32px); }
.mp-front-widgets { display: grid; gap: 28px; margin-top: 0; }
.mp-front-widget { --mp-front-widget-space: clamp(22px, 3vw, 34px); padding: var(--mp-front-widget-space); }
.mp-front-widget > .mp-widget-title {
	margin: calc(0px - var(--mp-front-widget-space)) calc(0px - var(--mp-front-widget-space)) 20px;
	padding: 14px var(--mp-front-widget-space);
	border-left: 7px solid var(--mp-color-primary);
	border-radius: 13px 13px 0 0;
	background: color-mix(in srgb, var(--mp-color-primary) 11%, transparent);
	color: var(--mp-color-primary);
}
.mp-front-new-lessons { margin: 0 0 28px; }
.mp-front-ranked-courses { margin: 0 0 28px; }
.mp-front-course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.mp-front-course-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid var(--mp-color-border); border-radius: 14px; background: var(--mp-color-surface); }
.mp-front-course-card--root { border-top: 4px solid var(--mp-color-primary); }
.mp-front-course-image { display: block; background: color-mix(in srgb, var(--mp-color-primary) 9%, var(--mp-color-surface)); text-decoration: none; }
.mp-front-course-image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center; }
.mp-front-course-image .mp-card-image-placeholder { min-height: 0; aspect-ratio: 16 / 9; }
.mp-front-course-body { display: flex; flex: 1; padding: 18px; flex-direction: column; }
.mp-front-course-body h3 { margin: 0 0 8px; font-size: 1.08rem; font-weight: 400; line-height: 1.5; }
.mp-front-course-body h3 a { color: var(--mp-color-text); text-decoration: none; }
.mp-front-course-body p { margin: 0 0 16px; color: var(--mp-color-muted); font-size: .9rem; }
.mp-front-course-more { display: inline-flex; min-height: 38px; margin-top: auto; padding: 7px 14px; align-self: flex-start; align-items: center; justify-content: center; border: 1px solid var(--mp-color-button); border-radius: 8px; background: transparent; color: var(--mp-color-button); font-weight: 400; line-height: 1.4; text-decoration: none; }
.mp-front-course-more:hover, .mp-front-course-more:focus { background: var(--mp-color-button); color: #fff; }
.mp-widget-search .search-form,.widget_manabipress_search .search-form { display: flex; align-items: stretch; gap: 8px; }
.mp-widget-search .search-form label,.widget_manabipress_search .search-form label { flex: 1; min-width: 0; }
.mp-widget-search .search-field,.widget_manabipress_search .search-field { width: 100%; height: 44px; }
.mp-widget-search .search-submit,.widget_manabipress_search .search-submit { min-height: 44px; padding: 8px 14px; white-space: nowrap; }
.mp-front-hero { margin: 0 0 28px; overflow: hidden; border-radius: var(--mp-radius); box-shadow: var(--mp-shadow); background: var(--mp-color-surface); }
.mp-front-hero img { display: block; width: 100%; height: auto; }
.mp-widget > :last-child { margin-bottom: 0; }
.mp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.mp-archive-header { min-width: 0; margin-bottom: 24px; }
.mp-archive-title { margin: 0; color: var(--mp-color-text); font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.3; }
.mp-course-archive-hero { position: relative; margin-top: 24px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--mp-color-primary) 20%, var(--mp-color-border)); border-radius: 18px; background: var(--mp-color-surface); box-shadow: 0 20px 45px rgba(23,32,51,.12); }
.mp-course-archive-hero::after { position: absolute; inset: auto 0 0; height: 5px; background: linear-gradient(90deg,var(--mp-color-primary),var(--mp-color-accent)); content: ""; }
.mp-course-archive-hero > img,.mp-course-archive-hero > .mp-card-image-placeholder { display: flex; width: 100%; min-height: clamp(190px,25vw,300px); aspect-ratio: 16/5; object-fit: cover; object-position: center; }
.mp-course-archive-hero .mp-card-image-placeholder strong { max-width: 80%; font-size: clamp(1.35rem,3vw,2.35rem); }
.mp-course-archive-hero .mp-card-image-placeholder small { font-size: .78rem; }
.mp-course-archive-description { margin-top: 18px; padding: clamp(16px,2.5vw,24px); border-left: 5px solid var(--mp-color-accent); border-radius: 0 14px 14px 0; background: color-mix(in srgb,var(--mp-color-primary) 6%,var(--mp-color-surface)); color: var(--mp-color-text); line-height: 1.9; }
.mp-course-archive-description p { margin: 0; }
.mp-archive-description { margin-top: 8px; color: var(--mp-color-muted); }
.mp-archive-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; }
.mp-archive-card { overflow: hidden; border: 1px solid var(--mp-color-border); border-radius: 16px; background: var(--mp-color-surface); box-shadow: var(--mp-shadow); }
.mp-archive-image, .mp-archive-image img { display: block; width: 100%; }
.mp-archive-image { background: color-mix(in srgb, var(--mp-color-primary) 9%, var(--mp-color-surface)); text-decoration: none; }
.mp-archive-image img { aspect-ratio: 16 / 9; object-fit: cover; }
.mp-archive-image-placeholder { position: relative; display: flex; min-height: 170px; padding: 22px; overflow: hidden; flex-direction: column; align-items: center; justify-content: center; gap: 10px; background: linear-gradient(135deg, var(--mp-color-primary-dark), var(--mp-color-primary) 58%, var(--mp-color-accent)); color: #fff; text-align: center; font-weight: 800; }
.mp-archive-image-placeholder.mp-card-image-placeholder--rank-1 { background-image: linear-gradient(135deg, #092b55, #155b9f 58%, #3b8ed8); background-position: center; background-size: cover; }
.mp-archive-image-placeholder::before { position: absolute; width: 62%; aspect-ratio: 1; right: -20%; bottom: -75%; border: 2px solid rgba(255,255,255,.18); border-radius: 50%; box-shadow: 0 0 0 22px rgba(255,255,255,.06), 0 0 0 48px rgba(255,255,255,.04); content: ""; }
.mp-archive-image-placeholder small, .mp-archive-image-placeholder strong { position: relative; z-index: 1; }
.mp-archive-image-placeholder small { font-size: .68rem; letter-spacing: .16em; opacity: .78; }
.mp-archive-image-placeholder strong { max-width: 94%; font-size: clamp(.92rem, 2vw, 1.35rem); line-height: 1.45; text-wrap: balance; }
.mp-archive-card-body { padding: 18px; }
.mp-archive-card-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 10px; color: var(--mp-color-muted); font-size: .78rem; }
.mp-archive-card-meta time { margin-left: auto; }
.mp-archive-badge { display: inline-flex; padding: 2px 8px; border-radius: 99px; font-weight: 700; }
.mp-archive-badge--course, .mp-archive-badge--member { background: color-mix(in srgb, var(--mp-color-primary) 11%, transparent); color: var(--mp-color-primary); }
.mp-archive-badge--free { background: color-mix(in srgb, var(--mp-color-accent) 20%, transparent); color: #0f766e; }
.mp-archive-card-title { margin: 0 0 8px; font-size: 1.1rem; line-height: 1.5; }
.mp-archive-card-title a { text-decoration: none; }
.mp-archive-card-excerpt { margin: 0; color: var(--mp-color-muted); font-size: .9rem; }
.mp-search-header { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,380px); margin-bottom: 28px; padding: clamp(22px,4vw,36px); align-items: center; gap: 28px; border: 1px solid var(--mp-color-border); border-radius: var(--mp-radius); background: var(--mp-color-surface); box-shadow: var(--mp-shadow); }
.mp-search-eyebrow { display: block; margin-bottom: 5px; color: var(--mp-color-primary); font-size: .75rem; font-weight: 800; letter-spacing: .14em; }
.mp-search-title { margin: 0; color: var(--mp-color-text); font-size: clamp(1.55rem,3.2vw,2.35rem); line-height: 1.35; letter-spacing: -.02em; overflow-wrap: anywhere; }
.mp-search-title span { color: var(--mp-color-primary); }
.mp-search-count { margin: 10px 0 0; color: var(--mp-color-muted); font-size: .9rem; }
.mp-search-refine .search-form { display: flex; padding: 7px; align-items: stretch; gap: 7px; border: 1px solid var(--mp-color-border); border-radius: 13px; background: var(--mp-color-background); }
.mp-search-refine .search-form label { flex: 1; min-width: 0; }
.mp-search-refine .search-field { height: 44px; border: 0; background: var(--mp-color-surface); box-shadow: none; }
.mp-search-refine .search-submit { min-height: 44px; padding: 8px 16px; white-space: nowrap; }
.mp-search-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; }
.mp-search-result-card { position: relative; display: grid; box-sizing: border-box; width: 100%; min-width: 0; overflow: hidden; grid-template-columns: minmax(180px,31%) minmax(0,1fr); border: 1px solid #dbe6f2; border-radius: 18px; background: linear-gradient(135deg,#fff 0%,#f5f9ff 100%); color: var(--mp-color-text); text-decoration: none; box-shadow: 0 12px 30px rgba(15,58,96,.10); transition: transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.mp-search-result-card::before { position: absolute; z-index: 2; inset: 0 auto 0 0; width: 6px; background: linear-gradient(180deg,var(--mp-color-primary),var(--mp-color-accent)); content: ""; }
.mp-search-result-card::after { position: absolute; right: -70px; top: -85px; width: 210px; height: 210px; border-radius: 50%; background: radial-gradient(circle,color-mix(in srgb,var(--mp-color-accent) 14%,transparent),transparent 68%); content: ""; pointer-events: none; }
.mp-search-result-card:hover,.mp-search-result-card:focus { border-color: color-mix(in srgb,var(--mp-color-accent) 55%,#dbe6f2); color: var(--mp-color-text); box-shadow: 0 18px 38px rgba(15,58,96,.16); transform: translateY(-3px); }
.mp-search-result-card:focus-visible { outline: 3px solid color-mix(in srgb,var(--mp-color-accent) 40%,transparent); outline-offset: 3px; }
.mp-search-result-card .mp-link-card__image { display: grid; min-height: 180px; place-items: center; overflow: hidden; background: #eaf1f8; }
.mp-search-result-card .mp-link-card__image > img { display: block; width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: center; transition: transform .25s ease; }
.mp-search-result-card:hover .mp-link-card__image > img { transform: scale(1.025); }
.mp-search-card-placeholder { position: relative; display: flex; width: 100%; height: 100%; min-height: 180px; padding: 24px; overflow: hidden; flex-direction: column; align-items: center; justify-content: center; gap: 9px; background: linear-gradient(135deg,#0c315c,#1765a9 62%,#2f8bca); color: #fff; text-align: center; }
.mp-search-card-placeholder::after { position: absolute; right: -15%; bottom: -65%; width: 58%; aspect-ratio: 1; border: 2px solid rgba(255,255,255,.2); border-radius: 50%; box-shadow: 0 0 0 24px rgba(255,255,255,.06),0 0 0 50px rgba(255,255,255,.04); content: ""; }
.mp-search-card-placeholder small,.mp-search-card-placeholder strong { position: relative; z-index: 1; }
.mp-search-card-placeholder small { font-size: .68rem; font-weight: 800; letter-spacing: .17em; opacity: .78; }
.mp-search-card-placeholder strong { max-width: 92%; font-size: clamp(1rem,2vw,1.35rem); line-height: 1.5; text-wrap: balance; }
.mp-search-result-card .mp-link-card__body { position: relative; z-index: 1; display: flex; min-width: 0; padding: 21px 24px 19px 27px; flex-direction: column; justify-content: center; gap: 9px; }
.mp-search-result-card .mp-link-card__head,.mp-search-result-card .mp-link-card__footer { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 14px; }
.mp-search-result-card .mp-link-card__kind { display: inline-flex; width: max-content; max-width: 100%; padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb,var(--mp-color-primary) 10%,#fff); color: var(--mp-color-primary); font-size: .72rem; font-weight: 900; letter-spacing: .08em; line-height: 1.35; }
.mp-search-result-card .mp-link-card__arrow { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border: 1px solid color-mix(in srgb,var(--mp-color-accent) 32%,#dbe6f2); border-radius: 50%; background: #fff; color: var(--mp-color-accent); font-size: 1rem; font-weight: 900; transition: color .18s ease,background .18s ease,transform .18s ease; }
.mp-search-result-card:hover .mp-link-card__arrow,.mp-search-result-card:focus .mp-link-card__arrow { background: var(--mp-color-accent); color: #fff; transform: translateX(2px); }
.mp-search-result-card .mp-link-card__title { font-size: clamp(1.03rem,1.8vw,1.18rem); font-weight: 850; line-height: 1.5; }
.mp-search-result-card .mp-link-card__description { display: -webkit-box; overflow: hidden; color: #53677d; font-size: .88rem; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.mp-search-result-card .mp-link-card__footer { margin-top: 2px; padding-top: 9px; border-top: 1px solid rgba(148,163,184,.24); }
.mp-search-result-card .mp-link-card__url { min-width: 0; overflow: hidden; color: #718096; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
.mp-search-result-card .mp-link-card__action { flex: 0 0 auto; color: var(--mp-color-accent); font-size: .78rem; font-weight: 900; }
.mp-search-empty h2 { margin-top: 0; }
.mp-child-category-intro { margin: 0 0 18px; color: var(--mp-color-muted); }
.mp-child-category-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 18px; }
.mp-child-category-card { display: flex; min-height: 132px; padding: 22px; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid var(--mp-color-border); border-left: 7px solid var(--mp-color-primary); border-radius: 14px; background: var(--mp-color-surface); color: var(--mp-color-text); text-decoration: none; box-shadow: var(--mp-shadow); }
.mp-child-category-card:hover, .mp-child-category-card:focus { border-color: var(--mp-color-primary); color: var(--mp-color-primary); transform: translateY(-1px); }
.mp-child-category-card strong { display: block; font-size: 1.08rem; line-height: 1.5; }
.mp-child-category-card span { flex: 0 0 auto; color: var(--mp-color-muted); font-size: .85rem; white-space: nowrap; }
.mp-entry-title { margin-top: 0; font-size: clamp(1.65rem, 3.5vw, 2.75rem); line-height: 1.25; letter-spacing: -.025em; }
.mp-dashboard-page > .mp-entry-title {
	margin: 0 0 28px;
	padding: 16px 20px;
	border-left: 7px solid var(--mp-color-primary);
	border-radius: 0 13px 13px 0;
	background: color-mix(in srgb, var(--mp-color-primary) 11%, var(--mp-color-surface));
	font-size: clamp(1.65rem, 3vw, 2.35rem);
}
.mp-lesson-title-band {
	margin: 0 0 28px;
	padding: 16px 20px;
	border-left: 7px solid var(--mp-color-primary);
	border-radius: 0 13px 13px 0;
	background: color-mix(in srgb, var(--mp-color-primary) 11%, var(--mp-color-surface));
}
.mp-entry-eyebrow {
	display: block;
	margin-bottom: 3px;
	color: var(--mp-color-primary);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .08em;
}
.mp-lesson-title-band .mp-entry-title {
	margin: 0;
	font-size: clamp(1.65rem, 3vw, 2.35rem);
}
.mp-entry-content > h2,
body#tinymce.wp-editor > h2 {
	margin: 2em 0 .8em;
	padding: .45em .7em;
	border-left: 7px solid var(--mp-color-primary);
	background: color-mix(in srgb, var(--mp-color-primary) 11%, transparent);
	color: var(--mp-color-primary);
}
.mp-entry-content > h3,
body#tinymce.wp-editor > h3 {
	margin: 1.8em 0 .7em;
	padding-bottom: .4em;
	border-bottom: 3px solid var(--mp-color-primary);
	color: var(--mp-color-primary);
}
.mp-entry-content > h4,
body#tinymce.wp-editor > h4 {
	position: relative;
	margin: 1.6em 0 .6em;
	padding-left: 1em;
	color: var(--mp-color-primary);
}
.mp-entry-content > h4::before,
body#tinymce.wp-editor > h4::before {
	position: absolute;
	top: .65em;
	left: 0;
	width: .45em;
	height: .45em;
	border-radius: 50%;
	background: currentColor;
	content: "";
}
.mp-entry-thumbnail { margin: 0 0 28px; overflow: hidden; border-radius: 14px; }
.mp-entry-thumbnail img { display: block; width: 100%; height: auto; }
.mp-entry-thumbnail--auto .mp-card-image-placeholder { min-height: clamp(240px,38vw,440px); aspect-ratio: 16/9; }
.mp-entry-thumbnail--auto .mp-card-image-placeholder small { max-width: 88%; font-size: clamp(.72rem,1.6vw,1rem); }
.mp-entry-thumbnail--auto .mp-card-image-placeholder strong { max-width: 88%; font-size: clamp(1.35rem,4vw,2.7rem); }
.mp-entry-content { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.mp-entry-content img { max-width: 100%; height: auto; }
.mp-entry-content iframe[src*="youtube.com"],
.mp-entry-content iframe[src*="youtube-nocookie.com"],
.mp-entry-content iframe[src*="youtu.be"],
.mp-entry-content iframe[src*="vimeo.com"] {
	display: block;
	width: 100% !important;
	max-width: 840px !important;
	height: auto !important;
	aspect-ratio: 16 / 9;
	border: 0;
}
.mp-entry-content video,
.mp-entry-content .wp-video,
.mp-entry-content .wp-video-shortcode,
.mp-entry-content .mejs-container,
.mp-entry-content .video-js {
	display: block;
	width: 100% !important;
	max-width: 840px !important;
	height: auto;
}
.mp-entry-content object,
.mp-entry-content embed {
	display: block;
	width: 100% !important;
	max-width: 840px !important;
	height: auto !important;
	aspect-ratio: 16 / 9;
}
.mp-entry-content table { display: block; max-width: 100%; overflow-x: auto; }
.mp-entry-meta { color: var(--mp-color-muted); font-size: .92rem; }
.mp-button, input[type="submit"], button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 20px;
	border: 0; border-radius: 12px; background: var(--mp-color-button); color: #fff; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer;
}
.mp-button:hover, .mp-button:focus, input[type="submit"]:hover, input[type="submit"]:focus, button:hover, button:focus { background: var(--mp-color-button-hover); }
input[type="text"], input[type="email"], input[type="password"], textarea, select { width: 100%; padding: 12px 14px; border: 1px solid var(--mp-color-border); border-radius: 10px; background: #fff; font: inherit; }
.mp-site-footer { padding-block: 32px; background: var(--mp-color-footer); color: #cbd5e1; }
.mp-footer-widgets { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 24px; padding-bottom: 26px; margin-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,.13); }
.mp-footer-widget-title { margin: 0 0 12px; color: #fff; font-size: 1rem; }
.mp-footer-widget :where(a) { color: #e2e8f0; }
.mp-footer-widget :where(p,ul) { margin: 0; }
.mp-footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.mp-footer-company { display: flex; gap: 8px 18px; flex-wrap: wrap; }
.mp-footer-company a,.mp-footer-navigation a { color: #e2e8f0; text-decoration: none; }
.mp-footer-company a:hover,.mp-footer-navigation a:hover { color: #fff; text-decoration: underline; }
.mp-footer-navigation ul { display: flex; gap: 10px 22px; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.alignwide { width: min(1280px, calc(100vw - 32px)); max-width: none; margin-left: 50%; transform: translateX(-50%); }

/* Global shape presets selected in Appearance > Customize > ManabiPress Layout. */
body.mp-shape-soft { --mp-radius: 10px; --mp-shadow: 0 12px 30px rgba(23, 32, 51, 0.07); }
body.mp-shape-square { --mp-radius: 0; --mp-shadow: 0 10px 24px rgba(23, 32, 51, 0.06); }
body.mp-shape-minimal { --mp-radius: 3px; --mp-shadow: none; }

body.mp-shape-soft :is(.mp-widget,.mp-archive-card,.mp-search-header,.mp-search-result-card,.mp-child-category-card,.mp-front-hero,.mp-entry-thumbnail,.manabipress-course-card,.mp-front-course-card,.mp-front-lesson-card,.mp-widget-course-card,.mp-course-lesson-list>li,.manabipress-notice,.manabipress-chatwork-support,.mp-youtube-popup__open,.manabipress-dashboard__welcome,.manabipress-dashboard__progress-hero,.manabipress-stats>div) { border-radius: 10px; }
body.mp-shape-soft :is(.mp-learning-sidebar .mp-widget-title,.mp-front-widget>.mp-widget-title,.mp-dashboard-page>.mp-entry-title,.mp-lesson-title-band) { border-radius: 0 9px 9px 0; }
body.mp-shape-soft :is(.mp-button,.manabipress-link-button,.mp-decor-button,input[type="submit"],button,input,textarea,select) { border-radius: 8px; }

body.mp-shape-square :is(.mp-card,.mp-widget,.mp-archive-card,.mp-search-header,.mp-search-result-card,.mp-child-category-card,.mp-front-hero,.mp-entry-thumbnail,.manabipress-course-card,.mp-front-course-card,.mp-front-lesson-card,.mp-widget-course-card,.mp-course-lesson-list>li,.manabipress-notice,.manabipress-chatwork-support,.mp-youtube-popup__open,.manabipress-dashboard__welcome,.manabipress-dashboard__progress-hero,.manabipress-stats>div,.mp-learning-sidebar .mp-widget-title,.mp-front-widget>.mp-widget-title,.mp-dashboard-page>.mp-entry-title,.mp-lesson-title-band,.mp-button,.manabipress-link-button,.mp-decor-button,input[type="submit"],button,input,textarea,select) { border-radius: 0; }

body.mp-shape-minimal :is(.mp-card,.mp-widget,.mp-archive-card,.mp-search-header,.mp-search-result-card,.mp-child-category-card,.mp-front-hero,.mp-entry-thumbnail,.manabipress-course-card,.mp-front-course-card,.mp-front-lesson-card,.mp-widget-course-card,.mp-course-lesson-list>li,.manabipress-notice,.manabipress-chatwork-support,.mp-youtube-popup__open,.manabipress-dashboard__welcome,.manabipress-dashboard__progress-hero,.manabipress-stats>div) { border-radius: 3px; box-shadow: none; }
body.mp-shape-minimal :is(.mp-learning-sidebar .mp-widget-title,.mp-front-widget>.mp-widget-title,.mp-dashboard-page>.mp-entry-title,.mp-lesson-title-band,.mp-button,.manabipress-link-button,.mp-decor-button,input[type="submit"],button,input,textarea,select) { border-radius: 2px; }
@media (max-width: 800px) {
	.mp-grid { grid-template-columns: 1fr; }
	.mp-front-course-grid { grid-template-columns: 1fr; }
	.mp-archive-grid { grid-template-columns: 1fr; }
	.mp-search-header { grid-template-columns: 1fr; gap: 20px; }
	.mp-learning-layout { grid-template-columns: 1fr; }
	.mp-header-inner { position: relative; min-height: 66px; }
	.custom-logo { max-height: 38px; }
	.mp-menu-toggle { display: block; flex: 0 0 auto; }
	.mp-nav { display: none; position: absolute; top: calc(100% - 2px); right: 0; left: 0; padding: 10px; border: 1px solid var(--mp-color-border); border-radius: 14px; background: var(--mp-color-surface); box-shadow: var(--mp-shadow); }
	.mp-nav.is-open { display: block; }
	.mp-nav ul { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
	.mp-nav a { padding: 12px 14px; border-radius: 9px; background: color-mix(in srgb, var(--mp-color-primary) 5%, transparent); }
	.mp-main { padding-block: 28px 52px; }
	.mp-course-archive-hero > img,.mp-course-archive-hero > .mp-card-image-placeholder { min-height: 180px; aspect-ratio: 16/8; }
	.mp-course-archive-hero .mp-card-image-placeholder strong { max-width: 92%; font-size: clamp(1.15rem,6vw,1.65rem); }
}
@media (max-width: 520px) {
	.mp-search-refine .search-form { display: grid; }
	.mp-search-refine .search-submit { width: 100%; }
	.mp-search-result-card { grid-template-columns: 1fr; }
	.mp-search-result-card .mp-link-card__image { min-height: 0; aspect-ratio: 16/9; }
	.mp-search-card-placeholder { min-height: 0; aspect-ratio: 16/9; }
	.mp-search-result-card .mp-link-card__body { padding: 18px 17px 16px 20px; }
	.mp-search-result-card .mp-link-card__title { font-size: 1rem; }
	.mp-search-result-card .mp-link-card__description { -webkit-line-clamp: 3; }
	.mp-search-result-card .mp-link-card__action { display: none; }
}
