/*
Theme Name: NAC Corporate
Theme URI: https://www.re-nac.com/
Author: NAC
Description: 株式会社ナック公式サイト専用テーマ
Version: 1.9.10
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: nac
*/

:root {
  --nac-teal: #76a5af;
  --nac-dark: #24383c;
  --nac-cream: #f7f4ed;
  --nac-line: #dce4e6;
  --nac-width: 1120px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: #334347; font-family: "M PLUS 2", "Yu Gothic", Meiryo, sans-serif; line-height: 1.8; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { position: fixed; top: 10px; left: 10px; z-index: 9999; width: auto; height: auto; padding: 10px 16px; clip: auto; color: #fff; background: var(--nac-dark); }
.site-header { background: #fff; border-bottom: 1px solid var(--nac-line); position: relative; z-index: 20; }
.site-header__inner, .site-footer__inner { width: min(calc(100% - 40px), var(--nac-width)); margin: auto; }
.site-header__inner { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.site-branding img { display: block; width: 280px; }
.site-branding__name { font-size: 1.35rem; font-weight: 700; text-decoration: none; }
.site-nav ul { display: flex; gap: 12px; align-items: center; margin: 0; padding: 0; list-style: none; }
.site-nav a, .entry-content .wp-block-button__link, .nac-button, .nac-service-card p a, .nac-form-submit { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 12px 24px; border: 1px solid #666; border-radius: 0; color: #666; background: transparent; font: inherit; font-weight: 700; line-height: 1.4; text-align: center; text-decoration: none; cursor: pointer; transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
.site-nav a { min-width: 104px; padding-inline: 18px; font-size: 1.12rem; letter-spacing: .02em; }
.site-nav a:hover, .entry-content .wp-block-button__link:hover, .nac-button:hover, .nac-service-card p a:hover, .nac-form-submit:hover { color: #fff; border-color: #666; background: #666; }
.site-nav a:focus-visible, .entry-content .wp-block-button__link:focus-visible, .nac-button:focus-visible, .nac-service-card p a:focus-visible, .nac-form-submit:focus-visible { outline: 3px solid #24383c; outline-offset: 3px; }
.site-main { min-height: 50vh; }
.entry-header { padding: 64px 20px; text-align: center; background: var(--nac-cream); }
.entry-title { margin: 0; color: var(--nac-dark); font-size: clamp(2rem, 4vw, 3rem); }
.entry-content { width: min(calc(100% - 40px), var(--nac-width)); margin: 64px auto; }
.home .entry-content { width: 100%; margin-top: 0; }
.home .entry-content > :not(.alignfull) { width: min(calc(100% - 40px), var(--nac-width)); margin-left: auto; margin-right: auto; }
.home .entry-content > .wp-block-cover:first-child { background-image: var(--nac-hero-image, url("assets/images/hero.webp")); background-position: center; background-size: cover; }
.home .entry-content > .wp-block-cover:first-child { position: relative; isolation: isolate; overflow: hidden; }
.home .entry-content > .wp-block-cover:first-child > *:not(.nac-hero-slide-layer) { position: relative; z-index: 2; }
.nac-hero-slide-layer { position: absolute; inset: 0; z-index: 0; background-position: center; background-size: cover; opacity: 0; transition: opacity 1.2s ease; }
.nac-hero-slide-layer.is-active { opacity: 1; }
.home .entry-content > .wp-block-columns:first-of-type { display: none; }
.nac-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.nac-service-card { display: flex; height: 100%; flex-direction: column; overflow: hidden; border-radius: 8px; background: var(--nac-cream); }
.nac-service-grid > .nac-service-card.wp-block-group { align-self: stretch; margin-block-start: 0; transform: none; }
.nac-service-card__image { width: 100%; aspect-ratio: 4 / 3; flex: 0 0 auto; margin: 0; overflow: hidden; }
.nac-service-card__image img { width: 100%; height: 100%; object-fit: cover; }
.nac-service-card h3 { display: flex; min-height: 3.2em; align-items: center; justify-content: center; margin: 0; padding: 14px 20px 4px; text-align: center; }
.nac-service-card p { flex: 1 0 auto; margin-top: 8px; padding-inline: 20px; }
.nac-service-card .wp-block-buttons { margin-top: auto; padding: 0 20px 20px; }
.nac-asset { margin: 28px auto; text-align: center; }
.nac-asset img { border-radius: 6px; }
.nac-asset--wide img { width: 100%; max-height: 600px; object-fit: cover; }
.nac-asset--schedule img { width: 100%; height: auto; max-height: none; object-fit: contain; }
.nac-aligned-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 26px 0 38px; }
.nac-aligned-gallery .wp-block-image { margin: 0; }
.nac-aligned-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.nac-point { margin: 26px 0; padding: 24px; border-left: 5px solid var(--nac-teal); background: var(--nac-cream); }
@media (max-width: 700px) { .nac-aligned-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.nac-works { margin-top: 70px; }
.nac-works-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.nac-work-card { overflow: hidden; border: 1px solid var(--nac-line); border-radius: 8px; }
.nac-work-card > img, .nac-work-card > .nac-asset img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.nac-work-card > .nac-asset { margin: 0; }
.nac-work-card__body { padding: 18px 20px; }
.nac-work-card__body h3 { margin-top: 0; }
.nac-access { margin-top: 80px; padding: 70px 20px; background: var(--nac-cream); }
.nac-access__inner { width: min(100%, var(--nac-width)); margin: auto; }
.nac-access__grid { display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 1.5fr); gap: 48px; align-items: stretch; }
.nac-access iframe { width: 100%; min-height: 420px; border: 0; }
.nac-access a { font-weight: 700; }
.nac-error-code { margin: 0; color: var(--nac-teal); font-size: clamp(3rem, 10vw, 7rem); font-weight: 700; line-height: 1; }
.nac-error-content { text-align: center; }
.entry-content > :where(h2,h3,h4,p,ul,ol,figure,table,.wp-block-columns,.wp-block-group) { margin-block-start: 1.4em; margin-block-end: 1.4em; }
.entry-content h2 { padding-bottom: .35em; color: var(--nac-teal); border-bottom: 2px solid var(--nac-teal); }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: 14px; border: 1px solid var(--nac-line); }
.entry-content th { width: 25%; background: #ffe9bd; }
.staff-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; }
.staff-card { overflow: hidden; border: 1px solid var(--nac-line); border-radius: 8px; background: #fff; }
.staff-card__body { padding: 20px; }
.staff-card__title { margin: 0 0 8px; }
.site-footer { margin-top: 80px; padding: 48px 0 24px; color: #fff; background: var(--nac-dark); }
.site-footer__company { margin: 0 0 8px; font-weight: 700; }
.site-footer__copy { margin-top: 30px; font-size: .82rem; opacity: .8; }
.site-footer__privacy a { color: #fff; text-underline-offset: 3px; }
.nac-contact-form { max-width: 760px; margin: 40px auto; }
.nac-form-field { margin-bottom: 24px; }
.nac-form-field label { display: block; margin-bottom: 6px; font-weight: 700; }
.nac-form-field label span { margin-left: 8px; padding: 2px 7px; color: #fff; background: #b24a3b; border-radius: 3px; font-size: .72rem; }
.nac-form-field input, .nac-form-field textarea { width: 100%; padding: 12px; border: 1px solid #aebdc0; border-radius: 4px; font: inherit; }
.nac-form-field input:focus, .nac-form-field textarea:focus { outline: 3px solid rgba(118,165,175,.25); border-color: var(--nac-teal); }
.nac-form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.nac-form-consent { padding: 16px; background: var(--nac-cream); }
.nac-form-notice { margin: 24px 0; padding: 16px; border-left: 5px solid; }
.nac-form-notice--success { background: #edf7f1; border-color: #328450; }
.nac-form-notice--error { background: #fff0ed; border-color: #b24a3b; }
.menu-toggle { display: none; }
@media (max-width: 760px) {
  .site-header__inner { min-height: 72px; }
  .site-branding img { width: 210px; }
  .menu-toggle { display: inline-flex; padding: 8px 12px; border: 1px solid var(--nac-line); background: #fff; }
  .site-nav { display: none; position: absolute; inset: 72px 0 auto; padding: 20px; background: #fff; border-bottom: 1px solid var(--nac-line); }
  .site-nav.is-open { display: block; }
  .site-nav ul { display: block; }
  .site-nav li + li { margin-top: 14px; }
  .site-nav a { width: 100%; padding: 13px 10px; font-size: 1.12rem; }
  .staff-grid { grid-template-columns: 1fr; }
  .nac-service-grid { grid-template-columns: 1fr; }
  .nac-works-grid { grid-template-columns: 1fr; }
  .nac-access__grid { grid-template-columns: 1fr; }
  .nac-access iframe { min-height: 340px; }
  .entry-content th, .entry-content td { display: block; width: 100%; }
  .home .wp-block-cover:first-child { min-height: 480px !important; }
  .home .wp-block-cover:first-child h1 { font-size: clamp(1.8rem, 8vw, 2.6rem); }
}
