/*
Theme Name: み・らいず高等学院
Theme URI: https://me-rise.com/
Author: NPO法人み・らいず２
Description: み・らいず高等学院（通信制高校サポート校）公式サイト用テーマ。有効化すると固定ページ・トップページ設定・パーマリンクを自動で作成します。
Version: 1.3.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: merise-koto-gakuin
*/
/* ==========================================================
   み・らいず高等学院 サイト共通スタイル（Artifactプレビュー用）
   コンセプト: 「小さな芽吹きが、少しずつ若木になっていく」3年間の成長物語
   ========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500;700;900&family=Noto+Sans+JP:wght@400;500;700&family=Fraunces:ital,opsz,wght@1,9..144,500&display=swap');

::selection{background:#F6C89A; color:#3A2E28;}
::-moz-selection{background:#F6C89A; color:#3A2E28;}

:root{
  --cream:        #FFF8EE;
  --cream-alt:     #FFF0D9;
  --paper:         #FFFCF8;
  --ink:           #3A2E28;
  --text:          #5B4A3F;
  --text-soft:     #85725F;
  --coral:         #EE7C3B;
  --coral-deep:    #D9622A;
  --coral-tint:    #FBDFC3;
  --sprout:        #F4B63F;
  --sprout-deep:   #A8660A;
  --sprout-tint:   #FFEFC2;
  --navy:          #2E3F55;
  --gold:          #F4C542;
  --line:          #F2C793;
  --shadow:        0 18px 40px -22px rgba(58,46,40,0.35);
  --radius-lg:     28px;
  --radius-md:     18px;
  --radius-sm:     10px;
  --maxw:          1120px;
  --maxw-header:   1320px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--text);
  font-family:'Noto Sans JP', sans-serif;
  font-size:16px;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Zen Maru Gothic', sans-serif;
  color:var(--ink);
  margin:0;
  line-height:1.5;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
}

.eyebrow{font-family:'Fraunces', serif; font-style:italic; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--coral); font-size:.82rem;}

.leaf-bullet{display:inline-flex; align-items:center; justify-content:center; width:26px;height:26px; flex:none;}
.leaf-bullet svg{width:100%;height:100%;}

.growth-rail{position:relative; padding-left:34px;}
.growth-rail::before{content:""; position:absolute; left:12px; top:6px; bottom:6px; width:2px; background:repeating-linear-gradient(to bottom, var(--line) 0 6px, transparent 6px 12px);}
.growth-rail .stage{position:relative; margin-bottom:2px;}
.growth-rail .stage::before{content:""; position:absolute; left:-34px; top:4px; width:24px; height:24px; border-radius:50%; background:var(--sprout-tint); border:2px solid var(--sprout);}

.site-header{position:sticky; top:0; z-index:50; background:var(--cream); border-bottom:1px solid var(--line);}
.site-header .bar{display:flex; align-items:center; justify-content:space-between; padding:14px 24px; max-width:var(--maxw-header); margin:0 auto; gap:16px;}
.brand{display:flex; align-items:center; gap:10px;}
.brand .mark{width:48px;height:48px;flex:none;display:flex;align-items:center;}
.brand .mark > svg{width:100%;height:100%;}
.brand .names{display:flex; flex-direction:column; line-height:1.25;}
.brand .school{font-family:'Zen Maru Gothic';font-weight:700;font-size:1.05rem;color:var(--ink);}
.brand .cat{font-size:.66rem;color:var(--text-soft);letter-spacing:.03em;}

.main-nav{display:flex; align-items:center; gap:18px; flex-wrap:nowrap;}
.main-nav a{font-size:.84rem; font-weight:500; color:var(--text); position:relative; padding:4px 0; white-space:nowrap; flex:none;}
.main-nav a:hover{color:var(--coral-deep);}
.main-nav a.active{color:var(--coral-deep); font-weight:700;}
.hdr-cta{background:var(--coral); color:#fff !important; padding:13px 28px; border-radius:999px; font-weight:700; font-size:.86rem; white-space:nowrap; box-shadow:0 8px 18px -8px rgba(238,124,59,.6); margin-left:4px;}
.hdr-cta:hover{background:var(--coral-deep); color:#fff !important;}
.nav-toggle{display:none;}

@media (max-width: 1180px) and (min-width: 861px){
  .main-nav{gap:13px;}
  .main-nav a{font-size:.79rem;}
  .hdr-cta{padding:11px 20px;}
}

@media (max-width: 860px){
  .main-nav{position:fixed; inset:64px 0 0 0; background:var(--paper); flex-direction:column; align-items:flex-start; padding:24px; transform:translateY(-8px); opacity:0; pointer-events:none; transition:.2s ease; gap:18px; overflow:auto; z-index:60;}
  .main-nav.open{transform:translateY(0); opacity:1; pointer-events:auto;}
  .nav-toggle{
    display:flex; align-items:center; justify-content:center;
    flex:none; width:40px; height:40px; padding:0; margin:0;
    border-radius:10px; border:1px solid var(--line); background:var(--paper);
    cursor:pointer; -webkit-appearance:none; appearance:none; line-height:0;
    position:relative; z-index:61;
  }
  .nav-toggle svg{display:block; pointer-events:none;}
}

.hero{position:relative; padding:64px 0 90px; overflow:hidden;}
.hero .wrap{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center;}
.hero .eyebrow{display:block; margin-bottom:14px;}
.hero h1{font-size:clamp(2.1rem, 4.2vw, 3.2rem); font-weight:900; letter-spacing:.01em;}
.hero h1 .accent{color:var(--coral);}
.hero p.lead{margin-top:20px; font-size:1.02rem; color:var(--text); max-width:46ch;}
.hero .cta-row{display:flex; gap:14px; margin-top:30px; flex-wrap:wrap;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:14px 26px; border-radius:999px; font-weight:700; font-size:.94rem; transition:.18s ease;}
.btn-primary{background:var(--coral); color:#fff; box-shadow:0 12px 24px -12px rgba(238,124,59,.7);}
.btn-primary:hover{background:var(--coral-deep); transform:translateY(-2px);}
.btn-outline{border:2px solid var(--coral); color:var(--coral-deep); background:var(--paper);}
.btn-outline:hover{background:var(--coral); color:#fff;}

.hero-art{position:relative; aspect-ratio:1/1;}
.hero-art .blob{position:absolute; inset:6% 10%; background:var(--coral-tint); border-radius:62% 38% 55% 45% / 48% 45% 55% 52%;}
.hero-art .ring{position:absolute; width:74px; height:74px; border-radius:50%; border:6px solid var(--sprout-tint);}
.hero-art .ring.r1{top:2%; left:0;}
.hero-art .ring.r2{bottom:6%; right:2%; width:44px;height:44px; border-color:var(--coral-tint); border-width:5px;}
.hero-art .sprout-icon{position:absolute; bottom:8%; left:12%; width:70px;}

section{padding:70px 0;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(1.5rem,2.6vw,2.1rem); margin-top:8px;}
.section-head p{margin-top:14px; color:var(--text-soft);}
.alt{background:var(--cream-alt);}

.grid{display:grid; gap:26px;}
.grid.cols-3{grid-template-columns:repeat(3,1fr);}
.grid.cols-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:860px){
  .grid.cols-3, .grid.cols-2{grid-template-columns:1fr;}
  .hero .wrap{grid-template-columns:1fr;}
  .hero-art{order:-1; max-width:280px; margin:0 auto;}
}

.card{background:var(--paper); border-radius:var(--radius-md); padding:30px 26px; box-shadow:var(--shadow); border:1px solid rgba(232,185,138,.35);}
.card h3{font-size:1.08rem; margin-bottom:10px;}
.card p{color:var(--text-soft); font-size:.92rem; margin:0;}

.voice-card{background:var(--paper); border-radius:var(--radius-md); padding:24px; box-shadow:var(--shadow); border-left:5px solid var(--coral);}
.voice-card .q{font-weight:700; color:var(--coral-deep); font-size:.88rem; margin-bottom:8px;}
.voice-card p{margin:0; font-size:.92rem;}

.cta-band{background:linear-gradient(135deg, var(--coral-tint), var(--cream-alt)); border:1px solid rgba(217,98,42,.18); color:var(--text); border-radius:var(--radius-lg); padding:52px 40px; text-align:center; margin:0 24px;}
.cta-band h2{color:var(--ink);}
.cta-band p{color:var(--text); margin-top:12px;}
.cta-band .cta-row{justify-content:center;}
.cta-band .btn-outline{border-color:var(--coral); color:var(--coral-deep);}
.cta-band .btn-outline:hover{background:var(--coral); color:#fff;}

footer{background:var(--cream-alt); color:var(--text); padding:56px 0 26px; margin-top:60px; border-top:1px solid var(--line);}
footer .wrap{display:grid; grid-template-columns:1.2fr minmax(160px,1fr) 1fr; gap:36px;}
footer h4{color:var(--ink); font-size:.95rem; margin-bottom:14px;}
footer p, footer a{color:var(--text-soft); font-size:.88rem;}
footer a:hover{color:var(--coral-deep);}
footer .foot-links{display:flex; flex-direction:column; gap:10px; align-items:flex-start;}
footer .foot-links a{white-space:nowrap;}
.foot-bottom{text-align:center; font-size:.76rem; color:var(--text-soft); margin-top:40px; padding-top:20px; border-top:1px solid rgba(58,46,40,.12);}
@media (max-width:760px){ footer .wrap{grid-template-columns:1fr;} }

.page-hero{padding:52px 0 40px; background:linear-gradient(180deg, var(--cream-alt), var(--cream));}
.page-hero .eyebrow{display:block; margin-bottom:10px;}
.page-hero h1{font-size:clamp(1.7rem,3.4vw,2.4rem);}
.breadcrumb{font-size:.8rem; color:var(--text-soft); margin-bottom:16px;}
.breadcrumb a{color:var(--coral-deep);}

table.price-table{width:100%; border-collapse:collapse; background:var(--paper); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow);}
table.price-table th, table.price-table td{padding:16px 18px; text-align:left; border-bottom:1px solid var(--cream-alt); font-size:.92rem;}
table.price-table thead th{background:var(--coral-tint); color:var(--coral-deep); font-weight:700;}
table.price-table tr:last-child td{border-bottom:none;}

.faq-item{background:var(--paper); border-radius:var(--radius-md); box-shadow:var(--shadow); margin-bottom:14px; overflow:hidden;}
.faq-item summary{list-style:none; cursor:pointer; padding:20px 24px; font-weight:700; display:flex; gap:14px; align-items:flex-start; color:var(--ink);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .qmark{color:var(--coral); font-family:'Fraunces',serif; font-style:italic; font-size:1.2rem; flex:none;}
.faq-item .a{padding:0 24px 22px 58px; color:var(--text); font-size:.92rem;}
.faq-item[open] summary{border-bottom:1px dashed var(--line);}

.flow{display:flex; gap:0; flex-wrap:wrap;}
.flow .fstep{flex:1; min-width:180px; position:relative; padding:0 18px 0 0; text-align:left;}
.flow .fstep .circle{width:46px; height:46px; border-radius:50%; background:var(--sprout-tint); border:2px solid var(--sprout); display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-style:italic; color:var(--sprout-deep); font-weight:700; margin-bottom:14px;}
.flow .fstep h4{font-size:1rem; margin-bottom:8px;}
.flow .fstep p{font-size:.86rem; color:var(--text-soft); margin:0;}

.tag{display:inline-block; padding:5px 14px; border-radius:999px; background:var(--sprout-tint); color:var(--sprout-deep); font-size:.78rem; font-weight:700;}
.tag.coral{background:var(--coral-tint); color:var(--coral-deep);}

.course-card{border-radius:var(--radius-md); padding:28px; color:#fff; box-shadow:var(--shadow);}
.course-card.work{background:linear-gradient(135deg,#F28A45,#E9692A);}
.course-card.study{background:linear-gradient(135deg,#FFD866,#F6B73C);}
.course-card.study h3,.course-card.study p{color:var(--ink);}
.course-card.study .tag{background:rgba(255,255,255,.55) !important; color:#8A5200 !important;}
.course-card h3{color:#fff; font-size:1.15rem; margin-bottom:10px;}
.course-card p{color:rgba(255,255,255,.88); font-size:.9rem; margin:0;}

.prose h2{font-size:1.4rem; margin-bottom:14px;}
.prose h3{font-size:1.1rem; margin:26px 0 10px;}
.prose p{margin:0 0 14px;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start;}
@media (max-width:860px){.two-col{grid-template-columns:1fr;}}

.notice-list{display:flex; flex-direction:column; gap:0; max-width:820px;}
.notice-item{display:flex; gap:20px; padding:22px 0; border-bottom:1px dashed var(--line); align-items:baseline;}
.notice-item time{font-family:'Fraunces',serif; font-style:italic; color:var(--coral-deep); font-size:.9rem; flex:none; width:110px;}
.notice-item a{font-weight:700; color:var(--ink);}
.notice-item a:hover{color:var(--coral-deep);}

.preview-banner{background:var(--ink); color:#fff; text-align:center; font-size:.8rem; padding:8px 16px;}
.preview-banner a{color:#F3B98C; font-weight:700; text-decoration:underline;}

/* ---------- 写真（フォトフレーム） ---------- */
.photo-frame{border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow); position:relative; background:var(--cream-alt);}
.photo-frame img{width:100%; height:100%; object-fit:cover; display:block;}
.photo-frame.ratio-16-9{aspect-ratio:16/9;}
.photo-frame.ratio-4-3{aspect-ratio:4/3;}
.photo-frame.ratio-1-1{aspect-ratio:1/1;}
.photo-credit{margin-top:8px; font-size:.72rem; color:var(--text-soft); text-align:right;}

.photo-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px;}
.photo-strip figure{margin:0;}
.photo-strip figcaption{margin-top:10px; font-size:.85rem; color:var(--text-soft); text-align:center;}
@media (max-width:860px){ .photo-strip{gap:10px; margin-top:28px;} .photo-strip figcaption{font-size:.68rem; margin-top:6px;} .photo-strip .photo-frame{border-radius:var(--radius-sm);} }
@media (max-width:480px){ .photo-strip{gap:7px;} .photo-strip figcaption{font-size:.62rem; line-height:1.35;} }

.photo-lead{margin-bottom:40px;}
.photo-lead .photo-frame{max-width:900px; margin:0 auto;}

.card.with-photo{padding:0; overflow:hidden;}
.card.with-photo .photo-frame{border-radius:0; box-shadow:none;}
.card.with-photo .card-body{padding:24px 26px;}

/* ---------- 週間スケジュール ---------- */
.week-schedule{display:grid; grid-template-columns:repeat(6,1fr); background:var(--paper); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow);}
.week-day{display:flex; flex-direction:column; border-right:1px solid var(--cream-alt);}
.week-day:last-child{border-right:none;}
.week-day .wd-label{background:var(--coral-tint); color:var(--coral-deep); font-weight:700; padding:14px 16px; font-size:.92rem;}
.week-day .wd-body{padding:16px; display:flex; flex-direction:column; gap:4px; font-size:.9rem;}
.week-day .wd-place{font-weight:700; color:var(--ink);}
@media (max-width:860px){
  .week-schedule{grid-template-columns:1fr;}
  .week-day{flex-direction:row; border-right:none; border-bottom:1px solid var(--cream-alt);}
  .week-day:last-child{border-bottom:none;}
  .week-day .wd-label{flex:none; width:72px; display:flex; align-items:center; justify-content:center; text-align:center; padding:12px 8px;}
  .week-day .wd-body{padding:12px 16px;}
}

.foot-emblem{width:96px;height:96px;margin-bottom:12px;}
.foot-emblem > svg{width:100%;height:100%;display:block;}


/* ===== Artifact公開用の追加スタイル ===== */
:root{box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); --on-ink:#fff; color-scheme:light;}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 80px);}
body{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;}
.site-header{top:env(safe-area-inset-top,0px);}
@media (max-width:980px){ .main-nav{top:calc(64px + env(safe-area-inset-top,0px)) !important; padding-bottom:calc(24px + env(safe-area-inset-bottom,0px)) !important;} }
img{max-width:100%;}
table{display:block; overflow-x:auto; max-width:100%;}
.nav-toggle svg path{stroke:var(--ink);}
.btn-outline:hover,.cta-band .btn-outline:hover{color:var(--on-ink);}
.preview-banner{color:var(--on-ink);}

/* ダークモードは使わず、常に明るい配色で表示 */


/* ---------- 余白調整 ---------- */
.main-nav a.hdr-cta{padding:12px 26px; line-height:1.4;}
@media (max-width:1180px) and (min-width:861px){ .main-nav a.hdr-cta{padding:10px 18px;} }
@media (max-width:860px){ .main-nav a.hdr-cta{padding:14px 28px; margin-left:0; margin-top:6px;} }
.cta-band h2{margin-top:10px;}
.cta-band .cta-row{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px;}
.cta-band p + .cta-row{margin-top:26px;}

/* ===== WordPress用 ===== */
.post-body > *{max-width:760px;}
.post-body img{height:auto; border-radius:var(--radius-sm);}
.post-body h2{font-size:1.35rem; margin:32px 0 12px;}
.post-body h3{font-size:1.12rem; margin:24px 0 10px;}
.post-body p{margin:0 0 16px;}
.post-meta{display:flex; gap:12px; align-items:center; margin-top:12px; color:var(--text-soft); font-size:.88rem;}
.pager{display:flex; gap:10px; margin-top:30px; flex-wrap:wrap;}
.pager .page-numbers{padding:6px 14px; border-radius:999px; background:var(--paper); border:1px solid var(--line);}
.pager .page-numbers.current{background:var(--coral); color:#fff; border-color:var(--coral);}
.news-empty{color:var(--text-soft);}
body.admin-bar .site-header{top:32px;}
@media (max-width:782px){ body.admin-bar .site-header{top:46px;} }
