/* ==================================================
   SHINEWITH STYLE.CSS
   Cleaned / Consolidated Version
   2026-08-28
================================================== */


/* ==================================================
   01. BASIC
================================================== */

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  background: #111111;
  color: #f4efe7;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  line-height: 2;
}

section {
  padding: 120px 8%;
}

.gold {
  color: #c5a66a;
}

.english {
  font-family: Georgia, serif;
  color: #c5a66a;
  letter-spacing: 6px;
  font-size: 13px;
}


/* ==================================================
   02. HEADER / NAVIGATION
================================================== */

header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 3000;
  width: 100%;
  height: 80px;
  padding: 0 6%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(17, 17, 17, 0.92);
}

header .logo {
  position: relative;
  z-index: 3002;
  font-family: Georgia, serif;
  color: #c5a66a;
  text-decoration: none;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 6px;
}

header .pc-nav {
  display: flex;
  align-items: center;
  gap: 26px;
}

header .pc-nav a {
  margin: 0;
  color: #eee7dd;
  text-decoration: none;
  font-size: 11px;
  letter-spacing: 2px;
  transition: opacity 0.3s ease;
}

header .pc-nav a:hover {
  opacity: 0.55;
}

header .menu-toggle,
header .mobile-nav {
  display: none;
}


/* ==================================================
   03. HERO
================================================== */

.hero {
  position: relative;
  min-height: 100vh;
  padding: 100px 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background:
    linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.55)),
    url("images/hero.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 900px;
}

.hero-brand {
  margin-bottom: 8px;
  font-family: Georgia, serif;
  color: #d2b36c;
  font-size: 24px;
  letter-spacing: 10px;
}

.hero-subtitle {
  margin-bottom: 40px;
  font-family: Georgia, serif;
  color: #d7d0c5;
  font-size: 10px;
  letter-spacing: 5px;
}

.hero h1 {
  margin: 0;
  font-size: 46px;
  font-weight: normal;
  line-height: 1.7;
  letter-spacing: 7px;
}

.gold-line {
  width: 50px;
  height: 1px;
  margin: 38px auto;
  background: #c5a66a;
}

.hero-message {
  color: #d6cfc5;
  font-size: 16px;
  line-height: 2.2;
  letter-spacing: 3px;
}

.hero-description {
  margin-top: 32px;
  color: #c9c1b6;
  font-size: 12px;
  line-height: 2;
  letter-spacing: 2px;
}

.hero-button {
  display: inline-block;
  margin-top: 38px;
  padding: 14px 34px;
  border: 1px solid #c5a66a;
  color: #e0c27e;
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: 3px;
  transition: 0.4s;
}

.hero-button:hover {
  background: #c5a66a;
  color: #111111;
}

.scroll {
  position: absolute;
  bottom: 22px;
  left: 50%;
  transform: translateX(-50%);
  color: #c5a66a;
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 9px;
  letter-spacing: 4px;
}

.scroll span {
  display: block;
  width: 1px;
  height: 35px;
  margin: 10px auto 0;
  background: #c5a66a;
}

.hero-title-line {
  display: block;
  white-space: nowrap;
}

/* ==================================================
   04. COMMON TITLES / LINE BREAKS
================================================== */

.section-title {
  margin-bottom: 60px;
  text-align: center;
}

.section-title h2 {
  margin: 12px 0;
  font-size: 30px;
  font-weight: normal;
  letter-spacing: 4px;
}

.sp-br,
.sp-only,
.member-br,
.method-br {
  display: none;
}


/* ==================================================
   05. ABOUT
================================================== */

.about {
  background: #f1ece3;
  color: #292725;
}

.about-inner {
  max-width: 760px;
  margin: 0 auto;
}

.about .english {
  text-align: center;
}

.about h2 {
  font-size: 30px;
  font-weight: normal;
  letter-spacing: 4px;
  text-align: center;
}

.about .about-inner p {
  font-size: 15px;
  line-height: 2;
  text-align: left;
}


/* ==================================================
   06. PHILOSOPHY
================================================== */

.philosophy {
  text-align: center;
}

.philosophy-inner {
  max-width: 760px;
  margin: 0 auto;
}

.philosophy-intro {
  margin-top: 32px;
}

.philosophy .main-message {
  margin: 40px 0;
  font-size: 26px;
  line-height: 2;
  letter-spacing: 4px;
}


/* ==================================================
   07. SHINEWITH METHOD
================================================== */

#method {
  background: #171615;
  color: #f4efe7;
}

#method .section-title h2 {
  line-height: 1.8;
}

.method-intro {
  margin: 35px auto 0;
  text-align: center;
  color: #c9c1b7;
  font-size: 13px;
  line-height: 2.2;
  letter-spacing: 3px;
}

.method-visual {
  max-width: 1280px;
  margin: 50px auto 0;
  padding: 0 40px 80px;
}

.method-visual img {
  width: 100%;
  height: auto;
  border: 1px solid rgba(197, 166, 106, 0.25);
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.35);
  opacity: 0.96;
}

.method-visual .method-pc {
  display: block;
}

.method-visual .method-mobile {
  display: none;
}


/* ==================================================
   08. SIGNATURE SESSION
================================================== */

.session {
  background: #eee8de;
  color: #282522;
}

.session .section-title {
  margin-bottom: 45px;
  text-align: center;
}

.session .section-title h2 {
  margin: 12px 0;
  font-size: 32px;
  font-weight: normal;
  line-height: 1.8;
  letter-spacing: 4px;
}

.session-intro {
  max-width: 760px;
  margin: 0 auto 70px;
  text-align: left;
}

.session-intro p {
  font-size: 14px;
  line-height: 2.2;
  letter-spacing: 1px;
}

.session-flow {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
}

.session-step {
  padding: 38px 28px;
  background: rgba(255, 255, 255, 0.45);
  border-top: 1px solid #a98c58;
}

.step-number {
  margin-bottom: 18px;
  font-family: Georgia, serif;
  color: #a98c58;
  font-size: 12px;
  letter-spacing: 3px;
}

.session-step h3 {
  margin: 0 0 8px;
  font-family: Georgia, serif;
  color: #856b3f;
  font-size: 15px;
  font-weight: normal;
  letter-spacing: 3px;
}

.session-step h4 {
  margin: 0 0 18px;
  font-size: 18px;
  font-weight: normal;
  letter-spacing: 2px;
}

.session-step p {
  margin: 0;
  color: #514c46;
  font-size: 13px;
  line-height: 2;
}

.session-closing {
  margin-top: 75px;
  text-align: center;
}

.session-message {
  font-size: 18px;
  line-height: 2;
  letter-spacing: 2px;
}

.session-button {
  display: inline-block;
  margin-top: 30px;
  padding: 14px 38px;
  border: 1px solid #9d814e;
  color: #725b32;
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: 3px;
  transition: 0.3s;
}

.session-button:hover {
  background: #9d814e;
  color: #ffffff;
}




/* ==================================================
   08B. FOR YOUR NEXT CHAPTER
================================================== */

.next-chapter {
  background: #f3eee6;
  color: #1c1c1c;
  padding: 120px 7% 130px;
}

.next-chapter-heading {
  margin-bottom: 70px;
  text-align: center;
}

.next-chapter-heading .section-en {
  margin: 0 0 18px;
  color: #a58754;
  font-family: Georgia, serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 4px;
}

.next-chapter-heading h2 {
  margin: 0;
  color: #1c1c1c;
  font-size: 30px;
  font-weight: normal;
  line-height: 1.7;
  letter-spacing: 2px;
}

.next-chapter-inner {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 80px;
  align-items: center;
}

.next-chapter-content {
  min-width: 0;
  text-align: left;
}

.next-chapter-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.next-chapter-list li {
  position: relative;
  margin: 0 0 22px;
  padding-left: 26px;
  color: #2c2925;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.5px;
}

.next-chapter-list li:last-child {
  margin-bottom: 0;
}

.next-chapter-list li::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 0;
  width: 6px;
  height: 6px;
  background: #a58754;
  border-radius: 50%;
}

.next-chapter-message {
  margin-top: 52px;
  padding-top: 38px;
  border-top: 1px solid rgba(165, 135, 84, 0.35);
}

.next-chapter-lead {
  margin: 0 0 22px;
  color: #876b3d;
  font-size: 19px;
  font-weight: normal;
  line-height: 2;
  letter-spacing: 1.2px;
}

.next-chapter-text {
  margin: 0;
  color: #4f4942;
  font-size: 14px;
  line-height: 2.2;
  letter-spacing: 0.4px;
}

.next-chapter-image {
  position: relative;
  width: 100%;
  height: 650px;
  overflow: hidden;
  background: #d8d0c5;
}

.next-chapter-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.next-chapter-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(20, 15, 8, 0.02),
    rgba(20, 15, 8, 0.12)
  );
  pointer-events: none;
}

.pc-only {
  display: block;
}

/* ==================================================
   09. SESSION MENU
================================================== */

.session-menu {
  position: relative;
  isolation: isolate;
  width: 100%;
  padding: 120px 8% 140px;
  background: #f3ede3;
  color: #2c2925;
}

.session-menu .section-title {
  width: 100%;
  max-width: 900px;
  margin: 0 auto 70px;
  text-align: center;
  color: #2c2925;
}

.session-menu .section-title .english {
  margin-bottom: 24px;
  color: #b2915f;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 4px;
}

.session-menu .section-title h2 {
  margin: 0;
  color: #2c2925;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 1px;
}

.session-menu-intro {
  width: 100%;
  max-width: 720px;
  margin: 0 auto 110px;
  text-align: left;
  color: #2c2925;
}

.session-menu-intro p {
  margin: 0 0 24px;
  color: #2c2925;
  font-size: 14px;
  font-weight: 400;
  line-height: 2.2;
  letter-spacing: 0.3px;
}

.session-menu-item {
  width: 100%;
  max-width: 820px;
  margin: 0 auto 120px;
  padding: 46px 0 0;
  border-top: 1px solid #b2915f;
  background: transparent;
  color: #2c2925;
}

.session-number {
  margin: 0 0 22px;
  color: #b2915f;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 3px;
}

.session-menu-item h3 {
  margin: 0 0 22px;
  color: #2c2925;
  font-size: 25px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 2.5px;
}

.session-subtitle {
  margin: 0 0 22px;
  color: #2c2925;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.5px;
}

.session-info {
  margin: 0 0 42px;
  color: #776e63;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 1px;
}

.session-description {
  width: 100%;
  color: #2c2925;
}

.session-description p {
  margin: 0 0 24px;
  color: #2c2925;
  font-size: 14px;
  font-weight: 400;
  line-height: 2.2;
  letter-spacing: 0.2px;
}

.session-price {
  margin: 45px 0 0;
  color: #2c2925;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 1px;
}

.session-price span {
  margin-left: 18px;
  color: #2c2925;
  font-size: 22px;
  font-weight: 400;
}

.session-prices {
  width: 100%;
  max-width: 440px;
  margin: 45px 0 0;
}

.session-price-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 16px 0;
  border-bottom: 1px solid rgba(178, 145, 95, 0.45);
  color: #2c2925;
}

.session-price-row span {
  color: #2c2925;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 1px;
}

.session-price-row strong {
  color: #2c2925;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0.5px;
}

.session-note {
  max-width: 620px;
  margin: 28px 0 0;
  color: #776e63;
  font-size: 12px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.2px;
}

.session-privacy {
  width: 100%;
  max-width: 720px;
  margin: 150px auto 0;
  text-align: left;
  color: #2c2925;
}

.privacy-label {
  margin: 0 0 25px;
  color: #b2915f;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 4px;
}

.session-privacy h3 {
  margin: 0 0 38px;
  color: #2c2925;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.5px;
}

.session-privacy p {
  margin: 0 0 22px;
  color: #2c2925;
  font-size: 14px;
  font-weight: 400;
  line-height: 2.2;
  letter-spacing: 0.2px;
}


/* ==================================================
   10. MEMBERS
================================================== */

.members {
  background: #191817;
  color: #f4efe7;
}

.members .section-title {
  margin-bottom: 70px;
  text-align: center;
}

.members .section-title h2 {
  margin: 12px 0;
  font-size: 30px;
  font-weight: normal;
  line-height: 1.8;
  letter-spacing: 4px;
}

.member-grid {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 70px;
}

.member {
  min-width: 0;
}

.member-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  margin-bottom: 38px;
  border: 1px solid rgba(197, 166, 106, 0.35);
  background: #111;
}

.member-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.member:hover .member-photo img {
  transform: scale(1.025);
}

.member-label {
  margin-bottom: 12px;
  font-family: Georgia, serif;
  color: #c5a66a;
  font-size: 11px;
  letter-spacing: 4px;
}

.member h3 {
  margin: 0 0 18px;
  font-size: 28px;
  font-weight: normal;
  letter-spacing: 2px;
}

.member-catch {
  margin: 0 0 24px;
  color: #d5b872;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 2px;
}

.member-text {
  margin: 0;
  color: #cfc7bc;
  font-size: 14px;
  line-height: 2.2;
}

.member-link {
  display: inline-block;
  margin-top: 30px;
  padding-bottom: 5px;
  color: #c5a66a;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: 3px;
  text-decoration: none;
  border-bottom: 1px solid rgba(197, 166, 106, 0.65);
  transition: 0.3s;
}

.member-link:hover {
  color: #f0d79a;
  border-color: #f0d79a;
}


/* ==================================================
   11. COMPANY
================================================== */

.company {
  background: #f1ece3;
  color: #292725;
}

.company-inner {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

.company .english {
  text-align: center;
}

.company h2 {
  margin: 12px 0 65px;
  text-align: center;
  font-size: 30px;
  font-weight: normal;
  line-height: 1.8;
  letter-spacing: 4px;
}

.company-table {
  width: 100%;
  border-top: 1px solid rgba(165, 135, 84, 0.55);
}

.company-row {
  display: grid;
  grid-template-columns: 150px 1fr;
  padding: 24px 0;
  border-bottom: 1px solid rgba(165, 135, 84, 0.35);
}

.company-label {
  color: #876b3d;
  font-size: 13px;
  letter-spacing: 1.5px;
}

.company-value {
  color: #393530;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.3px;
}

.company-value a {
  color: #393530;
  text-decoration: none;
  transition: color 0.3s ease;
}

.company-value a:hover {
  color: #a58754;
}


/* ==================================================
   11. FOOTER
================================================== */

footer {
  padding: 70px 20px;
  text-align: center;
  color: #827b71;
}

footer .footer-logo {
  margin-bottom: 15px;
  color: #c5a66a;
  font-family: Georgia, serif;
  letter-spacing: 7px;
}


/* ==================================================
   12. MOBILE
================================================== */

@media screen and (max-width: 700px) {

  /* BASIC */

  section {
    padding: 85px 25px;
  }

  .sp-br,
  .sp-only,
  .member-br {
    display: block;
  }

  .method-br {
    display: inline;
  }


  /* HEADER */

  header {
    height: 70px;
    padding: 0 24px;
  }

  header .logo {
    font-size: 15px;
    letter-spacing: 4px;
  }

  header .pc-nav {
    display: none;
  }

  header .menu-toggle {
    display: block;
    position: relative;
    z-index: 3002;
    width: 30px;
    height: 24px;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
  }

  header .menu-toggle span {
    display: block;
    position: absolute;
    left: 0;
    width: 30px;
    height: 1px;
    background: #c5a66a;
    opacity: 1;
    transition: 0.3s ease;
  }

  header .menu-toggle span:nth-child(1) {
    top: 2px;
  }

  header .menu-toggle span:nth-child(2) {
    top: 11px;
  }

  header .menu-toggle span:nth-child(3) {
    top: 20px;
  }

  header .menu-toggle.active span:nth-child(1) {
    top: 11px;
    transform: rotate(45deg);
  }

  header .menu-toggle.active span:nth-child(2) {
    opacity: 0;
  }

  header .menu-toggle.active span:nth-child(3) {
    top: 11px;
    transform: rotate(-45deg);
  }

  header .mobile-nav {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 3001;
    width: 100%;
    min-height: 100vh;
    margin: 0;
    padding: 90px 24px 40px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 28px;
    background: #171615;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px);
    transition:
      opacity 0.3s ease,
      visibility 0.3s ease,
      transform 0.3s ease;
  }

  header .mobile-nav.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  header .mobile-nav a {
    display: block;
    margin: 0;
    color: #f4efe7;
    text-decoration: none;
    font-size: 14px;
    letter-spacing: 3px;
  }


  /* HERO */

  .hero {
    padding: 100px 22px;
  }

  .hero h1 {
    font-size: 28px;
    line-height: 1.8;
    letter-spacing: 2px;
  }

  .hero-brand {
    font-size: 20px;
    letter-spacing: 7px;
  }

  .hero-message {
    font-size: 14px;
    line-height: 2.2;
    letter-spacing: 2px;
  }

  .hero-description {
    font-size: 11px;
    letter-spacing: 1.2px;
  }


  /* ABOUT */

  .about .about-inner {
    width: 100%;
    max-width: none;
    padding-left: 18px;
    padding-right: 18px;
  }

  .about p {
    width: 100%;
    max-width: none;
    font-size: 14px;
    line-height: 2;
    letter-spacing: 0.2px;
    word-break: normal;
    overflow-wrap: break-word;
  }

.about h2 {
  font-size: 21px;
  line-height: 1.7;
  letter-spacing: 0.5px;
  margin-bottom: 38px;
}

.about-title-line {
  display: block;
  white-space: nowrap;
}

.about-title-line + .about-title-line {
  margin-top: 20px;
}

  /* PHILOSOPHY */

  .philosophy .main-message {
    font-size: 21px;
    line-height: 2;
    letter-spacing: 0.5px;
  }


  /* METHOD */

  #method h2 {
    font-size: 21px;
    line-height: 1.9;
    letter-spacing: 0.5px;
  }

  .method-intro {
    font-size: 13px;
    line-height: 2.1;
    letter-spacing: 1.5px;
  }

  .method-visual {
    margin: 30px auto 0;
    padding: 0 10px 50px;
  }

  .method-visual .method-pc {
    display: none;
  }

  .method-visual .method-mobile {
    display: block;
    width: 100%;
    height: auto;
  }


  /* SIGNATURE SESSION */

  .session .section-title h2 {
    font-size: 21px;
    line-height: 1.9;
    letter-spacing: 0.5px;
  }

  .session-title-line {
    display: block;
    white-space: nowrap;
  }

  .session-intro {
    width: 100%;
    max-width: none;
    margin-bottom: 50px;
  }

  .session-intro p {
    font-size: 13px;
    line-height: 2.1;
    letter-spacing: 0;
    text-align: left;
  }

  .session-flow {
    display: block;
  }

  .session-step {
    margin-bottom: 22px;
    padding: 30px 24px;
  }

  .session-step h4 {
    font-size: 17px;
  }

  .session-step p {
    font-size: 14px;
    line-height: 2;
  }

  .session-closing {
    margin-top: 55px;
  }

  .session-message {
    font-size: 16px;
    line-height: 2;
    letter-spacing: 1px;
  }




  /* FOR YOUR NEXT CHAPTER */

  .next-chapter {
    padding: 85px 24px 90px;
  }

  .next-chapter-heading {
    margin-bottom: 48px;
  }

  .next-chapter-heading .section-en {
    margin-bottom: 14px;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 3px;
  }

  .next-chapter-heading h2 {
    font-size: 22px;
    line-height: 1.8;
    letter-spacing: 1.5px;
  }

  .next-chapter-inner {
    display: flex;
    flex-direction: column;
    gap: 48px;
  }

  .next-chapter-content {
    width: 100%;
  }

  .next-chapter-list li {
    margin-bottom: 20px;
    padding-left: 22px;
    font-size: 13.5px;
    line-height: 2.05;
    letter-spacing: 0;
  }

  .next-chapter-list li::before {
    top: 12px;
    width: 5px;
    height: 5px;
  }

  .next-chapter-message {
    margin-top: 42px;
    padding-top: 32px;
  }

  .next-chapter-lead {
    margin-bottom: 20px;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.8px;
  }

  .next-chapter-text {
    font-size: 13.5px;
    line-height: 2.1;
    letter-spacing: 0;
  }

.next-chapter-image {
  width: 100%;
  height: auto;
  margin: 0 auto;
  aspect-ratio: 996 / 1280;
}

.next-chapter-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

  .pc-only {
    display: none;
  }


  /* SESSION MENU */

  .session-menu {
    padding: 90px 25px 110px;
  }

  .session-menu .section-title {
    margin-bottom: 55px;
  }

  .session-menu .section-title .english {
    margin-bottom: 22px;
    font-size: 11px;
    letter-spacing: 3.5px;
  }

  .session-menu .section-title h2 {
    max-width: 340px;
    margin: 0 auto;
    font-size: 21px;
    line-height: 1.9;
    letter-spacing: 0;
  }

  .session-menu-intro {
    margin-bottom: 90px;
    text-align: left;
  }

  .session-menu-intro p {
    font-size: 13px;
    line-height: 2.1;
    letter-spacing: 0;
  }

  .session-menu-item {
    margin-bottom: 95px;
    padding-top: 38px;
  }

  .session-number {
    margin-bottom: 20px;
    font-size: 12px;
  }

  .session-menu-item h3 {
    margin-bottom: 20px;
    font-size: 20px;
    line-height: 1.6;
    letter-spacing: 2px;
  }

  .session-subtitle {
    margin-bottom: 20px;
    font-size: 15px;
    line-height: 1.9;
  }

  .session-info {
    margin-bottom: 35px;
    font-size: 12.5px;
  }

  .session-description p {
    margin-bottom: 22px;
    font-size: 13px;
    line-height: 2.1;
    letter-spacing: 0;
  }

  .session-price {
    margin-top: 38px;
    font-size: 13px;
  }

  .session-price span {
    margin-left: 14px;
    font-size: 20px;
  }

  .session-prices {
    max-width: 100%;
    margin-top: 38px;
  }

  .session-price-row {
    padding: 14px 0;
  }

  .session-price-row span {
    font-size: 13px;
  }

  .session-price-row strong {
    font-size: 20px;
  }

  .session-note {
    margin-top: 25px;
    font-size: 12px;
    line-height: 2;
  }

  .session-privacy {
    margin-top: 110px;
    text-align: left;
  }

  .privacy-label {
    font-size: 10.5px;
    letter-spacing: 3px;
  }

  .session-privacy h3 {
    margin-bottom: 32px;
    font-size: 19px;
    line-height: 1.8;
  }

  .session-privacy p {
    font-size: 13px;
    line-height: 2.1;
    letter-spacing: 0;
  }


  /* MEMBERS */

  .members .section-title {
    margin-bottom: 50px;
  }

  .members .section-title h2 {
    font-size: 22px;
    line-height: 1.9;
    letter-spacing: 1px;
  }

  .member-grid {
    display: block;
  }

  .member {
    margin-bottom: 80px;
  }

  .member:last-child {
    margin-bottom: 0;
  }

  .member-photo {
    margin-bottom: 30px;
    aspect-ratio: 4 / 5;
  }

  .member-label {
    font-size: 10px;
    letter-spacing: 3px;
  }

  .member h3 {
    margin-bottom: 16px;
    font-size: 24px;
  }

  .member-catch {
    margin-bottom: 20px;
    font-size: 15px;
    line-height: 2;
    letter-spacing: 1px;
  }

  .member-text {
    font-size: 14px;
    line-height: 2.1;
  }

  .member-link {
    margin-top: 24px;
  }


  /* COMPANY */

  .company h2 {
    margin-bottom: 45px;
    font-size: 22px;
    letter-spacing: 2px;
  }

  .company-row {
    grid-template-columns: 80px 1fr;
    gap: 18px;
    padding: 21px 0;
  }

  .company-label {
    font-size: 12px;
    letter-spacing: 0.5px;
  }

  .company-value {
    font-size: 13px;
    line-height: 2;
    letter-spacing: 0;
  }

}


/* ==================================================
   SESSION DETAIL PAGE
================================================== */
.session-page { background: #11100f; }
.session-page-inner { width: calc(100% - 80px); max-width: 980px; margin: 0 auto; }
.session-page-hero {
  min-height: 620px; padding: 180px 0 110px; display: flex; align-items: center;
  text-align: center;
  background: radial-gradient(circle at 50% 25%, rgba(179,147,93,.12), transparent 42%), #11100f;
}
.session-page-hero-inner { max-width: 900px; }
.session-page-en { margin: 0 0 20px; color: #b89a66; font-size: 11px; line-height: 1.6; letter-spacing: 4px; }
.session-page-hero h1 { margin: 0; color: #f5f0e8; font-size: 36px; font-weight: 400; line-height: 1.9; letter-spacing: 4px; }
.session-page-hero .gold-line, .session-page-reservation .gold-line { margin: 34px auto; }
.session-page-lead { margin: 0; color: rgba(245,240,232,.82); font-size: 14px; line-height: 2.25; letter-spacing: .8px; }
.session-page-block { padding: 125px 0; }
.session-page-light { background: #f1ece3; color: #302d29; }
.session-page-dark { background: #171614; color: #eee8df; }
.session-page-heading { margin-bottom: 60px; text-align: center; }
.session-page-number { margin: 0 0 12px; color: #b89a66; font-size: 12px; letter-spacing: 3px; }
.session-page-heading h2, .session-page-section-title h2, .session-page-reservation h2 {
  margin: 0; font-size: 30px; font-weight: 400; line-height: 1.8; letter-spacing: 3px;
}
.session-page-person { margin: 24px 0 0; font-size: 13px; line-height: 1.8; letter-spacing: 1px; opacity: .72; }
.session-page-copy { max-width: 720px; margin: 0 auto; }
.session-page-copy p { margin: 0 0 25px; font-size: 14px; line-height: 2.2; letter-spacing: .4px; }
.session-page-copy p:last-child { margin-bottom: 0; }
.session-page-price {
  max-width: 720px; margin: 55px auto 0; padding: 22px 0; display: flex;
  justify-content: space-between; align-items: baseline;
  border-top: 1px solid rgba(166,134,80,.45); border-bottom: 1px solid rgba(166,134,80,.45);
}
.session-page-price span, .session-page-price-row span { font-size: 13px; letter-spacing: 2px; }
.session-page-price strong, .session-page-price-row strong { font-size: 25px; font-weight: 400; letter-spacing: 1px; }
.session-page-feature { max-width: 720px; margin: 70px auto 0; padding: 42px 45px; border: 1px solid rgba(166,134,80,.42); }
.session-page-feature-label { margin: 0 0 20px; color: #9b7a45; font-size: 10px; letter-spacing: 3px; }
.session-page-feature h3 { margin: 0 0 20px; font-size: 18px; font-weight: 400; line-height: 1.9; letter-spacing: 1.5px; }
.session-page-feature p:last-child { margin: 0; font-size: 13.5px; line-height: 2.15; }
.session-page-prices { max-width: 720px; margin: 55px auto 0; border-top: 1px solid rgba(184,154,102,.42); }
.session-page-price-row { padding: 21px 0; display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid rgba(184,154,102,.42); }
.session-page-note { max-width: 720px; margin: 25px auto 0; color: rgba(238,232,223,.67); font-size: 12px; line-height: 2; }
.session-page-flow { background: #0e0d0c; color: #eee8df; }
.session-page-section-title { margin-bottom: 65px; text-align: center; }
.session-flow-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.session-flow-card { min-height: 250px; padding: 32px 24px; border: 1px solid rgba(184,154,102,.3); }
.session-flow-card span { display: block; margin-bottom: 28px; color: #b89a66; font-size: 11px; letter-spacing: 2px; }
.session-flow-card h3 { margin: 0 0 18px; font-size: 12px; font-weight: 400; line-height: 1.7; letter-spacing: 1.6px; }
.session-flow-card p { margin: 0; color: rgba(238,232,223,.72); font-size: 12.5px; line-height: 2; }
.session-page-privacy { background: #181714; color: #eee8df; }
.session-page-reservation { padding: 130px 0 140px; text-align: center; background: #0c0b0a; color: #eee8df; }
.session-page-reservation p { margin: 0; color: rgba(238,232,223,.72); font-size: 13.5px; line-height: 2.2; }
.session-page-coming { display: inline-block; margin-top: 40px; padding: 15px 38px; border: 1px solid rgba(184,154,102,.6); color: #b89a66; font-size: 11px; letter-spacing: 3px; }
.session-detail-link { display: inline-block; margin-top: 34px; padding-bottom: 7px; border-bottom: 1px solid rgba(166,134,80,.65); color: inherit; font-size: 11px; line-height: 1.5; letter-spacing: 2.5px; text-decoration: none; transition: opacity .3s ease; }
.session-detail-link:hover { opacity: .6; }

@media screen and (max-width: 700px) {
  .session-page-inner { width: calc(100% - 48px); }
  .session-page-hero { min-height: auto; padding: 145px 0 90px; }
  .session-page-hero h1 { font-size: 23px; line-height: 1.9; letter-spacing: 1.3px; }
  .session-page-hero .gold-line, .session-page-reservation .gold-line { margin: 28px auto; }
  .session-page-lead { text-align: left; font-size: 13px; line-height: 2.15; letter-spacing: 0; }
  .session-page-block { padding: 90px 0; }
  .session-page-heading { margin-bottom: 45px; }
  .session-page-heading h2, .session-page-section-title h2, .session-page-reservation h2 { font-size: 21px; line-height: 1.9; letter-spacing: 1px; }
  .session-page-person { margin-top: 20px; font-size: 12px; }
  .session-page-copy p { margin-bottom: 22px; font-size: 13.5px; line-height: 2.1; letter-spacing: 0; }
  .session-page-price { margin-top: 42px; }
  .session-page-price strong, .session-page-price-row strong { font-size: 21px; }
  .session-page-feature { margin-top: 55px; padding: 32px 24px; }
  .session-page-feature h3 { font-size: 16px; line-height: 1.9; letter-spacing: .8px; }
  .session-page-feature p:last-child { font-size: 13px; line-height: 2.1; }
  .session-page-prices { margin-top: 42px; }
  .session-page-note { font-size: 11.5px; }
  .session-page-section-title { margin-bottom: 48px; }
  .session-flow-grid { display: block; }
  .session-flow-card { min-height: 0; margin-bottom: 16px; padding: 28px 24px; }
  .session-flow-card:last-child { margin-bottom: 0; }
  .session-flow-card span { margin-bottom: 18px; }
  .session-page-reservation { padding: 95px 0 105px; }
  .session-page-reservation p { font-size: 13px; }
  .session-detail-link { margin-top: 30px; }
}


/* ==================================================
   SESSION PAGE V2
================================================== */
.session-v2{background:#11100f}.sv2-wide{width:calc(100% - 80px);max-width:1180px;margin:0 auto}.sv2-narrow{width:calc(100% - 80px);max-width:760px;margin:0 auto}.sv2-en{margin:0 0 15px;color:#b08b50;font-size:11px;letter-spacing:4px;line-height:1.6}.sv2-line{width:38px;height:1px;margin:30px 0;background:#b08b50}
.sv2-hero{position:relative;height:720px;overflow:hidden;display:flex;align-items:center}.sv2-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.sv2-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,8,7,.84),rgba(9,8,7,.56) 34%,rgba(9,8,7,.08) 72%)}.sv2-hero-content{position:relative;z-index:2;width:calc(100% - 80px);max-width:1180px;margin:0 auto;padding-top:70px;color:#f6f1e8}.sv2-hero h1{margin:0;max-width:610px;font-size:39px;font-weight:400;line-height:1.75;letter-spacing:4px}.sv2-hero-text{margin:0;font-size:14px;line-height:2.1;letter-spacing:.6px;color:rgba(246,241,232,.86)}
.sv2-intro{padding:105px 0;background:#11100f;color:#eee8df;text-align:center}.sv2-intro p{margin:0 0 28px;font-size:14px;line-height:2.3;letter-spacing:.5px}.sv2-intro p:last-child{margin-bottom:0}.sv2-intro strong{color:#d1b27c;font-weight:400}
.sv2-session{padding:120px 0}.sv2-cream{background:#f2ede5;color:#302d29}.sv2-dark{background:#171614;color:#eee8df}.sv2-split{display:grid;grid-template-columns:1.05fr .95fr;gap:75px;align-items:center}.sv2-split-reverse .sv2-photo{order:2}.sv2-split-reverse .sv2-session-content{order:1}.sv2-photo{height:570px;overflow:hidden}.sv2-photo img{width:100%;height:100%;display:block;object-fit:cover}.sv2-number{margin:0 0 10px;color:#b08b50;font-size:11px;letter-spacing:3px}.sv2-session-content .sv2-en{margin-bottom:7px}.sv2-by{margin:0 0 28px;opacity:.65;font-size:10px;letter-spacing:3px}.sv2-session-content h2{margin:0 0 35px;font-size:27px;font-weight:400;line-height:1.85;letter-spacing:2px}.sv2-body p{margin:0 0 22px;font-size:13.5px;line-height:2.15;letter-spacing:.2px}.sv2-body p:last-child{margin-bottom:0}.sv2-price{margin-top:38px;padding:18px 0;display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid rgba(166,134,80,.45);border-bottom:1px solid rgba(166,134,80,.45)}.sv2-price span,.sv2-prices span{font-size:12px;letter-spacing:2px}.sv2-price strong,.sv2-prices strong{font-size:22px;font-weight:400}.sv2-book-note{margin-top:28px;padding:22px 24px;border:1px solid rgba(166,134,80,.38)}.sv2-book-note span{color:#987641;font-size:10px;letter-spacing:2.5px}.sv2-book-note p{margin:12px 0 0;font-size:12.5px;line-height:2}.sv2-prices{margin-top:38px;border-top:1px solid rgba(176,139,80,.42)}.sv2-prices div{padding:17px 0;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid rgba(176,139,80,.42)}.sv2-small{margin:20px 0 0;color:rgba(238,232,223,.62);font-size:11.5px;line-height:1.9}
.sv2-life{padding:120px 0;background:#f7f3ed;color:#302d29}.sv2-title{margin-bottom:55px;text-align:center}.sv2-title h2{margin:0;font-size:29px;font-weight:400;line-height:1.8;letter-spacing:3px}.sv2-title>p:last-child{margin:20px 0 0;font-size:13px;line-height:2}.sv2-life-image img{display:block;width:100%;height:auto}.sv2-life-copy{max-width:760px;margin:38px auto 0;text-align:center;font-size:13px;line-height:2.15}
.sv2-flow{padding:115px 0;background:#11100f;color:#eee8df}.sv2-flow-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.sv2-step{padding:30px 23px;min-height:220px;border-top:1px solid rgba(176,139,80,.52)}.sv2-step span{color:#b08b50;font-size:20px;font-family:serif;font-style:italic}.sv2-step h3{margin:28px 0 16px;font-size:11px;font-weight:400;letter-spacing:1.8px}.sv2-step p{margin:0;color:rgba(238,232,223,.7);font-size:12px;line-height:2}
.sv2-privacy{padding:110px 0;background:#eee7dd;color:#302d29}.sv2-privacy h2{margin:0;font-size:27px;font-weight:400;line-height:1.8;letter-spacing:2px}.sv2-privacy p:not(.sv2-en){margin:0 0 22px;font-size:13.5px;line-height:2.2}.sv2-privacy p:last-child{margin-bottom:0}
.sv2-reserve{padding:120px 0 130px;background:radial-gradient(circle at 50% 0%,rgba(166,134,80,.12),transparent 45%),#0b0a09;color:#eee8df;text-align:center}.sv2-reserve h2{margin:0;font-size:30px;font-weight:400;line-height:1.8;letter-spacing:3px}.sv2-reserve .sv2-line{margin:30px auto}.sv2-reserve p:not(.sv2-en){margin:0;color:rgba(238,232,223,.65);font-size:13px}.sv2-coming{display:inline-block;margin-top:38px;padding:14px 36px;border:1px solid rgba(176,139,80,.58);color:#b08b50;font-size:10px;letter-spacing:3px}
@media screen and (max-width:700px){
.sv2-wide,.sv2-narrow{width:calc(100% - 48px)}.sv2-hero{height:650px;align-items:flex-end}.sv2-hero-image{object-position:58% center}.sv2-hero-overlay{background:linear-gradient(0deg,rgba(8,7,6,.9),rgba(8,7,6,.55) 48%,rgba(8,7,6,.06))}.sv2-hero-content{width:calc(100% - 48px);padding:0 0 62px}.sv2-hero h1{font-size:25px;line-height:1.85;letter-spacing:1.6px}.sv2-hero-text{font-size:13px;line-height:2}.sv2-intro{padding:80px 0;text-align:left}.sv2-intro p{font-size:13.5px;line-height:2.15;letter-spacing:0}
.sv2-session{padding:0 0 85px}.sv2-split{width:100%;display:flex;flex-direction:column;gap:0}.sv2-split-reverse .sv2-photo,.sv2-split-reverse .sv2-session-content{order:initial}.sv2-photo{width:100%;height:auto;aspect-ratio:16/10}.sv2-session-content{width:calc(100% - 48px);margin:0 auto;padding-top:58px}.sv2-session-content h2{font-size:21px;line-height:1.9;letter-spacing:1px}.sv2-body p{font-size:13.5px;line-height:2.1}
.sv2-life{padding:85px 0}.sv2-title{margin-bottom:42px}.sv2-title h2{font-size:21px;line-height:1.9;letter-spacing:1px}.sv2-life-image{margin-left:calc((100vw - 100%)/-2);width:100vw;overflow-x:auto}.sv2-life-image img{width:780px;max-width:none}.sv2-life-copy{margin-top:30px;text-align:left;font-size:12.5px;line-height:2.05}
.sv2-flow{padding:85px 0}.sv2-flow-grid{display:block}.sv2-step{min-height:0;padding:25px 5px}.sv2-step:last-child{border-bottom:1px solid rgba(176,139,80,.42)}.sv2-step h3{margin:13px 0 10px}
.sv2-privacy{padding:85px 0}.sv2-privacy h2{font-size:21px;letter-spacing:1px}.sv2-privacy p:not(.sv2-en){font-size:13.5px;line-height:2.1}.sv2-reserve{padding:90px 0 100px}.sv2-reserve h2{font-size:22px;letter-spacing:1px}
}


/* ==================================================
   SESSION HERO PC REFINEMENT v1008
================================================== */
@media screen and (min-width: 701px) {
  .sv2-hero-content {
    width: calc(100% - 120px);
  }

  .sv2-hero h1 {
    max-width: 820px;
    font-size: 34px;
    line-height: 1.8;
    letter-spacing: 3px;
    white-space: nowrap;
  }
}

/* ==================================================
   SESSION LIFE DESIGN MOBILE FIX v1010
   6テーマ画像を横スクロールせず全体表示
================================================== */
@media screen and (max-width: 700px) {
  .sv2-life-image {
    width: 100%;
    margin-left: 0;
    overflow: visible;
  }

  .sv2-life-image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
  }
}


/* SESSION MOBILE / LINE BROWSER FIX v1011 */
@media screen and (max-width:700px){
  .sv2-hero-content{width:calc(100% - 40px)}
  .sv2-hero h1{font-size:23px;line-height:1.9;letter-spacing:.8px}
  .sv2-session-content{width:calc(100% - 40px)}
  .sv2-session-content h2{font-size:20px;line-height:1.95;letter-spacing:.4px}
  .sv2-body p{font-size:13px;line-height:2.15;letter-spacing:-.1px}
  .sv2-title h2{font-size:20px;letter-spacing:.4px}
  .sv2-title>p:last-child{font-size:12.5px;letter-spacing:-.1px}
  .sv2-step{padding-left:4px;padding-right:4px}
  .sv2-step p{font-size:11.8px;letter-spacing:-.1px}
  .sv2-privacy p:not(.sv2-en){font-size:13px;letter-spacing:-.1px}
}
/* ==================================================
   RESERVATION / POLICY PAGES v1012
================================================== */

.footer-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin: 22px auto;
}

.footer-links a {
  color: #b9b0a4;
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 9px;
  letter-spacing: 2px;
  transition: opacity 0.3s ease;
}

.footer-links a:hover {
  opacity: 0.6;
}

.sv2-reserve-button {
  display: inline-block;
  margin-top: 28px;
  padding: 14px 38px;
  border: 1px solid #c5a66a;
  color: #d8b86f;
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: 3px;
  transition: 0.3s ease;
}

.sv2-reserve-button:hover {
  background: #c5a66a;
  color: #111111;
}

.sv2-reserve-note {
  margin: 20px auto 0;
  color: #bdb4a8;
  font-size: 11px;
  line-height: 2;
}

.guide-page {
  padding-top: 80px;
  background: #f3eee6;
  color: #2c2925;
}

.guide-narrow {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

.guide-hero {
  padding: 95px 8% 85px;
  background: #171615;
  color: #f4efe7;
  text-align: center;
}

.guide-en {
  margin: 0 0 18px;
  color: #c5a66a;
  font-family: Georgia, serif;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 5px;
}

.guide-hero h1 {
  margin: 0;
  color: #f4efe7;
  font-size: 32px;
  font-weight: normal;
  line-height: 1.8;
  letter-spacing: 4px;
}

.guide-line {
  width: 46px;
  height: 1px;
  margin: 30px auto;
  background: #c5a66a;
}

.guide-lead {
  margin: 0;
  color: #cfc7bc;
  font-size: 13px;
  line-height: 2.2;
  letter-spacing: 0.5px;
}

.guide-content {
  padding: 100px 8% 120px;
  background: #f3eee6;
  color: #2c2925;
}

.guide-block {
  margin: 0 0 80px;
  padding-top: 34px;
  border-top: 1px solid rgba(165, 135, 84, 0.5);
}

.guide-number {
  margin: 0 0 12px;
  color: #a58754;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: 3px;
}

.guide-block h2 {
  margin: 0 0 22px;
  color: #876b3d;
  font-family: Georgia, serif;
  font-size: 15px;
  font-weight: normal;
  letter-spacing: 3px;
}

.guide-block h3 {
  margin: 0 0 28px;
  color: #2c2925;
  font-size: 21px;
  font-weight: normal;
  line-height: 1.9;
  letter-spacing: 1px;
}

.guide-block p,
.policy-body p {
  color: #4f4942;
  font-size: 14px;
  line-height: 2.2;
  letter-spacing: 0.2px;
}

.guide-block strong {
  font-weight: normal;
  color: #2c2925;
}

.guide-note {
  color: #776e63 !important;
  font-size: 12px !important;
}

.guide-price-list,
.guide-policy {
  margin: 32px 0;
  border-top: 1px solid rgba(165, 135, 84, 0.35);
}

.guide-price-list > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 90px 110px;
  gap: 18px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid rgba(165, 135, 84, 0.35);
}

.guide-price-list span {
  font-family: Georgia, serif;
  font-size: 13px;
  letter-spacing: 1.5px;
}

.guide-price-list small {
  color: #776e63;
  font-size: 12px;
}

.guide-price-list strong {
  text-align: right;
  font-size: 18px;
}

.guide-policy > div {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(165, 135, 84, 0.35);
}

.guide-policy span {
  color: #4f4942;
  font-size: 13px;
}

.guide-policy strong {
  color: #876b3d;
  font-size: 14px;
  font-weight: normal;
  white-space: nowrap;
}

.guide-text-link,
.policy-body a {
  color: #876b3d;
  text-decoration: none;
  border-bottom: 1px solid rgba(135, 107, 61, 0.45);
}

.guide-confirm {
  margin-top: 105px;
  padding: 48px 46px;
  border: 1px solid rgba(165, 135, 84, 0.55);
  background: rgba(255, 255, 255, 0.42);
  text-align: center;
}

.guide-check {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 12px;
  text-align: left;
  color: #3f3a34;
  font-size: 13px;
  line-height: 2;
  cursor: pointer;
}

.guide-check input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 5px;
}

.guide-check a {
  color: #876b3d;
  text-decoration: none;
  border-bottom: 1px solid rgba(135, 107, 61, 0.45);
}

.guide-square-button {
  display: inline-block;
  min-width: 300px;
  margin-top: 34px;
  padding: 16px 32px;
  border: 1px solid #8d7245;
  background: #8d7245;
  color: #ffffff;
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: 3px;
  transition: 0.3s ease;
}

.guide-square-button:hover {
  background: #6f5835;
  border-color: #6f5835;
}

.guide-square-button.is-disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.guide-external {
  margin: 24px auto 0;
  color: #776e63;
  font-size: 11px;
  line-height: 2;
}

.policy-body article {
  margin: 0 0 58px;
}

.policy-body article h2 {
  margin: 0 0 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(165, 135, 84, 0.4);
  color: #876b3d;
  font-size: 18px;
  font-weight: normal;
  line-height: 1.8;
  letter-spacing: 1px;
}

.policy-company {
  margin-top: 80px;
  text-align: right;
}

.policy-back {
  margin-top: 70px;
  text-align: center;
}

.policy-back a {
  display: inline-block;
  padding: 12px 28px;
  border: 1px solid #8d7245;
  color: #876b3d;
  font-family: Georgia, serif;
  font-size: 10px;
  letter-spacing: 2px;
}

@media screen and (max-width: 700px) {
  .guide-page {
    padding-top: 64px;
  }

  .guide-hero {
    padding: 70px 24px 64px;
  }

  .guide-hero h1 {
    font-size: 24px;
    line-height: 1.9;
    letter-spacing: 2px;
  }

  .guide-lead {
    text-align: left;
    font-size: 12.5px;
    letter-spacing: 0;
  }

  .guide-content {
    padding: 70px 24px 90px;
  }

  .guide-block {
    margin-bottom: 64px;
  }

  .guide-block h3 {
    font-size: 18px;
    letter-spacing: 0.4px;
  }

  .guide-block p,
  .policy-body p {
    font-size: 13px;
    letter-spacing: 0;
  }

  .guide-price-list > div {
    grid-template-columns: 1fr auto;
    gap: 5px 12px;
  }

  .guide-price-list small {
    grid-column: 1;
  }

  .guide-price-list strong {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
  }

  .guide-policy > div {
    gap: 18px;
  }

  .guide-policy span {
    font-size: 12px;
  }

  .guide-policy strong {
    font-size: 12px;
  }

  .guide-confirm {
    margin-top: 80px;
    padding: 34px 22px;
  }

  .guide-check {
    justify-content: flex-start;
    font-size: 12px;
  }

  .guide-square-button {
    width: 100%;
    min-width: 0;
    padding-left: 12px;
    padding-right: 12px;
    letter-spacing: 2px;
  }

  .footer-links {
    gap: 10px 16px;
  }

  .footer-links a {
    font-size: 8px;
    letter-spacing: 1.2px;
  }
}

/* ===== NAVIGATION / CTA REFINEMENT v1013 ===== */
header .pc-nav .nav-reservation{padding:9px 15px;border:1px solid rgba(197,166,106,.75);color:#d8b86f}
header .pc-nav .nav-reservation:hover{opacity:1;background:#c5a66a;color:#111}
.session-detail-link,.session-button{letter-spacing:1.2px}
.contact-actions{margin-top:28px;text-align:center}
.contact-actions .hero-button{margin-top:0}
.contact-text-link{display:block;width:max-content;margin:22px auto 0;color:#c5a66a;text-decoration:none;font-size:12px;letter-spacing:1px;border-bottom:1px solid rgba(197,166,106,.5)}
.guide-en-label{margin:0 0 8px;color:#a58754;font-family:Georgia,serif;font-size:10px;line-height:1.5;letter-spacing:3px}
.guide-block .guide-ja-title{margin:0 0 26px;color:#2c2925;font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;font-size:22px;font-weight:normal;line-height:1.8;letter-spacing:1px}
.guide-block{padding-top:42px}
.guide-block h3{margin-bottom:32px}
@media screen and (max-width:700px){
header .mobile-nav .nav-reservation{width:calc(100% - 48px);margin:12px auto 0;padding:13px 10px;border:1px solid rgba(197,166,106,.75);color:#d8b86f;text-align:center}
.session-detail-link,.session-button{letter-spacing:.5px}
.guide-block{padding-top:36px}
.guide-block .guide-ja-title{margin-bottom:24px;font-size:19px;letter-spacing:.5px}
}

/* v1014: refund-policy text update; layout unchanged */

/* ===== RESERVATION MOBILE TEXT WRAP FIX v1015 ===== */
@media screen and (max-width:700px){
  .guide-block h3{
    font-size:17px;
    line-height:1.9;
    letter-spacing:0;
  }

  .guide-block p,
  .policy-body p{
    font-size:12.5px;
    line-height:2.05;
    letter-spacing:-0.15px;
    word-break:normal;
    overflow-wrap:break-word;
  }

  .guide-block .guide-ja-title{
    letter-spacing:0;
  }
}
