/* A案の追加セクション。既存CSSの後に読み込む。外部依存・追加フォントなし。 */
.nx-section {
  --nx-pink: #e83d87;
  --nx-pink-dark: #b72665;
  --nx-pink-text: #c8266d;
  --nx-blue: #0086d9;
  --nx-ink: #10182e;
  --nx-muted: #60758b;
  --nx-marker: #ee4b94;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 32px 0 27px;
  background: #fff;
  color: var(--nx-ink);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  text-align: center;
  letter-spacing: .015em;
  -webkit-font-smoothing: antialiased;
}
.nx-section *, .nx-section *::before, .nx-section *::after { box-sizing: border-box; }
.nx-section h2, .nx-section h3, .nx-section p { margin: 0; padding: 0; color: inherit; }
.nx-section ul { margin: 0; padding: 0; list-style: none; }
.nx-section li { margin: 0; padding: 0; list-style: none; }
.nx-section img { display: block; max-width: 100%; border: 0; box-shadow: none; }
.nx-container { width: calc(100% - 80px); max-width: 1120px; margin: 0 auto; }
.nx-section .nx-organizer { font-size: 11px; font-weight: 600; color: #576b81; letter-spacing: .13em; }
.nx-section .nx-city { font-size: 20px; font-weight: 900; color: var(--nx-blue); letter-spacing: .15em; line-height: 1.25; margin-top: 8px; }
.nx-event-line { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 4px; }
.nx-section .nx-event-title { font-size: 44px; font-weight: 900; line-height: 1.35; letter-spacing: -.03em; border-bottom: 4px solid var(--nx-marker); padding: 0 5px; transform: skew(-5deg); }
.nx-event-year { font-size: 35px; font-weight: 900; color: var(--nx-blue); letter-spacing: -.03em; }
.nx-section .nx-headline { font-size: 26px; font-weight: 900; line-height: 1.6; margin-top: 10px; }
.nx-headline-number { font-size: 45px; color: var(--nx-blue); letter-spacing: -.05em; margin: 0 2px; }
.nx-headline-unit { color: var(--nx-blue); }
.nx-integrated { margin-top: 9px; }
.nx-section .nx-integrated-title { font-size: 20px; font-weight: 800; line-height: 1.7; }
.nx-section .nx-reassurance { font-size: 12px; line-height: 1.8; color: var(--nx-muted); margin-top: 3px; }
.nx-reassurance-emphasis { font-weight: 800; color: var(--nx-pink-text); }
.nx-mobile-break { display: none; }
.nx-section .nx-theme-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 12px; margin-top: 18px; align-items: start; }
.nx-theme { min-width: 0; }
.nx-theme-art { aspect-ratio: 2 / 1; width: 100%; display: flex; align-items: flex-end; justify-content: center; }
.nx-theme-image { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; }
.nx-section .nx-theme-title { font-size: 16px; font-weight: 800; line-height: 1.7; letter-spacing: -.015em; margin-top: 10px; }
.nx-theme-line { display: block; }
.nx-section .nx-theme-field { font-size: 9px; line-height: 1.8; color: var(--nx-muted); margin-top: 6px; }
.nx-participants { margin-top: 23px; }
.nx-section .nx-participants-title { font-size: 10px; font-weight: 500; letter-spacing: .1em; color: var(--nx-muted); margin-bottom: 15px; }
.nx-company-layout { display: grid; grid-template-columns: minmax(0, .58fr) minmax(0, 1fr); gap: 32px; align-items: center; }
.nx-featured { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; padding: 5px 0; }
.nx-section .nx-featured-label { font-size: 10px; font-weight: 700; letter-spacing: .15em; color: var(--nx-blue); }
.nx-featured-logo { width: 100%; aspect-ratio: 2.65 / 1; display: flex; align-items: center; justify-content: center; margin: 22px 0 20px; }
.nx-featured-logo-image { width: 100%; height: auto; max-height: 160px; object-fit: contain; }
.nx-section .nx-featured-name { font-size: 27px; font-weight: 900; line-height: 1.6; }
.nx-section .nx-featured-description { font-size: 12px; color: var(--nx-muted); line-height: 1.8; margin-top: 2px; }
.nx-featured-controls { display: flex; align-items: center; justify-content: center; gap: 17px; margin-top: 13px; }
.nx-featured-count { font-size: 11px; letter-spacing: .1em; color: var(--nx-muted); }
.nx-company-arrow { appearance: none; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; font: inherit; font-size: 26px; line-height: 1; color: var(--nx-blue); cursor: pointer; }
.nx-company-arrow:disabled { opacity: .55; cursor: default; }
.nx-company-arrow:focus-visible { outline: 3px solid var(--nx-blue); outline-offset: 2px; border-radius: 5px; }
.nx-section .nx-featured-note { font-size: 9px; line-height: 1.7; color: #7b8c9d; margin-top: 3px; }
.nx-section .nx-logo-wall { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 19px; row-gap: 9px; width: 100%; align-items: start; }
.nx-section .nx-company { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 5px; min-width: 0; border: 0; background: none; box-shadow: none; }
.nx-company-logo { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 2.65 / 1; }
.nx-company-logo-image { max-width: 100%; max-height: 52px; width: auto; height: auto; object-fit: contain; }
.nx-section .nx-company-name { font-size: 8px; font-weight: 400; line-height: 1.55; color: #586b7e; letter-spacing: 0; min-height: 25px; width: 100%; overflow-wrap: anywhere; }
.nx-section .nx-company.nx-is-selected .nx-company-name { color: var(--nx-blue); font-weight: 800; text-decoration: underline; text-decoration-color: var(--nx-marker); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.nx-signup { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.35fr) minmax(0, .95fr); grid-template-areas: "date benefit venue"; align-items: center; gap: 18px; margin-top: 26px; padding: 25px 18px; background: linear-gradient(110deg, #f0f8fd 0%, #fdf7fa 56%, #f0f8fd 100%); }
.nx-datetime { grid-area: date; min-width: 0; }
.nx-benefit { grid-area: benefit; min-width: 0; }
.nx-location { grid-area: venue; min-width: 0; }
.nx-section .nx-column-label { font-size: 10px; font-weight: 700; line-height: 1.6; color: #557188; letter-spacing: .14em; }
.nx-section .nx-date-year { font-size: 12px; line-height: 1.6; color: var(--nx-muted); margin-top: 3px; }
.nx-section .nx-date { display: flex; align-items: baseline; justify-content: center; gap: 3px; font-size: clamp(38px, 4.667vw, 56px); font-weight: 900; line-height: 1.13; letter-spacing: -.035em; margin-top: 1px; }
.nx-date-value { white-space: nowrap; }
.nx-weekday { font-size: 19px; letter-spacing: 0; white-space: nowrap; }
.nx-section .nx-time { font-size: clamp(19px, 2.084vw, 25px); line-height: 1.6; font-weight: 800; letter-spacing: 0; margin-top: 5px; white-space: nowrap; }
.nx-free { display: inline-block; color: var(--nx-pink); font-size: 12px; font-weight: 800; border: 1px solid var(--nx-pink); padding: 1px 15px; border-radius: 20px; background: #fff; margin-top: 7px; }
.nx-section .nx-ease-desktop { font-size: 9px; line-height: 1.8; color: var(--nx-muted); margin-top: 8px; }
.nx-ease-mobile { display: none; }
.nx-section .nx-booking-title { font-size: clamp(18px, 2vw, 24px); font-weight: 900; line-height: 1.45; color: var(--nx-pink-text); margin-bottom: 5px; }
.nx-booking-title::before, .nx-booking-title::after { content: "／"; font-size: 19px; display: inline-block; margin: 0 7px; color: #de458c; }
.nx-booking-title::after { transform: scaleX(-1); }
.nx-section .nx-booking-pre { font-size: 13px; font-weight: 800; line-height: 1.75; }
.nx-section .nx-gift { font-size: clamp(17px, 1.917vw, 23px); font-weight: 900; line-height: 1.65; letter-spacing: -.025em; margin-top: 3px; }
.nx-gift-extra { font-size: 11px; font-weight: 700; }
.nx-gift-highlight { color: var(--nx-pink); font-size: clamp(19px, 2.25vw, 27px); }
.nx-section .nx-booking-button { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; margin-top: 11px; padding: 20px 12px; background: var(--nx-pink); color: #fff; border: 0; border-radius: 8px; box-shadow: 0 5px 0 var(--nx-pink-dark), 0 8px 18px #cc32742b; text-decoration: none; font-family: inherit; font-weight: 900; line-height: 1.5; cursor: pointer; }
.nx-button-free { display: inline-block; flex-shrink: 0; color: var(--nx-pink-text); background: #fff; border-radius: 5px; padding: 5px 9px; font-size: 14px; font-weight: 900; line-height: 1.5; }
.nx-button-text { font-size: clamp(18px, 1.917vw, 23px); font-weight: 900; white-space: nowrap; }
.nx-button-arrow { font-size: 27px; font-weight: 600; line-height: 1; flex-shrink: 0; }
.nx-section .nx-booking-button:hover { background: #d83278; color: #fff; }
.nx-section .nx-booking-button:focus-visible { outline: 3px solid var(--nx-blue); outline-offset: 5px; }
.nx-section .nx-button-guide { font-size: 11px; font-weight: 700; line-height: 1.7; color: #536277; margin-top: 13px; }
.nx-section .nx-button-reassurance { font-size: 9px; color: #758196; line-height: 1.7; margin-top: 2px; }
.nx-section .nx-gift-note { font-size: 7.5px; color: #758196; line-height: 1.7; margin-top: 7px; }
.nx-section .nx-access { font-size: 22px; font-weight: 900; color: var(--nx-blue); line-height: 1.5; letter-spacing: 0; margin-top: 5px; }
.nx-section .nx-access-note { font-size: 10px; color: var(--nx-muted); line-height: 1.8; margin-top: 1px; }
.nx-section .nx-venue { font-size: 24px; font-weight: 900; line-height: 1.5; letter-spacing: 0; margin-top: 7px; }
.nx-section .nx-hall { font-size: 19px; font-weight: 800; line-height: 1.7; margin-top: 1px; }
.nx-section .nx-address { font-size: 8px; color: var(--nx-muted); line-height: 1.8; margin-top: 5px; }

@media (max-width: 767px) {
  .nx-section { padding: 27px 0 30px; }
  .nx-container { width: calc(100% - 32px); max-width: 430px; }
  .nx-section .nx-organizer { font-size: 10px; letter-spacing: .07em; }
  .nx-section .nx-city { font-size: 18px; letter-spacing: .12em; }
  .nx-event-line { gap: 8px; margin-top: 3px; }
  .nx-section .nx-event-title { font-size: clamp(23px, 7.44vw, 29px); line-height: 1.5; letter-spacing: -.05em; border-bottom-width: 3px; padding: 0 3px; transform: skew(-4deg); }
  .nx-event-year { font-size: clamp(21px, 6.41vw, 25px); letter-spacing: -.04em; }
  .nx-section .nx-headline { font-size: clamp(17px, 5.13vw, 20px); letter-spacing: -.035em; margin-top: 16px; }
  .nx-headline-number { font-size: 38px; margin: 0 1px; }
  .nx-integrated { margin-top: 13px; }
  .nx-section .nx-integrated-title { font-size: 16px; line-height: 1.65; }
  .nx-mobile-break { display: block; }
  .nx-section .nx-reassurance { font-size: 10px; margin-top: 7px; }
  .nx-section .nx-theme-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 9px; row-gap: 17px; margin-top: 20px; }
  .nx-section .nx-theme:last-child { grid-column: 1 / -1; width: calc(50% - 4.5px); justify-self: center; }
  .nx-theme-art { aspect-ratio: 2 / 1; }
  .nx-section .nx-theme-title { font-size: clamp(11px, 3.333vw, 13px); line-height: 1.7; margin-top: 7px; }
  .nx-section .nx-theme-field { font-size: 8px; line-height: 1.7; margin-top: 4px; }
  .nx-participants { margin-top: 23px; }
  .nx-section .nx-participants-title { font-size: 10px; letter-spacing: .04em; margin-bottom: 14px; }
  .nx-company-layout { display: flex; flex-direction: column; gap: 21px; }
  .nx-featured { width: 100%; padding: 0 5px; }
  .nx-section .nx-featured-label { font-size: 8px; letter-spacing: .13em; }
  .nx-featured-logo { width: 100%; max-width: 330px; aspect-ratio: auto; margin: 13px auto 11px; }
  .nx-featured-logo-image { max-height: 112px; }
  .nx-section .nx-featured-name { font-size: 20px; line-height: 1.5; }
  .nx-section .nx-featured-description { font-size: 10px; line-height: 1.7; margin-top: 3px; }
  .nx-featured-controls { gap: 17px; margin-top: 5px; }
  .nx-featured-count { font-size: 10px; letter-spacing: .12em; }
  .nx-section .nx-featured-note { font-size: 9px; margin-top: 1px; }
  .nx-section .nx-logo-wall { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 8px; row-gap: 14px; }
  .nx-company-logo { aspect-ratio: 2.35 / 1; }
  .nx-company-logo-image { max-height: 40px; }
  .nx-section .nx-company-name { font-size: 8.5px; line-height: 1.55; letter-spacing: -.01em; min-height: 39px; color: #647280; }
  .nx-section .nx-company.nx-is-selected .nx-company-name { font-weight: 700; text-underline-offset: 3px; text-decoration-thickness: 1px; }
  .nx-signup { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "date venue" "ease ease" "benefit benefit"; align-items: start; column-gap: 12px; row-gap: 0; margin-top: 25px; padding: 20px 13px 19px; background: linear-gradient(120deg, #f0f8fd 0%, #fdf5f9 100%); }
  .nx-section .nx-column-label { font-size: 9px; letter-spacing: .05em; }
  .nx-section .nx-date-year { font-size: 10px; margin-top: 4px; }
  .nx-section .nx-date { font-size: clamp(35px, 11.03vw, 43px); line-height: 1.2; letter-spacing: -.05em; margin-top: 2px; gap: 2px; }
  .nx-weekday { font-size: 13px; }
  .nx-section .nx-time { font-size: clamp(14px, 4.359vw, 17px); line-height: 1.6; letter-spacing: -.03em; margin-top: 4px; }
  .nx-free { font-size: 10px; padding: 2px 10px; line-height: 1.5; margin-top: 5px; }
  .nx-section .nx-ease-desktop { display: none; }
  .nx-section .nx-ease-mobile { display: block; grid-area: ease; font-size: 10px; line-height: 1.7; color: var(--nx-muted); margin-top: 10px; }
  .nx-section .nx-access { font-size: clamp(14px, 4.103vw, 16px); letter-spacing: -.01em; margin-top: 5px; }
  .nx-section .nx-access-note { font-size: 8px; line-height: 1.7; margin-top: 2px; }
  .nx-section .nx-venue { font-size: 15px; line-height: 1.6; letter-spacing: -.025em; margin-top: 6px; }
  .nx-section .nx-hall { font-size: 12px; line-height: 1.5; margin-top: 3px; }
  .nx-section .nx-address { font-size: 7.5px; line-height: 1.7; }
  .nx-benefit { margin-top: 18px; padding-top: 17px; border-top: 1px solid #e4d9e3; }
  .nx-section .nx-booking-title { font-size: 22px; line-height: 1.5; margin-bottom: 4px; }
  .nx-booking-title::before, .nx-booking-title::after { font-size: 16px; margin: 0 5px; }
  .nx-section .nx-booking-pre { font-size: 12px; line-height: 1.7; }
  .nx-section .nx-gift { font-size: clamp(16px, 4.615vw, 18px); margin-top: 3px; }
  .nx-gift-extra { font-size: 10px; }
  .nx-gift-highlight { font-size: clamp(20px, 5.897vw, 23px); }
  .nx-section .nx-booking-button { padding: 17px 9px; gap: 10px; box-shadow: 0 4px 0 var(--nx-pink-dark), 0 6px 15px #cc327426; }
  .nx-button-free { font-size: 13px; padding: 4px 8px; line-height: 1.6; }
  .nx-button-text { font-size: clamp(20px, 5.897vw, 23px); }
  .nx-button-arrow { font-size: 25px; }
  .nx-section .nx-button-guide { font-size: 10px; line-height: 1.8; margin-top: 11px; }
  .nx-section .nx-button-reassurance { font-size: 9px; line-height: 1.8; margin-top: 1px; }
  .nx-section .nx-gift-note { font-size: 8px; line-height: 1.8; margin-top: 8px; }
}
