/* =====================================================
   EXCLUSIVE GLOBAL PROPERTY FORUM 2026
   List Sotheby's International Realty
   Design: Luxury · Minimal · High-end
   ===================================================== */

/* --- Reset & Base ---------------------------------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* ── Navy palette — slightly softened for editorial tone ── */
  --navy-deep:   #001530;           /* 最深ネイビー (softened) */
  --navy-base:   #0a1e45;
  --navy-mid:    #0d2554;           /* primary brand navy (softer) */
  --navy-bright: #1e4170;
  --navy-light:  #254d80;
  --navy-card:   rgba(13, 25, 60, 0.72);

  /* ── Light / White palette — editorial off-white ────────── */
  --white:       #f5f2ec;  /* warm off-white (navy sections) */
  --white-dim:   rgba(245, 242, 236, 0.72);
  --white-faint: rgba(245, 242, 236, 0.42);
  --bg-white:    #F5F3EF;  /* editorial off-white (replaces pure white) */
  --bg-light:    #EEECe8;           /* slightly deeper off-white */

  /* ── Dark text (light sections) ────────────── */
  --ink-primary:   #0d2554;          /* headings on off-white */
  --ink-body:      #333333;          /* body text on white */
  --ink-muted:     #666666;          /* muted — 少し濃い目に */
  --ink-faint:     #999999;          /* very light */

  /* ── Gold ───────────────────────────────────── */
  --gold:       #c9a84c;
  --gold-lt:    #e0c06a;
  --gold-bright:#f0d080;
  --gold-dk:    #9a7a2e;
  --gold-glow:  rgba(201, 168, 76, 0.18);

  /* ── Typography ─────────────────────────────── */
  /* Sotheby's公式に近いDidot系セリフ体 */
  --font-serif-en: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  --font-mercury:  'IM Fell English', 'Cormorant Garamond', Georgia, serif;
  --font-display:  'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --font-serif:    'Cormorant Garamond', 'Noto Serif JP', Georgia, serif;
  --font-ja:       'Noto Serif JP', 'Hiragino Mincho ProN', serif;
  --font-sans:     'Noto Sans JP', 'Helvetica Neue', Arial, sans-serif;

  /* ── Motion ─────────────────────────────────── */
  --ease:       cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --trans-fast: 0.22s var(--ease);
  --trans-mid:  0.35s var(--ease);
  --trans-slow: 0.55s var(--ease);

  /* ── Shadow ─────────────────────────────────── */
  --shadow-gold: 0 6px 32px rgba(201, 168, 76, 0.20);
  --shadow-deep: 0 12px 48px rgba(0, 10, 30, 0.45);
  --shadow-card: 0 2px 16px rgba(0, 0, 0, 0.06);  /* 白bg用 */
}

html { scroll-behavior: smooth; font-size: 16px; }

body {
  background: var(--navy-mid);
  color: var(--white);
  font-family: var(--font-ja);      /* 全体を日本語明朝系ベースに */
  font-weight: 300;
  line-height: 2.0;                 /* editorial: generous leading */
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img { display: block; max-width: 100%; height: auto; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }

/* --- Container ------------------------------------ */
.container {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 48px;
}
@media (max-width: 768px) { .container { padding: 0 24px; } }

/* =====================================================
   TYPOGRAPHY SYSTEM
   ===================================================== */

/* ── Section label ── */
.section-label {
  font-family: var(--font-display);
  font-size: 0.58rem;
  font-weight: 400;
  letter-spacing: 0.60em;
  color: rgba(201,168,76,0.70);
  text-transform: uppercase;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 20px;
}
.section-label::after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background: linear-gradient(to right, rgba(201,168,76,0.45), transparent);
  flex-shrink: 0;
}

/* ── Section title ── */
.section-title {
  font-family: var(--font-serif-en);
  font-size: clamp(1.7rem, 3.5vw, 2.6rem);
  font-weight: 400;
  line-height: 1.6;
  color: var(--white);
  margin-bottom: 28px;
  letter-spacing: 0.05em;
}

/* ── Section sub ── */
.section-sub {
  font-family: var(--font-ja);
  font-size: 0.88rem;
  font-weight: 300;
  color: rgba(245,242,236,0.55);
  letter-spacing: 0.12em;
  line-height: 2.6;
  margin-bottom: 88px;
}

/* ── Section header overrides for white-bg sections ── */
.section-apply .section-label {
  color: #002349;
  opacity: 0.55;
}
.section-apply .section-label::after {
  background: linear-gradient(to right, #002349, transparent);
}
.section-apply .section-title {
  color: #002349;
}
.section-apply .section-sub {
  color: #555555;
  font-weight: 400;
}

@media (max-width: 768px) {
	.section-apply .section-sub {
		line-height: 1.5;
	}
}

/* ── Timeline: ネイビー背景 × 白テキスト ── */
.section-timeline .section-label {
  color: rgba(245,242,236,0.55);
}
.section-timeline .section-label::after {
  background: linear-gradient(to right, rgba(245,242,236,0.35), transparent);
}
.section-timeline .section-title {
  color: #ffffff;
}
.section-timeline .section-sub {
  color: rgba(245,242,236,0.65);
  font-weight: 400;
}

/* =====================================================
   BUTTONS — quiet luxury, silent invitation
   ===================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 18px 64px;        /* wider, quieter */
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.40em;
  text-transform: uppercase;
  border: 1px solid transparent;
  cursor: pointer;
  transition:
    background var(--trans-mid),
    color var(--trans-mid),
    border-color var(--trans-mid),
    box-shadow var(--trans-mid);
  position: relative;
}

/* Hero gold — luxury CTA on dark image */
.btn-hero-gold {
  background: linear-gradient(135deg, #C8A46A 0%, #b8905a 50%, #C8A46A 100%);
  background-size: 200% 100%;
  color: #ffffff;
  border: 1px solid rgba(200,164,106,0.60);
  text-shadow: 0 1px 3px rgba(0,0,0,0.25);
  box-shadow: 0 4px 24px rgba(200,164,106,0.22), inset 0 1px 0 rgba(255,255,255,0.12);
  letter-spacing: 0.38em;
}
.btn-hero-gold:hover {
  background-position: 100% 0;
  border-color: rgba(200,164,106,0.90);
  box-shadow: 0 6px 32px rgba(200,164,106,0.38), inset 0 1px 0 rgba(255,255,255,0.18);
  color: #ffffff;
  transform: translateY(-1px);
}

/* Hero primary — ghost white on dark image */
.btn-hero-primary {
  background: linear-gradient(135deg, #C8A46A 0%, #b8905a 50%, #C8A46A 100%);
  background-size: 200% 100%;
  color: #ffffff;
  border: 1px solid rgba(200,164,106,0.60);
  text-shadow: 0 1px 3px rgba(0,0,0,0.25);
  box-shadow: 0 4px 24px rgba(200,164,106,0.22), inset 0 1px 0 rgba(255,255,255,0.12);
}
.btn-hero-primary:hover {
  background-position: 100% 0;
  border-color: rgba(200,164,106,0.90);
  box-shadow: 0 6px 32px rgba(200,164,106,0.38);
  color: #ffffff;
  transform: translateY(-1px);
}

/* Hero secondary — even more subtle */
.btn-hero-ghost {
  background: transparent;
  color: rgba(245,242,236,0.52);
  border: 1px solid rgba(245,242,236,0.20);
}
.btn-hero-ghost:hover {
  border-color: rgba(245,242,236,0.45);
  color: rgba(245,242,236,0.80);
}

/* Primary on light bg — gold luxury style */
.btn-gold {
  background: linear-gradient(135deg, #C8A46A 0%, #b8905a 50%, #C8A46A 100%);
  background-size: 200% 100%;
  color: #ffffff;
  border: 1px solid rgba(200,164,106,0.55);
  text-shadow: 0 1px 2px rgba(0,0,0,0.20);
  box-shadow: 0 4px 20px rgba(200,164,106,0.18), inset 0 1px 0 rgba(255,255,255,0.10);
}
.btn-gold:hover {
  background-position: 100% 0;
  box-shadow: 0 6px 28px rgba(200,164,106,0.32);
  color: #ffffff;
  transform: translateY(-1px);
}

/* Secondary ghost on dark bg */
.btn-outline {
  background: transparent;
  color: rgba(245,242,236,0.70);
  border: 1px solid rgba(245,242,236,0.28);
}
.btn-outline:hover {
  border-color: rgba(245,242,236,0.60);
  color: rgba(245,242,236,0.92);
}

.btn-lg { padding: 20px 72px; font-size: 0.72rem; }
.btn-sticky { padding: 12px 32px; font-size: 0.66rem; }
.btn-full { width: 100%; padding: 18px 24px; }

/* =====================================================
   HEADER
   ===================================================== */
#header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  padding: 22px 0;
  transition: background var(--trans-mid), padding var(--trans-mid), box-shadow var(--trans-mid);
}
#header.scrolled {
  background: rgba(0, 17, 46, 0.97);
  /* padding: 12px 0; */
  box-shadow: 0 1px 0 rgba(201,168,76,0.12), 0 4px 24px rgba(0,0,0,0.4);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.header-inner {
  max-width: 1800px;
  margin: 0 auto;
  padding: 0 70px 0 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.logo { display: block; line-height: 0; margin: -19px 0; }
.header-logo {
  height: 61px;
  width: auto;
  object-fit: contain;
  opacity: 0.9;
  transition: opacity var(--trans-fast);
}
.logo:hover .header-logo { opacity: 1; }
/* #header.scrolled .header-logo { height: 36px; } */


@media screen and (max-width: 1320px) {
	.header-inner {
		padding: 0 50px 0 0;
	}
}
@media (max-width: 960px) {
	.logo {
		margin: -23px 0 -23px -25px;
	}
	.header-logo {
		height: 43px;
	}	
}
.nav-links {
  display: flex;
  align-items: center;
  gap: 36px;
}
.nav-links span {
	margin-right: -30px;
}
.nav-links span:last-child {
	margin-right: 0;
}
.nav-links span a.active {
	color: var(--gold);
}
.nav-links a {
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: 0.18em;
  color: rgba(245,242,236,0.7);
  text-transform: uppercase;
  transition: color var(--trans-fast);
}
.nav-links a:hover { color: var(--gold-lt); }

.nav-cta {
  background: transparent !important;
  color: rgba(245,242,236,0.82) !important;
  padding: 9px 22px !important;
  font-weight: 400 !important;
  letter-spacing: 0.2em !important;
  border: 1px solid rgba(245,242,236,0.38) !important;
  transition: background var(--trans-fast), border-color var(--trans-fast), color var(--trans-fast) !important;
  box-shadow: none !important;
}
.nav-cta:hover {
  background: rgba(245,242,236,0.10) !important;
  border-color: rgba(245,242,236,0.70) !important;
  color: #ffffff !important;
  transform: none !important;
}

/* Hamburger */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 1px;
  background: var(--white);
  transition: var(--trans-mid);
}
.hamburger.active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.mobile-nav {
  display: none;
  flex-direction: column;
  background: var(--navy-deep);
  padding: 20px 40px 32px;
  border-top: 1px solid rgba(201,168,76,0.18);
}
.mobile-nav.open { display: flex; }
.mobile-nav-link {
	text-transform: uppercase;
  padding: 16px 0;
  font-family: var(--font-display);
  font-size: 0.88rem;
  letter-spacing: 0.12em;
  color: rgba(245,242,236,0.75);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  transition: color var(--trans-fast);
}
.mobile-nav-link:hover { color: var(--gold-lt); }
.mobile-nav-cta {
  margin-top: 24px;
  background: transparent;
  color: rgba(245,242,236,0.80);
  text-align: center;
  padding: 14px 0;
  font-weight: 400;
  border: 1px solid rgba(245,242,236,0.28);
  letter-spacing: 0.22em;
  transition: background var(--trans-fast), border-color var(--trans-fast), color var(--trans-fast);
}
.mobile-nav-cta:hover {
  background: rgba(245,242,236,0.08);
  border-color: rgba(245,242,236,0.55);
  color: #ffffff;
}

@media (max-width: 960px) {
  .nav-links { display: none; }
  .hamburger { display: flex; }
  .header-inner { padding: 0 24px; }
  .mobile-nav-sub {display: flex;justify-content: center; font-size: 0.88rem; gap: 0 10px; margin-top: 20px;}
  .mobile-nav-sub span a {margin-right: 5px;}
  .mobile-nav-sub span a.active {color: var(--gold);}

}

/* =====================================================
   HERO — Cinematic, immersive, luxury magazine feel
   ===================================================== */
#hero {
  position: relative;
  height: 100vh;
  min-height: 760px;
  display: flex;
  align-items: center;  /* centre block vertically centred */
  overflow: hidden;
}

.hero-bg-slider {
  position: absolute;
  inset: 0;
}
.hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 40%;
  opacity: 0;
  transition: opacity 0.6s ease-in-out;
  animation: kenburns 18s ease-out forwards;
}
.hero-slide.active { opacity: 1; }

@keyframes kenburns {
  from { transform: scale(1.04); }
  to   { transform: scale(1.0); }
}

/* Navy-enriched overlay — private forum tone */
.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      to bottom,
      rgba(0,15,38,0.48) 0%,
      rgba(0,18,46,0.22) 28%,
      rgba(0,15,38,0.32) 55%,
      rgba(0,10,28,0.88) 100%
    );
  z-index: 1;
}
/* Centre vignette for text legibility */
.hero-overlay::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at 50% 50%,
    transparent 30%,
    rgba(0,10,28,0.28) 100%
  );
}

/* Cinematic letterbox lines */
.hero-letterbox {
  position: absolute;
  left: 0; right: 0;
  height: 4px;
  background: rgba(201,168,76,0.12);
  z-index: 3;
  pointer-events: none;
}
.hero-letterbox--top  { top: 0; }
.hero-letterbox--bottom { bottom: 0; }

/* Centre content block */
.hero-content--centre {
  position: relative;
  z-index: 2;
  width: 100%;
  text-align: center;
  padding: 0 48px;
  /* vertical: sit slightly above centre for visual balance */
  margin-top: -60px;
}

/* ─── FV text hierarchy ─── */

/* Anniv eyebrow — centred */
.hero-anniv-label {
  font-family: var(--font-display);
  font-size: clamp(0.7rem, 1vw, 1rem);
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.32em;
  color: #fff;
  margin-bottom: 22px;
  opacity: 0;
  animation: fadeUp 1.2s 0.1s ease forwards;
  text-align: center;
}
.hero-anniv-label sup { font-size: 0.6em; vertical-align: super; }

/* Main title — centred, Mercury, cinematic scale */
.hero-main-title {
	margin: 0 auto;
	max-width: 1400px;
  /* font-family: var(--font-mercury); */
  font-size: clamp(1.4rem, 3.2vw, 3.4rem);
  font-weight: 400;
  font-style: normal;
  line-height: 1.2;
  letter-spacing: 0.16em;
  white-space: nowrap;
  color: rgba(255,255,255,0.97);
  margin-bottom: 24px;
  opacity: 0;
  animation: fadeUp 1.2s 0.25s ease forwards;
  text-shadow: 0 2px 48px rgba(0,0,0,0.35);
  text-align: center;
}

/* Japanese sub — centred */
.hero-sub-ja {
  font-family: 'Noto Serif JP', 'Yu Mincho', '游明朝', 'Hiragino Mincho ProN', Georgia, serif;
  font-size: clamp(0.82rem, 1.3vw, 1.2rem);
  font-weight: 300;
  line-height: 2.2;
  letter-spacing: 0.30em;
  color: #fff;
  margin-bottom: 0;
  opacity: 0;
  animation: fadeUp 1.2s 0.40s ease forwards;
  text-align: center;
}

/* Luxury invitation date block — bottom left */
.hero-dates-invite {
  position: absolute;
  bottom: 88px;
  right: 50%;
  max-width: 655px;
  width: 39.5%;
  z-index: 3;
  opacity: 0;
  animation: fadeUp 1.2s 0.68s ease forwards;
}
.hdi-rule {
  width: 40px;
  height: 1px;
  background: linear-gradient(to right, rgba(200,164,106,0.70), transparent);
  margin-bottom: 18px;
}
.hdi-rule:last-child {
  margin-bottom: 0;
  margin-top: 18px;
  background: linear-gradient(to right, rgba(200,164,106,0.35), transparent);
}
.hdi-row {
  display: flex;
  align-items: baseline;
  gap: 18px;
}
.hdi-num {
  /* font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif; */
  font-size: clamp(1.0rem, 1.5vw, 1.5rem);
  font-weight: 300;
  color: rgba(224,192,106,0.92);
  letter-spacing: 0.12em;
  line-height: 1.1;
  flex-shrink: 0;
}
.hdi-day {
  /* font-family: var(--font-display); */
  font-size: 0.52em;
  /* font-style: italic; */
  letter-spacing: 0.10em;
}

.hdi-sep {
  font-family: var(--font-display);
  font-size: 0.72rem;
  color: rgba(200,164,106,0.40);
  flex-shrink: 0;
}
.hdi-venue {
  /* font-family: var(--font-display); */
  font-size: clamp(1.0rem, 1.5vw, 1.5rem);
  font-weight: 400;
  /* font-style: italic; */
  letter-spacing: 0.20em;
  color: #fff;
}
.hdi-divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(to right, rgba(200,164,106,0.18), transparent);
  margin: 14px 0;
}

/* Hero CTA row — bottom right */
.hero-ctas-fixed {
  position: absolute;
  bottom: 88px;
  right: 64px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 14px;
  opacity: 0;
  animation: fadeUp 1.2s 0.88s ease forwards;
}
/* legacy .hero-ctas kept for reference */
.hero-ctas {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}

/* Slide counter — bottom centre, moved up slightly */
.hero-slide-counter {
  position: absolute;
  bottom: 52px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 12px;
  opacity: 0;
  animation: fadeUp 1s 1.2s ease forwards;
}
.slide-cur, .slide-total {
  font-family: var(--font-display);
  font-size: 0.54rem;
  letter-spacing: 0.25em;
  color: rgba(245,242,236,0.35);
}
.slide-line {
  width: 28px;
  height: 1px;
  background: rgba(201,168,76,0.30);
}

/* Scroll indicator — hidden; counter takes centre slot */
.hero-scroll {
  display: none;
}
.hero-scroll span {
  font-family: var(--font-display);
  font-size: 0.50rem;
  letter-spacing: 0.40em;
  color: rgba(245,242,236,0.28);
  text-transform: uppercase;
}
.scroll-line {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, rgba(201,168,76,0.40), transparent);
  animation: scrollLine 2.4s ease-in-out infinite;
}
@keyframes scrollLine {
  0%   { transform: scaleY(0); transform-origin: top; opacity: 1; }
  50%  { transform: scaleY(1); transform-origin: top; }
  51%  { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 900px) {
  .hero-main-title { white-space: normal; font-size: clamp(1.2rem, 3.6vw, 2.0rem); }
  .hero-slide-counter { display: none; }
  .hero-content--centre { margin-top: -40px; }
}
@media (max-width: 768px) {

  /* ── Hero全体: flexの縦積みフローに切り替え ── */
  #hero {
    min-height: 100svh;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 100px 0 60px; /* header分の上余白 */
  }

  /* ── タイトルブロック: absoluteを解除しフロー配置 ── */
  .hero-content--centre {
    position: relative;
    top: auto; left: auto;
    transform: none;
    width: 100%;
    padding: 0 28px;
    margin-top: 0;
    margin-bottom: 36px;
    text-align: center;
  }
  .hero-main-title {
    font-size: clamp(1.05rem, 5.5vw, 1.55rem);
    white-space: normal;
    letter-spacing: 0.06em;
    margin-bottom: 16px;
  }
  .hero-sub-ja {
    font-size: 0.84rem;
    letter-spacing: 0.18em;
  }

  /* ── ① View Timetable & Reserve — SP非表示 ── */
  .hero-ctas-fixed .btn-hero-ghost { display: none; }
  .hero-ctas-fixed .btn-hero-gold  { display: none; }

  /* ── ② Reserve ボタン — absoluteを解除し中央フロー ── */
  .hero-ctas-fixed {
    position: relative;
    top: auto; right: auto; bottom: auto; left: auto;
    transform: none;
    width: 90%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 36px;
  }
  .hero-ctas-fixed .btn-hero-gold {
    width: 100%;
    padding: 15px 24px;
    font-size: 0.60rem;
    letter-spacing: 0.34em;
  }

  /* ── ③ 日程エリア — absoluteを解除しCTA下に自然配置 ── */
  .hero-dates-invite {
    position: relative;
	max-width: inherit;
    top: auto; left: auto; bottom: auto;right: auto;
    transform: none;
    width: 90%;
    text-align: center;
  }
  .hdi-rule    { margin-left: auto; margin-right: auto; }
  .hdi-row     { justify-content: center; gap: 10px; }
  .hdi-num     { font-size: 0.85rem; letter-spacing: 0.05em; }
  .hdi-venue   {
    display: block;
    font-size: 0.8rem;
    letter-spacing: 0.14em;
    /* font-style: italic; */
    margin-top: 2px;
  }
  .hdi-sep     { font-size: 0.58rem; }
  .hdi-divider { margin: 8px 0; }

  /* スクロールインジケーター非表示 */
  .hero-scroll { display: none; }
}

/* =====================================================
   ANNIVERSARY — 50th Brand Editorial Intro
   ===================================================== */
.section-anniversary {
  padding: 132px 0 112px;
  background: var(--navy-deep);       /* ネイビー基調 */
  position: relative;
  overflow: hidden;
}

/* 上端ゴールドライン */
.section-anniversary::before {
  content: '';
  display: block;
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 180px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.55), transparent);
}

/* 背景テクスチャ — 深みのある光感 */
.section-anniversary::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(13,37,84,0.35) 0%, transparent 70%);
  pointer-events: none;
}

/* ── センタリングラッパー ── */
.anniv-inner {
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
}

/* ── Block 1: Legacy ── */
.anniv-legacy-block {
  padding-bottom: 64px;
}

/* "Since 1976" */
.anniv-since {
  /* font-family: var(--font-display); */
  font-size: clamp(0.9rem, 1.2vw, 1.6rem);
  font-weight: 400;
  letter-spacing: 0.88em;
  color: rgba(200,164,106,0.70);
  text-transform: uppercase;
  margin-bottom: 26px;
}

/* Deco rule — diamond flanked lines */
.anniv-deco-rule {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 40px;
}
.anniv-deco-rule--sm {
  margin-bottom: 40px;
}
.anniv-deco-line {
  display: block;
  width: 72px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.32));
}
.anniv-deco-rule .anniv-deco-line:last-child {
  background: linear-gradient(to left, transparent, rgba(201,168,76,0.32));
}
.anniv-deco-diamond {
  display: block;
  width: 5px;
  height: 5px;
  background: rgba(201,168,76,0.50);
  transform: rotate(45deg);
  margin: 0 16px;
  flex-shrink: 0;
}

/* Fifty — official brand image (replaces hero phrase) */
.anniv-fifty-wrap {
  margin-bottom: 36px;
  overflow: hidden;
}
.anniv-fifty-img {
  width: 100%;
  max-width: 640px;
  height: auto;
  display: block;
  margin: 0 auto;
  /* preserve official navy background — no filter */
  filter: none;
  border-radius: 2px;
}

/* Lead — Japanese intro paragraph */
.anniv-lead {
  font-family: var(--font-ja);
  font-size: clamp(0.7rem, 1.2vw, 0.9rem);
  font-weight: 300;
  line-height: 2.0;
  letter-spacing: 0.16em;
  color: #fff;
  margin-bottom: 36px;
}
.anniv-lead sup { font-size: 0.6em; vertical-align: super; }
@media (max-width: 768px) {
	.anniv-lead {
		font-size: clamp(0.82rem, 1.2vw, 0.92rem);
	}
}
/* Mid separator */
.anniv-mid-sep {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 36px;
}
.anniv-mid-line {
  display: block;
  width: 40px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.22));
}
.anniv-mid-sep .anniv-mid-line:last-child {
  background: linear-gradient(to left, transparent, rgba(201,168,76,0.22));
}
.anniv-mid-diamond {
  display: block;
  width: 4px;
  height: 4px;
  background: rgba(201,168,76,0.30);
  transform: rotate(45deg);
  margin: 0 14px;
  flex-shrink: 0;
}

/* Editorial body — "読ませる" 文章 */
.anniv-editorial {
  max-width: 560px;
  margin: 0 auto;
}
.anniv-editorial p {
  font-family: var(--font-ja);
  font-size: clamp(0.82rem, 1.2vw, 0.92rem);
  font-weight: 300;
  line-height: 2.2;
  letter-spacing: 0.12em;
  color: #fff;
  margin-bottom: 24px;
}
.anniv-editorial p:last-child { margin-bottom: 0; }

/* ── Gold Divider ── */
.anniv-gold-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0 0 60px;
}
.anniv-gold-line {
  display: block;
  width: 120px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.45));
}
.anniv-gold-divider .anniv-gold-line:last-child {
  background: linear-gradient(to left, transparent, rgba(201,168,76,0.45));
}
.anniv-gold-diamond {
  display: block;
  width: 7px;
  height: 7px;
  border: 1px solid rgba(201,168,76,0.55);
  transform: rotate(45deg);
  margin: 0 18px;
  flex-shrink: 0;
  background: transparent;
}

/* ── Block 2: Event Intro ── */
.anniv-event-intro-block {
  padding-top: 0;
}

/* Event intro paragraph */
.anniv-event-lead {
  font-family: var(--font-ja);
  font-size: clamp(0.82rem, 1.3vw, 0.88rem);
  font-weight: 300;
  line-height: 2.1;
  letter-spacing: 0.14em;
  color: #fff;
  margin-bottom: 40px;
}

/* EVENT INFORMATION 小見出し */
.anniv-event-info-label {
  font-family: var(--font-display);
  font-size: clamp(0.52rem, 0.8vw, 0.60rem);
  font-weight: 400;
  letter-spacing: 0.52em;
  color: rgba(201,168,76,1);
  text-transform: uppercase;
  margin-bottom: 20px;
  text-align: center;
}

/* 都市名 */
.anniv-date-city {
  /* font-family: var(--font-display); */
  font-size: clamp(0.58rem, 0.9vw, 0.68rem);
  font-weight: 400;
  letter-spacing: 0.38em;
  color: rgba(201,168,76,0.60);
  text-transform: uppercase;
  line-height: 1;
}

/* ── Venue dates — 2-column horizontal layout (PC) / stacked (SP) ── */
.anniv-dates {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  justify-content: center;
  gap: 0;
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
}

.anniv-date-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 18px 36px;
  flex: 1;
}

.anniv-date-num {
  /* font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif; */
  font-size: clamp(1.1rem, 2.0vw, 1.6rem);
  font-weight: 300;
  letter-spacing: 0.14em;
  color: rgba(224,192,106,0.88);
  line-height: 1;
  flex-shrink: 0;
}
.anniv-date-day {
  font-size: 0.62em;
  /* font-style: italic; */
  letter-spacing: 0.10em;
  color: rgba(224,192,106,0.65);
}

.anniv-date-sep {
  display: none; /* 縦並び用セパレーターは非表示 */
}

.anniv-date-venue {
  /* font-family: 'Noto Serif JP', 'Cormorant Garamond', Georgia, serif; */
  font-size: clamp(0.67rem, 1.0vw, 0.75rem);
  font-weight: 300;
  font-style: normal;
  letter-spacing: 0.08em;
  line-height: 1.7;
  color: rgba(245,242,236,0.50);
  flex-shrink: 0;
  text-align: center;
}
.anniv-date-venue em {
  /* font-family: 'Cormorant Garamond', Georgia, serif; */
  font-style: normal;
  font-size: 0.88em;
  letter-spacing: 0.16em;
  color: rgba(245,242,236,0.32);
}

/* 2カラム間の縦ゴールドライン */
.anniv-date-divider {
  width: 1px;
  align-self: stretch;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,0.45), transparent);
  flex-shrink: 0;
  margin: 10px 0;
}

@media (max-width: 560px) {
  /* SP: 横並びを維持 */
  .anniv-dates      { flex-direction: row; max-width: 100%; }
  .anniv-date-item  { flex-direction: column; align-items: center; gap: 6px; padding: 14px 16px; flex: 1; }
  .anniv-date-num   { font-size: 1.0rem; }
  .anniv-date-city  { font-size: 0.52rem; letter-spacing: 0.28em; }
  .anniv-date-venue { font-size: 0.68rem; letter-spacing: 0.04em; }
  .anniv-date-venue em { font-size: 0.5rem;}
  /* SP: 縦ゴールドラインを維持 */
  .anniv-date-divider {
    width: 1px;
    align-self: stretch;
    height: auto;
    margin: 10px 0;
    background: linear-gradient(to bottom, transparent, rgba(201,168,76,0.35), transparent);
  }
}

/* Event title wrapper */
.anniv-event-title-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Event title — stronger, high-visibility, narrower tracking */
.anniv-event-title {
  font-family: 'IM Fell English', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.6rem, 3.2vw, 2.8rem);
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0.06em;
  color: rgba(245,242,236,0.95);
  line-height: 1.45;
  text-shadow: 0 2px 40px rgba(0,0,0,0.30);
}

/* "2026" — slightly smaller, gold tint */
.anniv-event-year {
  display: block;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 0.70em;
  font-style: italic;
  font-weight: 300;
  letter-spacing: 0.30em;
  color: rgba(200,164,106,0.82);
  margin-top: 8px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .section-anniversary { padding: 120px 0 100px; }
  .anniv-legacy-block  { padding-bottom: 64px; }
  .anniv-gold-divider  { padding-bottom: 64px; }
  .anniv-hero-phrase   { font-size: clamp(1.5rem, 6vw, 2.0rem); }
  .anniv-event-title   { font-size: clamp(1.3rem, 5.5vw, 2.0rem); }
  .anniv-event-lead    { margin-bottom: 52px; }
  .br-pc               { display: none; }
}

/* =====================================================
   BRAND SECTION
   ===================================================== */
.section-brand {
  padding: 140px 0 120px;          /* +28px */
  background: linear-gradient(
    180deg,
    var(--navy-deep)   0%,
    var(--navy-base)  45%,
    var(--navy-mid)  100%
  );
  border-top: none;
  text-align: center;
}

.brand-eyebrow {
  font-family: var(--font-display);
  font-size: 0.62rem;
  letter-spacing: 0.5em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 14px;
}

.brand-event-name {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  font-weight: 700;
  color: var(--white);
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}

.brand-tagline {
  font-family: var(--font-ja);
  font-size: clamp(0.95rem, 1.8vw, 1.2rem);
  font-weight: 300;
  font-style: normal;
  color: rgba(245,242,236,0.55);
  letter-spacing: 0.1em;
  margin-bottom: 56px;
}

.brand-divider {
  width: 48px;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--gold), transparent);
  margin: 0 auto 56px;
}

.brand-text {
  max-width: 720px;
  margin: 0 auto;
  text-align: left;
}
.brand-text p {
  font-family: var(--font-ja);
  font-size: 0.9rem;
  font-weight: 300;
  color: rgba(245,242,236,0.68);
  line-height: 2.2;
  margin-bottom: 22px;
}
.brand-text p:last-child { margin-bottom: 0; }
.brand-text strong {
  color: var(--gold-lt);
  font-weight: 400;
}

/* =====================================================
   CONCEPT — white background
   ===================================================== */
.section-concept {
  padding: 200px 0 175px;
  background: var(--bg-white);
  border-top: none;
  position: relative;
}
/* brand → concept 間 区切り */
.section-concept::before {
  content: '';
  display: block;
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 130px;
  height: 2px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.42), transparent);
}

.section-concept .section-label {
  color: var(--ink-primary);
}
.section-concept .section-label::after {
  background: linear-gradient(to right, var(--ink-primary), transparent);
}
.section-concept .section-title {
  color: var(--ink-primary);
  font-weight: 500;            /* Medium — 白背景での読みやすさ */
  letter-spacing: 0.03em;
}
.section-concept .section-sub {
  color: var(--ink-muted);
  font-weight: 400;
}

.concept-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 104px;
  align-items: start;
}

/* テキストのみ全幅表示（カードブロック削除時） */
.concept-text--full {
  grid-column: 1 / -1;
  max-width: 760px;
}

/* Concept quote — 引用フレーズ */
.concept-quote {
  font-family: var(--font-ja);
  font-size: 1.05rem !important;
  font-weight: 400 !important;
  color: var(--ink-primary) !important;
  letter-spacing: 0.16em !important;
  line-height: 2.2 !important;
  margin: 8px 0 !important;
  padding: 20px 0;
}

@media (max-width: 768px) {
	.concept-quote {
		font-size: 0.94rem !important;
	}
}
.concept-text p {
padding-top: 0;
  font-family: var(--font-ja);
  color: #333333;
  font-size: 0.94rem;
  font-weight: 400;
  line-height: 1.95;
  margin-bottom: 32px;
  letter-spacing: 0.02em;
}
.concept-text p:last-child {
	margin-bottom: 0;
}
.concept-text strong {
  color: var(--ink-primary);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.concept-visual {
  display: flex;
  flex-direction: column;
  gap: 10px;          /* カード間の余白（面で区切る） */
  background: transparent;
}

.concept-card {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 36px 40px;
  background: #EDEBE7;        /* 薄い面背景 */
  border: none;
  border-radius: 6px;         /* 角丸 */
  transition:
    background 0.30s cubic-bezier(0.25,0.46,0.45,0.94),
    box-shadow 0.30s cubic-bezier(0.25,0.46,0.45,0.94),
    transform   0.30s cubic-bezier(0.25,0.46,0.45,0.94);
  cursor: default;
}
.concept-card:hover {
  background: #002349;
  box-shadow: 0 8px 32px rgba(0,35,73,0.16);
  transform: translateY(-3px);
}
.concept-card-icon {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-primary);
  font-size: 1.05rem;
  border: 1.5px solid rgba(0,35,73,0.22);
  transition:
    background 0.30s cubic-bezier(0.25,0.46,0.45,0.94),
    color       0.30s cubic-bezier(0.25,0.46,0.45,0.94),
    border-color 0.30s cubic-bezier(0.25,0.46,0.45,0.94);
}
.concept-card:hover .concept-card-icon {
  background: rgba(255,255,255,0.12);
  color: #ffffff;
  border-color: rgba(255,255,255,0.30);
}
.concept-card-text h3 {
  font-family: var(--font-serif-en);
  font-size: 1.0rem;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--ink-primary);
  letter-spacing: 0.04em;
  line-height: 1.5;
  transition: color 0.30s cubic-bezier(0.25,0.46,0.45,0.94);
}
.concept-card:hover .concept-card-text h3 {
  color: #ffffff;
}
.concept-card-text p {
  font-family: var(--font-ja);
  font-size: 0.84rem;
  font-weight: 400;
  color: #444444;
  line-height: 1.85;
  transition: color 0.30s cubic-bezier(0.25,0.46,0.45,0.94);
}
.concept-card:hover .concept-card-text p {
  color: rgba(255,255,255,0.70);
}

@media (max-width: 900px) {
  .concept-grid { grid-template-columns: 1fr; gap: 60px; }
}

/* =====================================================
   AREAS — 4×2 luxury editorial grid
   ===================================================== */
.section-areas {
  padding: 160px 0 180px;
  background: var(--navy-deep);   /* ネイビー地 — カードが映える */
  position: relative;
}
.section-areas::before {
  content: '';
  display: block;
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 130px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.40), transparent);
}

/* 見出し: ネイビー地 → white系 */
.section-areas .section-label        { color: rgba(201,168,76,0.70); }
.section-areas .section-label::after { background: linear-gradient(to right, rgba(201,168,76,0.40), transparent); }
.section-areas .section-title        { color: rgba(245,242,236,0.95); font-weight: 400; }
.section-areas .section-sub          { color: rgba(245,242,236,1); font-weight: 300; }

/* ── 4列グリッド ── */
.areas-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

/* ── カード本体 ── */
.area-card {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  background: var(--navy-base);
  aspect-ratio: 3 / 4;    /* 縦長ポートレート — 4列並びで上品 */
}

.area-card-wide { grid-column: span 1; }

/* ── 背景画像 ── */
.area-card-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(1.0) saturate(1.02);  /* 自然光・明るめ統一トーン */
  transition: transform 1.1s var(--ease), filter 0.6s ease;
}
.area-card:hover .area-card-img {
  transform: scale(1.07);
  filter: brightness(0.50) saturate(0.80);  /* hover: 暗めにしてテキスト前面へ */
}

/* ── 通常時オーバーレイ — 下部テキスト帯のみ ── */
.area-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(0,13,40,0.78) 0%,
    rgba(0,13,40,0.18) 38%,
    transparent 60%
  );
  transition: background 0.50s var(--ease);
}

/* ── hover時: 全面ネイビーオーバーレイ ── */
.area-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0,21,58,0.62);
  opacity: 0;
  transition: opacity 0.45s var(--ease);
}
.area-card:hover::after { opacity: 1; }

/* ── テキストボディ ── */
.area-card-body {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  z-index: 3;   /* before/after の上 */
  padding: 20px 18px 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  /* 通常時: 下端に静かに待機 */
  transform: translateY(0);
  transition: transform 0.45s var(--ease);
}

/* hover: テキストを少し上へ浮かせる */
.area-card:hover .area-card-body {
  transform: translateY(-6px);
}

/* タグ — 通常時は半透明、hover時に鮮明 */
.area-tag {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.62rem;
  font-weight: 400;
  letter-spacing: 0.22em;
  color: rgba(224,196,120,0.90);
  border: 1px solid rgba(201,168,76,0.50);
  padding: 4px 12px;
  text-transform: uppercase;
  transition: color 0.35s ease, border-color 0.35s ease;
}
.area-card:hover .area-tag {
  color: rgba(224,196,120,1.0);
  border-color: rgba(201,168,76,0.85);
}

/* エリア名 */
.area-name {
  font-family: var(--font-display);
  font-size: clamp(1.0rem, 1.5vw, 1.28rem);
  font-weight: 400;
  color: rgba(255,255,255,0.95);
  letter-spacing: 0.08em;
  line-height: 1.3;
  margin: 0;
  text-shadow: 0 2px 16px rgba(0,0,0,0.55);
  transition: letter-spacing 0.40s var(--ease), color 0.35s ease;
}
.area-card:hover .area-name {
  letter-spacing: 0.12em;
  color: #ffffff;
}

/* チップ・説明文は非表示 */
.area-chips { display: none; }
.area-desc  { display: none; }

/* ── Responsive ── */
@media (max-width: 1024px) {
  .areas-grid { grid-template-columns: repeat(4, 1fr); gap: 10px; }
}
@media (max-width: 768px) {
  .section-areas { padding: 120px 0 140px; }
  .areas-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .area-card  { aspect-ratio: 3 / 4; }
  .area-card-body { padding: 16px 14px 18px; }
  .area-name  { font-size: 1.0rem; }
}
@media (max-width: 480px) {
  .areas-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .area-card  { aspect-ratio: 4 / 5; }
}
/* Touch: hover状態を維持しない */
@media (hover: none) {
  .area-card::after { opacity: 0; }
  .area-card-img    { filter: brightness(0.92) saturate(1.0); }
}

/* =====================================================
   EXPERIENCE — white background
   ===================================================== */
.section-experience {
  padding: 200px 0 180px;
  background: var(--bg-white);
  border-top: none;
  position: relative;
}
/* areas → experience 間 区切り */
.section-experience::before {
  content: '';
  display: block;
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 130px;
  height: 2px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.42), transparent);
}

.section-experience .section-label {
  color: var(--ink-primary);
}
.section-experience .section-label::after {
  background: linear-gradient(to right, var(--ink-primary), transparent);
}
.section-experience .section-title {
  color: var(--ink-primary);
  font-weight: 500;
}
.section-experience .section-sub {
  color: var(--ink-muted);
  font-weight: 400;
}

/* ── Experience grid: editorial thin-line, left-aligned, no card/box ── */
.exp-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid rgba(13,37,84,0.10);
}

.exp-item {
  padding: 64px 52px 64px 0;
  position: relative;
  border-right: 1px solid rgba(13,37,84,0.08);
  background: transparent;
  cursor: default;
}
.exp-item:last-child {
  border-right: none;
  padding-right: 0;
}
.exp-item:not(:first-child) {
  padding-left: 52px;
}

/* Roman numeral — large, prestigious hotel concierge numbering */
.exp-numeral {
  display: block;
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  font-size: clamp(2.0rem, 3.5vw, 3.2rem);
  font-weight: 300;
  font-style: italic;
  letter-spacing: 0.12em;
  /* gold gradient */
  background: linear-gradient(135deg, #C8A46A 0%, #e0c07a 45%, #b8905a 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 20px;
  user-select: none;
  line-height: 1;
}

/* Gold rule under numeral */
.exp-rule {
  width: 36px;
  height: 1px;
  background: linear-gradient(to right, rgba(200,164,106,0.65), transparent);
  margin-bottom: 28px;
}

/* Heading — Playfair Display, ink-primary */
.exp-heading {
  font-family: var(--font-serif-en);
  font-size: clamp(0.95rem, 1.4vw, 1.08rem);
  font-weight: 400;
  color: var(--ink-primary);
  letter-spacing: 0.05em;
  line-height: 1.65;
  margin-bottom: 20px;
}

/* Body text — Noto Serif JP light */
.exp-desc {
  font-family: var(--font-ja);
  font-size: 0.84rem;
  font-weight: 300;
  color: rgba(13,37,84,0.60);
  line-height: 2.2;
  letter-spacing: 0.04em;
}

/* Subtle hover — whisper; gradient text can't use color override */
.exp-item::before { display: none; }
.exp-item:hover .exp-numeral { opacity: 1; filter: brightness(1.15); }
.exp-item:hover .exp-rule { width: 44px; transition: width 0.4s var(--ease); }
.exp-item:hover .exp-heading { color: var(--navy-mid); }

@media (max-width: 900px) {
  .exp-grid {
    grid-template-columns: 1fr;
    border-top: 1px solid rgba(13,37,84,0.10);
  }
  .exp-item {
    padding: 52px 0;
    border-right: none;
    border-bottom: 1px solid rgba(13,37,84,0.08);
  }
  .exp-item:last-child { border-bottom: none; padding-bottom: 0; }
  .exp-item:not(:first-child) { padding-left: 0; }
}

/* =====================================================
   FOR WHOM
   ===================================================== */
.section-forwho {
  padding: 112px 0;
  background:
    linear-gradient(to bottom, var(--navy-mid), var(--navy-base));
}

.forwho-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 88px;
  align-items: center;
}

.forwho-list {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-top: 12px;
}
.forwho-list li {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}
.check-icon {
  width: 28px;
  height: 28px;
  border: 1px solid rgba(201,168,76,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--gold);
  font-size: 0.68rem;
  margin-top: 4px;
}
.forwho-list li > span:last-child {
  font-family: var(--font-ja);
  font-size: 0.88rem;
  font-weight: 300;
  color: rgba(245,242,236,0.76);
  line-height: 1.9;
}

.forwho-visual { position: relative; }
.forwho-img-wrap {
  position: relative;
  overflow: hidden;
}
.forwho-img-wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,20,55,0.22) 0%, transparent 55%);
  z-index: 1;
  pointer-events: none;
}
.forwho-img-wrap img {
  width: 100%;
  height: 460px;
  object-fit: cover;
  transition: transform 0.8s ease;
  filter: brightness(0.88) saturate(0.85);
}
.forwho-img-wrap:hover img { transform: scale(1.04); filter: brightness(0.92) saturate(0.9); }
.forwho-img-wrap::after {
  content: '';
  position: absolute;
  top: 18px; left: 18px; right: -18px; bottom: -18px;
  border: 1px solid rgba(201,168,76,0.2);
  z-index: -1;
}

@media (max-width: 900px) {
  .forwho-inner { grid-template-columns: 1fr; gap: 52px; }
  .forwho-img-wrap img { height: 320px; }
  .forwho-img-wrap::after { display: none; }
}

/* =====================================================
   TIMELINE — Accordion style / luxury hotel programme feel
   ===================================================== */
.section-timeline {
  padding: 180px 0 90px;
  background: var(--navy-mid);       /* ネイビー背景 — 見出しを白に */
  border-top: none;
  position: relative;
}

/* --- 常時表示アイテム --- */
.tl-fixed-items {
  max-width: 860px;
  margin: 0 auto 8px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.tl-fixed-items.tl-fixed-footer {
  margin-top: 12px;
}
.tl-fixed-item {
  display: flex;
  align-items: center;
  gap: 28px 8px;
  padding: 28px 48px;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,0.055);
  transition: background var(--trans-fast);
}
.tl-fixed-item:last-child { border-bottom: none; }
.tl-fixed-item.highlight {
  background: rgba(255,255,255,0.04);
}
.tl-fixed-time {
	font-size: 0.88rem;
	font-weight: 300;
	color: rgba(224,192,106,0.88);
  letter-spacing: 0.14em;
  width: 80px;
  flex-shrink: 0;
}
.tl-fixed-time-white {
	color: #fff;
}
.tl-fixed-badge {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.54rem;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  padding: 4px 12px;
  flex-shrink: 0;
  background: transparent;
  color: rgba(255,255,255,0.60);
  border: 1px solid rgba(255,255,255,0.22);
}
.tl-fixed-badge.reception,
.tl-fixed-badge.lottery,
.tl-fixed-badge.consult {
  background: transparent;
  color: rgba(255,255,255,0.60);
  border: 1px solid rgba(255,255,255,0.22);
}
.tl-fixed-title {
  font-family: var(--font-ja);
  font-size: 0.95rem;
  font-weight: 500;
  color: rgba(255,255,255,0.88);
  letter-spacing: 0.05em;
}
/* 個別相談の本文テキスト */
.tl-fixed-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tl-fixed-desc {
  font-family: var(--font-ja);
  font-size: 0.80rem;
  font-weight: 400;
  color: rgba(255,255,255,0.52);
  line-height: 1.85;
  letter-spacing: 0.03em;
  margin: 0;
}

/* --- アコーディオンラッパー --- */
.accordion-wrap {
  max-width: 860px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* --- バナー本体 --- */
.acc-banner {
  border: none;
  border-bottom: 1px solid rgba(255,255,255,0.055);
  background: transparent;
  overflow: hidden;
  transition: background var(--trans-fast);
  cursor: pointer;
}
.acc-banner:hover {
  background: rgba(255,255,255,0.035);
}
.acc-banner.open {
  background: rgba(255,255,255,0.04);
  border-bottom-color: rgba(255,255,255,0.10);
}

.acc-banner-inner {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 40px 48px;          /* luxury hotel programme — generous spacing */
  user-select: none;
}

.acc-banner-left {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 190px;
  flex-shrink: 0;
}
.acc-period {
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.50em;
  color: rgba(255,255,255,1);
  text-transform: uppercase;
}
.acc-time-range {
  font-size: 0.88rem;
  font-weight: 400;
  color: rgba(224,192,106,0.75);
  letter-spacing: 0.06em;
}

.acc-banner-center {
  flex: 1;
  padding: 0 40px;
  border-left: 1px solid rgba(255,255,255,0.10);
  border-right: 1px solid rgba(255,255,255,0.10);
}
.acc-areas {
  font-family: var(--font-ja);
  font-size: 1.0rem;
  font-weight: 700;
  letter-spacing: 0.10em;
  color: rgba(255,255,255,0.88);
}

.acc-banner-right {
  width: 56px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
}
.acc-toggle-icon {
  width: 30px;
  height: 30px;
  background: #fff;
  border: 1.5px solid var(--navy-mid);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.90);
  font-size: 0.72rem;
  transition:
    transform 0.32s var(--ease),
    background var(--trans-fast),
    color var(--trans-fast),
    border-color var(--trans-fast);
  flex-shrink: 0;
}
.acc-banner:hover .acc-toggle-icon {
  background: rgba(255,255,255,0.8);
}
.acc-banner.open .acc-toggle-icon {
  transform: rotate(45deg);
  background: #ffffff;
  color: var(--navy-mid);
  border-color: #ffffff;
}
.acc-toggle-icon .fas::before {
	color: var(--navy-mid);
}

/* --- アコーディオンボディ ---
   max-height は JS の scrollHeight で動的にセットするため
   CSS 側の open 状態定義は不要。初期値 0 のみ維持。 */
.acc-body {
  max-height: 0;
  overflow: hidden;
  /* transition を少し長めにして SP でもスムーズに */
  transition: max-height 0.45s var(--ease);
}
/* JS が style.maxHeight をセットするので CSS 側の open 定義を削除
.acc-banner.open .acc-body { max-height: 1600px; } */

.acc-session-list {
  padding: 0 48px 32px;
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid rgba(255,255,255,0.055);
  background: transparent;
}

.acc-session {
  display: flex;
  gap: 36px;
  align-items: flex-start;
  padding: 22px 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  background: transparent;
}
.acc-session:last-child { border-bottom: none; }

.acc-session-time {
  font-size: 1.0rem;
  font-weight: 300;
  color: rgba(224,192,106,0.88);
  letter-spacing: 0.14em;
  width: 52px;
  flex-shrink: 0;
  padding-top: 3px;
}

.acc-session-info {
  display: flex;
  flex-direction: column;
  gap: 8px;                    /* 要素間の縦余白 */
}

.acc-session-badge {
  font-family: var(--font-display);
  font-size: 0.54rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.60);
  background: transparent;
  border: 1px solid rgba(255,255,255,0.20);
  padding: 4px 12px;
  display: inline-block;
  width: fit-content;
}

.acc-session-title {
  font-family: var(--font-ja);
  font-size: 1.15rem;
  font-weight: 600;
  color: rgba(255,255,255,0.96);
  letter-spacing: 0.04em;
  line-height: 1.65;
}

.acc-session-desc {
  font-family: var(--font-ja);
  font-size: 0.88rem;
  font-weight: 400;
  color: rgba(255,255,255,0.65);
  line-height: 2.0;
  margin-top: 6px;
}

/* --- Break バナー --- */
.tl-break-banner {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 28px 40px;              /* 上下余白を広めに調整 */
  background: transparent;
  border: none;
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  max-width: 860px;
  margin: 0 auto;
}
.tl-break-time {
  font-size: 0.88rem;
  font-weight: 300;
  color: #fff;
  letter-spacing: 0.14em;
  width: 140px;
  flex-shrink: 0;
}
.tl-break-label {
  font-family: var(--font-ja);
  font-size: 0.88rem;
  font-weight: 400;
  color: rgba(255,255,255,0.58);
  letter-spacing: 0.05em;
}
.tl-break-note {
  font-family: var(--font-ja);
  font-size: 0.78rem;
  color: rgba(255,255,255,0.32);
  letter-spacing: 0.03em;
  margin-left: 6px;
}

@media (max-width: 768px) {
  .acc-banner-inner { padding: 20px 20px; gap: 12px; flex-wrap: wrap; }
  .acc-banner-left { width: 100%; flex-direction: row; align-items: center; gap: 16px; }
  .acc-banner-center { border-left: none; border-right: none; border-top: 1px solid rgba(255,255,255,0.08); padding: 12px 0 0; width: 100%; }
  .acc-banner-right { width: 100%; justify-content: flex-end; padding-top: 4px; }
  .acc-session-list { padding: 8px 20px 20px; }
  .acc-session { gap: 20px; padding: 12px 0; }
  .tl-fixed-time { width: 76px;}
  .tl-break-banner { padding: 14px 20px; flex-wrap: wrap; gap: 8px; }
  .tl-fixed-item { padding: 18px 20px; gap: 16px 0; }
}

/* =====================================================
   ORGANIZER
   ===================================================== */
.section-organizer {
  padding: 90px 0 180px;                /* +28px */
  background: linear-gradient(
    180deg,
    var(--navy-mid)    0%,
    var(--navy-bright) 50%,
    var(--navy-base)  100%
  );
  border-top: none;
}

/* テキストブロック — センタリング */
.organizer-text-block {
  max-width: 720px;
  margin: 0 auto 64px;
  text-align: center;
}
.organizer-text-block p {
  font-family: var(--font-ja);
  font-size: 0.88rem;
  color: rgba(245,242,236,0.68);
  line-height: 2.2;
  margin-bottom: 18px;
}
.organizer-text-block p:last-child { margin-bottom: 0; }
.organizer-text-block strong { color: var(--gold-lt); font-weight: 400; }

/* 1本動画 — 中央・横幅広め */
.organizer-video-single {
  max-width: 860px;
  margin: 0 auto;
}
.video-wrap-single {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  background: rgba(0,15,40,0.7);
  border: none;
  overflow: hidden;
  box-shadow: 0 16px 64px rgba(0,0,0,0.45);
}
.video-wrap-single iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.video-label-single {
  font-family: var(--font-display);
  font-size: 0.6rem;
  letter-spacing: 0.38em;
  color: var(--gold);
  text-transform: uppercase;
  margin-top: 16px;
  text-align: center;
}

/* 旧スタイル — 互換用 */
.video-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  background: rgba(0,15,40,0.7);
  border: 1px solid rgba(201,168,76,0.15);
  overflow: hidden;
}
.video-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.video-label {
  font-family: var(--font-display);
  font-size: 0.62rem;
  letter-spacing: 0.3em;
  color: var(--gold);
  text-transform: uppercase;
  margin-top: 10px;
  padding-left: 2px;
}

/* =====================================================
   APPLY — prominent dual CTA
   ===================================================== */
.section-apply {
  padding: 160px 0;
  background: var(--bg-white);
  border-top: none;
  position: relative;
}
/* timeline → apply 間 区切り */
.section-apply::before {
  content: '';
  display: block;
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 130px;
  height: 2px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.42), transparent);
}

.apply-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  margin-top: 60px;
}

.apply-card {
  background: #EDEBE7;              /* off-white card surface */
  border: 1px solid #D8D5CF;
  border-radius: 4px;
  padding: 56px 48px;
  position: relative;
  transition: border-color var(--trans-mid), background var(--trans-mid), box-shadow var(--trans-mid);
  display: flex;
  flex-direction: column;
}
.apply-card:hover {
  border-color: rgba(13,37,84,0.20);
  background: #E5E2DD;
  box-shadow: 0 4px 24px rgba(0,35,73,0.07);
}
.apply-card::before { display: none; }

.apply-city {
  font-family: var(--font-display);
  font-size: 0.6rem;
  letter-spacing: 0.48em;
  color: #002349;                   /* ネイビー */
  opacity: 0.55;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.apply-title {
  font-family: var(--font-serif-en);
  font-size: 1.85rem;
  font-weight: 400;
  color: #002349;                   /* ネイビー見出し */
  margin-bottom: 36px;
  line-height: 1.35;
  letter-spacing: 0.05em;
}

.apply-info {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 36px;
  flex: 1;
}

.apply-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-size: 0.84rem;
}
.apply-row-icon {
  width: 18px;
  color: #002349;                   /* ネイビーアイコン */
  font-size: 0.72rem;
  flex-shrink: 0;
  padding-top: 4px;
  opacity: 0.60;
}
.apply-row-val {
  font-family: var(--font-ja);
  color: #333333;                   /* 濃い本文 */
  line-height: 1.8;
}

.apply-note {
  font-family: var(--font-ja);
  font-size: 0.7rem;
  color: #888888;                   /* 読みやすいグレー */
  letter-spacing: 0.04em;
  margin-bottom: 28px;
}

/* 注意事項リスト */
.apply-notices {
  list-style: none;
  padding: 0;
  margin: 40px auto 0;
  max-width: 680px;
  border-top: 1px solid rgba(0,0,0,0.08);
  padding-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.apply-notices li {
  font-family: var(--font-ja);
  font-size: 0.72rem;
  color: #333;
  letter-spacing: 0.04em;
  line-height: 1.7;
  padding-left: 1.2em;
  position: relative;
}
.apply-notices li::before {
  content: '※';
  position: absolute;
  left: 0;
  color: #666;
}

/* Apply button — gold luxury, matte with subtle gloss hover */
.apply-btn {
  width: 100%;
  padding: 20px 10px;
  font-size: 1rem;
  letter-spacing: 0.38em;
  font-family: var(--font-display);
  background: linear-gradient(135deg, #C8A46A 0%, #b8905a 50%, #C8A46A 100%);
  background-size: 200% 100%;
  color: #ffffff;
  border: 1px solid rgba(200,164,106,0.55);
  border-radius: 0;
  text-shadow: 0 1px 2px rgba(0,0,0,0.20);
  box-shadow: 0 4px 20px rgba(200,164,106,0.18), inset 0 1px 0 rgba(255,255,255,0.10);
  text-transform: uppercase;
  transition:
    background-position var(--trans-mid),
    box-shadow var(--trans-mid),
    transform var(--trans-fast);
}
.apply-btn:hover {
  background-position: 100% 0;
  box-shadow: 0 6px 28px rgba(200,164,106,0.32), inset 0 1px 0 rgba(255,255,255,0.18);
  transform: translateY(-1px);
  color: #ffffff;
  opacity: 1;
}

@media (max-width: 900px) {
  .apply-grid { grid-template-columns: 1fr; gap: 20px; }
  .apply-card { padding: 40px 28px; }
}

@media (max-width: 768px) {
	.apply-btn { font-size: 0.68rem;}
}

/* =====================================================
   CONTACT INFORMATION
   ===================================================== */
.section-contact {
  background: var(--navy-deep);
  padding: 120px 0 110px;
  position: relative;
}
/* 上端ゴールドライン */
.section-contact::before {
  content: '';
  display: block;
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 240px; height: 1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.35), transparent);
}

/* ラベル */
.contact-label-wrap {
  text-align: center;
  margin-bottom: 64px;
}
.contact-label {
  font-family: var(--font-display);
  font-size: clamp(0.54rem, 0.9vw, 0.64rem);
  font-size: clamp(0.9rem, 1.2vw, 1.6rem);
  font-weight: 400;
  letter-spacing: 0.52em;
  color: rgba(201,168,76,0.55);
  text-transform: uppercase;
}

/* 2カラムレイアウト */
.contact-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
  max-width: 960px;
  margin: 0 auto;
}

/* ─── 左：会社情報 ─── */
.contact-brand {
  /* font-family: var(--font-display); */
  font-size: clamp(0.82rem, 1.2vw, 0.96rem);
  font-weight: 400;
  letter-spacing: 0.16em;
  color: rgba(245,242,236,0.88);
  margin-bottom: 8px;
}
.contact-company {
  font-size: clamp(0.68rem, 1.0vw, 0.76rem);
  font-weight: 300;
  letter-spacing: 0.08em;
  color: rgba(245,242,236,0.45);
  margin-bottom: 0;
}

/* デコレーションライン */
.contact-deco-rule {
  width: 36px;
  height: 1px;
  background: linear-gradient(to right, rgba(201,168,76,0.50), transparent);
  margin: 28px 0;
}

/* 住所 */
.contact-address {
  font-size: clamp(0.70rem, 1.0vw, 0.78rem);
  font-weight: 300;
  line-height: 2.0;
  letter-spacing: 0.06em;
  color: rgba(245,242,236,0.55);
  font-style: normal;
  margin-bottom: 28px;
}
.contact-zip {
  display: block;
  font-size: 0.68rem;
  color: rgba(245,242,236,0.35);
  letter-spacing: 0.08em;
  margin-bottom: 4px;
}

/* TEL / MAIL */
.contact-details {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.contact-details li {
  display: flex;
  align-items: baseline;
  gap: 16px;
}
.contact-detail-label {
  /* font-family: var(--font-display); */
  font-size: 0.54rem;
  letter-spacing: 0.32em;
  color: rgba(201,168,76,0.50);
  flex-shrink: 0;
  width: 36px;
}
.contact-detail-val {
  /* font-family: var(--font-display); */
  font-size: clamp(0.80rem, 1.1vw, 0.90rem);
  font-weight: 300;
  letter-spacing: 0.08em;
  color: rgba(245,242,236,0.65);
  text-decoration: none;
  transition: color 0.3s ease;
}
.contact-detail-val:hover {
  color: rgba(224,192,106,0.90);
}

/* 免許番号 */
.contact-license {
  font-family: var(--font-ja);
  font-size: 0.60rem;
  font-weight: 300;
  letter-spacing: 0.06em;
  color: rgba(245,242,236,0.25);
  line-height: 1.8;
}

/* ─── 右：Google Map ─── */
.contact-map-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.contact-map-frame {
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  /* ネイビー世界観に馴染むゴールドボーダー */
  border: 1px solid rgba(201,168,76,0.20);
  box-shadow: 0 8px 40px rgba(0,0,0,0.45);
  /* セピア寄りのモノトーン調整 */
  filter: saturate(0.55) brightness(0.80) contrast(1.05);
  transition: filter 0.5s ease;
}
.contact-map-frame:hover {
  filter: saturate(0.75) brightness(0.90) contrast(1.02);
}
.contact-map-frame iframe {
  width: 100%;
  height: 100%;
  display: block;
}

/* Google Maps リンク */
.contact-map-link {
  display: inline-block;
  align-self: flex-end;
  font-family: var(--font-display);
  font-size: 0.58rem;
  letter-spacing: 0.26em;
  color: rgba(201,168,76,0.55);
  text-decoration: none;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(201,168,76,0.20);
  padding-bottom: 3px;
  transition: color 0.3s ease, border-color 0.3s ease;
}
.contact-map-link:hover {
  color: rgba(224,192,106,0.90);
  border-color: rgba(201,168,76,0.55);
}

/* SP: 縦並び */
@media (max-width: 768px) {
  .section-contact { padding: 88px 0 80px; }
  .contact-inner {
    grid-template-columns: 1fr;
    gap: 52px;
  }
  .contact-map-link { align-self: flex-start; }
}

/* =====================================================
   FOOTER
   ===================================================== */
.footer {
  background: var(--navy-deep);
  border-top: none;
  padding: 96px 0 64px;
}

.footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  text-align: center;
}

.footer-organizer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding-bottom: 32px;
}
.footer-organizer-label {
  font-family: var(--font-display);
  font-size: 0.6rem;
  letter-spacing: 0.4em;
  color: white;
  text-transform: uppercase;
}
.footer-logo-img {
  height: 52px;
  width: auto;
  object-fit: contain;
  /* opacity: 0.7; */
}
.footer-organizer-name {
  font-family: var(--font-ja);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  color: rgba(245,242,236,0.35);
}
@media (max-width: 560px) {
	.footer-organizer-name {
		font-size: 0.68rem;
	}
}

.footer-divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.2), transparent);
  margin: 4px 0;
}

.footer-tagline {
  font-family: var(--font-ja);
  font-size: 0.88rem;
  color: rgba(176,169,158,0.6);
  font-style: normal;
  letter-spacing: 0.06em;
}

.footer-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}
.footer-links a {
  font-family: var(--font-display);
  font-size: 0.68rem;
  color: rgba(245,242,236,0.38);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: color var(--trans-fast);
}
.footer-links a:hover { color: var(--gold-lt); }
.sep { color: rgba(201,168,76,0.25); font-size: 0.65rem; }

.footer-event-info {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  font-family: var(--font-ja);
  font-size: 0.7rem;
  color: rgba(245,242,236,0.28);
}
.footer-event-info i { color: var(--gold); opacity: 0.5; margin-right: 4px; }

.footer-copy {
  font-family: var(--font-display);
  font-size: 0.65rem;
  color: rgba(245,242,236,0.18);
  letter-spacing: 0.1em;
  margin-top: 8px;
}

/* 免責事項 — 6pt相当 / ベントサンス（sans-serif系） */
.footer-disclaimer {
  font-family: 'Helvetica Neue', Arial, 'Noto Sans JP', sans-serif;
  font-size: 0.50rem;        /* 6pt ≈ 8px → 0.50rem */
  line-height: 1.8;
  color: rgba(245,242,236,0.22);
  letter-spacing: 0.02em;
  margin-top: 20px;
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.footer-disclaimer a:hover {
	color: var(--gold);
}


/* =====================================================
   STICKY CTA
   ===================================================== */
.sticky-cta {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 999;
  opacity: 0;
  transform: translateY(16px);
  pointer-events: none;
  transition: opacity var(--trans-mid), transform var(--trans-mid);
  box-shadow: var(--shadow-gold);
}
.sticky-cta.show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

@media (max-width: 480px) {
  .sticky-cta { bottom: 16px; right: 14px; left: 14px; }
  .btn-sticky { width: 100%; }
}

/* =====================================================
   BACK TO TOP
   ===================================================== */
.back-to-top {
  position: fixed;
  bottom: 92px;
  right: 28px;
  z-index: 998;
  width: 42px;
  height: 42px;
  background: rgba(0,15,42,0.88);
  border: 1px solid rgba(201,168,76,0.28);
  color: var(--gold);
  font-size: 0.76rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity var(--trans-mid), transform var(--trans-mid), background var(--trans-fast), border-color var(--trans-fast);
  backdrop-filter: blur(8px);
}
.back-to-top.show { opacity: 1; transform: translateY(0); pointer-events: auto; }
.back-to-top:hover { background: rgba(0,26,62,0.95); border-color: var(--gold); }

@media (max-width: 480px) { .back-to-top { right: 14px; bottom: 76px; } }

/* =====================================================
   SCROLL ANIMATIONS
   ===================================================== */
.fade-in {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.9s ease, transform 0.9s ease;
}
.fade-in.visible { opacity: 1; transform: translateY(0); }
.fade-in-delay-1 { transition-delay: 0.12s; }
.fade-in-delay-2 { transition-delay: 0.24s; }
.fade-in-delay-3 { transition-delay: 0.36s; }

/* =====================================================
   UTILITIES
   ===================================================== */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.gold-divider {
  width: 48px; height: 1px;
  background: linear-gradient(to right, var(--gold), transparent);
  margin: 0 auto 40px;
}

/* KV — legacy duplicate removed; .hero-anniv-label defined in Hero section above */

/* =====================================================
   AREAS — hover redesign & chips
   ===================================================== */

/* 説明文非表示（既存.area-descは使わない） */
.area-desc { display: none; }

/* チップ (タグ) */
.area-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
  opacity: 1;                       /* 常時表示 */
  transform: translateY(0);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.area-chips span {
  font-family: var(--font-display);
  font-size: 0.52rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold-lt);
  border: 1px solid rgba(201,168,76,0.38);
  padding: 3px 10px;
  background: rgba(0,10,28,0.5);
  backdrop-filter: blur(4px);
}

/* ホバー: 画像を暗くするのみ（テキストは常時表示） */
.area-card:hover .area-name,
.area-card:hover .area-tag { opacity: 1; }
.area-card:hover .area-chips { opacity: 1; }

/* .speaker-card — removed (speaker cards deleted in Round 3) */

/* =====================================================
   SP GLOBAL — 横スクロール防止・レイアウト崩れ修正
   ===================================================== */
@media (max-width: 768px) {
  /* 横はみ出し防止 */
  html, body { overflow-x: hidden; }

  /* コンテナ */
  .container { padding: 0 20px; }

  /* 2カラムグリッドをSPで縦積み */
  .apply-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 40px; }
  .concept-grid { grid-template-columns: 1fr; gap: 48px; }

  /* セクション余白 SP */
  .section-brand    { padding: 80px 0 72px; }
  .section-concept  { padding: 96px 0; }
  .section-areas    { padding: 96px 0 104px; }
  .section-experience { padding: 96px 0; }
  .section-timeline { padding: 96px 0 45px; }
  .section-organizer{ padding: 50px 0 96px; }
  .section-apply    { padding: 96px 0; }
  .section-anniversary { padding: 80px 0 72px; }

  /* 見出しフォントサイズ */
  .section-title { font-size: clamp(1.5rem, 5vw, 2rem); }
  .section-sub   { margin-bottom: 40px; }
  .section-areas .section-sub   { line-height: 1.5; }

  /* applyカード余白 */
  .apply-card { padding: 40px 24px; }

  /* タイムライン */
  .tl-fixed-items, .accordion-wrap { max-width: 100%; }
  .acc-toggle-icon { width: 22px; height: 22px; font-size: 0.6rem; }
  .acc-areas { font-size: 0.82rem; letter-spacing: 0.08em; }

  /* speaker-card / exp-number — removed (Round 3 editorial redesign) */
}


@media (min-width: 769px) and (max-width: 1200px)  {
	.hdi-num {
		font-size: clamp(1rem, 1vw, 2.1rem);
	}
	.hdi-venue {
		font-size: clamp(0.8rem, 0.8vw, 2.1rem);
	}
}