/* Hallmark · page: tokai-hub · genre: editorial · macrostructure: Catalogue (approved continuation)
 * theme: existing brand system · enrichment: existing service photography · nav/footer: preserved common chrome
 * pre-emit critique: P5 H5 E5 S5 R5 V4 · contrast: pass (40–41) · slop: pass (42–45)
 * honest: pass (46) · chrome: pass (47) · tokens: pass (48) · mobile: pass (34, 49, 50–57)
 */
.tokai-hub-page,.tokai-hub-page main{background:var(--color-page)}
.tokai-hub-page .nav-links a[aria-current="page"]{color:var(--color-teal-dark);text-decoration-color:var(--color-teal);text-decoration-thickness:2px;text-underline-offset:var(--space-2)}
.tokai-breadcrumb{border-bottom:var(--rule);background:var(--color-page)}
.tokai-breadcrumb .shell{display:flex;align-items:center;gap:var(--space-3);min-height:3.5rem;font-size:var(--text-sm)}
.tokai-breadcrumb a{display:inline-flex;align-items:center;min-height:44px;color:var(--color-teal-dark);font-weight:700;white-space:nowrap}
.tokai-breadcrumb span{white-space:nowrap}

.tokai-hub-hero{position:relative;min-height:clamp(27rem,42vw,37rem);overflow:hidden;isolation:isolate;background:var(--color-paper-2)}
.tokai-hub-hero-media{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.tokai-hub-hero-inner{display:flex;align-items:center;justify-content:center;min-height:inherit;padding-block:var(--space-8) var(--space-12)}
.tokai-hub-hero-copy{width:min(40rem,min(92%,58%));margin-inline:auto;padding:var(--space-8);background:color-mix(in oklch,var(--color-page) 94%,transparent);box-shadow:var(--shadow);text-align:center}
.tokai-hub-hero-copy h1{color:var(--color-teal-dark);font-size:clamp(2.1rem,4vw,3.6rem);line-height:1.3;letter-spacing:.01em}
.tokai-hub-hero-copy h1 .tokai-hub-title-line{display:inline-block;white-space:nowrap}
.tokai-hub-hero-copy p{margin:var(--space-5) 0 0;color:var(--color-teal-dark);font-weight:700;line-height:1.65}

.tokai-area-band{border-block:var(--rule);background:var(--color-paper)}
.tokai-area-band-inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-height:6.5rem}
.tokai-area-band h2{margin:0;padding-inline-end:var(--space-8);font-size:var(--text-xl);white-space:nowrap}
.tokai-area-band ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none}
.tokai-area-band ul.tokai-area-band-list--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.tokai-area-band li{display:flex;align-items:center;justify-content:center;min-height:3rem;padding-inline:var(--space-5);border-inline-start:var(--rule);font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;white-space:nowrap}
.tokai-area-band a{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--space-3);min-height:48px;padding-inline-start:var(--space-8);border-inline-start:var(--rule);color:var(--color-teal-dark);font-weight:700;white-space:nowrap;text-decoration-color:var(--color-teal)}

.tokai-service-catalog{padding-block:var(--space-16) var(--space-20);background:var(--color-page)}
.tokai-service-catalog-head{display:flex;justify-content:center;margin-bottom:var(--space-10);text-align:center}
.tokai-service-catalog-head h2{position:relative;margin:0;padding-bottom:var(--space-5);color:var(--color-teal-dark);font-size:clamp(1.85rem,3.4vw,2.7rem)}
.tokai-service-catalog-head h2::after{content:"";position:absolute;left:50%;bottom:0;width:4.5rem;height:2px;background:var(--color-teal);transform:translateX(-50%)}
.tokai-genre-list{border-top:var(--rule)}
.tokai-genre{padding-block:var(--space-8) 0}
.tokai-genre>h3{margin:0;padding-bottom:var(--space-4);border-bottom:var(--rule);color:var(--color-teal-dark);font-family:var(--font-display);font-size:clamp(1.55rem,3vw,2.15rem);letter-spacing:.025em}
.tokai-genre-services{display:grid;grid-template-columns:minmax(0,1fr)}
.tokai-service-link{display:grid;grid-template-columns:minmax(14rem,.68fr) minmax(0,1.32fr) auto;align-items:center;min-height:12rem;border-bottom:var(--rule);color:var(--color-ink);text-decoration:none;background:var(--color-page)}
.tokai-service-link img{width:100%;height:12rem;object-fit:cover}
.tokai-service-link-copy{display:flex;flex-direction:column;min-width:0;padding:var(--space-6) var(--space-8)}
.tokai-service-link-copy strong{color:var(--color-teal-dark);font-family:var(--font-display);font-size:clamp(1.35rem,2.3vw,1.85rem);line-height:1.4}
.tokai-service-link-copy small{margin-top:var(--space-3);color:var(--color-muted);font-size:var(--text-base);line-height:1.65}
.tokai-service-link-action{display:flex;align-items:center;gap:var(--space-3);min-height:48px;margin-inline-end:var(--space-8);color:var(--color-accent-dark);font-weight:700;white-space:nowrap}
.tokai-service-link-action b{font-size:var(--text-xl);font-weight:400;transition:transform var(--dur-fast) var(--ease-out)}
.tokai-service-link:active{background:var(--color-paper-2)}
.tokai-service-link[aria-disabled="true"]{opacity:.55;cursor:not-allowed;pointer-events:none}

.tokai-hub-cta{border-top:var(--rule);background:var(--color-aqua-soft)}
.tokai-hub-cta-inner{display:grid;grid-template-columns:minmax(17rem,.8fr) minmax(0,1.2fr);align-items:center;gap:var(--space-10);min-height:9.5rem;padding-block:var(--space-8)}
.tokai-hub-cta h2{margin:0;padding-inline-end:var(--space-10);border-inline-end:var(--rule);font-size:clamp(1.3rem,2.3vw,1.75rem);line-height:1.55;letter-spacing:.015em}
.tokai-hub-contact{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-8)}
.tokai-hub-phone{display:inline-flex;align-items:center;min-height:48px;color:var(--color-accent-dark);font-size:clamp(1.8rem,3.5vw,2.7rem);font-weight:800;line-height:1;text-decoration:none;white-space:nowrap}
.tokai-hub-phone::before{content:"☎";margin-inline-end:var(--space-3);font-size:.7em}
.tokai-hub-contact .btn{min-width:8.5rem}

@media(hover:hover) and (pointer:fine){
  .tokai-service-link:hover{background:var(--color-paper-2)}
  .tokai-service-link:hover .tokai-service-link-action b{transform:translateX(var(--space-1))}
  .tokai-area-band a:hover,.tokai-hub-phone:hover{color:var(--color-ink)}
}

@media(max-width:64rem){
  .tokai-area-band-inner{grid-template-columns:auto minmax(0,1fr)}
  .tokai-area-band a{grid-column:1/-1;justify-content:center;padding:var(--space-3) 0;border-inline-start:0;border-top:var(--rule)}
  .tokai-service-link{grid-template-columns:minmax(13rem,.7fr) minmax(0,1.3fr)}
  .tokai-service-link-action{grid-column:2;margin:0 var(--space-8) var(--space-5);justify-self:end}
}

@media(max-width:52rem){
  .tokai-hub-hero{min-height:30rem}
  .tokai-hub-hero-media{object-position:center}
  .tokai-hub-hero-inner{align-items:center;justify-content:center;padding-block:var(--space-4) var(--space-6)}
  .tokai-hub-hero-copy{width:min(100%,29rem);margin-inline:auto;padding:var(--space-6);text-align:center}
  .tokai-hub-hero-copy h1{font-size:clamp(2rem,7vw,3rem)}
  .tokai-area-band-inner{grid-template-columns:minmax(0,1fr)}
  .tokai-area-band h2{padding:var(--space-5) 0 var(--space-3);text-align:center}
  .tokai-area-band ul{border-top:var(--rule)}
  .tokai-area-band li:first-child{border-inline-start:0}
  .tokai-area-band ul.tokai-area-band-list--5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tokai-area-band ul.tokai-area-band-list--5 li{padding-inline:var(--space-3);font-size:var(--text-base)}
  .tokai-area-band ul.tokai-area-band-list--5 li:nth-child(3n+1){border-inline-start:0}
  .tokai-area-band ul.tokai-area-band-list--5 li:nth-child(n+4){border-top:var(--rule)}
  /* 5県目（山口）を2列分にして空きセルの枠線欠けを防ぐ */
  .tokai-area-band ul.tokai-area-band-list--5 li:last-child{grid-column:span 2}
  .tokai-service-link{grid-template-columns:minmax(0,1fr);grid-template-areas:"media" "copy" "action"}
  .tokai-service-link img{grid-area:media;height:13rem}
  .tokai-service-link-copy{grid-area:copy;padding:var(--space-6) var(--space-5) var(--space-3)}
  .tokai-service-link-action{grid-area:action;margin:0 var(--space-5) var(--space-5)}
  .tokai-hub-cta-inner{grid-template-columns:minmax(0,1fr);gap:var(--space-6);padding-block:var(--space-8)}
  .tokai-hub-cta h2{padding:0 0 var(--space-5);border-inline-end:0;border-bottom:var(--rule);text-align:center}
  .tokai-hub-contact{justify-content:center;flex-wrap:wrap;gap:var(--space-5)}
}

@media(max-width:30rem){
  .tokai-breadcrumb .shell{min-height:3rem}
  .tokai-hub-hero{min-height:24rem}
  .tokai-hub-hero-inner{align-items:center;justify-content:center;padding-block:var(--space-2) var(--space-4)}
  .tokai-hub-hero-copy{padding:var(--space-5);text-align:center}
  .tokai-hub-hero-copy h1{font-size:clamp(1.75rem,8vw,2.25rem);line-height:1.32}
  .tokai-hub-hero-copy p{margin-top:var(--space-3);font-size:var(--text-sm)}
  .tokai-area-band ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tokai-area-band li:nth-child(3){border-inline-start:0}
  .tokai-area-band li:nth-child(n+3){border-top:var(--rule)}
  .tokai-area-band ul.tokai-area-band-list--5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tokai-area-band ul.tokai-area-band-list--5 li{padding-inline:var(--space-3);font-size:var(--text-base)}
  .tokai-area-band ul.tokai-area-band-list--5 li:nth-child(odd){border-inline-start:0}
  .tokai-area-band ul.tokai-area-band-list--5 li:nth-child(even){border-inline-start:var(--rule)}
  .tokai-area-band ul.tokai-area-band-list--5 li:nth-child(n+3){border-top:var(--rule)}
  /* 山口県を2列フル幅にして枠線を揃える */
  .tokai-area-band ul.tokai-area-band-list--5 li:last-child{
    grid-column:1/-1;
    border-inline-start:0;
  }
  .tokai-service-catalog{padding-block:var(--space-12) var(--space-16)}
  .tokai-service-catalog-head{justify-content:flex-start;margin-bottom:var(--space-8);text-align:left}
  .tokai-service-catalog-head h2::after{left:0;transform:none}
  .tokai-genre{padding-top:var(--space-6)}
  .tokai-service-link img{height:10rem}
  .tokai-service-link-copy small{font-size:var(--text-sm)}
  .tokai-hub-contact{align-items:stretch;flex-direction:column}
  .tokai-hub-phone{justify-content:center;font-size:clamp(1.65rem,9vw,2.15rem)}
  .tokai-hub-contact .btn{width:100%}
}

@media(prefers-reduced-motion:reduce){
  .tokai-service-link-action b{transition-duration:0ms}
}
