/*
Theme Name: miyell
Template: twentytwentyfive
Theme URI:
Author:
Author URI:
Description: Child theme for preserving original HTML/CSS/JS structure while minimizing parent interference.
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: flex-base
*/
@charset "utf-8";
/* ============================
   Global Styles – style.css
   ============================ */

   :root {
   	--color-primary-dark: #12864e;
   	--color-primary: #21b573; /* Base green */
   	--color-primary-light: #8be0b0;

   	--color-bg: #ffffff;
   	--color-text: #111111;
   	--glass-bg: rgba(255, 255, 255, 0.3);
   }

/* Reset & base */
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Poppins","Zen Kaku Gothic New",sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6}
ul{list-style:none}a{text-decoration:none;color:inherit}


/* =========================
   Services – カードごとのアクセント色（SDGs連動）
   ※ 既に :root に --sdg-* がある前提。なければ fallback で動きます。
   ========================= */
   .services .service-card{ --card-accent: var(--color-primary, #21b573); }

/* 見出しとボトムバーにアクセント適用（最低限の復旧） */
.services .service-card h3{ color: var(--card-accent); }
.services .service-card a{ display:block; border-radius:14px; overflow:hidden; background:#fff; border:1px solid #e6e8ec; box-shadow:0 6px 18px rgba(0,0,0,.06); transition: box-shadow .2s, transform .12s, border-color .2s; }
.services .service-card a:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.10); border-color: rgba(0,0,0,.08); }
.services .service-card a::after{ content:""; display:block; height:3px; background:var(--card-accent); }

/* 割当（必要なら色だけ入れ替えてください） */
.service-card.fes    { --card-accent: var(--sdg-11, #FD9D24); } /* 都市とコミュニティ */
.service-card.school { --card-accent: var(--sdg-4,  #C5192D); } /* 教育 */
.service-card.sports { --card-accent: var(--sdg-3,  #4C9F38); } /* 健康・スポーツ連想 */
.service-card.ticket { --card-accent: var(--sdg-12, #BF8B2E); } /* 消費/循環のニュアンス */
.service-card.shop   { --card-accent: var(--sdg-8,  #A21942); } /* 働きがい・経済 */
/* Services – テキストもアクセント色に連動 */
.services .service-card{
	/* 既存: --card-accent は各カードで上書きされる */
	--card-ink: var(--card-accent);
	--card-ink-weak: color-mix(in srgb, var(--card-accent) 32%, #1f2937); /* p用に少し落とす */
}

.services .service-card h3{ color: var(--card-ink); }
.services .service-card p{ color: var(--card-ink-weak); }
.services .service-card a{ color: inherit; }

/* hover時は見出しだけ少し明るく */
@supports (color: color-mix(in srgb, #000, #fff)){
	.services .service-card a:hover h3{
		color: color-mix(in srgb, var(--card-accent) 88%, #fff);
	}
}
/* color-mix 非対応ブラウザのフォールバック（pは既定色に） */
@supports not (color: color-mix(in srgb, #000, #fff)){
	.services .service-card p{ color:#4b5563; }
}

/* ============================
   Header – Glassmorphism（修正版）
   ============================ */
   .glass-header{
   	--nav-h: 36px;                         /* ← ナビの共通高さ */
   	position:fixed; top:15px; left:15px; right:15px;
   	display:flex; justify-content:space-between; align-items:center;
   	padding:.55rem 1rem;                   /* 高さに合わせて微調整 */
   	border-radius:15px;
   	background:var(--glass-bg);
   	backdrop-filter:blur(12px) saturate(180%);
   	-webkit-backdrop-filter:blur(12px) saturate(180%);
   	border:1px solid rgba(255,255,255,.4);
   	z-index:1000;
   }
   .logo{display:flex; align-items:center; gap:.5rem; font-weight:700; font-size:1.125rem}
   .logo img{width:40px; height:auto}

/* ===== ナビ本体 ===== */
#navList{
	display:flex; align-items:center; gap:1.1rem;
	margin:0; padding:0; list-style:none;
}
#navList > li{ display:flex; }          /* 高さ合わせ用 */

/* 既存の全リンク下線ホバーを無効化（安全ネット） */
.glass-header nav a::after,
.glass-header nav a:hover::after{ content:none !important; }

/* 通常リンク（非CTA） */
#navList > li:not(.nav-cta) > a{
	display:inline-flex; align-items:center; justify-content:center;
	height:var(--nav-h); padding:0 .45rem;
	font-weight:700; line-height:1; border-radius:999px; position:relative;
}
/* 底線ホバーは「非CTA」にのみ適用 */
#navList > li:not(.nav-cta) > a::after{
	content:""; position:absolute; left:.55rem; right:.55rem; bottom:6px; height:2px;
	background:var(--color-primary); transform:scaleX(0); transform-origin:left center;
	transition:transform .25s;
}
#navList > li:not(.nav-cta) > a:hover::after{ transform:scaleX(1); }

/* CTAボタン（高さを nav と完全一致） */
#navList .nav-cta a{
	display:inline-flex; align-items:center; justify-content:center;
	height:var(--nav-h); padding:0 14px; line-height:1;
	border-radius:999px; font-weight:800; letter-spacing:.01em;
	box-shadow:0 6px 16px rgba(0,0,0,.12);
	transition:transform .12s, box-shadow .12s, filter .2s;
}
#navList .nav-cta--primary a{
	background:var(--color-primary,#21b573); color:#fff; border:0;
}
#navList .nav-cta--outline a{
	background:#fff; color:var(--color-primary,#21b573);
	border:2px solid var(--color-primary,#21b573);
}
#navList .nav-cta a:hover{ transform:translateY(-1px); box-shadow:0 10px 22px rgba(0,0,0,.16); }

/* アイコン（任意・既存の絵文字指定を活かす） */
#navList a[href*="/usces-member/?usces_page=newmember"]::before{ content:"NEW"; font-size:.7rem; font-weight:800; background:#fff; color:var(--color-primary); border:1px solid var(--color-primary); border-radius:999px; padding:.1em .45em; margin-right:.45em; }
#navList a[href*="/usces-member/"]:not([href*="newmember"])::before{ content:"🔐"; margin-right:.35em; }

/* ハンバーガー（押下で × に変形） */
.burger{
	display:none;
	position:relative;
	width:28px; height:22px;
	cursor:pointer;
	-webkit-tap-highlight-color: transparent;
	z-index:100002; /* SPメニュー上 */
}
.burger span{
	position:absolute; left:0;
	width:100%; height:2px; border-radius:2px;
	background:var(--color-text);
	transition:transform .22s ease, opacity .22s ease;
}
.burger span:nth-child(1){ top:0; }
.burger span:nth-child(2){ top:10px; }
.burger span:nth-child(3){ bottom:0; }

/* メニュー展開時：×に */
body.nav-open .burger span:nth-child(1){
	transform: translateY(10px) rotate(45deg);
}
body.nav-open .burger span:nth-child(2){
	opacity:0;
}
body.nav-open .burger span:nth-child(3){
	transform: translateY(-10px) rotate(-45deg);
}

/* 表示ブレークポイント */
@media (max-width:768px){
	.burger{ display:flex; }
}

/* ============================
   Hero Section
   ============================ */
   .hero{position:relative;height:calc(100vh + 0px);display:flex;justify-content:center;align-items:center;text-align:center;overflow:hidden}

/* Background slideshow */
.slides{
	position: absolute;
	left: 0;
	right: 0;
	/* top: -20%; */
	height: 161%;
	z-index: -3;
}
.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;animation:slideShow 15s infinite}
.slide:nth-child(1){animation-delay:0s}.slide:nth-child(2){animation-delay:5s}.slide:nth-child(3){animation-delay:10s}
@keyframes slideShow{0%{opacity:0}10%{opacity:1}35%{opacity:1}45%{opacity:0}100%{opacity:0}}

/* Dark overlay */
.hero::before{content:"";position:absolute;inset:0;z-index:-2}

/* ============================
   Outline Blob (double stroke)
   ============================ */
   .blob{position:absolute;top:50%;left:50%;width:550px;height:420px;transform:translate(-50%,-50%);background:none;border:6px solid var(--color-primary);border-radius:46% 54% 58% 42% / 45% 55% 45% 55%;animation:blobOutline1 6s ease-in-out infinite;z-index:1}
   .blob::after{content:"";position:absolute;inset:-18px;border:4px solid var(--color-primary-light);border-radius:inherit;animation:blobOutline2 8s ease-in-out infinite;}
   @keyframes blobOutline1{0%{border-radius:46% 54% 58% 42% / 45% 55% 45% 55%;transform:translate(-50%,-50%) rotate(0deg) scale(1)}25%{border-radius:60% 40% 50% 50% / 50% 60% 40% 50%;transform:translate(-50%,-52%) rotate(5deg) scale(1.08)}50%{border-radius:50% 50% 40% 60% / 60% 45% 55% 40%;transform:translate(-48%,-50%) rotate(-6deg) scale(.9)}75%{border-radius:42% 58% 48% 52% / 55% 45% 55% 45%;transform:translate(-50%,-48%) rotate(8deg) scale(1.1)}100%{border-radius:46% 54% 58% 42% / 45% 55% 45% 55%;transform:translate(-50%,-50%) rotate(0deg) scale(1)}}
   @keyframes blobOutline2{0%{border-radius:50% 50% 40% 60% / 55% 45% 60% 40%;transform:rotate(0deg) scale(1)}25%{border-radius:45% 55% 60% 40% / 50% 60% 40% 50%;transform:rotate(-6deg) scale(1.12)}50%{border-radius:60% 40% 50% 50% / 40% 50% 60% 50%;transform:rotate(8deg) scale(0.9)}75%{border-radius:55% 45% 45% 55% / 60% 40% 50% 50%;transform:rotate(-4deg) scale(1.05)}100%{border-radius:50% 50% 40% 60% / 55% 45% 60% 40%;transform:rotate(0deg) scale(1)}}

/* ============================
   Hero Text
   ============================ */
   .hero-inner{position:relative;z-index:2;color:#fff}
   .hero h1{font-size:clamp(1.8rem,5vw,3.2rem);font-weight:700;margin-bottom:1rem;text-shadow:0 2px 6px rgba(0,0,0,.3)}
   .hero p{font-size:clamp(1rem,2.5vw,1.25rem);line-height:1.7;margin-bottom:2rem;text-shadow:0 2px 6px rgba(0,0,0,.3)}
   .cta{display:inline-block;padding:.75rem 2rem;background:var(--color-primary);color:#fff;border-radius:999px;font-weight:600;transition:background .25s}
   .cta:hover{background:#16955a}
/* ==== Parallax helper ==== */
.parallax {
	will-change: transform;   /* パフォーマンス向上 */
}

/* =============================
   Banner Slider
   ============================= */
   .banner-wrap{
   	position:relative;
   	width:100%;
   	padding: 2rem 0;
   	background: #f7fdf9;
   }

/* ← → ボタン */
.banner-nav{
	position:absolute;top:50%;transform:translateY(-50%);
	width:48px;height:48px;font-size:1.8rem;
	background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;
	display:flex;justify-content:center;align-items:center;cursor:pointer;z-index:5;
}
.prev{left:10px}.next{right:10px}
.banner-nav:hover{background:rgba(0,0,0,.75)}

/* 可視領域 */
.banner-window{overflow:hidden;}

/* 横並びトラック */
.banner-track{
	display:flex;transition:transform .6s ease;
}

/* --- スライド設定 --- */
.banner-slide{flex:0 0 100%;}
.banner-slide img{width:100%;height:220px;object-fit:cover;}

/* PC：中央 60%・左右 20% 見切れ  */
@media(min-width:992px){
	.banner-window{padding:0 20%;}
	.banner-slide{flex:0 0 60%;margin: 0 10px;}
}

/* =============================
   About Us Section
   ============================= */
   .about {
   	position: relative;
   	padding: 3rem 2rem 8rem 2rem;
   	background: #f7fdf9;
   	overflow: hidden;
   }

   .about-inner {
   	max-width: 720px;
   	margin: 0 auto;
   	text-align: center;
   	color: var(--color-text);
   }

   .about h2 {
   	font-size: clamp(1.6rem, 4vw, 2.4rem);
   	font-weight: 700;
   	margin-bottom: 1.5rem;
   }

   .about p {
   	font-size: clamp(1rem, 2.2vw, 1.15rem);
   	line-height: 1.8;
   	margin-bottom: 1.25rem;
   }

/* ── 跳ねるロゴ（カエルっぽく「ぴょん → 待機」ループ） ─────────────── */
.frog-logo {
	position: absolute;
	bottom: 2rem;
	right: -120px;         /* スタートは画面外右   */
	width: 110px;
	height: auto;
	pointer-events: none;
	animation: frogHop 10s linear infinite;
}

/* 5 回ジャンプ : ぴょん(約1s) → 待機(約1s) の繰り返し */
@keyframes frogHop {
	/* === 1 回目 === */
	0%   { transform: translateX(0)     translateY(0)    rotate(0deg);   }
	5%   { transform: translateX(-10vw) translateY(-60px) rotate(-12deg);}
	10%  { transform: translateX(-20vw) translateY(0)     rotate(0deg);  }

	/* 10〜20% : 待機（着地後 1 秒ほど静止） */
	20%  { transform: translateX(-20vw) translateY(0); }

	/* === 2 回目 === */
	25%  { transform: translateX(-30vw) translateY(-65px) rotate(10deg); }
	30%  { transform: translateX(-40vw) translateY(0)      rotate(0deg); }

	/* 待機 */
	40%  { transform: translateX(-40vw) translateY(0); }

	/* === 3 回目 === */
	45%  { transform: translateX(-50vw) translateY(-60px) rotate(-8deg); }
	50%  { transform: translateX(-60vw) translateY(0)      rotate(0deg); }

	/* 待機 */
	60%  { transform: translateX(-60vw) translateY(0); }

	/* === 4 回目 === */
	65%  { transform: translateX(-70vw) translateY(-55px) rotate(10deg); }
	70%  { transform: translateX(-80vw) translateY(0)      rotate(0deg); }

	/* 待機 */
	80%  { transform: translateX(-80vw) translateY(0); }

	/* === 5 回目 === */
	85%  { transform: translateX(-90vw)  translateY(-50px) rotate(-6deg); }
	90%  { transform: translateX(-100vw) translateY(0)      rotate(0deg); }

	/* 90〜100% : 左端で静止 → ループで右側にワープ復帰 */
	100% { transform: translateX(0) translateY(0); }
}
/* =============================
   Services Section
   ============================= */
   .services {
   	display: flex;
   	gap: 1.25rem;
   	padding: 5rem 1rem;
   	justify-content: center;
   	flex-wrap: wrap;
   }

   .service-card {
   	flex: 1 1 180px;           /* 横並び & レスポンシブ */
   	max-width: 220px;
   	border-radius: 18px;
   	overflow: hidden;
   	transition: transform .25s;
   	text-align: center;
   }

   .service-card img {
   	width: 100%;
   	height: 140px;
   	object-fit: cover;
   }

   .service-card h3 {
   	margin: 0.75rem 0 0.5rem;
   	font-size: 1.1rem;
   	font-weight: 700;
   }

   .service-card p {
   	font-size: 0.9rem;
   	padding: 0 0.75rem 1.25rem;
   	line-height: 1.5;
   }

/* ─────────────────────────────
   Service card hover : キラッと光が走る
   ───────────────────────────── */

/* ① カード自体は動かさない */
.service-card:hover {
	transform: none;
}

/* ② 擬似要素で光ラインを生成 */
.service-card {
	position: relative;      /* 擬似要素の基準 */
	overflow: hidden;        /* 光がはみ出ないように */
}

.service-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: -70%;              /* 左外からスタート */
	width: 40%;
	height: 100%;
	background: rgba(255, 255, 255, 0.45);  /* 半透明白い光 */
	transform: skewX(-25deg);
	pointer-events: none;
}

/* ③ ホバー時、光が右へ通過 */
.service-card:hover::before {
	animation: shineSweep 0.9s ease-out forwards;
}

@keyframes shineSweep {
	0%   { left: -70%; }
	100% { left: 130%; }
}

.service-card a {
	display: block;
	color: #fff;
}
/* === Card Reveal Animation ============================ */
@keyframes cardFadeUp {
	0%   { opacity: 0; transform: translateY(40px); }
	100% { opacity: 1; transform: translateY(0); }
}

/* 初期状態は非表示 */
.service-card {
	opacity: 0;
	transform: translateY(40px);
}

/* .show が付与されたら順番に出現 */
.services.show .service-card {
	animation: cardFadeUp 0.6s ease-out forwards;
}

/* ずらし遅延（0.15s 間隔） */
.services.show .service-card:nth-child(1) { animation-delay: 0s;   }
.services.show .service-card:nth-child(2) { animation-delay: 0.15s;}
.services.show .service-card:nth-child(3) { animation-delay: 0.30s;}
.services.show .service-card:nth-child(4) { animation-delay: 0.45s;}
.services.show .service-card:nth-child(5) { animation-delay: 0.60s;}

/* =============================
   Cards Sections (Events / Classes)
   ============================= */
   .cards-section {
   	padding: 6rem 1.5rem;
   }

/* ───── 背景カラー ───── */
.events-bg  { background: #29bde0; }   /* SDG6 Blue */
.classes-bg { background: #4c9f38; }   /* SDG3 Green */

/* ───── タイトル ───── */
.section-title {
	text-align: center;
	font-size: clamp(1.6rem, 4vw, 2.4rem);
	font-weight: 700;
	margin: 0 auto 3rem;
	display: flex;  /* 目アイコン用 */
	align-items: center;
	gap: .4rem;
	justify-content: center;
}
.section-title-w {
	color: #fff;
}
/* 目アイコン */
.eye {
	width: 55px;
	animation: blink 4s infinite steps(1);
}
@keyframes blink {
	0%, 8%, 100% { transform: scaleY(1); }
	4%           { transform: scaleY(0.2); }
}

/* ───── Grid ───── */
.cards-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	z-index: 3;
	position: relative;
	margin: 0 auto;
	max-width: 1200px;
}

/* ───── Card ───── */
.card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 4px 14px rgba(0,0,0,.08);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform .25s, box-shadow .25s;
}
.card:hover {
	transform: translateY(-6px);
	box-shadow: 0 8px 20px rgba(0,0,0,.15);
}
.card img   { width: 100%; height: 160px; object-fit: cover; }
.card-body  { padding: 1rem; }
.card h3    { font-size: 1.05rem; font-weight: 700; margin-bottom: .5rem; }
.card p     { font-size: .9rem; line-height: 1.5; }

/* カード縁色 */
.card.event { border: 4px solid #29bde0; }
.card.class { border: 4px solid #4c9f38; }

/* ───── タグ ───── */
.tags { margin: .4rem 0 .6rem; }
.tag {
	display: inline-block;
	font-size: .7rem; font-weight: 600; color: #fff;
	border-radius: 999px; padding: 2px 10px; margin-right: 6px;
}
.tag.free  { background: #e5243b; } /* SDG1 */
.tag.kid   { background: #4c9f38; } /* SDG3 */
.tag.sport { background: #29bde0; } /* SDG6 */
.tag.study { background: #c5192d; } /* SDG4 */
.tag.grade { background: #fcca46; } /* SDG7 */

/* ========================================
   Events 背景：雲
   ======================================== */
   .events-bg { position: relative; overflow: hidden; }
   .events-bg::before,
   .events-bg::after {
   	content: "";
   	position: absolute; top: 8%;
   	width: 400px; height: 160px;
   	background: url("data:image/svg+xml;utf8,\
   		<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 160'>\
   		<path fill='white' d='M70 95a55 55 0 1 1 110 0h100a45 45 0 1 1 0 90H70a45 45 0 0 1 0-90Z'/>\
   		</svg>") no-repeat center/contain;
   	opacity: .8;      /* はっきり表示 */
   	animation: cloudMove 50s linear infinite;
   }
   .events-bg::after {
   	top: 55%;
   	opacity: .65;
   	animation-delay: -25s;
   }
   @keyframes cloudMove {
   	0% { transform: translateX(-50%); }
   	100% { transform: translateX(150%); }
   }

/* ========================================
   Classes 背景：森と動物
   ======================================== */
   .classes-bg { position: relative; overflow: hidden; }

/* 2 層で奥行き感 */
.classes-bg::before,
.classes-bg::after {
	content: "";
	position: absolute; bottom: 0;
	width: 100%; height: 150px;
	background: url("data:image/svg+xml;utf8,\
		<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 150'>\
		<g fill='white'>\
		<path d='M40 100a30 30 0 1 1 60 0v50H40Z'/>\
		<path d='M160 70a35 35 0 1 1 70 0v80h-70Z'/>\
		<circle cx='320' cy='95' r='45'/>\
		<rect x='430' y='25' width='65' height='125'/>\
		<circle cx='620' cy='105' r='40'/>\
		<path d=\"M730 90a30 30 0 1 1 60 0v60h-60Z\"/>\
		</g>\
		</svg>") repeat-x bottom/240px auto;
}
.classes-bg::before { opacity: .55; animation: forestMove 35s linear infinite; }
.classes-bg::after  { opacity: .35; background-size: 300px auto; animation: forestMove 60s linear infinite reverse; }

@keyframes forestMove {
	0% { background-position-x: 0; }
	100% { background-position-x: -240px; }
}
/* 一覧ボタン共通 */
.list-btn-wrap {
	text-align: center; 
	margin-top: 2rem;
	z-index: 999;
	position: relative;
}

.list-btn{
	display: inline-block;
	padding: 0.9rem 2.2rem;
	font-size: 1rem;
	font-weight: 700;
	color: #fff;
	background: var(--color-primary, #21b573);
	border-radius: 999px;
	text-decoration: none;
	transition: background 0.25s;
}
.list-btn:hover{ background:#16955a; }

/* ───── Scroll Fade-in ───── */
.scroll-fade {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity .8s ease-out, transform .8s ease-out;
}

/* 表示状態 */
.scroll-fade.show {
	opacity: 1;
	transform: translateY(0);
}

/* =============================
   Fixed LINE Button
   ============================= */
   .line-float {
   	position: fixed;
   	right: 20px;
   	bottom: 20px;
   	width: 96px;
   	height: 96px;
   	border-radius: 50%;
   	background: #06c755;
   	color: #fff;
   	display: flex;
   	justify-content: center;
   	align-items: center;
   	text-align: center;
   	font-size: 0.8rem;
   	font-weight: 700;
   	line-height: 1.2;
   	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
   	transition: transform 0.25s, box-shadow 0.25s;
   	z-index: 1200;
   }

   .line-float:hover {
   	transform: translateY(-4px);
   	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.25);
   }

/* NEW: 突破バッジ */
.line-badge {
	position: absolute;
	top: -22px;           /* 円の上に配置 */
	left: 50%;
	transform: translateX(-50%);
	font-size: 0.7rem;
	font-weight: 700;
	color: #fff;
	background: #e5243b;  /* SDG1 レッドで目立たせる */
	padding: 2px 8px;
	border-radius: 999px;
	white-space: nowrap;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.line-text {
	pointer-events: none;
}
/* ───────── SDGs Section ──────── */
.sdgs-bg{
	padding: 6rem 1.5rem;
	background:#f7f7ff;
	text-align:center;
}

.sdgs-list{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:1.5rem;
	max-width: 960px;
	margin:0 auto;
}

.sdg-item{
	flex:0 0 240px;
	background:#fff;
	border-radius:14px;
	box-shadow:0 4px 14px rgba(0,0,0,.08);
	padding:1.5rem 1rem;
	transition:transform .25s;
}
.sdg-item:hover{transform:translateY(-6px);}

.sdg-icon{
	display:inline-block;
	font-size:2rem;
	font-weight:700;
	color:#fff;
	width:48px;height:48px;
	line-height:48px;
	border-radius:8px;
	margin-bottom:.75rem;
}

/* 各 SDG カラー */
.sdg-3  .sdg-icon{background:#4c9f38;}
.sdg-4  .sdg-icon{background:#c5192d;}
.sdg-17 .sdg-icon{background:#19486a;}

.sdg-item p{font-size:.9rem;line-height:1.6;}
/* ───────── News Section ──────── */
.news-bg{
	padding: 6rem 1.5rem;
	background: #fafafa;
}
.news-list{
	max-width: 720px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

/* news-card を <a> 対応に */
.news-card{
	display: block;                      /* a をブロックに */
	background: #fff;
	padding: 1.25rem 1rem;
	border-left: 6px solid #29bde0;
	box-shadow: 0 3px 12px rgba(0,0,0,.06);
	text-decoration: none;
	color: inherit;
	transition: transform .25s;
}
.news-card:hover{
	transform: translateY(-4px);
}

.news-card h3{
	font-size: 1rem;
	margin: .25rem 0;
}

.news-date{
	font-size: .8rem;
	color: #666;
}

.news-cat{
	font-size: .7rem;
	font-weight: 700;
	color: #fff;
	padding: 2px 10px;
	border-radius: 999px;
	margin-left: .5rem;
}
.cat-info  { background: #29bde0; }
.cat-report{ background: #4c9f38; }

/* ───────── FAQ Section ──────── */
.faq-bg{padding:6rem 1.5rem;background:#fff;}
.faq-list{max-width:720px;margin:0 auto;}
.faq-item{border-bottom:1px solid #e0e0e0;}
.faq-q{
	width:100%;text-align:left;background:none;border:none;
	font-size:1rem;font-weight:700;padding:1rem 0;cursor:pointer;
	position:relative;color:#111;
}
.faq-q::after{
	content:"+";position:absolute;right:0;top:1rem;font-size:1.2rem;
	transition:transform .25s;
}
.faq-item.open .faq-q::after{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease;}
.faq-a p{padding-bottom:1rem;}
/* ───────── Sponsors Section ──────── */
.sponsor-bg{
	padding:6rem 1.5rem;
	background:#fafafa;
	text-align:center;
}

/* 静的ロゴグリッド */
.logo-grid{
	display:flex;
	flex-wrap:wrap;
	gap:2rem;
	justify-content:center;
	align-items:center;
	margin-top:2rem;
}

.logo-grid img{
	width: 320px;
	height: 180px;
	transition: filter .3s, opacity .3s;
	object-fit: cover;
}
.logo-grid img:hover{
	filter:none;opacity:1;
}

/* 既に定義済みの .list-btn がそのまま使えます */


@keyframes marquee{
	0%{transform:translateX(0);}
	100%{transform:translateX(-50%);}
}
/* ───────── Footer ──────── */
.site-footer{
	background:#111;color:#fff;padding:3rem 1rem;
	font-size:.9rem;
}
.footer-inner{max-width:1200px;margin:0 auto;}

.footer-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
	gap:2rem 3rem;
	margin-bottom:2.5rem;
}

.footer-col{min-width:160px;}
.footer-head{
	font-size:1rem;font-weight:700;margin-bottom:.8rem;color:#fff;
}
.footer-nav,
.footer-list{
	list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem;
}
.footer-nav a,
.footer-list a{
	color:#ccc;text-decoration:none;transition:color .2s;
}
.footer-nav a:hover,
.footer-list a:hover{color:#fff;text-decoration:underline;}

/* ロゴ & コピーライト */
.footer-bottom{
	text-align:center;display:flex;flex-direction:column;align-items:center;gap:.6rem;
}
.footer-mark{width:60px;height:auto;}
.copy{font-size:.75rem;color:#777;}


h2.titlecolor {
	color: #101010;
}


/* 下層ページ共通 wrap */
.sub-wrap {
	max-width: 960px;
	margin: 8rem auto 6rem;  /* 上はヘッダー分オフセット */
	padding: 0 1.5rem;
}

/* 見出し */
.page-title {
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	font-weight: 700;
	margin-bottom: 2rem;
	text-align: center;
	position: relative;
}
.page-title::after {
	content: "";
	display: block;
	width: 60px;
	height: 4px;
	background: var(--color-primary, #21b573);
	margin: 1rem auto 0;
	border-radius: 999px;
}
/* ───── 最新フェス案内 ───── */
.fes-latest{
	margin-bottom:4rem;
}
.latest-link{
	display:flex;flex-wrap:wrap;
	gap:2rem;background:#fff;border-radius:16px;
	box-shadow:0 4px 14px rgba(0,0,0,.08);
	overflow:hidden;text-decoration:none;color:inherit;
}
.latest-img{flex:0 0 320px;max-width:320px;}
.latest-img img{width:100%;height:100%;object-fit:cover;}
.latest-info{flex:1 1 240px;padding:2rem 1.5rem;}
.latest-title{font-size:1.4rem;font-weight:700;margin-bottom:1rem;}
.latest-meta{font-size:.9rem;line-height:1.6;margin-bottom:1rem;}
.latest-meta li+li{margin-top:.25rem;}
.latest-cta{font-weight:700;color:var(--color-primary);}
@media(max-width:600px){
	.latest-link{flex-direction:column;}
	.latest-img{max-width:100%;}
}

/* ───── フェスとは ───── */
.fes-about{
	margin-bottom:4rem;
	background:#edfff3;padding:3rem 1.5rem;border-radius:14px;
}
.fes-about p{font-size:1rem;line-height:1.9;margin-bottom:1.2rem;}
.fes-about em{font-style:normal;color:var(--color-primary);}



/* ===== 団体概要ページ ===== */
.sec-title{
	font-size:1.4rem;
	font-weight:700;
	margin-bottom:1.5rem;
	text-align:center;
}

/* 01 Mission / Vision */
.about-mv{margin-bottom:4rem;text-align:center;}
.mv-lead{font-size:1.05rem;line-height:1.9;}

/* 02 History */
.about-history{
	margin: 0 auto 4rem;
	max-width: 530px;
}
.history-line{
	border-left:4px solid var(--color-primary);
	padding-left:1.5rem;list-style:none;
}
.history-line li{margin-bottom:1rem;font-size:.95rem;line-height:1.6;}
.history-line .year{
	display:inline-block;width:5.5rem;font-weight:700;color:var(--color-primary);
}

/* 03 Team */
.about-team{margin-bottom:4rem;}
.team-grid{
	display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;
}
.member{
	width:160px;text-align:center;
}
.member img{
	width:100%;height:160px;object-fit:cover;border-radius:50%;
	box-shadow:0 4px 10px rgba(0,0,0,.1);margin-bottom:.5rem;
}
.member figcaption{font-size:.85rem;line-height:1.4;}

/* 04 Access */
.about-access{margin-bottom:4rem;text-align:center;}
.access-info{margin-bottom:1rem;font-size:.95rem;}
.map-wrap iframe{
	width:100%;max-width:600px;height:300px;border:0;border-radius:12px;
	box-shadow:0 4px 14px rgba(0,0,0,.08);
}
/* ===== Contact Form ===== */
.contact-form{
	max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:1rem;
}
.contact-form label{font-weight:600;}
.contact-form input,
.contact-form textarea,
.contact-form select{
	width:100%;padding:.6rem;border:1px solid #ccc;border-radius:6px;font-size:.9rem;
}
.contact-form textarea{resize:vertical;}

.dynamic{display:none;border: none;}  /* 初期は非表示 */

.contact-form .cta{
	align-self:center;margin-top:1rem;border: none;
}

/* ===== School Archive ===== */
.school-archive { margin-bottom: 4rem; }

/* フィルター */
.school-filter { margin-bottom: 1.25rem; }
.filter-row {
	display: flex; gap: .75rem; align-items: end; flex-wrap: wrap;
}
.filter-row label { font-size: .85rem; color: #333; display: flex; flex-direction: column; gap: .35rem; }
.filter-row .grow { flex: 1 1 180px; }
#categoryFilter, #sortBy, #keywordFilter {
	border: 1px solid #ccc; border-radius: 8px; padding: .55rem .6rem; font-size: .95rem; background: #fff;
}

/* モバイルファースト：1列 → md:2列 → lg:3列 */
.class-cards {
	display: grid; gap: 1rem;
	grid-template-columns: 1fr;
}
@media (min-width: 640px) {
	.class-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 960px) {
	.class-cards { grid-template-columns: repeat(3, 1fr); }
}

/* 既存 .card スタイルを継承しつつ微調整 */
.class-cards .card {
	position: relative;
	border: 4px solid #4c9f38; /* classes 緑縁 */
}
.card-thumb { position: relative; }
.card-thumb img { width: 100%; height: 160px; object-fit: cover; display: block; }

/* バッジ（左上に少しはみ出し） */
.badge {
	position: absolute; top: 8px; left: 8px;
	padding: .25rem .55rem; font-size: .75rem; font-weight: 700; color: #fff;
	border-radius: 999px; box-shadow: 0 2px 8px rgba(0,0,0,.15); z-index: 2;
}
.badge-rec  { background: #fcca46; color: #101010; } /* おすすめ：イエロー */
.badge-cert { background: #00689d; }                /* 認定：ブルー */

/* メタ行 */
.meta { display: flex; flex-wrap: wrap; gap: .45rem .6rem; margin: .4rem 0 .6rem; font-size: .8rem; }
.meta .cat {
	background: #e8f5ed; color: #2a7c4e; padding: 2px 8px; border-radius: 999px;
}
.meta .age { color: #555; }
.meta .trial.ok {
	background: #e8f7ff; color: #00689d; padding: 2px 8px; border-radius: 999px;
}
.meta .trial.ng { color: #999; }

/* 屋号 */
.vendor { margin: .25rem 0 .25rem; font-size: 1.05rem; }

/* 抜粋：20〜30字想定（2行で省略） */
.excerpt {
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
	overflow: hidden; line-height: 1.6; min-height: calc(1em * 1.6 * 2);
}

/* ==== Tab Switch (page navigation) ==== */
.tab-switch{
	display:flex; justify-content:center; gap:.5rem;
	margin: .5rem 0 1.25rem;
}
.tab-switch a{
	display:inline-flex; align-items:center; gap:.4rem;
	padding:.55rem 1.1rem; border-radius:999px;
	border:1.5px solid #e0e0e0; background:#fff; color:#333;
	text-decoration:none; font-weight:700;
	box-shadow:0 2px 6px rgba(0,0,0,.06);
}
.tab-switch a:after{
	content: none;
}
.tab-switch a.is-active{
	background: var(--color-primary, #21b573);
	border-color: var(--color-primary, #21b573);
	color:#fff; box-shadow:0 4px 12px rgba(0,0,0,.15);
}

/* ==== Tab Intro ==== */
.tab-intro{
	text-align:center; color:#333; line-height:1.8;
	margin-bottom: 1.2rem;
}

/* ==== Product cards (shop) ==== */
.product-cards .card{
	border: 2px solid #eee;
	margin: 0 0 1rem 0;
}
.product-title{ font-size:1.02rem; font-weight:700; }

/* 価格表示 */
.price-row{ display:flex; align-items:baseline; gap:.6rem; margin-top:.4rem; }
.price-new{ font-size:1.15rem; font-weight:800; color:#e5243b; }
.price-old{ font-size:.9rem; color:#999; text-decoration:line-through; }

/* OFFバッジ（少しはみ出す） */
.off-badge{
	position:absolute; top:6px; left:6px;
	background:#e5243b; color:#fff;
	padding:.3rem .6rem; font-weight:800; font-size:.8rem;
	border-radius:999px; box-shadow:0 2px 8px rgba(0,0,0,.15);
	transform: rotate(-6deg); z-index:2;
}

/* ==== Ticket cards ==== */
.ticket-cards .card{
	border: 4px solid #29bde0; /* イベント系青縁 */
	margin: 0 0 1rem 0;
}

/* チケット種別バッジ（左上にはみ出し） */
.ticket-badge{
	position:absolute; top:6px; left:6px;
	padding:.3rem .6rem; font-size:.78rem; font-weight:800; color:#fff;
	border-radius:999px; box-shadow:0 2px 8px rgba(0,0,0,.15); z-index:2;
}
.ticket-badge.free{ background:#4c9f38; } /* 無料=グリーン */
.ticket-badge.paid{ background:#29bde0; } /* 有料=ブルー */

/* 共通：サムネ */
.card-thumb{ position:relative; }
.card-thumb img{ width:100%; height:160px; object-fit:cover; display:block; }

/* =======================================================================
   Miyell — School Single（単一投稿）
   対象: <main class="miyell-single miyell-single-school"> …
   2025-08-21: 冗長ルール整理／重複削除／contactsをカード型に統一
   ======================================================================= */

/* ---------------------------------------
   コンテナ（白カード）
--------------------------------------- */
.miyell-single-school{
	/* theme vars */
	--primary: var(--color-primary, #21b573);
	--text: var(--color-text, #111);
	--row: #e9ebf0;
	--muted: #9aa3af;
	--label-w: 10.5em; /* metaラベル列の幅 */

	max-width: 1040px;
	margin: clamp(84px, 10vw, 120px) auto 64px;  /* 固定ヘッダー分を確保 */
	padding: clamp(20px, 2.8vw, 36px);
	color: var(--text);
	background:#fff;
	border: 1px solid #e6e8ec;
	border-radius: 16px;
	box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

/* ---------------------------------------
   タイトル／カテゴリ
--------------------------------------- */
.miyell-single-school .entry-header{ margin-bottom: 18px; }

.miyell-single-school .entry-title{
	margin: 0 0 .35em;
	font-weight: 800;
	font-size: clamp(1.7rem, 3.4vw, 2.4rem);
	line-height: 1.25;
	letter-spacing: .01em;
}

.miyell-single-school .term-list{
	list-style: none;
	margin: .25rem 0 .5rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.miyell-single-school .term-list .term{
	padding: 4px 10px;
	border: 1px solid #e6e8ec;
	border-radius: 999px;
	background: #f7f8fb;
	font-size: .82rem;
	color: #222;
}

/* ---------------------------------------
   レイアウト：2カラム（左=ギャラリー / 右=情報）
--------------------------------------- */
.miyell-single-school .summary-two-col{
	display: grid;
	gap: clamp(14px, 2.2vw, 24px);
	align-items: start;
}
@media (min-width: 900px){
	.miyell-single-school .summary-two-col{
		grid-template-columns: minmax(320px, 1.15fr) 1fr; /* 左やや広め */
	}
}
.miyell-single-school .summary-one-col{ margin-top: 4px; }
.miyell-single-school .info-col{ align-self: stretch; }

/* ---------------------------------------
   ギャラリー（最小スライダー）
   HTML: .miyell-gallery > .g-viewport > .g-slide(img)
         + .g-prev/.g-next + .g-dots
--------------------------------------- */
.miyell-single-school .miyell-gallery{ position:relative; user-select:none; }

.miyell-single-school .miyell-gallery .g-viewport{
	position: relative;
	aspect-ratio: 4 / 3;
	width: 100%;
	overflow: hidden;
	border-radius: 12px;
	background: #f5f6f8;
	box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
.miyell-single-school .miyell-gallery .g-slide{ position:absolute; inset:0; }
.miyell-single-school .miyell-gallery .g-slide[hidden]{ display:none !important; }
.miyell-single-school .miyell-gallery img{
	width:100%; height:100%; object-fit:cover; display:block;
}

/* ← → ナビ */
.miyell-single-school .miyell-gallery .g-prev,
.miyell-single-school .miyell-gallery .g-next{
	position:absolute; top:50%; transform:translateY(-50%);
	width:40px; height:40px; border:0; border-radius:50%;
	background:rgba(0,0,0,.55);
	color:#fff; font-size:22px; line-height:40px;
	display:grid; place-items:center;
	cursor:pointer; z-index:2;
	transition: background .2s, transform .2s;
}
.miyell-single-school .miyell-gallery .g-prev{ left:10px; }
.miyell-single-school .miyell-gallery .g-next{ right:10px; }
.miyell-single-school .miyell-gallery .g-prev:hover,
.miyell-single-school .miyell-gallery .g-next:hover{
	background:rgba(0,0,0,.75);
	transform:translateY(-50%) scale(1.05);
}

/* ドット */
.miyell-single-school .miyell-gallery .g-dots{
	position:absolute; left:0; right:0; bottom:8px;
	display:flex; justify-content:center; gap:8px; z-index:2;
}
.miyell-single-school .miyell-gallery .g-dot{
	width:9px; height:9px; border-radius:50%;
	background: rgba(255,255,255,.75);
	border: 1px solid rgba(0,0,0,.15);
	cursor:pointer;
	transition: transform .15s, background .15s;
}
.miyell-single-school .miyell-gallery .g-dot.is-active{
	background: var(--primary);
	transform: scale(1.15);
}

/* ---------------------------------------
   基本情報（meta：ラベル/値の2カラム固定）
--------------------------------------- */
/* --- AFTER: meta（カード化＋行強調＋可読性UP） --- */
.miyell-single-school .meta{
	--padY: 14px; 
	--padX: 16px;
	--label-w: clamp(7.6em, 22vw, 11.5em);
	--sep: #f1f3f5;

	list-style: none;
	margin: 0px 0 24px;
	padding: 6px;                         /* 外枠と行カードの間 */
	border: 1px solid #e6e8ec;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0,0,0,.04);
}

.miyell-single-school .meta li{
	display: grid;
	grid-template-columns: var(--label-w) 1fr;
	column-gap: 14px;
	align-items: start;
	padding: var(--padY) var(--padX);
	margin: 0;
	background: linear-gradient(180deg, #fcfdfd, #fff);
	border-radius: 10px;
	border: 1px solid transparent;        /* hover時にだけ色が付く */
	position: relative;
	line-height: 1.45;
	color: #0f172a;
	word-break: break-word;
	overflow-wrap: anywhere;
	width: 100%;
}

/* 行間をつけつつ擬似セパレーターで整える */
.miyell-single-school .meta li + li{ margin-top: 8px; }
.miyell-single-school .meta li::after{
	content:"";
	position:absolute; 
	left: var(--padX); 
	right: var(--padX); 
	bottom: -5px;
	height: 1px; 
	background: var(--sep);
	border-radius: 1px;
}
.miyell-single-school .meta li:last-child::after{ display:none; }

/* hover/フォーカスで軽く持ち上げる */
.miyell-single-school .meta li:hover{
	border-color: #d7efe3;
	box-shadow: 0 2px 10px rgba(0,0,0,.04);
	background: #f7fbf9;
	transform: translateY(-1px);
}

/* ラベル側（左列）を視認性高く */
.miyell-single-school .meta li > strong{
	grid-column: 1;
	display: flex; 
	align-items: center; 
	gap: .5em;
	font-weight: 700; 
	color: #374151; 
	letter-spacing: .02em;
	white-space: nowrap;
	position: relative;
}
.miyell-single-school .meta li > strong::after{
	content: "：";
	margin-left: .2em;
	color: #9aa3af;
	font-weight: 600;
}

/* 値（テキストノード含む）は2列目へ流す */
.miyell-single-school .meta li > *:not(strong){
	grid-column: 2;
}

/* モバイル：ラベル幅を詰めてギャップも縮小 */
/* --- AFTER: meta (SP) 2列タイル＆ラベル上／値下で視認性UP --- */
@media (max-width: 768px){
	/* ULをフル幅グリッド化（横2列、詰め配置） */
	.miyell-single-school .meta{
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-flow: row dense;
		gap: 12px;
		margin: 16px 0 24px;
		padding: 0;
		border: none;
		background: transparent;
		box-shadow: none;
	}

	/* 各項目をタイル化（高さを揃え、読みやすく） */
	.miyell-single-school .meta li{
		display: grid;
		grid-template-columns: 1fr;         /* ラベル上／値下の1列レイアウトに変更 */
		align-content: start;
		padding: 12px 14px 13px;
		min-height: 64px;
		border: 1px solid #e6e8ec;
		border-radius: 12px;
		background: #fff;
		box-shadow: 0 1px 6px rgba(0,0,0,.04);
		line-height: 1.55;
		word-break: break-word;
		overflow-wrap: anywhere;
	}

	.miyell-single-school .meta li + li{ margin-top: 0px; }
	/* ラベル（小さく・控えめ） */
	.miyell-single-school .meta li > strong{
		display: block;
		margin: 0 0 4px;
		font-weight: 700;
		font-size: .86rem;
		letter-spacing: .02em;
		color: #6b7280;                      /* muted */
	}
	/* コロンはSPでは非表示（縦並びのため） */
	.miyell-single-school .meta li > strong::after{ content: ""; }

	/* 値（テキスト／リンク）を強調 */
	.miyell-single-school .meta li > *:not(strong){
		grid-column: 1;
		font-weight: 600;
		font-size: 1rem;
		color: #0f172a;
	}
	.miyell-single-school .meta li a{
		color: inherit;
		text-decoration: none;
		border-bottom: 1px dashed rgba(0,0,0,.25);
	}
	.miyell-single-school .meta li a:hover{ border-bottom-color: transparent; }

	/* 長文をワイドにしたい場合のオプション（HTML変更可なら .wide を付与） */
	.miyell-single-school .meta li.wide{ grid-column: 1 / -1; }
}

/* ---------------------------------------
   Contacts：カード型“アクションリスト”
   （HTMLは <li class="ic-*"><strong>…</strong><a href>…</a>）
--------------------------------------- */
/* contacts：横フル幅 × 2段（2列） */
.miyell-single-school .summary-two-col > .contacts{
	grid-column: 1 / -1;                /* グリッドを横断（.summary-two-col配下なら有効） */
}

/* フル幅グリッド化 */
.miyell-single-school .contacts{
	display:grid;
	grid-template-columns: repeat(2, minmax(280px, 1fr)); /* 2列固定で横いっぱい */
	grid-auto-rows: 1fr;                                   /* 行の高さを揃える */
	gap: 14px 16px;
	list-style:none;
	padding: 0;
}

/* 行カード（全幅用に再定義） */
.miyell-single-school .contacts li{
	position:relative;
	display:block;
	margin:0;
	padding: 14px 52px 14px 64px;        /* 右矢印・左アイコン分の内側余白を li に付与（aなし行も崩れない） */
	border:1px solid #e6e8ec;
	border-radius:12px;
	background:linear-gradient(180deg,#fcfdfd,#fff);
	box-shadow:0 2px 10px rgba(0,0,0,.04);
	line-height:1.5;
	font-weight:700;
	color: var(--primary);
	transition: box-shadow .2s, transform .15s, border-color .2s, background .2s;
}
.miyell-single-school .contacts li:hover{
	border-color:#cfe9db; background:#f7fbf9; transform: translateY(-1px);
}

/* クリック可能時の a は装飾のみ（ブロック化不要） */
.miyell-single-school .contacts li > a{
	color: inherit; text-decoration:none; word-break: break-all;
}
.miyell-single-school .contacts li > a:hover{ color:#16955a; }

/* ラベル strong はスクリーンリーダー用に残す */
.miyell-single-school .contacts li > strong{
	position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0;
	overflow:hidden; clip:rect(0 0 0 0); clip-path: inset(50%);
}

/* 左の“丸＋白抜きアイコン”（aが無い行でも崩れないよう、両方とも li に付与） */
.miyell-single-school .contacts li::before{
	content:"";
	position:absolute; left:14px; top:50%; transform:translateY(-50%);
	width:36px; height:36px; border-radius:999px; background: var(--primary);
}
.miyell-single-school .contacts li::after{
	/* 右端の山括弧（aがある行のみ見せたい）→ 初期は非表示 */
	content:"";
}

/* a がある行だけ右矢印を表示 */
.miyell-single-school .contacts li > a::after{
	content:"\203A"; /* › */
	position:absolute; right:14px; top:50%; transform:translateY(-50%);
	font-size:22px; color:#9aa3af;
}

/* 白抜きアイコンは li の擬似要素で共通化（2つ目の擬似に重ねる） */
.miyell-single-school .contacts li ._icon{ display:none; } /* ダミー（衝突回避用） */
.miyell-single-school .contacts li::marker{ content: none; } /* 念のため */

/* アイコン用の追加疑似（:before を丸、:after を矢印に使っているので、背景に白アイコンは a::before で重ねる） */
.miyell-single-school .contacts li > a::before,
.miyell-single-school .contacts li:not(:has(a))::before{ /* a が無い行でも白抜きアイコンを出す（:has 対応ブラウザで適用） */
	content:"";
	position:absolute; left:14px; top:50%; transform:translateY(-50%);
	width:36px; height:36px; background:#fff;
	-webkit-mask-repeat:no-repeat; -webkit-mask-position:center; -webkit-mask-size:20px 20px;
	mask-repeat:no-repeat;         mask-position:center;         mask-size:20px 20px;
}

/* 各行のマスク割当（a の有無を気にせず両方に指定） */
.miyell-single-school .contacts li.ic-phone  > a::before,
.miyell-single-school .contacts li.ic-phone:not(:has(a))::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.8.6.4 0 .7.3.7.7V21c0 .6-.4 1-1 1C11.3 22 2 12.7 2 2c0-.6.4-1 1-1h3.7c.4 0 .7.3.7.7 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1L6.6 10.8z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.8.6.4 0 .7.3.7.7V21c0 .6-.4 1-1 1C11.3 22 2 12.7 2 2c0-.6.4-1 1-1h3.7c.4 0 .7.3.7.7 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1L6.6 10.8z'/></svg>");
}
.miyell-single-school .contacts li.ic-mail  > a::before,
.miyell-single-school .contacts li.ic-mail:not(:has(a))::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 6a2 2 0 012-2h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6zm2 .5l8 5 8-5V6H4v.5z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 6a2 2 0 012-2h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6zm2 .5l8 5 8-5V6H4v.5z'/></svg>");
}
.miyell-single-school .contacts li.ic-site  > a::before,
.miyell-single-school .contacts li.ic-site:not(:has(a))::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.6 13.4l3-3a3 3 0 114.2 4.2l-3 3a3 3 0 11-4.2-4.2zm-7.2.2l3-3a3 3 0 014.2 4.2l-3 3A3 3 0 013.4 13.6z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.6 13.4l3-3a3 3 0 114.2 4.2l-3 3a3 3 0 11-4.2-4.2zm-7.2.2l3-3a3 3 0 014.2 4.2l-3 3A3 3 0 013.4 13.6z'/></svg>");
}
.miyell-single-school .contacts li.ic-instagram > a::before,
.miyell-single-school .contacts li.ic-instagram:not(:has(a))::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-0.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6zM12 9a3 3 0 110 6 3 3 0 010-6z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-0.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6zM12 9a3 3 0 110 6 3 3 0 010-6z'/></svg>");
}

/* 外部リンク（サイト／インスタ）は↗を維持 */
.miyell-single-school .contacts li.ic-site > a::after,
.miyell-single-school .contacts li.ic-instagram > a::after{
	content:"\2197"; /* ↗ */
	font-size:16px;
}

/* レスポンシブ：SPは1列で可読性優先 */
@media (max-width: 680px){
	.miyell-single-school .contacts{
		grid-template-columns: 1fr;         /* 1列 */
		grid-auto-rows: auto;
		gap: 12px;
	}
}







/* 右端アイコン（既定は山括弧） */
.miyell-single-school .contacts li > a::after{
	content:"\203A"; /* › */
	position:absolute; right:12px; top:50%; transform:translateY(-50%);
	font-size:22px; color: var(--muted);
}

/* マスクアイコンの割当 */
.miyell-single-school .contacts li.ic-phone  > a::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.8.6.4 0 .7.3.7.7V21c0 .6-.4 1-1 1C11.3 22 2 12.7 2 2c0-.6.4-1 1-1h3.7c.4 0 .7.3.7.7 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1L6.6 10.8z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.8.6.4 0 .7.3.7.7V21c0 .6-.4 1-1 1C11.3 22 2 12.7 2 2c0-.6.4-1 1-1h3.7c.4 0 .7.3.7.7 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1L6.6 10.8z'/></svg>");
}
.miyell-single-school .contacts li.ic-mail   > a::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 6a2 2 0 012-2h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6zm2 .5l8 5 8-5V6H4v.5z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 6a2 2 0 012-2h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6zm2 .5l8 5 8-5V6H4v.5z'/></svg>");
}
.miyell-single-school .contacts li.ic-site   > a::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.6 13.4l3-3a3 3 0 114.2 4.2l-3 3a3 3 0 11-4.2-4.2zm-7.2.2l3-3a3 3 0 014.2 4.2l-3 3A3 3 0 013.4 13.6z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.6 13.4l3-3a3 3 0 114.2 4.2l-3 3a3 3 0 11-4.2-4.2zm-7.2.2l3-3a3 3 0 014.2 4.2l-3 3A3 3 0 013.4 13.6z'/></svg>");
}
/* Instagram */
.miyell-single-school .contacts li.ic-instagram > a::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-0.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6zM12 9a3 3 0 110 6 3 3 0 010-6z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-0.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6zM12 9a3 3 0 110 6 3 3 0 010-6z'/></svg>");
}

/* 外部リンク系は↗を表示 */
.miyell-single-school .contacts li.ic-site > a::after,
.miyell-single-school .contacts li.ic-instagram > a::after{
	content:"\2197"; /* ↗ */
	font-size:16px;
}

/* ---------------------------------------
   本文（フリーテキスト）
--------------------------------------- */
.miyell-single-school .entry-content{ margin: 28px 0; }
.miyell-single-school .entry-content p{ margin: 1em 0; }
.miyell-single-school .entry-content h2{
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
	margin: 2em 0 .8em;
	padding-left: .6em;
	border-left: 4px solid var(--primary);
}
.miyell-single-school .entry-content h3{
	font-size: clamp(1.05rem, 2.2vw, 1.25rem);
	margin: 1.4em 0 .6em;
}
.miyell-single-school .entry-content img{
	max-width:100%; height:auto; display:block;
}

/* ---------------------------------------
   地図（任意）
--------------------------------------- */
.miyell-single-school .section-map{ margin: 28px 0; }
.miyell-single-school .section-map h2{ margin-bottom: .6em; }
.miyell-single-school .map-embed{
	position:relative; width:100%; padding-top:56.25%;
	background:#f5f6f8; border:1px solid #e6e8ec; border-radius:12px; overflow:hidden;
}
.miyell-single-school .map-embed iframe{
	position:absolute; inset:0; width:100%; height:100%; border:0;
}

/* ---------------------------------------
   ご案内（ラベル＋角丸ボックス）
--------------------------------------- */
.miyell-single-school .section-notes{ margin: 28px 0; }
.miyell-single-school .section-notes h2{ margin-bottom: .6em; }
.miyell-single-school .section-notes h3{
	margin-top: 1.1em; font-size: 1rem; color: #374151;
}
.miyell-single-school .note-field{ margin:14px 0 18px; }
.miyell-single-school .note-label{ font-weight:700; margin-bottom:8px; }
.miyell-single-school .note-box{
	background:#fff; border:1px solid #e6e8ec; border-radius:10px;
	padding:14px 16px; line-height:1.8;
}
.miyell-single-school .note-box p{ margin:.4em 0; }

/* ---------------------------------------
   フッター（戻るリンク等）
--------------------------------------- */
.miyell-single-school .entry-footer{
	margin-top: 28px;
	display:flex; gap:16px; align-items:center; flex-wrap:wrap;
}
.miyell-single-school .entry-footer a{
	color: var(--primary); text-decoration:none; font-weight:700;
}
.miyell-single-school .entry-footer a:hover{ text-decoration:underline; }

/* ---------------------------------------
   印刷
--------------------------------------- */
@media print{
	.glass-header{ display:none !important; }
	.miyell-single-school{
		margin:0; padding:0; border:none; box-shadow:none;
	}
	.miyell-single-school .entry-title{ font-size: 20pt; }
	.miyell-single-school .miyell-gallery .g-prev,
	.miyell-single-school .miyell-gallery .g-next,
	.miyell-single-school .miyell-gallery .g-dots{ display:none !important; }
}
/* =======================================================================
   Miyell — Event Single（単一投稿）
   対象: <main class="miyell-single miyell-single-event"> …
   ======================================================================= */

/* base */
.miyell-single-event{
	--primary: var(--color-primary, #21b573);
	--text: var(--color-text, #111);
	--row: #e9ebf0;
	--muted: #9aa3af;

	max-width: 1040px;
	margin: clamp(84px, 10vw, 120px) auto 64px;
	padding: clamp(20px, 2.8vw, 36px);
	color: var(--text);
	background:#fff;
	border: 1px solid #e6e8ec;
	border-radius: 16px;
	box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

/* header */
.miyell-single-event .entry-header{ margin-bottom:18px; }
.miyell-single-event .entry-title{
	margin:0 0 .35em; font-weight:800;
	font-size: clamp(1.7rem, 3.4vw, 2.4rem); line-height:1.25;
}

/* 2col layout */
.miyell-single-event .summary-two-col{ display:grid; gap:clamp(14px,2.2vw,24px); align-items:start; }
@media (min-width:900px){
	.miyell-single-event .summary-two-col{ grid-template-columns:minmax(320px,1.15fr) 1fr; }
}
.miyell-single-event .info-col{ align-self:stretch; }

/* gallery */
.miyell-single-event .miyell-gallery{ position:relative; user-select:none; }
.miyell-single-event .miyell-gallery .g-viewport{
	position:relative; aspect-ratio:4/3; width:100%; overflow:hidden; border-radius:12px;
	background:#f5f6f8; box-shadow:0 6px 18px rgba(0,0,0,.06);
}
.miyell-single-event .miyell-gallery .g-slide{ position:absolute; inset:0; }
.miyell-single-event .miyell-gallery img{ width:100%; height:100%; object-fit:cover; display:block; }
.miyell-single-event .miyell-gallery .g-prev,
.miyell-single-event .miyell-gallery .g-next{
	position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border:0; border-radius:50%;
	background:rgba(0,0,0,.55); color:#fff; font-size:22px; display:grid; place-items:center; cursor:pointer; z-index:2;
	transition:background .2s, transform .2s;
}
.miyell-single-event .miyell-gallery .g-prev{ left:10px; }
.miyell-single-event .miyell-gallery .g-next{ right:10px; }
.miyell-single-event .miyell-gallery .g-prev:hover,
.miyell-single-event .miyell-gallery .g-next:hover{ background:rgba(0,0,0,.75); transform:translateY(-50%) scale(1.05); }
.miyell-single-event .miyell-gallery .g-dots{ position:absolute; left:0; right:0; bottom:8px; display:flex; justify-content:center; gap:8px; z-index:2; }
.miyell-single-event .miyell-gallery .g-dot{ width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.75); border:1px solid rgba(0,0,0,.15); }
.miyell-single-event .miyell-gallery .g-dot.is-active{ background:var(--primary); transform:scale(1.15); }

/* === meta（school / event 共通）カード式 === */
.miyell-single-school .meta,
.miyell-single-event  .meta{
	--padY: 14px;
	--padX: 16px;
	--label-w: clamp(7.6em, 22vw, 11.5em);
	--sep: #f1f3f5;

	list-style: none;
	margin: 0 0 24px;
	padding: 6px;
	border: 1px solid #e6e8ec;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0,0,0,.04);
}

.miyell-single-school .meta li,
.miyell-single-event  .meta li{
	display: grid;
	grid-template-columns: var(--label-w) 1fr;
	column-gap: 14px;
	align-items: start;
	padding: var(--padY) var(--padX);
	margin: 0;
	background: linear-gradient(180deg, #fcfdfd, #fff);
	border-radius: 10px;
	border: 1px solid transparent; /* hover 時のみ色 */
	position: relative;
	line-height: 1.45;
	color: #0f172a;
	word-break: break-word;
	overflow-wrap: anywhere;
	width: 100%;
}

/* 行間＆擬似セパレーター（細い実線の“にじみ”を解消） */
.miyell-single-school .meta li + li,
.miyell-single-event  .meta li + li{ margin-top: 8px; }
.miyell-single-school .meta li::after,
.miyell-single-event  .meta li::after{
	content:"";
	position:absolute;
	left: var(--padX);
	right: var(--padX);
	bottom: -5px;
	height: 1px;
	background: var(--sep);
	border-radius: 1px;
}
.miyell-single-school .meta li:last-child::after,
.miyell-single-event  .meta li:last-child::after{ display:none; }

/* hover */
.miyell-single-school .meta li:hover,
.miyell-single-event  .meta li:hover{
	border-color: #d7efe3;
	box-shadow: 0 2px 10px rgba(0,0,0,.04);
	background: #f7fbf9;
	transform: translateY(-1px);
}

/* ラベル */
.miyell-single-school .meta li > strong,
.miyell-single-event  .meta li > strong{
	grid-column: 1;
	display: flex;
	align-items: center;
	gap: .5em;
	font-weight: 700;
	color: #374151;
	letter-spacing: .02em;
	white-space: nowrap;
	position: relative;
}
.miyell-single-school .meta li > strong::after,
.miyell-single-event  .meta li > strong::after{
	content: "：";
	margin-left: .2em;
	color: #9aa3af;
	font-weight: 600;
}

/* 値 */
.miyell-single-school .meta li > *:not(strong),
.miyell-single-event  .meta li > *:not(strong){
	grid-column: 2;
}

/* SP：2列タイル + ラベル上/値下（school と同仕様） */
@media (max-width: 768px){
	.miyell-single-school .meta,
	.miyell-single-event  .meta{
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-flow: row dense;
		gap: 12px;
		margin: 16px 0 24px;
		padding: 0;
		border: none;
		background: transparent;
		box-shadow: none;
	}

	.miyell-single-school .meta li,
	.miyell-single-event  .meta li{
		grid-template-columns: 1fr;
		align-content: start;
		padding: 12px 14px 13px;
		min-height: 64px;
		border: 1px solid #e6e8ec;
		border-radius: 12px;
		background: #fff;
		box-shadow: 0 1px 6px rgba(0,0,0,.04);
		line-height: 1.55;
	}

	.miyell-single-school .meta li + li,
	.miyell-single-event  .meta li + li{ margin-top: 0; }

	.miyell-single-school .meta li > strong,
	.miyell-single-event  .meta li > strong{
		display: block;
		margin: 0 0 4px;
		font-weight: 700;
		font-size: .86rem;
		letter-spacing: .02em;
		color: #6b7280;
	}
	.miyell-single-school .meta li > strong::after,
	.miyell-single-event  .meta li > strong::after{ content: ""; }

	.miyell-single-school .meta li > *:not(strong),
	.miyell-single-event  .meta li > *:not(strong){
		grid-column: 1;
		font-weight: 600;
		font-size: 1rem;
		color: #0f172a;
	}

	/* 長文を横幅いっぱいにしたいときは .wide を付与 */
	.miyell-single-school .meta li.wide,
	.miyell-single-event  .meta li.wide{ grid-column: 1 / -1; }
}



/* contacts：横フル幅×2列（存在時のみ） */
.miyell-single-event .summary-two-col > .contacts{ grid-column:1 / -1; }
.miyell-single-event .contacts{
	display:grid; grid-template-columns:repeat(2, minmax(280px, 1fr)); grid-auto-rows:1fr;
	gap:14px 16px; list-style:none; margin:24px 0 6px; padding:0;
}
.miyell-single-event .contacts li{
	position:relative; padding:14px 52px 14px 64px; border:1px solid #e6e8ec; border-radius:12px;
	background:linear-gradient(180deg,#fcfdfd,#fff); box-shadow:0 2px 10px rgba(0,0,0,.04);
	line-height:1.5; font-weight:700; color:var(--primary);
	transition: box-shadow .2s, transform .15s, border-color .2s, background .2s;
}
.miyell-single-event .contacts li:hover{ border-color:#cfe9db; background:#f7fbf9; transform:translateY(-1px); }
.miyell-single-event .contacts li > a{ color:inherit; text-decoration:none; word-break:break-all; }
.miyell-single-event .contacts li > a::after{
	content:"\203A"; position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:22px; color:#9aa3af;
}
.miyell-single-event .contacts li > strong{
	position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip:rect(0 0 0 0); clip-path: inset(50%);
}
.miyell-single-event .contacts li::before{
	content:""; position:absolute; left:14px; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:999px; background:var(--primary);
}
.miyell-single-event .contacts li > a::before{
	content:""; position:absolute; left:14px; top:50%; transform:translateY(-50%); width:36px; height:36px; background:#fff;
	-webkit-mask-repeat:no-repeat; -webkit-mask-position:center; -webkit-mask-size:20px 20px;
	mask-repeat:no-repeat;         mask-position:center;         mask-size:20px 20px;
}
/* masks */
.miyell-single-event .contacts li.ic-phone  > a::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.8.6.4 0 .7.3.7.7V21c0 .6-.4 1-1 1C11.3 22 2 12.7 2 2c0-.6.4-1 1-1h3.7c.4 0 .7.3.7.7 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1L6.6 10.8z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.8.6.4 0 .7.3.7.7V21c0 .6-.4 1-1 1C11.3 22 2 12.7 2 2c0-.6.4-1 1-1h3.7c.4 0 .7.3.7.7 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1L6.6 10.8z'/></svg>");
}
.miyell-single-event .contacts li.ic-mail   > a::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 6a2 2 0 012-2h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6zm2 .5l8 5 8-5V6H4v.5z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 6a2 2 0 012-2h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6zm2 .5l8 5 8-5V6H4v.5z'/></svg>");
}
.miyell-single-event .contacts li.ic-site   > a::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.6 13.4l3-3a3 3 0 114.2 4.2l-3 3a3 3 0 11-4.2-4.2zm-7.2.2l3-3a3 3 0 014.2 4.2l-3 3A3 3 0 013.4 13.6z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.6 13.4l3-3a3 3 0 114.2 4.2l-3 3a3 3 0 11-4.2-4.2zm-7.2.2l3-3a3 3 0 014.2 4.2l-3 3A3 3 0 013.4 13.6z'/></svg>");
}
.miyell-single-event .contacts li.ic-instagram > a::before{
	-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-0.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6zM12 9a3 3 0 110 6 3 3 0 010-6z'/></svg>");
	mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-0.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6zM12 9a3 3 0 110 6 3 3 0 010-6z'/></svg>");
}
/* SP: 1列 */
@media (max-width:680px){
	.miyell-single-event .contacts{ grid-template-columns:1fr; grid-auto-rows:auto; gap:12px; }
}

/* content */
.miyell-single-event .entry-content{ margin:28px 0; }
.miyell-single-event .entry-content h2{
	font-size:clamp(1.25rem,2.4vw,1.6rem); margin:2em 0 .8em;
	padding-left:.6em; border-left:4px solid var(--primary);
}
.miyell-single-event .entry-content h3{ font-size:clamp(1.05rem,2.2vw,1.25rem); margin:1.4em 0 .6em; }
.miyell-single-event .entry-content img{ max-width:100%; height:auto; display:block; }

/* map */
.miyell-single-event .section-map{ margin:28px 0; }
.miyell-single-event .map-embed{ position:relative; width:100%; padding-top:56.25%; background:#f5f6f8; border:1px solid #e6e8ec; border-radius:12px; overflow:hidden; }
.miyell-single-event .map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* footer */
.miyell-single-event .entry-footer{ margin-top:28px; display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.miyell-single-event .entry-footer a{ color:var(--primary); font-weight:700; text-decoration:none; }
.miyell-single-event .entry-footer a:hover{ text-decoration:underline; }

/* print */
@media print{
	.glass-header{ display:none !important; }
	.miyell-single-event{ margin:0; padding:0; border:none; box-shadow:none; }
	.miyell-single-event .entry-title{ font-size:20pt; }
	.miyell-single-event .miyell-gallery .g-prev,
	.miyell-single-event .miyell-gallery .g-next,
	.miyell-single-event .miyell-gallery .g-dots{ display:none !important; }
}
/* =======================================================================
   Event — 参加申込みフォーム（single-event.php）
   既存の .contact-form のトーンに合わせて最小差分で整形
   ======================================================================= */

   .miyell-single-event .section-apply{
   	margin: 32px 0;
   	padding: 18px 16px;
   	background: #f7fdf9;
   	border: 1px solid #e6e8ec;
   	border-radius: 14px;
   }

   .miyell-single-event .section-apply .apply-title{
   	font-size: clamp(1.1rem, 2.2vw, 1.35rem);
   	font-weight: 800;
   	margin-bottom: .8rem;
   	color: #111;
   }
/* === CF7 — Event apply form (scoped) ===================== */
.miyell-single-event .section-apply .wpcf7 form {
	display: grid;
	gap: 14px;
}
.miyell-single-event .section-apply .wpcf7 p { margin: 0; }

/* 入力UI（共通） */
.miyell-single-event .section-apply .wpcf7 input[type="text"],
.miyell-single-event .section-apply .wpcf7 input[type="email"],
.miyell-single-event .section-apply .wpcf7 input[type="tel"],
.miyell-single-event .section-apply .wpcf7 input[type="number"],
.miyell-single-event .section-apply .wpcf7 input[type="date"],
.miyell-single-event .section-apply .wpcf7 select,
.miyell-single-event .section-apply .wpcf7 textarea {
	width: 100%;
	padding: .65rem .75rem;
	border: 1px solid #cfd6dd;
	border-radius: 10px;
	background: #fff;
	font-size: .95rem;
	line-height: 1.5;
	transition: border-color .2s, box-shadow .2s;
}
.miyell-single-event .section-apply .wpcf7 textarea {
	min-height: 140px;
	resize: vertical;
}
.miyell-single-event .section-apply .wpcf7 input::placeholder,
.miyell-single-event .section-apply .wpcf7 textarea::placeholder {
	color: #9aa3af;
}

/* フォーカス */
.miyell-single-event .section-apply .wpcf7 input:focus,
.miyell-single-event .section-apply .wpcf7 select:focus,
.miyell-single-event .section-apply .wpcf7 textarea:focus {
	outline: 0;
	border-color: var(--color-primary, #21b573);
	box-shadow: 0 0 0 3px rgba(33,181,115,.15);
}

/* 同意チェック */
.miyell-single-event .section-apply .wpcf7-acceptance label {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: .9rem;
}

/* 送信ボタン（テーマの .cta と同トーン） */
.miyell-single-event .section-apply .wpcf7 input.wpcf7-submit {
	appearance: none;
	display: inline-block;
	margin: 6px auto 0;
	padding: .75rem 2rem;
	border: 0;
	border-radius: 999px;
	background: var(--color-primary, #21b573);
	color: #fff;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 6px 12px rgba(33,181,115,.20);
	transition: background .2s, box-shadow .2s, transform .05s;
}
.miyell-single-event .section-apply .wpcf7 input.wpcf7-submit:hover {
	background:#16955a;
	box-shadow: 0 10px 16px rgba(33,181,115,.28);
	transform: translateY(-1px);
}
.miyell-single-event .section-apply .wpcf7 input.wpcf7-submit:active {
	transform: translateY(0);
	box-shadow: 0 4px 10px rgba(33,181,115,.18);
}
.miyell-single-event .section-apply .wpcf7 input.wpcf7-submit:focus-visible {
	outline: 0;
	box-shadow: 0 0 0 3px rgba(33,181,115,.30);
}

/* スピナー・エラーメッセージ・完了メッセージ */
.miyell-single-event .section-apply .wpcf7 .wpcf7-spinner { margin-left: 8px; }
.miyell-single-event .section-apply .wpcf7 .wpcf7-not-valid-tip {
	margin-top: 6px; font-size: .8rem; color: #e5243b;
}
.miyell-single-event .section-apply .wpcf7 form.invalid .wpcf7-response-output {
	border-color: #e5243b; background:#fff5f6; color:#9b1c2c;
}
.miyell-single-event .section-apply .wpcf7 form.sent .wpcf7-response-output {
	border-color: #21b573; background:#f1fbf6; color:#065f46;
}
/* === CF7 必須表示・バリデーション ======================= */
/* バッジ化：フォーム側で <span class="req">必須</span> を付けておく前提 */
.miyell-single-event .section-apply .req{
	display:inline-block;
	margin-left:.5rem;
	padding:.2rem .5rem;
	border:1px solid #f5b3b3;
	border-radius:6px;
	background:#fde8e8;
	color:#b91c1c;
	font-size:.75rem;
	font-weight:700;
	line-height:1;
	vertical-align:middle;
	letter-spacing:.02em;
}

/* 未入力エラー時（CF7 が付ける .wpcf7-not-valid） */
.miyell-single-event .section-apply .wpcf7 .wpcf7-not-valid{
	border-color:#e5243b;
	background:#fff5f6;
	box-shadow:0 0 0 2px rgba(229,36,59,.06);
}
.miyell-single-event .section-apply .wpcf7 .wpcf7-not-valid:focus{
	box-shadow:0 0 0 3px rgba(229,36,59,.18);
}

/* エラーメッセージ（項目下） */
.miyell-single-event .section-apply .wpcf7 .wpcf7-not-valid-tip{
	margin-top:6px;
	font-size:.8rem;
	color:#b91c1c;
}

/* 送信後メッセージのトーン合わせ（成功/失敗） */
.miyell-single-event .section-apply .wpcf7 form.invalid .wpcf7-response-output{
	border-color:#e5243b; background:#fff5f6; color:#9b1c2c;
}
.miyell-single-event .section-apply .wpcf7 form.sent .wpcf7-response-output{
	border-color:#21b573; background:#f1fbf6; color:#065f46;
}

/* 同意チェック（checkbox版） */
.miyell-single-event .section-apply .wpcf7-checkbox.agree-check label {
	display:flex; align-items:center; gap:.5rem; font-size:.9rem;
}
.miyell-single-event .section-apply .wpcf7-checkbox.agree-check input[type="checkbox"]{
	width:1.05rem; height:1.05rem;
}
/* ================================
   Page (Welcart対応) – base
   ================================ */
   .miyell-page{
   	--card-border:#e6e8ec;
   	--muted:#9aa3af;
   	max-width:1040px;
   	margin:clamp(84px,10vw,120px) auto 64px;
   	padding:clamp(20px,2.8vw,36px);
   	background:#fff;
   	color:var(--color-text,#111);
   	border:1px solid var(--card-border);
   	border-radius:16px;
   	box-shadow:0 10px 26px rgba(0,0,0,.06);
   }
   .miyell-page.page-wide{ max-width:1200px; }

   .miyell-page .entry-header{ margin-bottom:18px; }
   .miyell-page .entry-title{
   	margin:0 0 .35em;
   	font-weight:800;
   	font-size:clamp(1.7rem,3.4vw,2.2rem);
   	line-height:1.25;
   	letter-spacing:.01em;
   }
   .miyell-page .entry-content{ margin: 18px 0 0; }
   .miyell-page .entry-content p{ margin:1em 0; }
   .miyell-page .entry-content h2{
   	font-size:clamp(1.25rem,2.4vw,1.6rem);
   	margin:2em 0 .8em;
   	padding-left:.6em;
   	border-left:4px solid var(--color-primary,#21b573);
   }
   .miyell-page .entry-content h3{
   	font-size:clamp(1.05rem,2.2vw,1.25rem);
   	margin:1.4em 0 .6em;
   }

/* “編集リンク”などのフッター行（div） */
.miyell-page .entry-footer{
	margin-top:28px;
	display:flex; gap:16px; align-items:center; flex-wrap:wrap;
}
.miyell-page .entry-footer a{
	color:var(--color-primary,#21b573); text-decoration:none; font-weight:700;
}
.miyell-page .entry-footer a:hover{ text-decoration:underline; }

/* ================================
   Welcart scope（page.php が付与するクラス）
   ================================ */
   .is-welcart-page{ box-shadow:none; } /* 画面全体にコンテンツが来るので影を弱める */
   .is-welcart-page .entry-content{ margin-top: 8px; }

/* 入力UI（Welcartフォーム全般） */
.is-welcart-page .entry-content input[type="text"],
.is-welcart-page .entry-content input[type="email"],
.is-welcart-page .entry-content input[type="tel"],
.is-welcart-page .entry-content input[type="password"],
.is-welcart-page .entry-content input[type="number"],
.is-welcart-page .entry-content input[type="search"],
.is-welcart-page .entry-content textarea,
.is-welcart-page .entry-content select{
	width:100%;
	max-width:100%;
	padding:10px 12px;
	border:1px solid var(--card-border);
	border-radius:8px;
	background:#fff;
	font:inherit;
	line-height:1.6;
}
.is-welcart-page .entry-content textarea{ min-height:140px; }

/* テーブル（カート・注文確認など） */
.is-welcart-page .entry-content table{
	width:100%;
	border-collapse:collapse;
}
.is-welcart-page .entry-content th,
.is-welcart-page .entry-content td{
	border:1px solid var(--card-border);
	padding:10px 12px;
	vertical-align:top;
}
.is-welcart-page .entry-content th{
	background:#f7f8fb;
	text-align:left;
	font-weight:700;
}

/* ボタン系（Welcart標準の class と汎用） */
.is-welcart-page .entry-content .button,
.is-welcart-page .entry-content input[type="submit"],
.is-welcart-page .entry-content button,
.is-welcart-page .entry-content .usces_button{
	appearance:none;
	display:inline-block;
	border:0;
	border-radius:999px;
	padding:12px 22px;
	font-weight:700;
	background:var(--color-primary,#21b573);
	color:#fff;
	cursor:pointer;
	box-shadow:0 4px 12px rgba(0,0,0,.08);
	transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease;
}
.is-welcart-page .entry-content .button:hover,
.is-welcart-page .entry-content input[type="submit"]:hover,
.is-welcart-page .entry-content button:hover,
.is-welcart-page .entry-content .usces_button:hover{
	transform:translateY(-1px);
	box-shadow:0 8px 18px rgba(0,0,0,.12);
}
.is-welcart-page .entry-content .button:disabled,
.is-welcart-page .entry-content input[type="submit"]:disabled{
	opacity:.6; cursor:not-allowed; transform:none; box-shadow:none;
}

/* メッセージ */
.is-welcart-page .entry-content .usces_error_message,
.is-welcart-page .entry-content .error_message{
	margin:10px 0 0;
	border:1px solid #e97979;
	background:#fff6f6;
	color:#b03737;
	border-radius:8px;
	padding:10px 12px;
	font-size:.92rem;
}
.is-welcart-page .entry-content .usces_message,
.is-welcart-page .entry-content .information_message{
	margin:10px 0 0;
	border:1px solid var(--card-border);
	background:#f7f8fb;
	border-radius:8px;
	padding:10px 12px;
	font-size:.92rem;
}

/* 合計金額などの強調 */
.is-welcart-page .entry-content .total_price,
.is-welcart-page .entry-content .usces_total{
	font-weight:800;
	font-size:1.05em;
}

/* スマホ最適化 */
@media (max-width:640px){
	.miyell-page{ padding: clamp(16px,4.8vw,24px); }
	.is-welcart-page .entry-content table{ display:block; overflow-x:auto; }
	.is-welcart-page .entry-content th, 
	.is-welcart-page .entry-content td{ white-space:nowrap; }
}
/* Trial CTA */
.section-trial-cta{
	margin: 24px 0;
	padding: 16px;
	border:1px solid #e6e8ec;
	border-radius:12px;
	background:#fff;
	box-shadow: 0 2px 8px rgba(0,0,0,.03);
}
.section-trial-cta .usces_incart_button input[type="submit"],
.section-trial-cta .usces_cart_button input[type="submit"]{
	font-weight:700;
	padding:12px 18px;
	border-radius:999px;
}
.section-trial { margin: clamp(18px, 4vw, 28px) 0; }
.trial-card{
	background:#fff; border:1px solid #e6e8ec; border-radius:16px;
	box-shadow:0 8px 24px rgba(0,0,0,.06);
	padding: clamp(16px, 3.6vw, 24px);
}
.trial-head{
	display:flex; flex-wrap:wrap; align-items:flex-end;
	gap:8px 16px; margin-bottom:10px;
}
.badge{
	display:inline-block; font-weight:700; font-size:.78rem; letter-spacing:.02em;
	padding:.28em .7em; border-radius:999px;
	background:#eef2ff; color:#3949ab; border:1px solid #dfe4ff;
}
.trial-title{ margin:0; font-weight:800; font-size: clamp(1.05rem, 2.5vw, 1.35rem); line-height:1.3; flex:1 1 auto; }
.trial-price{ margin-left:auto; font-weight:800; font-size: clamp(1rem, 2.4vw, 1.25rem); line-height:1; color:#111; }
.trial-desc{ margin:.4em 0 0.8em; color:#444; font-size:.95rem; }

/* 本文トグル */
.trial-details{ margin: 8px 0 14px; border-top:1px dashed #e6e8ec; padding-top:12px; }
.trial-details > summary{
	cursor:pointer; list-style:none; font-weight:700; font-size:.93rem;
	margin-bottom:8px; position:relative;
}
.trial-details > summary::-webkit-details-marker{ display:none; }
.trial-details > summary::after{ content:"＋"; position:absolute; right:0; transform: translateY(-1px); }
.trial-details[open] > summary::after{ content:"－"; }
.trial-content{ font-size:.95rem; color:#333; line-height:1.8; }
.trial-content p{ margin: 0 0 1em; }
.trial-content ul, .trial-content ol{ padding-left:1.2em; margin: 0 0 1em; }
.trial-content img{ max-width:100%; height:auto; border-radius:10px; }

/* CTA */
.trial-actions{ display:flex; gap:10px; margin-top: 12px; }
.btn-primary{
	display:inline-flex; align-items:center; justify-content:center;
	padding:.8em 1.1em; border-radius:12px; font-weight:700; text-decoration:none;
	border:1px solid #2a55ff; background:#2a55ff; color:#fff;
	transition: transform .03s ease, box-shadow .2s ease, background .2s;
	box-shadow:0 6px 16px rgba(42,85,255,.24);
}
.btn-primary:hover{ transform: translateY(-1px); }
.btn-primary:active{ transform: translateY(0); box-shadow:0 4px 12px rgba(42,85,255,.18); }

/* 既存の軽整形 */
.miyell-single-school .entry-header{ margin-bottom: 18px; }
.miyell-single-school .entry-title{ margin:0 0 .4em; font-weight:800; }
.miyell-single-school .term-list{ display:flex; gap:6px; padding:0; margin:0; list-style:none; flex-wrap:wrap; }
.miyell-single-school .term{ font-size:.8rem; padding:.2em .6em; background:#f5f7fb; border-radius:999px; border:1px solid #eef1f6; }

/* ===== miyell: Welcart 商品ページ（single-item.php） ===== */
.miyell-single-item {
	--primary: var(--color-primary, #21b573);
	--text: var(--color-text, #111);
	--row: #e9ebf0;
	--muted: #9aa3af;
	--label-w: 10.5em;
	max-width: 1040px;
	margin: clamp(84px, 10vw, 120px) auto 64px;
	padding: clamp(20px, 2.8vw, 36px);
	color: var(--text);
	background: #fff;
	border: 1px solid #e6e8ec;
	border-radius: 16px;
	box-shadow: 0 10px 26px rgba(0, 0, 0, .06);
}/* ===== miyell: Welcart 商品（single-item.php） ===== */
/* header */
.is-welcart-item .entry-header{margin:24px 0 16px}
.is-welcart-item .entry-title{display:flex;gap:.5em;align-items:center;font-weight:800;line-height:1.25;font-size:clamp(1.4rem,3.2vw,2rem)}
.is-welcart-item .entry-title [aria-hidden="true"]{font-size:1.2em;line-height:1}
.is-welcart-item .badge{display:inline-block;padding:.28em .6em;border-radius:999px;background:#eef2ff;color:#3949ab;border:1px solid #dfe4ff;font-size:.78rem;font-weight:700}

/* Welcartのfloat/clearを無効化（空白対策） */
.is-welcart-item #itempage :is(.itemimg,.exp,.skuform,.itemsubimg){float:none!important;clear:none!important;width:auto!important}
.is-welcart-item #itempage :is(.exp,.skuform)::before,
.is-welcart-item #itempage :is(.exp,.skuform)::after{content:none!important;display:none!important}

/* 2カラム */
.is-welcart-item #itempage form{display:grid;grid-template-columns:minmax(280px,540px) 1fr;gap:24px;align-items:start}
@media (max-width:900px){.is-welcart-item #itempage form{grid-template-columns:1fr}}
.is-welcart-item #itempage .itemimg{grid-column:1;grid-row:1/span 6}
.is-welcart-item #itempage :is(h3,.exp,.skuform,.itemsubimg){grid-column:2}
.is-welcart-item #itempage .itemimg img{width:100%;height:auto;display:block;border-radius:14px}
.is-welcart-item #itempage h3{margin:0 0 6px;font-weight:700;font-size:1.1rem}

/* 価格 */
.is-welcart-item #itempage .field{margin-bottom:8px}
.is-welcart-item #itempage .field_name{font-weight:700;color:#64748b;margin:0 0 2px}
.is-welcart-item #itempage .field_cprice{color:#94a3b8;text-decoration:line-through}
.is-welcart-item #itempage .field_price{font-weight:800;color:#d93025;font-size:1.4rem}
.is-welcart-item #itempage .exp p{margin:12px 0 0;line-height:1.85}

/* 個数＋CTA */
.is-welcart-item #itempage .skuform{margin-top:10px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.is-welcart-item #itempage .skuquantity{width:90px;padding:.55em;border:1px solid #d0d5dd;border-radius:10px;font-weight:600}
.is-welcart-item #itempage .skubutton{background:#2a55ff;border:1px solid #2a55ff;color:#fff;padding:.85em 1.1em;border-radius:12px;font-weight:800;box-shadow:0 6px 16px rgba(42,85,255,.24)}
.is-welcart-item #itempage .skubutton:hover{filter:saturate(1.05) brightness(1.03)}
/* --- モバイル時の再配置（画像が消える対策） --- */
@media (max-width:900px){
	.is-welcart-item #itempage form{
		grid-template-columns: 1fr;
		grid-auto-flow: row;            /* 自然な縦積み */
	}
	.is-welcart-item #itempage .itemimg{
		grid-column: 1 !important;
		grid-row: auto !important;      /* 1カラムでは行スパンを解除 */
		display:block;
	}
	.is-welcart-item #itempage :is(h3,.exp,.skuform,.itemsubimg){
		grid-column: 1 !important;      /* 右カラム指定を1列へ揃える */
	}
	.is-welcart-item #itempage .itemimg a{display:block} /* 画像リンクの収まりを保証 */
}

/* 最終保険：超狭幅では完全にブロックレイアウトに */
@media (max-width:600px){
	.is-welcart-item #itempage form{ display:block !important; }
}
/* =========================================================
   single-fes.css  —  フェス詳細（single-fes.php 専用）
   - 本文内では <header><footer> を使わない前提
   - 背景は常に白、モバイルファースト、文字サイズ統一
   - 「span がはみ出る」対策込み（.meta 行のグリッド化）
   ========================================================= */

/* 基本タイポ＆色 */
.miyell-single-fes{
	--label-w:10.5em;                 /* 左ラベル列の固定幅 */
	--fg:#111; --muted:#6b7280;
	--border:#e6e8ec; --soft:#f6f7f9;
	--chip:#eef2ff;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
	color:var(--fg); background:#fff;
	max-width:1040px;
	margin:clamp(64px,8vw,100px) auto 64px;
	padding:clamp(18px,2.6vw,28px);
	border:1px solid var(--border);
	border-radius:16px;
	box-shadow:0 10px 26px rgba(0,0,0,.06);
	line-height:1.75;
	font-size:16px;
}

/* タイトル／カテゴリ */
.miyell-single-fes .entry-header{margin:0 0 16px}
.miyell-single-fes .entry-title{
	margin:0 0 .35em;
	font-weight:800;
	font-size:clamp(1.7rem,3.2vw,2.1rem);
	line-height:1.25;
	word-break:keep-all;
}
.miyell-single-fes .term-list{
	display:flex; flex-wrap:wrap; gap:8px;
	list-style:none; margin:0; padding:0;
}
.miyell-single-fes .term-list .term{
	font-size:.85rem; color:#374151; background:var(--chip);
	border:1px solid #dbe4ff; padding:.25em .6em; border-radius:999px;
}

/* 2カラム（モバイル→1col / md→2col） */
.miyell-single-fes .summary-two-col{
	display:grid; gap:18px; margin:18px 0 22px;
	grid-template-columns:1fr;
}
@media (min-width: 900px){
	.miyell-single-fes .summary-two-col{
		grid-template-columns: minmax(0,1fr) minmax(0,420px);
		align-items:start;
	}
}

/* ギャラリー（見切れ防止：contain で中央配置） */
.miyell-single-fes .miyell-gallery{display:block}
.miyell-single-fes .miyell-gallery .g-viewport{
	background:var(--soft);
	border:1px solid var(--border);
	border-radius:12px;
	aspect-ratio:16/9;
	display:flex; align-items:center; justify-content:center;
	overflow:hidden;                 /* 画像は contain なので見切れない */
}
.miyell-single-fes .miyell-gallery .g-viewport img{
	max-width:100%; max-height:100%;
	width:auto; height:auto; object-fit:contain; display:block;
}

/* サムネイル */
.miyell-single-fes .miyell-gallery .g-thumbs{
	display:flex; gap:8px; list-style:none; margin:10px 0 0; padding:0;
	overflow-x:auto; -webkit-overflow-scrolling:touch;
}
.miyell-single-fes .miyell-gallery .g-thumbs .g-thumb a{
	display:block; width:80px; height:60px; border-radius:8px; overflow:hidden;
	border:1px solid var(--border); background:#fff; flex:0 0 auto;
}
.miyell-single-fes .miyell-gallery .g-thumbs img{
	width:100%; height:100%; object-fit:cover; display:block;
}

/* 右サマリー（ラベル＋値の2列グリッド） */
.miyell-single-fes .info-col{background:#fff}
.miyell-single-fes .info-col .meta{
	list-style:none; margin:0; padding:0;
	border:1px solid var(--border); border-radius:12px;
}
.miyell-single-fes .info-col .meta li{
	display:grid; grid-template-columns: var(--label-w) 1fr; column-gap:12px;
	align-items:start; min-width:0;
	padding:12px 14px; border-bottom:1px solid var(--border);
}
.miyell-single-fes .info-col .meta li:last-child{border-bottom:none}
.miyell-single-fes .info-col .meta strong{
	font-weight:700; color:#111; white-space:nowrap;
}
.miyell-single-fes .info-col .meta span{
	color:var(--fg);
	min-width:0;
	overflow-wrap:anywhere;        /* ▼はみ出し対策 */
	word-break:break-word;
}

/* 連絡先 */
.miyell-single-fes .section-contacts{margin:22px 0}
.miyell-single-fes .section-contacts .contacts{
	list-style:none; margin:0; padding:0;
	display:grid; gap:8px;
}
.miyell-single-fes .section-contacts .contacts li{
	display:grid; grid-template-columns: var(--label-w) 1fr; column-gap:12px;
	align-items:start; min-width:0;
	padding:12px 14px; border:1px solid var(--border);
	border-radius:12px; background:#fff;
}
.miyell-single-fes .section-contacts .contacts strong{
	font-weight:700; white-space:nowrap;
}
.miyell-single-fes .section-contacts .contacts span{
	min-width:0; overflow-wrap:anywhere; word-break:break-word;
}
.miyell-single-fes .section-contacts a{
	color:#2563eb; text-decoration:none;
}
.miyell-single-fes .section-contacts a:hover{text-decoration:underline}

/* 本文（タイポ統一） */
.miyell-single-fes .entry-content{
	margin:28px 0 18px; font-size:1rem;
}
.miyell-single-fes .entry-content h2{
	margin:1.8em 0 .6em; font-size:clamp(1.2rem,2.2vw,1.5rem); line-height:1.35;
}
.miyell-single-fes .entry-content h3{
	margin:1.6em 0 .5em; font-size:clamp(1.05rem,1.8vw,1.25rem);
}
.miyell-single-fes .entry-content p{margin:0 0 1em}
.miyell-single-fes .entry-content ul,
.miyell-single-fes .entry-content ol{padding-left:1.2em; margin:0 0 1em}
.miyell-single-fes .entry-content img,
.miyell-single-fes .entry-content figure{max-width:100%; height:auto}

/* 地図（レスポンシブ埋め込み） */
.miyell-single-fes .section-map{margin:28px 0 6px}
.miyell-single-fes .section-map h2{
	margin:0 0 10px; font-size:clamp(1.1rem,2vw,1.35rem);
}
.miyell-single-fes .map-embed{
	position:relative; width:100%; padding-top:56.25%;
	border:1px solid var(--border); border-radius:12px; overflow:hidden; background:#fff;
}
.miyell-single-fes .map-embed iframe,
.miyell-single-fes .map-embed > *:is(iframe,div) iframe{
	position:absolute; inset:0; width:100%; height:100%; border:0; display:block;
}

/* フッター操作（戻る／前後ナビ） */
.miyell-single-fes .entry-footer{margin:22px 0 0}
.miyell-single-fes .footer-actions{
	display:flex; flex-direction:column; gap:12px;
}
@media (min-width: 700px){
	.miyell-single-fes .footer-actions{flex-direction:row; justify-content:space-between; align-items:center}
}
.miyell-single-fes .btn-back{
	display:inline-flex; align-items:center; justify-content:center;
	padding:.6em 1em; border:1px solid var(--border); border-radius:999px;
	text-decoration:none; color:#111; background:#fff;
}
.miyell-single-fes .btn-back:hover{background:#f9fafb}
.miyell-single-fes .pager{
	display:flex; gap:10px; flex-wrap:wrap;
}
.miyell-single-fes .pager a{
	display:block; text-decoration:none; border:1px solid var(--border);
	border-radius:12px; padding:.55em .8em; background:#fff; min-width:220px;
}
.miyell-single-fes .pager .pager_label{
	display:block; font-size:.78rem; color:var(--muted); margin-bottom:.15em;
}
.miyell-single-fes .pager .pager_title{
	display:block; color:#111; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* 管理者編集リンク */
.miyell-single-fes .admin-edit{margin-top:10px; font-size:.9rem}
.miyell-single-fes .admin-edit a{color:#6b7280; text-decoration:none}
.miyell-single-fes .admin-edit a:hover{text-decoration:underline}

/* 余白・細部調整（共通） */
.miyell-single-fes a{word-break:break-all}
.miyell-single-fes img{image-rendering:auto}

/* ダークモード環境でも白背景を維持 */
@media (prefers-color-scheme: dark){
	.miyell-single-fes{background:#fff; color:#111}
}

/* アニメ苦手配慮（現状アニメなしだが将来用） */
@media (prefers-reduced-motion: reduce){
	*{transition:none !important; animation:none !important}
}

/* ===== Welcart 商品一覧（/category/item/ ほか） ===== */
.miyell-archive{
	--fg:#111; --muted:#6b7280; --border:#e6e8ec; --chip:#eef2ff;
	--gap:16px;
	color:var(--fg); background:#fff;
	max-width:1120px; margin:clamp(56px,7vw,90px) auto 64px;
	padding:clamp(16px,2.4vw,28px);
	border:1px solid var(--border); border-radius:16px;
	box-shadow:0 10px 26px rgba(0,0,0,.06);
	line-height:1.75; font-size:16px;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
}

/* 見出し */
.miyell-archive .archive-head{margin:0 0 14px}
.miyell-archive .archive-title{
	margin:0 0 .35em; font-weight:800; font-size:clamp(1.7rem,3.2vw,2.1rem); line-height:1.25;
}

/* タブ */
.miyell-archive .term-filter{
	display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none;
}
.miyell-archive .term-filter a{
	display:inline-block; padding:.3em .7em; border:1px solid #dbe4ff;
	border-radius:999px; background:var(--chip); color:#374151; text-decoration:none; font-size:.85rem;
}
.miyell-archive .term-filter a:hover{background:#e9eeff}
.miyell-archive .term-filter a.is-active{
	background:#111; color:#fff; border-color:#111;
}

/* カードグリッド */
.miyell-archive .cards{
	display:grid; gap:var(--gap);
	grid-template-columns: repeat(1, minmax(0,1fr));
}
@media (min-width:700px){
	.miyell-archive .cards{grid-template-columns: repeat(2, minmax(0,1fr))}
}
@media (min-width:1024px){
	.miyell-archive .cards{grid-template-columns: repeat(3, minmax(0,1fr))}
}

/* カード */
.miyell-archive .card{
	display:flex; flex-direction:column; background:#fff;
	border:1px solid var(--border); border-radius:14px; overflow:hidden;
}
.miyell-archive .card-media{
	display:block; background:#f6f7f9; aspect-ratio:16/9; overflow:hidden;
}
.miyell-archive .card-media img{
	width:100%; height:100%; object-fit:cover; display:block;
}
.miyell-archive .card-media .ph{width:100%; height:100%; background:#eef1f6}

.miyell-archive .card-body{padding:14px 14px 16px}
.miyell-archive .card-title{
	font-size:1.05rem; line-height:1.45; margin:0 0 .35em; font-weight:700;
}
.miyell-archive .card-title a{text-decoration:none; color:var(--fg)}
.miyell-archive .card-title a:hover{text-decoration:underline}

/* メタ（はみ出し対策つきチップ） */
.miyell-archive .card-meta{
	display:flex; flex-wrap:wrap; gap:6px 8px; margin:0 0 .5em; font-size:.9rem; color:#374151;
}
.miyell-archive .card-meta .m{
	display:inline-flex; align-items:center; gap:.35em;
	padding:.1em .55em; border:1px solid var(--border); border-radius:999px; background:#fff;
	max-width:100%; overflow-wrap:anywhere; word-break:break-word;
}

/* 抜粋 */
.miyell-archive .card-excerpt{
	margin:0 0 .9em; color:#374151;
	display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}

/* ボタン */
.miyell-archive .card-actions{display:flex; gap:8px; flex-wrap:wrap}
.miyell-archive .btn{
	display:inline-flex; align-items:center; justify-content:center; gap:.4em;
	padding:.55em .9em; border-radius:999px; text-decoration:none; font-weight:600; font-size:.95rem;
	border:1px solid var(--border); background:#fff; color:#111;
}
.miyell-archive .btn:hover{background:#f9fafb}

/* ページャ */
.miyell-archive .archive-pager{margin:18px 0 0}
.miyell-archive .navigation.pagination{display:flex; justify-content:center}
.miyell-archive .page-numbers{
	display:inline-flex; align-items:center; justify-content:center;
	min-width:38px; height:38px; margin:0 4px; padding:0 .6em;
	border:1px solid var(--border); border-radius:10px; text-decoration:none; color:#111; background:#fff
}
.miyell-archive .page-numbers.current{background:#111; color:#fff; border-color:#111}

/* 共通のはみ出し対策 */
.miyell-archive *{min-width:0}
.miyell-archive a{word-break:break-word; overflow-wrap:anywhere}
.miyell-archive img{image-rendering:auto}

/* ダークモードでも白背景を維持 */
@media (prefers-color-scheme: dark){
	.miyell-archive{background:#fff; color:#111}
}
/* ==== Mainコンテナ余白の正規化（画面用） ======================= */
@media screen {
	:root{
		/* 必要に応じてここだけ変えれば全ページ反映 */
		--content-top: clamp(84px, 9.5vw, 120px);
		--content-bottom: 64px;
	}

	/* 対象：アーカイブ/単一/固定ページ系のmain＋一部wrap */
	main.miyell-archive,
	main.miyell-page,
	main.miyell-single,
	main.miyell-single-school,
	main.miyell-single-event,
	main.miyell-single-fes,
	main.miyell-single-item,
	.sub-wrap {
		margin: var(--content-top) auto var(--content-bottom) !important;
	}
}

/* （任意）幅も揃えたい場合は下を有効化
@media screen {
  :root{ --content-max: 1040px; }
  main.miyell-archive,
  main.miyell-page,
  main.miyell-single,
  main.miyell-single-school,
  main.miyell-single-event,
  main.miyell-single-fes,
  main.miyell-single-item {
    max-width: var(--content-max) !important;
  }
}
*/
/* ===== アーカイブ専用（index/home には当てない） ===== */

/* コンテナ（幅・余白） */
.archive.post-type-archive-event .cards-section,
.archive.post-type-archive-fes .cards-section,
.archive.post-type-archive-school .cards-section{
	--fg:#111; --muted:#6b7280; --border:#e6e8ec; --chip:#eef2ff; --gap:16px;
	color:var(--fg);
	background:#fff;
	max-width:1040px;
	margin:clamp(84px,10vw,120px) auto 64px;
	padding:clamp(20px,2.8vw,36px);
	border:1px solid var(--border);
	border-radius:16px;
	box-shadow:0 10px 26px rgba(0,0,0,.06);
	line-height:1.75;
	font-size:16px;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
}

/* 見出し/タグ */
.archive.post-type-archive-event .cards-section .section-title,
.archive.post-type-archive-fes .cards-section .section-title,
.archive.post-type-archive-school .cards-section .section-title{
	margin:0 0 .35em; font-weight:800; font-size:clamp(1.7rem,3.2vw,2.1rem); color:#111; text-align:left;
}
.archive.post-type-archive-event .cards-section .archive-desc,
.archive.post-type-archive-fes .cards-section .archive-desc,
.archive.post-type-archive-school .cards-section .archive-desc{ margin:0 0 14px; color:var(--muted); }
.archive.post-type-archive-event .cards-section .tags,
.archive.post-type-archive-fes .cards-section .tags,
.archive.post-type-archive-school .cards-section .tags{
	display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; padding:0; list-style:none;
}
.archive.post-type-archive-event .cards-section .tags a,
.archive.post-type-archive-fes .cards-section .tags a,
.archive.post-type-archive-school .cards-section .tags a{
	display:inline-block; padding:.3em .7em; border:1px solid #dbe4ff;
	border-radius:999px; background:var(--chip); color:#374151; text-decoration:none; font-size:.85rem;
}
.archive.post-type-archive-event .cards-section .tags a:hover,
.archive.post-type-archive-fes .cards-section .tags a:hover,
.archive.post-type-archive-school .cards-section .tags a:hover{ background:#e9eeff; }

/* グリッド */
.archive.post-type-archive-event .cards-section .cards,
.archive.post-type-archive-fes .cards-section .cards,
.archive.post-type-archive-school .cards-section .cards{
	display:grid; gap:var(--gap); grid-template-columns: repeat(1, minmax(0,1fr));
}
@media (min-width:700px){
	.archive.post-type-archive-event .cards-section .cards,
	.archive.post-type-archive-fes .cards-section .cards,
	.archive.post-type-archive-school .cards-section .cards{
		grid-template-columns: repeat(2, minmax(0,1fr));
	}
}
@media (min-width:1024px){
	.archive.post-type-archive-event .cards-section .cards,
	.archive.post-type-archive-fes .cards-section .cards,
	.archive.post-type-archive-school .cards-section .cards{
		grid-template-columns: repeat(3, minmax(0,1fr));
	}
}

/* カード */
.archive.post-type-archive-event .cards-section .card,
.archive.post-type-archive-fes .cards-section .card,
.archive.post-type-archive-school .cards-section .card{
	display:flex; flex-direction:column; background:#fff;
	border:1px solid var(--border); border-radius:14px; overflow:hidden;
}
.archive.post-type-archive-event .cards-section .card .card-media,
.archive.post-type-archive-fes .cards-section .card .card-media,
.archive.post-type-archive-school .cards-section .card .card-media{
	display:block; background:#f6f7f9; aspect-ratio:16/9; overflow:hidden;
}
.archive.post-type-archive-event .cards-section .card .card-media img,
.archive.post-type-archive-fes .cards-section .card .card-media img,
.archive.post-type-archive-school .cards-section .card .card-media img{
	width:100%; height:100%; object-fit:cover; display:block;
}
.archive.post-type-archive-event .cards-section .card .card-body,
.archive.post-type-archive-fes .cards-section .card .card-body,
.archive.post-type-archive-school .cards-section .card .card-body{ padding:14px 14px 16px; }
.archive.post-type-archive-event .cards-section .card .card-title,
.archive.post-type-archive-fes .cards-section .card .card-title,
.archive.post-type-archive-school .cards-section .card .card-title{
	font-size:1.05rem; line-height:1.45; margin:0 0 .35em; font-weight:700;
}
.archive.post-type-archive-event .cards-section .card .card-title a,
.archive.post-type-archive-fes .cards-section .card .card-title a,
.archive.post-type-archive-school .cards-section .card .card-title a{ text-decoration:none; color:#111; }
.archive.post-type-archive-event .cards-section .card .card-title a:hover,
.archive.post-type-archive-fes .cards-section .card .card-title a:hover,
.archive.post-type-archive-school .cards-section .card .card-title a:hover{ text-decoration:underline; }
.archive.post-type-archive-event .cards-section .card .card-meta,
.archive.post-type-archive-fes .cards-section .card .card-meta,
.archive.post-type-archive-school .cards-section .card .card-meta{
	display:flex; flex-wrap:wrap; gap:6px 8px; margin:0 0 .5em; font-size:.9rem; color:#374151;
}
.archive.post-type-archive-event .cards-section .card .card-meta .m,
.archive.post-type-archive-fes .cards-section .card .card-meta .m,
.archive.post-type-archive-school .cards-section .card .card-meta .m{
	display:inline-flex; align-items:center; gap:.35em;
	padding:.1em .55em; border:1px solid var(--border); border-radius:999px; background:#fff;
	max-width:100%; overflow-wrap:anywhere;
}
.archive.post-type-archive-event .cards-section .card .card-excerpt,
.archive.post-type-archive-fes .cards-section .card .card-excerpt,
.archive.post-type-archive-school .cards-section .card .card-excerpt{
	margin:0 0 .9em; color:#374151;
	display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.archive.post-type-archive-event .cards-section .card .card-actions,
.archive.post-type-archive-fes .cards-section .card .card-actions,
.archive.post-type-archive-school .cards-section .card .card-actions{ display:flex; gap:8px; flex-wrap:wrap; }

/* ページャ */
.archive.post-type-archive-event .cards-section .pagination-wrap,
.archive.post-type-archive-fes .cards-section .pagination-wrap,
.archive.post-type-archive-school .cards-section .pagination-wrap{
	display:flex; justify-content:center; margin-top:18px;
}

/* ===== コンテンツ（企業向け） page-contents ===== */
.miyell-page-contents{
	--fg:#111; --muted:#6b7280; --border:#e6e8ec; --chip:#eef2ff;
	color:var(--fg); background:#fff;
	max-width:1040px;
	margin:clamp(84px,10vw,120px) auto 64px;
	padding:clamp(20px,2.8vw,36px);
	border:1px solid var(--border); border-radius:16px;
	box-shadow:0 10px 26px rgba(0,0,0,.06);
	line-height:1.75; font-size:16px;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
}

/* HERO */
.miyell-page-contents .hero-title{
	margin:0 0 .35em; font-weight:800; font-size:clamp(1.8rem,3.2vw,2.2rem);
}
.miyell-page-contents .hero-lead{ color:var(--muted); margin:0 0 12px; }
.miyell-page-contents .btn{
	display:inline-flex; align-items:center; justify-content:center;
	padding:.6em 1.1em; border-radius:999px; text-decoration:none; font-weight:700;
	border:1px solid var(--border); background:#fff; color:#111;
}
.miyell-page-contents .btn-primary{ border-color:#dbeafe; background:#eff6ff; color:#1d4ed8; }
.miyell-page-contents .btn-primary:hover{ background:#e8f0ff; }

/* セクション共通 */
.miyell-page-contents .sec-title{ margin:1.6em 0 .6em; font-size:clamp(1.3rem,2.3vw,1.6rem); font-weight:800; }
.miyell-page-contents .how .steps{ counter-reset:n; list-style:none; margin:.4em 0 0; padding:0; display:grid; gap:8px; }
.miyell-page-contents .how .steps li{ border:1px solid var(--border); border-radius:12px; padding:10px 12px; background:#fff; }
.miyell-page-contents .how .steps li strong{ margin-right:.5em; }

/* 例（グリッド） */
.miyell-page-contents .content-grid{ display:grid; gap:16px; grid-template-columns:repeat(1,minmax(0,1fr)); }
@media (min-width:700px){ .miyell-page-contents .content-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px){ .miyell-page-contents .content-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }

.miyell-page-contents .content-card{
	display:flex; flex-direction:column; background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden;
}
.miyell-page-contents .content-card .media{ display:block; background:#f6f7f9; aspect-ratio:16/9; overflow:hidden; }
.miyell-page-contents .content-card .media img{ width:100%; height:100%; object-fit:cover; display:block; }
.miyell-page-contents .content-card .media .ph{ width:100%; height:100%; background:#eef1f6; }

.miyell-page-contents .content-card .body{ padding:14px 14px 16px; }
.miyell-page-contents .content-card .title{ font-size:1.05rem; line-height:1.45; margin:0 0 .35em; font-weight:700; }
.miyell-page-contents .content-card .title a{ text-decoration:none; color:#111; }
.miyell-page-contents .content-card .title a:hover{ text-decoration:underline; }

.miyell-page-contents .content-card .meta{ list-style:none; margin:0 0 .6em; padding:0; display:grid; row-gap:6px; }
.miyell-page-contents .content-card .meta li{ display:grid; grid-template-columns:9.5em 1fr; column-gap:10px; }
.miyell-page-contents .content-card .meta strong{ white-space:nowrap; }
.miyell-page-contents .content-card .meta span{ overflow-wrap:anywhere; }

.miyell-page-contents .content-card .desc{ color:#374151; margin:0 0 .8em; }

.miyell-page-contents .content-card .gallery{
	display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 0 .6em;
}
.miyell-page-contents .content-card .gallery img{
	width:96px; height:72px; object-fit:cover; border-radius:8px; border:1px solid var(--border); flex:0 0 auto;
}

.miyell-page-contents .sponsors .label{ font-weight:700; margin:0 0 .3em; }
.miyell-page-contents .sponsor-list{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.miyell-page-contents .sponsor-list a, .miyell-page-contents .sponsor-list span{
	display:inline-block; padding:.15em .6em; border:1px solid var(--border); border-radius:999px; background:#fff; color:#111; text-decoration:none;
}

/* 企業さまへ */
.miyell-page-contents .for-corp .benefits, 
.miyell-page-contents .for-corp .supports{
	border:1px solid var(--border); border-radius:12px; padding:12px; background:#fff; margin-bottom:10px;
}
.miyell-page-contents .for-corp ul{ margin:.2em 0 0 1.1em; }
.miyell-page-contents .for-corp .cta-box{ margin-top:12px; }

/* ページャ */
.miyell-page-contents .archive-pager{ margin:18px 0 0; }
.miyell-page-contents .page-numbers{
	display:inline-flex; align-items:center; justify-content:center;
	min-width:38px; height:38px; margin:0 4px; padding:0 .6em; border:1px solid var(--border); border-radius:10px; text-decoration:none; color:#111; background:#fff;
}
.miyell-page-contents .page-numbers.current{ background:#111; color:#fff; border-color:#111; }
/* ===== Contents Page ===== */
.miyell-page-contents .page-hero{
	padding: clamp(48px,6vw,72px) 1.5rem 1rem;
}
.page-hero__inner{max-width:980px;margin:0 auto;text-align:center}
.page-hero__title{
	font-size: clamp(1.8rem, 4.5vw, 2.6rem);
	font-weight: 800;
	letter-spacing: .02em;
	margin: 0 0 .75rem;
}
.page-hero__lead{
	font-size: clamp(1rem, 2.6vw, 1.08rem);
	color:#4b5563; line-height:1.9; margin:0 auto 1.25rem; max-width:850px;
}
.hero-cta .btn-primary{
	display:inline-block; padding:.9rem 1.6rem; border-radius:999px;
	background: var(--color-primary, #21b573); color:#fff; font-weight:700; text-decoration:none;
}
.hero-cta .btn-primary:hover{ filter: brightness(.95); }

/* ===== Contents：3ステップ（画像つき） ===== */
.content-steps{ padding: 1rem 1.5rem 0; }
.content-steps .steps{
	max-width: 980px; margin: 0 auto;
	display:grid; gap:16px; grid-template-columns:1fr;
}
@media (min-width: 900px){
	.content-steps .steps{ grid-template-columns: repeat(3, 1fr); }
}

.content-steps .step{
	background:#fff; border:1px solid var(--border); border-radius:14px;
	box-shadow:0 6px 16px rgba(0,0,0,.08);
	overflow:hidden; display:flex; flex-direction:column;
}

/* 画像：16:9でトリミング、上辺だけ角丸 */
.content-steps .step-media{
	aspect-ratio:16/9; background:#f6f7f9;
}
.content-steps .step-media img{
	width:100%; height:100%; object-fit:cover; display:block;
}

/* テキスト */
.content-steps .step-body{ padding:12px 12px 14px; }
.content-steps .step h3{
	font-weight:800; font-size:1.05rem; margin:.2rem 0 .4rem;
}
.content-steps .step p{
	color:#4b5563; font-size:.95rem; line-height:1.7; margin:0;
}

/* Term chips below examples */
.term-chips{
	max-width: 1200px; margin: 1.25rem auto 0; display:flex; flex-wrap:wrap; gap:.5rem;
	justify-content:center;
}
.chip{
	display:inline-block; padding:.4rem .8rem; border-radius:999px; 
	background:#eef2ff; color:#374151; font-weight:700; font-size:.85rem; text-decoration:none;
	border:1px solid #dbeafe;
}
.chip:hover{ background:#dbeafe; }

/* Supporters CTA */
.supporters-cta{
	text-align:center; padding: 3.5rem 1.5rem 4rem; margin-top: .5rem;
	background: radial-gradient(1200px 360px at 50% 0%, #f0fff6 0%, #fff 75%);
}
.supporters-cta h2{ font-size: clamp(1.4rem, 3.8vw, 2rem); font-weight:800; margin:0 0 .6rem; }
.supporters-cta p{ color:#374151; font-size:1rem; line-height:1.9; margin:0 auto 1.2rem; max-width:820px; }
.supporters-cta .btn-primary{ display:inline-block; padding:.9rem 1.6rem; border-radius:999px; background:#21b573; color:#fff; font-weight:700; text-decoration:none; }
.supporters-cta .btn-primary:hover{ filter:brightness(.95); }
/* ===== お知らせ：一覧を見るボタン ===== */
#news .news-more{ 
	margin-top: 16px; 
	text-align: center; 
}

#news .news-more .btn{
	--btn-bg:#fff;
	--btn-fg:#111;
	--btn-bd: var(--border, #e6e8ec);

	display:inline-flex; align-items:center; gap:.5em;
	padding:.65em 1.1em;
	border:1px solid var(--btn-bd);
	border-radius:999px;
	background:var(--btn-bg);
	color:var(--btn-fg);
	text-decoration:none; font-weight:700; font-size:.95rem;
	box-shadow:0 4px 12px rgba(0,0,0,.06);
	transition:background .2s, border-color .2s, box-shadow .2s, transform .03s;
}

#news .news-more .btn::after{
	content:"→"; font-weight:700; transform:translateX(0);
	transition:transform .2s;
}

#news .news-more .btn:hover{
	background:#f7faff;
	border-color:#d0e2ff;
	box-shadow:0 6px 16px rgba(0,0,0,.08);
}

#news .news-more .btn:hover::after{ transform:translateX(2px); }

#news .news-more .btn:active{
	transform:translateY(1px);
	box-shadow:0 3px 8px rgba(0,0,0,.08);
}

#news .news-more .btn:focus-visible{
	outline:2px solid #9cc3ff;
	outline-offset:2px;
}

/*（任意）ダークモードでも白ボタンのままにする */
@media (prefers-color-scheme: dark){
	#news .news-more .btn{ --btn-bg:#fff; --btn-fg:#111; }
}
/* ===== single: information（news） ===== */
.miyell-single.miyell-single-news .entry-hero{ margin-bottom: 12px; }
.miyell-single.miyell-single-news .entry-hero .hero-img{
	width:100%; height:auto; display:block; border-radius:12px;
}

.miyell-single.miyell-single-news .entry-title{
	margin:.4em 0 .2em; font-weight:800;
	font-size:clamp(1.6rem,3.2vw,2.1rem); line-height:1.25;
}
.miyell-single.miyell-single-news .entry-meta{
	display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center;
	color:#6b7280; font-size:.92rem;
}
.miyell-single.miyell-single-news .tag-list{
	display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none;
}
.miyell-single.miyell-single-news .tag-list a{
	display:inline-block; padding:.15em .6em; border:1px solid #e6e8ec;
	border-radius:999px; background:#fff; color:#111; text-decoration:none; font-size:.85rem;
}
.miyell-single.miyell-single-news .tag-list a:hover{ background:#f7faff; border-color:#d0e2ff; }

/* 本文の可読性（画像・キャプション・左右寄せ） */
.miyell-single.miyell-single-news .entry-content > * + *{ margin-top:1.1em; }
.miyell-single.miyell-single-news .entry-content img{
	max-width:100%; height:auto; display:block; margin:0 auto; border-radius:10px;
}
.miyell-single.miyell-single-news .entry-content figure{ margin:1.2em auto; }
.miyell-single.miyell-single-news .entry-content figcaption{
	margin-top:.4em; text-align:center; font-size:.85rem; color:#6b7280;
}

/* Gutenbergの整列クラス対応 */
.miyell-single.miyell-single-news .entry-content .aligncenter,
.miyell-single.miyell-single-news .entry-content img.aligncenter,
.miyell-single.miyell-single-news .entry-content figure.aligncenter{ margin-left:auto; margin-right:auto; }
.miyell-single.miyell-single-news .entry-content .alignleft,
.miyell-single.miyell-single-news .entry-content img.alignleft,
.miyell-single.miyell-single-news .entry-content figure.alignleft{
	float:left; margin:.15em 1em .6em 0; max-width:calc(50% - .5em);
}
.miyell-single.miyell-single-news .entry-content .alignright,
.miyell-single.miyell-single-news .entry-content img.alignright,
.miyell-single.miyell-single-news .entry-content figure.alignright{
	float:right; margin:.15em 0 .6em 1em; max-width:calc(50% - .5em);
}
@media (max-width: 720px){
	.miyell-single.miyell-single-news .entry-content .alignleft,
	.miyell-single.miyell-single-news .entry-content .alignright,
	.miyell-single.miyell-single-news .entry-content img.alignleft,
	.miyell-single.miyell-single-news .entry-content img.alignright,
	.miyell-single.miyell-single-news .entry-content figure.alignleft,
	.miyell-single.miyell-single-news .entry-content figure.alignright{
		float:none; margin:.5em auto; max-width:100%;
	}
}
.miyell-single.miyell-single-news .entry-content::after{ content:""; display:block; clear:both; }

/* フッター（戻る・前後ナビ） */
.miyell-single.miyell-single-news .entry-footer{
	margin-top:1.6em; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; align-items:center;
}
.miyell-single.miyell-single-news .btn-back{
	display:inline-flex; align-items:center; gap:.4em;
	padding:.55em 1em; border:1px solid #e6e8ec; border-radius:999px;
	text-decoration:none; background:#fff; color:#111; font-weight:700;
}

.miyell-single.miyell-single-news .post-nav a:hover{ border-color:#111; }
/* ===== single: information（news） ===== */
.miyell-single.miyell-single-news{
	max-width:1040px; margin:clamp(84px,10vw,120px) auto 64px; padding:clamp(20px,2.8vw,36px);
	background:#fff; border:1px solid #e6e8ec; border-radius:16px; box-shadow:0 10px 26px rgba(0,0,0,.06);
	line-height:1.8; color:#111;
}

/* Hero */
.miyell-single.miyell-single-news .single-hero{
	margin:0 0 14px; border-radius:14px; overflow:hidden; background:#f6f7f9; aspect-ratio:16/7;
}
.miyell-single.miyell-single-news .single-hero img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Header */
.miyell-single.miyell-single-news .single-title{
	margin:.2em 0 .15em; font-weight:800; font-size:clamp(1.7rem,3.4vw,2.25rem); line-height:1.25;
}
.miyell-single.miyell-single-news .single-meta{
	display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center; color:#6b7280; font-size:.92rem;
}
.miyell-single.miyell-single-news .chip-list{ display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.miyell-single.miyell-single-news .chip{
	display:inline-block; padding:.18em .65em; border:1px solid #e6e8ec; border-radius:999px; background:#fff; color:#111;
	text-decoration:none; font-size:.85rem; font-weight:700;
}
.miyell-single.miyell-single-news .chip:hover{ background:#f7faff; border-color:#d0e2ff; }
.miyell-single.miyell-single-news .chip--report{ background:#E8F0FF; border-color:#D0E2FF; color:#1d4ed8; }
.miyell-single.miyell-single-news .chip--school{ background:#E8FFF4; border-color:#C8F6E4; color:#0F766E; }

/* Body（読みやすい幅に） */
.miyell-single.miyell-single-news .single-body{ max-width:780px; margin: .6em auto 0; }
.miyell-single.miyell-single-news .single-body > * + *{ margin-top:1.1em; }
.miyell-single.miyell-single-news .single-body p{ margin:0; }
.miyell-single.miyell-single-news .single-body h2{ font-size:1.35rem; margin:1.1em 0 .4em; font-weight:800; }
.miyell-single.miyell-single-news .single-body h3{ font-size:1.12rem; margin:1em 0 .35em; font-weight:800; }
.miyell-single.miyell-single-news .single-body ul, 
.miyell-single.miyell-single-news .single-body ol{ padding-left:1.2em; }
.miyell-single.miyell-single-news .single-body a{ color:#0f766e; }

/* 本文内の画像・整列 */
.miyell-single.miyell-single-news .entry-content img{
	max-width:100%; height:auto; display:block; margin: .8em auto; border-radius:10px;
}
.miyell-single.miyell-single-news .entry-content figure{ margin:1.2em auto; }
.miyell-single.miyell-single-news .entry-content figcaption{ margin-top:.4em; text-align:center; font-size:.85rem; color:#6b7280; }

/* Gutenberg align */
.miyell-single.miyell-single-news .entry-content .aligncenter,
.miyell-single.miyell-single-news .entry-content img.aligncenter,
.miyell-single.miyell-single-news .entry-content figure.aligncenter{ margin-left:auto; margin-right:auto; }
.miyell-single.miyell-single-news .entry-content .alignleft,
.miyell-single.miyell-single-news .entry-content img.alignleft,
.miyell-single.miyell-single-news .entry-content figure.alignleft{
	float:left; margin:.15em 1em .6em 0; max-width:min(50%, 380px);
}
.miyell-single.miyell-single-news .entry-content .alignright,
.miyell-single.miyell-single-news .entry-content img.alignright,
.miyell-single.miyell-single-news .entry-content figure.alignright{
	float:right; margin:.15em 0 .6em 1em; max-width:min(50%, 380px);
}
@media (max-width: 720px){
	.miyell-single.miyell-single-news .entry-content .alignleft,
	.miyell-single.miyell-single-news .entry-content .alignright,
	.miyell-single.miyell-single-news .entry-content img.alignleft,
	.miyell-single.miyell-single-news .entry-content img.alignright,
	.miyell-single.miyell-single-news .entry-content figure.alignleft,
	.miyell-single.miyell-single-news .entry-content figure.alignright{
		float:none; margin:.5em auto; max-width:100%;
	}
}
.miyell-single.miyell-single-news .entry-content::after{ content:""; display:block; clear:both; }

/* Footer */
.miyell-single.miyell-single-news .single-foot{
	max-width:780px; margin: 1.6em auto 0; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; align-items:center;
}
.miyell-single.miyell-single-news .btn-back{
	display:inline-flex; align-items:center; gap:.4em; padding:.55em 1em; border:1px solid #e6e8ec; border-radius:999px;
	text-decoration:none; background:#fff; color:#111; font-weight:700;
}
.miyell-single.miyell-single-news .btn-back:hover{ background:#f7faff; border-color:#d0e2ff; }
.miyell-single.miyell-single-news .post-nav{ display:flex; gap:12px; }
.miyell-single.miyell-single-news .post-nav a{ text-decoration:none; color:#111; border-bottom:1px solid #e5e7eb; padding-bottom:2px; }
.miyell-single.miyell-single-news .post-nav a:hover{ border-color:#111; }
/* ===== single: information（装飾強化） ===== */
.miyell-single.miyell-single-news{
	max-width:1040px; margin:clamp(84px,10vw,120px) auto 64px; padding:clamp(20px,2.8vw,36px);
	background:#fff; border:1px solid #e6e8ec; border-radius:16px; box-shadow:0 10px 26px rgba(0,0,0,.06);
	line-height:1.8; color:#111;
}

/* Hero */
.miyell-single.miyell-single-news .single-hero{
	margin:0 0 14px; border-radius:14px; overflow:hidden; background:#f6f7f9; aspect-ratio:16/7;
}
.miyell-single.miyell-single-news .single-hero img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Header */
.miyell-single.miyell-single-news .single-title{
	margin:.15em 0 .2em; font-weight:800; font-size:clamp(1.8rem,3.6vw,2.4rem); line-height:1.22;
}

/* Meta */
.miyell-single.miyell-single-news .single-meta{
	display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; color:#6b7280; font-size:.92rem;
}
.miyell-single.miyell-single-news .single-meta .meta{
	display:inline-flex; align-items:center; gap:.35em; padding:.22em .6em; border:1px solid #eef0f4; border-radius:999px; background:#fafbff;
}
.miyell-single.miyell-single-news .single-meta .m-date{ color:#334155; background:#eef6ff; border-color:#dbeafe; }
.miyell-single.miyell-single-news .single-meta .m-updated{ color:#3f3f46; background:#f5f5f5; border-color:#e7e7e7; }
.miyell-single.miyell-single-news .single-meta .sep{ opacity:.5; padding:0 .1em; }
.miyell-single.miyell-single-news .single-meta .i{
	width:18px; height:18px; flex:0 0 18px; opacity:.9;
}
.miyell-single.miyell-single-news .single-meta .i-cal{ color:#2563eb; }
.miyell-single.miyell-single-news .single-meta .i-up{ color:#6b7280; }

/* タグ Chips */
.miyell-single.miyell-single-news .chip-list{ display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.miyell-single.miyell-single-news .chip{
	display:inline-flex; align-items:center; gap:.35em;
	padding:.24em .65em; border:1px solid transparent; border-radius:999px; text-decoration:none;
	font-size:.85rem; font-weight:700; line-height:1.4;
	transition:filter .2s, transform .02s, box-shadow .2s;
}
.miyell-single.miyell-single-news .chip .i{ width:16px; height:16px; flex:0 0 16px; }

/* 色バリエーション */
.miyell-single.miyell-single-news .chip--report{ background:#E8F0FF; border-color:#D0E2FF; color:#1d4ed8; }
.miyell-single.miyell-single-news .chip--school{ background:#E8FFF4; border-color:#C8F6E4; color:#0F766E; }
.miyell-single.miyell-single-news .chip--fes{    background:#F3E8FF; border-color:#E5D5FF; color:#7e22ce; }
.miyell-single.miyell-single-news .chip--event{  background:#FFF1E6; border-color:#FFE1CC; color:#C2410C; }
.miyell-single.miyell-single-news .chip--ticket{ background:#FFE8ED; border-color:#FFD3DD; color:#BE185D; }
.miyell-single.miyell-single-news .chip--default{background:#F5F7FA; border-color:#E6E8EC; color:#334155; }

.miyell-single.miyell-single-news .chip:hover{ filter:brightness(.97); box-shadow:0 2px 8px rgba(0,0,0,.06); }
.miyell-single.miyell-single-news .chip:active{ transform:translateY(1px); }

/* Body（読みやすい幅） */
.miyell-single.miyell-single-news .single-body{ max-width:780px; margin:.8em auto 0; }
.miyell-single.miyell-single-news .single-body > * + *{ margin-top:1.1em; }
.miyell-single.miyell-single-news .single-body p{ margin:0; }
.miyell-single.miyell-single-news .single-body h2{ font-size:1.35rem; margin:1.1em 0 .4em; font-weight:800; }
.miyell-single.miyell-single-news .single-body h3{ font-size:1.12rem; margin:1em 0 .35em; font-weight:800; }
.miyell-single.miyell-single-news .single-body a{ color:#0f766e; }

/* 本文内の画像・整列 */
.miyell-single.miyell-single-news .entry-content img{
	max-width:100%; height:auto; display:block; margin:.8em auto; border-radius:10px;
}
.miyell-single.miyell-single-news .entry-content figure{ margin:1.2em auto; }
.miyell-single.miyell-single-news .entry-content figcaption{ margin-top:.4em; text-align:center; font-size:.85rem; color:#6b7280; }
.miyell-single.miyell-single-news .entry-content .aligncenter,
.miyell-single.miyell-single-news .entry-content img.aligncenter,
.miyell-single.miyell-single-news .entry-content figure.aligncenter{ margin-left:auto; margin-right:auto; }
.miyell-single.miyell-single-news .entry-content .alignleft,
.miyell-single.miyell-single-news .entry-content img.alignleft,
.miyell-single.miyell-single-news .entry-content figure.alignleft{
	float:left; margin:.15em 1em .6em 0; max-width:min(50%, 380px);
}
.miyell-single.miyell-single-news .entry-content .alignright,
.miyell-single.miyell-single-news .entry-content img.alignright,
.miyell-single.miyell-single-news .entry-content figure.alignright{
	float:right; margin:.15em 0 .6em 1em; max-width:min(50%, 380px);
}
@media (max-width:720px){
	.miyell-single.miyell-single-news .entry-content .alignleft,
	.miyell-single.miyell-single-news .entry-content .alignright,
	.miyell-single.miyell-single-news .entry-content img.alignleft,
	.miyell-single.miyell-single-news .entry-content img.alignright,
	.miyell-single.miyell-single-news .entry-content figure.alignleft,
	.miyell-single.miyell-single-news .entry-content figure.alignright{
		float:none; margin:.5em auto; max-width:100%;
	}
}
.miyell-single.miyell-single-news .entry-content::after{ content:""; display:block; clear:both; }

/* Footer */
.miyell-single.miyell-single-news .single-foot{
	max-width:780px; margin:1.6em auto 0; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; align-items:center;
}
.miyell-single.miyell-single-news .post-nav{ display:flex; gap:12px; }
.miyell-single.miyell-single-news .post-nav a{ text-decoration:none; color:#111; border-bottom:1px solid #e5e7eb; padding-bottom:2px; }
.miyell-single.miyell-single-news .post-nav a:hover{ border-color:#111; }
/* single-post 情報ナビの省略表示 */
.miyell-single.miyell-single-news .post-nav a{
	display:inline-block; max-width:20em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
/* ===== single: information 前後ナビ（ボタン風） ===== */
.miyell-single.miyell-single-news .post-nav{
	display:flex; gap:12px; align-items:center; margin-top:14px;
}
.miyell-single.miyell-single-news .post-nav > div{
	flex:1; display:flex;
}
.miyell-single.miyell-single-news .post-nav > .prev{ justify-content:flex-start; }
.miyell-single.miyell-single-news .post-nav > .next{ justify-content:flex-end; }

/* ボタン化 */
.miyell-single.miyell-single-news .post-nav a{
	display:inline-flex; align-items:center; gap:.45em;
	padding:.55em 1.0em;
	border:1px solid #e6e8ec;
	border-radius:999px;
	background:#fff;
	color:#111;
	text-decoration:none;
	font-weight:700; font-size:.95rem; line-height:1;
	box-shadow:0 3px 10px rgba(0,0,0,.05);
	transition:background .2s, border-color .2s, box-shadow .2s, transform .02s;
}
.miyell-single.miyell-single-news .post-nav a:hover{
	background:#f7faff; border-color:#d0e2ff; box-shadow:0 5px 14px rgba(0,0,0,.08);
}
.miyell-single.miyell-single-news .post-nav a:active{ transform:translateY(1px); }
.miyell-single.miyell-single-news .post-nav a:focus-visible{
	outline:2px solid #9cc3ff; outline-offset:2px;
}

/* 矢印を擬似要素で整える（テキストに←/→を入れている場合でもOK） */
.miyell-single.miyell-single-news .post-nav .prev a::before{
	content:"←"; font-weight:700; transform:translateY(-.02em);
}
.miyell-single.miyell-single-news .post-nav .next a::after{
	content:"→"; font-weight:700; transform:translateY(-.02em);
}

/* モバイルで行詰まり回避 */
@media (max-width: 480px){
	.miyell-single.miyell-single-news .post-nav a{ padding:.52em .9em; font-size:.92rem; }
}
/* ===== タグアーカイブ（/tag/*） ===== */
.miyell-archive-news{
	--fg:#111; --muted:#6b7280; --border:#e6e8ec; --accent:#1fb4c2;
	color:var(--fg); background:#fff;
	max-width:1040px; margin:clamp(84px,10vw,120px) auto 64px; padding:clamp(20px,2.8vw,36px);
	border:1px solid var(--border); border-radius:16px; box-shadow:0 10px 26px rgba(0,0,0,.06);
	line-height:1.75;
}
.miyell-archive-news .archive-title{
	margin:0 0 .35em; font-weight:800; font-size:clamp(1.7rem,3.2vw,2.1rem);
}
.miyell-archive-news .archive-desc{ color:var(--muted); margin:0 0 12px; }

/* 縦積みカード */
.miyell-archive-news .news-stack{
	display:grid; gap:14px;
}
.miyell-archive-news .news-item{
	position:relative; display:block; text-decoration:none; color:inherit;
	background:#fff; border:1px solid var(--border); border-radius:14px;
	padding:12px 14px 12px 16px;
	box-shadow:0 4px 14px rgba(0,0,0,.06);
	transition:box-shadow .2s, transform .02s, border-color .2s;
}
.miyell-archive-news .news-item::before{
	content:""; position:absolute; left:0; top:10px; bottom:10px; width:6px;
	border-radius:4px; background:linear-gradient(#22d3ee,#14b8a6);
}
.miyell-archive-news .news-item:hover{
	border-color:#d0e2ff; box-shadow:0 6px 18px rgba(0,0,0,.08);
}
.miyell-archive-news .ni-head{ display:flex; align-items:center; gap:.6em; color:#64748b; font-size:.92rem; }
.miyell-archive-news .ni-date{ letter-spacing:.02em; }
.miyell-archive-news .ni-title{ margin:.35em 0 .45em; font-weight:800; font-size:1.05rem; line-height:1.5; }

/* タグ（チップ） */
.miyell-archive-news .ni-tags{ margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:6px; }
.miyell-archive-news .chip{
	display:inline-flex; align-items:center; gap:.35em;
	padding:.18em .6em; border:1px solid transparent; border-radius:999px; font-size:.82rem; font-weight:700;
}
.miyell-archive-news .chip--report{ background:#E8F0FF; border-color:#D0E2FF; color:#1d4ed8; }
.miyell-archive-news .chip--school{ background:#E8FFF4; border-color:#C8F6E4; color:#0F766E; }
.miyell-archive-news .chip--fes{    background:#F3E8FF; border-color:#E5D5FF; color:#7e22ce; }
.miyell-archive-news .chip--event{  background:#FFF1E6; border-color:#FFE1CC; color:#C2410C; }
.miyell-archive-news .chip--ticket{ background:#FFE8ED; border-color:#FFD3DD; color:#BE185D; }
.miyell-archive-news .chip--default{background:#F5F7FA; border-color:#E6E8EC; color:#334155; }

/* ページャ（他アーカイブと同じ調子） */
.miyell-archive-news .archive-pager{ margin:16px 0 0; display:flex; justify-content:center; }
.miyell-archive-news .page-numbers{
	display:inline-flex; align-items:center; justify-content:center;
	min-width:38px; height:38px; margin:0 4px; padding:0 .6em;
	border:1px solid var(--border); border-radius:10px; text-decoration:none; color:#111; background:#fff
}
.miyell-archive-news .page-numbers.current{ background:#111; color:#fff; border-color:#111; }
/* =========================================================
   tag.php 専用（他ページに影響しないようクラス限定）
   ========================================================= */

/* ------- 見出し（lower_visual） ------- */
section.lower_visual.lower_visual--plain{
	background:none !important;
	margin:clamp(64px,8vw,96px) auto 12px;
	padding:8px 0 0;
	width:min(1120px, 92%);
}
.lower_visual_title{
	margin:0 0 .25em;
	font-weight:800;
	font-size:clamp(1.35rem, 2.2vw, 1.8rem);
	letter-spacing:.02em;
}
.lower_visual_lead{
	margin:.25em 0 0;
	color:#6b7280;
	font-size:.95rem;
}

/* ------- 一覧の外枠 ------- */
section.lower_wrap.blog_list_wrap.list_wrap{
	width:min(1120px, 92%);
	margin:0 auto 48px;
}

/* ------- グリッド ------- */
.arrival_container.information_container{
	display:grid;
	grid-template-columns:1fr;
	gap:clamp(14px, 2.5vw, 24px);
}
@media (min-width:640px){
	.arrival_container.information_container{ grid-template-columns:repeat(2, 1fr); }
}
@media (min-width:1024px){
	.arrival_container.information_container{ grid-template-columns:repeat(3, 1fr); }
}

/* ------- カード（a > dl 構造） ------- */
.information_link{
	display:block;
	text-decoration:none;
	color:inherit;
}
.information_box{
	margin:0;
	background:#fff;
	border:1px solid #e6e8ec;
	border-radius:16px;
	overflow:hidden;
	box-shadow:0 6px 18px rgba(0,0,0,.06);
	transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.information_link:hover .information_box{
	transform:translateY(-2px);
	box-shadow:0 12px 28px rgba(0,0,0,.10);
	border-color:#dfe3ea;
}
.information_link:focus-visible .information_box{
	outline:3px solid #93c5fd;
	outline-offset:2px;
}

/* ------- サムネイル ------- */
.information_thumb{ margin:0; }
.information_thumb img{
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:16 / 9;
	object-fit:cover;
}

/* ------- テキスト群 ------- */
.information_date,
.information_title,
.information_tag,
.information_desc{ margin:0; padding:0 14px; }

.information_date{
	padding-top:12px;
	color:#6b7280;
	font-size:.9rem;
}

.information_title{
	margin:.3em 0 .2em;
	font-weight:700;
	font-size:clamp(1rem, 1.6vw, 1.12rem);
	line-height:1.35;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.information_tag{
	padding-top:6px;
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	min-height:34px; /* タグ無しカードの高さ揃え用 */
}
.information_tag span{
	max-width:100%;
	padding:.28em .66em;
	border-radius:9999px;
	background:#f3f4f6;
	color:#374151;
	font-size:.85rem;
	line-height:1.2;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}

.information_desc{
	padding:10px 14px 16px;
	color:#4b5563;
	font-size:.95rem;
	line-height:1.6;
	display:-webkit-box;
	-webkit-line-clamp:3;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

/* ------- ページャー ------- */
.archive-pager{
	margin:28px 0 0;
	text-align:center;
}
.archive-pager .nav-links{
	display:inline-flex;
	flex-wrap:wrap;
	gap:8px;
	align-items:center;
	justify-content:center;
}
.archive-pager .page-numbers{
	display:inline-block;
	min-width:40px;
	padding:.5em .9em;
	border:1px solid #e6e8ec;
	border-radius:9999px;
	background:#fff;
	color:#111;
	font-weight:600;
	text-decoration:none;
	box-shadow:0 2px 8px rgba(0,0,0,.04);
	transition:background .15s ease, transform .15s ease, box-shadow .15s ease;
}
.archive-pager a.page-numbers:hover{
	transform:translateY(-1px);
	box-shadow:0 6px 16px rgba(0,0,0,.08);
}
.archive-pager .page-numbers.current{
	background:#111;
	color:#fff;
	border-color:#111;
}

/* ------- 予防（テーマのヒーロー注入/反転対策の最小限） ------- */
section.lower_visual{ background-image:none !important; }
.glass-header.is-invert{ color:inherit; } /* 念のため */
/* ===== 習い事マップ（トップ） ===== */
.home_section--schoolmap{
	width:min(1120px, 94%);
	margin:clamp(40px,6vw,72px) auto;
}
.home_section--schoolmap .section_head{ margin-bottom:12px; }
.home_section--schoolmap .section_head h2{
	margin:0 0 4px; font-weight:800; font-size:clamp(1.3rem,2.1vw,1.8rem);
}
.home_section--schoolmap .section_head p{
	margin:0; color:#6b7280; font-size:.95rem;
}
#schoolMap{
	width:100%;
	height:clamp(360px,55vw,560px);
	border:1px solid #e6e8ec;
	border-radius:16px;
	overflow:hidden;
	box-shadow:0 10px 26px rgba(0,0,0,.08);
}

/* Leaflet微調整 */
.leaflet-container a{ color:#2563eb; } /* テーマ色に合わせるなら変更 */
.leaflet-control-attribution{ font-size:11px; }

/* ポップアップ */
.map-popup{ display:flex; gap:12px; align-items:flex-start; }
.map-popup img{
	width:92px; height:72px; object-fit:cover; border-radius:8px; flex:0 0 auto;
}
.map-popup-body{ font-size:.95rem; line-height:1.5; }
.map-popup-body h4{ margin:0 0 4px; font-size:1rem; font-weight:700; }
.map-popup-body .addr{ margin:0 0 8px; color:#6b7280; font-size:.9rem; }
.map-popup-link{
	display:inline-block; padding:.4em .8em; border-radius:8px;
	background:#111; color:#fff; text-decoration:none; font-weight:700;
}
.map-popup-link:hover{ opacity:.85; }
#navList .m-nav-close{
	display: none;
}
/* === SPナビ（全画面／枠なし／アイコン付き／最前面） ================== */
@media (max-width: 768px){

	/* ふだんは非表示 */
	#navList{ display:none; }

	/* 開いたら全画面オーバーレイ（白） */
	body.nav-open #navList{
		display: block !important;
		position: fixed;
		inset: 0;
		width: 100%;
		height: 86vh;
		box-sizing: border-box;
		background: #ffffffe3;
		padding: calc(64px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom));
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		z-index: 100000;
		margin: 0 !important;
		border: 0 !important;
		border-radius: 1rem;
		box-shadow: none !important;
		top: 4rem;
	}

	/* オーバーレイ中は下の固定ボタンを隠す＆スクロール停止 */
	body.nav-open .line-float{ display:none !important; }
	body.nav-open{ overflow:hidden; }

	/* リスト：枠なし・大きめタップ */
	#navList li{ list-style:none; }
	#navList li + li{ margin-top:10px; }
	#navList li::before, #navList li:before{ content:none !important; } /* テーマの「›」等を無効化 */

	#navList a{
		display:flex; align-items:center; gap:12px;
		padding:10px 6px; border:0; border-radius:10px; /* 枠なし */
		font-size:18px; font-weight:800; letter-spacing:.01em;
		color:#111; text-decoration:none; background:transparent;
	}
	#navList a:hover, #navList a:active{ background:#f5f7fb; }

	/* アイコン（emoji） */
	#navList a::before{
		content:"•"; /* fallback */
		width:1.6em; text-align:center;
		font-size:1.25em; line-height:1;
		font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",system-ui,sans-serif;
	}
	/* ルート別に割り当て（必要に応じて編集） */
	#navList a[href$="/miyell/"]::before{ content:"🏠"; }            /* トップ */
	#navList a[href*="/fes/"]::before{ content:"🎪"; }                /* フェス */
	#navList a[href*="/school/"]::before{ content:"🏫"; }             /* スクール */
	#navList a[href*="/event/"]::before{ content:"🎉"; }              /* イベント */
	#navList a[href*="/contents/"]::before{ content:"📚"; }           /* コンテンツ */
	#navList a[href*="/category/item/"]::before{ content:"🎟️"; }     /* チケット＆ショップ */
	#navList a[href*="/about/"]::before{ content:"🏢"; }              /* 団体概要 */
	#navList a[href*="/contact/"]::before{ content:"📩"; }            /* お問い合わせ */
}
/* ==============================================
   Welcart 商品ページ（body クラス無し時のフォールバック）
   作用範囲：#itempage 内だけ（他レイアウトに非干渉）
   ============================================== */

/* 1) Welcart の float/clear を無効化（余白崩れ防止） */
#itempage :is(.itemimg, .exp, .skuform, .itemsubimg){
	float: none !important;
	clear: none !important;
	width: auto !important;
}
#itempage :is(.exp, .skuform)::before,
#itempage :is(.exp, .skuform)::after{
	content: none !important;
	display: none !important;
}

/* 2) 2カラム化（PC）→ 1カラム（SP） */
#itempage form{
	display: grid;
	grid-template-columns: minmax(280px, 540px) 1fr;
	gap: 24px;
	align-items: start;
}
@media (max-width: 900px){
	#itempage form{ grid-template-columns: 1fr; }
}

/* 左：画像　右：テキスト群 */
#itempage .itemimg{ grid-column: 1; grid-row: 1 / span 6; }
#itempage :is(h3, .exp, .skuform, .itemsubimg){ grid-column: 2; }

/* 画像の見た目 */
#itempage .itemimg a{ display: block; }
#itempage .itemimg img{
	width: 100%;
	height: auto;
	display: block;
	border-radius: 14px;
}

/* 価格行まわり（必要最低限） */
#itempage .field_name{ color:#666; font-weight:600; }
#itempage .field_price, 
#itempage .field_cprice{ font-size:1.125rem; font-weight:700; }

/* CTA 行（数量＋ボタン） */
#itempage .skuform .skubutton{
	appearance: none;
	border: none;
	border-radius: 999px;
	padding: .8em 1.2em;
	background: var(--color-primary, #21b573);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	/* ← typo 修正：rgba の第3引数のカンマ抜けを是正 */
	box-shadow: 0 6px 18px rgba(0, 0, 0, .06);
}

/* レイアウト保険：SP では完全 1 カラム */
@media (max-width: 860px){
	#itempage .itemimg{
		grid-column: 1 !important;
		grid-row: auto;
		margin-bottom: 12px;
	}
	#itempage :is(h3, .exp, .skuform, .itemsubimg){
		grid-column: 1 !important;
	}
}

/* さらに狭い端末の最終保険 */
@media (max-width: 600px){
	#itempage form{ display: block !important; }
}

/* =========================
   About Concept Diagram
   ========================= */
   .about-concept{
   	margin: clamp(28px,4vw,48px) auto;
   	padding: clamp(20px,3vw,28px) clamp(16px,3vw,24px);
   	background: var(--bg);
   	border:1px solid var(--bd);
   	border-radius: 16px;
   	box-shadow: 0 10px 26px rgba(0,0,0,.04);
   }
   .about-concept .sec-title{margin-bottom: .6em}
   .about-concept img {
   	margin: 0 auto;
   	max-width: 500px;
   	width: 100%;
   	display: block;
   }



   /* ==== Pager (WP .navigation.pagination) ==== */
   .navigation.pagination{
   	/* 必要なら色だけ上書き：--pg-accent */
   	--pg-accent: var(--accent, #2563eb);
   	--pg-bg:#fff; --pg-bd:#e5e7eb; --pg-text:#111827;

   	margin: clamp(28px,6vw,48px) 0;
   }
   .navigation.pagination .screen-reader-text{
   	position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;
   }
   .navigation.pagination .nav-links{
   	display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;
   }
   .navigation.pagination .page-numbers{
   	display:inline-flex;align-items:center;justify-content:center;
   	min-width:2.4em;height:2.4em;padding:0 .8em;white-space:nowrap;
   	font:700 clamp(13px,1.6vw,14px)/1 'Poppins','Zen Kaku Gothic New',system-ui,sans-serif;
   	color:var(--pg-text);background:var(--pg-bg);
   	border:1px solid var(--pg-bd);border-radius:999px;
   	text-decoration:none;box-shadow:0 1px 0 rgba(0,0,0,.04);
   	transition:background-color .15s,border-color .15s,color .15s,transform .06s;
   }
   .navigation.pagination a.page-numbers:hover{
   	border-color:var(--pg-accent);transform:translateY(-1px);
   }
   .navigation.pagination a.page-numbers:focus-visible{
   	outline:2px solid var(--pg-accent);outline-offset:2px;
   }
   .navigation.pagination .page-numbers.current{
   	background:var(--pg-accent);color:#fff;border-color:transparent;
   }
/* 前へ/次へ を塗りボタンに */
.navigation.pagination .page-numbers.prev,
.navigation.pagination .page-numbers.next{
	background:var(--pg-accent);color:#fff;border-color:transparent;
}
/* 省略記号 … */
.navigation.pagination .page-numbers.dots{
	background:transparent;border:none;min-width:auto;height:auto;padding:0 .4em;color:#6b7280;box-shadow:none;
}
nav.navigation a::after {
	content: none;}
	@media (max-width:480px){
		.navigation.pagination .nav-links{gap:8px;}
		.navigation.pagination .page-numbers{min-width:2.2em;height:2.2em;padding:0 .7em;}
	}

/* Welcart ログインのダミーフィールドを強制非表示 */
.is-welcart-page #loginform input.hidden{display:none!important;}
/* --- Welcart: hidden系の強制非表示（type未指定でも隠す） --- */
:where(.is-welcart-page, .miyell-single-item, .miyell-archive) input.hidden,
:where(.is-welcart-page, .miyell-single-item, .miyell-archive) .hidden{
	display: none !important;
}

/* --- Welcart: 空のメッセージ枠は出さない --- */
:where(.is-welcart-page, .miyell-single-item, .miyell-archive)
:is(.usces_error_message, .error_message, .usces_message, .information_message):empty{
	display: none !important;
}

/* ---- 中身がある時だけ装飾（エラー） ---- */
:where(.is-welcart-page, .miyell-single-item, .miyell-archive)
:is(.usces_error_message, .error_message):not(:empty){
	margin:10px 0 0;
	border:1px solid #e97979;
	background:#fff6f6;
	color:#b03737;
	border-radius:8px;
	padding:10px 12px;
	font-size:.92rem;
}

/* ---- 中身がある時だけ装飾（情報/通知） ---- */
:where(.is-welcart-page, .miyell-single-item, .miyell-archive)
:is(.usces_message, .information_message):not(:empty){
	margin:10px 0 0;
	border:1px solid #e6e8ec;
	background:#f7f8fb;
	border-radius:8px;
	padding:10px 12px;
	font-size:.92rem;
}
/* ==== Document (Privacy / Tokushoho) ================== */
.sub-wrap.doc{
	--doc-w: 860px;
	--bd: #e6e8ec;
	--bg: #fff;
	--muted: #6b7280;
	--accent: var(--color-primary, #21b573);
	margin-bottom: max(var(--content-bottom,64px), 110px);
}

/* セクションをカード化 */
.sub-wrap.doc > section{
	width: min(100%, var(--doc-w));
	margin: 0 auto 18px;
	padding: clamp(16px, 2.6vw, 22px);
	background: var(--bg);
	border: 1px solid var(--bd);
	border-radius: 14px;
	box-shadow: 0 6px 16px rgba(0,0,0,.05);
}

/* 見出し：左寄せ＋アクセント */
.sub-wrap.doc .sec-title{
	text-align: left;
	margin: 0 0 .75rem;
	font-size: clamp(1.12rem, 2.2vw, 1.45rem);
}
.sub-wrap.doc .sec-title::before{
	content:"";
	display:inline-block; width:10px; height:10px; border-radius:2px;
	background: var(--accent); margin-right:.5em; transform: translateY(-2px);
}

/* 本文の可読性 */
.sub-wrap.doc p,
.sub-wrap.doc li,
.sub-wrap.doc dd{ line-height:1.9; font-size: .98rem; }
.sub-wrap.doc ul{ padding-left: 1.2em; }
.sub-wrap.doc li{ margin: .25em 0; color:#111; }
.sub-wrap.doc .page-title{ margin-bottom: 1.25rem; }

/* リンク */
.sub-wrap.doc a{
	color:#2563eb; text-decoration:none;
	border-bottom:1px dashed rgba(37,99,235,.45);
}
.sub-wrap.doc a:hover{ border-bottom-color: transparent; }

/* 定義リスト（特商法）：2カラム → SPで縦積み */
.sub-wrap.doc dl{
	display:grid;
	grid-template-columns: 12em 1fr;
	gap: 10px 14px;
}
.sub-wrap.doc dt{
	font-weight: 800; color:#374151;
}
.sub-wrap.doc dd{ margin:0; }
@media (max-width: 640px){
	.sub-wrap.doc dl{ grid-template-columns: 1fr; }
	.sub-wrap.doc dt{ color:#6b7280; }
	.sub-wrap.doc dd{ padding-left: .1rem; }
}

/* 軽い区切り（連続sectionの間隔微調整） */
.sub-wrap.doc > section + section{ margin-top: 8px; }

/* 注意書き/日付などの小さめトーン */
.sub-wrap.doc .note{ color: var(--muted); font-size:.92rem; }

/* ==== Nav CTA buttons (desktop) ==== */
#navList .nav-cta a{
	display:inline-block;
	padding:.55rem 1.1rem;
	border-radius:999px;
	font-weight:800;
	letter-spacing:.01em;
	box-shadow:0 6px 16px rgba(0,0,0,.12);
	transition:transform .12s, box-shadow .12s, filter .2s;
}
#navList .nav-cta--primary a{
	background: var(--color-primary, #21b573);
	color:#fff;
}
#navList .nav-cta--outline a{
	background:#fff;
	color: var(--color-primary, #21b573);
	border:2px solid var(--color-primary, #21b573);
}
#navList .nav-cta a:hover{ transform: translateY(-1px); box-shadow:0 10px 22px rgba(0,0,0,.16); }

/* ==== SPナビ CTA整列（PCはそのまま） ==== */
@media (max-width: 768px){
	/* ボタン本体：中央揃え・高さ統一・折返し防止 */
	body.nav-open #navList .nav-cta a{
		display:flex; align-items:center; justify-content:center;
		gap:.55rem;
		padding:12px 16px;
		min-height:44px;
		line-height:1;               /* 基線ズレ防止 */
		white-space:nowrap;          /* 折返し防止 */
		border-radius:999px;
		box-shadow:0 4px 14px rgba(0,0,0,.12);
	}

	/* 鍵アイコンの微調整（1pxだけ下げる） */
	body.nav-open #navList a[href*="/usces-member/"]:not([href*="newmember"])::before{
		content:"🔐";
		font-size:18px; line-height:1;
		transform:translateY(1px);
		margin-right:.25rem;
	}

	/* NEWピルの整形（高さ固定で中央揃え） */
	body.nav-open #navList a[href*="newmember"]::before{
		content:"NEW";
		display:inline-flex; align-items:center; justify-content:center;
		height:20px; padding:0 8px;               /* ← ピルの高さ/左右 */
		margin-right:.45rem;
		font-size:.72rem; font-weight:900; line-height:1;
		background:#fff; color:var(--color-primary,#21b573);
		border:1px solid var(--color-primary,#21b573);
		border-radius:999px;
		box-shadow:none; transform:translateY(0);
	}
}
/* ===========================================
   Welcart 新規入会フォーム（SP 縦並び）
   作用範囲：/usces-member/?usces_page=newmember の
             <table class="customer_form"> のみ
   =========================================== */
   @media (max-width: 768px){

   	/* 既存の「横スクロールテーブル」化を打ち消し */
   	.is-welcart-page .entry-content table.customer_form{
   		display: block;
   		overflow: visible !important;
   		border: 0;
   	}
   	.is-welcart-page .entry-content tbody{
   		display: block;
   		width: 100%;
   	}
   	.is-welcart-page .entry-content table.customer_form th,
   	.is-welcart-page .entry-content table.customer_form td{
   		white-space: normal !important;
   		border: 0;                       /* 枠は tr 側でまとめて付ける */
   		padding: 0;                      /* 内側余白は tr 側に集約 */
   	}

   	/* 行＝カード */
   	#newmember .customer_form tr{
   		display: block;
   		margin: 10px 0;
   		padding: 12px 14px;
   		border: 1px solid #e6e8ec;
   		border-radius: 12px;
   		background: #fff;
   		box-shadow: 0 1px 6px rgba(0,0,0,.04);
   	}

   	/* ラベル（th）→ 上段 */
   	#newmember .customer_form th[scope="row"]{
   		display: block;
   		font-weight: 700;
   		color: #374151;
   		margin: 0 0 8px;
   		background: transparent;
   	}
   	#newmember .customer_form th[scope="row"] em{
   		color: #e5243b; font-style: normal; margin-right: .25em;
   	}

   	/* 値（td）→ 下段に縦積み */
   	#newmember .customer_form td{
   		display: block;
   	}
   	#newmember .customer_form input[type="text"],
   	#newmember .customer_form input[type="email"],
   	#newmember .customer_form input[type="tel"],
   	#newmember .customer_form input[type="password"],
   	#newmember .customer_form select,
   	#newmember .customer_form textarea{
   		width: 100%;
   		max-width: 100%;
   		padding: 10px 12px;
   		border: 1px solid #cfd6dd;
   		border-radius: 10px;
   		background: #fff;
   		font: inherit;
   		line-height: 1.5;
   	}

   	/* 姓/名、セイ/メイ行（td が2つある行）を縦積み */
   	#newmember .customer_form tr.inp1 td{        /* name_row, furikana_row に付いている .inp1 を利用 */
   		margin-bottom: 10px;
   	}
   	#newmember .customer_form tr.inp1 td:last-child{
   		margin-bottom: 0;
   	}
   	/* 「姓」「名」など td 内の補助ラベルを上に */
   	#newmember .customer_form td .member_name,
   	#newmember .customer_form td .member_furigana{
   		display: block;
   		font-size: .86rem;
   		color: #6b7280;
   		margin: 0 0 4px;
   	}

   	/* 郵便番号・住所など入力補助テキストが並ぶ場合の折返し保険 */
   	#newmember .customer_form td{
   		word-break: break-word;
   		overflow-wrap: anywhere;
   	}

   	/* 送信ボタンの間隔 */
   	#newmember .send{
   		padding-top: 12px;
   		text-align: center;
   	}
   	#newmember .send input[type="submit"]{
   		appearance: none;
   		display: inline-block;
   		padding: .8rem 1.4rem;
   		border: 0;
   		border-radius: 999px;
   		background: var(--color-primary, #21b573);
   		color: #fff;
   		font-weight: 800;
   		box-shadow: 0 6px 12px rgba(33,181,115,.20);
   	}
   }

/* Welcart のダミー hidden フィールドは非表示（念のため） */
#newmember input.hidden{ display:none !important; }

/* ===== Lead: KPI ===== */
.lead-register .kpi { text-align:center; }
.lead-register .kpi-num { font-weight:800; font-size:clamp(1.8rem,4.6vw,2.6rem); line-height:1; }
.lead-register .kpi-unit { font-size:.9rem; font-weight:700; margin-left:.25rem; color:#6b7280; }
.lead-register .kpi-cap { margin:.35rem 0 .15rem; font-weight:800; }
.lead-register .kpi-note { color:#6b7280; font-size:.85rem; }

/* === 協賛グリッド === */
.sponsor-grid{ display:grid; gap:16px; align-items:center; }
.sponsor-grid.cols-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.sponsor-grid.cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.sponsor-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:800px){ .sponsor-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .sponsor-grid{ grid-template-columns:1fr; } }
.sponsor-banner{ width:100%; height:84px; object-fit:contain; background:#fff; border:1px solid #e6e8ec; border-radius:10px; padding:10px; display:block; }
.sponsor-banner.placeholder{ display:grid; place-items:center; font-weight:700; color:#6b7280; background:#f8fafc; }

/* === 単一ページ：メタ（未入力は出力されない） === */
.sponsor-single .meta{ list-style:none; margin:18px 0; padding:0; border:1px solid #e6e8ec; border-radius:12px; background:#fff; }
.sponsor-single .meta li{ display:grid; grid-template-columns:10em 1fr; gap:10px; padding:12px 14px; border-bottom:1px solid #eef1f4; }
.sponsor-single .meta li:last-child{ border-bottom:none; }
.sponsor-single .meta strong{ white-space:nowrap; color:#374151; }
.sponsor-single .meta a{ color:#2563eb; text-decoration:none; word-break:break-all; }
.sponsor-single .meta a:hover{ text-decoration:underline; }
.sponsor-banner-lg{ display:block; margin:0 auto 8px; }
/* ===== sponsor single (minimal & modern) ===== */
.sponsor-single .brand-head{ text-align:center; margin: 2px 0 10px; }
.sponsor-single .sponsor-banner-lg{
	max-width:min(360px, 80%); height:auto; object-fit:contain;
	display:block; margin:0 auto 6px;
}
.sponsor-single .entry-title{ margin:.2em 0 .2em; font-weight:800; }

/* アイコンタイル（自動折返し） */
.sponsor-single .action-grid{
	display:grid; gap:10px;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	list-style:none; margin: 6px 0 14px; padding:0;
}
.sponsor-single .action{
	display:flex; align-items:center; gap:.6rem;
	padding:12px 14px; border:1px solid #e6e8ec; border-radius:12px;
	background:#fff; text-decoration:none; color:#111; font-weight:700;
	box-shadow:0 2px 10px rgba(0,0,0,.04);
	transition: transform .08s ease, box-shadow .18s ease, border-color .18s ease;
}
.sponsor-single a.action:hover{
	transform: translateY(-1px);
	border-color:#dbeafe; box-shadow:0 6px 18px rgba(0,0,0,.08);
}
.sponsor-single .action.is-static{ cursor:default; }

/* アイコン（CSS mask） */
.sponsor-single .action::before{
	content:""; width:20px; height:20px; flex:0 0 20px;
	background:#6b7280;
	-webkit-mask-repeat:no-repeat; -webkit-mask-position:center; -webkit-mask-size:contain;
	mask-repeat:no-repeat;         mask-position:center;         mask-size:contain;
}
/* icons */
.sponsor-single .ic-homepage::before  { -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 3l10 9h-3v9h-5v-6H10v6H5v-9H2z"/></svg>'); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3l10 9h-3v9h-5v-6H10v6H5v-9H2z'/></svg>"); }
.sponsor-single .ic-instagram::before { -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6z"/></svg>'); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6z'/></svg>"); }
.sponsor-single .ic-facebook::before  { -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 3h4v4h-4v3h3v4h-3v7h-4v-7H7v-4h2V7a4 4 0 014-4z"/></svg>'); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M13 3h4v4h-4v3h3v4h-3v7h-4v-7H7v-4h2V7a4 4 0 014-4z'/></svg>"); }
.sponsor-single .ic-tiktok::before    { -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15 3a6 6 0 006 6V7a4 4 0 01-4-4h-2v12a3 3 0 11-3-3h1V8h-1a6 6 0 100 12 6 6 0 006-6V3z"/></svg>'); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M15 3a6 6 0 006 6V7a4 4 0 01-4-4h-2v12a3 3 0 11-3-3h1V8h-1a6 6 0 100 12 6 6 0 006-6V3z'/></svg>"); }
.sponsor-single .ic-line::before      { -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 3c-5.5 0-10 3.6-10 8 0 3 2.2 5.6 5.5 6.9-.2.7-.7 2.6-.8 3 0 0 0 .1.1.1.1 0 .2 0 .3-.1.4-.1 2.8-1.9 3.3-2.3.5.1 1 .1 1.6.1 5.5 0 10-3.6 10-8S17.5 3 12 3z"/></svg>'); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3c-5.5 0-10 3.6-10 8 0 3 2.2 5.6 5.5 6.9-.2.7-.7 2.6-.8 3 0 0 0 .1.1.1.1 0 .2 0 .3-.1.4-.1 2.8-1.9 3.3-2.3.5.1 1 .1 1.6.1 5.5 0 10-3.6 10-8S17.5 3 12 3z'/></svg>"); }
.sponsor-single .ic-tel::before       { -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.8.6.4 0 .7.3.7.7V21c0 .6-.4 1-1 1C11.3 22 2 12.7 2 2c0-.6.4-1 1-1h3.7c.4 0 .7.3.7.7 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1L6.6 10.8z"/></svg>'); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.8.6.4 0 .7.3.7.7V21c0 .6-.4 1-1 1C11.3 22 2 12.7 2 2c0-.6.4-1 1-1h3.7c.4 0 .7.3.7.7 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1L6.6 10.8z'/></svg>"); }
.sponsor-single .ic-fax::before       { -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 2h10v5H7zM3 8h18a2 2 0 012 2v8H1v-8a2 2 0 012-2zm4 3h10v5H7z"/></svg>'); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10v5H7zM3 8h18a2 2 0 012 2v8H1v-8a2 2 0 012-2zm4 3h10v5H7z'/></svg>"); }

/* 本文：画像はPCで程よく／SPは横いっぱい、上下マージン */
.sponsor-single .entry-content--rich > * + *{ margin-top: 1.05em; }
.sponsor-single .entry-content--rich img{
	width:min(820px,100%); height:auto; display:block; margin:12px auto; border-radius:12px;
}
@media (max-width:720px){
	.sponsor-single .entry-content--rich img{ width:100%; margin:10px 0 14px; }
}
.sponsor-single .entry-content--rich figure{ margin:12px auto; max-width:min(820px,100%); }
.sponsor-single .entry-content--rich figcaption{ text-align:center; color:#6b7280; font-size:.9rem; margin-top:.35rem; }

/* ▼ 置換（または上書き） */
#ml-overlay{
  position: fixed;
  inset: 0;
  display: flex;                  /* ← grid → flex に */
  align-items: center;            /* 垂直中央 */
  justify-content: center;        /* 水平中央 */
  background: #fff;
  z-index: 100000;
  /* iOS 安全領域でも中央維持 */
  padding: env(safe-area-inset-top)
           env(safe-area-inset-right)
           env(safe-area-inset-bottom)
           env(safe-area-inset-left);
}
#ml-overlay .mlogo{
  width: min(320px, 70vw);        /* SPで確実に収まる */
  margin: 0;
}
#ml-overlay .mlogo img{
  display: block;                 /* 画像の余白要因を排除 */
  width: 100%;
  height: auto;
  margin: 0;
}
/* ==== Fixed Instagram Button — Brand Gradient Ring ==== */
.ig-float{
  position: fixed;
  left: 20px; bottom: 20px;
  width: clamp(52px, 12vw, 58px);
  height: clamp(52px, 12vw, 58px);
  border-radius: 9999px; z-index: 1200;
  display: flex; align-items: center; justify-content: center;
  text-decoration: none;

  /* 白ガラス + ブランドグラデのリング（border-box 技） */
  background:
    linear-gradient( rgba(255,255,255,.92), rgba(255,255,255,.92) ) padding-box,
    linear-gradient(135deg, #FEE140, #FA709A 35%, #DD2A7B 55%, #833AB4 75%, #5851DB) border-box;
  border: 2px solid transparent;
  backdrop-filter: saturate(160%) blur(10px);
  -webkit-backdrop-filter: saturate(160%) blur(10px);
  box-shadow: 0 6px 18px rgba(0,0,0,.10);
  transition: transform .12s ease, box-shadow .2s ease, background .2s ease;
}

/* アイコンはグラデで塗る（モノクロではなく“インスタ色”） */
.ig-float::before{
  content:"";
  width: 48%; height: 48%;
  background: linear-gradient(135deg, #FEE140, #FA709A 35%, #DD2A7B 55%, #833AB4 75%, #5851DB);
  -webkit-mask: url("data:image/svg+xml;utf8,\
    <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'>\
      <path d='M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6z'/>\
    </svg>") center / contain no-repeat;
          mask: url("data:image/svg+xml;utf8,\
    <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'>\
      <path d='M7 2h10a5 5 0 015 5v10a5 5 0 01-5 5H7a5 5 0 01-5-5V7a5 5 0 015-5zm5 5a5 5 0 100 10 5 5 0 000-10zm6.5-.8a1.3 1.3 0 100 2.6 1.3 1.3 0 000-2.6z'/>\
    </svg>") center / contain no-repeat;
}

/* Hover：ボタン面をブランドグラデで塗り、アイコンは白に反転 */
.ig-float:hover{
  background:
    linear-gradient(135deg, #FEE140, #FA709A 35%, #DD2A7B 55%, #833AB4 75%, #5851DB) padding-box,
    linear-gradient(135deg, #FEE140, #FA709A 35%, #DD2A7B 55%, #833AB4 75%, #5851DB) border-box;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
}
.ig-float:hover::before{ background:#fff; }

.ig-float:active{ transform: translateY(0); box-shadow: 0 6px 16px rgba(0,0,0,.14); }

/* フォーカスリング / セーフエリア / 印刷 */
.ig-float:focus-visible{ outline: 2px solid var(--color-primary, #21b573); outline-offset: 2px; }
@supports (padding: env(safe-area-inset-bottom)){
  .ig-float{ margin-bottom: env(safe-area-inset-bottom); margin-left: env(safe-area-inset-left); }
}
@media print{ .ig-float{ display:none !important; } }
