
/* ============================================================
   BEAUTÉ — SUB PAGES  /  EDITORIAL LUXURY × PRIVATE TOKYO
   Shared stylesheet (inherits the TOP page design system)
   ============================================================ */
:root{
  --white:#FAF8F3; --ivory:#F2EDE4; --charcoal:#1B1A17; --black:#121110;
  --stone:#8B8578; --beige:#C8BEAE; --line:rgba(27,26,23,.18);
  --jp:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --en:"Cormorant Garamond",Georgia,serif;
  --ut:"Jost","Helvetica Neue",sans-serif;
  --sc:"Pinyon Script",cursive;
  --gutter:clamp(24px,6.4vw,40px);
  --ease:cubic-bezier(.22,.61,.21,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--white);color:var(--charcoal);
  font-family:var(--jp);font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;font-feature-settings:"palt";
}
img{
  display:block;width:100%;height:100%;object-fit:cover;
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none;
  -webkit-user-drag:none;user-drag:none;
  pointer-events:auto;
}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;}
main{display:block;}

/* ---------- type system (unified with TOP) ---------- */
.eyebrow{font-family:var(--ut);font-weight:400;font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--stone);}
.script-line{font-family:var(--sc);font-size:clamp(38px,10vw,56px);line-height:1.1;font-weight:400;color:var(--beige);margin:14px 0 10px;}
h1.head, h2.head{font-weight:600;font-size:clamp(26px,7.2vw,36px);line-height:1.3;letter-spacing:.08em;}
.prose{font-size:13.5px;line-height:2.3;letter-spacing:.12em;color:#3d3a34;max-width:34em;}
.prose + .prose{margin-top:26px;}
.jp-small{font-family:var(--jp);font-weight:500;font-size:11px;letter-spacing:.5em;color:var(--stone);}

/* Japanese-only section heading (do not reuse the English .statement class for JP copy) */
.ja-head{
  font-family:var(--jp);font-weight:600;
  font-size:clamp(26px,7vw,34px);
  letter-spacing:.07em;line-height:1.35;
  color:var(--charcoal);
}

/* ---------- editorial CTA ---------- */
.cta{
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--ut);font-weight:400;font-size:11px;
  letter-spacing:.34em;text-transform:uppercase;
  padding-bottom:10px;position:relative;
}
.cta::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;opacity:.45;transform-origin:left;transition:transform .8s var(--ease);}
.cta:hover::after{transform:scaleX(.55);}
.cta .a{display:inline-block;width:26px;height:1px;background:currentColor;opacity:.7;position:relative;}
.cta .a::after{content:"";position:absolute;right:0;top:-2.5px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg) scale(.7);}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity 1.4s var(--ease),transform 1.4s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.15s;}.reveal.d2{transition-delay:.3s;}.reveal.d3{transition-delay:.45s;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

/* ---------- responsive line breaks — mobile-first base, PC override ---------- */
.br-sp{display:inline;}
.br-pc{display:none;}
@media (min-width:760px){
  .br-sp{display:none;}
  .br-pc{display:inline;}
}

/* ---------- header ---------- */
header{
  position:fixed;inset:0 0 auto 0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(env(safe-area-inset-top) + 16px) var(--gutter) 14px;
  color:var(--charcoal);
  background:rgba(250,248,243,.86);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.brand{display:flex;align-items:baseline;gap:10px;line-height:1;}
.brand .b{font-family:var(--en);font-weight:500;font-size:21px;letter-spacing:.04em;}
.brand .t{font-family:var(--ut);font-weight:400;font-size:8.5px;letter-spacing:.5em;transform:translateY(-1px);}
.menu-btn{display:flex;flex-direction:column;gap:6px;padding:10px 0 10px 20px;}
.menu-btn span{display:block;width:26px;height:1px;background:currentColor;transition:transform .5s var(--ease), opacity .4s;}
body.menu-open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(20deg);}
body.menu-open .menu-btn span:nth-child(2){opacity:0;}
body.menu-open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-20deg);}
body.menu-open header{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;}

/* ---------- menu overlay ---------- */
.overlay{
  position:fixed;inset:0;z-index:50;background:var(--white);
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:calc(env(safe-area-inset-top) + 96px) var(--gutter) 60px;
  opacity:0;visibility:hidden;transition:opacity .7s var(--ease),visibility .7s;
}
body.menu-open .overlay{opacity:1;visibility:visible;}
body.menu-open{overflow:hidden;}
.menu-inner{max-width:640px;margin:0 auto;opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease) .15s,transform .9s var(--ease) .15s;}
body.menu-open .menu-inner{opacity:1;transform:none;}
.menu-main{display:flex;flex-direction:column;gap:24px;}
.menu-main > a,.menu-main .group > a{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;font-family:var(--jp);font-weight:500;letter-spacing:.14em;}
.menu-main em{font-family:var(--en);font-style:normal;font-weight:500;font-size:22px;letter-spacing:.02em;white-space:nowrap;}
.menu-main small{font-family:var(--jp);font-weight:500;font-size:10px;letter-spacing:.34em;color:var(--stone);}
.menu-main .subs{list-style:none;margin:16px 0 10px 4px;padding:4px 0 4px 18px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:15px;}
.menu-main .subs a{display:flex;align-items:baseline;gap:12px;font-family:var(--ut);font-weight:400;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:#55514a;}
.menu-main .subs small{font-family:var(--jp);font-weight:500;font-size:9px;letter-spacing:.22em;text-transform:none;color:var(--stone);}
.menu-foot{margin-top:44px;padding-top:28px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:15px;}
.menu-foot a{font-family:var(--ut);font-weight:300;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--stone);display:flex;align-items:baseline;gap:12px;}
.menu-foot small{font-family:var(--jp);font-weight:500;font-size:8.5px;letter-spacing:.2em;text-transform:none;color:var(--beige);}
.menu-foot .lang{color:var(--charcoal);}
.menu-foot a.util-gap{margin-top:18px;}
.menu-foot a.current{color:var(--charcoal);}
.menu-foot a.current small{color:var(--stone);}
.menu-foot a.bd-menu-recruit{color:var(--charcoal);}
.menu-foot a.bd-menu-recruit small{color:var(--stone);}

/* ============================================================
   PAGE LAYERS
   ============================================================ */
.gut{padding-left:var(--gutter);padding-right:var(--gutter);}
.frame{max-width:640px;margin:0 auto;}

/* --- 1. Hero (photo) --- */
.page-hero{position:relative;color:var(--white);height:78svh;min-height:540px;overflow:hidden;background:var(--charcoal);}
.page-hero img{filter:grayscale(1) contrast(.99);}
.page-hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,17,16,.28),rgba(18,17,16,.05) 40%,rgba(18,17,16,.5));}
.page-hero .cap{position:absolute;inset:auto 0 0 0;padding:0 var(--gutter) clamp(56px,12vw,90px);}
.page-hero .cap .inner{max-width:640px;margin:0 auto;}
.page-hero h1.head{color:var(--white);text-shadow:0 1px 24px rgba(18,17,16,.3);}
.page-hero .eyebrow{color:rgba(250,248,243,.75);display:block;margin-bottom:10px;}
.page-hero .script-line{color:rgba(250,248,243,.9);}
/* light-photo variant: dark type */
.page-hero.light{color:var(--charcoal);}
.page-hero.light .veil{background:rgba(250,248,243,.5);}
.page-hero.light h1.head{color:var(--black);text-shadow:none;}
.page-hero.light .eyebrow{color:#55514a;}
.page-hero.light .script-line{color:var(--charcoal);}
/* text-only hero */
.page-hero.plain{background:var(--white);color:var(--charcoal);height:auto;min-height:0;padding:calc(env(safe-area-inset-top) + 140px) var(--gutter) clamp(64px,14vw,100px);}
.page-hero.plain h1.head{color:var(--charcoal);text-shadow:none;}
.page-hero.plain .eyebrow{color:var(--stone);}
.page-hero.plain .script-line{color:var(--beige);}

/* --- 2-4. sections --- */
.layer{padding:clamp(88px,20vw,140px) var(--gutter);}
.layer.tint{background:var(--ivory);}
.layer .head{margin-bottom:40px;}
.rule{width:56px;height:1px;background:var(--charcoal);opacity:.4;margin:44px 0;}
.center{text-align:center;}
.center .rule{margin-left:auto;margin-right:auto;}
.center .prose{margin-left:auto;margin-right:auto;}

/* values (About) */
.values{display:flex;flex-wrap:wrap;gap:22px 34px;justify-content:center;max-width:520px;margin:0 auto;}
.values span{font-weight:500;font-size:15px;letter-spacing:.4em;text-indent:.4em;color:#3d3a34;}

/* portraits (Ladies) */
.portraits{display:flex;flex-direction:column;gap:clamp(56px,12vw,90px);}
.portraits figure{width:86%;}
.portraits figure:nth-child(even){margin-left:auto;}
.portraits .ph{aspect-ratio:3/4;overflow:hidden;background:var(--charcoal);display:block;}
.portraits img{filter:grayscale(1) contrast(.99);}
.portraits figcaption{margin-top:12px;font-family:var(--ut);font-weight:300;font-size:8.5px;letter-spacing:.4em;text-transform:uppercase;color:var(--stone);}
.portraits figure:nth-child(even) figcaption{text-align:right;}

/* steps (Private Selection) */
.steps{display:flex;flex-direction:column;}
.step{padding:34px 0;border-top:1px solid var(--line);}
.step:last-child{border-bottom:1px solid var(--line);}
.step .no{font-family:var(--en);font-weight:500;font-size:13px;letter-spacing:.2em;color:var(--stone);display:block;margin-bottom:10px;}
.step h3{font-weight:600;font-size:16.5px;letter-spacing:.14em;margin-bottom:12px;}
.step p{font-size:13px;line-height:2.4;letter-spacing:.1em;color:#3d3a34;}

/* pricing / definition rows (Information, Membership) */
.rows{border-top:1px solid var(--line);}
.row{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:26px 2px;border-bottom:1px solid var(--line);}
.row .k{font-weight:600;font-size:14.5px;letter-spacing:.16em;}
.row .k small{display:block;font-family:var(--ut);font-weight:300;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--stone);margin-top:6px;}
.row .v{font-family:var(--ut);font-weight:400;font-size:17px;letter-spacing:.05em;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums;}
.row .v small{font-family:var(--jp);font-weight:500;font-size:10px;letter-spacing:.14em;color:var(--stone);margin-left:8px;}

/* faq */
.faq{border-top:1px solid var(--line);}
.qa{padding:30px 2px;border-bottom:1px solid var(--line);}
.qa h3{font-weight:600;font-size:14.5px;line-height:2;letter-spacing:.12em;margin-bottom:12px;}
.qa h3::before{content:"Q";font-family:var(--en);font-weight:500;margin-right:14px;color:var(--stone);}
.qa p{font-size:13px;line-height:2.4;letter-spacing:.1em;color:#3d3a34;}

/* contact routes */
.routes{border-top:1px solid var(--line);}
.routes a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:30px 2px;border-bottom:1px solid var(--line);font-weight:500;font-size:15px;letter-spacing:.18em;}
.routes small{font-family:var(--ut);font-size:8.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--stone);}

/* placeholder marker（仮置き情報の明示） */
.tbd{
  display:inline-block;margin-left:10px;transform:translateY(-1px);
  font-family:var(--jp);font-weight:500;font-size:9px;letter-spacing:.2em;
  color:var(--stone);border:1px solid var(--line);padding:3px 8px;
}
.tbd-note{margin-top:22px;font-size:11px;letter-spacing:.12em;line-height:2.2;color:var(--stone);}

/* --- 5. next action --- */
.next{padding:clamp(96px,22vw,150px) var(--gutter);text-align:center;background:var(--white);}
.next .lead{font-weight:500;font-size:14px;line-height:2.2;letter-spacing:.16em;color:#3d3a34;margin-bottom:44px;}
.next .cta{color:var(--charcoal);}
.next .cta + .cta{margin-left:36px;}

footer{padding:0 var(--gutter) calc(env(safe-area-inset-bottom) + 48px);text-align:center;background:var(--white);}
footer small{font-family:var(--ut);font-weight:300;font-size:8.5px;letter-spacing:.4em;color:var(--beige);}

/* ---------- desktop ---------- */
@media (min-width:760px){
  .layer, .next{padding-left:calc((100vw - 640px)/2);padding-right:calc((100vw - 640px)/2);}
  .page-hero{height:82vh;}
  .portraits{flex-direction:row;flex-wrap:wrap;gap:40px;}
  .portraits figure{width:calc(50% - 20px);margin:0 !important;}
  .portraits figure:nth-child(even){transform:translateY(56px);}
  .next .ctas{display:inline-flex;gap:48px;}
  .next .cta + .cta{margin-left:0;}
}
@media (max-width:759px){
  .next .cta{display:inline-flex;}
  .next .cta + .cta{margin-left:0;margin-top:26px;}
  .next .ctas{display:flex;flex-direction:column;align-items:center;}
  .row{flex-wrap:wrap;}
}

/* full-width photo band (with annotated placeholder state) */
.photo-band{position:relative;overflow:hidden;background:var(--charcoal);aspect-ratio:4/5;max-height:80svh;max-width:1000px;margin:clamp(40px,8vw,64px) auto;}
.photo-band img{filter:grayscale(1) contrast(.99);}
.photo-band .note{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:40px;font-family:var(--ut);font-size:9px;letter-spacing:.3em;line-height:2.4;
  text-transform:uppercase;color:rgba(250,248,243,.55);
  background:linear-gradient(160deg,#242320 0%,#17161a 55%,#101012 100%);
}
.en-italic{
  font-family:var(--en);font-style:italic;font-weight:400;
  font-size:clamp(24px,6.4vw,32px);letter-spacing:.1em;line-height:1.15;color:var(--charcoal);
}
.tag-line{
  font-family:var(--en);font-style:italic;font-weight:400;
  font-size:12px;letter-spacing:.22em;line-height:1.6;color:var(--stone);
}
.brand-line{
  font-family:var(--en);font-style:normal;font-weight:500;
  font-size:clamp(30px,8vw,58px);letter-spacing:.03em;line-height:1.14;
  color:var(--charcoal);
}
.closing{
  font-weight:600;font-size:clamp(18px,5vw,23px);line-height:2;letter-spacing:.14em;
}
@media (min-width:760px){.photo-band{aspect-ratio:16/9;max-height:70vh;}}

/* silhouette profiles (The Ladies) — unified light, quiet slide on mobile */
.profiles{
  display:flex;gap:20px;
  overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding-right:var(--gutter);
}
.profiles::-webkit-scrollbar{display:none;}
.profile{flex:0 0 76%;scroll-snap-align:start;}
.profile .ph{
  display:block;aspect-ratio:3/4;overflow:hidden;position:relative;
  background:#141312;
}
.profile .ph img{
  filter:grayscale(1) brightness(.6) contrast(1.12);
}
.profile .ph::after{ /* unified dusk veil — hair, outline, posture remain */
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(18,17,16,.15), rgba(18,17,16,.42));
}
.profile .meta{padding:18px 2px 0;border-top:1px solid var(--line);margin-top:16px;}
.profile .no{font-family:var(--en);font-weight:500;font-size:15px;letter-spacing:.18em;}
.profile .attrs{margin-top:8px;font-family:var(--jp);font-weight:500;font-size:10.5px;letter-spacing:.24em;color:var(--stone);}
.profile .intro{margin-top:14px;font-size:12px;line-height:2.2;letter-spacing:.1em;color:#3d3a34;}
@media (min-width:760px){
  .profiles{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;overflow:visible;padding-right:0;}
  .profile{flex:none;}
}

/* quiet two-flow comparison (Private Selection) */
.compare{display:flex;flex-direction:column;gap:64px;}
.flow .label{display:block;margin-bottom:30px;}
.flow ol{list-style:none;display:flex;flex-direction:column;gap:20px;}
.flow li{font-weight:500;font-size:13.5px;letter-spacing:.14em;line-height:2;}
.flow li::before{content:"";display:inline-block;width:18px;height:1px;background:currentColor;opacity:.4;margin-right:14px;transform:translateY(-4px);}
.flow.general{color:var(--stone);}
.flow.beaute{color:var(--charcoal);}
.flow.beaute li{font-weight:600;}
@media (min-width:760px){
  .compare{flex-direction:row;gap:0;}
  .flow{flex:1;}
  .flow.general{padding-right:48px;}
  .flow.beaute{padding-left:48px;border-left:1px solid var(--line);}
}
.hero-lead{
  font-weight:500;font-size:clamp(13px,3.6vw,15px);line-height:2.3;letter-spacing:.14em;
  color:rgba(250,248,243,.9);margin-bottom:26px;
}

/* in-page navigation (Information) */
.page-nav{padding:30px var(--gutter) 26px;border-bottom:1px solid var(--line);background:var(--white);}
.page-nav ul{list-style:none;max-width:760px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:22px 18px;}
.page-nav a{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  font-family:var(--ut);font-weight:400;font-size:10.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--charcoal);white-space:nowrap;
}
.page-nav small{font-family:var(--jp);font-weight:500;font-size:9px;letter-spacing:.16em;color:var(--stone);white-space:nowrap;}
@media (min-width:760px){
  .page-nav ul{display:flex;justify-content:center;gap:44px;}
  .page-nav a{flex-direction:row;align-items:baseline;gap:10px;font-size:11px;letter-spacing:.26em;}
  .page-nav small{letter-spacing:.2em;}
}

/* pricing classes — three equal blocks */
.pricing{display:flex;flex-direction:column;gap:56px;}
.pclass .pname{font-family:var(--en);font-weight:500;font-size:24px;letter-spacing:.1em;margin-bottom:16px;line-height:1;}
.pclass .pname small{
  display:block;margin-top:7px;
  font-family:var(--jp);font-weight:500;font-size:9px;
  letter-spacing:.32em;color:var(--beige);
}
.pclass .prow{display:flex;align-items:baseline;justify-content:space-between;padding:16px 2px;border-bottom:1px solid var(--line);}
.pclass .prow:first-of-type{border-top:1px solid var(--line);}
.pclass .d{font-weight:500;font-size:13px;letter-spacing:.2em;white-space:nowrap;}
.pclass .p{font-family:var(--ut);font-weight:400;font-size:16.5px;letter-spacing:.05em;font-variant-numeric:lining-nums tabular-nums;}
.pclass .p small{font-family:var(--jp);font-weight:500;font-size:11px;color:var(--stone);margin-left:4px;}
@media (min-width:760px){
  .pricing{flex-direction:row;gap:44px;}
  .pclass{flex:1;}
}

/* FAQ accordion (native details) */
.acc{border-top:1px solid var(--line);}
.acc details{border-bottom:1px solid var(--line);}
.acc summary{
  list-style:none;cursor:pointer;padding:26px 34px 26px 2px;position:relative;
  font-weight:600;font-size:14px;line-height:1.9;letter-spacing:.12em;
}
.acc summary::-webkit-details-marker{display:none;}
.acc summary::before{content:"Q";font-family:var(--en);font-weight:500;margin-right:14px;color:var(--stone);}
.acc summary::after{
  content:"";position:absolute;right:8px;top:50%;width:9px;height:9px;
  border-right:1px solid var(--charcoal);border-bottom:1px solid var(--charcoal);
  transform:translateY(-70%) rotate(45deg);transition:transform .5s var(--ease);opacity:.6;
}
.acc details[open] summary::after{transform:translateY(-30%) rotate(-135deg);}
.acc .ans{padding:0 2px 30px;font-size:13px;line-height:2.4;letter-spacing:.1em;color:#3d3a34;}
.photo-band.small{aspect-ratio:16/9;max-height:44svh;}

/* quiet bullet list (Reservation) */
.quiet-list{list-style:none;margin:8px 0 0;display:flex;flex-direction:column;gap:14px;}
.quiet-list li{font-weight:500;font-size:13.5px;letter-spacing:.14em;line-height:2;color:#3d3a34;}
.quiet-list li::before{content:"";display:inline-block;width:18px;height:1px;background:currentColor;opacity:.4;margin-right:14px;transform:translateY(-4px);}

/* contact methods — thin rules, no cards */
.methods{border-top:1px solid var(--line);}
.method{padding:40px 2px;border-bottom:1px solid var(--line);}
.method .tag{font-family:var(--ut);font-weight:400;font-size:9px;letter-spacing:.4em;text-transform:uppercase;color:var(--stone);display:block;margin-bottom:14px;}
.method h3{font-weight:600;font-size:16px;letter-spacing:.16em;margin-bottom:14px;}
.method p{font-size:13px;line-height:2.4;letter-spacing:.1em;color:#3d3a34;}
.method .cta{margin-top:24px;color:var(--charcoal);}
.cta.is-disabled{opacity:.4;pointer-events:none;}
.method .hours{margin-top:14px;font-family:var(--jp);font-weight:500;font-size:11px;letter-spacing:.2em;color:var(--stone);}

/* private form — editorial inputs */
.pform{border-top:1px solid var(--line);padding-top:8px;}
.pform .field{padding:24px 0;border-bottom:1px solid var(--line);}
.pform label{display:flex;align-items:baseline;gap:12px;font-weight:600;font-size:12.5px;letter-spacing:.16em;margin-bottom:14px;}
.pform label .req{font-family:var(--ut);font-size:8px;letter-spacing:.26em;text-transform:uppercase;color:#8a5a4a;border:1px solid rgba(138,90,74,.4);padding:2px 7px;}
.pform label .opt{font-family:var(--ut);font-size:8px;letter-spacing:.26em;text-transform:uppercase;color:var(--stone);border:1px solid var(--line);padding:2px 7px;}
.pform input,.pform select,.pform textarea{
  width:100%;border:0;background:transparent;outline:none;
  font-family:var(--jp);font-weight:500;font-size:14px;letter-spacing:.08em;color:var(--charcoal);
  padding:6px 0;
}
.pform textarea{min-height:96px;resize:vertical;line-height:2;}
.pform ::placeholder{color:var(--beige);}
.pform .submit{margin-top:44px;text-align:center;}
.pform button.cta{border:1px solid var(--line);padding:16px 40px;letter-spacing:.34em;text-indent:.34em;}
.pform button.cta::after{display:none;}
.confirm-list{border-top:1px solid var(--line);}
.confirm-list .row{align-items:flex-start;}
.confirm-list .row .v{font-family:var(--jp);font-size:13px;letter-spacing:.1em;white-space:normal;text-align:right;max-width:60%;}
.done{text-align:center;padding:40px 0;}
.done p{font-weight:500;font-size:14px;line-height:2.6;letter-spacing:.16em;color:#3d3a34;}

/* SELECTED LADIES — editorial gallery (horizontal, magazine page-turn) */
.gallery{
  display:flex;gap:18px;
  overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:0 var(--gutter) 8px;
}
.gallery::-webkit-scrollbar{display:none;}
.gslide{flex:0 0 84%;scroll-snap-align:center;}
.gslide .ph{display:block;aspect-ratio:3/4.2;overflow:hidden;background:var(--charcoal);position:relative;}
.gslide .ph img{filter:grayscale(1) contrast(.99);}
.gslide .folio{
  display:block;margin:16px 0 10px;
  font-family:var(--en);font-weight:500;font-size:13px;letter-spacing:.3em;color:var(--stone);
}
.gslide .attrs{margin-top:26px;font-family:var(--jp);font-weight:600;font-size:14.5px;letter-spacing:.2em;}
.gslide .intro{margin-top:12px;font-size:12px;line-height:2;letter-spacing:.1em;color:#3d3a34;}
/* last slide — private collection */
.gslide.last .ph::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(18,17,16,.5), rgba(18,17,16,.72));
}
.gslide.last .ph .pc{
  position:absolute;inset:0;z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:32px;color:var(--white);
}
.gslide.last .pc .t1{font-family:var(--en);font-weight:500;font-size:19px;letter-spacing:.34em;text-indent:.34em;}
.gslide.last .pc .t2{margin-top:16px;font-family:var(--en);font-style:italic;font-size:12px;letter-spacing:.14em;color:rgba(250,248,243,.8);}
.gslide.last .pc .t3{
  margin-top:26px;display:inline-block;
  font-family:var(--ut);font-weight:400;font-size:9px;letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;
  border:1px solid rgba(250,248,243,.55);padding:8px 12px 8px 16px;
}
.view-more{
  display:block;margin:52px auto 0;width:max-content;
  font-family:var(--ut);font-weight:400;font-size:11px;letter-spacing:.44em;text-indent:.44em;text-transform:uppercase;
  color:var(--charcoal);padding:16px 34px;border:1px solid var(--line);
  transition:opacity .5s;
}
.view-more:hover{opacity:.6;}
@media (min-width:760px){
  .gallery{padding-left:calc((100vw - 640px)/2);}
  .gslide{flex:0 0 min(58%, 480px);}
}

/* private collection overlay */
.pcol{
  position:fixed;inset:0;z-index:80;background:rgba(18,17,16,.96);
  display:flex;align-items:center;justify-content:center;text-align:center;
  padding:40px var(--gutter);color:var(--white);
  opacity:0;visibility:hidden;transition:opacity .8s var(--ease), visibility .8s;
}
body.pcol-open .pcol{opacity:1;visibility:visible;}
body.pcol-open{overflow:hidden;}
.pcol .inner{max-width:520px;}
.pcol .t1{font-family:var(--en);font-weight:500;font-size:clamp(20px,5.6vw,26px);letter-spacing:.34em;text-indent:.34em;}
.pcol .t2{margin-top:18px;font-family:var(--en);font-style:italic;font-size:13px;letter-spacing:.14em;color:rgba(250,248,243,.8);}
.pcol .jp{margin-top:44px;font-weight:500;font-size:13.5px;line-height:2.7;letter-spacing:.14em;color:rgba(250,248,243,.92);}
.pcol .jp + .jp{margin-top:26px;}
.pcol .mo{
  margin:48px auto 0;display:inline-block;
  font-family:var(--ut);font-weight:400;font-size:9px;letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;
  border:1px solid rgba(250,248,243,.55);padding:8px 12px 8px 16px;
}
.pcol .cta{margin-top:44px;color:var(--white);display:inline-flex;}
.pcol-close{
  position:absolute;top:calc(env(safe-area-inset-top) + 22px);right:var(--gutter);
  font-family:var(--ut);font-weight:300;font-size:10px;letter-spacing:.34em;text-transform:uppercase;
  color:rgba(250,248,243,.7);padding:10px;
}

/* big EN statement (Not Everything / The Right Encounter) */
.statement{
  font-family:var(--en);font-weight:500;
  font-size:clamp(28px,8vw,44px);line-height:1.12;letter-spacing:.1em;
  text-transform:uppercase;color:var(--charcoal);
}

/* gallery placeholder (photo direction shown until final editorial shots arrive) */
.gslide .ph .pnote{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:32px;font-family:var(--ut);font-size:9px;letter-spacing:.3em;line-height:2.4;
  text-transform:uppercase;color:rgba(250,248,243,.55);
  background:linear-gradient(160deg,#242320 0%,#17161a 55%,#101012 100%);
}

/* PRIVATE COLLECTION lockup as gallery CTA */
.pc-cta{display:block;margin:56px auto 0;text-align:center;transition:opacity .5s;}
.pc-cta:hover{opacity:.6;}
.pc-cta .t1{display:block;font-family:var(--en);font-weight:500;font-size:17px;letter-spacing:.34em;text-indent:.34em;color:var(--charcoal);}
.pc-cta .t2{display:block;margin-top:12px;font-family:var(--en);font-style:italic;font-size:12px;letter-spacing:.14em;color:var(--stone);}
.pc-cta .t3{
  display:inline-block;margin-top:20px;
  font-family:var(--ut);font-weight:400;font-size:9px;letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;
  border:1px solid rgba(27,26,23,.4);padding:8px 12px 8px 16px;color:var(--charcoal);
}

/* Editorial Cover Flow (PC): centered slide large, neighbours peeking */
.gallery-wrap{position:relative;}
.garrow{display:none;}
@media (min-width:760px){
  .gallery{
    padding-left:calc(50% - 210px);
    padding-right:calc(50% - 210px);
    scroll-snap-type:x proximity;   /* mandatory はPCのホイール/ドラッグ操作と干渉するため */
    cursor:grab;
    user-select:none;-webkit-user-select:none;
  }
  .gallery img{-webkit-user-drag:none;user-drag:none;pointer-events:none;}
  .gallery.dragging{cursor:grabbing;scroll-snap-type:none;}
  .gallery.dragging .gslide{pointer-events:none;}
  .gslide{flex:0 0 420px;scroll-snap-align:center;will-change:transform,opacity;}
  .garrow{
    display:block;position:absolute;top:42%;z-index:3;
    width:52px;height:52px;opacity:.55;transition:opacity .4s;
  }
  .garrow:hover{opacity:1;}
  .garrow::before{
    content:"";position:absolute;top:50%;left:50%;width:13px;height:13px;
    border-top:1px solid var(--charcoal);border-left:1px solid var(--charcoal);
  }
  .garrow.prev{left:calc(50% - 320px);}
  .garrow.next{right:calc(50% - 320px);}
  .garrow.prev::before{transform:translate(-30%,-50%) rotate(-45deg);}
  .garrow.next::before{transform:translate(-70%,-50%) rotate(135deg);}
}

/* PORTRAITS OF BEAUTÉ — private portraits: abstract editorial light fields */
.gslide .ph.abstract{position:relative;}
.gslide .ph.abstract::after{ /* film grain */
  content:"";position:absolute;inset:0;opacity:.35;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.16'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}
.gslide .ph.abstract.a1{ /* 薄いカーテン越しの朝光 */
  background:
    radial-gradient(120% 85% at 28% 6%, rgba(255,253,246,.95), rgba(255,253,246,0) 58%),
    linear-gradient(115deg, #F7F3EA 0%, #EFE7D8 46%, #E1D8C5 100%);
}
.gslide .ph.abstract.a2{ /* 夜の窓辺、遠い街の灯 */
  background:
    radial-gradient(70% 48% at 74% 86%, rgba(200,190,174,.22), rgba(200,190,174,0) 62%),
    radial-gradient(46% 30% at 22% 74%, rgba(160,150,132,.14), rgba(160,150,132,0) 60%),
    linear-gradient(165deg, #26251F 0%, #171613 58%, #100F0E 100%);
}
.gslide .ph.abstract.a3{ /* 上質なファブリックに落ちる光と影 */
  background:
    linear-gradient(52deg, rgba(255,252,244,0) 34%, rgba(255,252,244,.4) 50%, rgba(255,252,244,0) 66%),
    linear-gradient(135deg, #DDD5C5 0%, #C8BEAE 44%, #9A9282 100%);
}

/* private panels — small Beauté mark */
.gslide .ph.abstract .pmark{
  position:absolute;inset:0;z-index:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;
  pointer-events:none;
}
.gslide .pmark i{font-family:var(--en);font-style:normal;font-weight:500;font-size:21px;letter-spacing:.08em;line-height:1;}
.gslide .pmark em{font-family:var(--ut);font-style:normal;font-weight:400;font-size:8px;letter-spacing:.52em;text-indent:.52em;text-transform:uppercase;}
.gslide .ph.abstract.a1 .pmark, .gslide .ph.abstract.a3 .pmark{color:rgba(27,26,23,.48);}
.gslide .ph.abstract.a2 .pmark{color:rgba(250,248,243,.55);}

/* current page — quiet indicator in the menu */
.menu-main a.current em{border-bottom:1px solid rgba(27,26,23,.35);padding-bottom:4px;}
.menu-main a.current small{color:var(--charcoal);}

/* long-string safety */
.prose, .next .lead, .qa p, .step p, .method p, .confirm-list .row .v{overflow-wrap:break-word;}

/* hero top label — menu title word pinned to the top of the image */
.page-hero .top-label{
  position:absolute;top:calc(env(safe-area-inset-top) + 86px);left:0;right:0;z-index:2;
  padding:0 var(--gutter);
}
.page-hero .top-label .eyebrow{
  display:block;max-width:640px;margin:0 auto;
  color:rgba(250,248,243,.78);text-shadow:0 1px 14px rgba(18,17,16,.4);
}
.page-hero.light .top-label .eyebrow{color:#55514a;text-shadow:none;}

/* Membership privileges — magazine index */
.priv .step h3{
  font-family:var(--ut);font-weight:400;font-size:12px;
  letter-spacing:.32em;text-transform:uppercase;margin-bottom:14px;
}
.priv .step .no{font-size:14px;}
.priv .step p + p{margin-top:12px;}
/* keystone message (Why Membership) */
.keystone{font-weight:600;font-size:15.5px;line-height:2.15;letter-spacing:.15em;color:var(--charcoal);}
.keystone + .keystone{margin-top:26px;}

/* numbered quiet list (Contact — what to tell us) */
.num-list{list-style:none;margin:8px 0 0;display:flex;flex-direction:column;gap:16px;}
.num-list li{font-weight:500;font-size:13.5px;letter-spacing:.14em;line-height:2;color:#3d3a34;}
.num-list li b{font-family:var(--en);font-weight:500;font-size:13px;letter-spacing:.2em;color:var(--stone);margin-right:16px;}

/* formal policy page — clarity first */
.article{padding:34px 0;border-top:1px solid var(--line);}
.article:last-of-type{border-bottom:1px solid var(--line);}
.article h2{font-weight:600;font-size:15px;letter-spacing:.14em;margin-bottom:16px;}
.article h2 b{font-family:var(--en);font-weight:500;font-size:13px;letter-spacing:.18em;color:var(--stone);margin-right:14px;}
.article p{font-size:13px;line-height:2.3;letter-spacing:.08em;color:#3d3a34;}

.article ol{margin:14px 0 0 1.4em;padding:0;display:flex;flex-direction:column;gap:8px;}
.article ol li{font-size:13px;line-height:2.1;letter-spacing:.08em;color:#3d3a34;}
.article p + p{margin-top:14px;}

/* RECRUIT — three-tier section headers: EN title / small JP translation / JP main copy */
.rec-en{
  display:block;font-family:var(--en);font-weight:500;
  font-size:clamp(22px,6vw,30px);line-height:1.15;letter-spacing:.16em;
  text-transform:uppercase;color:var(--charcoal);
}
.rec-jp{
  display:block;margin-top:10px;
  font-family:var(--jp);font-weight:500;font-size:9.5px;letter-spacing:.34em;color:var(--stone);
}
/* value words — one by one, no checklist */
.word-stack{display:flex;flex-direction:column;gap:26px;margin:44px 0;}
.word-stack p{font-weight:600;font-size:16.5px;letter-spacing:.2em;line-height:1.9;color:var(--charcoal);}
/* primary application CTA */
.cta-box{
  display:inline-block;border:1px solid rgba(27,26,23,.5);padding:18px 52px;
  font-family:var(--jp);font-weight:600;font-size:13px;letter-spacing:.4em;text-indent:.4em;
  color:var(--charcoal);transition:opacity .5s;
}
.cta-box:hover{opacity:.6;}

/* APPLICATION DETAILS — quiet emphasis line within prose (not scoped to legal .article) */
.prose.keyline{
  margin:30px 0;padding:22px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  font-weight:600;letter-spacing:.14em;color:var(--charcoal);
}

/* APPLICATION DETAILS — Work Style: quiet 3-step sequence (no icons, no cards) */
.mini-flow{display:flex;flex-direction:column;align-items:center;margin:48px 0;}
.mini-flow-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 0;}
.mini-flow-item .en{font-family:var(--en);font-weight:500;font-size:15px;letter-spacing:.16em;color:var(--charcoal);text-transform:uppercase;}
.mini-flow-item .jp{display:block;margin-top:8px;font-family:var(--jp);font-weight:500;font-size:11px;letter-spacing:.16em;color:var(--stone);}
.mini-flow-arrow{width:1px;height:26px;background:var(--line);position:relative;}
.mini-flow-arrow::after{
  content:"";position:absolute;left:50%;bottom:-1px;width:6px;height:6px;
  border-right:1px solid var(--charcoal);border-bottom:1px solid var(--charcoal);
  transform:translateX(-50%) rotate(45deg);opacity:.45;
}
@media (min-width:640px){
  .mini-flow{flex-direction:row;justify-content:center;align-items:stretch;}
  .mini-flow-item{padding:0 40px;justify-content:center;}
  .mini-flow-arrow{width:56px;height:1px;align-self:center;}
  .mini-flow-arrow::after{left:auto;right:0;bottom:50%;transform:translateY(50%) rotate(45deg);}
}

/* APPLICATION DETAILS — Application Flow: large-number editorial timeline */
.flow-list{display:flex;flex-direction:column;}
.flow-step{display:flex;gap:22px;padding:34px 0;border-top:1px solid var(--line);}
.flow-step:last-child{border-bottom:1px solid var(--line);}
.flow-no{
  flex:0 0 auto;min-width:60px;
  font-family:var(--en);font-weight:500;font-size:clamp(32px,8.6vw,42px);
  letter-spacing:.02em;line-height:1;color:var(--stone);
}
.flow-body h3{font-weight:600;font-size:15.5px;letter-spacing:.14em;margin:4px 0 10px;}
.flow-body p{font-size:13px;line-height:2.3;letter-spacing:.1em;color:#3d3a34;}

/* security policy — quiet emphasis for a single key sentence within an article */
.article .keyline{
  margin:22px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  font-weight:600;font-size:14.5px;letter-spacing:.16em;line-height:2;color:var(--charcoal);
}

/* ============================================================
   ABOUT BEAUTÉ — page-scoped typography refinement
   (tighter body rhythm; quiet accent for paired short lines)
   ============================================================ */
.about-page .prose{
  font-size:clamp(13px,3.6vw,14.5px);
  font-weight:400;
  letter-spacing:.06em;
  line-height:2.14;
  max-width:32em;
  color:#3d3a34;
}
.about-page .prose + .prose{margin-top:26px;}
.about-page .accent-line{
  display:block;
  font-family:var(--jp);font-weight:400;
  font-size:clamp(13px,3.6vw,14.5px);letter-spacing:.06em;line-height:2.14;
  color:#3d3a34;
}

/* ============================================================
   THE LADIES — page-scoped typography refinement (tighter body rhythm)
   ============================================================ */
.ladies-page .prose{
  font-size:clamp(13px,3.6vw,14.5px);
  font-weight:400;
  letter-spacing:.06em;
  line-height:2.14;
  max-width:32em;
  color:#3d3a34;
}
.ladies-page .prose + .prose{margin-top:26px;}

/* ============================================================
   PRIVATE SELECTION — page-scoped typography refinement
   ============================================================ */
.selection-page .prose{
  font-size:clamp(13px,3.6vw,14.5px);
  font-weight:400;
  letter-spacing:.06em;
  line-height:2.14;
  max-width:32em;
  color:#3d3a34;
}
.selection-page .prose + .prose{margin-top:26px;}

/* ============================================================
   INFORMATION — page-scoped typography refinement (readability-first)
   ============================================================ */
.information-page .prose{
  font-size:clamp(13px,3.6vw,14.5px);
  font-weight:400;
  letter-spacing:.055em;
  line-height:2.05;
  max-width:32em;
  color:#3d3a34;
}
.information-page .prose + .prose{margin-top:24px;}
.information-page h2.head{font-size:clamp(22px,6vw,32px);}

/* ============================================================
   MEMBERSHIP — page-scoped typography refinement
   ============================================================ */
.membership-page .prose{
  font-size:clamp(13px,3.6vw,14.5px);
  font-weight:400;
  letter-spacing:.06em;
  line-height:2.1;
  max-width:32em;
  color:#3d3a34;
}
.membership-page .prose + .prose{margin-top:26px;}

/* ============================================================
   RECRUIT — quiet definition-list component (EN label + JP description)
   used for: Three Promises / Privacy points / Work Style / Women We Seek
   ============================================================ */
.point-list{display:flex;flex-direction:column;}
.point{padding:28px 0;border-top:1px solid var(--line);}
.point:last-child{border-bottom:1px solid var(--line);}
.point .en{
  display:block;font-family:var(--en);font-weight:500;font-size:13px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin-bottom:10px;
}
.point .jp{font-size:13.5px;line-height:2.1;letter-spacing:.06em;color:#3d3a34;}
.point .jp strong{display:block;font-weight:600;font-size:15px;margin-bottom:6px;color:var(--charcoal);letter-spacing:.08em;}

/* RECRUIT — page-scoped tighter prose */
.recruit-page .prose{
  font-size:clamp(13px,3.6vw,14.5px);
  font-weight:400;
  letter-spacing:.06em;
  line-height:2.1;
  max-width:32em;
  color:#3d3a34;
}
.recruit-page .prose + .prose{margin-top:26px;}

/* RECRUIT — emphasis line (quiet, not bold-red) */
.recruit-page .emphasis{
  font-family:var(--jp);font-weight:600;font-size:14.5px;
  letter-spacing:.08em;line-height:1.9;color:var(--charcoal);
}

/* ============================================================
   RECRUIT — this page's 7 photos keep natural color tone
   (Ivory/Beige/Charcoal/Green/Soft Black) — NOT the sitewide
   monochrome filter. Explicit brand exception for recruiting warmth.
   ============================================================ */
.recruit-page .page-hero img,
.recruit-page .photo-band img,
.recruit-page .rec-side-hero img,
.recruit-page .rec-split img{filter:none;}

/* full-bleed hero / final-cta pattern.
   MOBILE: photo sits as its own block above the text (no overlay — this
   guarantees both the photo is fully visible AND the text is fully legible).
   DESKTOP (900px+): photo becomes a full-bleed background with text overlaid
   on the left, since there is enough width for both to coexist clearly. */
.rec-side-hero{position:relative;color:var(--charcoal);}
.rec-side-hero .ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ivory);}
.rec-hero-main .ph{aspect-ratio:1750/899;}
.rec-side-hero .ph img{width:100%;height:100%;object-fit:cover;}
.rec-side-hero .copy-veil{display:none;}
.rec-side-hero .copy{
  position:relative;z-index:2;max-width:none;
  padding:clamp(48px,10vw,72px) var(--gutter);
  background:var(--white);
}
.rec-side-hero .copy .eyebrow{color:#55514a;}
.rec-side-hero .copy .script-line{color:var(--charcoal);opacity:.85;}
.rec-side-hero .copy h1, .rec-side-hero .copy h2{
  font-family:var(--jp);font-weight:600;
  font-size:clamp(21px,5.6vw,34px);letter-spacing:0;line-height:1.45;
  color:var(--charcoal);margin-top:20px;
}
@media (min-width:900px){
  .rec-side-hero{overflow:hidden;}
  .rec-side-hero .ph{position:absolute;inset:0;aspect-ratio:auto;}
  .rec-side-hero .copy{
    max-width:420px;
    padding:clamp(90px,18vw,140px) var(--gutter) clamp(56px,12vw,90px);
    background:linear-gradient(90deg, rgba(250,248,243,.97) 0%, rgba(250,248,243,.97) 82%, rgba(250,248,243,.55) 100%);
  }
  .rec-hero-main{height:92svh;min-height:620px;}
  .rec-hero-final{min-height:100svh;}
}

/* two-column image + copy split, used for Privacy / Trust & Safety */
.rec-split{display:flex;flex-direction:column;}
.rec-split .ph{aspect-ratio:4/3;overflow:hidden;}
.rec-split .ph img{width:100%;height:100%;object-fit:cover;}
.rec-split .copy{padding:clamp(48px,10vw,72px) var(--gutter);}
@media (min-width:820px){
  .rec-split{flex-direction:column;align-items:center;}
  .rec-split .ph{flex:none;width:100%;max-width:680px;aspect-ratio:16/10;margin:0 auto;}
  .rec-split .copy{flex:none;width:100%;max-width:560px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:56px var(--gutter) 72px;margin:0 auto;}
  .rec-split.reverse{flex-direction:column;}
}

/* wide full-bleed accent photo (Work Style / Women We Seek / Compensation) */
.rec-wide{position:relative;aspect-ratio:16/10;overflow:hidden;}
.rec-wide img{width:100%;height:100%;object-fit:cover;}
@media (min-width:820px){.rec-wide{aspect-ratio:21/9;}}

/* RECRUIT — tighter kerning on section catchcopy headings (scoped to this page only) */
.recruit-page .ja-head{letter-spacing:0;}

/* APPLICATION DETAILS — tighter kerning + charcoal color on catchcopy headings and entry CTA (scoped to this page only) */
.application-details-page h1.head, .application-details-page h2.head{letter-spacing:0;color:#1B1A17;}
.application-details-page .closing{letter-spacing:0;color:#1B1A17;}
.application-details-page .cta-box{letter-spacing:0;text-indent:0;}

/* ============================================================
   BEAUTÉ DATE (customer page) — Scenes editorial mosaic
   ============================================================ */
.scene-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.scene-item{
  position:relative;overflow:hidden;background:linear-gradient(150deg,#EDE8DD,#DCD3C2);
  aspect-ratio:1/1;
}
.scene-item.wide{grid-column:span 2;aspect-ratio:16/10;}
.scene-item .ph-inner{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  border:1px solid rgba(27,26,23,.14);
}
.scene-item .cat-no{font-family:var(--en);font-weight:500;font-size:10px;letter-spacing:.2em;color:var(--beige);}
.scene-item .cat-en{font-family:var(--en);font-weight:500;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--stone);}
.scene-item .cat-jp{font-family:var(--jp);font-weight:500;font-size:13px;letter-spacing:.12em;color:#6b665c;}
@media (min-width:760px){
  .scene-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;}
  .scene-item{aspect-ratio:auto;grid-column:span 1;grid-row:span 1;}
  .scene-item.wide{grid-column:span 2;grid-row:span 2;}
}

/* BEAUTÉ DATE — page-scoped tighter prose (matches established pattern) */
.beaute-date-page .prose{
  font-size:clamp(13px,3.6vw,14.5px);
  font-weight:400;
  letter-spacing:.06em;
  line-height:2.1;
  max-width:32em;
  color:#3d3a34;
}
.beaute-date-page .prose + .prose{margin-top:26px;}

/* ============================================================
   BEAUTÉ DATE — Visual Story redesign (HERO scale, Scenes, Women split)
   ============================================================ */
.bd-hero{height:92svh;min-height:640px;}
@media (min-width:900px){.bd-hero{height:96svh;}}

.bd-ph-placeholder{
  width:100%;height:100%;
  background:linear-gradient(150deg,#EDE8DD,#DCD3C2);
  display:flex;align-items:center;justify-content:center;
}
.bd-scene-tag{
  display:block;font-family:var(--en);font-weight:500;font-size:11px;
  letter-spacing:.28em;text-transform:uppercase;color:var(--stone);
}
.bd-scene-tag-jp{
  display:block;margin-top:8px;font-family:var(--jp);font-weight:500;
  font-size:14px;letter-spacing:.1em;color:#3d3a34;
}
.bd-scene-tag.on-photo{color:rgba(250,248,243,.75);}
.bd-scene-tag-jp.on-photo{color:rgba(250,248,243,.92);}

/* -- mobile/tablet defaults (<900px): vertical, centred Visual Story, unchanged -- */
.bd-scene-cafe-wrap{margin:0 auto;}
.bd-scene-cafe-label{text-align:center;}
.bd-scene-theatre-wrap{margin:clamp(72px,15vw,104px) auto 0;}
.bd-scene-bleed{position:relative;width:100%;overflow:hidden;}
.bd-scene-bar{aspect-ratio:4/5;max-height:90vh;}
.bd-scene-citywalk{aspect-ratio:4/5;max-height:90vh;}
@media (min-width:640px){
  .bd-scene-bar{max-width:640px;margin-left:auto;margin-right:auto;}
  .bd-scene-citywalk{max-width:560px;margin-left:auto;margin-right:auto;}
}

.bd-story{display:flex;flex-direction:column;}
.bd-story-ph{position:relative;width:100%;margin:0 auto;overflow:hidden;background:var(--white);}
.bd-story-cap{max-width:520px;margin:0 auto;padding:20px var(--gutter) 0;}

.bd-scene-split{display:flex;flex-direction:column;}
.bd-scene-split .ph{aspect-ratio:4/5;overflow:hidden;}
.bd-scene-split .space{padding:44px var(--gutter) 56px;}

.bd-women-split{display:flex;flex-direction:column;}
.bd-women-split .ph{aspect-ratio:4/5;overflow:hidden;}
.bd-women-split .copy{padding:clamp(64px,13vw,96px) var(--gutter);}

/* ============================================================
   PC / landscape Visual Story — Editorial re-composition.
   Applies only at ≥900px; below that, the mobile rules above
   (vertical, centred, unchanged) remain in full effect.
   ============================================================ */
@media (min-width:900px){

  /* 01 DINNER — centered, image above caption */
  .bd-story{flex-direction:column;align-items:center;}
  .bd-story-ph{
    flex:none;max-width:680px !important;aspect-ratio:4/5 !important;
    width:100%;height:auto;margin:0 auto;
  }
  .bd-story-ph img{height:100%;}
  .bd-story-cap{flex:none;max-width:560px;padding:32px var(--gutter) 0;text-align:center;margin:0 auto;}
  .bd-story-right{flex-direction:column;}

  /* 02 BAR LOUNGE — centered portrait */
  .bd-scene-bar{width:auto;height:min(85vh,980px);aspect-ratio:4/5;max-width:none;margin-left:auto;margin-right:auto;}

  /* 03 THE LADIES OF BEAUTÉ DATE — centered, image above caption */
  .bd-women-split{flex-direction:column;align-items:center;}
  .bd-women-split .ph{flex:none;width:100%;max-width:680px;aspect-ratio:4/3;margin:0 auto;}
  .bd-women-split .copy{
    flex:none;width:100%;max-width:560px;display:flex;flex-direction:column;justify-content:center;
    align-items:center;text-align:center;padding:40px var(--gutter) 0;margin:0 auto;
  }

  /* 04 CAFE — centered */
  .bd-scene-cafe-wrap{max-width:46vw;margin-left:auto;margin-right:auto;}
  .bd-scene-cafe-label{text-align:center;}

  /* 05 ART — centered, image above caption */
  .bd-scene-split.bd-scene-art{flex-direction:column;align-items:center;min-height:0;}
  .bd-scene-split.bd-scene-art .ph{flex:none;width:100%;max-width:680px;aspect-ratio:4/3;margin:0 auto;}
  .bd-scene-split.bd-scene-art .space{flex:none;width:100%;max-width:560px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:32px var(--gutter) 0;margin:0 auto;}

  /* 06 SHOPPING — centered, image above caption */
  .bd-scene-split.bd-scene-shopping{flex-direction:column;align-items:center;min-height:0;}
  .bd-scene-split.bd-scene-shopping .ph{flex:none;width:100%;max-width:560px;aspect-ratio:4/3;margin:0 auto;}
  .bd-scene-split.bd-scene-shopping .space{flex:none;width:100%;max-width:560px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:32px var(--gutter) 0;margin:0 auto;}

  /* 07 CITY WALK — centered portrait */
  .bd-scene-citywalk{width:auto;height:min(90vh,1020px);aspect-ratio:4/5;max-width:none;margin-left:auto;margin-right:auto;}

  /* 08 THEATRE — centered */
  .bd-scene-theatre-wrap{max-width:52vw;margin-left:auto;margin-right:auto;margin-top:clamp(96px,10vw,140px);}
}

/* BEAUTÉ DATE — keep the Visual Story photos in their natural warm color tone (deliberate exception, matching the emotional/sensory brief) */
.beaute-date-page .page-hero img,
.beaute-date-page .photo-band img,
.beaute-date-page img{filter:none;}

/* ============================================================
   BEAUTÉ DATE — independent brand lockup
   (Beauté Date is the primary mark; "by Beauté TOKYO" is a
   quiet parent-brand signature, not the headline brand)
   ============================================================ */

/* --- header lockup (compact) --- */
.bd-brand{display:flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1;}
.bd-brand .bd-brand-main{display:flex;align-items:baseline;gap:7px;}
.bd-brand .bd-b{font-family:var(--sc);font-size:26px;color:var(--charcoal);line-height:1;}
.bd-brand .bd-d{font-family:var(--en);font-style:italic;font-weight:500;font-size:16px;letter-spacing:.03em;color:var(--charcoal);transform:translateY(-1px);}
.bd-brand .bd-brand-parent{font-family:var(--jp);font-weight:500;font-size:8px;letter-spacing:.3em;text-indent:.3em;color:var(--stone);}

/* --- hero centre lockup (magazine-cover mark, independent of the bottom copy) --- */
/* --- hero centre lockup (magazine-cover mark, independent of the bottom copy) --- */

.bd-hero-center{
  position:absolute;top:40%;left:0;right:0;
  transform:translateY(-50%);
  z-index:2;text-align:center;
  padding:0 var(--gutter);
}
.bd-hero-lockup{
  display:inline-flex;flex-direction:column;align-items:center;gap:12px;
  width:clamp(220px,60vw,460px);
}
.bd-hero-lockup .bd-hero-main{display:flex;align-items:baseline;justify-content:center;gap:13px;}
.bd-hero-lockup .bd-hero-b{font-family:var(--sc);font-size:clamp(44px,11.5vw,66px);line-height:1;color:rgba(250,248,243,.97);text-shadow:0 1px 24px rgba(18,17,16,.35);}
.bd-hero-lockup .bd-hero-d{font-family:var(--en);font-style:italic;font-weight:500;font-size:clamp(28px,7.2vw,41px);letter-spacing:.04em;color:rgba(250,248,243,.92);text-shadow:0 1px 18px rgba(18,17,16,.32);transform:translateY(-2px);}
.bd-hero-lockup .bd-hero-sub{font-family:var(--ut);font-weight:400;font-size:10px;letter-spacing:.46em;text-transform:uppercase;color:rgba(250,248,243,.75);text-shadow:0 1px 14px rgba(18,17,16,.3);}
.bd-hero-lockup .bd-hero-parent{margin-top:clamp(18px,4vw,28px);font-family:var(--ut);font-weight:300;font-size:8.5px;letter-spacing:.3em;text-transform:uppercase;color:rgba(250,248,243,.55);text-shadow:0 1px 12px rgba(18,17,16,.28);}
.bd-hero-headline{margin-top:0;}

/* --- footer lockup --- */
.bd-footer{padding:clamp(56px,12vw,84px) var(--gutter) calc(env(safe-area-inset-bottom) + 48px);text-align:center;background:var(--white);}
.bd-footer .bd-footer-main{font-family:var(--sc);font-size:clamp(24px,6vw,32px);color:var(--charcoal);line-height:1;}
.bd-footer .bd-footer-main .bd-d{font-family:var(--en);font-style:italic;font-weight:500;font-size:.56em;letter-spacing:.03em;margin-left:.3em;}
.bd-footer .bd-footer-sub{margin-top:10px;font-family:var(--ut);font-weight:400;font-size:9px;letter-spacing:.4em;text-transform:uppercase;color:var(--stone);}
.bd-footer .bd-footer-connect{margin:18px auto 0;max-width:24em;font-family:var(--jp);font-weight:500;font-size:11.5px;letter-spacing:.09em;line-height:1.9;color:#55514a;}
.bd-footer .bd-footer-parent-link{display:inline-block;margin-top:20px;font-family:var(--ut);font-weight:300;font-size:8px;letter-spacing:.26em;text-transform:uppercase;color:var(--beige);transition:opacity .5s;}
.bd-footer .bd-footer-parent-link::after{content:"→";margin-left:8px;}
.bd-footer .bd-footer-parent-link:hover{opacity:.6;}
.bd-footer .bd-footer-copyright{display:block;margin-top:22px;font-family:var(--ut);font-weight:300;font-size:8.5px;letter-spacing:.4em;color:var(--beige);}

/* --- simple anchor navigation (Beauté Date single-page site) --- */
.bd-anchor-nav{display:flex;flex-direction:column;gap:22px;}
.bd-anchor-nav a{display:flex;align-items:baseline;gap:14px;font-family:var(--jp);font-weight:500;letter-spacing:.14em;}
.bd-anchor-nav a em{font-family:var(--en);font-style:italic;font-weight:500;font-size:19px;letter-spacing:.02em;white-space:nowrap;}
.bd-anchor-nav a small{font-family:var(--jp);font-weight:500;font-size:10px;letter-spacing:.3em;color:var(--stone);}
.bd-menu-foot-note{margin-top:32px;padding-top:22px;border-top:1px solid var(--line);font-family:var(--ut);font-weight:300;font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--stone);}

/* --- membership figures: quiet, editorial — deliberately not a second price table --- */
.bd-membership-figures{margin-top:40px;display:flex;flex-direction:column;gap:14px;max-width:300px;}
.bd-membership-figures .bmf-row{display:flex;align-items:baseline;justify-content:space-between;gap:24px;}
.bd-membership-figures .bmf-label{font-family:var(--ut);font-weight:400;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--stone);}
.bd-membership-figures .bmf-value{font-family:var(--en);font-weight:500;font-size:15px;letter-spacing:.04em;color:#3d3a34;font-variant-numeric:lining-nums tabular-nums;}

/* --- header: transparent over the HERO photo, quiet fade-in once scrolled past it --- */
body.beaute-date-page header{
  background:transparent;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  color:var(--white);
  box-shadow:none;
  transition:background .5s var(--ease),color .5s var(--ease),-webkit-backdrop-filter .5s var(--ease),backdrop-filter .5s var(--ease);
}
body.beaute-date-page .bd-brand .bd-b,
body.beaute-date-page .bd-brand .bd-d{color:currentColor;text-shadow:0 1px 12px rgba(18,17,16,.28);}
body.beaute-date-page .bd-brand .bd-brand-parent{color:currentColor;opacity:.7;text-shadow:0 1px 10px rgba(18,17,16,.22);}
body.beaute-date-page.bd-scrolled header{
  background:rgba(250,248,243,.86);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  color:var(--charcoal);
}
body.beaute-date-page.bd-scrolled .bd-brand .bd-b,
body.beaute-date-page.bd-scrolled .bd-brand .bd-d,
body.beaute-date-page.bd-scrolled .bd-brand .bd-brand-parent{text-shadow:none;}
body.beaute-date-page.menu-open header{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;}



  /* ボタン（cta-box）はすべてゴールド塗り＋濃茶の文字に統一。
     色はブランドの差し色（元々この枠線に使っていた #C9A98C）。
     濃茶の塗りつぶしは重すぎたため、この配色にしている。 */
  /* 🔴 既存の .cta.cta-box（文字色ゴールド）より指定を強くしないと、
     ゴールドの文字がゴールドの背景に乗って読めなくなる */
  .cta-box, .cta.cta-box{
    background:#C9A98C;
    border-color:#C9A98C;
    color:#1B1A17;
    font-size:12px;
    padding:19px 34px;
  }
  .cta-box .a, .cta.cta-box .a{background:#1B1A17;}
  .cta-box:hover, .cta.cta-box:hover{background:#bd9877;border-color:#bd9877;color:#1B1A17;}
