/* /party/ — Modern Noir extension.
   Reuses home-v4 tokens, navigation, buttons, typography and CTA components.
   All overrides are opt-in through .page-party. The home page is unchanged. */
.page-party {
  --party-photo-line:rgba(208,176,121,.38);
  --party-panel:#1b211b;
  --party-gap:24px;
}
.page-party .section-head {padding-right:0; max-width:960px;}
.page-party .sec-title {text-wrap:pretty;}
.page-party .party-breadcrumb {background:#121613; border-bottom:1px solid #c4a96c13;}
.page-party .breadcrumb {color:#b7bea9; font-size:11px; line-height:1.7; padding:19px 0; display:flex; flex-wrap:wrap; gap:4px;}
.page-party .breadcrumb a {color:#d0b079; border:0;}
.page-party .breadcrumb .sep {color:#a99870; margin-inline:8px;}
.page-party .breadcrumb [aria-current] {max-width:100%;}
.page-party .party-hero {padding:58px 0 0;}
.page-party .party-hero::before {background:radial-gradient(ellipse at 75% 40%,#c1a46a15,transparent 64%);}
.page-party .party-hero-grid {display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; z-index:1;}
.page-party .party-hero-copy {padding:0 0 24px;}
.page-party .party-hero .hero-eyebrow {font-size:11px; margin-bottom:24px;}
.page-party .party-hero h1 {font-size:clamp(34px,3.7vw,52px); line-height:1.45; letter-spacing:-.025em; text-wrap:wrap; margin-bottom:23px;}
.page-party .party-h1-prefix {display:block; font-family:var(--font-sans); color:#d0b079; font-size:15px; letter-spacing:.12em; margin-bottom:15px; font-weight:400;}
.page-party .party-h1-last {display:block; color:#e4c894;}
.page-party .party-hero .lead {font-size:14px; line-height:2.05; margin-bottom:24px; max-width:40em;}
.page-party .party-facts {display:grid; grid-template-columns:1fr 1fr; gap:0; border-block:1px solid var(--v4-hairline); margin:0 0 28px;}
.page-party .party-facts li {font-size:12px; color:#dedccc; line-height:1.9; padding:13px 12px 13px 0;}
.page-party .party-facts li:nth-child(2n) {border-left:1px solid var(--v4-hairline); padding-left:18px; padding-right:0;}
.page-party .party-facts li:nth-child(-n+2) {border-bottom:1px solid var(--v4-hairline);}
.page-party .party-facts li:last-child {color:#e5c590;}
.page-party .party-hero .hero-actions {display:flex; width:auto; gap:12px; flex-wrap:wrap;}
.page-party .party-hero .hero-actions .btn {font-size:12px; padding:17px 20px;}
.page-party .party-hero .hero-actions .btn-accent {min-width:148px;}
.page-party .party-hero-visual {position:relative; padding-right:40px; padding-bottom:56px; margin-top:0;}
.page-party .party-image-label,.page-party .party-visual-baseline {font:11px/1.8 var(--v4-mono); letter-spacing:.04em; color:#c9b991; display:flex; gap:12px; justify-content:space-between;}
.page-party .party-image-label {padding:0 0 14px;}
.page-party .party-hero-photo {margin:0; border:1px solid var(--party-photo-line); position:relative; padding:7px; background:#1d221b;}
.page-party .party-hero-photo::after {content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 30px #0003;}
.page-party .party-hero-photo img {width:100%; height:auto; aspect-ratio:1; object-fit:cover;}
.page-party .party-tower-photo {position:absolute; width:34%; right:0; bottom:74px; margin:0; border:1px solid #d0b07985; background:#141913; padding:7px; box-shadow:0 15px 32px #0004;}
.page-party .party-tower-photo img {width:100%; height:auto;}
.page-party .party-visual-baseline {padding-top:13px; flex-wrap:wrap; padding-right:80px;}
.page-party .party-visual-baseline span:last-child {font-size:11px;}
.page-party .party-hero-rule {border-top:1px solid var(--v4-hairline); padding:22px 0; margin-top:25px; font:11px/1.6 var(--v4-mono); letter-spacing:.08em; color:#aeb69e; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px;}
/* Six names, six bespoke illustrations. No supporting copy beyond the manuscript. */
.page-party .party-services {background:var(--cream);}
.page-party .party-service-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line);}
.page-party .party-service {position:relative; padding:20px 28px 28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:linear-gradient(130deg,#fffdf629,transparent);}
.page-party .party-service:nth-child(3n) {border-right:0;}
.page-party .party-service:nth-child(n+4) {border-bottom:0;}
.page-party .party-service img {width:220px; height:auto; margin:0 auto 5px;}
.page-party .party-index {position:absolute; top:26px; left:26px; font:11px var(--v4-mono); color:var(--brass-deep);}
.page-party .party-service h3 {font-size:20px; font-weight:500; text-align:center; letter-spacing:.01em; line-height:1.7;}
/* Comparison is semantic and horizontally scrollable within this single region. */
.page-party .party-comparison {background:#191f19; border-block:1px solid #b99b6538; background-image:repeating-linear-gradient(90deg,transparent 0,transparent 159px,#b99b6508 159px,#b99b6508 160px);}
.page-party .party-comparison .section-head {max-width:830px;}
.page-party .table-scroll {width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; border:1px solid var(--line); scrollbar-color:#a58b56 #eae5d8; scrollbar-width:thin;}
.page-party .table-scroll:focus-visible {outline:3px solid #ac853f; outline-offset:4px;}
.page-party .party-compare-scroll {border-color:#515942; scrollbar-color:#b69b64 #20291d;}
.page-party .party-compare-table {min-width:600px; table-layout:fixed;}
.page-party .party-compare-table th,.page-party .party-compare-table td {padding:22px 28px; border-bottom:1px solid #485039; line-height:1.8;}
.page-party .party-compare-table thead th {font-size:13px; color:#c5cebb; font-weight:500; text-align:center;}
.page-party .party-compare-table thead th:first-child {width:42%; text-align:left;}
.page-party .party-compare-table tbody th {font-size:14px; color:#e3e6da; text-align:left; font-weight:400;}
.page-party .party-compare-table td {font:22px/1.5 var(--font-sans); text-align:center; color:#c6cebb;}
.page-party .party-compare-table th:last-child,.page-party .party-compare-table td:last-child {background:#bba06610; color:#ebcb91; border-left:1px solid #b69b6440;}
.page-party .party-compare-table tbody tr:last-child>* {border-bottom:0;}
/* Two equal, readable plan panels with an understated campaign emphasis. */
.page-party .party-plans {background:#eae6db;}
.page-party .party-plans > .wrap > .sec-eyebrow {margin-bottom:30px;}
.page-party .party-plan-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; align-items:stretch;}
.page-party .party-plan {padding:38px; background:var(--paper); border:1px solid #d0c8b5; position:relative; display:flex; flex-direction:column;}
.page-party .party-plan-partner {border-top:3px solid #b99b65;}
.page-party .party-plan-label {font:11px/1.6 var(--v4-mono); color:var(--brass-deep); letter-spacing:.09em; margin-bottom:20px;}
.page-party .party-plan h2 {font-size:28px; font-weight:500; line-height:1.6; margin-bottom:26px;}
.page-party .party-plan-details {margin:0;}
.page-party .party-plan-details > div {margin-bottom:20px;}
.page-party .party-plan-details dt {font-size:11px; color:var(--brass-deep); margin-bottom:7px;}
.page-party .party-plan-details dd {font-size:14px; line-height:2; margin:0; color:#555d4e;}
.page-party .party-fee {padding:25px 0 28px; margin:0 0 26px; border-block:1px solid var(--line);}
.page-party .party-fee-label {font-size:11px; color:var(--brass-deep); margin-bottom:14px;}
.page-party .party-fee p {display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; line-height:1.6;}
.page-party .party-fee-before {font-size:14px; color:var(--muted);}
.page-party .party-fee-regular {text-decoration:line-through; text-decoration-thickness:1px; font-family:var(--font-num); font-size:24px;}
.page-party .party-fee-arrow {color:var(--brass); font-size:23px;}
.page-party .party-fee-after {display:flex; flex-direction:column; color:#36513b;}
.page-party .party-fee-after > span {font-size:12px;}
.page-party .party-fee-after strong {font-family:var(--font-mincho); font-size:51px; font-weight:500; line-height:1.3;}
.page-party .party-plan-action {margin-top:auto; padding-top:22px;}
.page-party .party-plan-action .btn {width:100%; font-size:13px; padding:19px 16px;}
.page-party .party-booking-list {margin:0 0 24px;}
.page-party .party-booking-list li {position:relative; padding:0 0 13px 20px; font-size:14px; line-height:1.95; color:#555d4e;}
.page-party .party-booking-list li::before {content:""; position:absolute; left:0; top:13px; width:7px; height:1px; background:#a58b56;}
.page-party .party-limo-photo {margin:0 0 24px;}
.page-party .party-limo-photo img {width:100%; height:auto; aspect-ratio:2; object-fit:cover; object-position:50% 55%; border:1px solid #c9c0ab;}
.page-party .party-price {display:flex; gap:20px; align-items:baseline; justify-content:space-between; border-top:1px solid var(--line); padding-top:20px; margin-bottom:0;}
.page-party .party-price dt {font-size:12px; color:var(--muted);}
.page-party .party-price dd {font-family:var(--font-mincho); font-size:25px; color:var(--ink); margin:0;}
/* Eight photographs give visual proof; the data remains in a real HTML table. */
.page-party .party-venues {background:var(--paper);}
.page-party .party-venues .section-head {max-width:1000px;}
.page-party .party-venue-grid {display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px 24px; margin-bottom:52px;}
.page-party .party-venue {display:flex; flex-direction:column; min-width:0;}
.page-party .party-venue-photo {position:relative; overflow:hidden; background:#1b211b; border:1px solid #d0c7b4;}
.page-party .party-venue-photo img {width:100%; height:auto; aspect-ratio:1.25; object-fit:cover; transition:transform .45s var(--ease);}
.page-party .party-venue-number {position:absolute; top:10px; left:10px; padding:5px 8px; background:#121613dd; color:#ecd09a; font:11px/1.5 var(--v4-mono); border:1px solid #b69b6470;}
.page-party .party-venue-caption {position:relative; border-bottom:1px solid var(--line); padding:18px 0 20px; flex:1;}
.page-party .party-venue-area {font-size:11px; color:var(--brass-deep);}
.page-party .party-venue h3 {font-size:17px; font-weight:500; line-height:1.7; margin-top:5px; overflow-wrap:anywhere; word-break:normal;}
.page-party .party-partner-badge {display:block; color:#74592e; font:11px/1.8 var(--font-sans); padding-top:4px;}
.page-party .party-venue:hover img {transform:scale(1.025);}
.page-party .party-table-topline {font:11px/1.7 var(--v4-mono); letter-spacing:.06em; color:var(--brass-deep); margin-bottom:16px; display:flex; justify-content:space-between; gap:16px;}
.page-party .party-venue-table {min-width:0; width:100%; table-layout:auto;}
.page-party .party-venue-table th,.page-party .party-venue-table td {padding:22px 16px; border-bottom:1px solid var(--line); font-size:12px; line-height:1.9; color:#454d40; text-align:left; vertical-align:top;}
.page-party .party-venue-table thead th {font-size:11px; font-weight:500; background:#eae6da; color:#555340;}
.page-party .party-venue-table thead th:nth-child(1) {width:220px;}
.page-party .party-venue-table thead th:nth-child(2) {width:80px;}
.page-party .party-venue-table thead th:nth-child(3) {width:205px;}
.page-party .party-venue-table thead th:nth-child(4),.page-party .party-venue-table thead th:nth-child(5) {width:65px;}
.page-party .party-venue-table thead th:nth-child(6) {width:200px;}
.page-party .party-venue-table tbody th {font-size:13px; font-weight:500; background:#f6f3e9;}
.page-party .party-venue-table tr>:first-child {position:sticky; left:0; z-index:1; border-right:1px solid var(--line);}
.page-party .party-venue-table tbody tr:nth-child(even) {background:#f0ede51f;}
.page-party .party-venue-table tbody tr:last-child>* {border-bottom:0;}
.page-party [id^="venue-"] {scroll-margin-top:110px;}
.page-party .party-venue-table tr:target>* {background:#eee4cc;}
/* A visible ordered process, followed by fully expanded source-matched FAQ. */
.page-party .party-process {background:#161c17; background-image:radial-gradient(ellipse at 82% 10%,#b99b650d,transparent 60%); border-block:1px solid #b99b653a;}
.page-party .party-process .sec-title {font-size:clamp(25px,2.8vw,38px);}
.page-party .party-steps {display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid #b99b6560;}
.page-party .party-steps li {position:relative; padding:30px 24px 10px 0;}
.page-party .party-steps li::before {content:""; width:6px; height:6px; background:#d0b079; position:absolute; top:-3px; left:0; transform:rotate(45deg);}
.page-party .party-step-index {display:block; color:#d0b079; font:20px/1.2 var(--font-num); margin-bottom:25px;}
.page-party .party-steps h3 {font-family:var(--font-mincho); font-size:20px; font-weight:500; color:#f2f1e4; margin-bottom:14px; line-height:1.6;}
.page-party .party-steps p {color:#bcc6b3; font-size:13px; line-height:1.95; max-width:19em;}
.page-party .party-faq {background:var(--cream);}
.page-party .party-faq > .wrap {display:grid; grid-template-columns:300px minmax(0,1fr); gap:70px;}
.page-party .party-faq .section-head {margin:0;}
.page-party .party-faq-item {display:grid; grid-template-columns:45px minmax(0,1fr); column-gap:18px; padding:27px 0; border-top:1px solid var(--line);}
.page-party .party-faq-item:last-child {border-bottom:1px solid var(--line);}
.page-party .party-faq-index {grid-column:1; grid-row:1/3; font:11px/1.9 var(--v4-mono); padding-top:3px; color:var(--brass-deep);}
.page-party .party-faq-item h3 {grid-column:2; font-family:var(--font-sans); font-size:15px; line-height:1.9; margin-bottom:12px; font-weight:500; color:#292e28;}
.page-party .party-faq-item p {grid-column:2; font-size:13px; line-height:2; color:#596052;}
.page-party .party-cta h2 {max-width:860px; margin:0 auto 34px;}
.page-party .party-cta .btn-accent {min-width:230px;}
@media(max-width:1199px) {
  .page-party .party-hero-grid {gap:36px;}
  .page-party .party-hero .hero-actions .btn {padding-inline:16px;}
  .page-party .party-hero-visual {padding-right:28px;}
  .page-party .party-facts li {font-size:11px;}
  .page-party .party-plan {padding:30px;}
  .page-party .party-venue-grid {grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px;}
  .page-party .party-venue-photo img {aspect-ratio:1.6;}
  .page-party .party-venue h3 {font-size:20px;}
  .page-party .party-steps {grid-template-columns:1fr; border-top:0;}
  .page-party .party-steps li {display:grid; grid-template-columns:74px minmax(0,1fr); gap:24px; padding:26px 0; border-top:1px solid #48533d;}
  .page-party .party-steps li::before {display:none;}
  .page-party .party-step-index {margin:4px 0 0; font-size:26px;}
  .page-party .party-steps li>div {display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; align-items:baseline;}
  .page-party .party-steps h3 {margin:0;}
  .page-party .party-steps p {max-width:none;}
  .page-party .party-faq > .wrap {grid-template-columns:240px minmax(0,1fr); gap:40px;}
}
@media(max-width:959px) {
  .page-party .party-hero {padding-top:42px;}
  .page-party .party-hero-grid {gap:24px; grid-template-columns:1.1fr 1fr;}
  .page-party .party-hero h1 {font-size:33px;}
  .page-party .party-hero .lead {font-size:13px;}
  .page-party .party-hero .hero-actions {display:grid; grid-template-columns:1fr;}
  .page-party .party-hero .hero-actions .btn {width:100%;}
  .page-party .party-hero-visual {padding-right:16px; padding-bottom:80px;}
  .page-party .party-image-label {font-size:11px; flex-wrap:wrap;}
  .page-party .party-tower-photo {width:47%; bottom:57px;}
  .page-party .party-visual-baseline {font-size:11px; padding-right:90px;}
  .page-party .party-service-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .page-party .party-service:nth-child(n) {border-right:1px solid var(--line); border-bottom:1px solid var(--line);}
  .page-party .party-service:nth-child(2n) {border-right:0;}
  .page-party .party-service:nth-last-child(-n+2) {border-bottom:0;}
  .page-party .party-plan-grid {grid-template-columns:1fr;}
  .page-party .party-plan {padding:36px;}
  .page-party .party-plan h2 {font-size:30px;}
  .page-party .party-plan-action {padding-top:30px;}
  .page-party .party-limo-photo img {aspect-ratio:2.2;}
  .page-party .party-faq > .wrap {display:block;}
  .page-party .party-faq .section-head {margin-bottom:32px;}
}
@media(max-width:719px) {
  .page-party .breadcrumb {padding-block:16px; font-size:11px;}
  .page-party .party-hero {padding-top:28px;}
  .page-party .party-hero-grid {grid-template-columns:1fr; gap:30px;}
  .page-party .party-hero-copy {padding-bottom:0;}
  .page-party .party-hero .hero-eyebrow {font-size:11px; margin-bottom:17px; letter-spacing:.04em;}
  .page-party .party-h1-prefix {font-size:13px; margin-bottom:9px;}
  .page-party .party-hero h1 {font-size:36px; line-height:1.4; margin-bottom:20px;}
  .page-party .party-hero .lead {font-size:13px; line-height:1.95; margin-bottom:20px;}
  .page-party .party-facts {margin-bottom:20px;}
  .page-party .party-facts li {font-size:11px; padding-block:10px;}
  .page-party .party-facts li:nth-child(2n) {padding-left:12px;}
  .page-party .party-hero .hero-actions {gap:10px;}
  .page-party .party-hero .hero-actions .btn {padding:15px 12px; font-size:12px;}
  .page-party .party-hero-visual {padding:0 22px 45px 0; margin-top:8px;}
  .page-party .party-image-label {font-size:11px; letter-spacing:0; gap:6px;}
  .page-party .party-tower-photo {width:39%; bottom:46px; padding:5px;}
  .page-party .party-visual-baseline {font-size:11px; padding-right:100px; letter-spacing:0;}
  .page-party .party-visual-baseline span:last-child {font-size:11px;}
  .page-party .party-hero-rule {margin-top:0; font-size:11px; letter-spacing:0; padding-block:20px;}
  .page-party .party-service-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .page-party .party-service {padding:20px 12px;}
  .page-party .party-service img {width:100%; max-width:220px; margin-top:10px;}
  .page-party .party-index {top:13px; left:14px;}
  .page-party .party-service h3 {font-size:16px; line-height:1.75;}
  .page-party .party-compare-table {min-width:590px;}
  .page-party .party-compare-table th,.page-party .party-compare-table td {padding:19px 20px;}
  .page-party .party-compare-table thead th {font-size:12px;}
  .page-party .party-compare-table tbody th {font-size:13px;}
  .page-party .party-plan-grid {gap:20px;}
  .page-party .party-plan {padding:26px 24px;}
  .page-party .party-plan h2 {font-size:25px; margin-bottom:22px;}
  .page-party .party-plan-details dd,.page-party .party-booking-list li {font-size:13px;}
  .page-party .party-fee p {gap:13px;}
  .page-party .party-fee-regular {font-size:22px;}
  .page-party .party-fee-after strong {font-size:44px;}
  .page-party .party-plan-action .btn {font-size:12px; padding-inline:8px;}
  .page-party .party-limo-photo img {aspect-ratio:1.5;}
  .page-party .party-venue-grid {grid-template-columns:1fr; gap:28px; margin-bottom:38px;}
  .page-party .party-venue-photo img {aspect-ratio:1.4;}
  .page-party .party-venue-caption {padding-top:15px;}
  .page-party .party-venue h3 {font-size:20px;}
  .page-party .party-venue-table {min-width:860px;}
  .page-party .party-venue-table thead th:first-child {width:178px;}
  .page-party .party-venue-table th,.page-party .party-venue-table td {padding:18px 12px;}
  .page-party .party-venue-table tbody th {font-size:12px;}
  .page-party .party-steps li {grid-template-columns:40px minmax(0,1fr); gap:16px; padding-block:24px;}
  .page-party .party-steps li>div {display:block;}
  .page-party .party-steps h3 {font-size:21px; margin-bottom:10px;}
  .page-party .party-step-index {font-size:24px;}
  .page-party .party-faq-item {grid-template-columns:34px minmax(0,1fr); gap:0 12px; padding-block:24px;}
  .page-party .party-faq-item h3 {font-size:14px;}
  .page-party .party-faq-item p {font-size:13px;}
  .page-party .party-cta h2 {font-size:26px; line-height:1.6;}
}
@media(prefers-reduced-motion:reduce) {
  .page-party *,.page-party *::before,.page-party *::after {animation:none!important; transition:none!important;}
}

/* 2026-10-03 監査P-1対応: 8店舗表の列配分（1024px以上は枠内に収め、未満は枠内スクロール） */
.page-party .party-venue-table {table-layout:fixed; width:100%; min-width:0;}
.page-party .party-venue-table thead th:nth-child(1) {width:19%;}
.page-party .party-venue-table thead th:nth-child(2) {width:9%;}
.page-party .party-venue-table tbody td:nth-of-type(1) {white-space:nowrap;}
.page-party .party-venue-table thead th:nth-child(3) {width:17%;}
.page-party .party-venue-table thead th:nth-child(4),
.page-party .party-venue-table thead th:nth-child(5) {width:6%;}
.page-party .party-venue-table thead th:nth-child(6) {width:14%;}
.page-party .party-venue-table thead th:nth-child(7) {width:29%;}
@media (max-width:1023px) {
  .page-party .party-venue-table {min-width:940px;}
}

/* FLARE GROUP 会場案内ページへのリンク（2026-10-03 代表指示: JTB向け資料のページを系列・提携店事例として入れ込む） */
.page-party .party-group-link{margin:40px 0 0;text-align:center}
.page-party .party-group-link .btn{white-space:normal;word-break:keep-all;line-break:strict}
