/* Source: Figma enrich_OGP, 2937:1043. User-selected swatch AD5C4A takes precedence over the pale OGP interpretation. */
:root{
 --brand-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 .502 0 0 0 0 .357 0 0 0 0 .302 4 0 0 0 -1.5'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='.18'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)'/%3E%3C/svg%3E");
 --brand-material:var(--brand-grain) 0 0/125px,linear-gradient(var(--c-primary),var(--c-primary));
 --grad-btn-rose:var(--brand-grain) 0 0/115px,linear-gradient(125deg,var(--c-cta-from),var(--c-cta-mid) 60%,var(--c-cta-to));
}
.more,.btn--primary,.float .r{background:var(--grad-btn-rose);color:var(--c-cta-text)}
.more:hover,.more:focus-visible,.btn--primary:hover,.btn--primary:focus-visible,.ft .btn--primary:hover{color:var(--c-cta-text);filter:brightness(.97)}
.more:focus-visible,.btn--primary:focus-visible{outline:2px solid var(--c-cta-text);outline-offset:5px}
.fv__scrim{background:var(--brand-material)}
.fv__foot{background:linear-gradient(0deg,#ad5c4a 0%,#ad5c4a00 24%)}
.fv__vt,.fv__txt,.fv__lead,.fv__meta{color:#fff}
.fv__meta span+span::before{background:#fff}

.concerns{background:var(--brand-material);color:#fff}
.concerns::before{background:linear-gradient(180deg,#ad5c4a,transparent)}
.concerns__list li{border-color:#ffffff55}.concerns__list li:nth-child(-n+2){border-color:#ffffff55}
/* キャンペーン枠（2026-09-30作り直し）。名前は左上に1行、期限は小さくかっこ付き、特典は1行で右端そろえ、予約は白いボタン。
   クリック先は予約システム。名前と期限はCMSの値なので、文字数が増えても折り返して収まる組み方にしている。 */
.fv__promo .promo.pd{display:block;box-sizing:border-box;min-width:0;padding:14px 16px;border-radius:4px;color:#fff;text-decoration:none;background:var(--brand-grain),linear-gradient(125deg,rgba(131,69,58,.86),rgba(121,64,52,.82));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);font-family:"Zen Kaku Gothic New",sans-serif;font-feature-settings:"palt";line-height:1.5;text-align:left}
.fv__promo .promo.pd:focus-visible{outline:2px solid #fff;outline-offset:2px}
.pd-head{display:block}
.pd-title{display:block;font-size:19px;font-weight:700;line-height:1.35;letter-spacing:-.01em;text-wrap:balance}
.pd-limit{display:block;margin:3px 0 0 -.5em;font-size:12px;font-weight:500;line-height:1.4;letter-spacing:.06em;color:#F8E9E3}
.pd-limit::before{content:"（"}
.pd-limit::after{content:"）"}
.pd-limit:empty{display:none}
.pd-offer{display:block;margin-top:11px;padding-top:10px;border-top:1px solid rgba(255,255,255,.28)}
.pd-lead{display:block;font-size:13px;font-weight:500;line-height:1.4;letter-spacing:.05em}
.pd-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin-top:-5px}
.pd-item{font-size:13px;font-weight:500;letter-spacing:.05em;line-height:1.5}
.pd-price{display:inline-flex;align-items:baseline;gap:8px;margin-left:auto}
.pd-was{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:currentColor;color:#F8E9E3;line-height:1}
.pd-num{font-family:var(--ff-label);font-size:15px;font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums}
.pd-yen{font-size:13px;font-weight:500;margin-left:1px}
.pd-arw{display:inline-flex;width:14px;height:14px}
.pd-arw svg{width:100%;height:100%}
.pd-free{font-size:26px;font-weight:700;line-height:1.1;letter-spacing:0}
.pd-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:11px 14px 11px 16px;background:#fff;color:#794034;border-radius:4px;font-size:14px;font-weight:700;line-height:1.3;letter-spacing:.02em}
.pd-cta svg{width:16px;height:16px;flex:none;transition:transform .25s ease}
.pd-cta svg path{stroke-width:1.6}
.fv__promo .promo.pd:hover .pd-cta svg{transform:translateX(3px)}
@media (max-width:767px){.fv__promo .promo.pd{background:var(--brand-grain),linear-gradient(125deg,#83453A,#794034);-webkit-backdrop-filter:none;backdrop-filter:none;padding:16px 18px}}
.invitation-symbol{background:var(--brand-material)}
@media(max-width:767px){
 .fv__scrim{background:var(--brand-material);mask-image:linear-gradient(0deg,#000 0%,#000 57%,transparent 75%),linear-gradient(90deg,#000 0%,#000 27%,transparent 67%);-webkit-mask-image:linear-gradient(0deg,#000 0%,#000 57%,transparent 75%),linear-gradient(90deg,#000 0%,#000 27%,transparent 67%);mask-composite:add;-webkit-mask-composite:source-over}
}

/* The finder entry uses the same selected accent; its photo stays untreated. */
.program-home .finder-banner{background:var(--brand-material)!important;color:#fff}
.program-home .finder-banner .sh__k,.program-home .finder-banner p{color:#fff}
.program-home .finder-banner__copy::before{content:none}
.finder-banner:focus-visible{outline-color:var(--c-primary-text)}

/* Global approved pigment, 2026-09-12. Text surfaces retain the tint scale. */
.surface-rose,.surface-shade{background:var(--brand-material)}
.surface-airy{background:var(--c-brand-tint12)}
.lower-page .lower-hero{background:var(--brand-material);color:#fff}
.lower-page .lower-hero h1,.lower-page .lower-hero p,.lower-page .lower-hero .sh__k{color:#fff}
.lower-hero__art i{background:var(--c-primary-text)}
.lower-hero__art i::after{background:var(--brand-grain);mix-blend-mode:multiply;filter:none}
.lower-page .news-filter button[aria-pressed=true],
.finder-progress li[aria-current=step]::before{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.lower-page .req{background:var(--c-primary);color:#fff}
input[type=checkbox],input[type=radio]{accent-color:var(--c-primary)}
.more:focus-visible,.btn--primary:focus-visible{outline-color:var(--c-primary-text)}
.lower-page .lower-hero a:focus-visible{outline-color:#fff}

/* TOP material correction: retain AD5C4A, restore a visible irregular grain. */
:root{
 --brand-grain-bold:url("data:image/svg+xml,%3Csvg xmlns='http%3A//www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='bold' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 -1.5' result='dots'/%3E%3CfeFlood flood-color='%23805B4D' flood-opacity='.85'/%3E%3CfeComposite in2='dots' operator='in'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23bold%29'/%3E%3C/svg%3E");
}
.fv__scrim{background:var(--brand-grain-bold) 0 0/90px,radial-gradient(ellipse at 12% 12%,#ad5c4a 15%,#a45544 80%,#ad5c4a)}
.program-home .finder-banner{background:linear-gradient(140deg,#9f5140 0%,#ad5c4a 67%,#a75846)!important}
.program-home .finder-banner__copy::before{content:"";background:var(--brand-grain-bold) 0 0/80px;filter:none;mix-blend-mode:normal;opacity:1;mask-image:radial-gradient(ellipse 120% 150% at -15% -30%,transparent 22%,#000 70%)}
@media(min-width:768px){.fv__word{bottom:0;transform:translateY(27.1%)}}

@media(min-width:1024px) and (max-height:900px){.fv__txt{top:44%}}

/* Desktop hero: reveal the photographs and keep solid lettering below the copy. */
@media(min-width:768px){
 .fv__scrim{
  -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.40) 9%,rgba(0,0,0,.16) 22%,transparent 42%),linear-gradient(0deg,rgba(0,0,0,.72),rgba(0,0,0,.35) 9%,transparent 25%);
  mask-image:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.40) 9%,rgba(0,0,0,.16) 22%,transparent 42%),linear-gradient(0deg,rgba(0,0,0,.72),rgba(0,0,0,.35) 9%,transparent 25%);
  -webkit-mask-composite:source-over;mask-composite:add;
 }
 .fv__foot{background:linear-gradient(90deg,rgba(24,18,15,.45),rgba(24,18,15,.38) 15%,rgba(24,18,15,.18) 29%,transparent 43%),linear-gradient(0deg,rgba(29,22,18,.22),transparent 30%)}
 .fv__word{-webkit-mask-image:none;mask-image:none;width:min(78%,110svh)}
 .fv__vt{top:17%;text-shadow:0 3px 24px rgba(28,20,16,.24)}
 .fv__txt{top:52%;text-shadow:0 3px 24px rgba(28,20,16,.28)}
 .fv__meta{margin-top:24px}
}

/* September finish: controlled palette variation, clear internal actions, and the store arrival. */
:root{--program-rose:#e7cbc5;--program-peach:#efdece;--program-red:#e5c4c2}
.program-home .program-card:nth-child(1),.lower-page .tone-1{background:var(--program-rose)}
.program-home .program-card:nth-child(2),.lower-page .tone-0{background:var(--program-peach)}
.program-home .program-card:nth-child(3),.lower-page .tone-2{background:var(--program-red)}
.program-card__tag{background:var(--program-rose)}
.final-invitation h2{font-size:var(--fs-h2);line-height:1.6}
.program-home .finder-banner__link{display:inline-flex;max-width:100%;min-height:48px;justify-content:space-between;padding:13px 18px;gap:24px;border-radius:4px;background:#fff;color:var(--c-primary-text);line-height:1.6}
.program-home .finder-banner__link>span{width:18px;height:18px;flex:none}
.more:hover .more__arrow,.more:focus-visible .more__arrow,.finder-banner:hover .finder-banner__link>span,.program-card__foot:hover .program-card__arrow::after,.program-card:focus-within .program-card__arrow::after,.program-directory__card:hover .directory-arrow,.news-list a:hover .directory-arrow{transform:translateX(3px)}
.interlude-curve{color:var(--c-primary)}
.access-home.sec{padding:0 0 100px;background:var(--c-bg)}
.access-home__visual.photo-slot{width:100%;height:clamp(360px,40vw,640px);aspect-ratio:auto;margin:0;overflow:hidden;border-radius:0}
.access-home__visual img{width:100%;height:100%;object-fit:cover;object-position:50% 48%}
.access-home__panel{position:relative;z-index:1;width:92%;max-width:1440px;margin:-76px 0 0 auto;padding:56px clamp(32px,6vw,96px) 0;background:var(--c-bg);border-radius:4px 0 0 0}
.access-home .access2{gap:clamp(32px,5vw,70px)}
.access-home .access2 iframe{height:100%;min-height:420px}
@media(min-width:768px) and (max-width:1023px){.access-home__panel{width:94%;padding:40px 36px 0}.access-home .access2 iframe{height:340px;min-height:340px}}
@media(max-width:767px){
 .access-home.sec{padding-block:0 66px}
 .access-home__visual.photo-slot{height:auto;aspect-ratio:4/3}
 .access-home__panel{width:calc(100% - 22px);margin-top:-28px;padding:30px 22px 0 23px}
 .access-home .access2{gap:28px}
 .access-home .access2 iframe{height:270px;min-height:270px;max-height:270px}
 .program-home .finder-banner__link{padding:12px 14px;gap:16px;min-height:46px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.more:hover .more__arrow,.finder-banner:hover .finder-banner__link>span,.program-directory__card:hover .directory-arrow,.news-list a:hover .directory-arrow{transform:none}}

/* Secondary type carries the brand hue; primary Japanese copy remains dark. */
.reasons .reason-count,.reasons .reason-label,.lower-page.lower-about .reason-story .sh__k{color:#945348;font-weight:400}
.program-card__en,.lower-page .program-directory__card .sh__k,.lower-page.lower-program .program-detail .sh__k{color:#7f463c;font-weight:400}
/* A quiet wordmark at the heading, separated from the photo transition below. */
.staff-home>.wrap{position:relative}
.staff-home>.wrap::before{content:"";position:absolute;top:0;right:var(--pad-x);width:clamp(160px,20vw,270px);aspect-ratio:2.768;background:var(--c-primary);opacity:.16;-webkit-mask:url('../assets/logo-type.png') center/contain no-repeat;mask:url('../assets/logo-type.png') center/contain no-repeat;pointer-events:none}
@media(max-width:767px){.staff-home>.wrap::before{width:120px;top:0;opacity:.18}}

/* Each price group explains which programs use its session length. */
.fee-programs{margin-top:22px;min-width:0}
.fee-programs__label{display:block;font-size:13px;line-height:1.6;font-weight:500;color:var(--c-primary-text);margin-bottom:8px;letter-spacing:.025em}
.fee-programs__list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}
.fee-programs__badge{display:block;max-width:100%;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:500;line-height:1.6;letter-spacing:0;white-space:nowrap;color:var(--c-primary-text);background:var(--program-rose)}
.fee-programs__badge[data-program="0"]{background:var(--program-peach)}
.fee-programs__badge[data-program="2"]{background:var(--program-red)}
@media(min-width:768px) and (max-width:1023px){.fee__c>.fee-programs{grid-column:1/-1;margin-top:0}}
@media(max-width:767px){.fee-mobile__group>.fee-programs{grid-column:1/-1;margin-top:15px}.fee-programs__label{margin-bottom:7px}.fee-programs__badge{padding:3px 9px}}
