:root {
  --ink: #11110f;
  --ink-soft: #1c1b18;
  --porcelain: #f7f6f2;
  --paper: #eeece6;
  --mist: #e6f0f4;
  --blue: #789caf;
  --champagne: #b89b72;
  --muted: #6f706c;
  --line: rgba(17, 17, 15, 0.16);
  --line-dark: rgba(255, 255, 255, 0.2);
  --gothic: "Pretendard", sans-serif;
  --myeongjo: "Noto Serif KR", serif;
  --cl: "Alegreya", serif;
}

* { box-sizing: border-box; }

html {
  background: var(--ink);
  scroll-behavior: smooth;
}

body {
  background: var(--porcelain);
  color: var(--ink);
  font-family: var(--gothic);
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { display: block; }
section { scroll-margin-top: 106px; }
h1, h2, h3 { text-wrap: balance; word-break: keep-all; }
p, li, dd, address, a { overflow-wrap: break-word; text-wrap: pretty; word-break: keep-all; }

::selection { background: var(--blue); color: white; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }

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

.section-label {
  font-family: var(--cl);
  font-size: 14px;
  letter-spacing: 0.08em;
  margin: 0 0 34px;
}

.hero-header {
  align-items: center;
  color: white;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  left: 0;
  padding: 24px 4vw;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 20;
}

.hero-logo {
  filter: brightness(0) invert(1);
  height: 58px;
  object-fit: contain;
  object-position: left center;
  width: 148px;
}

.hero-header p {
  font-size: 12px;
  letter-spacing: 0.2em;
  margin: 0;
}

.header-reservation {
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  font-size: 13px;
  justify-self: end;
  letter-spacing: 0.12em;
  padding: 7px 0;
}

.hero {
  color: white;
  min-height: clamp(680px, 88svh, 900px);
  overflow: hidden;
  position: relative;
}

.hero-slides,
.hero-slide,
.hero-vignette {
  inset: 0;
  position: absolute;
}

.hero-slide {
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
}

.hero-slide-wave { animation: heroWave 24s infinite ease-in-out; object-position: center 54%; }
.hero-slide-covenant { animation: heroCovenant 24s infinite ease-in-out; object-position: center; }
.hero-slide-bliss { animation: heroBliss 24s infinite ease-in-out; object-position: center; }

.hero-vignette {
  background:
    linear-gradient(180deg, rgba(8, 8, 7, 0.44), transparent 30%, transparent 58%, rgba(8, 8, 7, 0.7)),
    linear-gradient(90deg, rgba(8, 8, 7, 0.5), transparent 58%);
  z-index: 3;
}

.hero-message {
  bottom: 15vh;
  left: 8vw;
  max-width: 1080px;
  position: absolute;
  z-index: 5;
}

.hero-brand {
  font-family: var(--cl);
  font-size: clamp(17px, 1.5vw, 23px);
  letter-spacing: 0.2em;
  margin: 0 0 20px;
}

.hero h1 {
  font-family: var(--cl);
  font-size: clamp(52px, 7.4vw, 112px);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 0.9;
  margin: 0;
  text-wrap: balance;
}

.hero h1 em {
  display: block;
  font-size: 0.54em;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.015em;
  line-height: 1;
  margin-top: 18px;
}

.hero-highlights {
  border-bottom: 1px solid rgba(255, 255, 255, 0.45);
  border-top: 1px solid rgba(255, 255, 255, 0.45);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 34px 0 30px;
  max-width: 850px;
  padding: 0;
}

.hero-highlights li {
  align-items: baseline;
  display: flex;
  gap: 10px;
  padding: 15px 22px 16px 0;
  white-space: nowrap;
}

.hero-highlights li + li {
  border-left: 1px solid rgba(255, 255, 255, 0.34);
  padding-left: 22px;
}

.hero-highlights span {
  font-size: clamp(13px, 1vw, 15px);
  font-weight: 300;
}

.hero-highlights b {
  font-family: var(--cl);
  font-size: clamp(21px, 2vw, 30px);
  font-weight: 400;
}

.line-button {
  align-items: center;
  border-bottom: 1px solid currentColor;
  display: inline-flex;
  font-size: 13px;
  justify-content: space-between;
  letter-spacing: 0.08em;
  min-width: 240px;
  padding: 12px 0;
}

.line-button span { margin-left: 34px; }
.line-button-light { color: white; }

.hero-bottom {
  bottom: 30px;
  display: flex;
  font-size: 12px;
  justify-content: space-between;
  left: 4vw;
  letter-spacing: 0.24em;
  position: absolute;
  right: 4vw;
  z-index: 5;
}

.hero-scroll::before {
  animation: scrollPulse 1.8s infinite ease-in-out;
  background: currentColor;
  content: "";
  display: inline-block;
  height: 34px;
  margin: -3px 15px -13px 0;
  transform-origin: top;
  width: 1px;
}

.anchor-nav {
  align-items: center;
  background: rgba(250, 249, 246, 0.94);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 0.5fr 1.5fr;
  min-height: 110px;
  padding: 16px 8vw;
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(14px);
}

.anchor-brand img {
  height: 62px;
  object-fit: contain;
  object-position: left center;
  width: 156px;
}

.anchor-nav > div {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.anchor-nav > div a {
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 13px;
  padding: 9px 18px;
  transition: background 220ms ease, color 220ms ease, border-color 220ms ease;
}

.anchor-nav > div a:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: white;
}

.quick-rail {
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  position: fixed;
  right: 0;
  top: 42%;
  z-index: 40;
}

.quick-rail a {
  align-items: center;
  display: flex;
  flex-direction: column;
  font-size: 13px;
  justify-content: center;
  min-height: 86px;
  width: 86px;
}

.quick-consult { background: var(--ink); color: white; }
.quick-consult span { color: #b8d1dc; font-family: var(--cl); font-size: 12px; letter-spacing: 0.1em; }
.quick-phone { background: var(--blue); color: white; }
.quick-phone span { color: #dce9ee; font-family: var(--cl); font-size: 12px; letter-spacing: 0.1em; }
.quick-phone:hover, .quick-phone:focus-visible { background: #31434b; }
.quick-top { background: white; }
.quick-top span { font-family: var(--cl); font-size: 25px; line-height: 1; }

.benefits {
  background: var(--mist);
  padding: clamp(110px, 13vw, 210px) 8vw clamp(90px, 11vw, 170px);
  text-align: center;
}

.benefits h2,
.brand-intro h2,
.signature-copy h2,
.experience-heading h2,
.parking-title-block h2,
.inquiry-intro h2 {
  font-family: var(--myeongjo);
  font-size: clamp(52px, 7vw, 104px);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.98;
  margin: 0;
}

.benefits h2, .brand-intro h2 { margin-left: auto; margin-right: auto; max-width: 1100px; }
.benefits h2 { font-size: clamp(36px, 5.8vw, 86px); }

.benefits > .section-label {
  font-family: var(--cl);
  font-size: clamp(22px, 2.4vw, 36px);
  letter-spacing: 0.16em;
  margin-bottom: 28px;
}

.benefits h2 span { display: block; }

.benefits-lead {
  color: #576268;
  font-size: 17px;
  font-weight: 300;
  margin: 42px auto 76px;
  word-break: keep-all;
}

.event-periods {
  border-bottom: 1px solid rgba(17, 17, 15, 0.2);
  border-top: 1px solid rgba(17, 17, 15, 0.2);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin: 0 auto 34px;
  max-width: 1120px;
  text-align: left;
}

.event-periods div {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 22px clamp(20px, 3vw, 42px);
}

.event-periods div + div { border-left: 1px solid rgba(17, 17, 15, 0.2); }
.event-periods span { color: var(--muted); font-size: 12px; letter-spacing: .08em; }
.event-periods b { font-family: var(--cl); font-size: clamp(18px, 2vw, 27px); font-weight: 400; }

.benefit-grid {
  border-bottom: 1px solid rgba(17, 17, 15, 0.2);
  border-top: 1px solid rgba(17, 17, 15, 0.2);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: auto;
  max-width: 1120px;
  text-align: left;
}

.benefit-grid article { padding: 50px clamp(26px, 4vw, 64px); }
.benefit-grid article + article { border-left: 1px solid rgba(17, 17, 15, 0.2); }

.benefit-hall { color: var(--blue); font-size: 12px; letter-spacing: .1em; margin: 0 0 24px; }

.benefit-grid h3 {
  font-family: var(--myeongjo);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 400;
  margin: 0 0 20px;
}

.benefit-inclusions {
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  list-style: none;
  margin: 30px 0 0;
  padding: 16px 0;
}

.benefit-inclusions li {
  color: #38454b;
  font-size: 15px;
  padding: 7px 0;
}

.benefit-inclusions li::before { color: var(--blue); content: "·"; margin-right: 8px; }

.benefit-album {
  color: #586268;
  font-size: 14px;
  font-weight: 300;
  margin: 18px 0 0;
  max-width: 390px;
  word-break: keep-all;
}

.benefit-price-note { color: var(--ink); font-size: 13px; letter-spacing: .02em; margin: 10px 0 0; }

.benefit-grid a {
  border-bottom: 1px solid currentColor;
  display: flex;
  font-size: 13px;
  justify-content: space-between;
  margin-top: 36px;
  padding: 11px 0;
}

.benefit-note { color: #68747a; font-size: 12px; margin: 24px auto 0; max-width: 760px; }

.brand-intro {
  background: var(--porcelain);
  padding: clamp(110px, 13vw, 220px) 8vw;
  text-align: center;
}

.brand-intro h2 em { color: #758189; font-style: normal; font-weight: 400; }

.brand-intro > p:last-child {
  color: var(--muted);
  font-size: 17px;
  font-weight: 300;
  margin: 50px auto 0;
  max-width: 740px;
  word-break: keep-all;
}

.space-naming {
  background: var(--paper);
  padding: clamp(100px, 12vw, 190px) 8vw;
}

.space-naming-heading {
  align-items: end;
  display: grid;
  gap: 48px;
  grid-template-columns: .55fr 1.05fr .7fr;
  margin-bottom: clamp(64px, 8vw, 110px);
}

.space-naming-heading .section-label { align-self: start; }

.space-naming-heading h2 {
  font-family: var(--myeongjo);
  font-size: clamp(50px, 6.4vw, 92px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.05;
  margin: 0;
}

.space-naming-heading > p:last-child {
  color: var(--muted);
  font-weight: 300;
  margin: 0;
  word-break: keep-all;
}

.space-building-grid {
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.space-building { padding: clamp(42px, 5vw, 72px) clamp(24px, 4vw, 58px) clamp(52px, 6vw, 86px); }
.space-building + .space-building { border-left: 1px solid var(--line); }

.space-building-logo {
  height: 112px;
  margin-bottom: 34px;
  object-fit: contain;
  object-position: left center;
  width: 230px;
}

.space-building-logo-bridge { height: 100px; width: 250px; }

.space-building-concept {
  font-family: var(--myeongjo);
  font-size: clamp(23px, 2.5vw, 34px);
  line-height: 1.45;
  margin: 0 0 50px;
  max-width: 520px;
  word-break: keep-all;
}

.space-list { list-style: none; margin: 0; padding: 0; }

.space-list li {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 24px;
  grid-template-columns: .9fr 1.1fr;
  padding: 20px 0;
}

.space-list li:last-child { border-bottom: 1px solid var(--line); }
.space-list li > div { display: flex; flex-direction: column; }
.space-list b { font-family: var(--cl); font-size: 20px; font-weight: 500; }
.space-list span { color: var(--muted); font-size: 12px; letter-spacing: .04em; margin-top: 2px; }
.space-list p { align-self: center; color: var(--muted); font-size: 14px; margin: 0; word-break: keep-all; }

.hall-stories {
  background: var(--ink);
  color: white;
  padding: clamp(100px, 12vw, 180px) 8vw;
}

.hall-stories-heading {
  align-items: end;
  display: grid;
  gap: 48px;
  grid-template-columns: .5fr 1.1fr .7fr;
  margin: 0 auto clamp(60px, 8vw, 110px);
  max-width: 1440px;
}

.hall-stories-heading .section-label { align-self: start; }
.hall-stories-heading h2 {
  font-family: var(--myeongjo);
  font-size: clamp(50px, 6vw, 88px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.05;
  margin: 0;
}
.hall-stories-heading > p:last-child { color: rgba(255,255,255,.68); font-size: 16px; font-weight: 300; margin: 0; word-break: keep-all; }

.hall-profiles { display: grid; gap: 28px; margin: auto; max-width: 1440px; }

.hall-profile {
  background: #181817;
  border: 1px solid var(--line-dark);
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr);
  min-height: 560px;
}

.hall-profile:nth-child(even) { grid-template-columns: minmax(340px, .65fr) minmax(0, 1.35fr); }
.hall-profile:nth-child(even) .hall-profile-media { grid-column: 2; grid-row: 1; }
.hall-profile:nth-child(even) .hall-profile-content { grid-column: 1; grid-row: 1; }

.hall-profile-media { margin: 0; min-height: 520px; overflow: hidden; position: relative; }
.hall-profile-media img { object-fit: cover; transition: transform 1.4s cubic-bezier(.2,.7,.2,1); }
.hall-profile:hover .hall-profile-media img { transform: scale(1.025); }
.hall-profile-wave .hall-profile-media img { object-position: center 48%; }
.hall-profile-media figcaption {
  background: rgba(17,17,15,.7);
  bottom: 16px;
  font-size: 12px;
  left: 16px;
  letter-spacing: .18em;
  padding: 7px 10px;
  position: absolute;
  z-index: 2;
}

.hall-profile-content { align-self: center; padding: clamp(38px, 5vw, 72px); }

.scene-building {
  font-size: 12px;
  letter-spacing: 0.18em;
  margin: 0 0 26px;
}

.scene-logo {
  filter: brightness(0) invert(1);
  height: auto;
  margin-bottom: 14px;
  object-fit: contain;
  object-position: left center;
  width: auto;
}

.scene-logo-cl { height: 48px; }
.scene-logo-covenant { height: 72px; }
.scene-logo-bliss { height: 80px; }

.hall-profile-content h3 {
  font-family: var(--cl);
  font-size: clamp(44px, 5vw, 76px);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: .95;
  margin: 0;
}

.scene-copy {
  color: rgba(255, 255, 255, 0.74);
  font-size: 16px;
  font-weight: 300;
  max-width: 420px;
  word-break: keep-all;
}

.hall-facts {
  border-bottom: 1px solid var(--line-dark);
  border-top: 1px solid var(--line-dark);
  margin: 30px 0 22px;
}

.hall-facts div { display: flex; gap: 18px; justify-content: space-between; padding: 10px 0; }
.hall-facts div + div { border-top: 1px solid var(--line-dark); }
.hall-facts dt { color: rgba(255,255,255,.58); font-size: 12px; letter-spacing: .08em; }
.hall-facts dd { font-size: 14px; margin: 0; text-align: right; }

.hall-profile-content address {
  color: rgba(255, 255, 255, 0.56);
  font-size: 13px;
  font-style: normal;
  letter-spacing: 0.08em;
  margin: 24px 0 26px;
}

.led-signature {
  align-items: center;
  background: var(--ink);
  color: white;
  display: grid;
  gap: clamp(50px, 7vw, 120px);
  grid-template-columns: minmax(290px, 0.65fr) minmax(0, 1.35fr);
  overflow: hidden;
  padding: clamp(90px, 10vw, 150px) 8vw;
}

.signature-copy { padding-right: 3vw; }
.signature-copy h2 { font-size: clamp(50px, 6vw, 88px); }

.signature-copy > p:not(.section-label) {
  color: rgba(255, 255, 255, 0.62);
  font-size: 16px;
  font-weight: 300;
  margin: 38px 0 48px;
  word-break: keep-all;
}

.signature-copy dl {
  border-bottom: 1px solid var(--line-dark);
  border-top: 1px solid var(--line-dark);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
}

.signature-copy dl div { padding: 20px 8px 20px 0; }
.signature-copy dt { color: rgba(255, 255, 255, 0.58); font-size: 12px; letter-spacing: 0.1em; }
.signature-copy dd { font-family: var(--cl); font-size: 22px; margin: 6px 0 0; }

.signature-visual {
  aspect-ratio: 16 / 10;
  margin: 0;
  max-height: 620px;
  overflow: hidden;
  position: relative;
}

.signature-visual img { object-fit: cover; }
.signature-visual::after { background: linear-gradient(90deg, rgba(17,17,15,.5), transparent 50%); content: ""; inset: 0; position: absolute; }

.signature-visual figcaption {
  bottom: 24px;
  font-size: 12px;
  left: 26px;
  letter-spacing: 0.22em;
  position: absolute;
  z-index: 3;
}

.experience {
  background: var(--porcelain);
  padding: clamp(110px, 13vw, 200px) 8vw;
}

.experience-heading {
  display: grid;
  gap: 46px;
  grid-template-columns: 0.5fr 1.25fr 0.7fr;
  margin-bottom: clamp(70px, 9vw, 130px);
}

.experience-heading .section-label { align-self: start; }
.experience-heading h2 { font-size: clamp(50px, 6.4vw, 94px); }
.experience-heading > p:last-child { align-self: end; color: var(--muted); font-size: 16px; font-weight: 300; margin: 0; word-break: keep-all; }

.editorial-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: 1.5fr 0.82fr;
  grid-template-rows: repeat(2, minmax(300px, 35vw));
}

.editorial-grid figure { margin: 0; overflow: hidden; position: relative; }
.editorial-grid img { object-fit: cover; transition: transform 1.2s ease; }
.editorial-grid figure:hover img { transform: scale(1.025); }
.editorial-main { grid-row: 1 / 3; }
.editorial-side-bottom img { object-position: 67% center; }

.editorial-grid figcaption {
  background: rgba(17, 17, 15, 0.7);
  bottom: 14px;
  color: white;
  font-size: 12px;
  left: 14px;
  letter-spacing: 0.18em;
  padding: 7px 10px;
  position: absolute;
}

.parking {
  background: var(--ink);
  color: white;
  padding: clamp(100px, 12vw, 190px) 8vw;
}

.parking-title-block {
  display: grid;
  gap: 50px;
  grid-template-columns: 0.52fr 1.2fr 0.72fr;
  margin-bottom: clamp(70px, 9vw, 130px);
}

.parking-title-block h2 { font-size: clamp(50px, 6.3vw, 92px); }
.parking-title-block > p:last-child { align-self: end; color: rgba(255,255,255,.68); font-size: 16px; font-weight: 300; margin: 0; word-break: keep-all; }

.parking-capacity {
  border-bottom: 1px solid var(--line-dark);
  border-top: 1px solid var(--line-dark);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-bottom: 30px;
}

.parking-capacity div { align-items: baseline; display: flex; gap: 18px; padding: 22px clamp(18px, 3vw, 40px); }
.parking-capacity div + div { border-left: 1px solid var(--line-dark); }
.parking-capacity b { font-family: var(--cl); font-size: clamp(32px, 4vw, 54px); font-weight: 400; }
.parking-capacity span { color: rgba(255,255,255,.68); font-size: 13px; }

.parking-cards { display: grid; gap: 18px; grid-template-columns: repeat(2, 1fr); }

.parking-card {
  display: flex;
  flex-direction: column;
  min-height: 560px;
  padding: clamp(34px, 5vw, 70px);
}

.parking-cl { background: #e9eff1; color: var(--ink); }
.parking-bridge { background: #211b18; border: 1px solid rgba(184, 155, 114, 0.52); }

.parking-brand {
  align-items: flex-end;
  display: flex;
  justify-content: space-between;
  min-height: 112px;
}

.parking-brand img { height: 100px; object-fit: contain; object-position: left bottom; width: 210px; }
.parking-bridge .parking-brand img { height: 120px; width: 180px; }
.parking-brand span { font-size: 12px; letter-spacing: 0.12em; text-align: right; }

.parking-card h3 {
  font-family: var(--myeongjo);
  font-size: clamp(38px, 4.3vw, 62px);
  font-weight: 400;
  letter-spacing: -0.04em;
  margin: 34px 0;
}

.parking-card ol { list-style: none; margin: 0; padding: 0; }

.parking-card li {
  align-items: flex-start;
  border-top: 1px solid currentColor;
  display: grid;
  gap: 18px;
  grid-template-columns: 32px 1fr;
  padding: 20px 0;
}

.parking-card li:last-child { border-bottom: 1px solid currentColor; }
.parking-card li > span { font-family: var(--cl); font-size: 15px; }
.parking-card li b { font-size: 16px; font-weight: 500; }
.parking-card li p { font-size: 14px; margin: 4px 0 0; opacity: .72; }
.parking-emphasis { color: #e3be90; }

.parking-card > a,
.parking-links a {
  border-bottom: 1px solid currentColor;
  display: flex;
  font-size: 13px;
  justify-content: space-between;
  margin-top: auto;
  padding: 14px 0 8px;
}

.parking-links { display: grid; gap: 18px; grid-template-columns: repeat(2, 1fr); margin-top: auto; }
.parking-links a { margin: 0; }
.mobile-map-links { display: none; }

.parking-warning {
  border-bottom: 1px solid var(--line-dark);
  border-top: 1px solid var(--line-dark);
  display: flex;
  font-size: 14px;
  justify-content: space-between;
  margin: 44px 0 0;
  padding: 22px 0;
}

.parking-warning b { color: #a9c5d0; font-size: 12px; letter-spacing: .12em; }

.inquiry {
  background: var(--paper);
  display: grid;
  gap: clamp(70px, 10vw, 160px);
  grid-template-columns: .72fr 1.18fr;
  padding: clamp(110px, 13vw, 200px) 8vw;
}

.inquiry-intro h2 { font-size: clamp(50px, 6vw, 90px); }
.inquiry-intro > p:not(.section-label) { color: var(--muted); font-size: 16px; font-weight: 300; margin: 38px 0; max-width: 420px; word-break: keep-all; }

.opening-date {
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  margin-top: 70px;
  padding: 22px 0;
}

.opening-date span { font-size: 12px; letter-spacing: .14em; }
.opening-date b { font-family: var(--cl); font-size: 35px; font-weight: 400; }

.inquiry-form { align-self: start; }
.form-row { display: grid; gap: 24px; grid-template-columns: repeat(2, 1fr); }
.inquiry-form label { display: flex; flex-direction: column; }
.inquiry-form label > span { font-size: 13px; letter-spacing: .03em; margin-bottom: 7px; }

.inquiry-form input,
.inquiry-form select,
.inquiry-form textarea {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  color: var(--ink);
  min-height: 54px;
  outline: none;
  padding: 10px 2px;
  width: 100%;
}

.inquiry-form textarea { resize: vertical; }
.inquiry-form input:focus, .inquiry-form select:focus, .inquiry-form textarea:focus { border-color: var(--blue); }
.form-message { margin-top: 22px; }
.honeypot { height: 0; left: -9999px; opacity: 0; overflow: hidden; position: absolute; width: 0; }

.consent-list { border-top: 1px solid var(--line); margin-top: 34px; padding-top: 20px; }
.consent-list label { align-items: flex-start; flex-direction: row; font-size: 13px; gap: 9px; margin: 10px 0; }
.consent-list label > span { letter-spacing: 0; margin: 0; }
.consent-list input { accent-color: var(--ink); flex: 0 0 auto; min-height: auto; width: auto; }
.consent-list p { color: var(--muted); font-size: 12px; margin: -4px 0 14px 24px; }

.submit-button {
  align-items: center;
  background: var(--ink);
  border: 0;
  color: white;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  margin-top: 28px;
  min-height: 64px;
  padding: 0 24px;
  transition: background 220ms ease;
  width: 100%;
}

.submit-button:hover:not(:disabled) { background: #31434b; }
.submit-button:disabled { cursor: wait; opacity: .65; }
.form-status { font-size: 13px; min-height: 24px; }
.form-status-success { color: #2f6d51; }
.form-status-error { color: #9a3c34; }

footer {
  align-items: end;
  background: var(--ink);
  color: white;
  display: grid;
  gap: 60px;
  grid-template-columns: .7fr 1.25fr .7fr;
  padding: 74px 8vw;
}

.footer-logos { display: flex; flex-direction: column; gap: 24px; }
.footer-logos img:first-child { filter: invert(1); height: 74px; object-fit: contain; object-position: left; width: 188px; }
.footer-logos img:last-child { height: auto; max-width: 170px; width: 100%; }
.footer-locations p, .footer-meta p { font-size: 12px; letter-spacing: .04em; }
.footer-locations b { display: block; font-weight: 500; letter-spacing: .14em; }
.footer-meta { color: rgba(255,255,255,.5); text-align: right; }
.footer-meta a { color: white; font-size: 14px; }

@keyframes heroWave {
  0%, 29% { opacity: 1; transform: scale(1.03); }
  36%, 94% { opacity: 0; transform: scale(1.1); }
  100% { opacity: 1; transform: scale(1.03); }
}

@keyframes heroCovenant {
  0%, 28% { opacity: 0; transform: scale(1.1); }
  36%, 61% { opacity: 1; transform: scale(1.03); }
  69%, 100% { opacity: 0; transform: scale(1.1); }
}

@keyframes heroBliss {
  0%, 60% { opacity: 0; transform: scale(1.1); }
  68%, 94% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0; transform: scale(1.1); }
}

@keyframes scrollPulse { 0%, 100% { transform: scaleY(.35); } 50% { transform: scaleY(1); } }
@media (max-width: 980px) {
  .hero-header { grid-template-columns: 1fr auto; padding: 20px 24px; }
  .hero-header p { display: none; }
  .hero-logo { height: 48px; width: 125px; }
  .hero-message { bottom: 14vh; left: 24px; right: 24px; }
  .hero h1 { font-size: clamp(52px, 13vw, 82px); }
  .hero-bottom { left: 24px; right: 24px; }
  .hero-scroll { display: none; }

  .anchor-nav { grid-template-columns: 1fr; min-height: 88px; padding: 14px 24px; }
  .anchor-brand { display: none; }
  .anchor-nav > div { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
  .anchor-nav > div::-webkit-scrollbar { display: none; }
  .anchor-nav > div a { flex: 0 0 auto; }

  .quick-rail { bottom: 0; flex-direction: row; left: 0; right: 0; top: auto; }
  .quick-rail a { flex: 1 1 50%; min-height: 60px; width: auto; }
  .quick-consult, .quick-phone { flex-direction: row !important; gap: 8px; }
  .quick-phone { border-left: 1px solid rgba(255, 255, 255, .2); }
  .quick-top { display: none !important; }

  .benefits, .brand-intro, .experience, .parking, .inquiry, .hall-stories { padding-left: 24px; padding-right: 24px; }
  .benefit-grid { grid-template-columns: 1fr; }
  .benefit-grid article + article { border-left: 0; border-top: 1px solid rgba(17,17,15,.2); }
  .event-periods { grid-template-columns: 1fr; }
  .event-periods div + div { border-left: 0; border-top: 1px solid rgba(17,17,15,.2); }

  .hall-stories-heading { grid-template-columns: 1fr; gap: 28px; }
  .hall-stories-heading > p:last-child { max-width: 560px; }
  .hall-profile, .hall-profile:nth-child(even) { grid-template-columns: 1fr; min-height: 0; }
  .hall-profile:nth-child(even) .hall-profile-media,
  .hall-profile:nth-child(even) .hall-profile-content { grid-column: auto; grid-row: auto; }
  .hall-profile-media { aspect-ratio: 4 / 3; min-height: 0; }
  .hall-profile-content { padding: 42px 34px 50px; }

  .led-signature { grid-template-columns: 1fr; padding: 90px 24px; }
  .signature-visual { aspect-ratio: 4 / 3; }

  .experience-heading, .parking-title-block, .space-naming-heading, .inquiry { grid-template-columns: 1fr; }
  .experience-heading, .parking-title-block, .space-naming-heading { gap: 28px; }
  .experience-heading > p:last-child, .parking-title-block > p:last-child, .space-naming-heading > p:last-child { max-width: 560px; }

  .space-naming { padding-left: 24px; padding-right: 24px; }
  .space-building-grid { grid-template-columns: 1fr; }
  .space-building + .space-building { border-left: 0; border-top: 1px solid var(--line); }

  .editorial-grid {
    display: flex;
    gap: 14px;
    margin-right: -24px;
    overflow-x: auto;
    padding-right: 24px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .editorial-grid::-webkit-scrollbar { display: none; }
  .editorial-grid figure { aspect-ratio: 4 / 3; flex: 0 0 min(82vw, 620px); height: auto; scroll-snap-align: start; }
  .editorial-main { grid-row: auto; }

  .parking-cards { grid-template-columns: 1fr; }
  .parking-card { min-height: 520px; }
  .mobile-map-links {
    border-top: 1px solid currentColor;
    display: block;
    margin-top: 24px;
    padding-top: 18px;
  }
  .mobile-map-links > p {
    font-size: 12px;
    letter-spacing: 0.08em;
    margin: 0 0 10px;
  }
  .mobile-map-links > div {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, 1fr);
  }
  .mobile-map-links a {
    align-items: center;
    background: rgba(255, 255, 255, 0.92);
    border: 0;
    color: var(--ink);
    display: flex;
    font-size: 13px;
    justify-content: center;
    margin: 0;
    min-height: 46px;
    padding: 10px 8px;
    text-align: center;
  }
  footer { grid-template-columns: 1fr; padding: 70px 24px 110px; }
  .footer-meta { text-align: left; }
}

@media (max-width: 560px) {
  .hero { min-height: 700px; }
  .hero-slide-wave { object-position: 58% center; }
  .hero-message { bottom: 110px; }
  .hero h1 { font-size: clamp(44px, 13vw, 58px); }
  .hero-highlights li { align-items: flex-start; flex-direction: column; gap: 3px; padding: 12px 8px 12px 0; white-space: normal; }
  .hero-highlights li + li { padding-left: 12px; }
  .hero-highlights span { font-size: 12px; }
  .hero-highlights b { font-size: clamp(18px, 5.5vw, 22px); }
  .hero-bottom span:last-child { display: none; }
  .hero-bottom { justify-content: flex-start; }
  .line-button { min-width: 220px; }

  .benefits h2, .brand-intro h2, .signature-copy h2, .experience-heading h2, .parking-title-block h2, .inquiry-intro h2 { word-break: keep-all; }
  .benefits-lead br, .brand-intro > p:last-child br { display: none; }
  .benefit-grid article { padding-left: 0; padding-right: 0; }

  .hall-profile-content { padding: 34px 24px 42px; }
  .hall-profile-content h3 { font-size: clamp(42px, 13vw, 62px); }
  .scene-logo-cl { height: 38px; }
  .scene-logo-covenant { height: 55px; }
  .scene-logo-bliss { height: 62px; }

  .signature-copy dl { grid-template-columns: repeat(2, 1fr); }
  .signature-copy dl div:last-child { grid-column: 1 / 3; }

  .parking-capacity { grid-template-columns: 1fr; }
  .parking-capacity div + div { border-left: 0; border-top: 1px solid var(--line-dark); }
  .parking-card { min-height: 0; padding: 32px 22px; }
  .parking-brand { align-items: flex-start; flex-direction: column; gap: 18px; }
  .parking-brand img { height: 80px; width: 180px; }
  .parking-bridge .parking-brand img { height: 100px; width: 150px; }
  .parking-brand span { text-align: left; }
  .parking-links { grid-template-columns: 1fr; }
  .parking-warning { align-items: flex-start; flex-direction: column; gap: 10px; word-break: keep-all; }

  .form-row { grid-template-columns: 1fr; }

  .space-building { padding-left: 0; padding-right: 0; }
  .space-list li { grid-template-columns: 1fr; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .hero-slide-wave { opacity: 1; }
  .hero-slide-covenant, .hero-slide-bliss { display: none; }
}


/* Fluent Forms ID 3 · CL Convention visual integration */
.cl-fluent-form { align-self: start; min-width: 0; }

.cl-convention-landing .cl-fluent-form .frm-fluent-form fieldset {
  border: 0;
  display: grid;
  gap: 0 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  min-width: 0;
  padding: 0;
}

.cl-convention-landing .cl-fluent-form .ff-el-group {
  margin: 0 0 24px;
  min-width: 0;
}

.cl-convention-landing .cl-fluent-form .ff-el-group:has([name^="desired_date"]),
.cl-convention-landing .cl-fluent-form .ff-el-group:has([name^="message"]),
.cl-convention-landing .cl-fluent-form .ff-el-group:has([name^="privacy_consent"]),
.cl-convention-landing .cl-fluent-form .ff-el-group:has([name^="marketing_consent"]),
.cl-convention-landing .cl-fluent-form .ff-custom_html,
.cl-convention-landing .cl-fluent-form .ff_submit_btn_wrapper,
.cl-convention-landing .cl-fluent-form .ff-message-success,
.cl-convention-landing .cl-fluent-form .ff-errors-in-stack {
  grid-column: 1 / -1;
}

.cl-convention-landing .cl-fluent-form .ff-el-input--label { margin: 0; }

.cl-convention-landing .cl-fluent-form .ff-el-input--label label,
.cl-convention-landing .cl-fluent-form .ff-el-input--label {
  color: var(--ink);
  font-family: var(--gothic);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .03em;
  line-height: 1.7;
}

.cl-convention-landing .cl-fluent-form .ff-el-form-control {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
  color: var(--ink);
  font-family: var(--gothic);
  font-size: 16px;
  min-height: 54px;
  outline: none;
  padding: 10px 2px;
  transition: border-color 180ms ease;
  width: 100%;
}

.cl-convention-landing .cl-fluent-form textarea.ff-el-form-control {
  background: rgba(255, 255, 255, .38);
  border: 1px solid var(--line);
  min-height: 116px;
  padding: 13px 14px;
  resize: vertical;
}

.cl-convention-landing .cl-fluent-form .ff-el-form-control:focus {
  background: transparent;
  border-color: var(--blue);
  box-shadow: none;
}

.cl-convention-landing .cl-fluent-form .ff-el-form-control::placeholder {
  color: #8a8a84;
  opacity: 1;
}

.cl-convention-landing .cl-fluent-form .ff-el-group:has([name^="privacy_consent"]) {
  border-top: 1px solid var(--line);
  margin-bottom: 0;
  padding-top: 20px;
}

.cl-convention-landing .cl-fluent-form .ff-el-group:has([name^="marketing_consent"]) { margin-bottom: 10px; }
.cl-convention-landing .cl-fluent-form .ff-el-form-check { margin: 8px 0; }

.cl-convention-landing .cl-fluent-form .ff-el-form-check-label {
  align-items: flex-start;
  color: var(--ink);
  display: flex;
  font-size: 13px;
  gap: 9px;
  line-height: 1.65;
}

.cl-convention-landing .cl-fluent-form .ff-el-form-check-input {
  accent-color: var(--ink);
  flex: 0 0 auto;
  height: 16px;
  margin: 3px 0 0;
  width: 16px;
}

.cl-convention-landing .cl-fluent-form .ff-el-help-message {
  color: var(--muted);
  display: block;
  font-size: 12px;
  line-height: 1.65;
  margin: 4px 0 0 25px;
  white-space: pre-line;
}

.cl-convention-landing .cl-fluent-form .ff-custom_html {
  color: var(--muted);
  margin: -14px 0 22px;
  padding-left: 25px;
}

.cl-convention-landing .cl-fluent-form .ff-custom_html p {
  color: inherit;
  font-family: var(--gothic);
  font-size: 12px;
  line-height: 1.75;
  margin: 0;
}

.cl-convention-landing .cl-fluent-form .ff-btn-submit {
  align-items: center;
  background: var(--ink) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: white !important;
  cursor: pointer;
  display: flex !important;
  font-family: var(--gothic);
  font-size: 15px !important;
  font-weight: 400;
  justify-content: space-between;
  margin: 4px 0 0;
  min-height: 64px;
  padding: 0 24px;
  transition: background 220ms ease;
  width: 100%;
}

.cl-convention-landing .cl-fluent-form .ff-btn-submit::after { content: "↗"; }

.cl-convention-landing .cl-fluent-form .ff-btn-submit:hover,
.cl-convention-landing .cl-fluent-form .ff-btn-submit:focus {
  background: #31434b !important;
  color: white !important;
  opacity: 1;
}

.cl-convention-landing .cl-fluent-form .text-danger,
.cl-convention-landing .cl-fluent-form .error {
  color: #9a3c34;
  font-size: 12px;
}

.cl-convention-landing .cl-fluent-form .ff-message-success {
  background: rgba(47, 109, 81, .08);
  border: 1px solid rgba(47, 109, 81, .3);
  box-shadow: none;
  color: #2f6d51;
  font-size: 14px;
  margin: 18px 0 0;
  padding: 16px 18px;
}

.cl-form-admin-notice {
  border: 1px solid #9a3c34;
  color: #9a3c34;
  padding: 16px;
}

@media (max-width: 560px) {
  .cl-convention-landing .cl-fluent-form .frm-fluent-form fieldset { grid-template-columns: 1fr; }
  .cl-convention-landing .cl-fluent-form .ff-el-group,
  .cl-convention-landing .cl-fluent-form .ff_submit_btn_wrapper { grid-column: 1; }

  .cl-convention-landing .cl-fluent-form .ff-el-group { margin-bottom: 18px; }

  .cl-convention-landing .cl-fluent-form textarea.ff-el-form-control {
    height: 96px;
    min-height: 96px;
    max-height: 160px;
  }

  .cl-convention-landing .cl-fluent-form .ff-el-form-check-label {
    font-size: 12.5px;
    gap: 10px;
    line-height: 1.6;
  }

  .cl-convention-landing .cl-fluent-form .ff-el-form-check-input {
    height: 18px;
    margin-top: 1px;
    width: 18px;
  }

  .cl-convention-landing .cl-fluent-form .ff-custom_html {
    margin: -8px 0 20px;
    padding-left: 28px;
  }

  .cl-convention-landing .cl-fluent-form .ff-custom_html p {
    font-size: 11.5px;
    line-height: 1.7;
  }

  .cl-convention-landing .cl-fluent-form .ff-btn-submit {
    min-height: 58px;
    padding: 0 20px;
  }
}