:root{--paper:#f8f4ec;--paper2:#efe8da;--ink:#262923;--muted:#706d64;--gold:#b2914d;--gold2:#d8c18b;--sage:#70836d;--aqua:#7ea0a6;--red:#91564e;--navy:#40566c;--line:rgba(87,76,55,.18);--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"Noto Serif JP",serif;font-size:18px;line-height:2;letter-spacing:.045em}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:url('../img/paper.svg');opacity:.48;z-index:9999;mix-blend-mode:multiply}a{color:inherit}main{overflow:hidden}.container{width:min(calc(100% - 52px),var(--max));margin:auto}.narrow{width:min(calc(100% - 48px),760px);margin:auto}.center{text-align:center}
.site-header{position:sticky;top:0;z-index:60;background:rgba(248,244,236,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(111,95,66,.09)}.nav{height:78px;max-width:var(--max);margin:auto;padding:0 28px;display:flex;align-items:center}.brand{text-decoration:none;font-size:24px;letter-spacing:.13em;font-weight:600}.brand small{display:block;font-size:8px;letter-spacing:.34em;text-transform:uppercase;color:#8c826e;margin-top:1px}.nav-links{margin-left:auto;display:flex;gap:20px;align-items:center}.nav-links a{text-decoration:none;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;font-size:13px;letter-spacing:.05em}.cta-small{border:1px solid var(--ink);padding:8px 16px;border-radius:999px}.menu-btn{display:none;margin-left:auto;border:0;background:transparent;font-size:25px;color:var(--ink)}
.hero{min-height:calc(100vh - 78px);display:grid;place-items:center;position:relative;background:radial-gradient(circle at 50% 37%,rgba(255,255,255,.98),rgba(248,244,236,.82) 54%,rgba(232,222,202,.58) 100%)}.hero:before{content:"";position:absolute;width:min(78vw,570px);aspect-ratio:1;background:url('../img/enso.svg') center/contain no-repeat;top:46%;left:50%;transform:translate(-50%,-50%);opacity:.95}.hero:after{content:"";position:absolute;left:-45px;bottom:-45px;width:240px;height:345px;background:url('../img/leaf.svg') bottom left/contain no-repeat;opacity:.8;filter:drop-shadow(0 20px 35px rgba(54,70,57,.14))}.hero-inner{position:relative;z-index:2;text-align:center}.eyebrow,.kicker{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;font-size:11px;letter-spacing:.28em;color:#9a7c41;text-transform:uppercase}.hero h1,.page-hero h1{font-weight:500;line-height:1.58;letter-spacing:.09em;margin:0;font-size:clamp(43px,6vw,74px)}.hero .sub{color:#9b7b3f;font-size:22px;letter-spacing:.22em;margin-top:20px}.scroll{display:inline-block;text-decoration:none;margin-top:64px;font-family:Georgia,serif;font-size:11px;letter-spacing:.13em}.scroll:after{content:"↓";display:block;color:var(--gold);font-size:22px;margin-top:8px}
.page-hero{min-height:430px;padding:95px 0 74px;display:grid;place-items:center;text-align:center;position:relative;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.82),transparent 58%)}.page-hero:before{content:"";position:absolute;width:360px;aspect-ratio:1;background:url('../img/enso.svg') center/contain no-repeat;opacity:.31}.page-hero .container{position:relative;z-index:2}.page-hero .lead{font-size:19px;color:#665f53;margin:28px auto 0;max-width:640px}.page-hero h1{font-size:clamp(40px,5vw,62px)}
section{position:relative;padding:110px 0}.soft{background:linear-gradient(180deg,rgba(238,231,218,.86),rgba(249,246,240,.96))}.aqua{background:linear-gradient(180deg,#edf3f1 0%,#f8f4ec 100%)}.green{background:linear-gradient(180deg,#eff2ea 0%,#f8f4ec 100%)}
.section-title,.big-quote{font-weight:500;letter-spacing:.07em;line-height:1.65}.section-title{font-size:clamp(31px,4vw,50px);margin:0 0 32px}.big-quote{font-size:clamp(31px,4.5vw,55px);margin:0 auto 35px}.lead-copy{font-size:21px;line-height:2.05}.muted{color:var(--muted)}.kicker{display:inline-block;margin-bottom:16px;border-bottom:1px solid rgba(178,145,77,.42);padding-bottom:6px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.card{background:rgba(255,255,255,.62);border:1px solid rgba(126,108,74,.16);padding:36px 34px;box-shadow:0 12px 40px rgba(59,49,36,.04)}.card h3{font-weight:500;font-size:25px;line-height:1.7;margin:0 0 14px}.card.primary{background:linear-gradient(145deg,rgba(255,252,244,.95),rgba(236,224,196,.68));border-color:rgba(178,145,77,.34)}
.btn{display:inline-flex;min-height:56px;padding:13px 27px;border:1px solid #b89a5b;border-radius:999px;align-items:center;justify-content:center;text-decoration:none;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;font-size:15px;letter-spacing:.04em;background:rgba(255,255,255,.5);color:#5d4b2d;transition:.2s}.btn:hover{background:#b2914d;color:#fff}.btn.gold{background:#a88642;color:white;border-color:#a88642}.btn.light{background:rgba(255,255,255,.55);color:var(--ink)}.btn-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.number-line{width:150px;margin:38px auto;display:flex;flex-direction:column;align-items:center}.number-line span{width:35px;height:35px;border:1px solid rgba(178,145,77,.55);border-radius:50%;display:grid;place-items:center;font-size:20px;background:rgba(255,255,255,.65)}.number-line span:last-child{background:#272a26;color:white;border-color:#272a26}.number-line i{height:30px;width:1px;background:linear-gradient(var(--gold),rgba(178,145,77,.15))}.magic-wrap{text-align:center}.magic{display:grid;grid-template-columns:repeat(3,90px);justify-content:center;margin:34px auto;border-top:1px solid rgba(87,76,55,.18);border-left:1px solid rgba(87,76,55,.18)}.magic span{height:90px;display:grid;place-items:center;border-right:1px solid rgba(87,76,55,.18);border-bottom:1px solid rgba(87,76,55,.18);font-size:32px;background:rgba(255,255,255,.35)}.magic span:nth-child(1){color:#4e8b6a}.magic span:nth-child(3){color:#4f718e}.magic span:nth-child(4){color:#8b4659}.magic span:nth-child(5){color:#a88b35}.magic span:nth-child(6){color:#4d8392}.magic span:nth-child(7){color:#b06437}.magic span:nth-child(8){color:#6a513d}.magic span:nth-child(9){color:#a3942f}
.light-path{position:relative;padding:46px 42px 46px 66px;background:linear-gradient(135deg,rgba(255,255,255,.62),rgba(238,230,211,.56));border:1px solid rgba(155,130,78,.18)}.light-path:before{content:"";position:absolute;left:29px;top:35px;bottom:35px;width:1px;background:linear-gradient(var(--gold),rgba(178,145,77,.08))}.light-path:after{content:"";position:absolute;left:22px;top:42px;width:15px;height:15px;border-radius:50%;background:#ffe6a4;box-shadow:0 0 32px 14px rgba(222,188,103,.38)}
.steps{display:grid;gap:0}.step{display:grid;grid-template-columns:58px 1fr;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}.step-num{width:50px;height:50px;border:1px solid rgba(178,145,77,.55);border-radius:50%;display:grid;place-items:center}.step h3{margin:0 0 5px;font-weight:500}.step p{margin:0;color:var(--muted)}
.quote-example{font-size:22px;line-height:1.9;padding:28px 32px;margin:40px 0;background:rgba(255,255,255,.55);border-top:1px solid rgba(178,145,77,.4);border-bottom:1px solid rgba(178,145,77,.4)}
.price-box,.form-card{background:rgba(255,255,255,.7);border:1px solid var(--line);padding:36px}.price-box{text-align:center}.price{font-size:40px}.form-card label{display:block;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;font-weight:600;margin:20px 0 7px}.input,textarea,select{width:100%;font:inherit;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;font-size:17px;padding:14px 15px;border:1px solid rgba(80,76,68,.27);background:rgba(255,255,255,.88)}textarea{min-height:170px}.check{display:flex;gap:10px;align-items:flex-start}.note{font-size:14px;color:var(--muted)}
.faq{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;font-size:20px;padding:25px 42px 25px 0;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:"＋";position:absolute;right:5px;color:var(--gold)}details[open] summary:after{content:"−"}.faq-answer{padding:0 0 28px;color:#514e47}.footer{background:#292a27;color:#f4efe4;padding:68px 0 34px}.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:45px}.footer a{color:inherit;text-decoration:none}.footer h3{font-size:28px;font-weight:500;letter-spacing:.12em}.footer ul{list-style:none;margin:12px 0 0;padding:0}.footer li{margin:8px 0}.copyright{margin-top:45px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:#aaa69e}.book-track{display:grid}.book-item{display:grid;grid-template-columns:95px 1fr;gap:26px;padding:32px 0;border-bottom:1px solid var(--line)}.book-no{font-size:45px;color:#a58a51}.book-item h3{font-weight:500;font-size:28px;margin:0 0 10px}.status{font-family:-apple-system,sans-serif;font-size:12px;border:1px solid var(--line);padding:4px 9px;display:inline-block}.notice{background:#fff8e9;border:1px solid #e2cfa1;padding:22px}.legal dl{display:grid;grid-template-columns:210px 1fr;border-top:1px solid var(--line)}.legal dt,.legal dd{padding:18px 0;border-bottom:1px solid var(--line);margin:0}.legal dt{font-weight:600}.prose h2{font-weight:500;font-size:32px;margin:60px 0 18px}.prose h3{font-size:22px;margin:36px 0 12px}
/* editorial scenery */
#message:after,.soft:after{content:"";position:absolute;right:-40px;bottom:-50px;width:260px;height:220px;background:url('../img/books.svg') right bottom/contain no-repeat;opacity:.16;pointer-events:none}.green:before{content:"";position:absolute;left:-45px;bottom:-80px;width:220px;height:310px;background:url('../img/leaf.svg') bottom left/contain no-repeat;opacity:.22}.aqua:after{content:"";position:absolute;right:-70px;top:20px;width:290px;aspect-ratio:1;background:url('../img/enso.svg') center/contain no-repeat;opacity:.13}
/* about page: each section has a distinct editorial mood */
body:has(.page-hero) main>section:nth-of-type(2){background:linear-gradient(110deg,rgba(255,255,255,.68),rgba(242,235,221,.58))}body:has(.page-hero) main>section:nth-of-type(2):before{content:"";position:absolute;right:-20px;bottom:-70px;width:210px;height:300px;background:url('../img/leaf.svg') center/contain no-repeat;opacity:.18}body:has(.page-hero) main>section:nth-of-type(4){background:linear-gradient(120deg,#30312e,#4a4a43);color:#f5f0e5}body:has(.page-hero) main>section:nth-of-type(4) .kicker{color:#d8bb78}body:has(.page-hero) main>section:nth-of-type(4) .light-path{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.13)}body:has(.page-hero) main>section:nth-of-type(5):before{content:"";position:absolute;left:4%;top:14%;width:260px;aspect-ratio:1;background:url('../img/enso.svg') center/contain no-repeat;opacity:.14}
@media(max-width:850px){body{font-size:18px;line-height:1.92}.container,.narrow{width:min(calc(100% - 34px),760px)}.nav{height:68px;padding:0 18px}.brand{font-size:21px}.brand small{font-size:7px}.menu-btn{display:block}.nav-links{display:none;position:absolute;top:68px;left:0;right:0;background:rgba(248,244,236,.98);padding:22px 24px 30px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.nav-links.open{display:flex}.nav-links a{font-size:17px;padding:7px 0}.cta-small{text-align:center;margin-top:5px}.hero{min-height:calc(100svh - 68px)}.hero:before{width:390px;max-width:104vw;top:43%}.hero:after{width:165px;height:250px;left:-35px;bottom:-30px}.hero h1{font-size:41px}.hero .sub{font-size:19px}.scroll{margin-top:52px}.page-hero{min-height:340px;padding:70px 0 55px}.page-hero:before{width:300px}.page-hero h1{font-size:36px}.page-hero .lead{font-size:18px}section{padding:78px 0}.section-title{font-size:31px}.big-quote{font-size:31px}.lead-copy{font-size:20px}.grid-2,.grid-3,.cards,.footer-grid{grid-template-columns:1fr;gap:30px}.card{padding:29px 25px}.btn{width:100%;min-height:60px;font-size:17px}.btn-row{display:grid}.magic{grid-template-columns:repeat(3,82px)}.magic span{height:82px}.light-path{padding:38px 28px 38px 54px}.number-line{margin:34px auto}.book-item{grid-template-columns:70px 1fr}.legal dl{grid-template-columns:1fr}.legal dt{padding-bottom:4px;border-bottom:0}.legal dd{padding-top:0}.footer{padding-top:56px}}
@media(max-width:420px){.hero h1{font-size:37px}.section-title,.big-quote{font-size:29px}.magic{grid-template-columns:repeat(3,74px)}.magic span{height:74px;font-size:28px}.card h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}

/* Form interaction safety: decorative layers must never block fields */
.form-card{position:relative;z-index:5}
.form-card form,.form-card input,.form-card textarea,.form-card select,.form-card button,.form-card label,.form-card .check{position:relative;z-index:6;pointer-events:auto}
.green:before,.aqua:after,#message:after,.soft:after{pointer-events:none;z-index:0}
.green>.narrow,.green>.container,.aqua>.narrow,.aqua>.container,.soft>.narrow,.soft>.container{position:relative;z-index:2}


/* =========================================================
   v11 — Japanese-worldview design refinement
   v8 layout baseline. No copy rewrite / no line-break tuning.
   Decorative English removed from HTML.
   ========================================================= */

/* Header: keep quiet, give the mark more presence without English */
.site-header{background:rgba(248,244,236,.94)}
.brand{position:relative;padding-left:2px}
.brand:after{content:"";position:absolute;left:0;right:38%;bottom:-8px;height:1px;background:linear-gradient(90deg,rgba(178,145,77,.52),transparent)}

/* Hero: circle is atmosphere, never the subject */
.hero{min-height:calc(100vh - 78px);background:
  radial-gradient(circle at 50% 39%,rgba(255,255,255,.98) 0 22%,rgba(250,247,240,.94) 50%,rgba(238,228,208,.66) 100%)}
.hero:before{width:clamp(285px,34vw,390px);top:39%;opacity:.42;filter:saturate(.72)}
.hero:after{left:-28px;bottom:-18px;width:205px;height:292px;opacity:.72}
.hero-inner:before{content:"";position:absolute;left:50%;top:50%;width:min(72vw,620px);height:1px;transform:translate(-50%,-50%);background:linear-gradient(90deg,transparent,rgba(178,145,77,.20),transparent);z-index:-1}
.hero-inner:after{content:"一　・　二　・　三";position:absolute;left:50%;top:-82px;transform:translateX(-50%);font-size:11px;letter-spacing:.42em;color:rgba(155,123,63,.50);white-space:nowrap}
.hero h1{position:relative;text-shadow:0 1px 0 rgba(255,255,255,.86)}
.hero .sub{position:relative;margin-top:25px}
.hero .sub:before,.hero .sub:after{content:"";display:inline-block;width:34px;height:1px;vertical-align:middle;background:rgba(178,145,77,.42);margin:0 16px 5px}
.scroll{margin-top:58px;width:42px;height:58px;display:inline-grid;place-items:center;border:0;text-decoration:none;color:var(--gold);font-size:25px;position:relative}
.scroll:before{content:"";position:absolute;top:0;left:50%;width:1px;height:24px;background:linear-gradient(rgba(178,145,77,.08),rgba(178,145,77,.7))}
.scroll:after{content:"";position:absolute;bottom:0;width:5px;height:5px;border-radius:50%;background:rgba(178,145,77,.65);box-shadow:0 0 0 9px rgba(178,145,77,.07)}
.scroll span{transform:translateY(8px)}

/* Inner-page hero: smaller circle, Japanese text remains primary */
.page-hero{background:
 radial-gradient(circle at 50% 47%,rgba(255,255,255,.86),rgba(248,244,236,.68) 55%,rgba(238,230,214,.40) 100%)}
.page-hero:before{width:clamp(210px,27vw,300px);opacity:.20}
.page-hero:after{content:"";position:absolute;width:150px;height:210px;right:-20px;bottom:-55px;background:url('../img/leaf.svg') right bottom/contain no-repeat;opacity:.13;pointer-events:none}

/* English label removal leaves deliberate Japanese visual markers */
.page-hero .container:before{content:"";display:block;width:42px;height:1px;margin:0 auto 23px;background:var(--gold)}
section>.narrow:first-child:before,.grid-2>div:first-child:before{content:"";display:block;width:28px;height:1px;margin-bottom:22px;background:rgba(178,145,77,.62)}

/* Gentle scenic richness; no template-like extra cards */
section:not(.hero):not(.page-hero){isolation:isolate}
section:not(.hero):not(.page-hero):before{pointer-events:none}
.soft{background:
 radial-gradient(circle at 86% 28%,rgba(178,145,77,.055),transparent 24%),
 linear-gradient(180deg,rgba(238,231,218,.86),rgba(249,246,240,.96))}
.aqua{background:
 radial-gradient(circle at 12% 76%,rgba(126,160,166,.065),transparent 25%),
 linear-gradient(180deg,#edf3f1 0%,#f8f4ec 100%)}
.green{background:
 radial-gradient(circle at 86% 28%,rgba(112,131,109,.065),transparent 26%),
 linear-gradient(180deg,#eff2ea 0%,#f8f4ec 100%)}

/* Headings: small gold stroke supplies hierarchy formerly supplied by English */
.section-title{position:relative}
.section-title:after{content:"";display:block;width:44px;height:1px;margin-top:17px;background:linear-gradient(90deg,var(--gold),rgba(178,145,77,.08))}
.center .section-title:after{margin-left:auto;margin-right:auto}

/* Cards / paths get slight handmade asymmetry through soft edge accents */
.card,.light-path,.price-box,.form-card{position:relative}
.card:after,.light-path:after,.price-box:after,.form-card:after{pointer-events:none}
.card{box-shadow:0 18px 48px rgba(59,49,36,.055)}
.card:before{content:"";position:absolute;left:18px;right:18px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(178,145,77,.24),transparent)}

/* Footer fully Japanese */
.footer strong{font-weight:500;letter-spacing:.08em;color:#d6c498}

@media(max-width:850px){
  .hero{min-height:calc(100svh - 68px)}
  .hero:before{width:270px;max-width:none;top:35%;opacity:.38}
  .hero:after{width:135px;height:205px;left:-28px;bottom:-18px;opacity:.58}
  .hero-inner:after{top:-62px;font-size:9px;letter-spacing:.30em}
  .hero .sub:before,.hero .sub:after{width:21px;margin-left:10px;margin-right:10px}
  .scroll{margin-top:44px;height:50px}
  .page-hero:before{width:220px;opacity:.18}
  .page-hero:after{width:110px;height:160px;right:-30px;bottom:-45px}
}

@media(max-width:420px){
  .hero:before{width:245px;top:34%}
  .hero-inner:after{top:-54px}
}

/* v12: Japanese-only editorial markers; scroll cue removed */
.hero .scroll{display:none!important}
.section-title.center::before{content:"";display:block;width:42px;height:1px;margin:0 auto 20px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
@media(max-width:850px){.section-title.center::before{width:34px;margin-bottom:16px}}


/* =========================================================
   v13 — alignment fixes only
   1) mobile: the "数という、もう一つの灯り。" section follows
      the site's centered mobile rhythm.
   2) desktop: line/plane comparison columns share the same top edge.
   ========================================================= */

.compare-section .grid-2{
  align-items:start;
}
.compare-section .grid-2 > div{
  align-self:start;
}
.compare-section .grid-2 h3{
  margin-top:0;
}

@media(max-width:850px){
  .aqua .grid-2{
    text-align:center;
  }
  .aqua .grid-2 > div:first-child:before{
    margin-left:auto;
    margin-right:auto;
  }
  .aqua .section-title:after{
    margin-left:auto;
    margin-right:auto;
  }
  .aqua .btn-row{
    justify-content:center;
  }
  .compare-section .grid-2{
    gap:46px;
  }
}


/* =========================================================
   v14 — 数字の固有色
   『かず詠み』の0〜10と魔方陣をブランド色で統一
   ========================================================= */
:root{
  --num0:#a9aaa7;
  --num1:#fffdf7;
  --num2:#c87462;
  --num3:#7fb7cf;
  --num4:#d9b84d;
  --num5:#b89443;
  --num6:#8eaa82;
  --num7:#9b5d70;
  --num8:#526d9b;
  --num9:#8b7355;
  --num10:#d2a83d;
}

/* 線：水彩の丸を思わせる柔らかな数字 */
.number-line{
  align-items:center;
  gap:clamp(3px,.55vw,8px);
}
.number-line span{
  width:clamp(32px,3.1vw,44px);
  height:clamp(32px,3.1vw,44px);
  min-width:clamp(32px,3.1vw,44px);
  border-radius:52% 48% 50% 46% / 48% 52% 47% 53%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:Georgia,'Times New Roman','Yu Mincho','Hiragino Mincho ProN',serif;
  font-size:clamp(1rem,1.55vw,1.32rem);
  line-height:1;
  background:var(--num0);
  color:#2f2c28;
  border:1px solid rgba(88,75,56,.08);
  box-shadow:
    inset 6px 5px 13px rgba(255,255,255,.22),
    inset -5px -4px 12px rgba(71,55,38,.05),
    0 3px 10px rgba(57,46,31,.04);
}
.number-line span:nth-of-type(1){background:color-mix(in srgb,var(--num0) 54%, transparent);color:#44433f}
.number-line span:nth-of-type(2){background:var(--num1);color:#272521;border-color:rgba(183,154,98,.20)}
.number-line span:nth-of-type(3){background:color-mix(in srgb,var(--num2) 72%, white)}
.number-line span:nth-of-type(4){background:color-mix(in srgb,var(--num3) 68%, white)}
.number-line span:nth-of-type(5){background:color-mix(in srgb,var(--num4) 68%, white)}
.number-line span:nth-of-type(6){background:color-mix(in srgb,var(--num5) 63%, white)}
.number-line span:nth-of-type(7){background:color-mix(in srgb,var(--num6) 68%, white)}
.number-line span:nth-of-type(8){background:color-mix(in srgb,var(--num7) 63%, white)}
.number-line span:nth-of-type(9){background:color-mix(in srgb,var(--num8) 60%, white);color:#27344e}
.number-line span:nth-of-type(10){background:color-mix(in srgb,var(--num9) 58%, white)}
.number-line span:nth-of-type(11){background:color-mix(in srgb,var(--num10) 66%, white)}
.number-line i{
  height:1px;
  flex:1 1 9px;
  min-width:4px;
  background:linear-gradient(90deg,rgba(183,154,98,.28),rgba(183,154,98,.72),rgba(183,154,98,.28));
  position:relative;
}
.number-line i::after{
  content:'›';
  position:absolute;
  right:-2px;
  top:50%;
  transform:translateY(-55%);
  color:rgba(183,154,98,.7);
  font-size:.8rem;
}

/* 面：添付の魔方陣のように、数字そのものに色を持たせる */
.magic span{
  font-family:Georgia,'Times New Roman','Yu Mincho','Hiragino Mincho ProN',serif;
  font-weight:500;
  background:rgba(255,255,255,.16);
}
.magic span:nth-child(1){color:#56875c} /* 6 */
.magic span:nth-child(2){color:#25231f} /* 1 */
.magic span:nth-child(3){color:#41618d} /* 8 */
.magic span:nth-child(4){color:#944b61} /* 7 */
.magic span:nth-child(5){color:#af8b32} /* 5 */
.magic span:nth-child(6){color:#5499b3} /* 3 */
.magic span:nth-child(7){color:#bd6549} /* 2 */
.magic span:nth-child(8){color:#785e47} /* 9 */
.magic span:nth-child(9){color:#b59a32} /* 4 */

.compare-section .magic{
  box-shadow:0 15px 40px rgba(73,59,39,.045);
  background:rgba(255,255,255,.18);
}
.compare-section .magic span{
  font-size:clamp(1.65rem,2.4vw,2.3rem);
}

@media(max-width:680px){
  .number-line{
    gap:3px;
  }
  .number-line span{
    width:31px;
    height:31px;
    min-width:31px;
    font-size:.9rem;
  }
  .number-line i{min-width:2px}
  .number-line i::after{display:none}
  .compare-section .magic span{font-size:1.85rem}
}

@supports not (background:color-mix(in srgb, white 50%, black)){
 .number-line span:nth-of-type(1){background:#d7d7d3}
 .number-line span:nth-of-type(2){background:#fffdf7}
 .number-line span:nth-of-type(3){background:#dea495}
 .number-line span:nth-of-type(4){background:#acd1e0}
 .number-line span:nth-of-type(5){background:#ead68c}
 .number-line span:nth-of-type(6){background:#d7c38d}
 .number-line span:nth-of-type(7){background:#b9ccb2}
 .number-line span:nth-of-type(8){background:#bd91a0}
 .number-line span:nth-of-type(9){background:#91a3c2}
 .number-line span:nth-of-type(10){background:#b6a592}
 .number-line span:nth-of-type(11){background:#e2c578}
}

/* =========================================================
   v15 — 確認済み「人生を、線と面で詠む。」正式デザイン
   線：中央軸に色付き数字＋読み＋言葉
   面：矢印なしの3×3魔方陣
   ========================================================= */
.kaz-flow{
  background:
    radial-gradient(circle at 78% 11%,rgba(178,145,77,.07),transparent 20%),
    linear-gradient(180deg,#faf7f0 0%,#f7f1e6 100%);
}
.kaz-flow>.container{max-width:1080px}
.kaz-flow .section-title{margin-bottom:54px}
.kaz-flow-rule{display:flex;align-items:center;gap:14px;margin:28px 0 52px}
.kaz-flow-rule:before,.kaz-flow-rule:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,rgba(178,145,77,.58))}
.kaz-flow-rule:after{background:linear-gradient(90deg,rgba(178,145,77,.58),transparent)}
.kaz-flow-rule span{width:8px;height:8px;background:var(--gold);transform:rotate(45deg);opacity:.82}
.kaz-flow-block>h3{font-weight:500;font-size:clamp(27px,3vw,38px);letter-spacing:.08em;margin:0 0 30px;line-height:1.5}
.kaz-flow-block>h3:after{content:"";display:block;width:42px;height:1px;background:rgba(178,145,77,.65);margin-top:12px}
.kaz-line-layout,.kaz-plane-layout{display:grid;grid-template-columns:minmax(420px,.95fr) minmax(320px,1fr);gap:88px;align-items:center}
.kaz-number-reading{width:min(100%,520px);margin:0 auto;position:relative;padding:4px 0}
.kaz-number-reading:before{content:"";position:absolute;left:39px;top:30px;bottom:30px;width:2px;background:linear-gradient(180deg,rgba(178,145,77,.18),rgba(178,145,77,.78) 14%,rgba(178,145,77,.78) 86%,rgba(178,145,77,.18));z-index:0}
.kaz-number-row{display:grid;grid-template-columns:80px 120px 1fr;min-height:58px;align-items:center;position:relative}
.kaz-num{grid-column:1;width:48px;height:48px;justify-self:center;border-radius:52% 48% 50% 46% / 48% 52% 47% 53%;display:grid;place-items:center;position:relative;z-index:1;font-family:Georgia,'Times New Roman','Yu Mincho','Hiragino Mincho ProN',serif;font-size:21px;line-height:1;color:#2d2b28;border:1px solid rgba(90,73,48,.12);box-shadow:inset 6px 5px 13px rgba(255,255,255,.28),inset -5px -4px 12px rgba(71,55,38,.05),0 3px 10px rgba(57,46,31,.04)}
.kaz-num.n0{background:#d4d4d0;color:#454440}.kaz-num.n1{background:#fffdf7}.kaz-num.n2{background:#dfa392}.kaz-num.n3{background:#a8d2e2}.kaz-num.n4{background:#ecd37f}.kaz-num.n5{background:#dcc48b}.kaz-num.n6{background:#b6ceb0}.kaz-num.n7{background:#c095a4}.kaz-num.n8{background:#91a8d0;color:#263b61}.kaz-num.n9{background:#b8aa99}.kaz-num.n10{background:#e7c76f;border-color:#333;box-shadow:inset 0 0 0 3px rgba(255,255,255,.45),0 3px 10px rgba(57,46,31,.04)}
.kaz-reading,.kaz-word{font-size:21px;letter-spacing:.04em;line-height:1.5;white-space:nowrap}
.kaz-reading{padding-left:18px}.kaz-word{padding-left:18px}
.kaz-line-copy,.kaz-plane-copy{font-size:20px;line-height:2.15;position:relative;max-width:430px}
.kaz-line-copy p,.kaz-plane-copy p{margin:0 0 22px}
.kaz-enso-small{display:block;width:220px;aspect-ratio:1;background:url('../img/enso.svg') center/contain no-repeat;opacity:.18;position:absolute;right:-44px;top:-128px;pointer-events:none;z-index:-1}
.kaz-plane-block{margin-top:0}
.kaz-plane-layout{grid-template-columns:minmax(300px,.8fr) minmax(320px,1fr)}
.kaz-plane-layout .magic{grid-template-columns:repeat(3,108px);margin:0;justify-self:start;border-top:1px solid rgba(178,145,77,.45);border-left:1px solid rgba(178,145,77,.45);box-shadow:none;background:rgba(255,255,255,.12)}
.kaz-plane-layout .magic span{height:108px;border-right:1px solid rgba(178,145,77,.45);border-bottom:1px solid rgba(178,145,77,.45);background:rgba(255,255,255,.08);font-size:40px}
.kaz-plane-copy{align-self:center}

@media(max-width:850px){
  .kaz-flow .section-title{margin-bottom:40px}
  .kaz-flow-rule{margin:22px 0 38px}
  .kaz-line-layout,.kaz-plane-layout{grid-template-columns:1fr;gap:42px}
  .kaz-flow-block>h3{text-align:center;font-size:28px;margin-bottom:26px}
  .kaz-flow-block>h3:after{margin-left:auto;margin-right:auto}
  .kaz-number-reading{width:min(100%,430px)}
  .kaz-number-reading:before{left:37px}
  .kaz-number-row{grid-template-columns:76px 112px 1fr;min-height:56px}
  .kaz-num{width:46px;height:46px;font-size:20px}
  .kaz-reading,.kaz-word{font-size:19px}
  .kaz-reading,.kaz-word{padding-left:10px}
  .kaz-line-copy,.kaz-plane-copy{max-width:600px;margin:0 auto;text-align:center;font-size:18px;line-height:2}
  .kaz-enso-small{width:170px;right:50%;transform:translateX(50%);top:-95px;opacity:.11}
  .kaz-plane-layout .magic{justify-self:center;grid-template-columns:repeat(3,92px)}
  .kaz-plane-layout .magic span{height:92px;font-size:34px}
}
@media(max-width:480px){
  .kaz-flow{padding-top:72px;padding-bottom:76px}
  .kaz-flow .section-title{font-size:30px;line-height:1.6}
  .kaz-number-reading{width:100%}
  .kaz-number-reading:before{left:31px;top:27px;bottom:27px}
  .kaz-number-row{grid-template-columns:62px 96px 1fr;min-height:53px}
  .kaz-num{width:42px;height:42px;font-size:18px}
  .kaz-reading,.kaz-word{font-size:17px;letter-spacing:.02em}
  .kaz-reading{padding-left:8px}.kaz-word{padding-left:6px}
  .kaz-plane-layout .magic{grid-template-columns:repeat(3,min(27vw,90px))}
  .kaz-plane-layout .magic span{height:min(27vw,90px);font-size:32px}
  .kaz-line-copy,.kaz-plane-copy{font-size:17px}
  .kaz-flow-rule{margin-bottom:34px}
}


/* =========================================================
   v16 — confirmed "線と面" design
   - line: number + reading only, centered
   - no kanji column / no side copy
   - 10 uses the same visual rule as the other numbers
   - generous vertical breathing room
   - plane: no arrows, complete grid, generous spacing
   ========================================================= */

.confirmed-line-plane{
  padding-top:clamp(88px,9vw,150px);
  padding-bottom:clamp(110px,11vw,180px);
  position:relative;
  overflow:hidden;
}

.confirmed-line-plane > .container{
  width:min(1120px,calc(100% - 48px));
}

.confirmed-line-plane .section-title{
  margin-bottom:clamp(58px,6vw,96px);
}

/* subtle circular presence, never dominating the section */
.confirmed-line-plane::before{
  content:"";
  position:absolute;
  width:clamp(220px,25vw,360px);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(178,145,77,.13);
  right:clamp(-150px,-5vw,-50px);
  top:clamp(170px,16vw,260px);
  box-shadow:
    0 0 0 14px rgba(178,145,77,.018),
    0 0 0 34px rgba(178,145,77,.012);
  pointer-events:none;
}

/* LINE */
.confirmed-line-plane .kaz-line-block{
  padding:0 0 clamp(96px,10vw,150px);
}

.confirmed-line-plane .kaz-line-block > h3{
  text-align:center;
  margin-bottom:clamp(42px,5vw,70px);
}

.confirmed-line-plane .kaz-line-block > h3::after{
  margin-left:auto;
  margin-right:auto;
}

.confirmed-line-plane .kaz-line-layout{
  display:block;
}

.confirmed-line-plane .kaz-number-reading{
  width:min(100%,330px);
  margin:0 auto;
  padding:4px 0;
}

/* Vertical gold axis passes through exact center of number circles */
.confirmed-line-plane .kaz-number-reading::before{
  left:31px;
  top:30px;
  bottom:30px;
  width:2px;
}

.confirmed-line-plane .kaz-number-row{
  grid-template-columns:62px minmax(120px,1fr);
  min-height:62px;
  align-items:center;
}

.confirmed-line-plane .kaz-reading{
  padding-left:26px;
  font-size:clamp(20px,2vw,24px);
  letter-spacing:.07em;
  white-space:nowrap;
}

/* 10 follows the same edge treatment as the rest */
.confirmed-line-plane .kaz-num.n10{
  border-color:rgba(178,145,77,.32);
  box-shadow:0 3px 10px rgba(57,46,31,.04);
}

/* Divider gets extra air */
.confirmed-line-plane .kaz-flow-rule{
  margin-top:0;
  margin-bottom:clamp(70px,7vw,105px);
}

/* PLANE */
.confirmed-line-plane .kaz-plane-block{
  padding-top:0;
}

.confirmed-line-plane .kaz-plane-block > h3{
  text-align:center;
  margin-bottom:clamp(50px,5vw,78px);
}

.confirmed-line-plane .kaz-plane-block > h3::after{
  margin-left:auto;
  margin-right:auto;
}

.confirmed-line-plane .kaz-plane-layout{
  grid-template-columns:minmax(300px,.82fr) minmax(320px,1fr);
  gap:clamp(80px,9vw,135px);
  align-items:center;
}

.confirmed-line-plane .kaz-plane-layout .magic{
  justify-self:center;
  margin:0;
  border-top:1px solid rgba(178,145,77,.46);
  border-left:1px solid rgba(178,145,77,.46);
}

.confirmed-line-plane .kaz-plane-layout .magic span{
  border-right:1px solid rgba(178,145,77,.46);
  border-bottom:1px solid rgba(178,145,77,.46);
}

.confirmed-line-plane .kaz-plane-copy{
  max-width:430px;
  line-height:2.1;
}

/* Mobile: keep generous margins and centered visual rhythm */
@media (max-width: 760px){
  .confirmed-line-plane{
    padding-top:82px;
    padding-bottom:108px;
  }

  .confirmed-line-plane > .container{
    width:min(100% - 38px,1120px);
  }

  .confirmed-line-plane .section-title{
    margin-bottom:64px;
  }

  .confirmed-line-plane::before{
    width:210px;
    right:-135px;
    top:205px;
    opacity:.7;
  }

  .confirmed-line-plane .kaz-line-block{
    padding-bottom:98px;
  }

  .confirmed-line-plane .kaz-line-block > h3{
    margin-bottom:46px;
  }

  .confirmed-line-plane .kaz-number-reading{
    width:250px;
  }

  .confirmed-line-plane .kaz-number-reading::before{
    left:29px;
  }

  .confirmed-line-plane .kaz-number-row{
    grid-template-columns:58px 1fr;
    min-height:64px;
  }

  .confirmed-line-plane .kaz-reading{
    padding-left:28px;
    font-size:20px;
  }

  .confirmed-line-plane .kaz-flow-rule{
    margin-bottom:76px;
  }

  .confirmed-line-plane .kaz-plane-block > h3{
    margin-bottom:48px;
  }

  .confirmed-line-plane .kaz-plane-layout{
    grid-template-columns:1fr;
    gap:54px;
  }

  .confirmed-line-plane .kaz-plane-copy{
    margin:0 auto;
    text-align:center;
    max-width:31em;
  }
}

@media (min-width: 761px){
  .confirmed-line-plane .kaz-number-reading::before{
    left:31px;
  }
}


/* =========================================================
   v17 — line/plane responsive alignment
   Mobile: visually centered line sequence.
   Desktop: line and plane side-by-side with generous space.
   ========================================================= */

/* Mobile/tablet: center the actual visual group, not a fixed-width box */
.confirmed-line-plane .kaz-number-reading{
  width:max-content;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
}

.confirmed-line-plane .kaz-number-row{
  grid-template-columns:58px auto;
  column-gap:28px;
}

.confirmed-line-plane .kaz-reading{
  padding-left:0;
}

/* Divider remains visible on stacked layouts only */
.confirmed-line-plane .kaz-flow-rule{
  display:block;
}

/* Desktop composition */
@media (min-width: 1080px){
  .confirmed-line-plane{
    padding-top:120px;
    padding-bottom:150px;
  }

  .confirmed-line-plane .section-title{
    margin-bottom:90px;
  }

  .confirmed-line-plane .kaz-lineplane-grid{
    display:grid;
    grid-template-columns:minmax(330px,.88fr) minmax(500px,1.12fr);
    gap:clamp(90px,9vw,150px);
    align-items:start;
  }

  .confirmed-line-plane .kaz-line-block,
  .confirmed-line-plane .kaz-plane-block{
    padding:0;
    min-width:0;
  }

  .confirmed-line-plane .kaz-line-block > h3,
  .confirmed-line-plane .kaz-plane-block > h3{
    margin-bottom:56px;
    text-align:center;
  }

  .confirmed-line-plane .kaz-number-reading{
    margin:0 auto;
  }

  .confirmed-line-plane .kaz-flow-rule{
    display:none;
  }

  .confirmed-line-plane .kaz-plane-layout{
    display:grid;
    grid-template-columns:1fr;
    gap:46px;
    align-items:start;
  }

  .confirmed-line-plane .kaz-plane-layout .magic{
    justify-self:center;
  }

  .confirmed-line-plane .kaz-plane-copy{
    max-width:440px;
    margin:0 auto;
    text-align:left;
  }
}

/* Phone: keep ample air while centering the sequence */
@media (max-width: 760px){
  .confirmed-line-plane .kaz-number-reading{
    width:max-content;
  }

  .confirmed-line-plane .kaz-number-row{
    grid-template-columns:58px auto;
    column-gap:30px;
  }

  .confirmed-line-plane .kaz-number-reading::before{
    left:29px;
  }
}


/* =========================================================
   v18b — PC horizontal line/plane fix
   ========================================================= */
@media (min-width:1080px){
  .confirmed-line-plane .kaz-lineplane-grid{
    display:grid !important;
    grid-template-columns:minmax(340px,.9fr) minmax(500px,1.1fr) !important;
    gap:clamp(90px,8vw,140px) !important;
    align-items:start !important;
    width:100% !important;
  }
  .confirmed-line-plane .kaz-line-block,
  .confirmed-line-plane .kaz-plane-block{
    margin:0 !important;
    padding:0 !important;
    width:100% !important;
  }
  .confirmed-line-plane .kaz-lineplane-grid > .kaz-flow-rule{
    display:none !important;
  }
  .confirmed-line-plane .kaz-line-block > h3,
  .confirmed-line-plane .kaz-plane-block > h3{
    margin-top:0 !important;
    margin-bottom:56px !important;
  }
  .confirmed-line-plane .kaz-plane-layout{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:48px !important;
  }
  .confirmed-line-plane .kaz-plane-layout .magic{
    margin:0 auto !important;
    justify-self:center !important;
  }
  .confirmed-line-plane .kaz-plane-copy{
    margin:0 auto !important;
    max-width:440px !important;
  }
}


/* =========================================================
   v19 — About page design
   Based on the confirmed top-page visual language.
   No copy changes.
   ========================================================= */

.page-about{
  background:
    radial-gradient(circle at 82% 9%, rgba(189,157,88,.055), transparent 28%),
    linear-gradient(180deg,#fbf8f0 0%,#f7f3ea 100%);
}

.page-about main{
  overflow:hidden;
}

.page-about .page-hero{
  min-height:52vh;
  display:grid;
  align-items:center;
  position:relative;
  padding-top:clamp(90px,9vw,140px);
  padding-bottom:clamp(90px,10vw,150px);
  isolation:isolate;
}

.page-about .page-hero::before{
  content:"";
  position:absolute;
  width:clamp(210px,24vw,350px);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(184,151,78,.18);
  right:clamp(-130px,-4vw,-30px);
  top:50%;
  transform:translateY(-50%);
  box-shadow:
    0 0 0 15px rgba(184,151,78,.015),
    0 0 0 34px rgba(184,151,78,.010);
  z-index:-1;
}

.page-about .page-hero h1{
  max-width:13em;
  line-height:1.45;
  letter-spacing:.04em;
}

.page-about .page-hero p{
  max-width:35em;
  line-height:2.1;
}

/* Each content section gets a clear editorial rhythm */
.page-about main > section:not(.page-hero){
  position:relative;
  padding-top:clamp(90px,9vw,145px);
  padding-bottom:clamp(90px,9vw,145px);
}

.page-about main > section:nth-of-type(even){
  background:
    linear-gradient(90deg,
      rgba(156,170,145,.03),
      transparent 22%,
      transparent 78%,
      rgba(148,170,180,.03));
}

.page-about main > section:nth-of-type(3n)::after{
  content:"";
  position:absolute;
  width:160px;
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(184,151,78,.11);
  right:-90px;
  bottom:12%;
  pointer-events:none;
}

/* Japanese editorial heading treatment */
.page-about main h2{
  text-align:center;
  line-height:1.55;
  letter-spacing:.04em;
  margin-bottom:clamp(52px,5vw,80px);
}

.page-about main h2::after{
  content:"";
  display:block;
  width:48px;
  height:1px;
  margin:1rem auto 0;
  background:rgba(184,151,78,.64);
}

.page-about main h3{
  line-height:1.6;
  letter-spacing:.035em;
}

/* Reading paragraphs: wide enough on desktop, centered visual block */
.page-about .section-inner,
.page-about .container{
  width:min(100% - 48px,1080px);
  margin-inline:auto;
}

.page-about main p{
  line-height:2.15;
}

/* Key statements become quiet framed editorial moments */
.page-about .key-message,
.page-about .statement,
.page-about .highlight,
.page-about blockquote{
  max-width:850px;
  margin:clamp(44px,5vw,72px) auto;
  padding:clamp(34px,4vw,58px);
  background:rgba(255,255,255,.48);
  border:1px solid rgba(184,151,78,.16);
  box-shadow:0 20px 55px rgba(67,55,36,.05);
  position:relative;
}

.page-about .key-message::before,
.page-about .statement::before,
.page-about .highlight::before,
.page-about blockquote::before{
  content:"";
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#b89a5b;
  top:24px;
  left:24px;
  box-shadow:0 0 0 7px rgba(184,154,91,.08);
}

/* Two-column editorial composition on larger screens where markup allows */
@media (min-width: 980px){
  .page-about .split,
  .page-about .two-column,
  .page-about .grid-2,
  .page-about .content-grid{
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    gap:clamp(70px,8vw,125px);
    align-items:start;
  }

  .page-about main p{
    font-size:1.08rem;
  }
}

/* Mobile: center-led, generous, easy to read */
@media (max-width: 760px){
  .page-about .page-hero{
    min-height:auto;
    padding-top:82px;
    padding-bottom:92px;
    text-align:center;
  }

  .page-about .page-hero::before{
    width:205px;
    right:-135px;
    top:42%;
    opacity:.7;
  }

  .page-about .page-hero h1,
  .page-about .page-hero p{
    margin-left:auto;
    margin-right:auto;
  }

  .page-about main > section:not(.page-hero){
    padding-top:82px;
    padding-bottom:86px;
  }

  .page-about .section-inner,
  .page-about .container{
    width:min(100% - 38px,1080px);
  }

  .page-about main h2{
    font-size:clamp(1.7rem,7.5vw,2.1rem);
    margin-bottom:44px;
  }

  .page-about main h3{
    text-align:center;
  }

  .page-about main p{
    font-size:1.06rem;
    line-height:2.05;
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }

  .page-about .key-message,
  .page-about .statement,
  .page-about .highlight,
  .page-about blockquote{
    padding:32px 24px;
    margin:40px auto;
    text-align:center;
  }
}


/* =========================================================
   v20 — Experience page design
   Confirmed copy is untouched.
   ========================================================= */

.page-experience{
  background:
    radial-gradient(circle at 82% 12%, rgba(206,184,120,.065), transparent 25%),
    radial-gradient(circle at 14% 36%, rgba(151,181,171,.035), transparent 24%),
    linear-gradient(180deg,#fbf8f0 0%,#f7f3ea 100%);
}
.page-experience main{overflow:hidden}
.page-experience .page-hero{
  min-height:58vh;display:grid;align-items:center;text-align:center;
  padding-top:clamp(96px,10vw,150px);padding-bottom:clamp(100px,11vw,160px);
  position:relative;isolation:isolate;
}
.page-experience .page-hero::before{
  content:"";position:absolute;width:clamp(235px,26vw,390px);aspect-ratio:1;
  border-radius:50%;border:1px solid rgba(186,154,81,.18);
  right:clamp(-130px,-3vw,-15px);top:47%;transform:translateY(-50%);
  box-shadow:0 0 0 13px rgba(186,154,81,.016),0 0 0 34px rgba(186,154,81,.010);
  z-index:-1;
}
.page-experience .page-hero::after{
  content:"";position:absolute;left:-4%;bottom:19%;width:34%;height:72px;opacity:.28;
  background:
    linear-gradient(165deg, transparent 45%, rgba(186,154,81,.32) 46%, transparent 47%) 0 0/100% 20px,
    linear-gradient(170deg, transparent 46%, rgba(186,154,81,.22) 47%, transparent 48%) 0 14px/100% 24px;
  z-index:-1;
}
.page-experience .page-hero .container{width:min(100% - 44px,960px)}
.page-experience .ribbon{
  display:inline-block;padding:.72rem 1.35rem;border:1px solid rgba(186,154,81,.28);
  border-radius:999px;background:rgba(255,255,255,.42);color:#826f45;
  font-size:.96rem;letter-spacing:.06em;
}
.page-experience .page-hero h1{margin-top:34px !important;line-height:1.48;letter-spacing:.04em}
.page-experience .page-hero .lead{max-width:34em;margin:30px auto 0;line-height:2}

.page-experience main > section:not(.page-hero){
  position:relative;padding-top:clamp(90px,9vw,145px);padding-bottom:clamp(90px,9vw,145px);
}
.page-experience .narrow{width:min(100% - 44px,760px);margin-inline:auto}
.page-experience .container{width:min(100% - 48px,1100px);margin-inline:auto}
.page-experience .section-title{
  text-align:center;line-height:1.55;letter-spacing:.04em;margin-bottom:clamp(52px,5vw,78px);
}
.page-experience .section-title::after{
  content:"";display:block;width:48px;height:1px;margin:1rem auto 0;background:rgba(186,154,81,.62);
}
.page-experience main p{line-height:2.12}
.page-experience main section:nth-of-type(2) .lead-copy{
  margin:44px auto;font-size:clamp(1.35rem,2.1vw,1.7rem);text-align:center;color:#6f6249;
}

.page-experience .soft{
  background:linear-gradient(90deg,rgba(158,176,165,.045),transparent 26%,transparent 74%,rgba(156,172,185,.04));
}
.page-experience .soft .grid-2{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);
  gap:clamp(72px,8vw,125px);align-items:center;
}
.page-experience .steps{position:relative}
.page-experience .steps::before{
  content:"";position:absolute;left:29px;top:34px;bottom:34px;width:1px;
  background:linear-gradient(180deg,rgba(186,154,81,.15),rgba(186,154,81,.52) 14%,rgba(186,154,81,.52) 86%,rgba(186,154,81,.15));
}
.page-experience .step{
  display:grid;grid-template-columns:60px 1fr;gap:28px;align-items:start;position:relative;padding:18px 0 30px;
}
.page-experience .step-num{
  width:58px;height:58px;border-radius:50%;display:grid;place-items:center;position:relative;z-index:1;
  background:#fbf8ef;border:1px solid rgba(186,154,81,.2);color:#8d7340;
  font-size:1rem;letter-spacing:.08em;box-shadow:0 9px 26px rgba(69,54,32,.05);
}
.page-experience .step:nth-child(1) .step-num{background:rgba(163,191,169,.24);color:#557662}
.page-experience .step:nth-child(2) .step-num{background:rgba(217,154,132,.22);color:#9c5f4b}
.page-experience .step:nth-child(3) .step-num{background:rgba(145,185,206,.22);color:#557c91}
.page-experience .step:nth-child(4) .step-num{background:rgba(204,176,105,.24);color:#8b7138}
.page-experience .step h3{margin:.15rem 0 .7rem;line-height:1.55;letter-spacing:.03em}
.page-experience .step p{margin:0;line-height:1.95}

.page-experience .magic-wrap{
  position:relative;padding:clamp(34px,4vw,54px);background:rgba(255,255,255,.38);
  border:1px solid rgba(186,154,81,.12);box-shadow:0 20px 58px rgba(67,55,36,.045);
}
.page-experience .magic-wrap::before{
  content:"";position:absolute;width:90px;aspect-ratio:1;border-radius:50%;
  border:1px solid rgba(186,154,81,.14);right:-34px;top:-34px;
}
.page-experience .magic{
  width:min(100%,330px);margin:0 auto 38px;border-top:1px solid rgba(186,154,81,.45);
  border-left:1px solid rgba(186,154,81,.45);
}
.page-experience .magic span{
  min-height:96px;display:grid;place-items:center;border-right:1px solid rgba(186,154,81,.45);
  border-bottom:1px solid rgba(186,154,81,.45);font-size:clamp(2rem,4vw,3.1rem);
  background:rgba(255,255,255,.18);
}
.page-experience .magic span:nth-child(1){color:#559565}
.page-experience .magic span:nth-child(2){color:#201d1a}
.page-experience .magic span:nth-child(3){color:#315db7}
.page-experience .magic span:nth-child(4){color:#9e415d}
.page-experience .magic span:nth-child(5){color:#ba8f22}
.page-experience .magic span:nth-child(6){color:#4992a8}
.page-experience .magic span:nth-child(7){color:#c45d39}
.page-experience .magic span:nth-child(8){color:#6f5037}
.page-experience .magic span:nth-child(9){color:#c49726}
.page-experience .magic-wrap .muted{line-height:2;text-align:center;margin:0}

.page-experience .price-box{
  text-align:center;max-width:760px;margin-inline:auto;padding:clamp(44px,5vw,68px);
  background:rgba(255,255,255,.5);border:1px solid rgba(186,154,81,.14);
  box-shadow:0 22px 64px rgba(67,55,36,.05);position:relative;
}
.page-experience .price-box::before,.page-experience .price-box::after{
  content:"";position:absolute;top:22px;bottom:22px;width:1px;
  background:linear-gradient(180deg,transparent,rgba(186,154,81,.28),transparent);
}
.page-experience .price-box::before{left:20px}
.page-experience .price-box::after{right:20px}
.page-experience .price-box .price{
  font-size:clamp(2rem,4vw,3rem);color:#a7843c;margin:26px 0;letter-spacing:.08em;
}

.page-experience .green{
  background:
    radial-gradient(circle at 75% 20%,rgba(178,158,92,.065),transparent 28%),
    linear-gradient(180deg,rgba(235,239,231,.62),rgba(242,239,228,.74));
}
.page-experience .form-card{
  max-width:760px;margin-inline:auto;background:rgba(255,255,255,.66);
  border:1px solid rgba(186,154,81,.14);box-shadow:0 24px 70px rgba(67,55,36,.065);
  padding:clamp(38px,5vw,64px);
}
.page-experience .form-card label{color:#4b453c}
.page-experience .form-card .input{background:rgba(255,255,255,.86);border-color:rgba(133,116,77,.2)}
.page-experience .form-card .btn{width:100%;min-height:58px;margin-top:28px}
.page-experience .form-card .note{margin-top:22px;text-align:center;line-height:1.8}

@media (max-width:760px){
  .page-experience .page-hero{min-height:auto;padding-top:82px;padding-bottom:96px}
  .page-experience .page-hero::before{width:205px;right:-140px;top:46%;opacity:.72}
  .page-experience .page-hero::after{width:48%;bottom:12%}
  .page-experience .ribbon{font-size:.9rem;line-height:1.65;padding:.65rem 1rem}
  .page-experience main > section:not(.page-hero){padding-top:82px;padding-bottom:88px}
  .page-experience .container,.page-experience .narrow{width:min(100% - 38px,1100px)}
  .page-experience main p{text-align:center;font-size:1.06rem;line-height:2.05}
  .page-experience .soft .grid-2{grid-template-columns:1fr;gap:58px}
  .page-experience .steps{width:min(100%,390px);margin-inline:auto}
  .page-experience .step{grid-template-columns:56px 1fr;gap:23px}
  .page-experience .steps::before{left:27px}
  .page-experience .step-num{width:54px;height:54px}
  .page-experience .step h3,.page-experience .step p{text-align:left}
  .page-experience .magic-wrap{padding:34px 24px}
  .page-experience .magic{width:min(100%,300px)}
  .page-experience .magic span{min-height:82px}
  .page-experience .price-box{padding:38px 26px}
  .page-experience .form-card{padding:36px 24px}
  .page-experience .form-card .section-title{margin-bottom:40px}
}


/* =========================================================
   v21 — Experience page confirmed composition
   Visual basis: approved mockup.
   Content remains the confirmed website copy.
   ========================================================= */

.page-experience .experience-overview{
  padding-top:clamp(86px,8vw,128px);
  padding-bottom:clamp(86px,8vw,128px);
  background:transparent;
}

.page-experience .experience-overview > .container{
  width:min(100% - 48px,1180px);
}

/* Main white editorial card */
.page-experience .experience-overview .grid-2{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  gap:0;
  align-items:stretch;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(186,154,81,.11);
  box-shadow:0 26px 72px rgba(66,53,34,.055);
  padding:clamp(44px,5vw,72px);
  position:relative;
}

.page-experience .experience-overview .grid-2::after{
  content:"";
  position:absolute;
  top:44px;
  bottom:44px;
  left:56%;
  width:1px;
  background:linear-gradient(180deg,transparent,rgba(186,154,81,.28) 8%,rgba(186,154,81,.28) 92%,transparent);
}

.page-experience .experience-overview .steps{
  padding-right:clamp(46px,5vw,72px);
}

.page-experience .experience-overview .steps::before{
  left:30px;
  top:34px;
  bottom:34px;
}

.page-experience .experience-overview .step{
  grid-template-columns:62px 1fr;
  gap:24px;
  padding:14px 0 26px;
}

.page-experience .experience-overview .step-num{
  width:58px;
  height:58px;
  font-size:1rem;
}

.page-experience .experience-overview .step h3{
  font-size:clamp(1.2rem,1.8vw,1.42rem);
  margin:.15rem 0 .6rem;
}

.page-experience .experience-overview .step p{
  font-size:1rem;
  line-height:1.95;
  text-align:left;
}

/* Right: magic square as a crisp 3×3 block */
.page-experience .experience-overview .magic-wrap{
  padding-left:clamp(54px,5vw,78px);
  padding-right:0;
  padding-top:0;
  padding-bottom:0;
  border:none;
  box-shadow:none;
  background:transparent;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.page-experience .experience-overview .magic-wrap::before{
  display:none;
}

.page-experience .experience-overview .magic-wrap::after{
  content:"人生を面で詠む｜魔方陣";
  order:-1;
  display:block;
  text-align:center;
  margin-bottom:28px;
  color:#3c372f;
  font-size:1.05rem;
  letter-spacing:.05em;
}

.page-experience .experience-overview .magic{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  grid-template-rows:repeat(3,1fr) !important;
  width:min(100%,360px) !important;
  aspect-ratio:1 !important;
  margin:0 auto 30px !important;
  border-top:1px solid rgba(186,154,81,.50) !important;
  border-left:1px solid rgba(186,154,81,.50) !important;
}

.page-experience .experience-overview .magic span{
  min-height:0 !important;
  display:grid !important;
  place-items:center !important;
  font-size:clamp(2.1rem,4vw,3.35rem) !important;
  line-height:1 !important;
  border-right:1px solid rgba(186,154,81,.50) !important;
  border-bottom:1px solid rgba(186,154,81,.50) !important;
  background:transparent !important;
  padding:0 !important;
}

.page-experience .experience-overview .magic-wrap .muted{
  max-width:22em;
  margin:0 auto;
  text-align:center;
  font-size:1rem;
  line-height:1.9;
}

/* Below: info + form side by side on desktop */
.page-experience .experience-info-section{
  padding-top:24px !important;
  padding-bottom:clamp(100px,10vw,150px) !important;
}

.page-experience .experience-info-section > .container,
.page-experience .green > .container{
  width:min(100% - 48px,1180px);
}

@media (min-width: 980px){
  .page-experience .experience-info-section .info-grid,
  .page-experience .green .form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:26px;
  }
}

/* Reframe info/form as paired cards when markup permits */
.page-experience .price-box,
.page-experience .form-card{
  border-radius:0;
  border:1px solid rgba(186,154,81,.12);
  background:rgba(255,255,255,.62);
  box-shadow:0 20px 55px rgba(65,52,34,.045);
}

/* Mobile approved composition */
@media (max-width: 760px){
  .page-experience .experience-overview{
    padding-top:72px;
    padding-bottom:78px;
  }

  .page-experience .experience-overview > .container{
    width:min(100% - 30px,1180px);
  }

  .page-experience .experience-overview .grid-2{
    grid-template-columns:1fr;
    padding:34px 24px 38px;
    gap:54px;
  }

  .page-experience .experience-overview .grid-2::after{
    display:none;
  }

  .page-experience .experience-overview .steps{
    padding-right:0;
    width:min(100%,420px);
    margin-inline:auto;
  }

  .page-experience .experience-overview .step{
    grid-template-columns:52px 1fr;
    gap:18px;
    padding:12px 0 22px;
  }

  .page-experience .experience-overview .steps::before{
    left:25px;
  }

  .page-experience .experience-overview .step-num{
    width:50px;
    height:50px;
  }

  .page-experience .experience-overview .step h3{
    font-size:1.15rem;
  }

  .page-experience .experience-overview .step p{
    font-size:.98rem;
    line-height:1.85;
  }

  .page-experience .experience-overview .magic-wrap{
    padding:0;
  }

  .page-experience .experience-overview .magic-wrap::after{
    font-size:1rem;
    margin-bottom:24px;
  }

  .page-experience .experience-overview .magic{
    width:min(100%,290px) !important;
    margin-bottom:24px !important;
  }

  .page-experience .experience-overview .magic span{
    font-size:2.3rem !important;
  }

  .page-experience .experience-overview .magic-wrap .muted{
    font-size:.98rem;
    line-height:1.85;
  }
}


/* =========================================================
   v22 — Experience magic-square definitive fix
   Reset legacy fixed cell heights so every cell fills
   its 3×3 grid track on desktop and mobile.
   ========================================================= */

.page-experience .experience-overview .magic{
  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

.page-experience .experience-overview .magic span{
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  align-self:stretch !important;
  justify-self:stretch !important;
  box-sizing:border-box !important;
  margin:0 !important;
}



/* =========================================================
   v23 — final line-break / spacing tuning
   - confirmed copy is untouched
   - mobile-first Japanese line breaking
   - desktop layout preserved
   ========================================================= */

/* Japanese text behavior */
html{
  hanging-punctuation: first allow-end last;
}

body,
p,
li,
dt,
dd,
label,
input,
textarea,
button{
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
}

h1,h2,h3,h4{
  line-break: strict;
  word-break: keep-all;
  overflow-wrap: normal;
  text-wrap: balance;
}

/* Keep reading measure comfortable */
main p,
main li{
  max-width: 42em;
}

main .lead,
main .muted,
main .note{
  max-width: 38em;
}

/* Center key editorial copy blocks when already center-led */
.center,
.text-center,
.section-title,
.page-hero,
.hero{
  text-align:center;
}

/* Remove the stray decorative horizontal line beside experience step 01 */
.page-experience .step::after,
.page-experience .step:first-child::after,
.page-experience .step:first-child::before{
  content:none !important;
  display:none !important;
}

/* Keep only the intended vertical journey line */
.page-experience .steps::before{
  display:block !important;
}

/* Smartphone line-break refinement */
@media (max-width:760px){
  main{
    --mobile-reading-width: 31rem;
  }

  main .container,
  main .section-inner,
  main .narrow{
    margin-left:auto;
    margin-right:auto;
  }

  main h1{
    max-width: 12em;
    margin-left:auto;
    margin-right:auto;
    line-height:1.42;
  }

  main h2,
  main .section-title{
    max-width: 14em;
    margin-left:auto;
    margin-right:auto;
    line-height:1.52;
  }

  main h3{
    max-width: 16em;
    margin-left:auto;
    margin-right:auto;
    line-height:1.55;
  }

  main p,
  main li,
  main .lead,
  main .muted,
  main .note{
    max-width:min(100%, var(--mobile-reading-width));
    margin-left:auto;
    margin-right:auto;
  }

  /* Japanese body copy should feel centered on brand/editorial pages,
     except practical forms and deliberately left-aligned step descriptions */
  .page-home main p,
  .page-about main p,
  .page-session main p,
  .page-practitioner main p,
  .page-qualification main p,
  .page-books main p,
  .page-faq main p{
    text-align:center;
  }

  .page-experience .step h3,
  .page-experience .step p,
  .form-card label,
  .form-card input,
  .form-card textarea,
  form p,
  form label{
    text-align:left !important;
  }

  /* Prevent buttons from becoming cramped with Japanese text */
  .btn,
  .button,
  button,
  input[type="submit"]{
    line-height:1.55;
    min-height:54px;
    white-space:normal;
  }

  /* Lists: keep readable indentation */
  main ul,
  main ol{
    padding-left:1.3em;
    padding-right:.2em;
  }

  /* Keep cards from feeling cramped */
  .card,
  .panel,
  .info-card,
  .feature-card,
  .form-card,
  .price-box{
    padding-left:clamp(22px,6vw,34px);
    padding-right:clamp(22px,6vw,34px);
  }
}

/* Tablet / desktop: preserve generous editorial measure */
@media (min-width:761px){
  main h1{
    max-width: 18em;
  }

  main h2,
  main .section-title{
    max-width: 22em;
  }

  main p{
    line-height:2.05;
  }
}

/* Very wide desktop: prevent excessive line lengths */
@media (min-width:1400px){
  main .container,
  main .section-inner{
    max-width:1180px;
  }
}


/* =========================================================
   v24 — explicit responsive line breaks
   ========================================================= */
.mobile-copy{display:none}
.desktop-copy{display:inline}

@media (max-width:760px){
  .desktop-copy{display:none !important}
  .mobile-copy{display:inline !important}
}

@media (min-width:761px){
  .desktop-copy{display:inline !important}
  .mobile-copy{display:none !important}
}


/* =========================================================
   v25 — mobile Japanese heading overflow fix
   Prevent long Japanese headings from extending beyond viewport.
   ========================================================= */

@media (max-width:760px){
  h1, h2, h3, h4,
  main h1, main h2, main h3, main h4,
  .section-title{
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    line-break: strict !important;
    max-width: 100% !important;
  }

  html,
  body{
    max-width:100%;
    overflow-x:clip;
  }
}

/* Keep manual responsive break helpers */
.sp-only{display:none;}
.pc-only{display:block;}

@media (max-width:760px){
  .sp-only{display:block;}
  .pc-only{display:none;}
}

/* v26 manual break helpers */
.sp-only{display:none;}
.pc-only{display:block;}
@media (max-width:760px){
  .sp-only{display:block;}
  .pc-only{display:none;}
}

/* v27 course outline */
.course-outline{
  display:grid;
  grid-template-columns:9em 1fr;
  gap:0;
  margin:28px 0;
  border-top:1px solid rgba(184,151,78,.18);
}
.course-outline dt,
.course-outline dd{
  margin:0;
  padding:16px 0;
  border-bottom:1px solid rgba(184,151,78,.14);
  line-height:1.8;
}
.course-outline dt{font-weight:600;color:#75633f;padding-right:18px}
@media(max-width:760px){
  .course-outline{grid-template-columns:1fr}
  .course-outline dt{padding-bottom:4px;border-bottom:0}
  .course-outline dd{padding-top:0}
}

/* =========================================================
   v28 — PC centering and medium-width header correction
   Copy and established spacing are unchanged.
   ========================================================= */
html,body{overflow-x:hidden}

.hero-inner{
  width:min(calc(100% - 52px),var(--max));
  margin-inline:auto;
}
.hero-inner>h1,
.hero-inner>.sub,
.hero-inner>p{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.hero-inner>p:not(.sub){max-width:920px}

.page-about .page-hero h1,
.page-about .page-hero p{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.page-about main>section>.narrow{
  margin-left:auto;
  margin-right:auto;
}

@media (min-width:851px) and (max-width:1240px){
  .nav{padding-left:20px;padding-right:20px}
  .brand{font-size:21px;letter-spacing:.10em;flex:0 0 auto}
  .nav-links{gap:12px;min-width:0}
  .nav-links a{font-size:12px;letter-spacing:.025em;white-space:nowrap}
  .cta-small{padding-left:12px;padding-right:12px}
}

@media(max-width:850px){
  .hero-inner{width:min(calc(100% - 34px),760px)}
}
