



:root{
  color-scheme: light;

  
  
  --color-bg:        #FFFFFF;  
  --color-bg-soft:   #FFFFFF;  
  --color-bg-deep:   #FFFFFF;  
  --color-bg-footer: #FFFFFF;
  --color-text:      #51483F;
  --color-text-soft: #655A50;
  
  --color-muted:     #776D65;
  --color-muted-soft:#8C8177;
  --color-line:      rgba(92, 78, 67, .16);
  --color-line-soft: rgba(92, 78, 67, .09);
  --color-accent:    #B79A78;
  --color-accent-2:  #C4A58A;
  
  --color-focus:     #A9865E;
  --color-veil:      rgba(255, 255, 255, .88); 

  
  --font-serif-jp: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
  --font-serif-en: "Cormorant Garamond", "Hiragino Mincho ProN", "Times New Roman", serif;

  
  --container-max:  1600px;
  --container-wide: 1120px;
  --container-text: 720px;
  --gutter: clamp(20px, 5vw, 64px);

  
  --space-section:    clamp(72px, 9vw, 150px);
  --space-section-lg: clamp(96px, 13vw, 220px);

  
  --header-h: 64px;

  
  --ease: cubic-bezier(.22, 1, .36, 1);
  --dur:  820ms;
}

@media (min-width: 1024px){
  :root{
    --header-h: 84px;
    
    --space-section:    clamp(120px, 9vw, 168px);
    --space-section-lg: clamp(180px, 13vw, 224px);
  }
}



*, *::before, *::after{ box-sizing: border-box; }

html{
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}


:target,
#main{ scroll-margin-top: calc(var(--header-h) + 16px); }

#main:focus{ outline: none; }

body{
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.95;
  font-feature-settings: "palt" 1;
  word-break: auto-phrase;      
  
  line-break: strict;
  word-break: normal;
  overflow-wrap: normal;
  overflow-x: hidden;
}

@media (min-width: 1024px){
  body{ font-size: 17px; line-height: 2.0; }
}

img{ max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4{
  margin: 0;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: .02em;
  
  line-break: strict;
  word-break: normal;
  overflow-wrap: normal;
  text-wrap: pretty;
}

p{ margin: 0; }

ul{ margin: 0; padding: 0; list-style: none; }

a{ color: inherit; }

:focus-visible{
  outline: 2px solid var(--color-focus);
  outline-offset: 3px;
}

::selection{ background: rgba(183, 154, 120, .22); }

.visually-hidden{
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}


.skip-link{
  position: fixed;
  top: 8px; left: 8px;
  z-index: 200;
  width: auto; height: auto;
  margin: 0;
  padding: 12px 20px;
  overflow: visible;
  clip: auto;
  clip-path: none;
  background: var(--color-bg-soft);
  border: 1px solid var(--color-line);
  color: var(--color-text);
  font-size: 14px;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform 240ms var(--ease);
}

.skip-link:focus{ transform: none; }



.container{
  width: 100%;
  max-width: calc(var(--container-wide) + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.container--text{
  max-width: calc(var(--container-text) + var(--gutter) * 2);
}

.container--max{
  max-width: calc(var(--container-max) + var(--gutter) * 2);
}

.section{
  padding-block: var(--space-section);
}

.section--lg{
  padding-block: var(--space-section-lg);
}


.section--tight-bottom{ padding-bottom: clamp(62px, 8.3vw, 143px); }

.section--soft{ background: var(--color-bg-soft); }
.section--deep{ background: var(--color-bg-deep); }
.section--base{ background: var(--color-bg); }




.label{
  font-family: var(--font-serif-en);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--color-muted);
  line-height: 1.8;
}

.label--stacked span{ display: block; }

@media (min-width: 1024px){
  .label{ font-size: 13px; }
}


.h-hero{
  font-size: clamp(32px, 4vw, 68px);
  line-height: 1.5;
  letter-spacing: .01em;
}

.h-major{
  font-size: clamp(28px, 3.2vw, 52px);
  line-height: 1.55;
}

.h-section{
  font-size: clamp(23px, 2.2vw, 34px);
  line-height: 1.6;
}

@media (min-width: 768px){
  .h-hero{ line-height: 1.45; }
  .h-major{ line-height: 1.5; }
}


@media (min-width: 1024px){
  .h-major{ font-size: clamp(34px, 3.2vw, 52px); }
  .h-section{ font-size: clamp(28px, 2.2vw, 34px); }
}


.lead{
  font-size: clamp(16.5px, 1.3vw, 20px);
  line-height: 1.95;
  color: var(--color-text-soft);
}

.body{
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 1.95;
  color: var(--color-text-soft);
}

@media (min-width: 1024px){
  .body{ line-height: 2.05; }
}

.body > * + *{ margin-top: 1.9em; }


.lines{
  color: var(--color-text-soft);
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 2.05;
}
.lines li + li{ margin-top: .1em; }


.accent-line{
  font-size: clamp(17px, 1.55vw, 23px);
  line-height: 1.95;
  color: var(--color-text);
}
.body > .accent-line{ margin-block: 2.6em; }


.body--flow > * + *{ margin-top: 1.45em; }

.body--flow > [hidden]:first-child + *{ margin-top: 0; }
.body--flow > .accent-line{ margin-block: 2em; }


.body > .accent-line--tight{ margin-block: 1.15em; }

.note{
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--color-muted);
  line-height: 1.9;
}

.credit{
  font-size: 13.5px;
  line-height: 2.1;
  color: var(--color-muted);
  letter-spacing: .05em;
}

@media (min-width: 1024px){
  .note, .credit{ font-size: 14px; }
}




.text-link{
  display: inline-flex;
  align-items: baseline;
  gap: .6em;
  font-family: var(--font-serif-jp);
  font-size: 14.5px;
  font-weight: 400;
  letter-spacing: .1em;
  text-decoration: none;
  color: var(--color-text);
  padding-block: 14px;
  border-bottom: 1px solid var(--color-line);
  transition: border-color 420ms var(--ease), color 420ms var(--ease);
}

.text-link .arrow{
  display: inline-block;
  transition: transform 420ms var(--ease);
}

.text-link:hover{
  color: var(--color-text);
  border-bottom-color: var(--color-accent);
}

.text-link:hover .arrow{ transform: translateX(4px); }

@media (min-width: 1024px){
  .text-link{ font-size: 15px; }
}


.outline-link{
  display: inline-flex;
  align-items: center;
  gap: .8em;
  font-family: var(--font-serif-jp);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: .1em;
  text-decoration: none;
  color: var(--color-text);
  padding: 20px 40px;
  border: 1px solid var(--color-line);
  background: transparent;
  transition: background-color 480ms var(--ease), border-color 480ms var(--ease);
}

.outline-link .arrow{
  display: inline-block;
  transition: transform 420ms var(--ease);
}

.outline-link:hover{
  background: rgba(183, 154, 120, .07);
  border-color: rgba(92, 78, 67, .24);
}

.outline-link:hover .arrow{ transform: translateX(3px); }



.site-header{
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--header-h);
  display: flex;
  align-items: center;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background-color 600ms var(--ease),
              border-color 600ms var(--ease),
              backdrop-filter 600ms var(--ease);
}

.site-header.is-scrolled{
  background: var(--color-veil);
  border-bottom-color: var(--color-line-soft);
  -webkit-backdrop-filter: saturate(120%) blur(12px);
  backdrop-filter: saturate(120%) blur(12px);
}

.site-header .container{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.wordmark{
  font-family: var(--font-serif-en);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .28em;
  text-decoration: none;
  color: var(--color-text);
  white-space: nowrap;
  padding-block: 6px;
}

@media (min-width: 1024px){
  
  .wordmark{ font-size: 28px; }
}

.nav-desktop{ display: none; }

@media (min-width: 1024px){
  .nav-desktop{
    display: flex;
    align-items: center;
    gap: clamp(20px, 2.4vw, 40px);
  }
  .nav-desktop a{
    font-family: var(--font-serif-jp);
    font-size: 14px;
    font-weight: 400;
    
    letter-spacing: .08em;
    text-decoration: none;
    color: var(--color-text-soft);
    white-space: nowrap;
    padding-block: 8px;
    border-bottom: 1px solid transparent;
    transition: color 420ms var(--ease), border-color 420ms var(--ease);
  }
  .nav-desktop a:hover{
    color: var(--color-text);
    border-bottom-color: var(--color-accent);
  }
}


.menu-button{
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 44px;
  height: 44px;
  padding: 0 6px;
  margin-right: -6px;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.menu-button span{
  display: block;
  height: 1px;
  background: var(--color-text);
  transition: transform 480ms var(--ease), opacity 300ms var(--ease);
}

.menu-button span:first-child{ width: 26px; }
.menu-button span:last-child{ width: 18px; margin-left: auto; }

.menu-button[aria-expanded="true"] span:first-child{ transform: translateY(3.5px) rotate(8deg); }
.menu-button[aria-expanded="true"] span:last-child{ width: 26px; transform: translateY(-3.5px) rotate(-8deg); }

@media (min-width: 1024px){
  .menu-button{ display: none; }
}


.nav-panel{
  position: fixed;
  inset: 0;
  z-index: 99;
  background: var(--color-bg-soft);
  padding: calc(var(--header-h) + 40px) var(--gutter) 48px;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  pointer-events: none;   
  transition: opacity 520ms var(--ease), transform 520ms var(--ease), visibility 520ms;
}

.nav-panel.is-open{
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
}

.nav-panel ul{
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-top: 1px solid var(--color-line-soft);
}

.nav-panel li{ border-bottom: 1px solid var(--color-line-soft); }

.nav-panel a{
  display: block;
  padding: 20px 2px;
  text-decoration: none;
}


.nav-panel a{
  font-family: var(--font-serif-jp);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: .08em;
  color: var(--color-text);
}

.nav-panel .panel-foot{
  margin-top: 40px;
  color: var(--color-muted);
}

body.is-locked{ overflow: hidden; }

@media (min-width: 1024px){
  .nav-panel{ display: none; }
}



.hero{
  position: relative;
  background: var(--color-bg-soft);
}

.hero__media{
  position: relative;
}

.hero__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.hero__media::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, .58) 0%,
    rgba(255, 255, 255, .44) 30%,
    rgba(255, 255, 255, .20) 48%,
    rgba(255, 255, 255, 0) 64%
  );
}

.hero__copy > * + *{ margin-top: 22px; }

.hero__brand{
  font-family: var(--font-serif-en);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1;
  color: var(--color-text);
}

.hero__kicker{ margin-top: 14px !important; }

.hero__lead{
  max-width: 30em;
}

.hero__cta{ margin-top: 26px !important; }



@media (max-width: 1023.98px), (max-aspect-ratio: 38/25){
  .hero__media{
    
    height: calc(37svh + 16vw);
    min-height: 260px;
    max-height: 620px;
  }
  .hero__media img{ object-position: 66% 35%; }

  .hero__copy{
    
    padding-block: clamp(22px, 5vw, 40px) clamp(26px, 5.5vw, 44px);
  }
  
  .hero__copy .h-hero{ font-size: clamp(32px, 8.6vw, 40px); }

  
  .hero__copy > * + *{ margin-top: 14px; }
  .hero__kicker{ margin-top: 8px !important; }
  .hero__cta-group{ margin-top: clamp(14px, 2vw, 20px) !important; }
}


@media (min-width: 1024px) and (max-aspect-ratio: 38/25){
  .hero__media img{ object-position: 50% 44%; }
}


@media (min-width: 1024px) and (min-aspect-ratio: 38/25){
  .hero{
    height: 100svh;
    min-height: 620px;
  }
  .hero__media{
    position: absolute;
    inset: 0;
  }
  
  .hero__media img{ object-position: 0% 50%; }

  .hero__inner{
    position: relative;
    height: 100%;
  }
  
  .hero{
    --hero-book-left: max(64.1866vw, 114.0276svh);
    --hero-container-x: max(0px, calc((100vw - 1728px) / 2));
    --hero-copy-left: calc(var(--hero-container-x) + var(--gutter) + 0.27 * (min(100vw, 1728px) - 2 * var(--gutter)));
    --hero-safe-right: calc(var(--hero-book-left) - 40px);
    --hero-copy-maxw: calc(var(--hero-safe-right) - var(--hero-copy-left));
  }
  .hero__copy{
    position: relative;
    
    top: clamp(96px, 12vh, 132px);
    
    left: 27%;
    
    --hero-copy-w: max(280px, min(clamp(400px, 48vw, 600px), var(--hero-copy-maxw)));
    width: var(--hero-copy-w);
  }
  
  .hero__copy::before{
    content: "";
    position: absolute;
    top: -24px;
    bottom: -24px;
    left: -28px;
    width: calc(var(--hero-copy-maxw) + 28px);
    background: linear-gradient(90deg,
      rgba(255, 255, 255, .85) 0,
      rgba(255, 255, 255, .85) calc(28px + var(--hero-copy-w)),
      rgba(255, 255, 255, 0) 100%);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid var(--color-line-soft);
    border-bottom: 1px solid var(--color-line-soft);
    border-left: 1px solid var(--color-line-soft);
    box-shadow: 0 20px 48px rgba(81, 72, 63, .10);
    pointer-events: none;
  }
  .hero__copy > *{ position: relative; }
  .hero__copy > * + *{ margin-top: 18px; }
  
  .hero__copy .h-hero{
    font-size: min(clamp(36px, 3.1vw, 48px),
                   max(30px, calc(var(--hero-copy-w) / 8.3)));
  }
  
  .hero__lead{ font-size: 18px; line-height: 1.9; max-width: 24em; }
  .hero__cta{ margin-top: 22px !important; }
}


@media (min-width: 1500px) and (min-aspect-ratio: 38/25){
  .hero__copy{
    --hero-copy-w: max(280px, min(clamp(400px, 42vw, 620px), var(--hero-copy-maxw)));
  }
}



.editorial{
  display: grid;
  gap: clamp(36px, 5vw, 56px);
}

.editorial__head > * + *{ margin-top: 26px; }

@media (min-width: 900px){
  .editorial{
    grid-template-columns: minmax(280px, 42%) minmax(0, 1fr);
    gap: clamp(48px, 6vw, 110px);
    align-items: start;
  }
  .editorial__head{ position: sticky; top: calc(var(--header-h) + 48px); }
  .editorial__body{ max-width: 34em; }
}



.split{
  display: grid;
  gap: clamp(32px, 5vw, 56px);
  align-items: center;
}

.split__media img{
  width: 100%;
}

.split__body > * + *{ margin-top: 24px; }
.split__body .label + *{ margin-top: 20px; }
.split__body .h-section + *,
.split__body .h-major + *{ margin-top: 28px; }

.split__cta{ margin-top: 34px !important; }

@media (min-width: 900px){
  .split{
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(48px, 6vw, 96px);
  }
  .split--40-60{ grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); }
  .split--55-45{ grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); }

  
  .split--reverse .split__media{ order: 2; }
  .split--reverse .split__body{ order: 1; }

  .split__body{ max-width: 32em; }
  .split--reverse .split__body{ justify-self: end; }
}


.readings__gap{ height: clamp(88px, 13vw, 200px); }


.readings__gap--tight{ height: clamp(56px, 8.3vw, 128px); }


.further{
  max-width: calc(var(--container-text) + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--gutter);
  text-align: center;
}

.further > * + *{ margin-top: 22px; }
.further .h-section{ margin-top: 20px; }
.further .body{ margin-top: clamp(24px, 3vw, 34px); }
.further .split__cta{ margin-top: clamp(32px, 4vw, 42px) !important; }


.further .h-section{
  font-size: clamp(19px, 1.5vw, 23px);
  line-height: 1.75;
}



.commission__media{
  margin-bottom: clamp(44px, 6vw, 88px);
}

.commission__media img{ width: 100%; }

.commission__grid{
  display: grid;
  gap: clamp(32px, 5vw, 56px);
}

@media (min-width: 900px){
  .commission__grid{
    grid-template-columns: minmax(280px, 40%) minmax(0, 1fr);
    gap: clamp(48px, 6vw, 96px);
    align-items: start;
  }
  .commission__body{ max-width: 34em; }
}

.commission__list{
  columns: 1;
  color: var(--color-text-soft);
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 2.05;
}

@media (min-width: 560px){
  .commission__list{ columns: 2; column-gap: clamp(24px, 4vw, 56px); }
}

.commission__meta{
  margin-top: 40px;
  padding-top: 22px;
  border-top: 1px solid var(--color-line);
  font-family: var(--font-serif-en);
  font-size: 11.5px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--color-muted);
}



.mirai__media{
  margin-bottom: clamp(40px, 6vw, 80px);
}

.mirai__media img{
  width: 100%;
  aspect-ratio: 1000 / 400;
  object-fit: cover;
  object-position: 50% 34%;
}

.mirai__credit{
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid var(--color-line);
}



.final{
  position: relative;
  background: var(--color-bg-soft);
  overflow: hidden;
}


.final::before,
.final::after{
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  filter: blur(60px);
}

.final::before{
  width: 46vw; height: 46vw;
  max-width: 620px; max-height: 620px;
  top: -12%; left: -8%;
  background: radial-gradient(circle at 50% 50%,
    rgba(196, 165, 138, .16) 0%,
    rgba(214, 199, 214, .10) 45%,
    rgba(255, 253, 249, 0) 72%);
}

.final::after{
  width: 40vw; height: 40vw;
  max-width: 540px; max-height: 540px;
  right: -6%; bottom: -10%;
  background: radial-gradient(circle at 50% 50%,
    rgba(199, 214, 214, .14) 0%,
    rgba(232, 214, 199, .10) 48%,
    rgba(255, 253, 249, 0) 74%);
}

.final__inner{ position: relative; }

.final__inner > * + *{ margin-top: clamp(36px, 4vw, 56px); }

.final .body > * + *{ margin-top: 1.9em; }


.final__cta{ margin-top: clamp(80px, 8vw, 120px) !important; }



.site-footer{
  background: var(--color-bg-footer);
  padding-block: clamp(64px, 8vw, 108px) clamp(40px, 5vw, 60px);
  border-top: 1px solid var(--color-line-soft);
}

.footer__top{
  display: grid;
  gap: clamp(40px, 6vw, 64px);
}

@media (min-width: 900px){
  .footer__top{
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: clamp(48px, 7vw, 120px);
  }
}

.footer__brand .wordmark{
  display: inline-block;
  font-size: 24px;
}

@media (min-width: 1024px){
  .footer__brand .wordmark{ font-size: 28px; }
}

.footer__brand .label{ margin-top: 12px; }

.footer__nav{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;
  align-items: start;
}

@media (min-width: 560px){
  .footer__nav{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.footer__nav a{
  display: inline-block;
  padding-block: 11px;
  font-family: var(--font-serif-jp);
  font-size: 13.5px;
  font-weight: 400;
  letter-spacing: .08em;
  text-decoration: none;
  color: var(--color-text-soft);
  transition: color 420ms var(--ease);
}

.footer__nav a:hover{ color: var(--color-text); }

.footer__bottom{
  margin-top: clamp(48px, 6vw, 80px);
  padding-top: 28px;
  border-top: 1px solid var(--color-line-soft);
  display: grid;
  gap: 22px;
}

@media (min-width: 900px){
  .footer__bottom{
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 40px;
  }
  .footer__copyright{ text-align: right; }
}

.footer__bottom > div > * + *{ margin-top: 18px; }

.footer__legal{
  display: flex;
  flex-wrap: wrap;
  gap: 0 24px;
}

.footer__legal a{
  display: inline-block;
  padding-block: 11px;
  font-size: 13px;
  color: var(--color-muted);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 420ms var(--ease), border-color 420ms var(--ease);
}

.footer__legal a:hover{
  color: var(--color-text);
  border-bottom-color: var(--color-line);
}

.footer__contact a{
  color: var(--color-text-soft);
  text-decoration: none;
  border-bottom: 1px solid var(--color-line);
  font-size: 14px;
  letter-spacing: .04em;
}

.footer__contact a:hover{ border-bottom-color: var(--color-accent); }

.footer__contact a{ position: relative; }
.footer__contact a::after{ content: ""; position: absolute; left: 0; right: 0; top: -12px; bottom: -12px; }

.footer__copyright{
  font-family: var(--font-serif-en);
  font-size: 11.5px;
  letter-spacing: .2em;
  color: var(--color-muted);
}




.reveal{
  opacity: 1;
  transform: none;
}

.reveal.is-in{
  opacity: 1;
  transform: none;
}

.reveal--slow{ --dur: 1000ms; }


@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  .reveal{ opacity: 1; transform: none; }
  *, *::before, *::after{
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
  }
}


.no-js .reveal{ opacity: 1; transform: none; }



.plain-page{
  min-height: 100svh;
  display: grid;
  place-items: center;
  text-align: center;
  padding: calc(var(--header-h) + 64px) var(--gutter) 96px;
}

.plain-page > div > * + *{ margin-top: 28px; }



.label + h2,
.label + h3{ margin-top: 20px; }

h2 + .body,
h3 + .body,
h2 + .lines,
h2 + .editorial__body{ margin-top: clamp(30px, 4vw, 46px); }

.readings__lead-gap{ height: clamp(48px, 7vw, 96px); }



.text-center{ text-align: center; }


.br-md{ display: none; }

@media (min-width: 768px){
  .br-md{ display: inline; }
}


.nb{ white-space: nowrap; }


.hang-punct,
.hang-punct--sm{
  display: inline-block;
  inline-size: 0;
  white-space: pre;
}

.hang-punct--md{ display: inline; inline-size: auto; }

@media (min-width: 768px){
  .hang-punct--md{ display: inline-block; inline-size: 0; white-space: pre; }
  .hang-punct--sm{ display: inline; inline-size: auto; }
}


.br-sm{ display: inline; }

@media (min-width: 768px){
  .br-sm{ display: none; }
}



.head-block{
  max-width: calc(960px + var(--gutter) * 2);
  margin-inline: auto;
}

.head-block .h-major{
  max-width: 18em;
  margin-inline: auto;
}

.head-block + .container--text{ margin-top: clamp(30px, 4vw, 46px); }




.page-hero .h-major{ max-width: 16em; }


.page-hero .label + h1{ margin-top: 20px; }


.interlude{
  
  padding-block: clamp(68px, 9.4vw, 135px) clamp(32px, 4.5vw, 65px);
}


.readings-tight-bottom{ padding-bottom: clamp(68px, 9vw, 130px); }
.readings-tight-top{ padding-top: clamp(68px, 9vw, 130px); }


@media (min-width: 560px){
  .lines--cols{
    columns: 2;
    column-gap: clamp(24px, 4vw, 56px);
  }
}


.product-name{
  margin-top: clamp(34px, 4vw, 48px);
  padding-top: 22px;
  border-top: 1px solid var(--color-line);
  font-family: var(--font-serif-jp);
  font-size: 17px;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: none;
  color: var(--color-text);
}

.product-name span[lang="en"]{
  margin-top: 6px;
  font-family: var(--font-serif-en);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--color-muted);
}


.choice{
  
  margin-top: clamp(36px, 4.5vw, 60px);
  display: grid;
  gap: clamp(36px, 5vw, 56px);
  text-align: center;
}

@media (min-width: 720px){
  .choice{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(40px, 5vw, 72px);
  }
}

.choice__item{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding-top: 30px;
  border-top: 1px solid var(--color-line);
  font-size: clamp(15.5px, 1.1vw, 16.5px);
  line-height: 2;
  color: var(--color-text-soft);
}


.final__gap{ margin-top: clamp(30px, 4vw, 44px); }

.final__line{
  margin-top: clamp(56px, 7vw, 88px);
  text-align: center;
}

.final__mark{
  margin-top: clamp(64px, 8vw, 104px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.wordmark-static{
  font-family: var(--font-serif-en);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: .28em;
  color: var(--color-text);
}

@media (min-width: 1024px){
  .wordmark-static{ font-size: 28px; }
}


.label .jp{
  display: block;
  margin-top: 5px;
  font-family: var(--font-serif-jp);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: none;
  color: var(--color-text-soft);
}


.choice__when{ display: block; }

.choice__name{
  display: block;
  color: var(--color-text);
}

.choice__close{
  margin-top: clamp(52px, 6vw, 80px);
  text-align: center;
}


.love-turn{
  margin-top: clamp(44px, 5vw, 64px) !important;
}




.lm-brand{
  font-family: var(--font-serif-en);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1;
  color: var(--color-text);
}

.lm-entrance .label{ margin-top: 16px; }
.lm-entrance .h-major{ margin-top: clamp(34px, 4vw, 52px); }
.lm-entrance .body{ margin-top: clamp(30px, 4vw, 44px); }

.lm-scroll{
  margin-top: clamp(56px, 7vw, 88px);
  font-size: 11px;
  letter-spacing: .3em;
}


.lm-gap{ margin-top: clamp(52px, 6vw, 84px); }


.lm-sign{
  margin-top: clamp(48px, 6vw, 76px);
  font-family: var(--font-serif-en);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .3em;
  color: var(--color-text);
  text-align: right;
}


.lm-work__gap, .lm-work-gap{ height: clamp(72px, 9vw, 132px); }
.lm-work-gap-top{ margin-top: clamp(56px, 7vw, 96px); }
.lm-inner-text{ padding-inline: 0; }

.lm-lead-in{
  margin-block: clamp(56px, 7vw, 96px) clamp(40px, 5vw, 64px);
  font-size: clamp(16px, 1.2vw, 18px);
  color: var(--color-text-soft);
}

.lm-caption{
  margin-top: 14px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2;
  color: var(--color-text-soft);
}

.lm-work .split__body > .body{ margin-top: clamp(26px, 3vw, 36px); }


.lm-reading{
  padding-top: clamp(30px, 4vw, 44px);
  border-top: 1px solid var(--color-line);
}

.lm-reading__name{ margin-top: 14px; }

.lm-reading__list{
  margin-top: clamp(26px, 3vw, 36px);
  color: var(--color-text-soft);
}

.lm-reading__tail{
  margin-top: 18px;
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 2.05;
  color: var(--color-text-soft);
}


.lm-price{
  margin-top: clamp(32px, 4vw, 46px);
  font-family: var(--font-serif-jp);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.5;
  color: var(--color-text);
}

.lm-price__tax{
  margin-left: .3em;
  font-size: .52em;
  letter-spacing: .06em;
  color: var(--color-muted);
}

.lm-terms{
  margin-top: 20px;
  font-size: 14px;
  line-height: 2.05;
  color: var(--color-text-soft);
}

.lm-terms__note{ margin-top: 12px; }


.lm-reading-gap{ height: clamp(88px, 12vw, 176px); }


.lm-scenes{
  margin: clamp(48px, 6vw, 76px) 0 0;
  display: grid;
  gap: clamp(34px, 4vw, 52px);
}

.lm-scene{
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line-soft);
}

.lm-scene dt{
  font-size: clamp(16.5px, 1.35vw, 19px);
  line-height: 1.9;
  color: var(--color-text);
}

.lm-scene dd{
  margin: 14px 0 0;
  font-size: clamp(15.5px, 1.15vw, 17px);
  line-height: 2.05;
  color: var(--color-text-soft);
}


.lm-choice{
  margin-top: clamp(48px, 6vw, 76px);
  display: grid;
  gap: clamp(64px, 8vw, 104px);
}

@media (min-width: 900px){
  .lm-choice{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(56px, 6vw, 88px);
    align-items: start;
  }
}

.lm-choice__item{
  padding-top: clamp(28px, 3vw, 36px);
  border-top: 1px solid var(--color-line);
}

.lm-choice__label{ margin-top: clamp(30px, 4vw, 44px); }

.lm-choice__name{
  margin-top: 8px;
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.9;
  color: var(--color-text);
}

.lm-choice__price{
  margin-top: 12px;
  font-family: var(--font-serif-jp);
  font-size: clamp(21px, 1.8vw, 25px);
  font-weight: 400;
  letter-spacing: .04em;
  color: var(--color-text);
}

.lm-choice__item .split__cta{ margin-top: clamp(26px, 3vw, 34px) !important; }


.lm-steps{
  margin: clamp(48px, 6vw, 76px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(34px, 4vw, 52px);
}

.lm-step{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(20px, 3vw, 34px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line-soft);
}

.lm-step__no{
  font-family: var(--font-serif-en);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--color-muted);
  padding-top: .45em;
}

.lm-step__name{
  font-size: clamp(16.5px, 1.35vw, 19px);
  font-weight: 400;
  line-height: 1.85;
  color: var(--color-text);
}

.lm-step__body > p{
  margin-top: 12px;
  font-size: clamp(15.5px, 1.15vw, 17px);
  line-height: 2.05;
  color: var(--color-text-soft);
}

.lm-step__items{
  margin-top: 16px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2.1;
}


.lm-terms-block{
  margin-top: clamp(56px, 7vw, 96px);
  display: grid;
  gap: clamp(34px, 4vw, 48px);
}

.lm-term{
  padding-top: clamp(22px, 3vw, 30px);
  border-top: 1px solid var(--color-line-soft);
}

.lm-term .note{ margin-top: 14px; }

.lm-term__lead{
  margin-top: 14px;
  font-size: clamp(16px, 1.2vw, 17.5px);
  line-height: 1.9;
  color: var(--color-text);
}

.lm-term__foot{ margin-top: 14px; color: var(--color-muted); }


.lm-further .h-section{
  margin-top: 18px;
  font-size: clamp(19px, 1.5vw, 23px);
  line-height: 1.75;
}

.lm-further__name{ margin-top: clamp(30px, 4vw, 42px); }
.lm-further .body{ margin-top: clamp(22px, 3vw, 30px); }
.lm-further .split__cta{ margin-top: clamp(32px, 4vw, 42px) !important; }


@media (max-width: 767.98px){
  .lm-page .h-major{ font-size: 26px; }
}



.rb-brand{
  font-family: var(--font-serif-en);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1;
  color: var(--color-text);
}

.rb-hero .label{ margin-top: 16px; }
.rb-hero .h-major{ margin-top: clamp(34px, 4vw, 52px); }
.rb-hero .body{ margin-top: clamp(30px, 4vw, 44px); }


.rb-order{
  margin-top: clamp(40px, 5vw, 60px);
  padding-top: clamp(30px, 4vw, 42px);
  border-top: 1px solid var(--color-line);
}

.rb-order__name{
  font-size: clamp(19px, 1.6vw, 23px);
  line-height: 1.9;
  color: var(--color-text);
}

.rb-order__price{
  margin-top: 14px;
  font-family: var(--font-serif-jp);
  font-size: clamp(22px, 1.9vw, 26px);
  font-weight: 400;
  letter-spacing: .04em;
  color: var(--color-text);
}

.rb-order__format{
  margin-top: 12px;
  font-size: 14px;
  line-height: 2;
  color: var(--color-text-soft);
}

.rb-facts{
  margin: clamp(30px, 4vw, 44px) 0 0;
  display: grid;
  gap: 0;
}

.rb-fact{
  display: grid;
  grid-template-columns: 7.5em minmax(0, 1fr);
  gap: 14px;
  padding: 15px 0;
  border-top: 1px solid var(--color-line-soft);
  font-size: 15px;
  line-height: 1.95;
}

.rb-fact:last-child{ border-bottom: 1px solid var(--color-line-soft); }
.rb-fact dt{ color: var(--color-muted); letter-spacing: .04em; }

.rb-fact dd{ margin: 0; color: var(--color-text); overflow-wrap: anywhere; }


.rb-steps{
  margin: clamp(48px, 6vw, 76px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(34px, 4vw, 52px);
}

.rb-step{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(20px, 3vw, 34px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line-soft);
}

.rb-step__no{
  font-family: var(--font-serif-en);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--color-muted);
  padding-top: .45em;
}

.rb-step__name{
  font-size: clamp(16.5px, 1.35vw, 19px);
  font-weight: 400;
  line-height: 1.85;
  color: var(--color-text);
}

.rb-step__body > p{
  margin-top: 14px;
  font-size: clamp(15.5px, 1.15vw, 17px);
  line-height: 2.05;
  color: var(--color-text-soft);
}

.rb-step__body > ul{
  margin-top: 16px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2.1;
}


.rb-note{
  margin-top: clamp(44px, 5vw, 64px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line);
}

.rb-note__title{
  font-size: clamp(16px, 1.25vw, 17.5px);
  font-weight: 400;
  line-height: 1.9;
  color: var(--color-text);
}

.rb-note__body{
  margin-top: 14px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2.05;
  color: var(--color-text-soft);
}

.rb-note .split__cta{ margin-top: clamp(24px, 3vw, 32px) !important; }


.rb-line-cta{ margin-top: clamp(30px, 4vw, 42px); }



.text-link.is-pending{
  color: var(--color-muted);
  border-bottom-color: transparent;
  cursor: default;
}
.text-link.is-pending .arrow{ display: none; }
.text-link.is-pending:hover{ border-bottom-color: transparent; }
.text-link.is-pending:hover .arrow{ transform: none; }

.rb-line-note{ margin-top: clamp(24px, 3vw, 32px); }


.rb-closing .body{ margin-top: clamp(34px, 4vw, 48px); }

.rb-sign{
  margin-top: clamp(48px, 6vw, 76px);
  font-family: var(--font-serif-en);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .3em;
  color: var(--color-text);
}


.rb-final__mark{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.rb-final .split__cta{ margin-top: clamp(48px, 6vw, 76px) !important; }




.pc-brand{
  font-family: var(--font-serif-en);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1;
  color: var(--color-text);
}

.pc-entrance .label{ margin-top: 16px; }
.pc-entrance .h-major{ margin-top: clamp(28px, 3.4vw, 42px); }


.pc-media{
  margin-top: clamp(48px, 6vw, 80px);
}

.pc-media img{
  display: block;
  width: 100%;
  max-width: 620px;
  margin-inline: auto;
}

.pc-scroll{
  margin-top: clamp(48px, 6vw, 76px);
  font-size: 11px;
  letter-spacing: .3em;
}


.pc-gap{ margin-top: clamp(52px, 6vw, 84px); }


.pc-book__media{
  margin-top: clamp(44px, 5.5vw, 72px);
  margin-bottom: clamp(48px, 6vw, 80px);
}

.pc-book__media img{
  display: block;
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
}


.pc-toc{ margin-top: 20px; }


.pc-reads{
  margin-top: clamp(48px, 6vw, 76px);
  display: grid;
  gap: clamp(48px, 6vw, 76px);
}

.pc-read{
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line-soft);
}

.pc-read__name{
  margin-top: 14px;
  font-size: clamp(17px, 1.45vw, 21px);
  font-weight: 400;
  line-height: 1.85;
  color: var(--color-text);
}

.pc-read .body{ margin-top: clamp(20px, 2.6vw, 28px); }


.pc-choices{
  margin-top: clamp(48px, 6vw, 76px);
  display: grid;
  gap: clamp(34px, 4vw, 52px);
}

.pc-choice{
  padding-top: clamp(22px, 3vw, 30px);
  border-top: 1px solid var(--color-line-soft);
}

.pc-choice__name{
  font-size: clamp(16.5px, 1.35vw, 19px);
  font-weight: 400;
  line-height: 1.85;
  color: var(--color-text);
}

.pc-choice > p{
  margin-top: 12px;
  font-size: clamp(15.5px, 1.15vw, 17px);
  line-height: 2.05;
  color: var(--color-text-soft);
}


.pc-receive{
  margin: clamp(48px, 6vw, 76px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(34px, 4vw, 52px);
}

.pc-item{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(20px, 3vw, 34px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line-soft);
}

.pc-item__no{
  font-family: var(--font-serif-en);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--color-muted);
  padding-top: .45em;
}

.pc-item__name{
  margin-top: 10px;
  font-size: clamp(16.5px, 1.35vw, 19px);
  font-weight: 400;
  line-height: 1.85;
  color: var(--color-text);
}

.pc-item__body > p{
  margin-top: 12px;
  font-size: clamp(15.5px, 1.15vw, 17px);
  line-height: 2.05;
  color: var(--color-text-soft);
}

.pc-item__note{ margin-top: 16px; }


.pc-price__tier{ margin-top: 18px; }

.pc-price{
  margin-top: clamp(40px, 5vw, 64px);
  font-family: var(--font-serif-jp);
  font-size: clamp(27px, 2.6vw, 38px);
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.5;
  color: var(--color-text);
}

.pc-price__tax{
  margin-left: .3em;
  font-size: .48em;
  letter-spacing: .06em;
  color: var(--color-muted);
}

.pc-includes{
  margin: clamp(26px, 3.2vw, 36px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  font-size: clamp(15.5px, 1.15vw, 17px);
  line-height: 2;
  color: var(--color-text-soft);
}


.pc-summary{
  margin-top: clamp(48px, 6vw, 76px);
  padding-block: clamp(30px, 4vw, 42px);
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}

.pc-summary__name{
  font-family: var(--font-serif-jp);
  font-size: clamp(17px, 1.4vw, 20px);
  letter-spacing: .06em;
  color: var(--color-text);
}


.pc-summary__sub{
  margin: 6px 0 0;
  font-size: 14px;
  color: var(--color-text-soft);
}

.pc-summary__price{
  margin-top: 12px;
  font-family: var(--font-serif-jp);
  font-size: clamp(23px, 2vw, 29px);
  font-weight: 400;
  letter-spacing: .04em;
  color: var(--color-text);
}

.pc-summary__list{
  margin: clamp(20px, 2.6vw, 28px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2;
  color: var(--color-text-soft);
}

.pc-summary__facts{
  margin: clamp(22px, 3vw, 30px) 0 0;
  display: grid;
  gap: 10px;
  text-align: left;
  max-width: 520px;
  margin-inline: auto;
}

.pc-fact{
  display: grid;
  grid-template-columns: minmax(0, 8.5em) minmax(0, 1fr);
  gap: 8px 16px;
  font-size: clamp(14px, 1vw, 15.5px);
  line-height: 2;
}

.pc-fact dt{
  letter-spacing: .04em;
  color: var(--color-muted);
}

.pc-fact dd{
  margin: 0;
  color: var(--color-text-soft);
  overflow-wrap: anywhere;
}

@media (max-width: 600px){
  .pc-fact{ grid-template-columns: 1fr; gap: 2px; }
}

.pc-cta{ margin-top: clamp(40px, 5vw, 60px) !important; }

.pc-meta{
  margin-top: clamp(26px, 3.2vw, 36px);
  font-size: 11px;
  letter-spacing: .28em;
  color: var(--color-muted);
}


.pc-sign{
  margin-top: clamp(48px, 6vw, 76px);
  font-family: var(--font-serif-en);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .3em;
  color: var(--color-text);
  text-align: right;
}

.pc-final__mark{
  margin-top: clamp(72px, 9vw, 120px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}




.ab-brand{
  font-family: var(--font-serif-en);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1;
  color: var(--color-text);
}

.ab-entrance .label{ margin-top: 16px; }
.ab-entrance .h-major{ margin-top: clamp(28px, 3.4vw, 42px); }


.ab-entrance .body{ margin-top: clamp(40px, 5vw, 64px); }

.ab-scroll{
  margin-top: clamp(56px, 7vw, 92px);
  font-size: 11px;
  letter-spacing: .3em;
}


.ab-gap{ margin-top: clamp(52px, 6vw, 84px); }


.ab-nots{
  margin-top: clamp(26px, 3.2vw, 36px);
  padding-left: 0;
}


.ab-happiness .head-block .h-major{ margin-top: 18px; }


.ab-quote{
  margin-block: clamp(56px, 7vw, 96px);
  font-family: var(--font-serif-jp);
  font-size: clamp(21px, 2vw, 29px);
  font-weight: 400;
  line-height: 2.1;
  letter-spacing: .04em;
  color: var(--color-text);
}


.ab-world{
  margin-top: clamp(30px, 4vw, 44px);
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 2.15;
  color: var(--color-text-soft);
}

.ab-world__voice{
  margin-top: clamp(26px, 3.2vw, 36px);
  font-family: var(--font-serif-jp);
  font-size: clamp(19px, 1.7vw, 25px);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: .04em;
  color: var(--color-text);
}


.ab-cta{ margin-top: clamp(52px, 6.5vw, 80px) !important; }

.ab-final__mark{
  margin-top: clamp(64px, 8vw, 108px);
  display: flex;
  flex-direction: column;
  align-items: center;
}




.fq-brand{
  font-family: var(--font-serif-en);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1;
  color: var(--color-text);
}

.fq-hero .label{ margin-top: 16px; }
.fq-hero .h-major{ margin-top: clamp(28px, 3.4vw, 42px); }
.fq-hero .body{ margin-top: clamp(30px, 4vw, 44px); }


.fq-list{
  margin-top: clamp(40px, 5vw, 64px);
  display: grid;
  gap: clamp(40px, 5vw, 64px);
}

.fq-item{
  padding-top: clamp(24px, 3vw, 34px);
  border-top: 1px solid var(--color-line-soft);
}


.fq-q{
  font-size: clamp(16.5px, 1.35vw, 19px);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: .02em;
  color: var(--color-text);
}

.fq-a{ margin-top: clamp(18px, 2.4vw, 26px); }

.fq-a > p{
  margin-top: 14px;
  font-size: clamp(15.5px, 1.15vw, 17px);
  line-height: 2.05;
  color: var(--color-text-soft);
}

.fq-a > p:first-child{ margin-top: 0; }

.fq-a .lines{
  margin-top: 16px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2.1;
}

.fq-a .accent-line{ color: var(--color-text); }


.fq-steps{
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2;
  color: var(--color-text-soft);
}

.fq-steps__no{
  display: inline-block;
  min-width: 2.6em;
  font-family: var(--font-serif-en);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .18em;
  color: var(--color-muted);
}


.fq-facts{
  margin: 18px 0 0;
  display: grid;
  gap: 12px;
}

.fq-fact{
  display: grid;
  grid-template-columns: minmax(0, 16em) minmax(0, 1fr);
  gap: 4px 18px;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 1.95;
}

.fq-fact dt{ color: var(--color-muted); letter-spacing: .02em; }
.fq-fact dd{ margin: 0; color: var(--color-text-soft); overflow-wrap: anywhere; }

@media (max-width: 700px){
  .fq-fact{ grid-template-columns: 1fr; gap: 2px; }
}


.fq-cta{ margin-top: clamp(40px, 5vw, 60px) !important; }

.fq-note{
  margin-top: clamp(26px, 3.2vw, 34px);
  color: var(--color-muted);
}

.fq-final__mark{
  margin-top: clamp(64px, 8vw, 104px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}




.ct-brand{
  font-family: var(--font-serif-en);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1;
  color: var(--color-text);
}

.ct-hero .label{ margin-top: 16px; }
.ct-hero .h-major{ margin-top: clamp(28px, 3.4vw, 42px); }
.ct-hero .body{ margin-top: clamp(30px, 4vw, 44px); }

.ct-topics{ margin-top: 20px; text-align: left; display: inline-block; }


.ct-form{ margin: 0; }

.ct-fields{
  margin-top: clamp(40px, 5vw, 64px);
  display: grid;
  gap: clamp(30px, 4vw, 44px);
}

.ct-field{ display: block; }

.ct-label{
  display: block;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 1.9;
  letter-spacing: .04em;
  color: var(--color-text);
}

.ct-optional{
  margin-left: .6em;
  font-family: var(--font-serif-en);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--color-muted);
}


.ct-input{
  display: block;
  width: 100%;
  margin-top: 10px;
  padding: 12px 2px;
  border: 0;
  border-bottom: 1px solid var(--color-line);
  border-radius: 0;
  background: transparent;
  font-family: var(--font-serif-jp);
  font-size: 16px;              
  line-height: 1.9;
  color: var(--color-text);
  -webkit-appearance: none;
  appearance: none;
}

.ct-input::placeholder{ color: var(--color-muted-soft); }

.ct-input:focus{
  outline: none;
  border-bottom-color: var(--color-accent);
}

.ct-input:focus-visible{
  outline: 2px solid var(--color-focus);
  outline-offset: 4px;
}

.ct-textarea{
  border: 1px solid var(--color-line);
  padding: 14px;
  resize: vertical;
  min-height: 200px;
}

.ct-fieldset{
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}

.ct-choices{
  margin-top: 14px;
  display: grid;
  gap: 12px;
}

.ct-choice{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 1.9;
  color: var(--color-text-soft);
  cursor: pointer;
}

.ct-choice input{
  margin: .45em 0 0;
  width: 16px;
  height: 16px;
  accent-color: var(--color-accent);
  flex: none;
}

.ct-note{ margin-top: 10px; }
.ct-foot{ margin-top: clamp(34px, 4vw, 48px); }


.ct-privacy{
  margin-top: clamp(44px, 5.5vw, 68px);
  padding-top: clamp(22px, 3vw, 30px);
  border-top: 1px solid var(--color-line-soft);
}

.ct-privacy .note{ margin-top: 14px; }
.ct-privacy__link{ margin-top: 18px; }


.ct-send__lead{ margin-bottom: clamp(20px, 2.6vw, 28px); }

.ct-consent{
  display: inline-flex;
  align-items: flex-start;
  gap: 12px;
  text-align: left;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 1.9;
  color: var(--color-text-soft);
  cursor: pointer;
}

.ct-consent input{
  margin: .45em 0 0;
  width: 16px;
  height: 16px;
  accent-color: var(--color-accent);
  flex: none;
}

.ct-send{ margin-top: clamp(34px, 4vw, 48px); }


.ct-button{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 18px clamp(30px, 5vw, 56px);
  border: 1px solid var(--color-line);
  border-radius: 0;
  background: transparent;
  font-family: var(--font-serif-jp);
  font-size: clamp(15.5px, 1.15vw, 17px);
  letter-spacing: .08em;
  color: var(--color-text);
  cursor: pointer;
  transition: border-color .3s ease;
}

.ct-button:hover:not(:disabled){ border-color: var(--color-accent); }
.ct-button:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 4px; }


.ct-button:disabled{
  color: var(--color-muted);
  border-color: var(--color-line-soft);
  cursor: not-allowed;
}


.ct-notice{
  margin-bottom: clamp(40px, 5vw, 60px);
  padding: clamp(24px, 3vw, 34px) clamp(20px, 2.6vw, 30px);
  border: 1px solid var(--color-line);
  text-align: center;
}
.ct-notice__title{
  margin: 0;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.9;
  letter-spacing: .04em;
}
.ct-notice .note{ margin-top: 14px; }
.ct-notice__cta{ margin-top: clamp(18px, 2.2vw, 24px); }

.ct-send__note{
  margin-top: clamp(24px, 3vw, 32px);
  color: var(--color-muted);
}

.ct-mail{ margin-top: clamp(18px, 2.4vw, 26px) !important; }




.cb-brand{
  font-family: var(--font-serif-en);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1;
  color: var(--color-text);
}

.cb-hero .label{ margin-top: 16px; }
.cb-hero .h-major{ margin-top: clamp(28px, 3.4vw, 42px); }
.cb-hero .body{ margin-top: clamp(34px, 4.4vw, 50px); }


.cb-now{
  margin-top: clamp(56px, 7vw, 92px);
  padding-top: clamp(26px, 3.4vw, 36px);
  border-top: 1px solid var(--color-line-soft);
}

.cb-now__title{
  font-size: clamp(15.5px, 1.15vw, 17px);
  letter-spacing: .08em;
  color: var(--color-muted);
}

.cb-now .body{ margin-top: clamp(20px, 2.6vw, 28px); }


.cb-order{
  margin-top: clamp(40px, 5vw, 64px);
  padding: clamp(30px, 4vw, 44px) 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  text-align: center;
}

.cb-order__name{
  font-family: var(--font-serif-jp);
  font-size: clamp(17px, 1.4vw, 20px);
  letter-spacing: .06em;
  color: var(--color-text);
}

.cb-order__tier{ margin-top: 14px; }

.cb-order__price{
  margin-top: 14px;
  font-family: var(--font-serif-jp);
  font-size: clamp(21px, 1.8vw, 25px);
  font-weight: 400;
  letter-spacing: .04em;
  color: var(--color-text);
}

.cb-price__tax{
  margin-left: .3em;
  font-size: .52em;
  letter-spacing: .06em;
  color: var(--color-muted);
}

.cb-facts{
  margin: clamp(28px, 3.6vw, 40px) 0 0;
  display: grid;
  gap: 12px;
  text-align: left;
  max-width: 560px;
  margin-inline: auto;
}

.cb-facts--wide{ max-width: 640px; }

.cb-fact{
  display: grid;
  grid-template-columns: minmax(0, 12em) minmax(0, 1fr);
  gap: 4px 18px;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 1.95;
}

.cb-fact dt{ color: var(--color-muted); letter-spacing: .04em; }
.cb-fact dd{ margin: 0; color: var(--color-text-soft); overflow-wrap: anywhere; }

@media (max-width: 700px){
  .cb-fact{ grid-template-columns: 1fr; gap: 2px; }
}

.cb-delivery{
  margin-top: clamp(48px, 6vw, 76px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line-soft);
}

.cb-delivery .cb-facts{ margin-top: 20px; }


.cb-steps{
  margin: clamp(48px, 6vw, 80px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(40px, 5vw, 64px);
}

.cb-step{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(20px, 3vw, 34px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line-soft);
}

.cb-step__no{
  font-family: var(--font-serif-en);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--color-muted);
  padding-top: .45em;
}

.cb-step__name{
  font-size: clamp(16.5px, 1.35vw, 19px);
  font-weight: 400;
  line-height: 1.85;
  color: var(--color-text);
}

.cb-step__body > p{
  margin-top: 12px;
  font-size: clamp(15.5px, 1.15vw, 17px);
  line-height: 2.05;
  color: var(--color-text-soft);
}

.cb-step__items{
  margin-top: 16px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2.1;
}

.cb-step__flow{
  margin-top: 18px !important;
  color: var(--color-text) !important;
  line-height: 2.2 !important;
}


.cb-note{
  margin-top: clamp(48px, 6vw, 76px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line-soft);
}

.cb-note__title{
  font-size: clamp(15.5px, 1.15vw, 17px);
  font-weight: 400;
  letter-spacing: .06em;
  color: var(--color-text);
}

.cb-note__body{
  margin-top: 14px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2.05;
  color: var(--color-text-soft);
}


.cb-address{
  margin-top: clamp(36px, 4.6vw, 56px);
  font-family: var(--font-serif-jp);
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 2.1;
  letter-spacing: .04em;
  color: var(--color-text);
  overflow-wrap: anywhere;
}


.cb-line-cta{ margin-top: clamp(30px, 4vw, 42px); }
.cb-line-note{ margin-top: clamp(24px, 3vw, 32px); }


.cb-closing .body{ margin-top: clamp(20px, 2.6vw, 28px); }

.cb-sign{
  margin-top: clamp(56px, 7vw, 88px);
  font-family: var(--font-serif-en);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .3em;
  color: var(--color-text);
}


.cb-final__mark{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.cb-final__cta{ margin-top: clamp(56px, 7vw, 88px) !important; }



.ap-brand{
  font-family: var(--font-serif-en);
  font-size: clamp(26px, 2.3vw, 32px);
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1;
  color: var(--color-text);
}

.ap-header .label{ margin-top: 16px; }
.ap-header .h-major{ margin-top: clamp(28px, 3.4vw, 42px); }
.ap-header .body{ margin-top: clamp(30px, 4vw, 44px); }

.ap-form{ margin: 0; }


.ap-reading{
  margin-top: clamp(40px, 5vw, 64px);
  padding: clamp(30px, 4vw, 44px) 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  text-align: center;
}

.ap-reading__name{
  margin-top: 10px;
  font-family: var(--font-serif-jp);
  font-size: clamp(17px, 1.4vw, 20px);
  letter-spacing: .06em;
  color: var(--color-text);
}

.ap-reading__lead{
  margin-top: 14px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2;
  color: var(--color-text-soft);
}

.ap-reading__price{
  margin-top: 16px;
  font-family: var(--font-serif-jp);
  font-size: clamp(21px, 1.8vw, 25px);
  font-weight: 400;
  letter-spacing: .04em;
  color: var(--color-text);
}

.ap-reading__terms{
  margin-top: 18px;
  display: inline-block;
  text-align: left;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 2;
}

.ap-reading__change{ margin-top: clamp(24px, 3vw, 32px) !important; }
.ap-reading__change .text-link{ font-size: 14px; }


.ap-empty{
  margin-top: clamp(40px, 5vw, 64px);
  padding: clamp(34px, 4.4vw, 50px) 0;
  border-top: 1px solid var(--color-line-soft);
  border-bottom: 1px solid var(--color-line-soft);
  text-align: center;
}

.ap-empty__title{
  font-family: var(--font-serif-jp);
  font-size: clamp(16.5px, 1.35vw, 19px);
  letter-spacing: .04em;
  color: var(--color-text);
}

.ap-empty__body{
  margin-top: 16px;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 2.05;
  color: var(--color-text-soft);
}

.ap-empty .split__cta{ margin-top: clamp(26px, 3.2vw, 36px) !important; }


.ap-fields{
  margin-top: clamp(40px, 5vw, 64px);
  display: grid;
  gap: clamp(32px, 4vw, 48px);
}

.ap-label{
  display: block;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 1.9;
  letter-spacing: .04em;
  color: var(--color-text);
}


.ap-required-note{
  margin-top: clamp(18px, 2.2vw, 26px);
  color: var(--color-text-soft);
}

.ap-optional{
  margin-left: .6em;
  font-family: var(--font-serif-en);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--color-muted);
}

.ap-input{
  display: block;
  width: 100%;
  margin-top: 10px;
  padding: 12px 2px;
  border: 0;
  border-bottom: 1px solid var(--color-line);
  border-radius: 0;
  background: transparent;
  font-family: var(--font-serif-jp);
  font-size: 16px;              
  line-height: 1.9;
  color: var(--color-text);
  -webkit-appearance: none;
  appearance: none;
}

.ap-input::placeholder{ color: var(--color-muted-soft); }
.ap-input:focus{ outline: none; border-bottom-color: var(--color-accent); }
.ap-input:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 4px; }

.ap-input--time{ max-width: 12em; }

.ap-textarea{
  border: 1px solid var(--color-line);
  padding: 14px;
  resize: vertical;
  min-height: 170px;
}

.ap-file{
  display: block;
  margin-top: 12px;
  max-width: 100%;
  font-family: var(--font-serif-jp);
  font-size: 15px;
  color: var(--color-text-soft);
}

.ap-note{ margin-top: 10px; }
.ap-mail-msg:empty{ display: none; }
.ap-mail-msg{ color: var(--color-accent); }

.ap-inline{
  margin: 16px 0 0;
  padding: 0;
  border: 0;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
}

.ap-choice{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 1.9;
  color: var(--color-text-soft);
  cursor: pointer;
}

.ap-choice input{
  margin: .4em 0 0;
  width: 16px; height: 16px;
  accent-color: var(--color-accent);
  flex: none;
}


.ap-check-cta{ margin-top: clamp(30px, 4vw, 44px) !important; }

.ap-check{
  padding: 14px 30px;
  border: 1px solid var(--color-line);
  border-radius: 0;
  background: transparent;
  font-family: var(--font-serif-jp);
  font-size: 15.5px;
  letter-spacing: .06em;
  color: var(--color-text);
  cursor: pointer;
  transition: border-color .3s ease;
}

.ap-check:hover{ border-color: var(--color-accent); }
.ap-check:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 4px; }

.ap-confirm{
  margin-top: clamp(36px, 4.6vw, 56px);
  padding: clamp(28px, 3.6vw, 40px) 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}

.ap-summary{ margin: 0; display: grid; gap: 14px; }

.ap-sum{
  display: grid;
  grid-template-columns: minmax(0, 12em) minmax(0, 1fr);
  gap: 4px 18px;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 1.95;
}

.ap-sum dt{ color: var(--color-muted); letter-spacing: .04em; }
.ap-sum dd{ margin: 0; color: var(--color-text-soft); overflow-wrap: anywhere; white-space: pre-wrap; }

@media (max-width: 700px){
  .ap-sum{ grid-template-columns: 1fr; gap: 2px; }
}

.ap-terms{
  margin-top: clamp(48px, 6vw, 76px);
  display: grid;
  gap: clamp(30px, 3.6vw, 42px);
}

.ap-term{
  padding-top: clamp(20px, 2.6vw, 28px);
  border-top: 1px solid var(--color-line-soft);
}

.ap-term .note{ margin-top: 14px; }

.ap-agree-block{ margin-top: clamp(44px, 5.5vw, 68px); text-align: center; }

.ap-consent{
  display: inline-flex;
  align-items: flex-start;
  gap: 12px;
  text-align: left;
  font-size: clamp(15px, 1.1vw, 16.5px);
  line-height: 1.9;
  color: var(--color-text-soft);
  cursor: pointer;
}

.ap-consent input{
  margin: .45em 0 0;
  width: 16px; height: 16px;
  accent-color: var(--color-accent);
  flex: none;
}

.ap-legal-links{
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 22px;
}

.ap-legal-links .text-link{ font-size: 13.5px; }


.ap-payment{ margin-top: clamp(52px, 6.5vw, 80px); text-align: center; }

.ap-payment__lead{ color: var(--color-text-soft); }

.ap-payment__cta{ margin-top: clamp(30px, 4vw, 44px); }

.ap-button{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 20px clamp(30px, 5vw, 56px);
  border: 1px solid var(--color-line);
  border-radius: 0;
  background: transparent;
  font-family: var(--font-serif-jp);
  font-size: clamp(15.5px, 1.15vw, 17px);
  line-height: 1.8;
  letter-spacing: .08em;
  color: var(--color-text);
  cursor: pointer;
}

.ap-button:disabled{
  color: var(--color-muted);
  border-color: var(--color-line-soft);
  cursor: not-allowed;
}

.ap-payment__note{ margin-top: clamp(24px, 3vw, 32px); color: var(--color-muted); }
.ap-mail-link{ margin-top: clamp(16px, 2vw, 22px) !important; }


.ap-turnstile{
  display: flex;
  justify-content: center;
  margin-top: clamp(20px, 2.6vw, 28px);
}
.ap-turnstile:empty{ display: none; }
.ap-api-status{
  min-height: 1.8em;
  margin-top: clamp(18px, 2.4vw, 24px);
  color: var(--color-text-soft);
}
.ap-api-status:empty{ min-height: 0; margin-top: 0; }
.ap-api-status.is-error{ color: var(--color-accent); }
.ap-api-status.is-success{ color: var(--color-text); }
.ap-form[aria-busy="true"]{ cursor: progress; }

.ap-check-cta{ text-align: center; }




.ap-closed,
.pa-closed{
  border: 1px solid var(--color-line);
  padding: clamp(34px, 4.6vw, 56px) clamp(24px, 3.4vw, 44px);
  text-align: center;
}
.ap-closed__title,
.pa-closed__title{
  margin: 0;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: clamp(20px, 2.2vw, 25px);
  line-height: 1.7;
  letter-spacing: .05em;
}
.ap-closed__body,
.pa-closed__body{
  margin: clamp(18px, 2.2vw, 26px) 0 0;
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 2.1;
}

.pa-included__label{ margin-top: clamp(26px, 3.2vw, 36px); }

.pa-delivery-note{
  margin-top: clamp(44px, 5.5vw, 68px);
  padding-top: clamp(34px, 4.2vw, 48px);
  border-top: 1px solid var(--color-line);
}
.pa-delivery-note .body{ margin-top: clamp(16px, 2vw, 22px); color: var(--color-text-soft); }
.pa-delivery-note .body:first-of-type{ margin-top: clamp(20px, 2.6vw, 28px); }
.pa-delivery-note strong{ font-weight: 500; color: var(--color-text); }

.pa-examples{ margin-top: 10px; margin-bottom: 10px; }
.pa-examples li{ font-size: inherit; }

.pa-fieldset{ margin: 0; padding: 0; border: 0; }

.pa-warn{
  margin-top: clamp(20px, 2.6vw, 28px);
  border-left: 2px solid var(--color-accent);
  padding: clamp(18px, 2.2vw, 24px) clamp(18px, 2.4vw, 26px);
  background: var(--color-bg-deep);
}
.pa-warn p{
  margin: 0;
  color: var(--color-text-soft);
  font-size: 14.5px;
  line-height: 2;
}

.pa-overseas{
  margin-top: clamp(40px, 5vw, 60px);
  padding-top: clamp(30px, 3.8vw, 44px);
  border-top: 1px solid var(--color-line);
}
.pa-overseas .note{ margin-top: 14px; }

.pa-address{ margin-top: clamp(36px, 4.4vw, 52px); }
.pa-address__title{ display: block; margin-bottom: clamp(6px, 1vw, 12px); }

.pa-session{
  margin-top: clamp(56px, 7vw, 88px);
  padding-top: clamp(38px, 4.8vw, 56px);
  border-top: 1px solid var(--color-line);
  text-align: center;
}
.pa-session__name{
  margin: 14px 0 0;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.7;
  letter-spacing: .05em;
}
.pa-session__span{
  margin: clamp(12px, 1.6vw, 18px) 0 0;
  color: var(--color-muted);
  font-size: 15px;
  letter-spacing: .1em;
}
.pa-session .body{ margin-top: clamp(26px, 3.4vw, 38px); }

.pa-flow{ margin-top: clamp(56px, 7vw, 88px); }
.pa-flow__title{ display: block; text-align: center; }
.pa-flow__list{
  margin: clamp(28px, 3.6vw, 42px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(22px, 2.8vw, 32px);
}
.pa-flow__item{
  border-top: 1px solid var(--color-line);
  padding-top: clamp(18px, 2.2vw, 24px);
}
.pa-flow__num{
  margin: 0;
  font-family: var(--font-serif-en);
  font-size: 14px;
  letter-spacing: .18em;
  color: var(--color-muted);
}
.pa-flow__name{
  margin: 8px 0 0;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: clamp(16px, 1.7vw, 18px);
  line-height: 1.8;
  letter-spacing: .04em;
}
.pa-flow__item .note{ margin-top: 8px; }

.pa-terms__title{
  margin: 0 0 clamp(10px, 1.6vw, 18px);
  text-align: center;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.7;
  letter-spacing: .05em;
}
.ap-terms .pa-terms__title + .ap-term{ margin-top: clamp(24px, 3vw, 34px); }



.lg-header .h-major{ margin-top: clamp(20px, 2.4vw, 30px); }

.lg-body{ max-width: calc(900px + var(--gutter) * 2); }

.lg-list{
  margin: 0;
  display: grid;
  gap: clamp(30px, 3.8vw, 46px);
}

.lg-item{
  border-top: 1px solid var(--color-line);
  padding-top: clamp(20px, 2.4vw, 28px);
}

.lg-term{
  margin: 0;
  font-family: var(--font-serif-jp);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: .06em;
  color: var(--color-text);
}

.lg-desc{
  margin: clamp(12px, 1.6vw, 16px) 0 0;
  color: var(--color-text-soft);
}

.lg-desc p{
  margin: 0;
  font-size: 15px;
  line-height: 2.15;
  letter-spacing: .03em;
}
.lg-desc p + p{ margin-top: clamp(12px, 1.6vw, 18px); }

.lg-desc .lines{ margin-top: clamp(12px, 1.6vw, 18px); }
.lg-desc .lines li{
  font-size: 15px;
  line-height: 2.15;
  letter-spacing: .03em;
}
.lg-desc .lines + p{ margin-top: clamp(14px, 1.8vw, 20px); }

.lg-product{ margin-top: clamp(20px, 2.4vw, 28px); }
.lg-product__name{
  color: var(--color-text);
  font-weight: 500;
}
.lg-product__name + p{ margin-top: 8px !important; }

.lg-mail{ overflow-wrap: anywhere; }
.lg-mail .text-link{ font-size: 15px; }

.lg-links{
  margin-top: clamp(56px, 7vw, 84px);
  padding-top: clamp(26px, 3.2vw, 36px);
  border-top: 1px solid var(--color-line);
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(18px, 2.6vw, 34px);
}
.lg-links .text-link{ font-size: 13.5px; }

@media (min-width: 900px){
  .lg-item{
    display: grid;
    grid-template-columns: 15em 1fr;
    gap: clamp(24px, 3vw, 44px);
    align-items: start;
  }
  .lg-desc{ margin-top: 0; }
}



.tm-dates{
  margin-top: clamp(22px, 2.8vw, 32px);
  line-height: 2.1;
  letter-spacing: .06em;
}

.tm-preamble{
  padding-bottom: clamp(34px, 4.2vw, 50px);
  border-bottom: 1px solid var(--color-line);
}

.tm-articles{
  margin-top: clamp(40px, 5vw, 60px);
  display: grid;
  gap: clamp(40px, 5vw, 62px);
}

.tm-heading{
  margin: 0;
  font-family: var(--font-serif-jp);
  font-weight: 500;
  font-size: clamp(16px, 1.7vw, 18px);
  line-height: 1.9;
  letter-spacing: .06em;
  color: var(--color-text);
}

.tm-preamble p,
.tm-article p{
  margin: clamp(14px, 1.8vw, 20px) 0 0;
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 2.15;
  letter-spacing: .03em;
}

.tm-ol,
.tm-ul{
  margin: clamp(14px, 1.8vw, 20px) 0 0;
  padding-left: 1.6em;
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 2.15;
  letter-spacing: .03em;
}
.tm-ol{ list-style: decimal; }
.tm-ul{ list-style: none; padding-left: 1.1em; }
.tm-ul > li{ position: relative; }
.tm-ul > li::before{
  content: "";
  position: absolute;
  left: -1.1em;
  top: 1.05em;
  width: 5px;
  height: 1px;
  background: var(--color-muted-soft);
}
.tm-ol > li + li,
.tm-ul > li + li{ margin-top: 10px; }
.tm-ol > li::marker{ color: var(--color-muted); }
.tm-ol .tm-ul,
.tm-ul .tm-ul{ margin-top: 10px; }

.tm-defs{
  margin: clamp(14px, 1.8vw, 20px) 0 0;
  display: grid;
  gap: clamp(14px, 1.8vw, 20px);
}
.tm-def dt{
  margin: 0;
  color: var(--color-text);
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: .04em;
}
.tm-def dd{
  margin: 4px 0 0;
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 2.15;
  letter-spacing: .03em;
}

.tm-mail{ overflow-wrap: anywhere; }

@media (min-width: 900px){
  .tm-def{
    display: grid;
    grid-template-columns: 11em 1fr;
    gap: clamp(20px, 2.6vw, 34px);
    align-items: start;
  }
  .tm-def dd{ margin-top: 0; }
}



.pv-sub{
  margin: clamp(24px, 3vw, 34px) 0 0;
  font-family: var(--font-serif-jp);
  font-weight: 500;
  font-size: 15px;
  line-height: 2;
  letter-spacing: .06em;
  color: var(--color-text);
}
.pv-sub + .tm-ul,
.pv-sub + .pv-table{ margin-top: clamp(10px, 1.4vw, 14px); }

.pv-table{ margin-top: clamp(16px, 2vw, 22px); }
.pv-table table{
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: .03em;
  color: var(--color-text-soft);
}
.pv-table th,
.pv-table td{
  text-align: left;
  vertical-align: top;
  padding: clamp(12px, 1.6vw, 16px) clamp(10px, 1.4vw, 18px);
  border-bottom: 1px solid var(--color-line-soft);
}
.pv-table thead th{
  color: var(--color-muted);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: .1em;
  border-bottom: 1px solid var(--color-line);
  white-space: nowrap;
}
.pv-table td:first-child{ color: var(--color-text); }
.pv-table th:first-child,
.pv-table td:first-child{ padding-left: 0; }
.pv-table th:last-child,
.pv-table td:last-child{ padding-right: 0; }

.pv-window{ margin-top: clamp(16px, 2vw, 22px) !important; }

@media (max-width: 899px){
  .pv-table thead{
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0);
    white-space: nowrap; border: 0;
  }
  .pv-table tr{
    display: block;
    padding: clamp(14px, 3vw, 18px) 0;
    border-bottom: 1px solid var(--color-line-soft);
  }
  .pv-table tr:last-child{ border-bottom: 0; }
  .pv-table td{
    display: block;
    padding: 0;
    border: 0;
  }
  .pv-table td + td{ margin-top: 8px; }
  .pv-table td::before{
    content: attr(data-th);
    display: block;
    color: var(--color-muted);
    font-size: 12px;
    letter-spacing: .1em;
    line-height: 1.9;
  }
}



.ap-required{
  margin-left: 10px;
  font-family: var(--font-serif-jp);
  font-size: 11.5px;
  letter-spacing: .12em;
  color: var(--color-accent);
  vertical-align: 2px;
}

.ap-alert:empty{ display: none; }
.ap-alert{ color: var(--color-accent); }

.ap-inline-cta{ margin-top: 12px !important; }
.ap-inline-cta .text-link{ font-size: 14px; }

.ap-checks{
  margin-top: clamp(12px, 1.6vw, 16px);
  display: grid;
  gap: 12px;
}

.ap-subfield{ margin-top: clamp(28px, 3.4vw, 40px); }

.ap-textarea--short{ min-height: 7.5em; }

@media (min-width: 640px){
  .ap-checks{ grid-template-columns: 1fr 1fr; gap: 12px clamp(18px, 2.4vw, 30px); }
}

.ap-fieldset{ margin: 0; padding: 0; border: 0; }




.cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 60px;
  padding: 16px clamp(28px, 4vw, 48px);
  border: 1px solid var(--color-text);
  border-radius: 0;
  background: var(--color-text);
  color: var(--color-bg-soft);
  font-family: var(--font-serif-jp);
  font-size: clamp(15.5px, 1.1vw, 17px);
  line-height: 1.6;
  letter-spacing: .08em;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);
}

.cta:hover{ background: var(--color-text-soft); border-color: var(--color-text-soft); }


.cta:disabled,
.cta[aria-disabled="true"]{
  background: var(--color-line);
  color: var(--color-text-soft);
  border-color: var(--color-muted);
  cursor: not-allowed;
}


.cta--send{
  inline-size: min(100%, 560px);
  min-block-size: 64px;
}


.cta--quiet{
  min-block-size: 52px;
  padding: 12px 26px;
  background: transparent;
  border-color: var(--color-line);
  color: var(--color-text-soft);
  font-size: 15px;
  letter-spacing: .06em;
}
.cta--quiet:hover{ background: transparent; border-color: var(--color-muted); color: var(--color-text); }


@media (max-width: 767px){
  .cta{ inline-size: 100%; }
  .cta--quiet{ inline-size: auto; }
}


.nav-cta{
  display: inline-flex;
  align-items: center;
  min-block-size: 38px;
  padding: 7px 18px;
  margin-inline-start: clamp(8px, 1.4vw, 20px);
  border: 1px solid var(--color-text);
  background: var(--color-text);
  color: var(--color-bg-soft);
  font-size: 14px;
  letter-spacing: .08em;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color .3s var(--ease), border-color .3s var(--ease);
}
.nav-cta:hover{ background: var(--color-text-soft); border-color: var(--color-text-soft); }

.site-header .nav-desktop .nav-cta, #nav-panel .nav-cta{ background: #514057; border-color: #514057; color: #fff; }
.site-header .nav-desktop .nav-cta:hover, #nav-panel .nav-cta:hover{ background: #62506a; border-color: #62506a; color: #fff; }


.nav-panel .nav-cta,
.nav-desktop .nav-cta{
  color: var(--color-bg-soft);
}
.nav-panel .nav-cta:hover,
.nav-desktop .nav-cta:hover{ color: var(--color-bg-soft); }

.nav-panel .nav-cta{
  display: flex;
  justify-content: center;
  inline-size: 100%;
  min-block-size: 56px;
  margin: clamp(18px, 4vw, 28px) 0 0;
  font-size: 16px;
}


.ap-send{ display: flex; flex-direction: column; align-items: center; gap: 16px; }


.ap-check-hint{ display: block; margin-top: 12px; }


.ap-form .section,
.ap-form .section--lg{
  
  padding-block: clamp(28px, 3.2vw, 46px);
}


.ap-form .section + .section{
  border-top: 1px solid var(--color-line-soft);
}


.ap-term__lead{ margin-top: 10px; }

.ap-more{ margin-top: 12px; }

.ap-more > summary{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  font-size: 14px;
  letter-spacing: .06em;
  color: var(--color-text-soft);
  cursor: pointer;
  list-style: none;
}
.ap-more > summary::-webkit-details-marker{ display: none; }


.ap-more > summary::after{
  content: "＋";
  font-size: 13px;
  color: var(--color-muted);
}
.ap-more[open] > summary::after{ content: "−"; }

.ap-more > summary:hover{ color: var(--color-text); }
.ap-more > summary:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 3px; }

.ap-more__body{ margin-top: 10px; }




.ap-form .head-block .label[lang="en"]{
  font-size: 11.5px;
  letter-spacing: .18em;
  color: var(--color-muted-soft);
}
.ap-form .head-block .h-section{ margin-top: 8px; }


.ap-form .ap-fields{ margin-top: clamp(26px, 3vw, 38px); }


.ap-reading{
  margin-top: clamp(24px, 3vw, 34px);
  padding: clamp(20px, 2.6vw, 28px) clamp(20px, 3vw, 32px);
  border: 1px solid var(--color-line);
  border-radius: 0;
  background: var(--color-bg-deep);
  text-align: left;
}


.ap-reading__tier{
  font-size: 11.5px;
  letter-spacing: .18em;
  color: var(--color-muted);
}


.ap-reading__head{
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 20px;
}
.ap-reading__name{
  margin-top: 0;
  font-size: clamp(16.5px, 1.3vw, 19px);
  letter-spacing: .05em;
  color: var(--color-text);
}
.ap-reading__price{
  margin-top: 0;
  font-size: clamp(18px, 1.5vw, 22px);
  letter-spacing: .03em;
  color: var(--color-text);
  white-space: nowrap;
}


.ap-reading__terms{
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 22px;
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--color-text-soft);
}
.ap-reading__terms > li{ padding-left: 0; }
.ap-reading__terms > li::before{ content: none; }


.ap-reading__lead{
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.85;
  color: var(--color-muted);
}


.ap-reading__change{ margin-top: 14px !important; text-align: left; }
.ap-reading__change .text-link{ font-size: 13px; }


.ap-form .ap-label{
  font-size: clamp(15px, 1.1vw, 16.5px);
  color: var(--color-text);
}


.ap-form .ap-input{
  border-bottom-color: var(--color-muted-soft);
  padding-block: 13px;
}
.ap-form .ap-input:focus{
  border-bottom-color: var(--color-text);
  outline: none;
}
.ap-form .ap-input:focus-visible{
  outline: 2px solid var(--color-focus);
  outline-offset: 3px;
}


.ap-form .ap-note,
.ap-form .note{
  font-size: 12.5px;
  line-height: 1.85;
  color: var(--color-muted);
}
.ap-form .ap-note{ margin-top: 8px; }   


.ap-optional,
.ap-required{
  margin-left: 8px;
  font-size: 11px;
  letter-spacing: .1em;
  vertical-align: 1px;
}
.ap-optional{ color: var(--color-muted); }
.ap-required{ color: var(--color-accent); }


@media (max-width: 480px){
  .ap-reading__head{ display: block; }
  .ap-reading__price{ margin-top: 6px; display: block; }
}


.ap-reading__tier-en{
  margin-top: 2px;
  font-size: 10.5px;
  letter-spacing: .2em;
  color: var(--color-muted-soft);
}


.ap-reading__terms--stack{
  display: block;
  margin-top: 8px;
}
.ap-reading__terms--stack > li{ line-height: 1.95; }
.pa-included__label{
  margin-top: 14px;
  font-size: 11.5px;
  letter-spacing: .16em;
  color: var(--color-muted);
}




.ap-group{
  margin: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--color-line);
  font-family: var(--font-serif-jp);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .12em;
  color: var(--color-text);
}


.ap-form .ap-fields{ gap: clamp(24px, 2.8vw, 32px); }

.ap-group + *{ margin-top: 0; }
.ap-fields > .ap-group:not(:first-child){ margin-top: clamp(16px, 2vw, 24px); }


.ap-reading + .ap-fields{ margin-top: clamp(22px, 2.6vw, 32px); }


.ap-reading{
  margin-top: clamp(18px, 2.2vw, 26px);
  padding: clamp(15px, 1.8vw, 20px) clamp(16px, 2.2vw, 24px);
}
.ap-reading__tier{ font-size: 11px; }
.ap-reading__tier-en{ margin-top: 1px; }
.ap-reading__head{ margin-top: 6px; gap: 4px 16px; }
.ap-reading__name{ font-size: clamp(15.5px, 1.15vw, 17px); }
.ap-reading__price{ font-size: clamp(16.5px, 1.3vw, 19px); }
.ap-reading__lead{ margin-top: 7px; font-size: 12.5px; line-height: 1.75; }
.ap-reading__terms{ margin-top: 8px; font-size: 13px; line-height: 1.7; }
.ap-reading__change{ margin-top: 10px !important; }
.ap-reading__change .text-link{ font-size: 12.5px; }


.pa-included__label{ margin-top: 10px; font-size: 11px; }
.ap-reading__terms--stack{ margin-top: 6px; }
.ap-reading__terms--stack > li{ line-height: 1.75; }


.ap-form .section:first-of-type{ padding-bottom: clamp(18px, 2vw, 26px); }
.ap-form .section:first-of-type + .section{ padding-top: clamp(22px, 2.4vw, 30px); }


.ap-form .head-block{ margin-bottom: 0; }


.pa-delivery-note{ margin-top: clamp(14px, 1.8vw, 20px); }
.pa-delivery-note .label{ font-size: 11px; letter-spacing: .18em; color: var(--color-muted-soft); }
.pa-delivery-note .body{
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.85;
  color: var(--color-text-soft);
}


.ap-reading--pc .ap-reading__terms{ margin-top: 6px; }
.ap-reading--pc .pa-included__label{ margin-top: 9px; }
.ap-reading--pc .ap-reading__terms--stack{ margin-top: 5px; }
.ap-reading--pc .ap-reading__terms--stack > li{ line-height: 1.65; }
.ap-reading--pc .ap-reading__change{ margin-top: 9px !important; }




.ap-flow{
  margin-top: clamp(30px, 3.6vw, 44px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--color-line-soft);
}
.ap-flow__title{
  margin: 0;
  text-align: center;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: .16em;
  color: var(--color-muted);
}
.ap-flow__list{
  margin: clamp(18px, 2.2vw, 26px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(14px, 1.8vw, 20px);
}
.ap-flow__item{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 12px;
  align-items: baseline;
}
.ap-flow__num{
  margin: 0;
  font-family: var(--font-serif-en);
  font-size: 13px;
  letter-spacing: .16em;
  
  color: var(--color-muted);
}
.ap-flow__name{
  margin: 0;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: clamp(15px, 1.2vw, 16.5px);
  line-height: 1.8;
  letter-spacing: .04em;
  color: var(--color-text);
}
.ap-flow__note{
  grid-column: 2;
  margin: 3px 0 0;
  color: var(--color-muted);
}


@media (min-width: 760px){
  .ap-flow__list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(28px, 3.4vw, 48px);
    row-gap: clamp(16px, 2vw, 22px);
  }
}


.ap-panel{
  border: 1px solid var(--color-line-soft);
  border-radius: 3px;
  padding: clamp(22px, 3vw, 36px) clamp(18px, 2.8vw, 36px);
}
.ap-panel > :first-child{ margin-top: 0; }

.ap-panel--input{
  margin-top: clamp(26px, 3vw, 36px);
  background: var(--color-bg-soft);
}
.ap-panel--check{
  margin-top: clamp(40px, 5vw, 62px);
  background: var(--color-bg-deep);
}


.ap-panel--check > .ap-term:first-of-type{ border-top: 0; padding-top: 0; }
.ap-panel--input > .ap-fields:first-child > .ap-group:first-child{ border-top: 0; }


.ap-confirm.ap-panel--check{ margin-top: clamp(34px, 4.2vw, 50px); }


.ap-aside{
  margin-top: clamp(26px, 3vw, 36px);
  padding-top: clamp(20px, 2.4vw, 26px);
  border-top: 1px solid var(--color-line-soft);
  text-align: center;
}
.ap-aside__title{ display: block; margin: 0; }
.ap-aside__lead{
  margin: clamp(10px, 1.4vw, 14px) 0 0;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 1.95;
  color: var(--color-text-soft);
}
.ap-aside__more{ margin-top: clamp(6px, 1vw, 10px); }


.ap-aside .ap-more__body.pa-session{
  margin-top: clamp(18px, 2.2vw, 26px);
  padding-top: 0;
  border-top: 0;
}


.ap-flow{ --flow-gap: clamp(12px, 1.5vw, 16px); }
.ap-flow__list{ gap: var(--flow-gap); }

.ap-flow__item{
  position: relative;
  align-self: stretch;
  grid-template-columns: 26px minmax(0, 1fr);
  column-gap: 10px;
  align-items: start;
}
.ap-flow__num{
  font-size: 13px;
  line-height: 26px;
  letter-spacing: .1em;
  text-align: center;
}
.ap-flow__name{ line-height: 26px; }
.ap-flow__note{ grid-column: 2; margin: 1px 0 0; line-height: 1.85; }


.ap-flow__item::before{
  content: "";
  position: absolute;
  left: 13px;
  top: 26px;
  bottom: calc(-1 * var(--flow-gap));
  width: 1px;
  
  background: var(--color-line);
}
.ap-flow__item:last-child::before{ display: none; }

@media (min-width: 760px){
  .ap-flow__list{
    grid-auto-flow: column;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    
    grid-template-rows: repeat(4, 1fr);
    column-gap: clamp(32px, 4vw, 56px);
    row-gap: var(--flow-gap);
  }
  
  .ap-flow__item:nth-child(4)::before{ display: none; }
}


.ap-flow__caution{
  margin: clamp(20px, 2.4vw, 28px) 0 0;
  padding-top: clamp(16px, 2vw, 20px);
  border-top: 1px solid var(--color-line-soft);
  text-align: center;
  color: var(--color-text-soft);
}



details.ap-terms{ display: block; }   

.ap-terms__summary{
  display: block;
  list-style: none;
  cursor: pointer;
  margin: 0;
  text-align: center;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.7;
  letter-spacing: .05em;
  color: var(--color-text);
}
.ap-terms__summary::-webkit-details-marker{ display: none; }
.ap-terms__summary::after{
  content: "＋";
  margin-inline-start: .5em;
  font-size: 14px;
  color: var(--color-muted);
}
details.ap-terms[open] .ap-terms__summary::after{ content: "−"; }
.ap-terms__summary:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 4px; }

.ap-terms__body{
  display: grid;
  gap: clamp(30px, 3.6vw, 42px);
  margin-top: clamp(26px, 3vw, 36px);
}


.ap-term__detail{ margin-top: 14px; color: var(--color-muted); }


#choose-reading{ scroll-margin-top: calc(var(--header-h) + 24px); }

.rd-choose{
  margin-top: clamp(36px, 4.5vw, 60px);
  display: grid;
  gap: clamp(36px, 5vw, 56px);
  text-align: center;
}


@media (min-width: 960px){
  .rd-choose{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(26px, 3vw, 40px);
    align-items: stretch;   
  }
  .rd-card{ height: 100%; }
  
  .rd-card__cta{ margin-top: auto !important; padding-top: clamp(18px, 2.2vw, 26px); }
}

.rd-card{
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: clamp(26px, 3vw, 32px);
  border-top: 1px solid var(--color-line);
}
.rd-card__label{ margin: 0; color: var(--color-muted-soft); }
.rd-card__name{
  margin: clamp(10px, 1.4vw, 14px) 0 0;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: clamp(17px, 1.5vw, 19px);
  line-height: 1.75;
  letter-spacing: .04em;
  color: var(--color-text);
}

.rd-card__price{
  margin: clamp(8px, 1.2vw, 12px) 0 0;
  font-family: var(--font-serif-jp);
  font-size: clamp(19px, 1.7vw, 23px);
  letter-spacing: .04em;
  color: var(--color-text);
}
.rd-card__lead{
  margin: clamp(12px, 1.6vw, 16px) 0 0;
  font-size: clamp(14.5px, 1.05vw, 15.5px);
  line-height: 1.95;
  color: var(--color-text-soft);
}
.rd-card__cta{ margin-top: clamp(18px, 2.2vw, 26px) !important; }
.rd-card__more{ margin: clamp(12px, 1.5vw, 16px) 0 0; font-size: 13.5px; }


.rd-choose + .body--flow{ margin-top: clamp(44px, 5.5vw, 68px); }


@media (min-width: 960px){
  .rd-card__cta{ margin-top: auto !important; padding-top: clamp(18px, 2.2vw, 26px); }
}


.ab-title-optical{ padding-inline: .54em; }




.home-choice{
  margin-top: clamp(40px, 5vw, 64px);
  border-top: 1px solid var(--color-line);
}
.home-choice__group{ padding-top: clamp(24px, 3vw, 32px); }
.home-choice__group + .home-choice__group{
  margin-top: clamp(28px, 4vw, 40px);
  border-top: 1px solid var(--color-line-soft);
}
.home-choice__list{ display: grid; margin-top: 10px; }
.home-choice__list > li + li{ border-top: 1px solid var(--color-line-soft); }
.home-choice__link{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 44px;
  padding: 16px 0;
  text-decoration: none;
  color: var(--color-text);
}
.home-choice__label{
  font-family: var(--font-serif-en);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.home-choice__name{
  font-family: var(--font-serif-jp);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .05em;
  color: var(--color-text);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: 7px;
  transition: text-decoration-color 420ms var(--ease);
}
.home-choice__link:hover .home-choice__name,
.home-choice__link:focus-visible .home-choice__name{ text-decoration-color: var(--color-accent); }
.home-choice__note{
  font-size: 13px;
  line-height: 1.9;
  letter-spacing: .04em;
  color: var(--color-muted);
}
@media (min-width: 1024px){
  .home-choice{ display: grid; grid-template-columns: 2fr 1fr; }
  .home-choice__group:first-child{ padding-right: clamp(24px, 3vw, 48px); }
  .home-choice__group + .home-choice__group{
    margin-top: 0;
    border-top: 0;
    border-left: 1px solid var(--color-line-soft);
    padding-left: clamp(24px, 3vw, 48px);
  }
  .home-choice__group:first-child .home-choice__list{
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(24px, 3vw, 40px);
  }
  .home-choice__group:first-child .home-choice__list > li + li{ border-top: 0; }
}


.lm-reading[data-reading-focus]{ border-top-color: var(--color-accent); }
.lm-work[data-reading-focus] .split__body > .label::before{
  content: "";
  display: block;
  width: 28px;
  height: 1px;
  margin-bottom: 14px;
  background: var(--color-accent);
}
#personal-reading,
#signature-reading{ scroll-margin-top: calc(var(--header-h) + 32px); }


.basic-toc{ margin-top: clamp(56px, 7vw, 96px); }
.basic-toc [hidden]{ display: none !important; }
.basic-toc__title{
  font-family: var(--font-serif-jp);
  font-size: clamp(17px, 1.3vw, 19px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .08em;
  color: var(--color-text);
}
.basic-toc__note{
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: .04em;
  color: var(--color-muted);
}
.basic-toc__front{
  margin-top: 22px;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: .04em;
  color: var(--color-muted);
}
.basic-toc__list{
  margin-top: 22px;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--color-line-soft);
}
.basic-toc__front + .basic-toc__list{ margin-top: 14px; }
.basic-toc__list > li{
  padding: 10px 0;
  border-bottom: 1px solid var(--color-line-soft);
  font-size: 15px;
  line-height: 1.8;
  letter-spacing: .04em;
  color: var(--color-text);
}
.basic-toc__list > li[data-toc-group-start]{ margin-top: 22px; }
.basic-toc__list > li:first-child[data-toc-group-start]{ margin-top: 0; }
.basic-toc.is-preview .basic-toc__list > li[data-toc-group-start]{ margin-top: 0; }
.basic-toc.is-preview .basic-toc__list > li.is-after-gap::before{
  content: "";
  display: block;
  height: 12px;
  margin: -6px 0 8px 3px;
  border-left: 1px dotted var(--color-accent);
}
.basic-toc__list:focus{ outline: none; }
.basic-toc__list:focus-visible{ outline: 1px dotted var(--color-accent); outline-offset: 10px; }
.basic-toc__more{
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 22px;
  padding: 10px 0;
  font-family: var(--font-serif-jp);
  font-size: 14px;
  letter-spacing: .08em;
  color: var(--color-text);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--color-line);
  cursor: pointer;
  transition: border-color 420ms var(--ease);
}
.basic-toc__more:hover{ border-bottom-color: var(--color-accent); }
.basic-toc__more:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 4px; }


[aria-labelledby="pc-book"] .container--text > .pc-gap:first-child{ margin-top: 0; }


.pc-sample-pages{
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: 22px;
  border-top: 1px solid var(--color-line-soft);
}
.pc-sample-pages__count{
  font-family: var(--font-serif-jp);
  font-size: 15px;
  letter-spacing: .06em;
  color: var(--color-text);
}
.pc-sample-pages .note{ margin-top: 6px; }


.ab-entrance .label.ab-person{
  margin-top: 0;
  font-family: var(--font-serif-jp);
  font-size: clamp(17px, 1.5vw, 20px);
  font-weight: 400;
  letter-spacing: .16em;
  text-transform: none;
  color: var(--color-text-soft);
}
.ab-presence{ max-width: 880px; margin-inline: auto; margin-top: clamp(64px, 8vw, 112px); }
.ab-presence img{ width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 42% 50%; }
@media (min-width: 900px){
  .ab-presence img{ aspect-ratio: 2048 / 1144; object-position: 50% 50%; }
}


.ab-presence--top{ margin-top: clamp(24px, 4vw, 40px); }
.ab-entrance .container--text.text-center{ margin-top: clamp(40px, 5vw, 64px); }
.ab-nametag{
  margin-top: 10px;
  font-family: var(--font-serif-jp);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: .04em;
  color: var(--color-text);
}


.img-note{
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: .04em;
  color: var(--color-muted);
  text-align: right;
}
.pc-media .img-note{ max-width: 620px; margin-inline: auto; }
@media (min-width: 1024px){
  .img-note{ font-size: 13px; }
}




.hero__subhead{
  margin-top: 14px;
  font-family: var(--font-serif-jp);
  font-size: clamp(19px, 2vw, 24px);
  letter-spacing: .03em;
  color: var(--color-text);
}
.hero__cta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
}
@media (max-width: 767px){
  .hero__cta{ flex-direction: column; align-items: flex-start; }
}


.triad-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(20px, 3vw, 28px);
  margin-top: clamp(32px, 4vw, 48px);
}
@media (min-width: 900px){
  .triad-grid{ grid-template-columns: repeat(3, 1fr); }
}
.triad-card{
  padding: clamp(26px, 3vw, 34px) clamp(22px, 2.6vw, 30px);
  background: var(--color-bg-soft);
  border: 1px solid var(--color-line);
}
.triad-card__name{
  font-family: var(--font-serif-jp);
  font-size: 17px;
  letter-spacing: .03em;
  color: var(--color-text);
}
.triad-card__lead{
  margin-top: 12px;
  font-size: 14.5px;
  line-height: 1.9;
  color: var(--color-text-soft);
}
.triad-card__link{ margin-top: 18px; }


.cc-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 4vw, 40px);
}
@media (min-width: 900px){
  .cc-grid{ grid-template-columns: repeat(3, 1fr); }
}
.cc-card{
  margin: 0;
  padding: clamp(24px, 3vw, 32px);
  background: var(--color-bg-soft);
}

.cc-card--explain{
  border: 1px dashed var(--color-accent);
}

.cc-card--evidence{
  border: 1px solid var(--color-text);
}
.cc-card--evidence [data-highlight]{
  fill: var(--color-accent);
  opacity: .35;
}
.cc-card__badge{
  display: inline-block;
  margin: 0 0 18px;
  padding: 3px 10px;
  font-family: var(--font-serif-jp);
  font-size: 11.5px;
  letter-spacing: .08em;
  color: var(--color-accent);
  border: 1px solid var(--color-accent);
}
.cc-card--evidence .cc-card__badge{ color: var(--color-text); border-color: var(--color-text); }
.cc-card__figure{
  margin: 0 0 20px;
  max-width: 240px;
  margin-inline: auto;
}
.cc-card__svg{ width: 100%; height: auto; display: block; }
.cc-card__svg .schema-line{ stroke: var(--color-text-soft); stroke-width: 1.4; }
.cc-card__svg .schema-line--thin{ stroke: var(--color-line); stroke-width: 1; }
.cc-card__svg .schema-fill{ fill: var(--color-bg); }
.cc-card__svg .schema-label text{
  text-anchor: middle;
  dominant-baseline: middle;
  font-family: var(--font-serif-en);
  font-size: 15px;
  fill: var(--color-muted);
}
.cc-card__name{
  margin: 0 0 16px;
  font-family: var(--font-serif-jp);
  font-size: 15.5px;
  letter-spacing: .03em;
  color: var(--color-text);
  text-align: center;
}
.cc-card__legend{ margin: 0; }
.cc-card__legend div + div{ margin-top: 14px; }
.cc-card__legend dt{
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--color-muted-soft);
}
.cc-card__legend dd{
  margin: 3px 0 0;
  font-size: 14px;
  line-height: 1.85;
  color: var(--color-text-soft);
}
.cc-card__note{
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--color-line-soft);
  font-size: 13px;
  line-height: 1.85;
  color: var(--color-muted);
}
.cc-close-line{ margin-top: 1em; }


.et-trace{
  margin-top: clamp(28px, 3.5vw, 40px);
  border-top: 1px solid var(--color-line);
}
.et-step{ border-bottom: 1px solid var(--color-line); }
.et-step__summary{
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 20px 2px;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-serif-jp);
  font-size: 16px;
  color: var(--color-text);
}
.et-step__summary::-webkit-details-marker{ display: none; }
.et-step__num{
  flex: 0 0 auto;
  font-family: var(--font-serif-en);
  font-size: 13px;
  letter-spacing: .06em;
  color: var(--color-accent);
}
.et-step__label{ flex: 1 1 auto; }
.et-step__icon{
  flex: 0 0 auto;
  color: var(--color-muted-soft);
  transition: transform 300ms var(--ease);
}
.et-step[open] .et-step__icon{ transform: rotate(45deg); }
.et-step__body{
  padding: 0 2px 22px;
  font-size: 14.5px;
  line-height: 1.9;
  color: var(--color-text-soft);
}
.et-step__summary:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 2px; }
.et-note{
  margin-top: clamp(20px, 2.5vw, 28px);
  font-size: 13.5px;
  line-height: 1.85;
  color: var(--color-muted);
}


.cmp-scroll{ overflow-x: auto; }
.cmp-table{
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  margin-top: clamp(24px, 3vw, 32px);
}
.cmp-table th,
.cmp-table td{
  padding: 16px 14px;
  text-align: left;
  font-size: 14px;
  line-height: 1.85;
  border-bottom: 1px solid var(--color-line);
  vertical-align: top;
}
.cmp-table thead th{
  font-family: var(--font-serif-jp);
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--color-muted);
  font-weight: 400;
  white-space: nowrap;
}
.cmp-table tbody th{
  width: 22%;
  font-weight: 400;
  color: var(--color-text);
}
.cmp-table__name{ display: block; font-size: 14.5px; color: var(--color-text); }

.cmp-table__price{
  display: block;
  margin-top: 6px;
  font-family: var(--font-serif-jp);
  font-size: clamp(19px, 1.7vw, 23px);
  font-weight: 400;
  letter-spacing: .02em;
  color: var(--color-text);
}
@media (min-width: 900px){
  .cmp-table{ min-width: 0; }
}
@media (max-width: 767px){
  .cmp-table{ min-width: 0; }
  .cmp-table thead{ display: none; }
  .cmp-table, .cmp-table tbody, .cmp-table tr, .cmp-table th, .cmp-table td{ display: block; width: 100%; }
  .cmp-table tr{
    margin-bottom: 8px;
    padding: 18px 0;
    border-top: 1px solid var(--color-line);
  }
  
  .cmp-table tbody th{ width: 100%; padding-bottom: 10px; }
  .cmp-table td{ border-bottom: 0; padding: 8px 0; }
  .cmp-table td::before{
    content: attr(data-label);
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
    letter-spacing: .04em;
    color: var(--color-muted-soft);
  }
}


.section--emphasis{
  background: var(--color-bg-soft);
  border-top: 1px solid var(--color-line);
}
.mx-kicker{
  font-family: var(--font-serif-en);
  font-size: 13px;
  letter-spacing: .24em;
  color: var(--color-accent);
}
.mx-divide{
  width: 44px;
  height: 1px;
  margin: 18px auto 0;
  background: var(--color-accent);
}
.mx-lead{ margin-top: clamp(28px, 4vw, 40px); }
.mx-point{
  margin: clamp(32px, 4vw, 48px) auto 0;
  max-width: 520px;
  padding: 22px 26px;
  text-align: left;
  border-left: 2px solid var(--color-accent);
  background: var(--color-bg);
}
.mx-point__label{
  margin: 0 0 8px;
  font-family: var(--font-serif-en);
  font-size: 11.5px;
  letter-spacing: .08em;
  color: var(--color-muted-soft);
}
.mx-closing{
  margin-top: clamp(40px, 5.5vw, 60px);
  font-family: var(--font-serif-jp);
  font-size: clamp(19px, 2.2vw, 25px);
  line-height: 1.95;
  color: var(--color-text);
}


.qp-list{ margin: 0; padding: 0; list-style: none; max-width: 640px; margin-inline: auto; }
.qp-list li{
  position: relative;
  padding-left: 26px;
  font-size: 15.5px;
  line-height: 2;
  color: var(--color-text-soft);
}
.qp-list li + li{ margin-top: 14px; }
.qp-list li::before{
  content: "―";
  position: absolute;
  left: 0;
  color: var(--color-accent);
}


.gate-pending__note{
  margin-top: 10px;
  font-size: 13.5px;
  color: var(--color-muted);
}


.sample-reading__note{
  margin-top: 14px;
}
.sample-reading{
  max-width: 1000px;
  margin: clamp(32px, 4.5vw, 48px) auto 0;
}
.sample-reading img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 2px;
}
.sample-reading__link{
  margin-top: clamp(20px, 3vw, 28px);
}


.home-faq-list{ margin: 0; padding: 0; list-style: none; }
.home-faq-list li{
  padding: 16px 4px;
  border-bottom: 1px solid var(--color-line);
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
}


.process-wrap{
  max-width: 1040px;
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.process-lede{
  margin-top: clamp(70px, 8vw, 100px);
}
.process-lede .label{ margin: 0; }

.process-rule-wide{
  width: 64px;
  height: 1px;
  margin: 16px auto 0;
  background: var(--color-line);
}
.process-grid{
  margin-top: clamp(48px, 6vw, 64px);
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 3vw, 36px);
  text-align: left;
}
@media (min-width: 900px){
  .process-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(28px, 2.6vw, 36px);
  }
}

.process-grid--second{ margin-top: clamp(28px, 3vw, 36px); }
@media (min-width: 900px){
  .process-grid--second{ margin-top: clamp(28px, 2.6vw, 36px); }
}

.process-step{
  border: 1px solid var(--color-line);
  padding: clamp(28px, 3vw, 36px) clamp(24px, 2.6vw, 32px);
}
.process-step__no{
  display: block;
  font-family: var(--font-serif-en);
  font-size: clamp(34px, 3.2vw, 44px);
  font-weight: 500;
  letter-spacing: .06em;
  line-height: 1;
  color: var(--color-text);
}

.process-step__rule{
  width: 40px;
  height: 1px;
  margin-top: 18px;
  background: var(--color-line);
}
.process-step__name{
  margin-top: 18px;
  font-size: clamp(19px, 1.6vw, 22px);
  line-height: 1.6;
  color: var(--color-text);
}
.process-step__desc{
  margin-top: 12px;
  font-size: clamp(15px, 1.1vw, 16px);
  line-height: 1.95;
  color: var(--color-text-soft);
}
.process-closing{
  margin-top: clamp(88px, 10vw, 100px);
  font-family: var(--font-serif-jp);
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.9;
  color: var(--color-text);
  text-align: center;
}
.process-closing__note{
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-muted);
  text-align: center;
}


.sys-chart{
  margin: clamp(28px, 4vw, 40px) auto 0;
  max-width: 760px;
}

.sys-chart__figure{ max-width: none; }
.sys-chart__figure img{
  width: 100%;
  height: auto;
  display: block;
  border: 0;
}

.sys-chart__figure{ overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sys-chart__figure iframe{
  display: block;
  width: 680px;
  max-width: none;
  height: 460px;
  border: 0;
  background: var(--color-bg);
}


@media (max-width: 640px){
  .sys-chart__figure img{
    width: auto;
    max-width: none;
  }
}
.sys-chart__figure:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 2px; }
.sys-chart__hint{
  margin: 10px 0 0;
  font-size: 13px;
  letter-spacing: .02em;
  color: var(--color-muted-soft);
  text-align: center;
}
@media (min-width: 641px){
  .sys-chart__hint{ display: none; }
}


.sys-tech-list{ max-width: 560px; margin-inline: auto; }



.sys-compare-card__figure--frame{
  position: relative;
  width: 100%;
  height: 157.5px;
  overflow: hidden;
}
.sys-compare-card__figure--frame iframe{
  position: absolute;
  top: 0;
  left: 0;
  width: 640px;
  height: 420px;
  border: 0;
  background: var(--color-bg);
  transform: scale(.375);
  transform-origin: top left;
}


.sys-detail{
  margin: clamp(24px, 3vw, 34px) auto 0;
  max-width: 560px;
  border-top: 1px solid var(--color-line);
}
.sys-detail__summary{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 2px;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-serif-jp);
  font-size: 15px;
  letter-spacing: .04em;
  color: var(--color-text);
}
.sys-detail__summary::-webkit-details-marker{ display: none; }
.sys-detail__icon{
  flex: 0 0 auto;
  color: var(--color-muted-soft);
  transition: transform 300ms var(--ease);
}
.sys-detail[open] .sys-detail__icon{ transform: rotate(45deg); }
.sys-detail__summary:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 2px; }
.sys-detail__body{ padding: 2px 2px 28px; }
.sys-detail__list{ margin: 0; }
.sys-detail__list div + div{
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--color-line-soft);
}
.sys-detail__list dt{
  font-family: var(--font-serif-jp);
  font-size: 14.5px;
  letter-spacing: .03em;
  color: var(--color-text);
}
.sys-detail__list dd{
  margin: 6px 0 0;
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-text-soft);
}




.term-list{
  margin: clamp(28px, 3.4vw, 40px) auto 0;
  max-width: 560px;
  text-align: left;
}
.term-list > div + div{
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--color-line-soft);
}
.term-list dt{
  font-family: var(--font-serif-jp);
  font-size: 15px;
  letter-spacing: .03em;
  color: var(--color-text);
}
.term-list dd{
  margin: 6px 0 0;
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-text-soft);
}
.term-list__caveat{
  margin-top: clamp(24px, 3vw, 32px);
  text-align: center;
}


.method-note{
  margin: clamp(24px, 3vw, 32px) auto 0;
  max-width: 560px;
  padding: 18px 22px;
  text-align: left;
  border-left: 2px solid var(--color-accent);
  background: var(--color-bg-soft);
}
.method-note .label{ margin: 0 0 8px; }
.method-note .body{ margin: 0; }


.step-divider{
  max-width: 720px;
  margin: clamp(56px, 7vw, 88px) auto 0;
  padding-inline: var(--gutter);
  text-align: center;
}
.step-divider .label{ margin: 0; }
.step-divider__title{
  margin-top: 10px;
  font-family: var(--font-serif-jp);
  font-size: clamp(19px, 1.6vw, 22px);
  color: var(--color-text);
}


.step-closing{
  max-width: 560px;
  margin: clamp(64px, 8vw, 96px) auto 0;
  padding-inline: var(--gutter);
  text-align: center;
}
.step-closing__line{
  font-size: 14px;
  letter-spacing: .04em;
  color: var(--color-muted);
}


.mx-photo-note{
  margin-top: clamp(28px, 3.4vw, 40px);
  padding-top: clamp(20px, 2.6vw, 28px);
  border-top: 1px solid var(--color-line-soft);
}


.std-list{
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 640px;
  margin-inline: auto;
}
.std-list > li{
  padding: clamp(22px, 2.8vw, 30px) 0;
  border-bottom: 1px solid var(--color-line);
}
.std-list > li:first-child{ padding-top: 0; }
.std-list__num{
  margin: 0 0 8px;
  font-family: var(--font-serif-en);
  font-size: 13px;
  letter-spacing: .06em;
  color: var(--color-accent);
}
.std-list__title{
  margin: 0;
  font-family: var(--font-serif-jp);
  font-size: 17px;
  font-weight: 400;
  letter-spacing: .03em;
  color: var(--color-text);
}
.std-list__body{
  margin: 10px 0 0;
  font-size: 14.5px;
  line-height: 1.9;
  color: var(--color-text-soft);
}
.std-list__caveat{
  margin-top: clamp(24px, 3vw, 32px);
  text-align: center;
}


.mra-diagram-text{
  max-width: 480px;
  margin: 0 auto;
  padding-left: 1.4em;
  font-size: 14px;
  line-height: 1.95;
  color: var(--color-text-soft);
}
.mra-diagram-text li + li{ margin-top: 6px; }


.ex-frame{
  min-height: clamp(160px, 22vw, 240px);
  margin-inline: auto;
  max-width: 640px;
}





.why-statement{
  margin: 0 auto;
  max-width: 13em;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  font-size: clamp(28px, 4vw, 58px);
  line-height: 1.5;
  letter-spacing: .02em;
  color: var(--color-text);
  text-align: center;
}
.why-statement + .body{ margin-top: clamp(40px, 5vw, 56px); }
.why-statement--sub{ margin-bottom: clamp(56px, 7vw, 88px); }


.why-sub{ margin-top: clamp(56px, 7vw, 88px); }

.why-statement--sub + .why-sub{ margin-top: 0; }
.why-sub__title{
  font-family: var(--font-serif-jp);
  font-size: clamp(19px, 1.6vw, 23px);
  font-weight: 400;
  line-height: 1.7;
  color: var(--color-text);
}
.why-sub__title + .body{ margin-top: clamp(22px, 3vw, 30px); }


.sticky-cta{
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 60;
  padding: 6px clamp(16px, 5vw, 24px) calc(6px + env(safe-area-inset-bottom));
  background: var(--color-bg-soft);
  border-top: 1px solid var(--color-line);
}
.sticky-cta[hidden]{ display: none; }

.sticky-cta__link{
  display: flex;
  align-items: center;
  justify-content: center;
  min-block-size: 44px;
  inline-size: 100%;
  border: 1px solid var(--color-text);
  background: var(--color-text);
  color: var(--color-bg-soft);
  font-family: var(--font-serif-jp);
  font-size: 14.5px;
  letter-spacing: .05em;
  text-align: center;
  text-decoration: none;
  transition: background-color .3s var(--ease), border-color .3s var(--ease);
}
.sticky-cta__link:hover{ background: var(--color-text-soft); border-color: var(--color-text-soft); }


body.has-sticky-cta{ padding-bottom: calc(58px + env(safe-area-inset-bottom)); }

@media (min-width: 768px){
  .sticky-cta{ display: none !important; }
  body.has-sticky-cta{ padding-bottom: 0; }
}




.hero__cta-group{
  display: flex;
  flex-wrap: wrap;
  gap: clamp(12px, 1.6vw, 18px);
  margin-top: clamp(22px, 2.8vw, 32px);
}


.home-books{
  margin-top: clamp(32px, 4vw, 48px);
  display: grid;
  gap: clamp(36px, 5vw, 56px);
  text-align: center;
}
@media (min-width: 960px){
  .home-books{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(26px, 3vw, 40px);
    align-items: stretch;
  }
  .home-books .rd-card{ height: 100%; }
}


.home-features{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 3.5vw, 40px);
  margin-top: clamp(32px, 4vw, 48px);
  text-align: center;
}
@media (min-width: 900px){
  .home-features{ grid-template-columns: repeat(3, 1fr); }
}
.home-feature__name{
  font-family: var(--font-serif-jp);
  font-size: clamp(16.5px, 1.35vw, 18.5px);
  letter-spacing: .03em;
  color: var(--color-text);
}
.home-feature__desc{
  margin-top: 12px;
  font-size: 14.5px;
  line-height: 1.95;
  color: var(--color-text-soft);
}


.home-about__photo{
  max-width: 220px;
  margin: clamp(20px, 2.6vw, 28px) auto 0;
}
.home-about__photo img{ width: 100%; height: auto; display: block; }


.home-flow{
  margin: clamp(32px, 4vw, 48px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(28px, 3.5vw, 40px);
}
@media (min-width: 900px){
  .home-flow{ grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 2.4vw, 28px); }
}
.home-flow__step{
  padding-top: clamp(20px, 2.4vw, 28px);
  border-top: 1px solid var(--color-line-soft);
}
.home-flow__no{
  font-family: var(--font-serif-en);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--color-muted);
}
.home-flow__name{
  margin-top: 8px;
  font-size: clamp(16px, 1.3vw, 18px);
  font-weight: 400;
  color: var(--color-text);
}
.home-flow__step p{
  margin-top: 10px;
  font-size: 14.5px;
  line-height: 1.9;
  color: var(--color-text-soft);
}


.product-summary{ padding-top: calc(var(--header-h) + clamp(28px, 4vw, 44px)); padding-bottom: clamp(20px, 3vw, 32px); }
.product-summary__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(20px, 2.6vw, 28px);
  text-align: center;
}
@media (min-width: 720px){
  .product-summary__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-summary__grid--solo{ grid-template-columns: minmax(0, 420px); justify-content: center; }
}
.product-summary__card{
  padding: clamp(22px, 2.8vw, 30px) clamp(20px, 2.4vw, 26px);
  border: 1px solid var(--color-line);
  background: var(--color-bg-soft);
}
.product-summary__label{ margin: 0; color: var(--color-muted-soft); }
.product-summary__name{
  margin: clamp(8px, 1.2vw, 12px) 0 0;
  font-family: var(--font-serif-jp);
  font-size: clamp(17px, 1.5vw, 19px);
  letter-spacing: .04em;
  color: var(--color-text);
}
.product-summary__sub{
  margin: 6px 0 0;
  font-size: 14px;
  color: var(--color-text-soft);
}
.product-summary__price{
  margin: clamp(8px, 1.2vw, 12px) 0 0;
  font-family: var(--font-serif-jp);
  font-size: clamp(19px, 1.7vw, 23px);
  letter-spacing: .04em;
  color: var(--color-text);
}
.product-summary__meta{
  margin: clamp(10px, 1.4vw, 14px) 0 0;
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--color-text-soft);
}
.product-summary__cta{ margin: clamp(16px, 2vw, 22px) 0 0; }
.product-summary__cta .cta{ inline-size: 100%; }
@media (min-width: 480px){
  .product-summary__cta .cta{ inline-size: auto; }
}


.tm-inline-link{ color: inherit; text-decoration: underline; text-decoration-color: var(--color-line); text-underline-offset: .3em; }
.tm-inline-link:hover{ text-decoration-color: var(--color-accent); }


@media (min-width: 1024px){
  .nav-drop{ position: relative; }
  .nav-drop__button{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    list-style: none;
    cursor: pointer;
    font-family: var(--font-serif-jp);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: .08em;
    color: var(--color-text-soft);
    white-space: nowrap;
    padding-block: 8px;
    border-bottom: 1px solid transparent;
    transition: color 420ms var(--ease), border-color 420ms var(--ease);
  }
  .nav-drop__button::-webkit-details-marker{ display: none; }
  .nav-drop__button::marker{ content: ""; }
  .nav-drop__button::after{
    content: "";
    inline-size: 6px;
    block-size: 6px;
    margin-top: -4px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg);
    transition: transform 300ms var(--ease);
  }
  .nav-drop[open] > .nav-drop__button::after{ margin-top: 3px; transform: rotate(-135deg); }
  .nav-drop__button:hover,
  .nav-drop[open] > .nav-drop__button{ color: var(--color-text); border-bottom-color: var(--color-accent); }
  .nav-drop__button:focus-visible{ outline: 2px solid var(--color-focus, currentColor); outline-offset: 4px; }
  .nav-drop__list{
    position: absolute;
    top: calc(100% + 12px);
    left: -22px;
    z-index: 110;
    margin: 0;
    padding: 8px 0;
    list-style: none;
    min-inline-size: max-content;
    background: var(--color-bg-soft);
    border: 1px solid var(--color-line);
  }
  .nav-desktop .nav-drop__list a{
    display: flex;
    align-items: center;
    min-block-size: 44px;
    padding: 6px 22px;
    border-bottom: 0;
    color: var(--color-text);
  }
  .nav-desktop .nav-drop__list a:hover,
  .nav-desktop .nav-drop__list a:focus-visible{ background: var(--color-line-soft); border-bottom: 0; }
  
  .nav-desktop .nav-cta,
  .nav-desktop .nav-cta:hover{ padding: 7px 18px; border: 1px solid var(--color-text); }
  .nav-desktop .nav-cta:hover{ border-color: var(--color-text-soft); }
  .nav-desktop .nav-cta:focus-visible{ outline: 2px solid var(--color-focus, currentColor); outline-offset: 3px; }
}

.nav-panel__label{
  margin: 0;
  padding: 20px 2px 4px;
  font-family: var(--font-serif-jp);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: .08em;
  color: var(--color-text);
}
.nav-panel .nav-panel__sub{ gap: 0; border-top: 0; padding: 0 0 10px 1em; }
.nav-panel .nav-panel__sub li{ border-bottom: 0; }
.nav-panel .nav-panel__sub a{ padding: 12px 2px; font-size: 16px; letter-spacing: .04em; line-height: 1.6; }
.nav-panel__apply{ margin: 0; }

.nav-panel .nav-panel__apply .nav-cta{ padding: 12px 18px; }

.apply-head{ margin-bottom: clamp(32px, 4.4vw, 48px); }
.apply-lead{ margin: clamp(18px, 2.4vw, 26px) auto 0; max-width: 36em; font-size: clamp(15.5px, 1.2vw, 17px); line-height: 2; color: var(--color-text); text-wrap: balance; }
.apply-product{ display: none; }
.apply-product--solo, .apply-product.is-on, .no-js .apply-product{ display: block; }
.no-js .apply-product + .apply-product{ margin-top: clamp(64px, 8vw, 96px); padding-top: clamp(48px, 6vw, 72px); border-top: 1px solid var(--color-line); }
.apply-has-product .apply-choose, .no-js .apply-choose{ display: none; }
.apply-block{ max-width: 520px; margin: 0 auto; }
.apply-block + .apply-block{ margin-top: clamp(24px, 3.4vw, 34px); }
.apply-block p{ margin: 0; font-size: 16px; line-height: 1.9; color: var(--color-text); overflow-wrap: anywhere; }
.apply-block p + p{ margin-top: 10px; }
.apply-sum{ padding: clamp(22px, 3.2vw, 32px) clamp(18px, 3vw, 30px); background: var(--ap-tint, #FBF8F3); }
.apply-block .apply-item__name{ text-align: center; font-family: var(--font-serif-jp); font-size: clamp(19px, 1.7vw, 23px); line-height: 1.7; letter-spacing: .04em; }
.apply-block .apply-item__price{ margin-top: 2px; text-align: center; font-family: var(--font-serif-jp); font-size: clamp(25px, 2.3vw, 31px); line-height: 1.6; letter-spacing: .03em; }
.apply-item__tax{ margin-left: 2px; font-size: max(13px, .5em); }
.apply-block .apply-limit{ margin-top: 6px; text-align: center; line-height: 1.6; }
.preorder-limit{ display: inline-block; padding: 2px 12px; border: 1px solid var(--color-accent); background: rgba(255, 254, 252, .6); font-family: var(--font-serif-jp); font-size: 14.5px; line-height: 1.8; letter-spacing: .08em; color: var(--color-text); }
.apply-facts{ margin: clamp(14px, 2vw, 18px) 0 0; border-top: 1px solid rgba(69, 60, 52, .2); }
.apply-facts > div{ padding: 9px 0; border-bottom: 1px solid rgba(69, 60, 52, .2); }
.apply-facts dt{ font-size: 14.5px; letter-spacing: .04em; line-height: 1.7; color: var(--color-text-soft); }
.apply-facts dd{ margin: 1px 0 0; font-size: 16px; line-height: 1.75; color: var(--color-text); overflow-wrap: anywhere; }
.apply-facts__note{ display: block; margin-top: 2px; font-size: 14.5px; line-height: 1.75; color: var(--color-text-soft); }
@media (min-width: 640px){
  .apply-facts > div{ display: grid; grid-template-columns: minmax(0, 7.5em) minmax(0, 1fr); column-gap: 14px; align-items: baseline; }
  .apply-facts dd{ margin-top: 0; }
}
.apply-block .apply-terms__title{ margin-top: clamp(16px, 2.2vw, 20px); font-family: var(--font-serif-jp); font-size: 16.5px; font-weight: 500; line-height: 1.7; }
.apply-terms__list{ margin: 6px 0 0; padding: 0; list-style: none; }
.apply-terms__list li{ position: relative; margin-top: 4px; padding-left: 1.1em; font-size: 15.5px; line-height: 1.8; color: var(--color-text); overflow-wrap: anywhere; }
.apply-terms__list li::before{ content: "・"; position: absolute; left: 0; }
.apply-block.apply-line{ margin-top: clamp(18px, 2.6vw, 24px); text-align: center; }
.apply-block .apply-form__cta{ margin: 0; }
.apply-block .apply-form__note{ margin: 10px auto 0; font-size: 15px; line-height: 1.8; color: var(--color-text-soft); text-wrap: balance; }
.apply-choose{ max-width: 560px; margin: 0 auto; text-align: center; }
.apply-choose__lead{ margin: 0; font-size: clamp(15px, 1.15vw, 16.5px); line-height: 2; color: var(--color-text); }
.apply-choose__list{ margin: clamp(16px, 2.2vw, 22px) 0 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.apply-choose__link{ display: block; padding: clamp(16px, 2.2vw, 20px) clamp(14px, 2.4vw, 22px); border: 1px solid var(--color-line); font-family: var(--font-serif-jp); font-size: clamp(16px, 1.3vw, 18px); line-height: 1.8; color: var(--color-text); text-decoration: none; overflow-wrap: anywhere; }
.apply-choose__link:hover{ border-color: var(--color-accent); }
@media (max-width: 479px){
  .apply-choose__link .nb{ display: block; }
  .apply-choose__sep{ display: none; }
}
.apply-choose__link:focus-visible{ outline: 2px solid var(--color-focus); outline-offset: 3px; }
.apply-form{ --color-text: #453C34; --color-text-soft: #5C5148; }
.apply-product[data-apply-product="personal"]{ --ap-tint: #F7EFED; }
.apply-product[data-apply-product="signature"]{ --ap-tint: #F1EDF6; }
.apply-product[data-apply-product="life"]{ --ap-tint: #F4EFE5; }
.apply-form__cta .cta{ inline-size: 100%; }
@media (min-width: 640px){ .apply-form__cta .cta{ inline-size: auto; min-inline-size: 300px; } }
.apply-form__cta .cta{ background: #514057; border-color: #514057; color: #fff; }
.apply-form__cta .cta:hover{ background: #62506a; border-color: #62506a; }
