/* =========================================================
   LOCATIONS-PAGE.CSS — 活動拠点一覧 / 11会場比較
   ========================================================= */

.locations-index-page{background:#fff;}

/* HERO */
.locations-hero{position:relative;isolation:isolate;min-height:520px;display:flex;align-items:center;padding:78px 24px 92px;color:#fff;overflow:hidden;background:#0E2F26;}
.locations-hero-bg{position:absolute;inset:0;z-index:-2;background:url('../images/venue-hero-bg.jpg') center 44%/cover no-repeat;transform:scale(1.02);}
.locations-hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,34,27,.94) 0%,rgba(12,43,34,.82) 48%,rgba(12,31,35,.42) 100%);}
.locations-hero::after{content:'';position:absolute;left:52%;right:-8%;bottom:-38%;height:72%;border:1px solid rgba(255,255,255,.18);border-radius:50%;transform:rotate(-7deg);pointer-events:none;}
.locations-hero-inner{width:100%;max-width:1100px;margin:0 auto;}
.locations-hero .breadcrumb{margin-bottom:38px;font-size:12px;color:rgba(255,255,255,.78);}
.locations-hero .breadcrumb a{color:#fff;text-decoration:underline;text-underline-offset:3px;}
.locations-hero-kicker{display:block;margin-bottom:12px;font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.28em;color:#B9DCEB;}
.locations-hero h1{max-width:750px;margin:0 0 8px;font-size:clamp(34px,5vw,58px);font-weight:900;line-height:1.3;letter-spacing:.03em;text-shadow:0 3px 24px rgba(0,0,0,.3);}
.locations-hero-copy{margin:0 0 12px!important;font-size:clamp(21px,2.5vw,30px)!important;font-weight:900!important;line-height:1.5!important;color:#fff!important;}
.locations-hero-inner>p{max-width:670px;margin:0;font-size:15px;line-height:1.95;color:rgba(255,255,255,.9);}
.locations-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px;}
.locations-hero-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 25px;border-radius:var(--r-sm);font-size:13px;font-weight:800;transition:transform .2s,background .2s,border-color .2s;}
.locations-hero-actions a:hover{transform:translateY(-2px);}
.locations-hero-primary{background:var(--cta);color:#fff;}
.locations-hero-primary:hover{background:var(--cta-hover);color:#fff;}
.locations-hero-secondary{border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.08);color:#fff;backdrop-filter:blur(6px);}
.locations-hero-secondary:hover{border-color:#fff;background:rgba(255,255,255,.14);color:#fff;}

/* QUICK FACTS */
.locations-quick{position:relative;z-index:4;padding:0 24px;}
.locations-quick-inner{display:grid;grid-template-columns:repeat(3,1fr);max-width:930px;margin:-40px auto 0;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-lift);}
.locations-quick-inner>div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:106px;padding:18px;text-align:center;border-left:1px solid var(--hair);}
.locations-quick-inner>div:first-child{border-left:0;}
.locations-quick strong{font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:.03em;color:var(--green);}
.locations-quick strong small{margin-left:3px;font-family:'Noto Sans JP',sans-serif;font-size:11px;}
.locations-quick span{margin-top:4px;font-size:11px;color:var(--txt2);}

/* INTRO / AREA NAV */
.locations-intro{padding:100px 24px 74px;}
.locations-intro-grid{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr);gap:70px;align-items:end;}
.locations-eyebrow{display:block;margin-bottom:10px;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.25em;color:var(--green);}
.locations-intro h2{margin:0;font-size:30px;line-height:1.5;letter-spacing:.01em;}
.locations-intro-grid>p{margin:0;font-size:14px;line-height:2;color:var(--txt2);}
.locations-area-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:38px;}
.locations-area-nav a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;min-height:64px;padding:13px 16px;border:1px solid var(--border);background:#fff;font-size:12.5px;font-weight:800;transition:border-color .2s,transform .2s;}
.locations-area-nav a:hover{border-color:var(--green);transform:translateY(-2px);}
.locations-area-nav a>span{font-family:var(--display);font-size:11px;letter-spacing:.08em;color:var(--green);}
.locations-area-nav a>small{font-size:10px;font-weight:700;color:var(--txt2);}

/* VENUE CARDS */
.locations-list{padding-top:92px;}
.locations-area{padding-top:32px;margin-top:52px;scroll-margin-top:90px;}
.locations-area+.locations-area{border-top:1px solid var(--hair);padding-top:70px;margin-top:70px;}
.locations-area-head{display:grid;grid-template-columns:110px 1fr auto;align-items:end;gap:18px;margin-bottom:24px;}
.locations-area-head>span{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.18em;color:var(--green);}
.locations-area-head h3{margin:0;font-size:24px;line-height:1.4;}
.locations-area-head p{margin:0;font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--txt2);}
.locations-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.location-index-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--border);background:#fff;box-shadow:var(--shadow-card);transition:transform .24s,border-color .24s,box-shadow .24s;}
.location-index-card:hover{transform:translateY(-4px);border-color:#C8D8CF;box-shadow:0 12px 32px rgba(16,24,30,.1);}
.location-index-photo{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--surface);}
.location-index-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.location-index-card:hover .location-index-photo img{transform:scale(1.035);}
.location-index-body{display:flex;flex:1;flex-direction:column;padding:20px;}
.location-index-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:10.5px;color:var(--txt2);}
.location-index-meta strong{flex:none;padding:2px 9px;border:1px solid var(--border);border-radius:var(--r-pill);font-family:var(--display);font-size:10px;letter-spacing:.08em;color:var(--green);}
.location-index-card h4{margin:0 0 5px;font-size:17px;line-height:1.55;}
.location-index-card h4 a:hover{color:var(--green);}
.location-index-access{min-height:1.7em;margin:0 0 13px;font-size:11px;line-height:1.7;color:var(--txt2);}
.location-index-classes{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px;}
.location-index-classes>span{display:inline-flex;align-items:baseline;gap:4px;padding:4px 8px;border:1px solid currentColor;border-radius:var(--r-pill);font-size:9px;line-height:1.25;background:#fff;}
.location-index-classes b{font-size:9.5px;}
.location-index-classes small{font-size:8px;opacity:.85;}
.location-index-classes .is-jr{color:#2E8577;}
.location-index-classes .is-yt{color:#347FA5;}
.location-index-classes .is-at{color:#B32525;}
.location-index-description{display:-webkit-box;min-height:5.7em;margin:0 0 17px;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:11.5px;line-height:1.9;color:var(--txt2);}
.location-index-links{display:flex;flex-direction:column;gap:8px;margin-top:auto;}
.location-index-links a{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 12px;border-radius:var(--r-sm);font-size:11px;font-weight:800;}
.location-index-detail{justify-content:space-between!important;border:1px solid var(--border);color:var(--green);}
.location-index-detail:hover{border-color:var(--green);}
.location-index-trial{background:var(--cta);color:#fff;}
.location-index-trial:hover{background:var(--cta-hover);color:#fff;}

/* FINAL CTA */
.locations-cta{padding:82px 24px;background:var(--green);color:#fff;text-align:center;}
.locations-cta-inner{max-width:760px;margin:0 auto;}
.locations-cta-inner>span{display:block;margin-bottom:10px;font-family:var(--display);font-size:11px;letter-spacing:.25em;color:#B9DCEB;}
.locations-cta h2{margin:0 0 8px;font-size:30px;line-height:1.5;}
.locations-cta p{margin:0;font-size:13px;color:rgba(255,255,255,.82);}
.locations-cta-inner>div{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:27px;}
.locations-cta-inner a{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 28px;border-radius:var(--r-sm);font-size:13px;font-weight:800;}
.locations-cta-primary{background:var(--cta);color:#fff;}
.locations-cta-primary:hover{background:var(--cta-hover);color:#fff;}
.locations-cta-line{border:1px solid rgba(255,255,255,.58);color:#fff;}
.locations-cta-line:hover{background:rgba(255,255,255,.08);color:#fff;}

/* FLOATING CTA */
.floating{position:fixed;right:24px;bottom:24px;z-index:999;display:flex;flex-direction:column;gap:8px;}
.floating .fl-cta{display:block;padding:16px 28px;border-radius:var(--r-sm);background:var(--cta);color:#fff;font-size:14px;font-weight:700;text-align:center;box-shadow:0 6px 18px rgba(234,47,35,.28);transition:background .25s,transform .2s;}
.floating .fl-cta:hover{background:var(--cta-hover);color:#fff;transform:translateY(-2px);}
.floating .fl-line{padding:12px 24px;border-radius:var(--r-sm);background:var(--line);color:#fff;font-size:12px;font-weight:700;text-align:center;}

@media(max-width:960px){
  .locations-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .locations-area-nav{grid-template-columns:1fr;}
  .locations-intro-grid{gap:36px;}
}

@media(max-width:760px){
  .locations-intro-grid{grid-template-columns:1fr;gap:16px;}
}

@media(max-width:680px){
  .locations-hero{min-height:0;padding:54px 18px 76px;}
  .locations-hero::before{background:linear-gradient(90deg,rgba(8,34,27,.94),rgba(8,34,27,.72));}
  .locations-hero .breadcrumb{margin-bottom:24px;}
  .locations-hero h1{font-size:29px;}
  .locations-hero-copy{font-size:19px!important;}
  .locations-hero-inner>p{font-size:12.5px;line-height:1.85;}
  .locations-hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:24px;}
  .locations-hero-actions a{min-height:46px;padding:11px 10px;font-size:11px;}
  .locations-quick{padding:0 16px;}
  .locations-quick-inner{grid-template-columns:1fr;margin-top:-34px;}
  .locations-quick-inner>div{display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:65px;padding:10px 16px;text-align:left;border-left:0;border-top:1px solid var(--hair);}
  .locations-quick-inner>div:first-child{border-top:0;}
  .locations-quick strong{font-size:16px;}
  .locations-quick span{margin:0;text-align:right;font-size:10px;}
  .locations-intro{padding:72px 16px 54px;}
  .locations-intro-grid{grid-template-columns:1fr;gap:16px;}
  .locations-intro h2{font-size:22px;}
  .locations-intro-grid>p{font-size:12px;line-height:1.85;}
  .locations-area-nav{margin-top:28px;}
  .locations-area-nav a{min-height:56px;padding:11px 13px;font-size:11px;}
  .locations-list{padding-top:64px;}
  .locations-list .section-sub{margin-bottom:26px;}
  .locations-area{margin-top:28px;padding-top:24px;}
  .locations-area+.locations-area{margin-top:48px;padding-top:48px;}
  .locations-area-head{grid-template-columns:1fr auto;gap:4px 12px;align-items:center;}
  .locations-area-head>span{grid-column:1/-1;font-size:9px;}
  .locations-area-head h3{font-size:18px;}
  .locations-area-head p{font-size:9.5px;}
  .locations-card-grid{grid-template-columns:1fr;gap:14px;}
  .location-index-card{display:grid;grid-template-columns:112px minmax(0,1fr);}
  .location-index-photo{height:100%;min-height:210px;aspect-ratio:auto;}
  .location-index-body{padding:15px;}
  .location-index-card h4{font-size:15px;}
  .location-index-access{margin-bottom:9px;font-size:10px;}
  .location-index-classes{gap:3px;margin-bottom:9px;}
  .location-index-classes>span{padding:3px 6px;}
  .location-index-classes small{display:none;}
  .location-index-description{min-height:0;margin-bottom:11px;-webkit-line-clamp:2;font-size:10px;line-height:1.7;}
  .location-index-links{gap:6px;}
  .location-index-links a{min-height:36px;padding:7px 8px;font-size:9.5px;}
  .locations-cta{padding:62px 18px;}
  .locations-cta h2{font-size:22px;}
  .locations-cta-inner>div{display:grid;grid-template-columns:1fr;}
  .floating{right:0;bottom:0;left:0;flex-direction:row;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--hair);border-radius:0;background:#fff;box-shadow:0 -6px 20px rgba(16,24,30,.1);}
  .floating a{min-width:0;flex:1 1 0;padding:14px 6px;border-radius:var(--r-sm);font-size:12.5px;box-shadow:none;}
  .floating .fl-cta{flex:7 1 0;}
  .floating .fl-line{flex:3 1 0;font-size:11.5px;white-space:nowrap;}
  .fl-line-long{display:none;}
  .fl-line-short{display:inline;}
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px));}
}

@media(max-width:370px){
  .location-index-card{grid-template-columns:96px minmax(0,1fr);}
  .locations-hero-actions{grid-template-columns:1fr;}
}
