/*
Theme Name: kosodachi
Description: こそだち舎 公式サイト専用テーマ（仮サイト デザイン/作り直し_v2/site から build_wp_theme.py で自動生成）
Version: 1.0.0
Author: ハコトカタチ
*/
:root{
  --coral:#C25B47; --coral-d:#B04A38; --mint-l:#C0E3D5; --terra:#E8A87C; --orange:#E8A040; --mustard:#F0C078;
  --teal:#2E6B53; --teal-d:#1E5340; --mint:#7FBFA8;
  --ivory:#F9F4E8; --cream:#FDFAF3; --ink:#2A2724; --ink-l:#6B655D; --line:#E2D9C8;
  --font:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Yu Gothic",sans-serif;
  --hand:"Zen Kurenaido","Zen Maru Gothic",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:#2A2724;font-family:var(--font);color:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit}

/* preview chrome */
.bar{position:sticky;top:0;z-index:100;background:#1c1a18;color:#cfc8bd;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;font-size:13px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.bar b{color:#fff;font-weight:700;margin-right:6px}
.bar a{color:#cfc8bd;text-decoration:none;border:1px solid #4a453f;border-radius:99px;padding:6px 12px;font-size:12px;font-weight:700}
.bar a.on{background:var(--ivory);color:#2A2724;border-color:var(--ivory)}
.bar span{color:#8d867c;margin-left:auto;font-size:12px}
.stage{overflow:hidden}
.scaler{transform-origin:top left}
.page{width:1440px;background:var(--ivory);overflow:hidden;position:relative}

/* header / footer */
.hdr{display:flex;align-items:center;gap:28px;padding:18px 100px;position:relative;z-index:6}
.hdr .logo{height:52px}
.hdr nav{display:flex;gap:22px;font-size:14px;font-weight:500;margin-left:auto}
.hdr .cta{background:var(--coral-d);color:#fff;font-size:14px;font-weight:700;letter-spacing:.04em;padding:12px 22px;border-radius:99px}
footer{background:var(--teal-d);color:#e8e2d6;padding:56px 100px 30px}
footer .inner{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:32px;max-width:1240px;margin:0 auto}
footer .logo{height:54px;filter:brightness(0) invert(1);opacity:.95}
footer p{font-size:13px;line-height:1.9;opacity:.8;margin:16px 0 0}
footer h4{font-size:12px;letter-spacing:.2em;margin:0 0 14px;color:var(--mint);font-weight:700}
footer ul{list-style:none;margin:0;padding:0;font-size:13px;line-height:2.1;opacity:.9}
footer .copy{text-align:center;font-size:12px;opacity:.75;margin-top:40px}

/* common parts */
.eyebrow{font-size:12px;letter-spacing:.2em;font-weight:700;color:var(--teal);display:inline-flex;align-items:center;gap:8px}
.eyebrow .kd-mk{flex:none;display:block}
.h2{text-align:center;margin-bottom:40px}
.h2 h2{font-size:34px;line-height:1.5;margin:8px 0 0;font-weight:900;letter-spacing:-.01em}
.h2 .sub{font-size:16px;color:var(--ink-l);margin:14px 0 0;line-height:2;letter-spacing:.01em;max-width:620px;margin-left:auto;margin-right:auto}
.dotline{background-image:radial-gradient(circle,var(--teal) 1.6px,transparent 1.6px);background-position:bottom left;background-size:9px 9px;background-repeat:repeat-x;padding-bottom:12px}
.hand{font-family:var(--hand);color:var(--coral-d)}
.btn{display:inline-block;text-decoration:none;font-size:15px;font-weight:700;letter-spacing:.04em;padding:16px 32px;border-radius:99px;background:var(--coral-d);color:#fff}
.btn.ghost{background:transparent;color:var(--teal);border:2px solid var(--teal)}
section{position:relative;padding:72px 100px}
section.band{padding:112px 100px}
.cta-band{padding:96px 100px}
.center{text-align:center;margin-top:44px}
.rail{position:absolute;right:0;top:230px;display:flex;flex-direction:column;gap:10px;z-index:40}
.rail a{writing-mode:vertical-rl;display:block;text-align:center;padding:24px 14px;border-radius:12px 0 0 12px;font-size:14px;font-weight:700;letter-spacing:.14em;color:#fff;background:var(--coral-d);text-decoration:none;box-shadow:-3px 4px 14px rgba(60,40,20,.18)}
.rail div:nth-child(2){background:var(--orange);color:#3a2a16}

/* page head (下層) */
.phead{position:relative;padding:54px 100px 66px;overflow:hidden}
.phead .inner{max-width:1240px;margin:0 auto;position:relative;z-index:2}
.phead .crumb{font-size:12px;color:var(--ink-l);margin-bottom:26px}
.phead h1{font-size:40px;line-height:1.5;margin:6px 0 0;font-weight:900;letter-spacing:-.01em}
.phead .en{font-size:12px;letter-spacing:.2em;font-weight:700;color:var(--teal);opacity:.85}
.phead p{font-size:16px;line-height:2;letter-spacing:.01em;color:var(--ink-l);margin:20px 0 0;max-width:620px}
.phead .blob{position:absolute;border-radius:58% 42% 50% 50%/50% 55% 45% 50%;opacity:.5}
.phead .b1{width:300px;height:250px;background:var(--mustard);right:120px;top:-40px}
.phead .b2{width:190px;height:170px;background:var(--mint);right:60px;top:150px;opacity:.45}
.phead.teal{background:var(--teal);color:#fff}
.phead.teal .crumb,.phead.teal p{color:rgba(255,255,255,.82)}
.phead.teal .en{color:var(--mint);opacity:1}
.phead.mustard{background:var(--mustard)}
.phead.mustard .en{color:#7a5312}
.phead.mustard .crumb,.phead.mustard p{color:#5a3f13}
.phead .photo{position:absolute;right:100px;top:30px;width:330px;height:220px;border-radius:20px;overflow:hidden;transform:rotate(3deg);box-shadow:0 16px 34px rgba(60,40,20,.18);z-index:3}
.phead .photo img{width:100%;height:100%;object-fit:cover}

/* cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:1240px;margin:0 auto}
.card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 10px 26px rgba(80,60,30,.08)}
.card .ph{height:172px;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover}
.card .bd{padding:18px 18px 22px}
.chip{display:inline-block;align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.04em;padding:5px 14px;border-radius:99px;background:var(--mustard);color:#5a3f13}
.card h3{font-size:19px;line-height:1.6;margin:10px 0 6px;font-weight:700}
.card p{margin:0;font-size:14px;line-height:1.85;letter-spacing:.01em;color:var(--ink-l)}
.card .meta{margin-top:14px;font-size:12px;color:var(--teal);font-weight:700}

/* course detail rows */
.crow{display:grid;grid-template-columns:.95fr 1.05fr;gap:50px;align-items:center;max-width:1240px;margin:0 auto 74px}
.crow:nth-child(even) .pic{order:2}
.crow .pic{border-radius:24px;overflow:hidden;height:360px;box-shadow:0 16px 34px rgba(60,40,20,.12)}
.crow .pic img{width:100%;height:100%;object-fit:cover}
.crow h3{font-size:24px;line-height:1.6;margin:14px 0 0;font-weight:700}
.crow .lead{font-size:16px;line-height:2;letter-spacing:.01em;color:var(--ink-l);margin:18px 0 22px;max-width:560px}
.spec{width:100%;border-collapse:collapse;font-size:14px}
.spec th,.spec td{text-align:left;padding:12px 4px;border-bottom:1px dashed var(--line)}
.spec th{width:110px;color:var(--teal);font-weight:700}
.note-s{font-size:12px;color:var(--ink-l);margin-top:14px}

/* news list */
.nlist{max-width:980px;margin:0 auto}
.nlist a{display:grid;grid-template-columns:96px 88px 1fr;gap:18px;align-items:center;padding:20px 8px;border-bottom:1px dashed var(--line);text-decoration:none;font-size:16px}
.nlist time{color:var(--ink-l);font-size:13px}
.tag{font-size:11px;font-weight:700;padding:4px 10px;border-radius:99px;background:var(--mustard);color:#5a3f13;text-align:center}
.tag.ev{background:var(--mint);color:#17402f}
.tag.cl{background:var(--terra);color:#4a2a16}
.pager{display:flex;gap:10px;justify-content:center;margin-top:46px}
.pager span{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;background:#fff;color:var(--ink-l)}
.pager span.on{background:var(--coral-d);color:#fff}

/* faq */
.faqgroup{max-width:980px;margin:0 auto 54px}
.faqgroup h3{font-size:24px;margin:0 0 18px;font-weight:700;display:flex;align-items:center;gap:12px}
.faqgroup h3:before{content:"";width:12px;height:12px;border-radius:50%;background:var(--terra)}
.qa{background:#fff;border-radius:16px;padding:20px 26px;margin-bottom:14px;box-shadow:0 8px 20px rgba(80,60,30,.06)}
.qa .q{display:flex;gap:14px;align-items:center;font-size:16px;font-weight:700}
.qa .q i{font-style:normal;color:var(--coral-d);font-weight:900}
.qa .a{margin:12px 0 0 30px;font-size:14px;line-height:1.85;letter-spacing:.01em;color:var(--ink-l)}

/* access */
.amap{height:380px;border-radius:24px;background:var(--mint);opacity:.55;display:flex;align-items:center;justify-content:center;color:#17402f;font-size:14px;font-weight:700;max-width:1240px;margin:0 auto}
.ainfo{display:grid;grid-template-columns:1fr 1fr;gap:50px;max-width:1240px;margin:50px auto 0}
.ainfo dl{margin:0}
.ainfo dt{font-size:12px;letter-spacing:.2em;color:var(--teal);font-weight:700;margin-top:22px}
.ainfo dd{margin:6px 0 0;font-size:16px;line-height:1.9}
.way{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1240px;margin:0 auto}
.way .w{background:#fff;border-radius:20px;padding:26px 24px;box-shadow:0 10px 26px rgba(80,60,30,.07)}
.way .n{width:40px;height:40px;border-radius:999px 999px 0 0;background:var(--ivory);color:var(--coral-d);font-weight:900;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.way h3{font-size:19px;line-height:1.6;margin:0 0 8px;font-weight:700}
.way p{font-size:14px;line-height:1.85;letter-spacing:.01em;color:var(--ink-l);margin:0}
.floorlist{max-width:1240px;margin:0 auto;background:var(--cream);border-radius:28px;padding:34px 40px}
.floorlist li{display:flex;align-items:center;gap:16px;padding:15px 4px;border-bottom:1px dashed var(--line);list-style:none}
.floorlist ul{margin:0;padding:0}
.floorlist li:last-child{border:0}
.fl{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;color:#fff;flex:none}
.floorlist strong{font-size:19px}
.floorlist span{font-size:14px;color:var(--ink-l);margin-left:auto}

/* form */
.form{max-width:980px;margin:0 auto;background:#fff;border-radius:28px;padding:44px 48px;box-shadow:0 14px 34px rgba(80,60,30,.08)}
.field{margin-bottom:26px}
.field label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;margin-bottom:10px}
.req{font-size:12px;font-weight:700;background:var(--coral-d);color:#fff;padding:4px 9px;border-radius:4px}
.any{font-size:12px;font-weight:700;background:var(--line);color:#5c574f;padding:4px 9px;border-radius:4px}
.inp{border:1.5px solid var(--line);border-radius:12px;height:52px;background:var(--cream)}
.inp.ta{height:140px}
.radios{display:flex;gap:14px;flex-wrap:wrap}
.radios .r{border:1.5px solid var(--line);border-radius:99px;padding:12px 22px;font-size:14px;background:var(--cream)}
.radios .r.on{border-color:var(--coral-d);background:#fff;color:var(--coral-d);font-weight:700}
.privacy{font-size:13px;line-height:1.9;color:var(--ink-l);background:var(--cream);border-radius:14px;padding:18px 20px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;max-width:1240px;margin:0 auto}
.step{text-align:center}
.step .n{width:74px;height:74px;background:#fff;border:2px solid var(--terra);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:24px;font-weight:900;color:var(--coral-d)}
.step:last-child .n{background:var(--coral-d);color:#fff;border-style:solid;border-color:var(--coral-d)}
.step h3{font-size:19px;line-height:1.6;margin:0 0 8px;font-weight:700}
.step p{font-size:14px;line-height:1.85;letter-spacing:.01em;color:var(--ink-l);margin:0}

/* price */
.price{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1240px;margin:0 auto}
.pcard{background:#fff;border-radius:24px;padding:32px 28px;text-align:center;box-shadow:0 10px 26px rgba(80,60,30,.07)}
.pcard h3{font-size:19px;margin:0 0 6px}
.pcard .yen{font-size:30px;font-weight:900;color:var(--coral-d);margin:12px 0 4px}
.pcard .yen small{font-size:13px;font-weight:700;color:var(--ink-l)}
.pcard p{font-size:14px;line-height:1.85;color:var(--ink-l);margin:12px 0 0}

/* cta band */
.cta-band{background:var(--terra);text-align:center}
.cta-band h2{font-size:34px;line-height:1.5;margin:0 0 10px;font-weight:900;letter-spacing:-.01em;color:#4a2a16}
.cta-band p{font-size:16px;color:#5c3620;margin:0 0 28px}

/* two banners */
.two{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:1240px;margin:0 auto}
.bn{border-radius:24px;overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;align-items:stretch}
.bn .tx{padding:34px 30px}
.bn h3{font-size:24px;line-height:1.6;margin:0 0 12px;font-weight:700}
.bn p{font-size:14px;line-height:1.85;letter-spacing:.01em;margin:0 0 18px}
.bn .lk{font-size:14px;font-weight:700}
.bn .im{overflow:hidden}
.bn .im img{width:100%;height:100%;object-fit:cover}
.bn.adult{background:var(--mint);color:#17402f}
.bn.teacher{background:var(--mustard);color:#5a3f13}
.cream{background:var(--cream)}

/* ===== TOP 固有 ===== */
.fv{position:relative;padding:8px 0 70px;overflow:hidden}
.fv .arc{position:absolute;left:-10%;top:250px;width:120%;height:900px;background:var(--cream);border-radius:50% 50% 0 0}
.shots{position:relative;height:430px;margin:18px auto 0;width:1100px}
.shots figure{position:absolute;margin:0;border-radius:22px;overflow:hidden;box-shadow:0 18px 40px rgba(60,40,20,.16);background:#fff}
.s1{width:390px;height:300px;left:0;top:70px;transform:rotate(-7deg)}
.s2{width:420px;height:340px;left:350px;top:0;transform:rotate(2deg);z-index:2}
.s3{width:390px;height:300px;left:730px;top:60px;transform:rotate(6deg)}
.shots img{width:100%;height:100%;object-fit:cover}
.fv .copy{position:relative;text-align:center;margin-top:34px}
.fv h1{font-size:52px;line-height:1.45;margin:0;font-weight:900;letter-spacing:-.01em}
.fv .copy p{margin:22px 0 0;font-size:16px;line-height:2;letter-spacing:.01em;color:var(--ink-l)}
.fv .note{position:absolute;font-family:var(--hand);color:var(--coral-d);font-size:20px;z-index:3}
.dots{display:flex;gap:9px;justify-content:center;margin-bottom:14px}
.dots i{width:7px;height:7px;border-radius:50%;background:var(--mint);display:block}
.dots i:nth-child(2n){background:var(--terra)}
.badge{position:absolute;right:100px;top:340px;width:210px;height:210px;border-radius:50%;background:var(--teal);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;box-shadow:0 0 0 6px var(--ivory),0 0 0 8px var(--teal);z-index:3}
.badge em{font-style:normal;font-size:11px;letter-spacing:.2em;opacity:.85}
.badge b{font-size:26px;font-weight:900}
.badge small{font-size:12px;line-height:1.7;opacity:.9}
.news{background:var(--cream);padding:56px 48px}
.news .inner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:center}
.news h2{font-size:24px;margin:0;font-weight:700;letter-spacing:.04em}
.news ul{list-style:none;margin:0;padding:0}
.news li{display:flex;gap:18px;align-items:center;padding:12px 0;border-bottom:1px dashed var(--line);font-size:14px}
.news li:last-child{border:0}
.news time{color:var(--ink-l);font-size:13px;width:92px;flex:none}
.news .more{font-size:13px;font-weight:700;color:var(--teal);white-space:nowrap}
.about{padding-top:96px}
.about .inner{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;max-width:1240px;margin:0 auto}
.about h2{font-size:34px;line-height:1.5;margin:14px 0 0;font-weight:900;letter-spacing:-.01em}
.about p{font-size:16px;line-height:2;letter-spacing:.01em;color:var(--ink-l);margin:26px 0 0;max-width:560px}
.about .pics{position:relative;height:460px}
.about .pics figure{position:absolute;margin:0;border-radius:20px;overflow:hidden;box-shadow:0 16px 34px rgba(60,40,20,.14)}
.about .p1{width:330px;height:300px;left:0;top:0;transform:rotate(-3deg)}
.about .p2{width:280px;height:250px;right:0;top:170px;transform:rotate(4deg)}
.about .pics img{width:100%;height:100%;object-fit:cover}
.about .blob{position:absolute;width:260px;height:230px;background:var(--mustard);opacity:.35;border-radius:60% 40% 55% 45%/55% 55% 45% 45%;right:40px;top:0}
.points{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1240px;margin:70px auto 0}
.point{background:#fff;border-radius:22px;padding:30px 26px;text-align:center;box-shadow:0 10px 26px rgba(80,60,30,.07)}
.point .ic{width:62px;height:62px;border-radius:50%;background:var(--ivory);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.point h3{font-size:19px;line-height:1.6;margin:0 0 10px;font-weight:700}
.point p{font-size:14px;line-height:1.85;letter-spacing:.01em;color:var(--ink-l);margin:0}
.floors{background:var(--cream);border-radius:28px;max-width:1240px;margin:0 auto;padding:40px 44px;display:grid;grid-template-columns:1.15fr 1fr;gap:44px;align-items:center}
.floors ul{list-style:none;margin:0;padding:0}
.floors li{display:flex;align-items:center;gap:16px;padding:15px 4px;border-bottom:1px dashed var(--line)}
.floors li:last-child{border:0}
.floors strong{font-size:19px;font-weight:700}
.floors span{font-size:14px;color:var(--ink-l);margin-left:auto}
.floors .pic{border-radius:20px;overflow:hidden;height:380px}
.floors .pic img{width:100%;height:100%;object-fit:cover}
.floors .pic.tall{height:600px}
.bldgfig{max-width:520px;margin:36px auto 0;border-radius:24px 24px 24px 0;overflow:hidden;background:#fff;box-shadow:0 10px 26px rgba(80,60,30,.07)}
.bldgfig img{display:block;width:100%;height:auto}
.bldgfig figcaption{font-size:13px;color:var(--ink-l);text-align:center;padding:12px}

/* ===== 教室一覧（増えても持つ作り） ===== */
.finder{max-width:1240px;margin:0 auto 60px;background:#fff;border-radius:24px;padding:28px 32px;box-shadow:0 10px 26px rgba(80,60,30,.07)}
.finder .row{display:flex;gap:14px;align-items:center;padding:12px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap}
.finder .row:last-child{border:0}
.finder .lb{font-size:12px;font-weight:700;color:var(--teal);letter-spacing:.06em;width:96px;flex:none}
.finder .ch{font-size:13px;font-weight:700;padding:9px 18px;border-radius:99px;background:var(--cream);border:1.5px solid var(--line);color:var(--ink-l)}
.finder .ch.on{background:var(--coral-d);border-color:var(--coral-d);color:#fff}
.finder .count{margin-left:auto;font-size:13px;color:var(--ink-l)}
.finder .count b{font-size:18px;color:var(--coral-d);font-weight:900;margin:0 4px}

.catblock{max-width:1240px;margin:0 auto 64px}
.cathead{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.cathead .dot{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}
.cathead h3{font-size:24px;line-height:1.6;margin:0;font-weight:700}
.cathead p{font-size:14px;color:var(--ink-l);margin:0 0 0 auto;line-height:1.85}
.ccards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1240px;margin:0 auto}
.ccard{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 10px 26px rgba(80,60,30,.08);display:flex;flex-direction:column}
.ccard .ph{height:168px;overflow:hidden;position:relative}
.ccard .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ccard .fl-badge{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.92);border-radius:99px;font-size:11px;font-weight:700;padding:6px 12px}
.ccard .bd{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.ccard h4{font-size:19px;line-height:1.6;margin:0 0 8px;font-weight:700}
.ccard .desc{font-size:14px;line-height:1.85;letter-spacing:.01em;color:var(--ink-l);margin:0 0 14px}
.ccard .tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.ccard .tg{font-size:11px;padding:4px 10px;border-radius:6px;background:var(--cream);color:var(--ink-l);border:1px solid var(--line)}
.ccard .pricebox{margin-top:auto;border-top:1px dashed var(--line);padding-top:14px;display:flex;align-items:flex-end;gap:12px}
.ccard .pricebox .p{font-size:12px;letter-spacing:.02em;color:var(--ink-l)}
.ccard .pricebox .yen{font-size:22px;font-weight:900;color:var(--coral);line-height:1.2}
.ccard .pricebox .yen small{font-size:12px;font-weight:700;color:var(--ink-l)}
.ccard .acts{display:flex;gap:10px;margin-top:16px}
.ccard .acts a{flex:1;text-align:center;text-decoration:none;font-size:13px;font-weight:700;padding:12px 8px;border-radius:99px}
.ccard .acts .b1{background:var(--coral-d);color:#fff}
.ccard .acts .b2{border:1.5px solid var(--teal);color:var(--teal)}
.ccard.soon{background:repeating-linear-gradient(135deg,#fff,#fff 12px,var(--cream) 12px,var(--cream) 24px);display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--ink-l);font-size:14px;font-weight:700;text-align:center;line-height:1.9}

/* ===== 決済まわり ===== */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1240px;margin:0 auto}
.plan{background:#fff;border-radius:24px;padding:34px 30px;box-shadow:0 10px 26px rgba(80,60,30,.07);position:relative;display:flex;flex-direction:column}
.plan.reco{border:2px solid var(--coral)}
.plan .badge-r{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--coral-d);color:#fff;font-size:11px;font-weight:700;padding:6px 16px;border-radius:99px;white-space:nowrap}
.plan h3{font-size:24px;margin:0 0 4px;font-weight:700}
.plan .cap{font-size:13px;color:var(--ink-l);margin:0 0 18px}
.plan .yen{font-size:32px;font-weight:900;color:var(--coral-d);margin:0 0 4px}
.plan .yen small{font-size:13px;font-weight:700;color:var(--ink-l)}
.plan ul{list-style:none;margin:18px 0 24px;padding:0;font-size:14px;line-height:1.95;color:var(--ink-l)}
.plan ul li{padding-left:22px;position:relative}
.plan ul li:before{content:"";position:absolute;left:0;top:11px;width:12px;height:12px;border-radius:50%;background:var(--mint)}
.plan .go{margin-top:auto;display:block;text-align:center;text-decoration:none;font-size:15px;font-weight:700;letter-spacing:.04em;padding:15px;border-radius:99px;background:var(--coral-d);color:#fff}
.plan .go.ghost{background:transparent;border:2px solid var(--teal);color:var(--teal)}
.paysteps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;max-width:1240px;margin:0 auto;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 10px 26px rgba(80,60,30,.07)}
.paysteps .p{padding:28px 24px;border-right:1px dashed var(--line)}
.paysteps .p:last-child{border:0}
.paysteps .n{font-size:12px;font-weight:700;color:var(--coral-d);letter-spacing:.2em;margin-bottom:10px}
.paysteps h4{font-size:16px;margin:0 0 8px}
.paysteps p{font-size:13px;line-height:1.85;color:var(--ink-l);margin:0}
.paynote{max-width:1240px;margin:28px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.paynote div{background:var(--cream);border-radius:16px;padding:20px 22px;font-size:14px;line-height:1.9;color:var(--ink-l)}
.paynote b{display:block;color:var(--ink);margin-bottom:6px;font-size:14px}

/* ===== 教室詳細 ===== */
.chero{display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:stretch}
.chero .tx{padding:64px 56px 64px 100px;background:var(--cream)}
.chero .im{overflow:hidden;min-height:420px}
.chero .im img{width:100%;height:100%;object-fit:cover}
.chero h1{font-size:40px;margin:14px 0 18px;font-weight:900;line-height:1.5;letter-spacing:-.01em}
.chero .lead{font-size:16px;line-height:2;letter-spacing:.01em;color:var(--ink-l);margin:0 0 24px;max-width:560px}
.chero .quick{display:flex;gap:10px;flex-wrap:wrap}
.chero .quick span{font-size:12px;background:#fff;border:1px solid var(--line);border-radius:99px;padding:8px 14px}
.sched{max-width:980px;margin:0 auto;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 10px 26px rgba(80,60,30,.07)}
.sched table{width:100%;border-collapse:collapse;font-size:14px}
.sched th,.sched td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:left}
.sched thead th{background:var(--cream);font-size:12px;letter-spacing:.06em;color:var(--teal);font-weight:700}
.sched tbody tr:last-child td{border-bottom:0}
.sched .open{color:var(--teal);font-weight:700}
.sched .few{color:var(--coral-d);font-weight:700}
.sched .full{color:var(--ink-l)}
.sched .bk{background:var(--coral-d);color:#fff;font-size:13px;font-weight:700;letter-spacing:.04em;padding:9px 18px;border-radius:99px;display:inline-block}
.sched .bk.off{background:#EFE8DA;color:var(--ink-l)}

/* ===== ブログ（お知らせ） ===== */
.blogwrap{display:grid;grid-template-columns:1fr 300px;gap:56px;max-width:1240px;margin:0 auto}
.catbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px}
.catbar span{font-size:13px;font-weight:700;padding:10px 20px;border-radius:99px;background:#fff;border:1.5px solid var(--line);color:var(--ink-l)}
.catbar span.on{background:var(--coral-d);border-color:var(--coral-d);color:#fff}
.feature{display:grid;grid-template-columns:1.05fr .95fr;gap:0;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 12px 30px rgba(80,60,30,.09);margin-bottom:40px}
.feature .im{min-height:300px;overflow:hidden;position:relative}
.feature .im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature .tx{padding:36px 38px;display:flex;flex-direction:column;justify-content:center}
.feature .pin{font-size:12px;font-weight:700;color:var(--coral-d);letter-spacing:.12em;margin-bottom:12px}
.feature h3{font-size:24px;line-height:1.6;margin:8px 0 14px;font-weight:700}
.feature p{font-size:14px;line-height:1.9;letter-spacing:.01em;color:var(--ink-l);margin:0 0 20px}
.feature .meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--ink-l)}
.posts{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.post{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 10px 24px rgba(80,60,30,.07);display:flex;flex-direction:column}
.post .im{height:180px;position:relative;overflow:hidden}
.post .im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.post .bd{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.post .meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--ink-l);margin-bottom:10px}
.post h3{font-size:19px;line-height:1.6;margin:0 0 10px;font-weight:700}
.post p{font-size:14px;line-height:1.85;letter-spacing:.01em;color:var(--ink-l);margin:0 0 16px}
.post .more{margin-top:auto;font-size:13px;font-weight:700;color:var(--teal)}
.side .box{background:#fff;border-radius:20px;padding:24px 24px;box-shadow:0 10px 24px rgba(80,60,30,.06);margin-bottom:24px}
.side h4{font-size:16px;margin:0 0 16px;font-weight:700;display:flex;align-items:center;gap:10px}
.side h4:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--terra)}
.side ul{list-style:none;margin:0;padding:0;font-size:14px;line-height:2.2;color:var(--ink-l)}
.side ul li{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding:2px 0}
.side ul li:last-child{border:0}
.side .rank{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}
.side .rank:last-child{border:0}
.side .rank .th{width:62px;height:52px;border-radius:10px;overflow:hidden;flex:none;position:relative}
.side .rank .th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.side .rank p{margin:0;font-size:13px;line-height:1.7}
.side .rank time{font-size:11px;color:var(--ink-l)}
.side .cta-box{background:var(--teal);color:#fff;text-align:center}
.side .cta-box h4{color:#fff;justify-content:center}
.side .cta-box h4:before{background:var(--mint)}
.side .cta-box p{font-size:13px;line-height:1.9;opacity:.9;margin:0 0 16px}
.side .cta-box a{display:block;background:var(--coral-d);color:#fff;text-decoration:none;font-size:13px;font-weight:700;padding:13px;border-radius:99px}

/* 記事ページ */
.article{max-width:760px;margin:0 auto}
.article .head{text-align:center;margin-bottom:34px}
.article .head .meta{display:flex;gap:12px;justify-content:center;align-items:center;font-size:13px;color:var(--ink-l);margin-bottom:16px}
.article .head h1{font-size:40px;line-height:1.5;margin:0;font-weight:900;letter-spacing:-.01em}
.article .eyecatch{border-radius:24px;overflow:hidden;height:380px;position:relative;margin-bottom:38px}
.article .eyecatch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.article .body{background:#fff;border-radius:24px;padding:44px 44px;box-shadow:0 10px 26px rgba(80,60,30,.07)}
.article .body p{font-size:16px;line-height:2.05;letter-spacing:.01em;color:#3b3631;margin:0 0 24px}
.article .body h2{font-size:24px;margin:38px 0 18px;font-weight:900;padding-left:16px;border-left:5px solid var(--coral)}
.article .body h3{font-size:18px;margin:28px 0 12px;font-weight:700}
.article .body figure{margin:28px 0}
.article .body figure img{border-radius:16px}
.article .body figcaption{font-size:12px;color:var(--ink-l);margin-top:10px;text-align:center}
.article .body ul{font-size:16px;line-height:2.1;color:#3b3631;padding-left:20px}
.article .quote{background:var(--cream);border-radius:16px;padding:24px 26px;font-size:15px;line-height:2;color:var(--ink-l);margin:28px 0}
.article .tags2{display:flex;gap:8px;flex-wrap:wrap;margin-top:34px}
.article .tags2 span{font-size:12px;background:var(--cream);border:1px solid var(--line);border-radius:99px;padding:7px 14px;color:var(--ink-l)}
.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:760px;margin:34px auto 0}
.prevnext a{background:#fff;border-radius:16px;padding:20px 24px;text-decoration:none;box-shadow:0 8px 20px rgba(80,60,30,.06)}
.prevnext .lb{font-size:12px;font-weight:700;color:var(--teal);letter-spacing:.06em}
.prevnext p{font-size:14px;line-height:1.8;margin:8px 0 0}
.prevnext a:last-child{text-align:right}


/* ===== レビュー反映：写真の調整 ===== */
.page img{filter:saturate(1.08) contrast(1.05) brightness(1.02)}
.page img[src*="assets/p_"]{filter:saturate(.95) contrast(1.03)}
.page .logo{filter:none}
footer .logo{filter:brightness(0) invert(1)}

/* ===== レビュー反映：面で色を使う ===== */
section.teal{background:var(--teal);color:#fff}
section.teal .h2 h2,section.teal .cathead h3{color:#fff}
section.teal .eyebrow{color:var(--mint)}
section.teal .h2 .sub{color:rgba(255,255,255,.85)}
section.teal .floors{background:rgba(255,255,255,.07)}
section.teal .floors li{border-bottom-color:rgba(255,255,255,.25)}
section.teal .floors strong{color:#fff}
section.teal .floors span{color:rgba(255,255,255,.8)}
section.mintbg{background:#EAF4EF}
.cream{background:#FFFFFF}

/* ===== レビュー反映：ロゴの幾何に合わせる ===== */
.card,.ccard,.point,.post,.plan,.qa,.way .w,.feature,.side .box,.article .body{border-radius:24px 24px 24px 0}
.ccard .ph{border-radius:24px 24px 0 0}
.phead .blob,.about .blob{border-radius:0}
.phead .b1{border-radius:999px 999px 0 0}
.phead .b2{border-radius:0 999px 0 0}
.about .blob{border-radius:999px 999px 0 0}

.point .ic{border-radius:999px 999px 0 0}
.step .n{border-radius:999px 999px 10px 10px;border-style:solid;border-color:var(--terra)}

/* ===== レビュー反映：操作しやすさ ===== */
.hdr{position:sticky;top:0;background:rgba(249,244,232,.94);backdrop-filter:blur(6px)}
.hdr nav a{padding:12px 4px}
.rail{position:absolute;right:0;top:620px}
.side .rank time,.feature .pin,.plan .badge-r,.ccard .fl-badge,.ccard .tg,.tag,.badge em{font-size:12px}
a:focus-visible,.btn:focus-visible{outline:2px solid var(--coral-d);outline-offset:2px}


/* ===== 2周目の反映 ===== */
/* FVの主従：主役を大きく水平に */
.s2{width:520px;height:400px;left:290px;top:0;transform:rotate(0);z-index:2}
.s1{width:300px;height:230px;left:0;top:110px;transform:rotate(-5deg)}
.s3{width:300px;height:230px;left:800px;top:120px;transform:rotate(4deg)}
.shots{height:440px;width:1100px}
.fv .arc{background:#FFFFFF}

/* 見出しを左寄せ2カラムにする型 */
.h2.left{text-align:left;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;max-width:1240px;margin:0 auto 44px}
.h2.left h2{font-size:40px;margin:10px 0 0}
.h2.left .sub{margin:0;max-width:none;text-align:left}



/* 深緑面の写真を浮かせる */
section.teal .floors .pic{box-shadow:0 0 0 6px rgba(255,255,255,.1)}

/* 地図プレースホルダを緑から外す */
.amap{background:#EFE7D8;opacity:1;color:#6B655D}

/* 教室一覧：件数に応じて列を変える（空カードを出さない） */


/* 先生募集への横長バナー */
.recruit-bn{max-width:1240px;margin:8px auto 0;background:var(--mustard);border-radius:24px 24px 24px 0;padding:32px 40px;display:flex;align-items:center;gap:28px}
.recruit-bn h3{font-size:24px;margin:0 0 8px;font-weight:700;color:#5a3f13}
.recruit-bn p{font-size:14px;line-height:1.85;color:#5a3f13;margin:0;max-width:560px}
.recruit-bn a{margin-left:auto;flex:none;background:#fff;color:#5a3f13;text-decoration:none;font-size:14px;font-weight:700;padding:14px 26px;border-radius:99px}

/* ヘッダーの地色を白寄りに */
.hdr{background:rgba(255,255,255,.92);box-shadow:0 1px 0 rgba(120,100,70,.08)}


/* ===== 2周目の詰め ===== */
.cream{background:#FDFAF3}
section.teal .eyebrow{color:var(--mint-l)}
section.teal .floors span{color:rgba(255,255,255,.9)}
section.teal .fl{box-shadow:0 0 0 2px rgba(255,255,255,.35)}
footer h4{color:var(--mint-l)}


/* 角丸を 8 / 16 / 24-0 / 999 の4段に */
.form,.floors,.floorlist,.finder,.sched,.paysteps,.bn,.amap,.recruit-bn,.feature .im{border-radius:24px 24px 24px 0}
.prevnext a,.article .quote,.paynote div,.privacy,.side .box,.qa{border-radius:16px}
.inp,.tg,.req,.any,.article .body figure img{border-radius:8px}
.shots figure,.about .pics figure,.floors .pic,.crow .pic,.phead .photo{border-radius:24px 24px 24px 0}

/* 円だった記号を幾何形に */
.cathead .dot{border-radius:999px 999px 0 0}
.faqgroup h3:before{border-radius:999px 999px 0 0}
.side h4:before{border-radius:999px 999px 0 0}

/* 深緑面に置いた写真を「穴」に見せない */
section.teal .floors .pic{box-shadow:0 0 0 1px rgba(249,244,232,.22)}
section.teal .floors .pic img{filter:saturate(1.10) contrast(1.06) brightness(.97)}


/* 教室が1つ・2つのカテゴリは横組みのカードにして空白を作らない */
.ccards.n1{grid-template-columns:1fr}
.ccards.n1 .ccard{display:grid;grid-template-columns:440px 1fr;align-items:stretch}
.ccards.n1 .ccard .ph{height:100%;min-height:260px;border-radius:24px 0 0 0}
.ccards.n1 .ccard .bd{padding:30px 34px 32px}
.ccards.n1 .ccard .desc{max-width:520px}
.ccards.n1 .ccard .acts{max-width:420px}
.ccards.n2{grid-template-columns:repeat(2,1fr)}

/* 追従ボタンを軽くする */
.rail a{padding:18px 11px;font-size:13px;letter-spacing:.1em}


/* 追従ボタンが本文に重ならないように右の逃げをつくる */



/* 見出しと説明文が離れすぎないように */
.h2.left{grid-template-columns:1.15fr .85fr;gap:56px}
.cathead p{margin:0 0 0 32px} /* 2026-10-15 幅制限を撤廃＝PCでは横1行で出す（収まらない幅では自然に折り返し） */


/* 残っていた正円を幾何形に */
.fl{border-radius:999px 999px 0 0}
.pager span{border-radius:999px 999px 0 0}
.card,.post .im,.side .rank .th,.article .eyecatch{border-radius:24px 24px 24px 0}
.post .im{border-radius:24px 24px 0 0}
.side .rank .th{border-radius:8px}

/* 追従ボタン：プレビューはページ内に固定表示（本番のWPでは position:fixed にする） */
.rail{position:absolute;right:0;top:560px;z-index:20}

/* ================================================================
   スマホ版（900px未満）— PCの縮小ではなく、別レイアウトとして組む
   ================================================================ */
.menu-btn,.spbar,.finder-sp,.fsp-cats,.sched-sp{display:none}
.dt{display:grid;grid-template-columns:1.3fr 1fr;gap:10px;margin-bottom:10px}
.inp.sel{display:flex;align-items:center;padding:0 16px;font-size:15px;color:#A9A195}

@media (max-width:899px){
  body{background:var(--ivory)}
  .bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .bar span{display:none}
  .bar a{white-space:nowrap}
  .scaler{transform:none!important}
  .stage{height:auto!important}
  .page{width:100%}

  /* 余白：左右20px・セクション56px */
  section,section.band{padding:56px 20px}
  .cta-band{padding:56px 20px 64px}
  .phead{padding:28px 20px 36px}

  /* 文字 */
  .fv h1{font-size:30px;line-height:1.5}
  .phead h1,.chero h1,.article .head h1{font-size:28px}
  .h2 h2,.about h2,.cta-band h2{font-size:24px}
  .h2.left h2{font-size:26px}
  .cathead h3,.feature h3,.crow h3,.bn h3,.faqgroup h3,.plan h3,.recruit-bn h3{font-size:20px}
  .card h3,.ccard h4,.post h3,.point h3,.step h3,.way h3{font-size:17px}
  .h2 .sub,.about p,.phead p,.chero .lead,.crow .lead,.fv .copy p{font-size:15px}
  .h2 .eyebrow{text-indent:0}

  /* ヘッダー：ロゴ＋メニューだけ。申込は下固定バーに任せる */
  .hdr{padding:10px 20px;gap:12px}
  .hdr .logo{height:40px}
  .hdr nav,.hdr .cta{display:none}
  .menu-btn{display:flex;flex-direction:column;justify-content:center;gap:5px;margin-left:auto;width:44px;height:44px;border:0;background:transparent;padding:10px}
  .menu-btn span{display:block;height:2px;background:var(--ink);border-radius:2px}

  /* 下固定バー（スマホの主CTA） */
  .rail{display:none}
  .spbar{display:grid;grid-template-columns:1fr 1.6fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:60;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.96);box-shadow:0 -4px 16px rgba(60,40,20,.12)}
  .spbar a{display:flex;align-items:center;justify-content:center;height:50px;border-radius:99px;font-size:15px;font-weight:700;text-decoration:none}
  .spbar .sp-main{background:var(--coral-d);color:#fff}
  .spbar .sp-tel{background:#fff;color:var(--teal);border:2px solid var(--teal)}
  footer{padding:44px 20px calc(96px + env(safe-area-inset-bottom,0px))}

  /* FV：写真1枚を大きく、脇2枚は小さく重ねる */
  .fv{padding:4px 0 40px}
  .fv .arc{top:240px}
  .shots{width:100%;height:300px;margin-top:8px}
  .s2{width:calc(100% - 40px);height:240px;left:20px;top:0}
  .s1{width:130px;height:100px;left:14px;top:196px;transform:rotate(-6deg);z-index:3}
  .s3{width:130px;height:100px;left:auto;right:14px;top:206px;transform:rotate(5deg);z-index:3}
  .fv .note{display:none}
  .badge{width:104px;height:104px;right:20px;top:12px;box-shadow:0 0 0 4px var(--ivory),0 0 0 5px var(--teal)}
  .badge b{font-size:16px}.badge em{font-size:10px}.badge small{font-size:10px;line-height:1.5}
  .fv .copy{margin-top:18px;padding:0 20px}

  /* 1列に落とす */
  .posts,.cards,.ccards,.ccards.n2,.points,.steps,.two,.plans,.price,.way,.paynote,.ainfo,.cards{grid-template-columns:1fr!important;gap:14px}
  .about .inner,.crow,.floors,.chero,.blogwrap,.h2.left,.feature{grid-template-columns:1fr!important;gap:22px}
  .h2.left{gap:10px}
  .crow:nth-child(even) .pic{order:0}
  .crow{margin-bottom:44px}.crow .pic{height:220px}
  .about .pics{height:280px}
  .about .p1{width:62%;height:200px}.about .p2{width:52%;height:170px;top:110px}
  .about .blob{width:150px;height:130px}
  .floors{padding:22px 18px}.floors .pic{height:200px;order:-1}
  .floors li{gap:12px;padding:12px 2px;flex-wrap:wrap}
  .floors li>span:last-child,.floorlist li>span:last-child{margin-left:56px;width:100%}
  .steps{grid-template-columns:repeat(2,1fr)!important}
  .step .n{width:56px;height:56px;font-size:20px;margin-bottom:10px}
  .point{padding:22px 18px;display:grid;grid-template-columns:52px 1fr;gap:4px 14px;text-align:left}
  .point .ic{grid-row:span 2;width:52px;height:52px;margin:0}
  .point h3 br{display:none}
  .bn{grid-template-columns:1fr}.bn .im{height:170px;order:-1}
  .recruit-bn{flex-direction:column;align-items:flex-start;padding:24px 22px}
  .recruit-bn a{margin-left:0}
  .phead .photo,.phead .blob{display:none}
  .chero .tx{padding:24px 20px 28px}.chero .im{min-height:220px;order:-1}

  /* 教室カード：横長サムネ＋2行に圧縮、ボタンは1つ */
  .ccards .ccard,.ccards.n1 .ccard{display:grid;grid-template-columns:112px 1fr;border-radius:16px}
  .ccards .ccard .ph,.ccards.n1 .ccard .ph{height:100%;min-height:128px;border-radius:16px 0 0 16px}
  .ccard .bd,.ccards.n1 .ccard .bd{padding:14px 14px 14px}
  .ccard .desc,.ccard .pricebox,.ccard .tags .tg:last-child,.ccard .fl-badge{display:none}
  .ccard h4{font-size:16px;margin:6px 0 6px}
  .ccard .tags{margin-bottom:10px;gap:4px}
  .ccard .acts{margin-top:0}
  .ccard .acts .b2{display:none}
  .ccard .acts a{padding:10px 8px;font-size:13px}
  /* TOPのカテゴリタイルは写真なしなので縦のまま */
  a.ccard{display:flex!important;grid-template-columns:none}
  a.ccard .desc{display:block}
  a.ccard .pricebox{display:flex}

  /* 絞り込み：ボタン＋件数、カテゴリへのジャンプ */
  .finder{display:none}
  .finder-sp{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:16px;padding:12px 14px 12px 18px;box-shadow:0 6px 18px rgba(80,60,30,.07)}
  .fsp-count{font-size:14px;color:var(--ink-l)}.fsp-count b{font-size:20px;color:var(--coral-d);margin:0 2px}
  .fsp-btn{border:2px solid var(--teal);background:#fff;color:var(--teal);font-family:var(--font);font-weight:700;font-size:14px;border-radius:99px;padding:10px 18px}
  .fsp-cats{display:flex;gap:8px;overflow-x:auto;margin:12px -20px 0;padding:2px 20px 6px}
  .fsp-cats a{flex:none;font-size:13px;font-weight:700;text-decoration:none;background:#fff;border:1.5px solid var(--line);border-radius:99px;padding:9px 14px;color:var(--ink)}
  .catblock{margin-bottom:40px}
  .cathead{flex-wrap:wrap;gap:10px;margin-bottom:14px}
  .cathead .dot{width:28px;height:28px}
  .cathead p{margin:0;width:100%;font-size:14px}

  /* 残席表 → カード */
  .sched{display:none}
  .sched-sp{display:grid;gap:10px}
  .sched-sp .sc{background:#fff;border-radius:16px;padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;box-shadow:0 6px 16px rgba(80,60,30,.06)}
  .sched-sp .t{font-size:16px;font-weight:700}
  .sched-sp .k{font-size:13px;color:var(--ink-l);grid-column:1}
  .sched-sp .st{grid-column:2;grid-row:1/3;font-size:13px;font-weight:700}
  .sched-sp .st.open{color:var(--teal)}.sched-sp .st.few{color:var(--coral-d)}.sched-sp .st.full{color:var(--ink-l)}
  .sched-sp .bk{grid-column:1/3;margin-top:10px;text-align:center;display:block;padding:13px;font-size:14px;font-weight:700;border-radius:99px;background:var(--coral-d);color:#fff;text-decoration:none}
  .sched-sp .bk.off{background:#EFE8DA;color:var(--ink-l)}

  /* プラン・お支払い */
  .plan{padding:24px 20px}.plan .yen{font-size:26px}
  .paysteps{grid-template-columns:1fr!important}
  .paysteps .p{border-right:0;border-bottom:1px dashed var(--line)}

  /* ブログ */
  .feature .im{min-height:200px}.feature .tx{padding:20px}
  .side{display:grid;gap:14px}
  .nlist a{grid-template-columns:auto auto;gap:6px 10px;font-size:15px}
  .nlist a span:last-child{grid-column:1/3}
  .article .body{padding:24px 18px}.article .eyecatch{height:220px}
  .prevnext{grid-template-columns:1fr}

  /* FAQ・アクセス */
  .qa{padding:16px 16px}.qa .a{margin-left:0}
  .amap{height:220px}
  .ainfo{gap:0}

  /* フォーム：1列のリスト・大きめのタップ領域 */
  .form{padding:22px 16px}
  .radios{flex-direction:column;gap:8px}
  .radios .r{border-radius:12px;padding:14px 16px;font-size:15px}
  .inp{height:52px}
  .dt{grid-template-columns:1fr 1fr}

  /* フッター */
  footer .inner{grid-template-columns:1fr 1fr;gap:26px}
  footer .inner>div:first-child{grid-column:1/3}
}

.posts.top3{max-width:1240px;margin:0 auto;grid-template-columns:repeat(3,1fr)}
.in-frame .bar{display:none}

/* ===== スマホ1周目（AD）の反映 ===== */
.tile-ph{display:none}
@media (max-width:899px){
  /* フロアの番号を揃える */
  .floors li{justify-content:flex-start}
  .floors li .fl{flex:none;width:44px}
  .floors li strong{flex:1;min-width:0}

  /* TOPのカテゴリ：写真つきの横スクロール */
  .ccards.cat-tiles{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 -20px;padding:4px 20px 12px;-webkit-overflow-scrolling:touch}
  .ccards.cat-tiles a.ccard{flex:0 0 78%;scroll-snap-align:start;flex-direction:column!important}
  .cat-tiles .tile-ph{display:block;height:150px;overflow:hidden;border-radius:24px 24px 0 0}
  .cat-tiles .tile-ph img{width:100%;height:100%;object-fit:cover}
  .cat-tiles a.ccard .bd h4{display:none}
  .cat-tiles a.ccard .desc{font-size:14px}

  /* 学べるもの：カテゴリ見出しの下では重複するチップを消す／見出しを貼りつける */
  .catblock .ccard .chip{display:none}
  .cathead{position:sticky;top:0;z-index:5;background:var(--ivory);padding:10px 0 8px;margin-bottom:10px}
  .cathead p{display:none}

  /* FV：脇の写真は主役の下端を隠さない位置に */
  .shots{height:340px}
  .s1{width:150px;height:112px;top:226px;left:14px}
  .s3{width:150px;height:112px;top:236px;right:14px}
  .fv .arc{left:-40%;width:180%;top:260px}

  /* 教室ページ：1画面目に教室名が入るように */
  .chero .im{min-height:0;height:62vw}
  .chero .tx{padding-top:18px}

  /* 大人の写真の床ばかり問題 */
  img[src*="p_buyo"]{object-position:30% 20%!important}

  /* フッター */
  footer .logo{filter:brightness(0) invert(1);height:48px}
  footer ul li a{display:block;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12);text-decoration:none}
}

/* ===== スマホ1周目（タイポ）の反映 ===== */
/* フロア番号に「右寄せ」「13px」が当たっていた（PCにも効く修正） */
.floors .fl,.floorlist .fl{margin-left:0;font-size:15px;color:#fff}
.floors li>span.fl[style*="mint"],.floors li>span.fl[style*="orange"],.floors li>span.fl[style*="terra"]{color:#2A2724}
h1,h2{text-wrap:balance}
h3,h4{text-wrap:wrap}

@media (max-width:899px){
  .point h3 br{display:inline}
  .feature h3,.post h3{font-size:18px}
  .fv .copy p{font-size:14px;text-wrap:balance}
  .h2 .sub{text-align:left}
  .inp,.inp.sel,input,select,textarea{font-size:16px}
  footer ul{line-height:1.5}
  footer ul a{font-size:14px}
  .fsp-cats a{padding:12px 16px}
  .ccard .acts a{padding:13px 8px;font-size:14px}
  .chero .im{height:240px;min-height:0}
  section.band{padding:72px 20px}
  .badge{width:112px;height:112px}
  .badge em,.badge small{font-size:11px}
  .h2.left h2{font-size:24px}
  .ccard h4{font-size:17px}
  .about p,.h2 .sub,.phead p,.chero .lead,.crow .lead{line-height:1.85}
  .card p,.ccard .desc,.post p,.point p,.step p,.qa .a,.way p{line-height:1.8}
}

/* ===== スマホ1周目（UX・写真）の反映 ===== */
.card-link{display:none}
.spmenu{display:none}
.ccard .ph.noimg{position:relative}
.radios.small{margin-top:10px}
.fsp-hint{font-size:13px;color:var(--ink-l)}
@media (max-width:899px){
  /* カード全体を教室ページへのリンクに・カード内の申込ボタンは外す（体験は下バーに任せる） */
  .catblock .ccard{position:relative}
  .card-link{display:block;position:absolute;inset:0;z-index:2}
  .catblock .ccard .acts{display:none}
  .catblock .ccard .bd:after{content:"くわしく見る →";font-size:13px;font-weight:700;color:var(--teal);margin-top:auto;padding-top:6px}

  /* 申込ページでは下バーを出さない */
  .p-contact .spbar{display:none}
  .p-contact footer{padding-bottom:40px}
  .spbar .sp-tel{flex-direction:column;line-height:1.2}
  .spbar .sp-tel small{font-size:11px;font-weight:500;color:var(--ink-l)}

  /* メニュー */
  .spmenu.open{display:grid;position:absolute;left:0;right:0;top:64px;z-index:70;background:var(--cream);padding:6px 20px 20px;border-radius:0 0 24px 0;box-shadow:0 12px 30px rgba(60,40,20,.18)}
  .spmenu a{display:block;padding:13px 4px;border-bottom:1px solid var(--line);font-size:16px;font-weight:700;text-decoration:none;color:var(--ink)}
  .spmenu .line-m{margin-top:16px;border:2px solid var(--teal);background:transparent;color:var(--teal);border-radius:3px;text-align:center;padding:13px}
  .spmenu-tel{margin:12px 0 0;text-align:center;font-size:13px;color:var(--ink-l)}
  .spmenu-tel a{display:inline;padding:0;border:0;font-size:13px;font-weight:700;color:var(--teal);text-decoration:underline;text-underline-offset:3px}

  /* フォーム：ご用件は2×2の大きなボタン（4つを横1列に並べると文字が縦に割れて読めない） */
  .radios.big{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .radios.big .r{display:flex;align-items:center;justify-content:center;text-align:center;min-height:58px;padding:12px 8px;font-size:14.5px;font-weight:700;line-height:1.5;word-break:keep-all}
  .radios.small{flex-direction:row;flex-wrap:wrap}
  .radios.small .r{padding:10px 14px;font-size:14px;border-radius:99px}

  /* 写真：FVは主役＋そろばん1枚、バッジは先生の顔から外す */
  .s1{display:none}
  .s3{width:160px;height:120px;right:14px;top:220px}
  .badge{top:auto;bottom:auto;left:14px;right:auto;top:196px;width:96px;height:96px}
  .badge b{font-size:15px}
  /* フロアガイドは写真を省いてリストだけ */
  section.teal .floors .pic{display:none}
  /* 大人バナーは写真を外す */
  .bn.adult .im{display:none}
  /* 理念は1枚で */
  .about .p2{display:none}
  .about .p1{width:100%;height:220px;left:0}
  .about .pics{height:230px}
  .about .blob{display:none}
  /* 教室ページのヒーロー */
  .chero .im{height:280px}
  .chero .im img{object-position:center 30%}
}

/* ===== スマホ1周目（ブランド）の反映 ===== */
.page footer .logo{filter:brightness(0) invert(1)}
footer ul a{text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:var(--mint-l)}
@media (max-width:899px){
  /* 角丸はスマホでも「1隅だけ直角」を残す */
  .ccards .ccard,.ccards.n1 .ccard,.sched-sp .sc,.finder-sp,.post,.qa,.plan,.point,.side .box{border-radius:16px 16px 16px 0}
  .ccards .ccard .ph,.ccards.n1 .ccard .ph{border-radius:16px 0 0 0}
  .radios .r{border-radius:16px 16px 16px 0}
  .radios.small .r{border-radius:99px}
  .feature .im{border-radius:24px 24px 0 0}
  .cat-tiles a.ccard{border-radius:16px 16px 16px 0}
  .cat-tiles .tile-ph{border-radius:16px 16px 0 0}

  /* 境界が見えない入力欄・選択肢・ボタン */
  .inp,.radios .r,.fsp-cats a{border-color:#958872}

  /* フロア一覧は2列グリッドで揃える */
  .floors li{display:grid;grid-template-columns:44px 1fr;gap:4px 12px;align-items:center}
  .floors li .fl{grid-row:span 2}
  .floors li>span:last-child{margin-left:0!important;width:auto}
  section.teal .fl{box-shadow:0 0 0 2px rgba(255,255,255,.9)}

  /* バッジは文字を減らして12px以上に */
  .badge em{display:none}
  .badge small{font-size:12px}

  /* 教室カードに月謝を1行だけ戻す */
  .catblock .ccard .pricebox{display:flex;border-top:0;padding-top:0;margin:0 0 4px}
  .catblock .ccard .pricebox .p{display:none}

  /* FVの手書きメモを1つだけ戻す */
  .fv .note[style*="110px"]{display:block;left:auto!important;right:20px;top:176px!important;font-size:17px;transform:rotate(-4deg)!important;z-index:4}

  /* パンくずのリンク間隔 */
  .crumb{line-height:2.2}
}

/* ===== スマホ2周目（AD）の反映 ===== */
/* 写真のない教室は「階数カード」に（読み込み失敗に見せない） */
.ccard .ph.noimg{background:#DCE9E3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:168px}
.ccard .ph.noimg .arch{width:26px;height:18px;background:var(--teal);border-radius:999px 999px 0 0;opacity:.6}
.ccard .ph.noimg b{font-size:28px;font-weight:900;color:var(--teal);letter-spacing:.02em}
/* プルダウンの矢印は右端に */
.inp.sel{position:relative;padding-right:44px}
.inp.sel:after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;border-right:2px solid #958872;border-bottom:2px solid #958872;transform:translateY(-70%) rotate(45deg)}
.ccard h4{text-wrap:wrap;word-break:keep-all;overflow-wrap:anywhere}
@media (max-width:899px){
  /* カルーセルの左の基準線を揃える */
  .ccards.cat-tiles{scroll-padding-left:20px}
  .ccards.cat-tiles:after{content:"";flex:0 0 8px}
  /* FV：バッジは右上、そろばんと手書きメモは下に */
  .badge{left:auto;right:10px;top:-8px;width:92px;height:92px;z-index:4}
  .fv .note[style*="110px"]{right:auto;left:22px;top:268px!important;transform:rotate(-4deg)!important}
}

/* ===== スマホ2周目（写真）の反映 ===== */
/* 顔を外す・被写体を寄せる */
.post img[src*="r_hand_card"]{object-position:center 85%}
@media (max-width:899px){
  .cat-tiles img[src*="p_atelier_work"]{object-position:center 15%}
  .cat-tiles img[src*="r_teach2"]{object-position:center 90%}
  .s3 img{object-position:20% center!important}
  .catblock .ccard img[src*="p_soroban"]{object-position:60% center}
  .about .p1 img{object-position:center 12%!important}
}

/* ===== スマホ2周目（UX）の反映 ===== */
.spmenu-close{display:none}
@media (max-width:899px){
  /* メニューはヘッダー直下に固定して開く */
  .spmenu.open{position:fixed;top:64px;max-height:calc(100vh - 64px);overflow:auto}
  .spmenu-close{display:block;justify-self:end;border:0;background:transparent;font-family:var(--font);font-size:15px;font-weight:700;color:var(--ink-l);padding:14px 6px}
  /* 貼りつく見出しはヘッダーの下に／ページ内ジャンプの着地位置 */
  .cathead{top:64px}
  [id^="cat-"],#price,#form{scroll-margin-top:84px}
  .ccards.cat-tiles{scroll-padding-inline:20px}
  /* 金額が決まるまでは一覧に出さない */
  .catblock .ccard .pricebox{display:none}
  /* 塗りボタンは下バーだけに。残席カードは線ボタン */
  .sched-sp .bk{background:#fff;color:var(--coral-d);border:2px solid var(--coral-d)}
  .sched-sp .bk.off{background:#EFE8DA;color:var(--ink-l);border-color:#EFE8DA}
}


/* ===== スマホ2周目（タイポ・ブランド）の反映 ===== */
@media (max-width:899px){
  .about{padding-top:56px}
  .h2,.h2.left{text-align:left}
  .h2 .sub{margin-left:0;margin-right:0}
  .h2.left h2 br{display:none}
  .h2 .eyebrow{text-indent:0}
  .catblock .ccard,.catblock .ccards.n1 .ccard{grid-template-columns:96px 1fr}
  .catblock .ccard h4{font-size:16px}
  .spbar .sp-tel small{font-size:12px}
  footer ul li a{padding:12px 0}
  .radios.small .r{padding:12px 16px}
  /* 手書きメモは写真の外（見出しの上）に */
  .fv .note[style*="110px"]{position:static;display:block;text-align:center;margin:0 0 6px;transform:rotate(-3deg)!important}
  .fv .copy{display:flex;flex-direction:column}
}
/* PCでは手書きメモの基準をFV全体に戻す */
@media (min-width:900px){ .fv .copy{position:relative;z-index:1} .fv .copy .note{top:-440px!important;left:110px!important} }

/* ===== SP 3周目（最終）：5人レビュー反映 ===== */
.spmenu .cta-m{display:none}
.form .picked{margin:0 0 20px;padding:12px 16px;border-radius:12px 12px 12px 0;background:#E6F2EC;color:var(--teal);font-size:14px;font-weight:700}
.inp.filled{color:var(--ink);font-weight:700}
.post h3{text-wrap:balance}
.post p{text-wrap:pretty}
@media (max-width:899px){
  .hdr .logo{height:46px}
  .fv .badge{top:10px;right:10px}
  .spmenu .cta-m{display:block;margin:4px 0 8px;border:0;background:var(--coral-d);color:#fff;border-radius:99px;text-align:center;padding:14px}
  /* h4は同じ部品なら同じサイズ（重複上書きの競合を解消） */
  .ccard h4,.catblock .ccard h4{font-size:16px}
  /* 一覧：教室の個性が伝わるよう説明を2行だけ残す */
  .catblock .ccard .desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.7;margin:0 0 4px}
  /* TOPのお知らせは横並びの小さいカードにして、学べるものまでを近く */
  .posts.top3{gap:12px}
  .posts.top3 .post{display:grid;grid-template-columns:104px 1fr;flex-direction:row}
  .posts.top3 .post .im{height:auto;min-height:104px;border-radius:16px 0 0 0}
  .posts.top3 .post .bd{padding:12px 14px}
  .posts.top3 .post p,.posts.top3 .post .more{display:none}
  .posts.top3 .post h3{font-size:15px;margin:0}
  .posts.top3 .post .meta{margin-bottom:6px}
  /* フッター：申込リンクの泣き別れ防止 */
  footer .inner>div:last-child{grid-column:1/3}
  .p-news .catbar{margin-top:-40px}
}
.post h3,.ccard h4,footer a{word-break:auto-phrase}
@media (max-width:899px){ .catblock .ccard img[src*="p_buyo"]{object-position:12% 30%} }

@media (max-width:899px){ .bar .to-sp{display:none} }
@media (max-width:640px){.floors .pic.tall{height:420px}.bldgfig{max-width:100%}}

/* ===== あしらい v7（5人×5周・2026-09-21）===== */
.fl.kd{background:none!important;border-radius:0;width:40px;height:40px}
.fl.kd svg{width:40px;height:40px;display:block}
.floors .fn,.floorlist .fn{font-size:13px;font-weight:700;color:var(--ink-l);min-width:24px;margin-left:-4px}
section.teal .fn{color:var(--mint-l)}
section.teal .fl.kd{box-shadow:none}
.kd-div{line-height:0}
.kd-div svg{display:block}
.kd-ul{position:relative;display:inline-block}
.kd-ul .ul{position:absolute;left:0;bottom:-6px;width:100%;height:14px}
section.cream,section.band.cream,.floors,.floorlist{background-image:url(assets/paper.png);background-size:512px}
.about{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M6 10 A4 4 0 0 1 14 10Z' fill='%23F3DDBB'/%3E%3Cpath d='M28 34 L32 27 L36 34Z' fill='%23DCE8E1'/%3E%3C/svg%3E");background-size:40px}
.point .ic svg{display:block}
@media (max-width:640px){.kd-ul .ul{bottom:-4px;height:10px}.kd-div svg{height:24px}}

/* ================================================================
   P7 版画の質感 × 角丸写真の構成（2026-09-22 みどり決定）
   見た目＝P1（紙・刃こぼれ・版ズレ・角印・乱数区切り）／TOPの構成＝P3
   ================================================================ */
:root{--sumi:#2A2724; --gray:#6B655D}
.page{background-color:var(--cream);background-image:url(assets/paper.png);background-size:360px 360px;background-blend-mode:multiply;color:var(--sumi);font-weight:500;line-height:1.95;letter-spacing:.02em}
section.cream,.cream,section.band.cream,section.mintbg,.about{background:transparent;background-image:none}
section.teal{background:var(--teal)}
.page img{filter:none}

/* 版の質感 */
.ink{filter:url(#ink-a)}
.ink-b{filter:url(#ink-b)}
.ink-c{filter:url(#ink-c)}
.mis{transform:translate(1.1px,-1.2px);mix-blend-mode:multiply;opacity:.45}
.mis2{transform:translate(-1px,1.1px);mix-blend-mode:multiply;opacity:.34}
.ovp{mix-blend-mode:multiply}

/* 見出し */
.eyebrow{font-size:13px;letter-spacing:.22em;color:var(--teal);font-weight:700;margin:0}
.eyebrow small{font-family:var(--hand);font-weight:400;letter-spacing:.16em;color:var(--gray);margin-left:12px;font-size:11px}
.h-row{display:flex;align-items:flex-end;gap:12px;margin-bottom:22px}
.h-row .mark{width:46px;height:auto;flex:none}
.h-sec h2,.h2 h2,.about h2,.cta-band h2{font-size:38px;line-height:1.62;font-weight:700;letter-spacing:.01em;margin:0}
.h-sec h1{font-size:44px;line-height:1.58;font-weight:900;margin:22px 0 26px}
.h-sec h1 em{font-style:normal;position:relative;white-space:nowrap}
.h-sec h1 em .uline{position:absolute;left:-1%;right:-1%;bottom:-6px;height:16px;width:102%}
.lead{font-size:16.5px;line-height:2.15;color:#43403C;margin:0}
.lead+.lead{margin-top:22px}
.small{font-size:13.5px;color:var(--gray);line-height:1.85}
.hand{font-family:var(--hand);letter-spacing:.06em;color:var(--coral)}
.h2{text-align:left}
.h2 .sub{margin-left:0;max-width:640px}
.h2.left{grid-template-columns:1.15fr .85fr}

/* ボタン＝角3px＋マスタードの版ズレ影 */
.btn,.hdr .cta,.plan .go,.ccard .acts .b1,.sched .bk,.recruit-bn a,.side .cta-box a,.spbar .sp-main,.sched-sp .bk,.spmenu .cta-m{
  border-radius:3px;background:var(--coral);color:var(--cream);box-shadow:3px 3px 0 var(--mustard);font-weight:700;letter-spacing:.06em}
.btn{padding:15px 36px 16px;font-size:15.5px;transition:transform .15s,box-shadow .15s}
.btn:hover{box-shadow:1px 1px 0 var(--mustard);transform:translate(2px,2px)}
.btn.ghost,.plan .go.ghost,.ccard .acts .b2,.spbar .sp-tel,.sched-sp .bk{background:transparent;color:var(--teal);border:2px solid var(--teal);box-shadow:none;padding:13px 30px}
.btn.ghost:hover{transform:none}
.hdr .cta{padding:12px 26px 13px;font-size:14px}
.acts{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:32px}
.center{margin-top:44px}

/* ヘッダー＝刷り罫／追従ボタン */
.hdr{background:rgba(253,250,243,.96);backdrop-filter:none;box-shadow:none;padding:22px 100px 0}
.hdr nav{gap:26px;font-size:14px;font-weight:700}
.hdrule-w{padding:16px 100px 0;background:rgba(253,250,243,.96);position:sticky;top:0;z-index:5}
.hdrule{display:block;width:100%;height:7px}
.rail{position:absolute;right:0;top:560px}
.rail a{border-radius:3px 0 0 3px;background:var(--coral);color:var(--cream);box-shadow:-3px 3px 0 var(--mustard);padding:22px 13px;font-size:14px;letter-spacing:.24em}
.factbar{display:flex;flex-wrap:wrap;gap:8px 34px;margin:22px 100px 0;padding:15px 24px 16px;background:var(--ivory);border-radius:4px;font-size:13.5px;line-height:1.7;box-shadow:2px 2px 0 var(--mint-l)}
.factbar b{color:var(--teal);font-weight:700;margin-right:9px;font-size:12px;letter-spacing:.1em}

/* 写真＝台紙つきプリント写真 */
.frame{background:var(--ivory);padding:9px;border-radius:16px;box-shadow:0 1px 0 rgba(42,39,36,.10),0 10px 26px -20px rgba(42,39,36,.5);position:absolute;overflow:hidden}
.frame img{border-radius:9px;width:100%;height:100%;object-fit:cover;filter:none}
.frame.st{position:relative}
.frame.sm{padding:7px;border-radius:13px}
.frame.sm img{border-radius:7px}
.shots figure,.about .pics figure,.floors .pic,.crow .pic,.phead .photo,.feature .im,.post .im,.article .eyecatch,.chero .im,.card .ph,.ccard .ph{border-radius:12px}
.crow .pic,.phead .photo{border:9px solid var(--ivory);border-radius:16px;box-shadow:0 1px 0 rgba(42,39,36,.10),0 10px 26px -20px rgba(42,39,36,.5)}

/* スタンプ＝情報（紙色の丸＋二重の罫＋下線・三角なし） */
.stamp{position:absolute;z-index:3;width:118px;height:118px;border-radius:50%;background:var(--ivory);border:3.4px solid var(--sc,var(--coral));color:var(--sc,var(--coral));
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;filter:url(#ink-a);line-height:1.3}
.stamp::before{content:"";position:absolute;inset:5px;border-radius:50%;border:1.3px solid var(--sc,var(--coral))}
.stamp .l{font-family:var(--hand);font-size:10px;letter-spacing:.14em;line-height:1.2}
.stamp .m{font-size:16px;font-weight:900;letter-spacing:.04em}
.stamp .m small{display:block;font-size:11.5px;font-weight:700}
.stamp .sbar{width:30px;height:3px;background:var(--sc,var(--coral));margin-top:6px;display:block}
.stamp--teal{--sc:var(--teal)}
.stamp--sumi{--sc:#4A3216;background:var(--mustard)}
.stamp--sm{width:96px;height:96px}
.stamp--sm .m{font-size:13.5px}

/* セクション共通 */
.h-sec{padding:0 100px;position:relative}
.h-sec+.h-sec,.divider-wrap+.h-sec,.printband+.h-sec{margin-top:112px}
.h-hero{display:grid;grid-template-columns:1fr 1.02fr;gap:56px;align-items:center;padding-top:58px}
.h-tag{display:inline-flex;align-items:center;gap:8px;padding:8px 18px 9px;background:var(--mint-l);color:var(--teal-d);font-size:13px;font-weight:700;border-radius:999px;letter-spacing:.06em;margin-top:28px}
.h-cluster{position:relative;height:560px}
.h-p1{left:2%;top:0;width:60%;height:74%;transform:rotate(-3.6deg);z-index:1}
.h-p2{right:0;top:14%;width:40%;height:46%;transform:rotate(4.2deg);z-index:2}
.h-p3{left:25%;bottom:0;width:44%;height:37%;transform:rotate(2.2deg);z-index:2}
.h-s1{left:-2%;bottom:25%;transform:rotate(-9deg)}
.h-s2{right:5%;bottom:29%;transform:rotate(7deg)}
.h-news{margin-top:96px}
.h-news .h-row{margin-bottom:26px}

/* ABOUT */
.h-about{display:grid;grid-template-columns:58px 1fr 1fr;gap:0 46px;align-items:start}
.tate{writing-mode:vertical-rl;letter-spacing:.34em;white-space:nowrap;font-size:15px;font-weight:700;color:var(--teal-d);padding:14px 0 0;border-right:2px solid var(--terra);margin:0 8px 0 0;height:min-content}
.tatewrap{display:flex;flex-direction:column;align-items:flex-end}
.kakuin{width:48px;height:48px;margin:20px 4px 0 0;transform:rotate(-3deg)}
.tate small{display:block;font-size:11px;letter-spacing:.28em;color:var(--gray);margin-top:22px;font-weight:500}
.h-about h2{margin-bottom:26px}
.rule{border:0;height:0;border-top:2px solid var(--terra);width:64px;margin:30px 0 0}
.h-hand{margin-top:20px;font-size:19px}
.h-aboutph{position:relative;height:470px;margin-top:6px}
.h-a1{left:0;top:0;width:66%;height:72%;transform:rotate(-2.6deg);z-index:1}
.h-a2{right:0;bottom:0;width:58%;height:62%;transform:rotate(3.6deg);z-index:2}
.h-as1{right:2%;top:4%;transform:rotate(9deg)}

/* 区切り・刷り面 */
.divider-wrap{overflow:hidden;line-height:0;margin-top:88px}
.divider{width:100%;height:44px;display:block}
.printband{position:relative;height:186px;overflow:hidden;background:var(--ivory);margin-top:112px}
.printband svg{position:absolute;left:0;top:0;width:100%;height:108%}
.printband .cap{position:absolute;left:25%;top:50%;transform:translate(-50%,-50%) rotate(-1.2deg);background:var(--cream);padding:12px 34px 13px;border-radius:2px;font-size:20px;color:var(--sumi);box-shadow:3px 3px 0 rgba(42,39,36,.10);margin:0}

/* 理由 */
.h-reasons{display:grid;grid-template-columns:1.12fr 1.06fr 1fr;gap:32px;align-items:start}
.reason:nth-child(2){margin-top:30px}
.reason:nth-child(3){margin-top:12px}
.reason{padding:22px 24px 30px 0;position:relative}
.reason .ic{width:74px;height:74px;margin-bottom:20px}
.reason .no{font-family:var(--hand);font-size:12px;letter-spacing:.22em;color:var(--gray);display:block;margin-bottom:6px}
.reason h3{font-size:21px;margin:0 0 14px;line-height:1.5}
.reason p{font-size:14.5px;line-height:2.0;color:#4A4642;margin:0}
.reason .fact{margin-top:16px;padding-top:12px;font-size:13px;font-weight:700;color:var(--teal);border-top:1px dashed #DED6C4}
.reason::before,.reason::after{content:"";position:absolute;left:0;top:0;height:5px}
.reason::before{right:24px}
.reason::after{right:32px;top:8px;height:2px;opacity:.75}
.reason:nth-child(1)::before{background:var(--coral)} .reason:nth-child(1)::after{background:var(--mustard);transform:translateX(3px)}
.reason:nth-child(2)::before{background:var(--mustard)} .reason:nth-child(2)::after{background:var(--coral);transform:translateX(-3px)}
.reason:nth-child(3)::before{background:var(--mint)} .reason:nth-child(3)::after{background:var(--teal);transform:translateX(3px)}

/* 写真の帯 */
.h-stripsec{margin-top:88px}
.h-strip{display:flex;gap:22px;justify-content:center;align-items:flex-start}
.sp-i{margin:0;flex:none;width:206px}
.sp-i .frame{height:150px;width:206px}
.sp-i figcaption{margin-top:12px;font-size:12px;font-weight:700;color:#5B554E;display:flex;align-items:center;gap:7px;justify-content:center}
.sp-i figcaption i{width:9px;height:9px;background:var(--fc);flex:none;display:inline-block;transform:rotate(-6deg)}
.sp-i:nth-child(1){transform:rotate(-2.2deg)} .sp-i:nth-child(2){transform:rotate(1.6deg);margin-top:14px}
.sp-i:nth-child(3){transform:rotate(-1deg)} .sp-i:nth-child(4){transform:rotate(2.4deg);margin-top:10px} .sp-i:nth-child(5){transform:rotate(-1.6deg)}
.ph-todo{height:150px;width:206px;border:2px dashed #C9C1B0;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#9A9285;text-align:center;line-height:1.7}
.ph-todo span{font-size:11.5px;font-weight:500}
.fl--5{--fc:#1E5340}.fl--4{--fc:#2E6B53}.fl--3{--fc:#E8A040}.fl--2{--fc:#C25B47}.fl--1{--fc:#E8A87C}

/* フロアガイド */
.h-floor{display:grid;grid-template-columns:.86fr 1.14fr;gap:64px;align-items:start}
.h-floorph{position:relative}
.h-tower{height:640px;transform:rotate(-1.6deg)}
.fl-sign{position:absolute;right:6%;top:5%;z-index:3;width:196px;background:var(--ivory);border-radius:4px;padding:14px 14px 12px;box-shadow:3px 3px 0 var(--mint-l);transform:rotate(2.6deg)}
.fl-sign .fs-t{font-family:var(--hand);font-size:10px;letter-spacing:.14em;color:var(--gray);display:block;margin-bottom:8px}
.fl-sign ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.fl-sign li{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.4;color:#3E3933;white-space:nowrap}
.fl-sign li i{width:10px;height:10px;background:var(--fc);flex:none;transform:rotate(-8deg)}
.fl-sign li b{font-weight:900;font-size:12.5px;min-width:22px}
.h-fls{right:5%;bottom:8%;transform:rotate(-8deg)}
.h-floor .fl{display:grid;grid-template-columns:62px 1fr 40px;gap:22px;align-items:center;padding:19px 0;border-bottom:1px dashed #DED6C4;width:auto;height:auto;border-radius:0;background:none;color:inherit;font-size:inherit}
.h-floor .fl:last-of-type{border-bottom:0}
.h-floor .fl .badge{width:56px;height:56px;position:static;border-radius:0;background:none;box-shadow:none;display:block}
.h-floor .fno{font-family:var(--hand);font-size:12px;letter-spacing:.18em;color:var(--gray);display:flex;align-items:center;gap:7px}
.h-floor .fno i{width:9px;height:9px;background:var(--fc);display:inline-block;transform:rotate(-8deg)}
.h-floor .fl h3{font-size:18.5px;margin:0;line-height:1.5}
.h-floor .fl .ci{width:40px;height:40px}
.floor-note{display:flex;gap:14px;align-items:center;margin-top:26px}

/* CTA帯（全ページ共通） */
.cta-band{background:var(--teal);color:var(--ivory);padding:96px 100px 100px;position:relative;overflow:hidden;margin-top:118px;text-align:left}
.cta-band h2{color:var(--ivory);margin:0}
.cta-band p{font-size:16.5px;line-height:2.15;color:#DCEBE2;margin:20px 0 26px;max-width:30em}
.cta-band .eyebrow{color:var(--mint-l)}
.cta-band .eyebrow small{color:#DCEBE2}
.cta-inner{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:center;max-width:1240px;margin:0 auto}
.cta-band .btn{background:var(--mustard);color:#4A3216;box-shadow:3px 3px 0 var(--coral)}
.cta-band .btn.ghost{background:transparent;color:var(--ivory);border-color:rgba(249,244,232,.7);box-shadow:none}
.cta-deco{position:absolute;right:38px;top:-34px;width:150px;opacity:.13}
.ctafacts{list-style:none;margin:0;padding:0;font-size:14px;line-height:1.95;max-width:34em}
.ctafacts li{padding-left:15px;position:relative;color:#E3EFE7}
.ctafacts li::before{content:"";position:absolute;left:0;top:.82em;width:0;height:0;border-left:5px solid var(--mustard);border-top:4px solid transparent;border-bottom:4px solid transparent}
.ctafacts b{color:var(--mustard);font-weight:700;margin-right:10px;font-size:13px;letter-spacing:.06em}
.cta-ph{position:relative}
.cta-ph .frame{height:260px;transform:rotate(3.2deg)}
.cta-ph .stamp{left:-44px;top:-30px;transform:rotate(-11deg)}
.cta-band .acts{margin-top:30px}

/* フッター＝紙の上に墨1色 */
footer{background:transparent;color:var(--gray);border-top:2px solid var(--sumi);padding:52px 100px 72px}
footer .logo,.page footer .logo{filter:none!important;opacity:1;height:60px}
footer p{color:#4A443E;opacity:1}
footer h4{color:var(--teal)}
footer ul{opacity:1}
footer ul a{text-decoration:none;color:var(--sumi)}
footer .copy{font-family:var(--hand);letter-spacing:.1em;opacity:.7;text-align:left;margin-top:34px;padding-top:16px;border-top:1px dashed #DED6C4}

/* カード類＝紙のカード（白ベタ・ぼかし影をやめる） */
.card,.ccard,.post,.plan,.qa,.way .w,.feature,.side .box,.article .body,.form,.finder,.sched,.paysteps,.floors,.floorlist,.bn,.pcard,.point,.recruit-bn,.prevnext a,.finder-sp,.sched-sp .sc{
  background:var(--ivory);border:1px solid #E7DFCD;border-radius:5px;box-shadow:2px 2px 0 var(--mint-l)}
.bn.adult{background:var(--mint-l);color:#17402f;box-shadow:2px 2px 0 var(--mint)}
.bn.teacher{background:var(--mustard);color:#5a3f13;box-shadow:2px 2px 0 var(--terra)}
.post .im,.card .ph,.ccard .ph,.feature .im{border-radius:4px 4px 0 0}
.chip,.tag,.ccard .fl-badge{border-radius:3px}
.phead .blob{display:none}
.phead.teal,.phead.mustard{border-radius:0}
.step .n{border-radius:3px;background:var(--ivory);border:2px solid var(--terra);box-shadow:2px 2px 0 var(--mint-l)}
.step:last-child .n{background:var(--coral);color:var(--cream);border-color:var(--coral);box-shadow:2px 2px 0 var(--mustard)}
.point{padding:26px 24px}
.point .ic{border-radius:0;background:none;width:62px;height:62px;margin:0 auto 12px}
.point .ic svg{filter:url(#ink-a)}
.amap{border-radius:5px;border:9px solid var(--ivory);box-shadow:2px 2px 0 var(--mint-l)}
.kd-div{display:none}
.access{margin-top:112px}

/* スマホ（900px未満） */
@media (max-width:899px){
  .page{background-size:240px 240px}
  .hdr{padding:12px 20px 0}
  .hdrule-w{padding:10px 20px 0}
  .factbar{margin:14px 20px 0;gap:4px 18px;padding:13px 16px;font-size:12.5px}
  .factbar span{display:block;width:100%}
  .h-sec{padding:0 20px}
  .h-sec+.h-sec,.divider-wrap+.h-sec,.printband+.h-sec{margin-top:64px}
  .h-sec h1{font-size:28px;margin:14px 0 18px}
  .h-sec h2,.h2 h2,.about h2,.cta-band h2{font-size:25px}
  .lead{font-size:15px;line-height:1.95}
  .h-hero{grid-template-columns:1fr;gap:34px;padding-top:28px}
  .h-cluster{height:380px}
  .stamp{width:92px;height:92px}.stamp .m{font-size:13px}.stamp--sm{width:80px;height:80px}
  .h-news{margin-top:64px}
  .h-about{grid-template-columns:1fr}
  .tate{writing-mode:horizontal-tb;border-right:0;border-left:3px solid var(--terra);padding:0 0 0 12px;margin:0 0 22px;letter-spacing:.2em}
  .tate small{margin-top:4px}.tatewrap{flex-direction:row;align-items:center;gap:14px}.kakuin{margin:0 0 20px}
  .h-aboutph{height:340px;margin-top:26px}
  .divider-wrap{margin-top:56px}
  .h-reasons{grid-template-columns:1fr;gap:20px}.reason:nth-child(2),.reason:nth-child(3){margin-top:0}
  .printband{height:118px;margin-top:64px}.printband .cap{font-size:15px;padding:9px 20px}
  .h-stripsec{margin-top:56px;padding:0}
  .h-strip{gap:12px;justify-content:flex-start;overflow-x:auto;padding:0 20px 10px}
  .sp-i{width:150px}.sp-i .frame,.ph-todo{height:110px;width:150px}
  .h-floor{grid-template-columns:1fr;gap:34px}
  .h-tower{height:430px}
  .fl-sign{width:140px;padding:11px 11px 9px}.fl-sign li{font-size:11px}
  .h-floor .fl{grid-template-columns:52px 1fr 32px;gap:14px}.h-floor .fl .badge{width:48px;height:48px}
  .floor-note{align-items:flex-start;flex-direction:column}
  .cta-band{margin-top:64px;padding:64px 20px 70px}
  .cta-inner{grid-template-columns:1fr;gap:60px}
  .cta-ph .frame{height:220px}.cta-ph .stamp{left:auto;right:-8px;top:-34px}
  .rail{display:none}
  .access{margin-top:64px}
  footer{padding:44px 20px calc(96px + env(safe-area-inset-bottom,0px))}
  .spbar{background:var(--cream)}
  .spbar a{border-radius:3px}
  .steps{grid-template-columns:repeat(2,1fr)!important}
  .btn{padding:14px 26px 15px;font-size:15px}
  .acts{gap:12px}
}
/* P7 微調整（9/22） */
.cta-band .h-row{margin-bottom:22px}
.cta-band .h-row .eyebrow{margin:0;font-size:13px;line-height:1.5;max-width:none;color:var(--mint-l)}
@media (max-width:899px){ .spbar a{padding:0 8px;line-height:1.2} .spbar .sp-tel{border-width:2px} }

/* ===== P7 仕上げ 5人×3周（2026-09-22）周1 ===== */
/* ①⑤ 大見出し・スタンプ・縦組みだけ しっぽり明朝（小見出しと本文は丸ゴシックのまま） */
:root{--mincho:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif}
.h-sec h1,.h-sec h2,.h2 h2,.about h2,.cta-band h2,.phead h1,.chero h1,.article .head h1{font-family:var(--mincho);font-weight:700;letter-spacing:.04em}
.h-sec h1{font-weight:800;line-height:1.5}
.tate{font-family:var(--mincho);font-weight:600}
.stamp .m{font-family:var(--mincho);font-weight:800}
.printband .cap{font-family:var(--mincho);font-weight:600}
/* ② お知らせのサイドCTAが紙色に塗られて読めない → 深緑に戻す */
.side .cta-box{background:var(--teal);color:#fff;border-color:var(--teal-d);box-shadow:2px 2px 0 var(--mint)}
.side .cta-box h4{color:#fff}
/* ② 申込ページの2枚カード＝白ベタをやめる（inlineのbackgroundは削除済み） */
.bn.tx-only{background:var(--ivory)}
/* ④ ヘッダーと刷り罫の二重sticky → 罫は流す */
.hdrule-w{position:static;background:transparent;padding-top:0}
.hdr{padding-bottom:12px}
/* ③ ページャー・チップの円を幾何形に統一 */
.pager span{border-radius:3px;background:var(--ivory);border:1px solid #E7DFCD}
.pager span.on{background:var(--coral);color:var(--cream);border-color:var(--coral)}
.catbar span,.finder .ch{border-radius:3px}
.catbar span.on,.finder .ch.on{background:var(--coral);border-color:var(--coral)}
/* ===== 周2 ===== */
/* ③ 下層の見出し下が空きすぎ（pheadの下余白＋sectionの上余白が重なる） */
.phead{padding:44px 100px 28px}
.phead+section,.phead+.chero{padding-top:40px}
.phead .photo{top:16px}
/* ⑤ CTA帯のビルの絵はTOPだけ（下層で毎回出るとしつこい） */
.page:not(.p-index) .cta-deco{display:none}
/* ② 追従ボタンがカードの縁に触れる → 少し内側の影を消して軽く */
.rail a{box-shadow:none;border-left:3px solid var(--mustard)}
/* ③ 明朝の大見出し：行間をわずかに詰める（丸ゴシック基準の1.62は明朝だと間延び） */
.h-sec h2,.h2 h2,.cta-band h2{line-height:1.55}
@media (max-width:899px){
  .phead{padding:22px 20px 18px}
  .phead+section,.phead+.chero{padding-top:28px}
  .h-sec h1{font-size:30px}
}
/* ===== 周3（出荷） ===== */
@media (max-width:899px){
  /* ④ 下バー「電話で相談」が2行に折れる（ghostボタンの左右パディングが勝っていた） */
  .spbar .sp-tel{padding:0 6px;font-size:14px;white-space:nowrap}
  .spbar .sp-tel small{font-size:11px}
  .spbar .sp-main{padding:0 8px}
}
/* ③ 記事ページ本文のh2（コーラルの左罫）は明朝にしない＝読み物は丸ゴシックで統一 */
.article .body h2{font-family:var(--font)}

/* ===== 追加5周（2026-09-22 みどり指摘：微妙な傾き・写真の不一致・切り抜き・線） ===== */
/* 周1：傾きは「0°か、スタンプの明らかな傾き」だけ。1〜4°の微妙な傾きを全部やめる */
.h-p1,.h-p2,.h-p3,.h-a1,.h-a2,.h-tower,.fl-sign,.cta-ph .frame,.phead .photo,.sp-i:nth-child(n){transform:none}
.sp-i:nth-child(2),.sp-i:nth-child(4){margin-top:0}
.sp-i figcaption i,.fl-sign li i,.h-floor .fno i{transform:none}
.floor-ph .frame,.frame.h-tower{transform:none}
/* 周1：線。ヘッダー罫は1本（3色が同じ高さ）／理由の「版ズレの2本目」をやめる／罫は1本で細く */
.hdrule{height:3px}
.reason::after{display:none}
.reason::before{height:4px;right:0}
/* 周1：ボタンの版ズレ影はボタンだけに残す（カードの影は罫1本に） */
.card,.ccard,.post,.plan,.qa,.way .w,.feature,.side .box,.article .body,.form,.finder,.sched,.paysteps,.floors,.floorlist,.bn,.pcard,.point,.recruit-bn,.prevnext a,.finder-sp,.sched-sp .sc,.amap,.fl-sign,.factbar{box-shadow:none}
.side .cta-box{box-shadow:none}
/* 周2：写真の組み方（0°前提で重ねを整理）＋切り抜き位置は各imgのobject-positionで指定 */
.h-cluster{height:560px}
.h-p1{left:0;top:0;width:58%;height:100%;z-index:1}
.h-p2{right:0;top:0;width:39%;height:48%;z-index:2;left:auto}
.h-p3{right:0;bottom:0;width:39%;height:48%;z-index:2;left:auto;top:auto}
.h-s1{left:-3%;bottom:7%;top:auto}
.h-s2{right:31%;top:42%;bottom:auto}
.h-aboutph{height:470px}
.h-a1{left:0;top:0;width:64%;height:66%}
.h-a2{right:0;bottom:0;width:54%;height:58%}
.h-as1{left:50%;top:50%;right:auto}
.cta-ph .frame{height:280px}
@media (max-width:899px){
  .h-cluster{height:400px}
  .h-s2{right:34%;top:40%}
  .h-aboutph{height:340px}
}
/* 周3：スタンプは顔にかぶせない（写真の角に触れる位置）／見出し下線は真っ直ぐな刷り線 */
.h-as1{left:auto;right:-3%;top:auto;bottom:-6%}
.h-s2{right:auto;left:53%;top:auto;bottom:40%}
.h-sec h1 em .uline{bottom:-2px;height:8px;left:0;right:0;width:100%}
.cta-ph .stamp{left:-40px;top:auto;bottom:-34px}
/* 周4：理由3列は等分・同じ高さから始める（段差は「傾き」と同じ違和感） */
.h-reasons{grid-template-columns:repeat(3,1fr)}
.reason:nth-child(2),.reason:nth-child(3){margin-top:0}
.reason .ic{transform:none!important}
/* 周4：バナーの写真は人物・机の高さで切る（天井の配管を見せない） */
.bn .im img{object-position:center 60%}
/* 周4：FAQのカードは左の基準線に揃える（中央寄せの980pxをやめる） */
.faqgroup{max-width:none;margin:0 0 54px}
/* 周5：下層の見出し写真は人物の高さで切る／写真の白フチは全部9pxで統一 */
.phead .photo img{object-position:center 40%}
.p-adults .phead .photo img{object-position:center 72%}
.p-access .phead .photo img{object-position:center 30%}
.card .ph,.ccard .ph,.post .im,.feature .im{border-radius:4px 4px 0 0}

/* ===== AIっぽさ抜き 10周（2026-09-22） ===== */
/* 周1：英語ラベル廃止に伴い、eyebrowは日本語だけ・字間を詰める */
.eyebrow{letter-spacing:.12em;font-size:13px}
.stamp .l{font-family:var(--font);font-size:11px;letter-spacing:.1em}
.fl-sign .fs-t{font-family:var(--font);font-size:11px;letter-spacing:.1em}
/* 周2：アイコン・マーク・刷り面を抜いた分、見出しは「小さな日本語ラベル＋見出し」だけに */
.h-row{margin-bottom:18px}
.eyebrow::before{content:"";display:inline-block;width:14px;height:2px;background:var(--coral);margin-right:10px;vertical-align:middle}
.cta-band .eyebrow::before{background:var(--mustard)}
.h-floor .fl{grid-template-columns:62px 1fr}
.reason{padding-top:26px}
.h-stripsec{margin-top:112px}
/* 周3：階数は文字／駅バッジは文字／ステップは箱なし・左揃え */
.h-floor .fno{font-family:var(--font);font-size:12px;letter-spacing:.06em;color:var(--gray);display:block;margin-bottom:2px}
.floor-note{margin-top:22px;padding-top:18px;border-top:1px dashed #DED6C4}
.steps{gap:40px}
.step{text-align:left}
.step .n,.step:last-child .n{display:inline-block;width:auto;height:auto;background:none;border:0;box-shadow:none;color:var(--coral);font-family:var(--mincho);font-size:28px;font-weight:700;margin:0 0 6px;padding:0}
.step h3{font-size:19px;margin:0 0 6px}
.h-strip{justify-content:flex-start;gap:28px}
.sp-i{width:262px}.sp-i .frame{width:262px;height:190px}
.sp-i figcaption{justify-content:flex-start}
@media (max-width:899px){.sp-i{width:170px}.sp-i .frame{width:170px;height:124px}}
/* 周4：タイルは写真＋見出し（チップ廃止） */
.tile-ph{display:block;height:150px;overflow:hidden;border-radius:4px 4px 0 0}
.tile-ph img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
a.ccard .bd{padding:18px 20px 20px}
.cat-tiles a.ccard .bd h4{display:block}
/* 周6〜8：下層 */
.phead .en{display:none}
.phead h1{margin-top:0}
.cathead .dot{display:none}
.cathead h3{padding-left:0}
.cathead p{margin-left:24px}
.ccard .bd h4{margin-top:0}
.post .more,.ccard .lk,.bn .lk{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.bn .lk::after,.post .more::after{content:none}
.feature .pin{font-family:var(--font);letter-spacing:.06em}
/* 汎用アイコン風の「Q」丸・番号丸 → 文字だけ */
.qa .q i{font-family:var(--mincho);font-size:18px}
.way .n,.paysteps .n,.plan .badge-r{font-family:var(--mincho)}
.way .n{width:auto;height:auto;background:none;font-size:24px;color:var(--coral);margin-bottom:8px;display:block}
.ccard .fl-badge{background:var(--ivory);border:1px solid #E7DFCD;font-size:11px}
/* 追従ボタン：影と罫を外し、色面だけ */
.rail a{border-left:0}

/* ===== ロゴ差し替え（2026-09-27・みなみ納品のSVG） ===== */
.hdr .logo{height:42px;width:auto}
footer .logo,.page footer .logo{height:44px;width:auto;filter:none!important;opacity:1}
@media (max-width:899px){
  .hdr .logo{height:34px}
  footer .logo,.page footer .logo{height:38px}
}

/* 館内のようす（2026-10-05）：各階2〜3枚を横にめくる */
.h-kannai .kn-row{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:center;padding:20px 0;border-bottom:1px dashed #DED6C4}
.h-kannai .kn-row:last-child{border-bottom:0}
.h-kannai .kn-h h3{margin:4px 0 2px}
.h-kannai .kn-strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;-webkit-overflow-scrolling:touch}
.h-kannai .kn-strip img{flex:0 0 auto;width:300px;height:200px;object-fit:cover;border-radius:14px;scroll-snap-align:start}
@media (max-width:760px){
  .h-kannai .kn-row{grid-template-columns:1fr;gap:12px}
  .h-kannai .kn-strip img{width:76vw;height:51vw}
}

/* ===== 2026-10-06 電話反映：「その他」メニュー・チラシ枠・水回りの注記 ===== */
.hdr nav{align-items:center}
.nav-more{position:relative}
.nav-more-btn{appearance:none;border:0;background:none;font:inherit;color:inherit;cursor:pointer;padding:12px 4px}
.nav-more-btn::after{content:"";display:inline-block;margin-left:6px;border:4px solid transparent;border-top-color:currentColor;transform:translateY(2px)}
.nav-drop{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:170px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px rgba(60,40,20,.14);padding:6px;z-index:20}
.nav-drop a{display:block;padding:10px 14px;border-radius:6px;text-decoration:none;color:var(--ink);white-space:nowrap}
.nav-drop a:hover{background:var(--cream)}
.nav-more:hover .nav-drop,.nav-more:focus-within .nav-drop{display:block}
.spmenu-lb{margin:14px 4px 0;font-size:12px;font-weight:700;color:var(--ink-l);letter-spacing:.06em}
.spmenu a.sub{padding-left:16px;font-size:15px}
.kn-note{margin:22px 0 0;font-size:14px;color:var(--ink-l)}
.floorlist .kn-note{text-align:center}
.flyer{max-width:720px;margin:0 auto;text-align:center}
.flyer-ph{border:2px dashed var(--line);border-radius:12px;background:#fff;padding:90px 24px;color:var(--ink-l);font-size:15px;margin-bottom:22px}

/* ── 10/7 仕上げ ─────────────────────────── */
/* 見出しは語の途中で折り返さない（「キッズフリーマ／ーケット」「運／動」対策。Safari非対応だが害はない） */
h1,h2,h3,.kn-h h3,.post h3,.feature h3,.floorlist strong,.bn h3{word-break:auto-phrase}
/* チラシの記事：アイキャッチは切らずに全体を見せる／カードではタイトルと日付の高さで切る */
.article .eyecatch.is-flyer{height:auto;background:#fff;padding:18px;text-align:center}
.article .eyecatch.is-flyer img{position:static;width:auto;max-width:100%;height:auto;max-height:640px;display:inline-block}
.post .im img[src*="kidsfrima"],.feature .im img[src*="kidsfrima"]{object-position:50% 24%}
@media (max-width:899px){
  /* 周4の等分指定がスマホでも3列のまま効いていた → 1列に戻す */
  .h-reasons{grid-template-columns:1fr!important;gap:28px}
  /* 先生募集「お貸しできるスタジオ」：1行目＝マーク・階・名前、2行目＝説明 */
  .floorlist{padding:22px 18px}
  .floorlist li{flex-wrap:wrap;gap:4px 12px}
  .floorlist strong{font-size:17px}
  .floorlist li>span:last-child{margin-left:56px;width:auto;flex-basis:calc(100% - 56px)}
  /* 申し込み帯のスタンプが画面の左端で切れていた */
  .cta-ph .stamp{left:-4px}
  .article .eyecatch.is-flyer{padding:12px}
}
/* スマホ実機（viewport追加後）：確認用の帯の見出しが縦書き状に潰れていた → 1行で横スクロール */
@media (max-width:899px){ .bar b{white-space:nowrap;flex-shrink:0} .bar a{flex-shrink:0} }
/* アトリエのチラシ（表・裏）を並べて表示（10/7 受領） */
.flyer-imgs{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.flyer-imgs img{width:100%;height:auto;display:block;border-radius:8px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.08)}
@media (max-width:640px){.flyer-imgs{grid-template-columns:1fr;gap:14px}}

/* ── 動き（2026-10-12）。html[data-motion] に a／a b／a c／off が入る ── */
/* a：刷り上がり＝下からふわっと現れる。判子は「押す」 */
html[data-motion~="a"] .kd-r{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
html[data-motion~="a"] .kd-r.is-in{opacity:1;transform:none}
html[data-motion~="a"] .stamp.kd-r{transform:scale(1.45) rotate(-6deg);transition:opacity .35s ease,transform .55s cubic-bezier(.2,.9,.3,1.25)}
html[data-motion~="a"] .stamp.kd-r.is-in{transform:none}
html[data-motion~="a"] .h-cluster .frame.kd-r,html[data-motion~="a"] .h-aboutph .frame.kd-r{transform:translateY(26px) scale(.98)}
html[data-motion~="a"] .h-cluster .frame.kd-r.is-in,html[data-motion~="a"] .h-aboutph .frame.kd-r.is-in{transform:none}
html[data-motion~="a"] .h-hero h1.kd-r{transform:translateY(12px)}
html[data-motion~="a"] .btn,html[data-motion~="a"] .ccard,html[data-motion~="a"] .post{transition:transform .25s ease,box-shadow .25s ease}
html[data-motion~="a"] .ccard:hover,html[data-motion~="a"] .post:hover{transform:translate(-2px,-3px);box-shadow:6px 6px 0 var(--shc,#EAE1CC)}
html[data-motion~="a"] .btn:hover{transform:translateY(-2px)}
html[data-motion~="a"] .kn-strip img{transition:transform .5s ease}
html[data-motion~="a"] .kn-strip img:hover{transform:scale(1.03)}
/* b：a＋図形の帯がゆっくり流れる＋小さな写真がかすかにゆれる */
@keyframes kd-drift{from{transform:translateX(0)}to{transform:translateX(-72px)}}
@keyframes kd-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
html[data-motion~="b"] .divider{animation:kd-drift 9s ease-in-out infinite alternate}
html[data-motion~="b"] .h-cluster .frame.sm.is-in,html[data-motion~="b"] .h-aboutph .frame.sm.is-in{animation:kd-float 7s ease-in-out infinite}
html[data-motion~="b"] .h-cluster .frame.h-p3.is-in{animation-delay:-3.5s}
html[data-motion~="b"] .hand{display:inline-block}
html[data-motion~="b"] .h-hand.is-in{animation:kd-float 8s ease-in-out infinite;animation-delay:-2s}
/* c：a＋奥行き（スクロール量で小さな写真と判子の位置がずれる） */
html[data-motion~="c"] .h-cluster .frame.sm.is-in,html[data-motion~="c"] .h-aboutph .frame.sm.is-in{transform:translateY(var(--py,0))}
html[data-motion~="c"] .stamp.kd-r.is-in{transform:translateY(var(--py,0))}
html[data-motion~="c"] .h-cluster .frame.sm,html[data-motion~="c"] .h-aboutph .frame.sm,html[data-motion~="c"] .stamp{will-change:transform}
@media (max-width:899px){
  html[data-motion~="b"] .divider{animation-duration:14s}
  html[data-motion~="c"] .h-cluster .frame.sm.is-in,html[data-motion~="c"] .h-aboutph .frame.sm.is-in,html[data-motion~="c"] .stamp.kd-r.is-in{transform:none}
}
/* フロアガイド：外観写真を右の一覧と同じ高さまで伸ばす（10/12 みどり指摘＝写真と右のバランス） */
.h-floor{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.h-floorph{height:600px;min-height:0}
.h-tower{height:100%;top:0;bottom:auto}
.h-floor .fl{padding:17px 0;grid-template-columns:56px 1fr;gap:18px}
.h-floor .fl .badge{width:52px;height:52px}
.h-floor .fl h3{font-size:18px}
.h-floor .fl .small{margin:2px 0 0;line-height:1.7}
.h-floor .floor-note{margin-top:20px}
@media (max-width:899px){.h-floor{grid-template-columns:1fr;gap:30px}.h-floorph{min-height:0;height:430px}}
/* 右端の追従ボタン：画面に固定（JSで body 直下へ移動済み） */
body>.rail{position:fixed;top:50%;transform:translateY(-50%);right:0;z-index:120}
@media (max-width:899px){body>.rail{display:none}}

/* ── 体験までの流れ：スタンプラリー風（10/12 みどり「おしゃれに」） ── */
.steps{position:relative;gap:34px}
.steps::before{content:"";position:absolute;top:35px;left:12%;right:12%;border-top:2px dashed #D8CFBC}
.step{text-align:center;position:relative}
.step .n,.step:last-child .n{display:flex;flex-direction:column;align-items:center;justify-content:center;width:72px;height:72px;margin:0 auto 16px;border-radius:50%;background:var(--ivory);border:3.4px solid var(--sc,var(--coral));color:var(--sc,var(--coral));box-shadow:0 1px 0 rgba(42,39,36,.10);font-family:var(--mincho);font-size:25px;font-weight:800;line-height:1;position:relative;z-index:1}
.step:nth-child(1){--sc:var(--coral)}
.step:nth-child(2){--sc:#BE7312}
.step:nth-child(3){--sc:var(--teal)}
.step:nth-child(4){--sc:var(--coral-d)}
.step:last-child .n{background:var(--coral-d);border-color:var(--coral-d);color:#fff}
.step h3{font-size:18px;margin:0 0 8px}
.step p{font-size:14px;line-height:1.9;color:var(--ink-l);text-align:center}
@media (max-width:899px){
  .steps{grid-template-columns:1fr!important;gap:18px}
  .steps::before{display:none}
  .step:not(:last-child)::after{content:"";position:absolute;left:27px;top:60px;bottom:-22px;border-left:2px dashed #D8CFBC}
  .step{display:grid;grid-template-columns:56px 1fr;gap:4px 16px;text-align:left;align-items:start;position:relative}
  .step .n,.step:last-child .n{width:56px;height:56px;font-size:19px;margin:0;grid-row:1/3}
  .step h3{margin:4px 0 2px}
  .step p{text-align:left;grid-column:2}
}
/* 日本舞踊の写真：カードでは子どもたちの高さで切る（上の巻物と床を見せない・10/12） */
.ccard .ph img[src*="p_buyo"]{object-position:50% 78%}
/* カード＝罫線廃止・半月の丸み。影は付けない（色の落ち影は判子と同じアクセント扱い＝バナー・地図・立て札だけに残す）（10/12 みどり） */
.card,.ccard,.post,.plan,.qa,.way .w,.feature,.side .box,.article .body,.form,.finder,.sched,.paysteps,.floors,.floorlist,.bn,.pcard,.point,.recruit-bn,.prevnext a,.finder-sp,.sched-sp .sc{border:0;border-radius:24px 24px 24px 0;box-shadow:none}
.ccard,.post,.feature,.article .body,.form{background:#fff}
/* 写真カード＝カードごとに刷り色の落ち影（版ずれ）。分野は分野色の淡色・お知らせは3色順繰り（10/12 5周で確定） */
.ccard,.post,.feature{box-shadow:4px 4px 0 var(--shc,#EAE1CC)}
.catblock#cat-body .ccard,.cat-tiles .ccard:nth-child(1){--shc:#C9E3D7}
.catblock#cat-make .ccard,.cat-tiles .ccard:nth-child(2){--shc:#F6D7BD}
.catblock#cat-stay .ccard,.cat-tiles .ccard:nth-child(3){--shc:#F2DFAD}
.posts .post:nth-child(3n+1){--shc:#F0CBBE}
.posts .post:nth-child(3n+2){--shc:#F2DFAD}
.posts .post:nth-child(3n+3){--shc:#C9E3D7}
.feature{--shc:#F0CBBE}
.bn.adult{box-shadow:3px 3px 0 var(--mint)}
.bn.teacher{box-shadow:3px 3px 0 var(--terra)}
.amap{border-radius:24px 24px 24px 0}
.post .im,.card .ph,.ccard .ph,.tile-ph{border-radius:24px 24px 0 0}
.ccards.n1 .ccard .ph,.feature .im{border-radius:24px 0 0 0}
@media (max-width:899px){
  .card,.ccard,.post,.plan,.qa,.way .w,.feature,.side .box,.article .body,.form,.finder,.sched,.paysteps,.floors,.floorlist,.bn,.pcard,.point,.recruit-bn,.prevnext a,.finder-sp,.sched-sp .sc{border-radius:16px 16px 16px 0}
  .bn.adult{box-shadow:2px 2px 0 var(--mint)}
  .bn.teacher{box-shadow:2px 2px 0 var(--terra)}
  .ccards .ccard .ph,.ccards.n1 .ccard .ph{border-radius:16px 0 0 16px}
  .cat-tiles .tile-ph,.post .im,.feature .im{border-radius:16px 16px 0 0}
  .ccard,.post,.feature{box-shadow:3px 3px 0 var(--shc,#EAE1CC)}
}
/* 広い画面：仮サイトも本番と同じく中央寄せ・両脇は生成り（右が黒く見えていた・10/13） */
body{background:var(--ivory)}
.stage{max-width:1440px;margin:0 auto}
/* SPのトップ：写真を先に、文字をその下に（10/13 みどり） */
@media (max-width:899px){
  .h-hero{display:flex;flex-direction:column;align-items:stretch}
  .h-hero .h-cluster{order:-1;margin-bottom:26px;width:100%}
}
/* SP：ハンバーガーは、上では従来どおり・ヘッダーが見えなくなったら右上の丸ボタンで浮く（10/13 みどり） */
@keyframes kd-pop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@media (max-width:899px){
  html.mb-float .menu-btn{position:fixed;top:12px;right:12px;z-index:130;width:48px;height:48px;border-radius:50%;background:rgba(249,244,232,.96);box-shadow:0 2px 10px rgba(42,39,36,.20);align-items:center;margin:0;animation:kd-pop .22s ease}
  html.mb-float .menu-btn span{width:20px}
  .spmenu{z-index:140}
}

/* 改行の見直し（10/13 みどり「変なところで改行」）：語の途中で折らない。長すぎる時だけ語境界で折る */
h4,.ccard h4,.qa .q,.kn-h h3,.sc .t,.ainfo dt,.plan h3{word-break:auto-phrase}
.ccard h4{overflow-wrap:break-word}
.tags .tg{white-space:nowrap}

/* メニュー開閉はハンバーガーがその場で×に（閉じるボタンは撤去・10/13 みどり） */
@media (max-width:899px){
  html.menu-open .menu-btn{position:fixed;top:12px;right:12px;z-index:150;width:48px;height:48px;border-radius:50%;background:rgba(249,244,232,.96);box-shadow:0 2px 10px rgba(42,39,36,.20);align-items:center;margin:0}
  html.menu-open .menu-btn span{width:20px;transition:transform .2s ease,opacity .15s ease}
  html.menu-open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  html.menu-open .menu-btn span:nth-child(2){opacity:0}
  html.menu-open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .spmenu.open{top:0;max-height:100vh;padding-top:72px}
  /* ボタンがヘッダーの重なり順(z6)に閉じ込められてメニューの下に潜るのを防ぐ */
  html.mb-float .hdr,html.menu-open .hdr{z-index:210}
}

/* ── 総点検（2026-10-13）：390/768/1440の3幅レビューで見つけた7点の修正 ── */
/* 文章の折り返しを文節単位に（「ご案内いたしま／す。」のような1字孤立をなくす） */
p,li{word-break:auto-phrase}
/* トップ写真の帯：PCで左寄りだったのを中央に */
.h-strip{justify-content:center}
/* お知らせが1件だけのとき、カードを中央に置く（左に孤立させない） */
.posts .post:only-child{grid-column:1/-1;width:100%;max-width:600px;justify-self:center}
/* 料金カードが2枚だけのページ（スタジオ）：3列グリッドの左寄せをやめて2列中央に。3枚のページ（先生向け）は3列のまま */
.plans.n2{grid-template-columns:repeat(2,1fr);max-width:860px}
/* アクセスの行き方：PCは写真が左・手順1〜3が右（2026-10-14） */
.way-wrap{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:40px;align-items:center;max-width:1240px;margin:0 auto} /* 2026-10-15 写真を360pxに縮小＝右の手順1〜3と高さを揃える */
.way-wrap .bldgfig{margin:0;max-width:none}
.way-wrap .way{grid-template-columns:1fr;gap:18px}
@media (max-width:899px){
  .way-wrap{grid-template-columns:1fr;gap:14px}
  .way-wrap .bldgfig{order:2;max-width:520px;margin:22px auto 0}
}
/* お問い合わせの2枚カード：ボタンを罫線から離し、左右で高さをそろえる */
.p-contact .two .bn .tx{display:flex;flex-direction:column;align-items:flex-start;height:100%}
.p-contact .two .bn .tx .spec{width:100%;margin-bottom:28px}
.p-contact .two .bn .tx .btn{margin-top:auto}
@media (max-width:899px){
  .h-strip{justify-content:flex-start}
  /* 教室カードの写真：768px幅で細い帯にならないよう比率で広げる */
  .ccards .ccard,.ccards.n1 .ccard,.catblock .ccard,.catblock .ccards.n1 .ccard{grid-template-columns:minmax(112px,26%) 1fr}
  /* 緑のCTA帯：1列のときは本文を全幅に（右の空きと途中改行をなくす） */
  .cta-band p{max-width:none}
  /* 判子が画面端で欠けないように */
  .h-s1{left:6px}
  .h-as1{right:6px}
}

/* キャラクター（塩谷様作・2026-10-13）＝トップの判子に代わるあしらい */
.chara{position:absolute;z-index:3;height:auto}
.h-ch1{left:-4%;bottom:-4%;width:140px}
.h-ch2{right:-2%;bottom:-7%;width:116px}
@media (max-width:760px){
  .h-ch1{left:4px;bottom:2%;width:92px}
  .h-ch2{right:4px;bottom:-4%;width:84px}
}

/* ページ頭のキャラ（phead下辺からひょっこり） */
.phead{overflow:visible}
.ph-chara{right:7%;bottom:-20px;width:96px;z-index:4}
.ph-chara.lft{right:31%}
@media (max-width:760px){
  .ph-chara{width:70px;bottom:-14px;right:12px}
  .ph-chara.lft{right:12px}
  /* 2026-10-16 スマホは本文が全幅＝キャラが文字に被る（長井様指摘）→キャラがいるページだけ避けしろ。
     balanceは「い。」だけの行が残る対策（行長を均等化） */
  .phead:has(.ph-chara) .inner p{padding-right:88px;text-wrap:balance}
}

/* 「1棟だから、通いやすい」3カードのキャラ（上の色罫に座る） */
.h-reasons .reason{position:relative}
.r-chara{position:absolute;top:-58px;right:12px;width:72px}
@media (max-width:760px){
  .r-chara{width:58px;top:-46px;right:8px}
}

/* キャラの動き（2026-10-13）。浮いている子＝ぷかぷか、縁に座る子＝ゆらゆら。
   motion=off と prefers-reduced-motion では data-motion が off になり動かない */
@keyframes kd-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes kd-sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
html[data-motion~="a"] .chara{animation:kd-bob 5.6s ease-in-out infinite}
html[data-motion~="a"] .h-ch2{animation-duration:6.6s;animation-delay:-2.4s}
html[data-motion~="a"] .ph-chara{animation-duration:6.2s;animation-delay:-1.4s}
html[data-motion~="a"] .r-chara{animation:kd-sway 4.8s ease-in-out infinite;transform-origin:50% 100%}
/* トップ・フロアガイド：ビルの屋根にとまるフクロウ（2026-10-13） */
.h-floorph{position:relative}
.fl-owl{top:-56px;right:12%;width:80px;z-index:4}
@media (max-width:760px){.fl-owl{width:62px;top:-44px;right:16px}}
html[data-motion~="a"] .fl-owl{animation:kd-sway 5.4s ease-in-out infinite;animation-delay:-2.6s;transform-origin:50% 100%}
html[data-motion~="a"] .reason:nth-child(2) .r-chara{animation-delay:-1.6s}
html[data-motion~="a"] .reason:nth-child(3) .r-chara{animation-delay:-3.2s}

/* ── スタジオ料金の区分ラベル・キャンセルポリシー（2026-10-14） ── */
.plans-lb{text-align:center;font-weight:700;font-size:15px;letter-spacing:.06em;margin:30px 0 16px}
.plans + .plans-lb{margin-top:40px}
.cancelbox{max-width:860px;margin:0 auto;font-size:14.5px;line-height:2.1}
.cancelbox table.spec{margin:20px 0}
.cancelbox table.spec th{white-space:nowrap}
.cancelbox .cancel-tel{margin-top:18px;font-weight:600}
@media(max-width:760px){.cancelbox{font-size:13.5px}}

/* ── 本文は左揃えがデフォルト（2026-10-15 長井様依頼＝端末で改行位置が変わるのを改善）。?align=center で旧・中央揃え ── */
.h2 .sub,
.note-s,
section .lead,
p[style*="text-align:center"]{text-align:left!important}
html[data-align="center"] .h2 .sub,
html[data-align="center"] .note-s,
html[data-align="center"] section .lead,
html[data-align="center"] p[style*="text-align:center"]{text-align:center!important}

/* ── WordPress 本番用（build_wp_theme.py が追記） ── */
body{background:var(--ivory)}
/* WPは固定ページのbodyに .page クラスを付ける＝div.page用の width/overflow が body に当たり
   固定ページだけスクロール不能になる（2026-10-13 発覚）。bodyでは打ち消す */
body.page{width:auto;overflow:visible;position:static}
.stage{max-width:1440px;margin:0 auto}
.catbar a{text-decoration:none}
.side .box ul a,.side .rank p a{text-decoration:none;color:inherit}
.flyer-imgs.one{grid-template-columns:1fr;max-width:420px;margin:0 auto}
.article .body img{height:auto}
.article .body .btn{color:#fff}
.crumb a{text-decoration:none}
/* 右端の追従ボタン：本番は画面に固定（.scaler の外に置いてある） */
body>.rail{position:fixed;top:50%;transform:translateY(-50%);right:0;z-index:40}
@media (max-width:899px){body>.rail{display:none}}
/* Contact Form 7 の入力欄を仮サイトの見た目に合わせる */
.form .wpcf7 input[type=text],.form .wpcf7 input[type=email],.form .wpcf7 input[type=tel],.form .wpcf7 select,.form .wpcf7 textarea{width:100%;border:1.5px solid var(--line);border-radius:12px;height:52px;background:var(--cream);padding:0 16px;font:inherit;font-size:15px;color:var(--ink)}
.form .wpcf7 textarea{height:140px;padding:14px 16px;resize:vertical}
.form .wpcf7 .wpcf7-form-control-wrap{display:block}
.form .wpcf7 .field{margin-bottom:22px}
.form .wpcf7 .field>label{display:block;font-weight:700;font-size:14px;margin-bottom:8px}
.form .wpcf7 .privacy{margin:8px 0 18px}
.form .wpcf7 .privacy label{display:flex;gap:10px;align-items:flex-start}
.form .wpcf7 .privacy .wpcf7-list-item{margin:0}
.form .wpcf7 .wpcf7-not-valid-tip{color:var(--coral);font-size:13px;margin-top:4px}
.form .wpcf7 .wpcf7-response-output{border-radius:12px;padding:12px 16px;margin:16px 0 0;font-size:14px}
.form .wpcf7 .wpcf7-spinner{display:block;margin:8px auto 0}
.form .wpcf7 input.btn{width:auto;height:auto;border:0;cursor:pointer;background:var(--coral-d);color:#fff;padding:16px 32px;font-size:15px;font-weight:700;border-radius:99px}
