:root{
  --turq:#4ECDC4; --turq-d:#1F6B66; --turq-dd:#12514D; --turq-l:#EAF7F5; --turq-ll:#F7FCFB; --turq-b:#CFEEEB;
  --yellow:#F5C435; --cta:#F86828; --cta-h:#D9541C;
  --paper:#FFFDF8; --sand:#F6F3EA; --line:#E7E1D3; --line-2:#EDE8DC; --field:#DDD7C8;
  --ink:#2B2B2B; --ink-2:#55524A; --ink-3:#6B675E; --ink-4:#6E6A5F;
  --sans:"Meiryo","メイリオ","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3","MS PGothic",sans-serif;
  --serif:"Barlow","Meiryo","メイリオ",sans-serif;
}
*{box-sizing:border-box}
.roe{font-family:var(--sans);color:var(--ink);background:var(--paper);padding-bottom:96px;overflow-x:hidden;line-height:1.7}
.roe img{max-width:100%}
.roe a{color:var(--turq-d);text-decoration:none}
.roe a:hover{color:var(--turq-dd)}
.roe ::selection{background:var(--turq);color:#fff}
.roe input,.roe select,.roe textarea,.roe button{font-family:var(--sans)}
.roe-wrap{max-width:960px;margin:0 auto}
.roe-narrow{max-width:760px;margin:0 auto}
.roe-sec{padding:56px 20px}
.roe-sec--paper{background:var(--paper)}
.roe-sec--sand{background:var(--sand)}
.roe-sec--turq{background:var(--turq-l)}
.roe-kicker{font-family:var(--serif);font-size:13px;letter-spacing:.28em;color:var(--turq-d);margin:0 0 10px}
.roe-h2{font-size:28px;line-height:1.5;font-weight:700;letter-spacing:.04em;margin:0}
.roe-lead{font-size:14.5px;line-height:1.9;color:var(--ink-3);margin:6px 0 26px}

/* header */
.roe-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line-2);background:rgba(255,253,248,.95);position:sticky;top:0;z-index:40}
.roe-brand-en{display:block;font-family:var(--serif);font-size:12px;letter-spacing:.24em;color:var(--turq)}
.roe-brand-ja{display:block;font-size:16px;font-weight:700;letter-spacing:.04em}
.roe-header-loc{font-size:12px;color:var(--ink-4);letter-spacing:.04em}

/* hero */
.roe-hero{padding:0 0 40px}
.roe-hero-band{background-image:url('lp-images/hero-clouds.jpg');background-size:cover;background-position:center 30%;background-color:#CFEBE8;padding:56px 20px 120px;text-align:center}
.roe-hero-kicker{font-family:var(--serif);font-size:14px;letter-spacing:.3em;color:var(--turq-d);margin:0 0 16px}
.roe-hero h1{font-size:44px;line-height:1.3;font-weight:700;letter-spacing:.04em;margin:0;color:#1B4F4B;text-wrap:pretty}
.roe-hero h1 span{color:#2E8A83}
.roe-hero-sub{font-size:16px;line-height:2;color:#3C4B49;margin:20px auto 0;max-width:30em;text-wrap:pretty}
.roe-hero-body{max-width:960px;margin:0 auto;padding:0 20px}
.roe-hero-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:-90px}
.roe-hero-tiles img{width:100%;height:auto;display:block;border-radius:4px}

/* buttons */
.roe a.roe-cta,.roe-cta{display:inline-block;background:var(--cta);color:#fff;font-size:15px;font-weight:700;letter-spacing:.06em;padding:17px 26px;border-radius:999px;box-shadow:0 6px 16px rgba(248,104,40,.32);text-align:center}
.roe a.roe-cta:hover,.roe-cta:hover{background:var(--cta-h);color:#fff}
.roe-cta,.roe-submit{position:relative;overflow:hidden;isolation:isolate}
.roe-cta::after,.roe-submit::after{
  content:"";position:absolute;top:-60%;left:-40%;width:28%;height:220%;
  background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.65) 50%,rgba(255,255,255,0) 100%);
  transform:skewX(-18deg);pointer-events:none;
  animation:roe-shine 4.5s ease-in-out infinite;
}
.roe-submit::after{animation-delay:1.2s}
@keyframes roe-shine{
  0%{left:-40%}
  22%{left:130%}
  100%{left:130%}
}
@media (prefers-reduced-motion:reduce){
  .roe-cta::after,.roe-submit::after{animation:none;opacity:0}
}
.roe a.roe-cta--block,.roe-cta--block{display:block;width:fit-content;max-width:100%;margin:28px auto 0;font-size:24px;padding:26px 60px;letter-spacing:.08em}
.roe-ghost{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--turq);color:var(--turq-d);font-size:14.5px;font-weight:500;letter-spacing:.04em;padding:14px 22px;border-radius:999px}
.roe-ghost:hover{background:var(--turq-l)}

/* benefit cards */
.roe-grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:28px}
.roe-card{border:1px solid var(--line);border-radius:6px;padding:22px 18px;background:#fff}
.roe-num{display:block;text-align:center;font-family:var(--serif);font-size:30px;color:var(--turq);line-height:1}
.roe-card h3{font-size:18px;line-height:1.6;margin:8px 0;letter-spacing:.03em;text-align:center}
.roe-card p{font-size:14px;line-height:1.95;color:var(--ink-3);margin:0;text-wrap:pretty}

/* coach */
.roe-quote-block{border-left:3px solid var(--yellow);padding:4px 0 4px 16px;margin:0 0 26px}
.roe-quote-block p{font-size:14.5px;line-height:2;color:var(--ink-2);margin:0;text-wrap:pretty}
.roe-quote-block p+p{margin-top:8px}
.roe-coach{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px;align-items:center}
.roe-coach-photo{display:flex;justify-content:center;align-items:flex-end;background:var(--turq-l);border-radius:6px;min-height:280px;overflow:hidden}
.roe-coach-photo img{width:100%;max-width:300px;display:block}
.roe-coach-role{font-size:12px;letter-spacing:.14em;color:var(--ink-4);margin:0}
.roe-coach-name{font-size:24px;letter-spacing:.06em;margin:6px 0 4px;font-weight:700}
.roe-coach-en{font-family:var(--serif);font-size:14px;letter-spacing:.16em;color:var(--turq-d);margin:0 0 18px}
.roe-facts{display:flex;flex-direction:column;gap:10px}
.roe-fact{display:flex;gap:10px;align-items:baseline}
.roe-fact i{width:7px;height:7px;border-radius:50%;background:var(--yellow);flex-shrink:0;transform:translateY(-2px)}
.roe-fact p{font-size:14.5px;line-height:1.9;margin:0}
.roe-coach-note{font-size:14.5px;line-height:2;color:var(--ink-2);margin:20px 0 0;text-wrap:pretty}

/* classes */
.roe-classes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.roe-class{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.roe-class>img{width:100%;height:auto;display:block}
.roe-class-body{padding:20px 18px;display:flex;flex-direction:column;gap:12px;flex:1}
.roe-class-name{font-size:14.5px;font-weight:700;letter-spacing:.06em;color:var(--turq-d);margin:0}
.roe-class-desc{font-size:14px;line-height:1.95;color:var(--ink-3);margin:0;text-wrap:pretty}
.roe-dl{margin:auto 0 0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:14px}
.roe-dl dt{color:var(--ink-4)}
.roe-dl dd{margin:0}
.roe-dl dd span{color:var(--ink-4)}

/* voices */
.roe-voices{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.roe-voice{margin:0;background:#fff;border:1px solid var(--line);border-radius:6px;padding:22px 18px}
.roe-voice p.roe-voice-mark{font-family:var(--serif);font-size:38px;color:var(--turq);line-height:.6;margin:0 0 12px}
.roe-voice p{font-size:14.5px;line-height:2;margin:0;text-wrap:pretty}
.roe-voice footer{font-size:11px;color:var(--ink-4);margin-top:14px}

/* table */
.roe-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.roe-table{width:100%;min-width:600px;border-collapse:collapse;font-size:14px}
.roe-table thead tr{background:var(--turq-l)}
.roe-table th{text-align:left;padding:12px 14px;font-weight:700;border-bottom:1px solid var(--turq-b)}
.roe-table td{padding:14px;border-bottom:1px solid var(--line-2)}
.roe-table td:first-child{font-weight:500}
.roe-note{font-size:12.5px;line-height:1.9;color:var(--ink-4);margin:14px 0 0}
.roe-schedule{width:100%;display:block;margin-top:24px;border:1px solid var(--line);border-radius:6px}

/* faq */
.roe-faq{display:flex;flex-direction:column;gap:10px}
.roe-faq details{background:#fff;border:1px solid var(--line);border-radius:6px;padding:16px 18px}
.roe-faq summary{display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:16px;font-weight:500;line-height:1.7;list-style:none;cursor:pointer}
.roe-faq summary::-webkit-details-marker{display:none}
.roe-faq summary i{color:var(--turq);font-size:20px;font-style:normal;transition:transform .2s;flex-shrink:0}
.roe-faq details[open] summary i{transform:rotate(45deg)}
.roe-faq p{font-size:14.5px;line-height:2;color:var(--ink-2);margin:14px 0 0}

/* access */
.roe-map{width:100%;height:300px;border:1px solid var(--line);border-radius:6px;display:block}

/* booking */
.roe-booking{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;align-items:start}
.roe-panel{background:#fff;border:1px solid var(--line);border-radius:6px;padding:24px 20px}
.roe-panel--turq{border-color:var(--turq-b)}
.roe-badge{display:inline-block;font-size:12px;letter-spacing:.1em;color:#fff;background:var(--turq);border-radius:999px;padding:5px 12px}
.roe-panel h3{font-size:21px;letter-spacing:.04em;margin:14px 0 8px}
.roe-panel-lead{font-size:14px;line-height:1.95;color:var(--ink-3);margin:0 0 18px;text-wrap:pretty}
.roe-slots{display:flex;flex-direction:column;gap:10px}
.roe-slot{display:block;border:1px solid var(--turq-b);border-radius:6px;background:var(--turq-ll);padding:16px 18px}
.roe-slot:hover{background:var(--turq-l);border-color:var(--turq)}
.roe-slot b{display:block;font-family:var(--serif);font-size:21px;font-weight:500;letter-spacing:.04em;color:var(--turq-d)}
.roe-slot span{display:block;font-size:13.5px;color:var(--ink-2);margin-top:4px}
.roe-slot em{display:block;font-size:13.5px;font-style:normal;font-weight:700;color:var(--turq-d);margin-top:8px}

/* form */
.roe-form{display:flex;flex-direction:column;gap:14px}
.roe-field{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--ink-2)}
.roe-field input,.roe-field select,.roe-field textarea{font-size:16px;padding:12px;border:1px solid var(--field);border-radius:4px;background:#fff}
.roe-field textarea{resize:vertical}
.roe-field input:focus,.roe-field select:focus,.roe-field textarea:focus{outline:2px solid var(--turq);outline-offset:1px;border-color:var(--turq)}
.roe-sublabel{font-size:13.5px;color:var(--ink-2);margin:0 0 8px}
.roe-opts{display:flex;gap:8px;flex-wrap:wrap}
.roe-pill{display:flex;gap:8px;align-items:center;font-size:14.5px;border:1px solid var(--field);border-radius:999px;padding:10px 16px;cursor:pointer;background:#fff}
.roe-box{display:flex;gap:6px;align-items:center;font-size:14.5px;border:1px solid var(--field);border-radius:6px;padding:10px 14px;cursor:pointer;background:#fff}
.roe-part{border:1px solid var(--turq-b);background:var(--turq-ll);border-radius:4px;padding:14px}
.roe-part p{font-size:13.5px;color:var(--turq-d);margin:0 0 10px;font-weight:500}
.roe-part label{display:flex;gap:8px;align-items:center;font-size:14.5px}
.roe-radios{display:flex;flex-direction:column;gap:8px}
.roe-submit{background:var(--cta);color:#fff;font-size:16px;font-weight:700;letter-spacing:.06em;padding:15px;border:none;border-radius:999px;cursor:pointer}
.roe-submit:hover{background:var(--cta-h)}
.roe-submit:disabled{opacity:.6;cursor:default}
.roe-error{font-size:13.5px;line-height:1.8;color:#B0432A;background:#FDEDE6;border-radius:4px;padding:10px 12px;margin:0}
.roe-done{border:1px solid var(--turq);background:var(--turq-ll);border-radius:6px;padding:24px 18px;text-align:center}
.roe-done p:first-child{font-size:16px;font-weight:700;color:var(--turq-d);margin:0}
.roe-done p+p{font-size:14px;line-height:1.9;color:var(--ink-3);margin:8px 0 0}
[hidden]{display:none !important}

/* footer */
.roe-footer{background:var(--ink);color:#EDEAE2;padding:44px 20px 40px}
.roe-footer a{color:var(--turq)}
.roe-footer a:hover{color:var(--yellow)}
.roe-footer-grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px}
.roe-footer-en{font-family:var(--serif);font-size:13px;letter-spacing:.24em;color:var(--turq);margin:0}
.roe-footer-ja{font-size:18px;font-weight:700;letter-spacing:.04em;margin:6px 0 12px}
.roe-footer-addr{font-size:14px;line-height:2;color:#B5B1A7;margin:0}
.roe-line{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.roe-line img{width:88px;height:88px;background:#fff;padding:6px;border-radius:4px;display:block;flex-shrink:0}
.roe-line>div{display:flex;flex-direction:column;gap:8px;min-width:200px}
.roe-line p:first-of-type{font-size:14px;font-weight:500;margin:0}
.roe-line p+p{font-size:12.5px;line-height:1.9;color:#B5B1A7;margin:0}
.roe-line-btn{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;margin-top:2px;background:var(--turq);font-size:13px;font-weight:700;letter-spacing:.03em;padding:10px 18px;border-radius:999px}
.roe-footer a.roe-line-btn{color:#12403D}
.roe-footer a.roe-line-btn:hover{background:#6BDCD3;color:#0B302D}
.roe-sns{display:flex;flex-direction:column;gap:10px}
.roe-sns p{font-size:14px;font-weight:500;margin:0}
.roe-sns a{font-size:14.5px}
.roe-copy{max-width:960px;margin:32px auto 0;font-size:12px;color:#9A968C;letter-spacing:.04em}

/* sticky cta */
.roe-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,253,248,.96);border-top:1px solid var(--line);padding:10px 16px;display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 -4px 18px rgba(0,0,0,.06)}
.roe-bar p{font-size:13px;line-height:1.6;color:var(--ink-3);margin:0;flex:1;max-width:220px}
.roe-bar .roe-cta{flex:1;max-width:280px;font-size:16px;padding:15px 18px}

@media (max-width:600px){
  .roe-hero h1{font-size:35px}
  .roe-h2{font-size:24px}
  .roe-hero-tiles{margin-top:-60px}
}

/* ===== legal pages ===== */
.roe-doc{max-width:760px;margin:0 auto;padding:48px 20px 72px}
.roe-doc-head{border-bottom:1px solid var(--turq);padding-bottom:14px;margin-bottom:32px}
.roe-doc-head p{font-family:var(--serif);font-size:13px;letter-spacing:.28em;color:var(--turq-d);margin:0 0 8px}
.roe-doc-head h1{font-size:28px;line-height:1.5;font-weight:700;letter-spacing:.04em;margin:0}
.roe-doc-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
.roe-doc-nav a{font-size:14px;border:1px solid var(--turq);color:var(--turq-d);padding:10px 18px;border-radius:999px;background:#fff}
.roe-doc-nav a:hover{background:var(--turq-l)}
.roe-doc h2{font-size:21px;line-height:1.5;font-weight:700;letter-spacing:.04em;margin:48px 0 6px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.roe-doc h2:first-of-type{margin-top:0}
.roe-doc h3{font-size:16px;line-height:1.6;letter-spacing:.03em;margin:28px 0 8px}
.roe-doc p{font-size:14.5px;line-height:2;color:var(--ink-2);margin:0 0 14px;text-wrap:pretty}
.roe-doc ul,.roe-doc ol{font-size:14.5px;line-height:2;color:var(--ink-2);margin:0 0 14px;padding-left:22px}
.roe-doc li{margin-bottom:4px}
.roe-doc-updated{font-size:13px;color:var(--ink-4);margin:40px 0 0;padding-top:16px;border-top:1px solid var(--line-2)}
.roe-doc-back{margin-top:32px}
.roe-doc table.roe-table{min-width:0}

/* ===== header nav（導線）===== */
.roe-header{gap:14px}
.roe a.roe-brand{display:block;color:inherit;flex-shrink:0}
.roe a.roe-brand:hover .roe-brand-ja{color:var(--turq-d)}
.roe-header-loc{margin-left:auto}
.roe-nav{display:flex;align-items:center;gap:2px;flex-wrap:nowrap}
.roe .roe-nav a{font-size:13.5px;font-weight:500;letter-spacing:.04em;color:var(--ink-2);padding:8px 10px;border-radius:999px;white-space:nowrap}
.roe .roe-nav a:hover{color:var(--turq-dd);background:var(--turq-ll)}
.roe a.roe-nav-cta{background:var(--cta);color:#fff;font-weight:700;padding:9px 18px;box-shadow:0 4px 12px rgba(248,104,40,.28)}
.roe a.roe-nav-cta:hover{background:var(--cta-h);color:#fff}
@media (max-width:900px){.roe-header-loc{display:none}.roe-nav{margin-left:auto}}
@media (max-width:600px){
  .roe-header{padding:12px 14px}
  .roe .roe-nav a{font-size:13px;padding:8px 6px}
  .roe .roe-nav .roe-nav-sec{display:none}
  .roe a.roe-nav-cta{padding:9px 15px;font-size:13px}
}

/* ===== 記事カード（読みものセクション）===== */
.roe-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin:26px 0 0}
.roe a.roe-post{display:flex;flex-direction:column;background:var(--paper);color:inherit;border:1px solid var(--line-2);border-radius:6px;overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}
.roe a.roe-post:hover{box-shadow:0 8px 22px rgba(0,0,0,.08);transform:translateY(-2px);color:inherit}
.roe a.roe-post:hover h3{color:var(--turq-dd)}
.roe-post-thumb{display:block;aspect-ratio:16/9;background:var(--turq-ll);overflow:hidden}
.roe-post-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.roe-post-body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:1;padding:14px 16px 16px}
.roe-post-cat{font-size:11.5px;letter-spacing:.06em;color:var(--turq-d);background:var(--turq-l);padding:4px 10px;border-radius:999px}
.roe-post h3{font-size:15.5px;line-height:1.6;font-weight:700;letter-spacing:.02em;margin:0;color:var(--ink);text-wrap:pretty}
.roe-post time{font-size:12px;color:var(--ink-4);margin-top:auto;padding-top:4px}
.roe-cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.roe .roe-cats a{font-size:13.5px;border:1px solid var(--turq-b);color:var(--turq-d);background:#fff;padding:9px 16px;border-radius:999px}
.roe .roe-cats a:hover{background:var(--turq-l)}
.roe-more{margin:22px 0 0}
