
/* =========================================================
   TAKEMON OPENING SPECIAL COURSE
   固定ページ専用CSS
   ========================================================= */

/* SWELLページタイトル・余白を解除 */
#top_title_area,
.l-topTitleArea {
  display: none !important;
}

#content,
.l-content,
.l-mainContent,
.l-mainContent__inner,
.l-mainContent__inner > .post_content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

#breadcrumb {
  display: none !important;
}

.post_content > .tm-opening {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}


/* =========================================================
   BASE
   ========================================================= */

.tm-opening,
.tm-opening * {
  box-sizing: border-box;
}

.tm-opening {
  --tm-dark: #171916;
  --tm-dark-soft: #20221e;
  --tm-light: #f4f2eb;
  --tm-soft: #eae7de;
  --tm-text: #272925;
  --tm-white: #f8f6f0;
  --tm-line-dark: rgba(35, 38, 33, 0.15);
  --tm-line-light: rgba(255, 255, 255, 0.17);

  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: hidden;

  color: var(--tm-text);
  font-size: 16px;
}

.tm-opening p,
.tm-opening h1,
.tm-opening h2,
.tm-opening h3,
.tm-opening dl,
.tm-opening dd,
.tm-opening ol,
.tm-opening ul,
.tm-opening address {
  margin-top: 0;
}

.tm-opening h1,
.tm-opening h2,
.tm-opening h3 {
  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  font-weight: 400;
}

.tm-opening p,
.tm-opening li,
.tm-opening dd {
  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
}

.tm-opening a {
  text-decoration: none !important;
}

.tm-opening__section {
  position: relative;
  width: 100%;
}

.tm-opening__section::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: clamp(28px, 5vw, 80px);
  width: 1px;
  pointer-events: none;
}

.tm-opening__section--light {
  color: var(--tm-text);
  background: var(--tm-light);
}

.tm-opening__section--soft {
  color: var(--tm-text);
  background: var(--tm-soft);
}

.tm-opening__section--dark {
  color: var(--tm-white);
  background:
    radial-gradient(
      circle at 20% 40%,
      rgba(255, 255, 255, 0.035),
      transparent 34%
    ),
    var(--tm-dark);
}

.tm-opening__section--light::before,
.tm-opening__section--soft::before {
  background: var(--tm-line-dark);
}

.tm-opening__section--dark::before {
  background: var(--tm-line-light);
}

.tm-opening__inner {
  width: min(100%, 1240px);
  margin: 0 auto;
  padding:
    clamp(100px, 13vw, 170px)
    clamp(60px, 10vw, 150px);
}


/* =========================================================
   HERO
   ========================================================= */

.tm-opening__hero {
  position: relative;
  display: grid;
  place-items: center;

  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;

  overflow: hidden;
  color: var(--tm-white);
  background: #111310;
}

.tm-opening__hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;

  background:
    linear-gradient(
      180deg,
      rgba(11, 13, 11, 0.32) 0%,
      rgba(11, 13, 11, 0.48) 55%,
      rgba(11, 13, 11, 0.7) 100%
    );
}

.tm-opening__hero-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.tm-opening__hero-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  animation: tmOpeningZoom 24s ease-in-out infinite alternate;
}

.tm-opening__hero-inner {
  position: relative;
  z-index: 2;

  width: min(100% - 48px, 850px);
  padding: clamp(90px, 12vh, 140px) 0;
  text-align: center;
}

.tm-opening__hero-label,
.tm-opening__eyebrow {
  font-family: Arial, sans-serif !important;
  font-size: clamp(0.65rem, 0.7vw, 0.75rem);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.32em;
}

.tm-opening__hero-label {
  margin-bottom: clamp(30px, 5vh, 52px);
  opacity: 0.74;
}

.post_content .tm-opening__hero-title {
  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  color: inherit !important;
  background: transparent !important;
  box-shadow: none !important;

  font-size: clamp(3rem, 6vw, 6rem);
  line-height: 1.35;
  letter-spacing: 0.12em;
}

.post_content .tm-opening__hero-title::before,
.post_content .tm-opening__hero-title::after {
  display: none !important;
  content: none !important;
}

.tm-opening__hero-copy {
  margin: clamp(34px, 5vh, 54px) 0 0;
  font-size: clamp(1rem, 1.3vw, 1.25rem);
  line-height: 2.15;
  letter-spacing: 0.1em;
}

.tm-opening__hero-note {
  margin: 24px 0 0;
  font-family: Arial, sans-serif !important;
  font-size: 0.62rem;
  line-height: 1.5;
  letter-spacing: 0.24em;
  opacity: 0.55;
}

.tm-opening__scroll {
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 2;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;

  transform: translateX(-50%);
}

.tm-opening__scroll span {
  font-family: Arial, sans-serif;
  font-size: 0.55rem;
  letter-spacing: 0.3em;
  opacity: 0.62;
}

.tm-opening__scroll i {
  display: block;
  width: 1px;
  height: 54px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.2);
}

.tm-opening__scroll i::before {
  content: "";
  display: block;
  width: 100%;
  height: 45%;
  background: rgba(255, 255, 255, 0.72);
  animation: tmOpeningScroll 2.8s ease-in-out infinite;
}


/* =========================================================
   SECTION HEADING
   ========================================================= */

.tm-opening__heading {
  display: grid;
  grid-template-columns: minmax(120px, 180px) minmax(0, 760px);
  gap: clamp(50px, 8vw, 110px);
  align-items: start;
}

.tm-opening__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
}

.tm-opening__meta small,
.tm-opening__meta span {
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1;
}

.tm-opening__meta small {
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  opacity: 0.45;
}

.tm-opening__meta span {
  font-size: 0.72rem;
  letter-spacing: 0.28em;
  writing-mode: vertical-rl;
  opacity: 0.65;
}

.tm-opening__eyebrow {
  margin-bottom: clamp(22px, 3vh, 32px);
  opacity: 0.5;
}

.post_content .tm-opening__title,
.post_content .tm-opening__final-title {
  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  color: inherit !important;
  background: transparent !important;
  box-shadow: none !important;

  font-size: clamp(1.65rem, 2.6vw, 2.8rem);
  line-height: 1.65;
  letter-spacing: 0.08em;
  text-align: left !important;
}

.post_content .tm-opening__title::before,
.post_content .tm-opening__title::after,
.post_content .tm-opening__final-title::before,
.post_content .tm-opening__final-title::after {
  display: none !important;
  content: none !important;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

.tm-opening__lead {
  width: min(100%, 680px);
  margin: clamp(65px, 9vw, 110px) auto 0;
}

.tm-opening__lead p {
  margin-bottom: 2.2em;
  font-size: clamp(1rem, 1.15vw, 1.1rem);
  line-height: 2.5;
  letter-spacing: 0.08em;
}

.tm-opening__lead p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   COURSE
   ========================================================= */

.tm-opening__course-panel {
  display: grid;
  grid-template-columns: minmax(240px, 0.9fr) minmax(0, 1.6fr);

  width: min(100%, 900px);
  margin: clamp(65px, 9vw, 105px) auto 0;

  border-top: 1px solid var(--tm-line-dark);
  border-bottom: 1px solid var(--tm-line-dark);
}

.tm-opening__course-name {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 330px;
  padding: 42px;
  border-right: 1px solid var(--tm-line-dark);
}

.tm-opening__course-name small {
  margin-bottom: 28px;
  font-family: Arial, sans-serif;
  font-size: 0.6rem;
  letter-spacing: 0.27em;
  opacity: 0.48;
}

.tm-opening__course-name h3 {
  margin-bottom: 26px;
  font-size: clamp(1.45rem, 2.3vw, 2.25rem);
  line-height: 1.65;
  letter-spacing: 0.1em;
}

.tm-opening__course-name p {
  margin-bottom: 0;
  font-size: 0.9rem;
  letter-spacing: 0.12em;
  opacity: 0.65;
}

.tm-opening__course-details {
  padding: 24px 42px;
}

.tm-opening__course-details > div {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 20px;

  padding: 24px 0;
  border-bottom: 1px solid var(--tm-line-dark);
}

.tm-opening__course-details > div:last-child {
  border-bottom: 0;
}

.tm-opening__course-details dt {
  font-family: Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  opacity: 0.48;
}

.tm-opening__course-details dd {
  margin: 0;
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
}

.tm-opening__course-note {
  margin: clamp(42px, 6vw, 70px) auto 0;
  font-size: 1rem;
  line-height: 2.3;
  letter-spacing: 0.07em;
  text-align: center;
  opacity: 0.72;
}


/* =========================================================
   EXPERIENCE
   ========================================================= */

.tm-opening__experience-grid,
.tm-opening__benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));

  margin: clamp(65px, 9vw, 105px) 0 0;
  border-top: 1px solid currentColor;
  border-bottom: 1px solid currentColor;

  opacity: 0.9;
}

.tm-opening__experience-item,
.tm-opening__benefits article {
  position: relative;
  padding: clamp(35px, 5vw, 60px);
}

.tm-opening__experience-item + .tm-opening__experience-item,
.tm-opening__benefits article + article {
  border-left: 1px solid currentColor;
}

.tm-opening__experience-item > span,
.tm-opening__benefits article > span {
  display: block;
  margin-bottom: 28px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  opacity: 0.45;
}

.tm-opening__experience-item h3,
.tm-opening__benefits h3 {
  margin-bottom: 24px;
  font-size: clamp(1.2rem, 1.5vw, 1.5rem);
  line-height: 1.6;
  letter-spacing: 0.12em;
}

.tm-opening__experience-item p,
.tm-opening__benefits p {
  margin-bottom: 0;
  font-size: 1rem;
  line-height: 2.15;
  letter-spacing: 0.06em;
  opacity: 0.75;
}


/* =========================================================
   BUTTON
   ========================================================= */

.tm-opening__button {
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 35px;

  min-width: min(100%, 340px);
  margin-top: clamp(34px, 5vh, 48px);
  padding: 20px 24px;

  border: 1px solid currentColor;

  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;

  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.08em;

  transition:
    color 0.35s ease,
    background-color 0.35s ease;
}

.tm-opening__button span {
  text-align: left;
}

.tm-opening__button i {
  font-family: Arial, sans-serif;
  font-style: normal;
  transition: transform 0.35s ease;
}

.tm-opening__button--light {
  color: var(--tm-white) !important;
  background: rgba(20, 22, 19, 0.3);
}

.tm-opening__button--dark {
  color: var(--tm-text) !important;
  background: transparent;
}

.tm-opening__button:hover,
.tm-opening__button:focus-visible {
  color: var(--tm-text) !important;
  background: var(--tm-white);
}

.tm-opening__button:hover i,
.tm-opening__button:focus-visible i {
  transform: translateX(5px);
}

.tm-opening__button:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 5px;
}

.tm-opening__center-button {
  margin-top: clamp(55px, 8vw, 85px);
  text-align: center;
}

.tm-opening__center-button p {
  margin: 20px 0 0;
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  opacity: 0.58;
}


/* =========================================================
   FLOW
   ========================================================= */

.tm-opening__flow {
  width: min(100%, 820px);
  margin: clamp(65px, 9vw, 105px) auto 0;
  padding: 0;
  list-style: none;
}

.tm-opening__flow li {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: clamp(25px, 5vw, 55px);

  padding: 35px 0;
  border-bottom: 1px solid var(--tm-line-dark);
}

.tm-opening__flow li:first-child {
  border-top: 1px solid var(--tm-line-dark);
}

.tm-opening__flow li > span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.75rem;
  letter-spacing: 0.13em;
  opacity: 0.45;
}

.tm-opening__flow h3 {
  margin-bottom: 13px;
  font-size: clamp(1.08rem, 1.3vw, 1.3rem);
  line-height: 1.65;
  letter-spacing: 0.08em;
}

.tm-opening__flow p {
  margin-bottom: 0;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: 0.055em;
  opacity: 0.72;
}


/* =========================================================
   NOTICE
   ========================================================= */

.tm-opening__notice {
  width: min(100%, 820px);
  margin: clamp(65px, 9vw, 105px) auto 0;
  padding: clamp(30px, 5vw, 55px);
  border: 1px solid var(--tm-line-dark);
}

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

.tm-opening__notice li {
  position: relative;
  margin-bottom: 1.3em;
  padding-left: 1.4em;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: 0.055em;
}

.tm-opening__notice li:last-child {
  margin-bottom: 0;
}

.tm-opening__notice li::before {
  content: "—";
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0.45;
}


/* =========================================================
   STORE
   ========================================================= */

.tm-opening__store {
  display: grid;
  grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1.4fr);
  gap: clamp(60px, 10vw, 130px);

  width: min(100%, 860px);
  margin: clamp(65px, 9vw, 105px) auto 0;
  padding-top: clamp(45px, 7vw, 75px);

  border-top: 1px solid var(--tm-line-light);
}

.tm-opening__store-logo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.tm-opening__store-logo span {
  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  font-size: clamp(2rem, 4vw, 3.6rem);
  letter-spacing: 0.18em;
}

.tm-opening__store-logo small {
  margin-top: 14px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  opacity: 0.58;
}

.tm-opening__store address {
  font-style: normal;
}

.tm-opening__store dl {
  margin-bottom: 0;
}

.tm-opening__store dl > div {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 25px;

  padding: 22px 0;
  border-bottom: 1px solid var(--tm-line-light);
}

.tm-opening__store dl > div:first-child {
  padding-top: 0;
}

.tm-opening__store dt {
  font-family: Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  opacity: 0.48;
}

.tm-opening__store dd {
  margin: 0;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: 0.05em;
}


/* =========================================================
   FINAL CTA
   ========================================================= */

.tm-opening__final {
  display: grid;
  place-items: center;

  min-height: 80vh;
  min-height: 80svh;

  padding:
    clamp(100px, 14vw, 180px)
    24px;

  color: var(--tm-text);
  background: var(--tm-light);
  text-align: center;
}

.tm-opening__final-inner {
  width: min(100%, 760px);
}

.post_content .tm-opening__final-title {
  text-align: center !important;
}

.tm-opening__final-copy {
  margin: clamp(35px, 5vw, 52px) 0 0;
  font-size: 1rem;
  line-height: 2.3;
  letter-spacing: 0.07em;
}

.tm-opening__final-note {
  margin: 20px 0 0;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  opacity: 0.55;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 959px) {

  .tm-opening__section::before {
    left: 24px;
  }

  .tm-opening__inner {
    padding:
      clamp(90px, 13vw, 130px)
      clamp(46px, 8vw, 80px);
  }

  .tm-opening__heading {
    display: block;
  }

  .tm-opening__meta {
    flex-direction: row;
    align-items: center;
    gap: 14px;
    margin-bottom: 45px;
  }

  .tm-opening__meta span {
    writing-mode: horizontal-tb;
  }

  .tm-opening__meta::after {
    content: "";
    display: block;
    width: 48px;
    height: 1px;
    margin-left: 5px;
    background: currentColor;
    opacity: 0.25;
  }

  .tm-opening__course-panel {
    grid-template-columns: 1fr;
  }

  .tm-opening__course-name {
    min-height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--tm-line-dark);
  }

  .tm-opening__experience-grid,
  .tm-opening__benefits {
    grid-template-columns: 1fr;
  }

  .tm-opening__experience-item + .tm-opening__experience-item,
  .tm-opening__benefits article + article {
    border-top: 1px solid currentColor;
    border-left: 0;
  }

  .tm-opening__store {
    grid-template-columns: 1fr;
    gap: 55px;
  }
}


/* =========================================================
   SMARTPHONE
   ========================================================= */

@media screen and (max-width: 600px) {

  .tm-opening {
    font-size: 16px;
  }

  .tm-opening__hero-inner {
    width: calc(100% - 40px);
    padding-bottom: 110px;
  }

  .post_content .tm-opening__hero-title {
    font-size: clamp(2.65rem, 13vw, 3.8rem);
    line-height: 1.4;
    letter-spacing: 0.08em;
  }

  .tm-opening__hero-copy {
    font-size: 1rem;
    line-height: 2.1;
  }

  .tm-opening__inner {
    padding:
      90px
      24px
      100px
      46px;
  }

  .post_content .tm-opening__title,
  .post_content .tm-opening__final-title {
    font-size: clamp(1.55rem, 7vw, 1.9rem);
    line-height: 1.75;
    letter-spacing: 0.065em;
  }

  .tm-opening__lead {
    margin-top: 55px;
  }

  .tm-opening__lead p,
  .tm-opening__course-note,
  .tm-opening__experience-item p,
  .tm-opening__benefits p,
  .tm-opening__flow p,
  .tm-opening__notice li,
  .tm-opening__store dd,
  .tm-opening__final-copy {
    font-size: 1rem;
  }

  .tm-opening__course-name,
  .tm-opening__course-details {
    padding: 30px 24px;
  }

  .tm-opening__course-details > div {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .tm-opening__course-note {
    text-align: left;
  }

  .tm-opening__experience-item,
  .tm-opening__benefits article {
    padding: 38px 24px;
  }

  .tm-opening__button {
    width: 100%;
    min-width: 0;
  }

  .tm-opening__flow li {
    grid-template-columns: 45px minmax(0, 1fr);
    gap: 18px;
  }

  .tm-opening__notice {
    padding: 28px 22px;
  }

  .tm-opening__store dl > div {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .tm-opening__final {
    min-height: auto;
    padding: 110px 24px;
  }

  .tm-opening__pc-only {
    display: none;
  }
}


/* =========================================================
   ANIMATION
   ========================================================= */

@keyframes tmOpeningZoom {
  from {
    transform: scale(1);
  }

  to {
    transform: scale(1.045);
  }
}

@keyframes tmOpeningScroll {
  0% {
    transform: translateY(-110%);
  }

  50%,
  100% {
    transform: translateY(230%);
  }
}

@media (prefers-reduced-motion: reduce) {

  .tm-opening__hero-visual img,
  .tm-opening__scroll i::before,
  .tm-opening__button,
  .tm-opening__button i {
    animation: none !important;
    transition: none !important;
  }
}

/* Photo / opening price / LINE CTA adjustments only. */
.tm-opening .tm-opening__course-photo { width: min(100%, 900px); margin: clamp(40px, 6vw, 72px) auto 0; }
.tm-opening .tm-opening__course-photo img { display: block; width: 100%; height: auto; }
.tm-opening .tm-opening__course-photo figcaption { margin-top: 12px; font-size: .75rem; line-height: 1.8; opacity: .65; }
.tm-opening .tm-opening__course-photo + .tm-opening__course-panel { margin-top: clamp(32px, 5vw, 56px); }
.post_content .tm-opening .tm-opening__course-name h3 { padding: 0; border: 0; background: transparent; box-shadow: none; }
.post_content .tm-opening .tm-opening__course-name h3::before,
.post_content .tm-opening .tm-opening__course-name h3::after { content: none; display: none; }
.tm-opening .tm-opening__standard-name { display: block; white-space: nowrap; font-size: clamp(1.15rem, 1.9vw, 1.7rem); letter-spacing: .06em; }
.tm-opening .tm-opening__standard-theme { display: block; margin-top: 12px; font-size: clamp(.95rem, 1.2vw, 1.1rem); line-height: 1.8; letter-spacing: .03em; }
.tm-opening .tm-opening__course-details > .tm-opening__offer-price { background: rgba(118, 102, 65, .07); }
.tm-opening .tm-opening__offer-price dt { opacity: 1; font-size: .75rem; letter-spacing: .08em; color: #344638; }
.tm-opening .tm-opening__offer-price dd { color: #223d30; }
.tm-opening .tm-opening__price-number { display: block; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.2rem, 3.4vw, 3.2rem); font-weight: 400; line-height: 1.25; letter-spacing: .02em; white-space: nowrap; }
.tm-opening .tm-opening__price-number > span { margin-left: 5px; font-family: inherit; font-size: .45em; }
.tm-opening .tm-opening__price-tax { display: block; margin-top: 8px; font-size: .85rem; line-height: 1.8; letter-spacing: .04em; }
.tm-opening .tm-opening__button--line { width: min(100%, 440px); max-width: 100%; min-width: 0; padding: 25px 28px; border-color: #426651; color: #fff !important; background: #244d3c; font-size: clamp(1rem, 1.15vw, 1.15rem); font-weight: 600; letter-spacing: .04em; box-shadow: 0 8px 24px rgba(0,0,0,.13); text-decoration: none; }
.tm-opening .tm-opening__button--line:hover,
.tm-opening .tm-opening__button--line:focus-visible { color: #fff !important; background: #173c2d; border-color: #648674; }
.tm-opening .tm-opening__hero-note { margin-top: 18px; font-size: .75rem; letter-spacing: .06em; opacity: .85; }
.tm-opening .tm-opening__hero-visual img { object-position: 50% 50%; }
@media (max-width: 600px) {
  .tm-opening .tm-opening__button--line { width: 100%; padding: 22px 20px; gap: 14px; }
  .tm-opening .tm-opening__hero-visual img { object-position: 42% 50%; }
  .tm-opening .tm-opening__standard-name { font-size: 1.5rem; }
  .tm-opening .tm-opening__flow li { grid-template-columns: 32px minmax(0, 1fr); gap: 10px; }
  .tm-opening .tm-opening__flow li:first-child h3 { white-space: nowrap; font-size: clamp(.82rem, 3.7vw, .95rem); letter-spacing: .01em; }
}

/* 1.3.2: Dark editorial sections; keep the last reservation panel light. */
.tm-child-page--opening .post_content > .swell-block-fullWide {
  background-color: #191b18 !important;
}
.tm-child-page--opening .post_content .tm-opening {
  --tm-line-dark: rgba(244, 240, 229, .22);
  --tm-text: #edeae2;
  background-color: #191b18;
  color: #edeae2;
}
.tm-child-page--opening .post_content .tm-opening__section--light {
  background-color: #1c1f1b;
  color: #edeae2;
}
.tm-child-page--opening .post_content .tm-opening__section--soft {
  background-color: #242721;
  color: #edeae2;
}
.tm-child-page--opening .post_content .tm-opening__section--light::before,
.tm-child-page--opening .post_content .tm-opening__section--soft::before {
  background-color: var(--tm-line-dark);
}
.tm-child-page--opening .post_content .tm-opening__offer-price dt,
.tm-child-page--opening .post_content .tm-opening__offer-price dd {
  color: #f8f6f0;
}
.tm-child-page--opening .post_content .tm-opening__course-details > .tm-opening__offer-price {
  background-color: rgba(244, 240, 229, .09);
}
.tm-child-page--opening .post_content .tm-opening__button--dark {
  color: #edeae2 !important;
}
.tm-child-page--opening .post_content .tm-opening__final {
  color: #272925;
  background-color: #f4f2eb;
}
