@charset "UTF-8";

/*==========================================================================
  Settings: 変数
==========================================================================*/

:root {
  --orange: #f4630d;
  --yellow: #f3b11c;
  --page-bg: #f5b313;
  --panel: #f7f3ea;
  --line: #ef6c20;
  --ink: #3e3a39;
  --muted: #6f675f;
  --soft-yellow: #ebe4cb;
  --soft-pink: #ecd7d2;
  --card-yellow: #f1e9c5;
  --card-beige: #f6efe4;
  --shadow: 0 14px 36px rgba(66, 44, 0, 0.08);
  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-md: 16px;
  --font-size-lg: 20px;
  --font-size-xl: 24px;
  --font-size-2xl: 32px;
  --font-size-hero: 56px;
  --font-size-hero-title: 70px;
  --content-shell-width: 1440px;
}

/*==========================================================================
  Base: 全体の初期設定
==========================================================================*/

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Noto Sans JP', system-ui, sans-serif;
  color: var(--ink);
  background: var(--page-bg);
}

input,
button,
textarea,
select {
  border: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

a {
  text-decoration: none;
}

a:hover {
  opacity: 0.8;
}

[hidden] {
  display: none !important;
}

.page {
  overflow: hidden;
}

/*==========================================================================
  Utilities: 汎用クラス
==========================================================================*/

.clear:after {
  content: "";
  display: block;
  clear: both;
}

.txt_center {
  text-align: center;
}

.txt_right {
  text-align: right;
}

.fs20 {
  font-size: var(--font-size-lg);
}

.fs70 {
  font-size: var(--font-size-hero-title);
}

/*==========================================================================
  TOP / Hero: メインビジュアル
==========================================================================*/

.hero {
  position: relative;
  max-width: 1120px;
  margin: 0 auto;
  padding: 100px 24px 50px;
  text-align: center;
}

.hero__city {
  position: absolute;
  left: 50%;
  bottom: -30px;
  transform: translateX(-50%);
  width: min(100vw, var(--content-shell-width));
  pointer-events: none;
  z-index: -1;
}

.hero__city-image {
  display: block;
  width: 100%;
  height: auto;
}

.hero__title-wrap {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(74px, 6.39vw, 92px);
  min-width: min(100%, clamp(320px, 52.78vw, 760px));
  padding:
    clamp(16px, 2.78vw, 40px)
    clamp(20px, 2.43vw, 35px);
  background: #fff7ef;
  border-radius: 26px;
  box-shadow: var(--shadow);
}

.hero__title-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 2.08vw, 30px);
}

.hero__title {
  margin: 0;
  line-height: 1.15;
  letter-spacing: 0.04em;
  color: var(--orange);
  font-weight: 800;
}

.hero__title.fs70 {
  font-size: clamp(28px, 4.86vw, 70px);
}

.hero__title.fs70 .sp-only {
  display: none;
}

.hero__title-line {
  display: block;
  width: clamp(18px, 2.43vw, 35px);
  height: auto;
  flex-shrink: 0;
}

.hero__title-line--left {
  transform: translateY(4px);
}

.hero__title-line--right {
  transform: translateY(4px);
}

.hero__lead-group {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 16px;
  max-width: 980px;
  margin: 0 auto;
  z-index: 1;
}

.hero__lead-image {
  display: block;
  height: auto;
  max-width: none;
}

.hero__lead-image--right {
  width: clamp(90px, calc(26.54px + 17.81vw), 260px);
  z-index: 1;
}

.hero__lead-image--left {
  width: clamp(90px, calc(18.29px + 20.95vw), 270px);
  z-index: 1;
}

.hero__lead-position--right {
  bottom: -48px;
  right: 0;
  position: absolute;
  z-index: 2;
}

.hero__lead-position--left {
  bottom: 0;
  left: 0;
  position: absolute;
  z-index: 2;
}

.hero__lead {
  color: #363636;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  padding-top: 50px;
  font-style: normal;
  font-weight: bold;
  line-height: 160%;
  z-index: 2;
}

@media (max-width: 720px) {
  .hero {
    padding: 32px 16px 24px;
  }

  .hero__title.fs70 {
    line-height: 1.25;
  }

  .hero__title-wrap {
    border-radius: 20px;
  }

  .hero__lead {
    font-size: 0.94rem;
    padding: 10px 8px 0;
  }

  .hero__city {
    width: calc(100vw - 24px);
  }

  .hero__lead-position--right {
    bottom: -48px;
    right: 0;
    position: absolute;
  }

  .hero__lead-position--left {
    bottom: -28px;
    left: 0;
    position: absolute;
  }
  .hero__lead {
    max-width: 350px;
    position: relative;
    z-index: 3;
  }
  .hero__lead br {
    display: none;
  }
}

/*==========================================================================
  TOP / Content shell: 背景・白パネル
==========================================================================*/

.content-shell {
  position: relative;
  margin: 0 auto 48px;
  padding: 72px 42px 58px;
  max-width: var(--content-shell-width);
  border-radius: 42px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.content-shell-bg {
  max-width: 1260px;
  margin: 0 auto;
}

.content-shell__bg {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.content-shell__bg-image {
  position: absolute;
  height: auto;
  display: block;
}

.content-shell__bg-image--left {
  left: 32px;
  top: 48px;
  width: 220px;
}

.content-shell__bg--left {
  left: 0;
  background: var(--soft-yellow);
  border-radius: 42px 0 0 42px;
}

.content-shell__bg--right {
  right: 0;
  background: var(--soft-pink);
  border-radius: 0 42px 42px 0;
}

.content-shell__bg-image--right {
  right: 18px;
  bottom: 22px;
  width: 92px;
}

.section-panel {
  position: relative;
  z-index: 1;
  background: #fff;
  padding: 32px 42px 44px;
}

.section-block {
  position: relative;
  z-index: 1;
}

.section-block--spaced {
  margin-top: 52px;
}

@media (max-width: 720px) {
  .section-panel {
    padding: 24px 16px 32px;
  }

  .content-shell {
    margin: 0 12px 28px;
    padding: 48px 18px 28px;
    border-radius: 28px;
  }

  .content-shell__bg--left {
    border-radius: 28px 0 0 28px;
  }

  .content-shell__bg--right {
    border-radius: 0 28px 28px 0;
  }
}

/*==========================================================================
  TOP / Section heading: アコーディオン見出し
==========================================================================*/

.section-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 58px;
  padding: 0 88px;
  border: 2px solid var(--line);
  border-radius: 18px;
  background: #f8f0e3;
}

.section-heading--column {
  background: #ece7c5;
}

.section-heading h2 {
  margin: 0;
  font-size: 1.8rem;
  color: var(--orange);
  line-height: 1;
}

.section-heading__text {
  font-size: 28px;
  color: var(--orange);
  line-height: 1;
  font-weight: 700;
}

.section-heading__icon-image {
  display: block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.section-heading__ornament {
  display: block;
  width: 30px;
  height: auto;
  margin-left: auto;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.section-heading__icon-image,
.section-heading__ornament {
  pointer-events: none;
}

.section-heading--toggle[aria-expanded="true"] .section-heading__ornament {
  transform: rotate(90deg);
}

.section-heading--toggle {
  width: 100%;
  appearance: none;
  cursor: pointer;
  text-align: left;
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.section-heading--toggle .section-heading__icon-image,
.section-heading--toggle .section-heading__ornament,
.section-heading--toggle .section-heading__text {
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

.section-heading--toggle:hover {
  background: #fff5eb;
  box-shadow: 0 4px 12px rgba(255, 38, 0, 0.16);
  transform: translateY(-1px);
}

.section-heading--toggle:hover .section-heading__icon-image {
  transform: scale(1.05);
}

.section-heading--toggle:active {
  box-shadow: 0 2px 6px rgba(255, 38, 0, 0.12);
  transform: translateY(0);
}

.section-heading--toggle:focus-visible {
  outline: 3px solid rgba(255, 38, 0, 0.35);
  outline-offset: 4px;
}

.section-heading--toggle h2 {
  pointer-events: none;
}

@media (max-width: 720px) {
  .section-heading {
    min-height: 58px;
    padding: 0 16px;
  }

  .section-heading h2 {
    font-size: 1.4rem;
  }
}

/*==========================================================================
  TOP / Cards: グリッド・カード・サムネイル
==========================================================================*/

.card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 26px;
}

.content-card {
  background: rgba(255, 252, 246, 0.93);
  padding: 0 0 18px;
  transition: .4s;
  &:hover {
    background-color: rgb(245, 179, 19, .3);
  }

  & a {
    display: block;
    &:hover {
      text-decoration: none;
    }
  }
}

.content-card__heading {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 14px 16px 0;
}

.content-card__meta {
  flex-shrink: 0;
  margin: 0;
  padding: 3px 8px;
  border: 1px solid var(--line);
  color: var(--orange);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.1;
}

.content-card__title {
  flex: 1;
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 20px;
  color: #363636;
  font-style: normal;
  font-weight: 500;
  line-height: 150%;
}

.content-card__text {
  margin: 12px 16px 0;
  font-size: 16px;
  line-height: 1.9;
  color: var(--muted);
}

.content-card__video-link {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.content-card__video-link:hover {
  opacity: 1;
}

.content-card__video-link:hover .thumb {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(66, 44, 0, 0.12);
}

.content-card__video-link .thumb {
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.content-card__video-link:focus-visible {
  outline: 3px solid rgba(255, 38, 0, 0.35);
  outline-offset: 4px;
}

.thumb {
  position: relative;
  aspect-ratio: 368 / 216;
  height: auto;
  border-radius: 0;
  overflow: hidden;
  background-image: none;
}

.thumb--video {
  display: block;
  background-color: #ffedde;
  position: relative;
  &::before {
    content: "";
    background-color: rgba(255, 0, 0, .3);
    border-radius: 50%;
    width: 60px;
    height: 60px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    z-index: 10;
  }
  &::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 20px solid rgba(255, 255, 255, .8);
    border-top: 12px solid transparent;
    border-bottom: 12px solid transparent;
    position: absolute;
    top: 50%;
    left: 50.5%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    z-index: 11;
  }
}

.thumb--column {
  position: relative;
  aspect-ratio: 368 / 216;
  height: auto;
  display: block;
  overflow: hidden;
  border-radius: 0;
  background-color: #fffee0;
  background-image: none;
}

.thumb__copy {
  position: absolute;
  left: 8.4%;
  top: 28.7%;
  z-index: 1;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.thumb__copy--video02 {
  left: 8.4%;
  top: 31%;
}

.thumb__copy--column01 {
  left: 8.8%;
  top: 36.6%;
}

.thumb__copy--column02 {
  position: absolute;
  left: 8.8%;
  top: 52%;
}

.thumb__copy--column03 {
  position: absolute;
  left: 8.8%;
  top: 36.6%;
}

.thumb__copy p {
  margin: 0;
}

.thumb__copy-line {
  display: flex;
  align-items: baseline;
}

.thumb__copy-orange {
  color: #ff6600;
  font-size: clamp(18px, 1.7vw, 24px);
  line-height: 1.2;
}

.thumb__copy-red {
  color: #ff2600;
  font-size: clamp(18px, 1.7vw, 24px);
  line-height: 1.2;
}

.thumb__copy-gray {
  color: #595959;
}

.thumb__copy-small {
  font-size: clamp(15px, 1.4vw, 20px);
  line-height: 1.4;
}

.thumb__copy-main {
  color: #ff2600;
  font-size: clamp(18px, 1.7vw, 24px);
}

.thumb__copy-main span {
  display: block;
}

.thumb__copy-sub {
  margin-top: 2px;
  color: #595959;
  font-size: clamp(15px, 1.4vw, 20px);
  line-height: 1.4;
}

.thumb__copy-title {
  margin-top: 2px;
  color: #595959;
  font-size: clamp(26px, 2.5vw, 36px);
  line-height: 1.2;
  letter-spacing: 0.1em;
}

.thumb__copy-title-large {
  color: #595959;
  font-size: clamp(28px, 2.6vw, 36px);
  line-height: 1.2;
}

.thumb__copy-title-small {
  color: #595959;
  font-size: clamp(20px, 1.9vw, 24px);
  line-height: 1.2;
}

.thumb__image {
  position: absolute;
  top: 0;
  right: 0;
  width: 64.5%;
  height: 79.5%;
  object-fit: contain;
  object-position: right top;
  z-index: 0;
}

.thumb__main-image {
  position: absolute;
  z-index: 0;
  display: block;
  pointer-events: none;
}

.thumb__main-image--video01 {
  position: absolute;
  top: 0;
  right: 0;
  width: 64.4%;
  height: 79.5%;
  object-fit: contain;
  object-position: right top;
}

.thumb__main-image--video02 {
  top: 7%;
  right: 5%;
  width: 52.5%;
  height: auto;
}

.thumb__main-image--video03 {
  top: 3.7%;
  left: 44.4%;
  width: 40.2%;
  height: auto;
}

.thumb__main-image--column01 {
  top: 5.5%;
  left: 45.7%;
  width: 53.3%;
  height: auto;
}

.thumb__main-image--column02 {
  top: 8%;
  right: 7%;
  width: 45%;
  height: auto;
}

.thumb__main-image--column03 {
  top: 14.8%;
  left: 52.9%;
  width: 50.3%;
  height: auto;
}

.thumb__label {
  position: absolute;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
}

.thumb__label--video {
  top: 14.4px;
  left: 14.4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 98px;
  padding: 4px 10px;
  border-radius: 0;
  line-height: 1.2;
  background: #ff2600;
  z-index: 2;
}

.thumb__label--column {
  top: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 98px;
  padding: 4px 10px;
  border-radius: 0;
  line-height: 1.2;
  background: #FF6600;
}

.thumb__label-icon {
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  object-fit: contain;
}

.thumb__placeholder {
  display: none;
}

@media (max-width: 1024px) {
  .card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .card-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .content-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
  }

  .thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 368 / 216;
    height: auto;
    min-height: 0;
  }

  .thumb--video {
    background-color: #ffedde;
  }

  .thumb__label--video {
    top: clamp(8px, 3.9%, 14.4px);
    left: clamp(8px, 3.9%, 14.4px);
    width: clamp(72px, 26.6%, 98px);
    min-width: 0;
    padding: clamp(3px, 1vw, 4px) clamp(6px, 2.7%, 10px);
    gap: clamp(5px, 2vw, 10px);
    font-size: clamp(12px, 3.9vw, 16px);
  }

  .thumb__label-icon {
    width: clamp(14px, 5.4vw, 20px);
    height: clamp(14px, 5.4vw, 20px);
  }

  .thumb__copy {
    left: 8.4%;
    top: 28.7%;
  }

  .thumb__copy-main {
    font-size: clamp(16px, 6.4vw, 24px);
  }

  .thumb__copy-sub {
    font-size: clamp(14px, 5.3vw, 20px);
  }

  .thumb__copy-title {
    font-size: clamp(24px, 9.6vw, 36px);
    letter-spacing: 0.08em;
  }

  .thumb__image {
    top: 0;
    right: 0;
    width: 64.5%;
    height: 79.5%;
    object-fit: contain;
    object-position: right top;
  }

  .content-card__heading {
    display: flex;
    align-items: flex-start;
    gap: clamp(8px, 2.6vw, 10px);
    margin: clamp(12px, 3.8vw, 14px) clamp(12px, 4.2vw, 16px) 0;
  }

  .content-card__meta {
    flex-shrink: 0;
    font-size: clamp(12px, 3.7vw, 16px);
  }

  .content-card__title {
    flex: 1;
    min-width: 0;
    font-size: clamp(14px, 4.2vw, 16px);
    line-height: 1.5;
  }

  .content-card__text {
    margin: clamp(10px, 3.2vw, 12px) clamp(12px, 4.2vw, 16px) 0;
    font-size: clamp(13px, 3.8vw, 15px);
    line-height: 1.8;
  }
}

@media (max-width: 400px) {
  .thumb__copy {
    left: 7.5%;
    top: 30%;
  }

  .thumb__copy-main {
    font-size: 17px;
  }

  .thumb__copy-sub {
    font-size: 14px;
  }

  .thumb__copy-title {
    font-size: 25px;
    letter-spacing: 0.06em;
  }

  .thumb__image {
    width: 63%;
  }

  .content-card__heading {
    gap: 8px;
  }

  .content-card__meta {
    padding: 3px 6px;
  }
}

/*==========================================================================
  Common / Video modal: YouTubeポップアップ
==========================================================================*/

.video-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 24px;
}

.video-modal[hidden] {
  display: none !important;
}

.video-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.65);
}

.video-modal__content {
  position: relative;
  z-index: 1;
  width: min(960px, 100%);
  padding: 48px 24px 24px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.25);
}

.video-modal__close {
  position: absolute;
  top: 12px;
  right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: #ff2600;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.video-modal__close:focus-visible {
  outline: 3px solid rgba(255, 38, 0, 0.35);
  outline-offset: 4px;
}

.video-modal__title {
  margin: 0 0 16px;
  color: #363636;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.video-modal__player {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
}

.video-modal__iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

body.is-video-modal-open {
  overflow: hidden;
}

@media (max-width: 720px) {
  .video-modal {
    padding: 16px;
  }

  .video-modal__content {
    padding: 44px 14px 14px;
    border-radius: 14px;
  }

  .video-modal__title {
    font-size: 16px;
  }
}

/*==========================================================================
  Column Detail Page
  コラム詳細ページ用スタイル
==========================================================================*/

/*--------------------------------------------------------------------------
  01. Page Settings
  ページ全体・変数・共通設定
--------------------------------------------------------------------------*/

.column-detail {
  --column-bg: #fff6de;
  --column-cream: #fffee0;
  --column-cream-border: #ffe5a3;
  --column-text: #363636;
  --column-gray: #595959;
  --column-orange: #ff6600;
  --column-button: #fe6e31;

  --column-page-x: clamp(12px, 3.333vw, 48px);
  --column-body-gap: clamp(48px, 6vw, 80px);

  --column-heading-font: clamp(22px, 3.2vw, 40px);
  --column-body-font: clamp(13px, 1.45vw, 18px);
  --column-small-font: clamp(10px, 1.25vw, 18px);

  --column-balloon-padding: clamp(16px, 3vw, 40px);
  --column-talk-gap: clamp(10px, 2.2vw, 30px);
  --column-speaker-size: clamp(58px, 8vw, 110px);

  background: var(--column-bg);
  color: var(--column-text);
  overflow-x: hidden;
}

.column-detail *,
.column-detail *::before,
.column-detail *::after {
  box-sizing: border-box;
  min-width: 0;
}

.column-detail img {
  max-width: 100%;
  height: auto;
}


/*--------------------------------------------------------------------------
  02. Hero
  ページ上部：背景街並み・Volラベル・タイトル・メイン画像
--------------------------------------------------------------------------*/

.column-hero {
  position: relative;
  min-height: clamp(500px, 40.3vw, 580px);
  overflow: hidden;
  background: var(--column-bg);
}

.column-hero__city {
  position: absolute;
  left: 50%;
  bottom: clamp(40px, 4.2vw, 60px);
  z-index: 0;
  display: block;
  width: min(1940px, 100vw);
  max-width: none;
  height: auto;
  transform: translateX(-50%);
  opacity: 0.48;
  pointer-events: none;
}

.column-hero__inner {
  position: relative;
  z-index: 1;
  width: min(1120px, calc(100% - var(--column-page-x) * 2));
  min-height: clamp(480px, 36.1vw, 520px);
  margin: 0 auto;
}

.column-hero__vol {
  position: absolute;
  top: clamp(52px, 5.3vw, 76px);
  left: 0;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(38px, 3.5vw, 50px);
  padding: clamp(6px, 0.7vw, 9px) clamp(10px, 1.1vw, 15px);
  border: clamp(2px, 0.25vw, 3px) solid var(--column-orange);
  background: #fff;
  color: var(--column-orange);
  font-size: clamp(16px, 1.7vw, 24px);
  font-weight: 700;
  line-height: 1.2;
}

.column-hero__title-card {
  position: absolute;
  top: clamp(84px, 6.9vw, 100px);
  left: clamp(0px, 4.9vw, 70px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(6px, 0.8vw, 10px);
  width: min(640px, calc(100% - clamp(300px, 34vw, 480px)));
  padding:
    clamp(28px, 2.8vw, 40px)
    clamp(20px, 4.7vw, 68px);
  border-radius: clamp(28px, 2.8vw, 40px);
  background: #fff;
}

.column-hero__title-line {
  display: block;
  width: clamp(22px, 2.7vw, 38px);
  height: auto;
  flex: 0 0 auto;
  pointer-events: none;
}

.column-hero__title-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--column-orange);
  white-space: nowrap;
}

.column-hero__title-sub {
  margin: 0;
  font-size: clamp(24px, 2.8vw, 40px);
  font-weight: 600;
  line-height: 1.2;
}

.column-hero__title-sub strong {
  font-size: clamp(30px, 3.5vw, 50px);
  font-weight: 600;
}

.column-hero__title-main {
  margin: clamp(6px, 0.7vw, 10px) 0 0;
  font-size: clamp(42px, 4.86vw, 70px);
  font-weight: 700;
  line-height: 1.2;
}

.column-hero__image {
  position: absolute;
  top: clamp(112px, 8vw, 120px);
  right: clamp(0px, 3.5vw, 50px);
  z-index: 2;
  display: block;
  width: clamp(300px, 29.9vw, 380px);
  height: auto;
  object-fit: contain;
}


/*--------------------------------------------------------------------------
  03. Main Body
  ヒーロー下の本文エリア
--------------------------------------------------------------------------*/

.column-detail__body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--column-body-gap);
  width: min(1285px, calc(100% - var(--column-page-x) * 2));
  margin: 30px auto clamp(56px, 6vw, 80px);
}


/*--------------------------------------------------------------------------
  04. Profile
  プロフィールエリア
--------------------------------------------------------------------------*/

.column-profile {
  position: relative;
  width: 100%;
  padding:
    clamp(32px, 3vw, 40px)
    clamp(20px, 3vw, 40px);
  background: #fff;
}

.column-profile__label {
  position: absolute;
  top: clamp(-46px, -3.2vw, -34px);
  left: 50%;
  transform: translateX(-50%);
  min-width: clamp(150px, 13vw, 186px);
  padding: clamp(6px, 0.8vw, 8px) clamp(16px, 1.4vw, 20px);
  border-radius: 8px;
  background: var(--column-orange);
  box-shadow:
    clamp(5px, 0.55vw, 8px)
    clamp(5px, 0.55vw, 8px)
    0
    0
    var(--column-cream);
  color: #fff;
  font-size: clamp(18px, 1.7vw, 24px);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  white-space: nowrap;
}

.column-profile__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 3vw, 40px);
  width: 100%;
}

.column-profile__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 2vw, 24px);
  min-width: 0;
}

.column-profile__text {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.2vw, 16px);
  max-width: 360px;
  font-weight: 700;
  line-height: 1.6;
}

.column-profile__name {
  margin: 0;
  font-size: clamp(20px, 1.7vw, 24px);
}

.column-profile__description {
  margin: 0;
  font-size: clamp(14px, 1.25vw, 18px);
  overflow-wrap: anywhere;
}


/*--------------------------------------------------------------------------
  05. Avatar
  丸型人物画像
--------------------------------------------------------------------------*/

.column-avatar {
  position: relative;
  flex: 0 0 auto;
  width: clamp(120px, 11vw, 160px);
  height: clamp(120px, 11vw, 160px);
  overflow: hidden;
  border: 3px solid var(--column-cream-border);
  border-radius: 999px;
  background: var(--column-cream);
}

.column-avatar img {
  position: absolute;
  display: block;
  max-width: none;
  pointer-events: none;
}

.column-avatar--parent img {
  width: 71.25%;
  left: 12.5%;
}

.column-avatar--advisor img {
  width: 93.75%;
  left: 0;
  top: 8.75%;
}

.column-avatar--small {
  width: var(--column-speaker-size);
  height: var(--column-speaker-size);
  border-width: 2px;
}

.column-avatar--small.column-avatar--parent img {
  width: 71.8%;
  left: 12.7%;
  top: -1%;
}

.column-avatar--small.column-avatar--advisor img {
  width: 90.9%;
  left: 0;
  top: 6.4%;
}


/*--------------------------------------------------------------------------
  06. Section
  各本文セクション・見出し
--------------------------------------------------------------------------*/

.column-section {
  width: min(1068px, 100%);
}

.column-section__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3.2vw, 45px);
  margin: 0 0 clamp(28px, 3vw, 40px);
  color: var(--column-orange);
  font-size: var(--column-heading-font);
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  white-space: normal;
}

.column-section__heading-text {
  display: inline-block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.column-section__heading-line {
  display: block;
  width: clamp(18px, 2.43vw, 35px);
  height: auto;
  max-height: clamp(38px, 4.86vw, 70px);
  flex: 0 0 auto;
  object-fit: contain;
}


/*--------------------------------------------------------------------------
  07. Dialogue
  会話ブロック・吹き出し・話者
--------------------------------------------------------------------------*/

.column-dialogue {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(16px, 1.4vw, 20px);
}

.column-dialogue--after-schedule {
  margin-top: clamp(20px, 2vw, 28px);
}

.column-talk {
  display: flex;
  align-items: center;
  gap: var(--column-talk-gap);
  width: 100%;
}

.column-talk--parent {
  justify-content: flex-start;
  padding-right: clamp(0px, 7vw, 100px);
}

.column-talk--advisor {
  justify-content: flex-end;
  padding-left: clamp(0px, 7vw, 100px);
}

.column-speaker {
  display: flex;
  flex: 0 0 var(--column-speaker-size);
  flex-direction: column;
  align-items: center;
  gap: clamp(5px, 0.7vw, 8px);
}

.column-speaker__name {
  margin: 0;
  color: var(--column-text);
  font-size: var(--column-small-font);
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
}

.column-balloon {
  position: relative;
  width: min(640px, 100%);
  max-width: 100%;
  padding: var(--column-balloon-padding);
  background: #fff;
  color: var(--column-text);
  font-size: var(--column-body-font);
  font-weight: 700;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

.column-balloon p {
  margin: 0;
}

.column-balloon::before {
  content: "";
  position: absolute;
  top: clamp(12px, 1vw, 14px);
  width: clamp(16px, 2vw, 28px);
  height: clamp(16px, 2vw, 28px);
  background: #fff;
  clip-path: polygon(0 50%, 100% 0, 100% 100%);
}

.column-talk--parent .column-balloon::before {
  left: clamp(-27px, -2vw, -16px);
}

.column-talk--advisor .column-balloon::before {
  right: clamp(-27px, -2vw, -16px);
  transform: scaleX(-1);
}


/*--------------------------------------------------------------------------
  08. CTA Button
  CTAボタン
--------------------------------------------------------------------------*/

.column-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  min-width: clamp(220px, 16.5vw, 237px);
  min-height: clamp(48px, 3.6vw, 52px);
  padding:
    clamp(12px, 1vw, 14px)
    clamp(18px, 2.4vw, 47px)
    clamp(12px, 1vw, 14px)
    clamp(56px, 4.3vw, 86px);
  border: 1px solid var(--column-orange);
  border-radius: 50px;
  background: #fff;
  color: var(--column-orange);
  font-size: clamp(13px, 1.12vw, 16px);
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.35;
  text-align: center;
  white-space: normal;
  transition: .4s;
  &:hover {
    color: var(--column-orange);
    opacity: .4;
    text-decoration: none;
  }
}

.column-cta::before,
.column-cta::after {
  content: none;
}

.column-cta__icon {
  position: absolute;
  left: clamp(14px, 1.32vw, 19px);
  top: 50%;
  display: block;
  width: clamp(28px, 2.22vw, 32px);
  height: clamp(28px, 2.22vw, 32px);
  transform: translateY(-50%);
}

.column-cta__text {
  display: inline-block;
  overflow-wrap: anywhere;
}

.column-cta--primary {
  border-color: var(--column-button);
  background: var(--column-button);
  color: #fff;
  margin: 20px 0;
  transition: .4s;
  &:hover {
    color: #fff;
    opacity: .4;
    text-decoration: none;
  }
}

.column-cta-icon-play3,
.column-cta-icon-play4 {
  min-width: min(413px, 100%);
}


/*--------------------------------------------------------------------------
  09. Schedule
  就活スケジュール画像
--------------------------------------------------------------------------*/

.column-schedule {
  width: 100%;
  max-width: 100%;
  margin-top: clamp(20px, 2vw, 28px);
}

.column-schedule__image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}


/*--------------------------------------------------------------------------
  10. Divider
  セクション間の縦線
--------------------------------------------------------------------------*/

.column-divider {
  width: 2px;
  height: clamp(64px, 7vw, 100px);
  margin: clamp(16px, 1.4vw, 20px) auto 0;
  background: var(--column-cream-border);
}


/*--------------------------------------------------------------------------
  11. Back Link
  一覧へ戻るリンク
--------------------------------------------------------------------------*/

.column-back {
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
  color: #0087db;
  font-size: clamp(14px, 1.12vw, 16px);
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  transition: .4s;
  &:hover {
    opacity: .4;
    text-decoration: none;
  }
}

.column-back::before {
  content: "←";
  display: inline-block;
  font-size: clamp(20px, 1.7vw, 24px);
  line-height: 1;
}

.column-back span {
  display: inline-block;
  padding-bottom: 2px;
  border-bottom: 1px solid currentColor;
}

/*--------------------------------------------------------------------------
  12. Bottom Pattern
  右下の装飾画像
--------------------------------------------------------------------------*/

.column-detail__bottom-pattern {
  position: absolute;
  right: clamp(-0px, -4vw, -20px);
  bottom: clamp(-52px, -5vw, -40px);
  z-index: 0;
  display: block;
  width: clamp(96px, 9.7vw, 140px);
  height: auto;
  pointer-events: none;
}

.column-detail__body > :not(.column-detail__bottom-pattern) {
  position: relative;
  z-index: 1;
}

/*==========================================================================
  Responsive: Tablet
  1100px以下
==========================================================================*/

@media (max-width: 1100px) {
  /* Hero
  ------------------------------------------------------------------------*/

  .column-hero__title-card {
    width: min(600px, calc(100% - 300px));
  }

  .column-hero__image {
    width: clamp(280px, 32vw, 340px);
  }

  /* Dialogue
  ------------------------------------------------------------------------*/

  .column-talk--parent,
  .column-talk--advisor {
    padding-left: 0;
    padding-right: 0;
  }

  .column-balloon {
    flex: 1 1 auto;
  }
}


/*==========================================================================
  Responsive: Smartphone
  720px以下
==========================================================================*/

@media (max-width: 720px) {
  /* Page Settings
  ------------------------------------------------------------------------*/

  .column-detail {
    --column-page-x: clamp(10px, 4vw, 16px);
    --column-body-gap: clamp(42px, 10vw, 56px);
    --column-heading-font: clamp(21px, 6.5vw, 26px);
    --column-body-font: clamp(13px, 3.8vw, 15px);
    --column-small-font: clamp(10px, 3.2vw, 12px);
    --column-balloon-padding: clamp(15px, 4.8vw, 22px);
    --column-speaker-size: clamp(58px, 18vw, 76px);
  }

  /* Hero
  ------------------------------------------------------------------------*/

  .column-hero {
    min-height: 0;
    padding: clamp(24px, 8vw, 40px) 0 clamp(32px, 10vw, 48px);
  }

  .column-hero__city {
    bottom: 0;
    width: clamp(680px, 125vw, 900px);
    max-width: none;
  }

  .column-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: calc(100% - var(--column-page-x) * 2);
    min-height: 0;
    gap: clamp(14px, 4vw, 20px);
  }

  .column-hero__vol {
    position: relative;
    top: auto;
    left: auto;
    align-self: flex-start;
  }

  .column-hero__title-card {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    max-width: 420px;
    padding:
      clamp(20px, 6vw, 28px)
      clamp(12px, 4vw, 22px);
    transform: none;
  }

  .column-hero__title-line {
    width: clamp(18px, 6vw, 28px);
  }

  .column-hero__title-text {
    white-space: normal;
  }

  .column-hero__title-sub {
    font-size: clamp(1px, 6.4vw, 18px);
  }

  .column-hero__title-sub strong {
    font-size: clamp(4px, 6vw, 30px);
  }

  .column-hero__title-main {
    font-size: clamp(1px, 10.8vw, 42px);
  }

  .column-hero__image {
    position: relative;
    top: auto;
    right: auto;
    width: min(180px, 92vw);
    max-width: 100%;
    transform: none;
  }

  /* Body
  ------------------------------------------------------------------------*/

  .column-detail__body {
    width: calc(100% - var(--column-page-x) * 2);
    margin-top: 0;
  }

  /* Profile
  ------------------------------------------------------------------------*/

  .column-profile {
    padding:
      clamp(42px, 11vw, 48px)
      clamp(14px, 4vw, 18px)
      clamp(24px, 7vw, 28px);
  }

  .column-profile__label {
    max-width: calc(100% - 32px);
  }

  .column-profile__list {
    grid-template-columns: 1fr;
  }

  .column-profile__item {
    flex-direction: column;
    text-align: center;
  }

  .column-profile__text {
    max-width: 100%;
  }

  .column-profile__description {
    text-align: left;
  }

  /* Section
  ------------------------------------------------------------------------*/

  .column-section__heading {
    gap: clamp(8px, 3vw, 12px);
    margin-bottom: clamp(24px, 7vw, 32px);
  }

  .column-section__heading-line {
    width: clamp(17px, 5.3vw, 21px);
    max-height: clamp(34px, 10.5vw, 42px);
  }

  /* Dialogue
  ------------------------------------------------------------------------*/

  .column-talk,
  .column-talk--parent,
  .column-talk--advisor {
    flex-direction: column;
    align-items: center;
    gap: clamp(8px, 3vw, 12px);
  }

  .column-talk--advisor .column-speaker,
  .column-talk--parent .column-speaker {
    order: 1;
  }

  .column-talk--advisor .column-balloon,
  .column-talk--parent .column-balloon {
    order: 2;
  }

  .column-speaker {
    flex: 0 0 auto;
  }

  .column-balloon {
    width: 100%;
  }

  .column-balloon::before {
    display: none;
  }

  /* CTA
  ------------------------------------------------------------------------*/

  .column-cta,
  .column-cta-icon-play3,
  .column-cta-icon-play4 {
    width: 100%;
    max-width: 413px;
    min-width: 0;
    padding:
      clamp(12px, 3.5vw, 14px)
      clamp(12px, 4vw, 18px)
      clamp(12px, 3.5vw, 14px)
      clamp(52px, 15vw, 62px);
    font-size: clamp(13px, 3.8vw, 14px);
    letter-spacing: .04em;
  }

  .column-cta__icon {
    left: clamp(13px, 4vw, 19px);
    width: clamp(28px, 8vw, 32px);
    height: clamp(28px, 8vw, 32px);
  }

  /* Schedule
  ------------------------------------------------------------------------*/

  .column-schedule {
    overflow-x: hidden;
  }

  .column-schedule__image {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
}


/*==========================================================================
  Responsive: Small Smartphone
  400px以下
==========================================================================*/

@media (max-width: 400px) {
  /* Hero
  ------------------------------------------------------------------------*/

  .column-hero__title-card {
    padding: 20px 12px;
    border-radius: 22px;
  }

  /* CTA
  ------------------------------------------------------------------------*/

  .column-cta,
  .column-cta-icon-play3,
  .column-cta-icon-play4 {
    padding-left: 50px;
    padding-right: 10px;
    font-size: 12.5px;
  }

  .column-cta__icon {
    left: 12px;
    width: 26px;
    height: 26px;
  }
}

/*==========================================================================
  Column Detail Page / Money
  column2：就活にかかるお金の話
==========================================================================*/

/* Hero
--------------------------------------------------------------------------*/

.column-detail--money .column-hero__vol {
  left: clamp(0px, 7.2vw, 81px);
}

.column-detail--money .column-hero__title-card {
  left: clamp(0px, 7.2vw, 106px);
  width: min(511px, calc(100% - clamp(350px, 39vw, 560px)));
}

.column-detail--money .column-hero__subtitle {
  position: absolute;
  top: clamp(330px, 25.1vw, 361px);
  left: clamp(0px, 9vw, 129px);
  z-index: 3;
  margin: 0;
  color: var(--column-orange);
  font-size: clamp(22px, 2.08vw, 30px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.column-detail--money .column-hero__image {
  top: clamp(55px, 3.82vw, 55px);
  right: clamp(40px, 7.1vw, 102px);
  width: clamp(300px, 24.3vw, 350px);
  height: auto;
}

/* Section
--------------------------------------------------------------------------*/

.column-detail--money .column-section__heading-line {
  width: clamp(18px, 2.14vw, 30.75px);
  max-height: clamp(38px, 4.57vw, 65.79px);
}

.column-detail--money .column-dialogue {
  gap: clamp(16px, 1.4vw, 20px);
}

/* .column-detail--money .column-talk {
  gap: clamp(10px, 0.7vw, 10px);
} */

.column-detail--money .column-balloon {
  line-height: 1.5;
}

.column-detail--money .column-divider {
  margin-top: clamp(16px, 2.78vw, 40px);
}

/* Bottom pattern
--------------------------------------------------------------------------*/

.column-detail--money .column-detail__bottom-pattern {
  right: clamp(-58px, -4vw, -20px);
  bottom: clamp(56px, 5vw, 72px);
}

/* Table
--------------------------------------------------------------------------*/
.table-section {
  max-width: 666px;
  margin-inline: auto;
  width: 100%;
  & .table-graph {
    margin-bottom: 30px;
  }
  & table {
    background-color: #F3F3F3;
    border-collapse: collapse;
    font-size: 20px;
    width: 100%;
    & th,
    & td {
      border: 2px solid #fff;
      font-weight: 500;
      line-height: 1.3;
      padding: 12px;
      text-align: center;
    }
    & .color-1 {
      background-color: #FFD363;
    }
    & .color-2 {
      background-color: #FFBD17;
    }
    & .color-3 {
      background-color: #F3904F;
    }
    & .color-4 {
      background-color: #E6799F;
    }
    & .color-5 {
      background-color: #C8C8C8;
    }
    & .color-6 {
      background-color: #fff;
    }
  }
  & .table-txt {
    font-size: 24px;
    font-weight: bold;
    text-align: center;
  }
  & .scroll-txt {
    display: none;
  }
}

.grant-box {
  text-align: center;

  & dt,
  & dd {
    
  }

  & dt {
    background-color: #ff6600;
    font-size: 30px;
    font-weight: bold;
    margin-bottom: 0;
    color: #fff;
    padding: 10px 30px;
  }
  & dd {
    background-color: #fff;
    font-size: 18px;
    margin: 0;
    padding: 20px 30px;
    width: 100%;
    & p {
      margin-top: 0;
      &:last-child {
        margin-bottom: 0;
      }
    }
  }
}

/* Responsive: Tablet
--------------------------------------------------------------------------*/

@media (max-width: 1100px) {
  .column-detail--money .column-hero__title-card {
    width: min(500px, calc(100% - 310px));
  }

  .column-detail--money .column-hero__subtitle {
    left: clamp(0px, 7vw, 80px);
  }

  .column-detail--money .column-hero__image {
    right: 0;
    width: clamp(280px, 32vw, 340px);
  }
}

/* Responsive: Smartphone
--------------------------------------------------------------------------*/

@media (max-width: 720px) {
  .column-detail--money .column-hero__vol {
    left: auto;
  }

  .column-section__heading--money {
    font-size: clamp(8px, 8vw, 24px);
    margin-bottom: clamp(24px, 7vw, 32px);
  }

  .column-detail--money .column-hero__title-card {
    position: relative;
    left: 0;
    right: auto;
    width: min(100%, clamp(300px, 92vw, 420px));
    max-width: 100%;
    transform: none;
    align-self: center;
    gap: clamp(6px, 2.2vw, 10px);
    padding:
      clamp(20px, 6vw, 28px)
      clamp(12px, 4vw, 22px);
    overflow: hidden;
  }

  .column-detail--money .column-hero__subtitle {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    font-size: clamp(16px, 4.8vw, 20px);
    white-space: normal;
  }

  .column-detail--money .column-hero__title-line {
    width: clamp(18px, 5.8vw, 28px);
  }

  .column-detail--money .column-hero__title-text {
    min-width: 0;
    white-space: nowrap;
  }

  .column-detail--money .column-hero__title-sub {
    font-size: clamp(1px, 6.4vw, 18px);
  }

  .column-detail--money .column-hero__title-sub strong {
    font-size: clamp(4px, 6vw, 30px);
  }

  .column-detail--money .column-hero__title-main {
    font-size: clamp(1px, 10.8vw, 42px);
  }

  .table-section {
    & table {
      font-size: 15px;
      display: block;
      overflow-x: scroll;
      white-space: nowrap;
    }
    & .scroll-txt {
      display: block;
      font-size: 14px;
    }
  }

  .column-detail--money .column-hero__image {
    width: min(350px, 52vw);
    margin-top: -40px;
    margin-bottom: 60px;
  }

  .column-detail--money .column-talk,
  .column-detail--money .column-talk--parent,
  .column-detail--money .column-talk--advisor {
    gap: clamp(8px, 3vw, 12px);
  }

  .column-detail--money .column-detail__bottom-pattern {
    right: -16px;
    bottom: 24px;
    width: clamp(70px, 24vw, 96px);
  }
}

/* Responsive: Small Smartphone
--------------------------------------------------------------------------*/

@media (max-width: 400px) {
  .column-detail--money .column-hero__subtitle {
    font-size: 18px;
    line-height: 1.5;
  }

  .column-detail--money .column-detail__bottom-pattern {
    right: -12px;
    bottom: 20px;
    width: 72px;
  }

  /* .column-detail--money .column-hero__title-card {
    width: 75%;
    left: 10px;
  } */

  .column-detail--money .column-hero__title-card {
    width: 100%;
    padding-right: clamp(12px, 3.6vw, 16px);
    padding-left: clamp(12px, 3.6vw, 16px);
  }
}


/*==========================================================================
  Column Detail Page / Event
  column3：島根で出会う、未来の職場
==========================================================================*/

/* Hero
--------------------------------------------------------------------------*/

.column-detail--event .column-hero__vol {
  left: clamp(0px, 7.2vw, 81px);
}

.column-detail--event .column-hero__title-card {
  left: clamp(0px, 6.4vw, 71px);
  width: min(581px, calc(100% - clamp(360px, 38vw, 560px)));
}

.column-detail--event .column-hero__subtitle {
  position: absolute;
  top: clamp(330px, 25.1vw, 361px);
  left: clamp(0px, 9.2vw, 132px);
  z-index: 3;
  margin: 0;
  color: var(--column-orange);
  font-size: clamp(22px, 2.08vw, 30px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.column-detail--event .column-hero__image {
  top: clamp(41px, 2.85vw, 41px);
  right: clamp(0px, 1.9vw, 27px);
  width: clamp(320px, 28.125vw, 405px);
  height: auto;
}

/* Section
--------------------------------------------------------------------------*/

/* .column-detail--event .column-section--event {
  width: min(904px, 100%);
} */

.column-detail--event .column-section__heading {
  gap: clamp(10px, 3.125vw, 45px);
}

.column-detail--event .column-section__heading-line {
  width: clamp(18px, 2.14vw, 30.75px);
  max-height: clamp(38px, 4.57vw, 65.79px);
}

.column-detail--event .column-dialogue {
  gap: clamp(16px, 1.4vw, 20px);
}

/* .column-detail--event .column-talk {
  gap: clamp(10px, 0.7vw, 10px);
} */

.column-detail--event .column-balloon {
  line-height: 1.5;
}

.column-detail--event .column-divider {
  margin-top: clamp(16px, 2.78vw, 40px);
}

.event-sec {
  background-color: #fff;
  padding: 30px 40px;
  max-width: 900px;
  margin: 0 auto 60px;

  & .event-title {
    color: #ff6600;
    font-size: 27px;
    margin-top: 0;
    text-align: center;
  }
  & .event-photo-box.two-photo {
    display: flex;
    gap: 30px;
  }
  & .event-photo {
    width: 100%;
    margin: 0;
  }
  & .event-movie {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    & iframe {
      position: absolute;
      top: 0;
      right: 0;
      width: 100%;
      height: 100%;
    }
  }
  & .event-li {
    font-size: 18px;
    margin-bottom: 30px;
    max-width: 330px;
    margin-inline: auto;
    & li {
      margin-bottom: 10px;
      &:last-child {
        margin-bottom: 0;
      }
    }
  }
}

/* Bottom pattern
--------------------------------------------------------------------------*/

.column-detail--event .column-detail__bottom-pattern {
  right: clamp(-58px, -4vw, -20px);
  bottom: clamp(56px, 5vw, 72px);
}

/* Responsive: Tablet
--------------------------------------------------------------------------*/

@media (max-width: 1100px) {
  .column-detail--event .column-hero__title-card {
    width: min(560px, calc(100% - 330px));
  }

  .column-detail--event .column-hero__subtitle {
    left: clamp(0px, 7vw, 80px);
  }

  .column-detail--event .column-hero__image {
    right: 0;
    width: clamp(300px, 34vw, 360px);
  }
}

/* Responsive: Smartphone
--------------------------------------------------------------------------*/

@media (max-width: 720px) {
  .hero__title.fs70 .sp-only {
    display: block;
  }

  .column-detail--event .column-hero__vol {
    left: auto;
  }

  .column-section__heading--event {
    font-size: clamp(8px, 8vw, 24px);
    margin-bottom: clamp(24px, 7vw, 32px);
  }

  .column-detail--event .column-hero__title-card {
    position: relative;
    left: 0;
    right: auto;
    width: min(100%, clamp(300px, 92vw, 420px));
    max-width: 100%;
    transform: none;
    align-self: center;
    gap: clamp(6px, 2.2vw, 10px);
    padding:
      clamp(20px, 6vw, 28px)
      clamp(12px, 4vw, 22px);
    overflow: hidden;
  }

  .column-detail--event .column-hero__subtitle {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    font-size: clamp(16px, 4.8vw, 20px);
    white-space: normal;
  }

  .column-detail--event .column-hero__image {
    margin-top: -20px;
    width: min(405px, 52vw);
    margin-bottom: 60px;
  }

  .column-detail--event .column-section--event {
    width: 100%;
  }

  .column-detail--event .column-talk,
  .column-detail--event .column-talk--parent,
  .column-detail--event .column-talk--advisor {
    gap: clamp(8px, 3vw, 12px);
  }

  .column-detail--event .column-detail__bottom-pattern {
    right: -16px;
    bottom: 24px;
    width: clamp(70px, 24vw, 96px);
  }
}

/* Responsive: Small Smartphone
--------------------------------------------------------------------------*/

@media (max-width: 400px) {
  .column-detail--event .column-hero__subtitle {
    font-size: 18px;
    line-height: 1.5;
  }

  .column-detail--event .column-detail__bottom-pattern {
    right: -12px;
    bottom: 20px;
    width: 72px;
  }
  .column-detail--event .column-hero__title-card {
    width: 100%;
    padding-right: clamp(12px, 3.6vw, 16px);
    padding-left: clamp(12px, 3.6vw, 16px);
  }
}



