/*
Theme Name: NYD Lightning Child
Theme URI: https://www.nyd-elec.com/
Description: NYD株式会社向けのLightning子テーマです。親テーマは編集せず、サイト共通の見た目だけをこのCSSで調整します。
Author: NYD株式会社
Template: lightning
Version: 1.0.0
Text Domain: nyd-lightning-child
*/

/* 1. Common variables */
:root {
  --nyd-navy: #07182c;
  --nyd-navy-soft: #0d2742;
  --nyd-ink: #101827;
  --nyd-muted: #4f5d6a;
  --nyd-line: #dce3ea;
  --nyd-soft: #f5f7f9;
  --nyd-yellow: #f4b91f;
  --nyd-shadow: 0 14px 30px rgba(7, 24, 44, .12);
  --nyd-font-serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --nyd-image-home: url("https://www.nyd-elec.com/wp-content/uploads/2026/05/home-hero.png");
  --nyd-image-company: url("https://www.nyd-elec.com/wp-content/uploads/2026/04/policy.png");
}

body {
  color: var(--nyd-ink);
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  letter-spacing: 0;
}

a {
  text-underline-offset: .18em;
}

/* Lightning shell */
.siteContent,
.site-body,
.main-section,
.entry-body {
  padding-top: 0;
}

.page-header,
.breadcrumb {
  display: none;
}

.home .siteContent > .container,
.home .site-body > .container,
.home .main-section > .container,
.page .siteContent > .container,
.page .site-body > .container,
.page .main-section > .container {
  width: 100%;
  max-width: none;
  padding-right: 0;
  padding-left: 0;
}

.entry-body > * {
  margin-top: 0;
  margin-bottom: 0;
}

.entry-body h2,
.entry-content h2,
.siteContent h2 {
  border: 0 !important;
  box-shadow: none !important;
}

.entry-body h2::before,
.entry-body h2::after,
.entry-content h2::before,
.entry-content h2::after,
.siteContent h2::before,
.siteContent h2::after {
  display: none !important;
  content: none !important;
}

/* Header / footer */
.site-header,
.header_scrolled .site-header {
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  background: rgba(7, 24, 44, .97);
  box-shadow: none;
}

.site-header .container,
.site-header-container,
.site-header--layout--nav-float .site-header-container {
  max-width: 1320px;
  min-height: 76px;
  padding-top: 0;
  padding-bottom: 0;
}

.site-header-logo a,
.navbar-brand a {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: #fff;
  color: var(--nyd-ink);
  text-decoration: none;
}

.site-header-logo img,
.navbar-brand img {
  width: auto;
  max-width: 124px;
  max-height: 34px;
}

.global-nav-list > li > a,
.gMenu > li > a {
  min-height: 76px;
  color: #fff;
  font-size: .9rem;
  font-weight: 700;
}

.global-nav-list > li > a::after,
.gMenu > li > a::after {
  height: 3px;
  background: var(--nyd-yellow);
}

.global-nav-list > li > a[href*="contact"],
.gMenu > li > a[href*="contact"] {
  min-height: 42px;
  padding: .75rem 1.5rem;
  background: var(--nyd-yellow);
  color: var(--nyd-ink);
}

.global-nav-list > li > a[href*="contact"]:hover,
.gMenu > li > a[href*="contact"]:hover {
  background: #fff;
  color: var(--nyd-ink);
}

.vk-mobile-nav-menu-btn {
  top: 10px;
  right: 1rem !important;
  left: auto !important;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, .36);
  border-radius: 0;
  background: transparent !important;
  color: transparent;
  font-size: 0;
}

.vk-mobile-nav-menu-btn::before,
.vk-mobile-nav-menu-btn::after {
  content: "";
  position: absolute;
  left: 11px;
  width: 20px;
  height: 2px;
  background: #fff;
  transition: transform .2s ease, top .2s ease, box-shadow .2s ease;
}

.vk-mobile-nav-menu-btn::before {
  top: 14px;
  box-shadow: 0 7px 0 #fff, 0 14px 0 #fff;
}

.vk-mobile-nav-menu-btn::after {
  display: none;
}

.vk-mobile-nav-menu-btn.menu-open::before {
  top: 21px;
  box-shadow: none;
  transform: rotate(45deg);
}

.vk-mobile-nav-menu-btn.menu-open::after {
  top: 21px;
  display: block;
  transform: rotate(-45deg);
}

.vk-mobile-nav {
  background: var(--nyd-navy);
  color: #fff;
}

.vk-mobile-nav .widget_search {
  display: none;
}

#vk-mobile-nav .vk-mobile-nav-menu-outer a {
  color: #fff !important;
  font-weight: 700;
}

#vk-mobile-nav .vk-mobile-nav-menu-outer .menu-item {
  border-bottom-color: rgba(255, 255, 255, .14);
}

.site-footer {
  border-top: 4px solid var(--nyd-yellow);
  background: var(--nyd-navy);
  color: rgba(255, 255, 255, .82);
}

.site-footer a,
.site-footer h2,
.site-footer h3,
.site-footer h4 {
  color: #fff;
}

/* 2. Common sections */
.nyd-section {
  padding: clamp(3rem, 6vw, 5rem) 0;
}

.nyd-section--soft {
  background: var(--nyd-soft);
}

.nyd-section--dark {
  background:
    linear-gradient(120deg, rgba(7, 24, 44, .98), rgba(13, 39, 66, .96)),
    var(--nyd-navy);
  color: #fff;
}

.nyd-section--overlap {
  position: relative;
  z-index: 2;
  margin-top: -2.5rem;
  padding-top: 0;
}

.nyd-hero {
  min-height: 220px;
  display: flex;
  align-items: center;
  padding: clamp(2.75rem, 5vw, 4rem) 0;
  background:
    linear-gradient(90deg, rgba(4, 16, 30, .96), rgba(7, 24, 44, .72)),
    var(--nyd-image-company) center / cover no-repeat,
    var(--nyd-navy);
  color: #fff;
}

.nyd-hero--home {
  min-height: 560px;
  background:
    linear-gradient(90deg, rgba(4, 16, 30, .97) 0%, rgba(7, 24, 44, .78) 46%, rgba(7, 24, 44, .32) 100%),
    var(--nyd-image-home) center / cover no-repeat,
    var(--nyd-navy);
}

.nyd-hero--business {
  background:
    linear-gradient(90deg, rgba(4, 16, 30, .97), rgba(7, 24, 44, .68)),
    var(--nyd-image-home) center / cover no-repeat,
    var(--nyd-navy);
}

.nyd-hero--company {
  background:
    linear-gradient(90deg, rgba(4, 16, 30, .97), rgba(7, 24, 44, .62)),
    var(--nyd-image-company) center / cover no-repeat,
    var(--nyd-navy);
}

.nyd-hero--works,
.nyd-hero--contact,
.nyd-hero--recruit {
  background:
    linear-gradient(90deg, rgba(4, 16, 30, .97), rgba(7, 24, 44, .68)),
    var(--nyd-image-home) center / cover no-repeat,
    var(--nyd-navy);
}

.nyd-label {
  margin-bottom: .65rem;
  color: var(--nyd-yellow);
  font-size: .82rem;
  font-weight: 800;
}

.nyd-hero h1,
.nyd-heading h2,
.nyd-card h2,
.nyd-card h3 {
  letter-spacing: 0;
}

.nyd-hero h1 {
  max-width: 46rem;
  margin-bottom: 1rem;
  font-family: var(--nyd-font-serif);
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-weight: 800;
  line-height: 1.42;
}

.nyd-hero p:not(.nyd-label) {
  max-width: 42rem;
  margin-bottom: 1.6rem;
  font-size: .98rem;
  font-weight: 700;
  line-height: 1.9;
}

.nyd-heading {
  margin-bottom: 1.5rem;
  padding-left: .9rem;
  border-left: 4px solid var(--nyd-yellow);
}

.nyd-heading--center {
  max-width: 28rem;
  margin-right: auto;
  margin-left: auto;
  padding-left: 0;
  border-left: 0;
  text-align: center;
}

.nyd-heading--center::after {
  content: "";
  display: block;
  width: 12rem;
  height: 2px;
  margin: .8rem auto 0;
  background: var(--nyd-yellow);
}

.nyd-heading h2 {
  margin: 0;
  font-family: var(--nyd-font-serif);
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  font-weight: 800;
  line-height: 1.45;
}

.nyd-lead {
  color: var(--nyd-muted);
  font-weight: 600;
  line-height: 1.9;
}

.nyd-section--dark .nyd-lead {
  color: rgba(255, 255, 255, .82);
}

/* 3. Common cards */
.nyd-card {
  border: 1px solid var(--nyd-line);
  border-radius: 0;
  box-shadow: var(--nyd-shadow);
}

.nyd-card .card-body {
  padding: 1.6rem;
}

.nyd-card h2,
.nyd-card h3 {
  margin-bottom: .75rem;
  color: var(--nyd-ink);
  font-family: var(--nyd-font-serif);
  font-weight: 800;
  line-height: 1.45;
}

.nyd-card p,
.nyd-card li {
  color: var(--nyd-muted);
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.8;
}

.nyd-card ul {
  padding-left: 0;
  list-style: none;
}

.nyd-card li {
  position: relative;
  padding-left: 1.35rem;
}

.nyd-card li::before {
  content: "";
  position: absolute;
  top: .62em;
  left: 0;
  width: .55rem;
  height: .55rem;
  border: 2px solid var(--nyd-yellow);
  border-radius: 50%;
}

.nyd-service-card {
  min-height: 100%;
}

.nyd-service-card--compact .card-body {
  min-height: 7rem;
}

.nyd-image {
  min-height: 9rem;
  background: var(--nyd-soft) center / cover no-repeat;
}

.nyd-image--office,
.nyd-image--housing,
.nyd-image--store {
  background-image: var(--nyd-image-company);
}

.nyd-image--factory,
.nyd-image--panel,
.nyd-image--light,
.nyd-image--worker,
.nyd-image--outlet {
  background-image: var(--nyd-image-home);
}

.nyd-work-card .nyd-image {
  aspect-ratio: 16 / 9;
}

.nyd-tag {
  display: inline-block;
  margin: 1rem 1rem .2rem;
  padding: .2rem .5rem;
  background: var(--nyd-navy);
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
}

.nyd-card .nyd-tag {
  color: #fff;
}

.nyd-panel {
  padding: clamp(1.5rem, 3vw, 2rem);
  border: 1px solid var(--nyd-line);
  background: #fff;
  box-shadow: var(--nyd-shadow);
}

.nyd-prose {
  max-width: 56rem;
}

.nyd-prose h3 {
  margin-bottom: .9rem;
  font-family: var(--nyd-font-serif);
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
  font-weight: 800;
  line-height: 1.65;
}

.nyd-prose p {
  color: var(--nyd-muted);
  font-weight: 600;
  line-height: 1.9;
}

.nyd-signature {
  margin-top: 1.4rem;
  color: var(--nyd-ink) !important;
  font-weight: 800 !important;
  text-align: right;
}

.nyd-table {
  border: 1px solid var(--nyd-line);
  background: #fff;
}

.nyd-table th,
.nyd-table td {
  padding: 1.05rem 1.2rem;
  border-bottom: 1px solid var(--nyd-line);
  vertical-align: middle;
}

.nyd-table th {
  width: 28%;
  background: #f8fafc;
  color: var(--nyd-ink);
  font-weight: 800;
}

.nyd-map {
  min-height: 16rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(135deg, rgba(244, 185, 31, .28), rgba(244, 185, 31, .1)),
    repeating-linear-gradient(45deg, #edf1f5 0 1px, transparent 1px 22px),
    #f8fafc;
  color: var(--nyd-muted);
  font-weight: 800;
}

.nyd-stat {
  display: flex;
  gap: 1rem;
  align-items: center;
  min-height: 100%;
}

.nyd-stat strong {
  display: block;
  color: var(--nyd-yellow);
  font-family: var(--nyd-font-serif);
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  line-height: 1.1;
}

.nyd-filter {
  border-bottom: 1px solid var(--nyd-line);
}

.nyd-filter .btn {
  min-width: 8rem;
  border-radius: 0;
  font-weight: 800;
}

.nyd-filter .btn-primary {
  border-color: var(--nyd-yellow);
  background: var(--nyd-yellow);
  color: var(--nyd-ink);
}

.nyd-flow-step {
  position: relative;
}

.nyd-flow-step:not(:last-child)::after {
  content: "→";
  position: absolute;
  top: 2rem;
  right: -1rem;
  color: var(--nyd-muted);
  font-size: 1.5rem;
}

.nyd-contact-form label {
  display: block;
  margin-bottom: 1rem;
  color: var(--nyd-ink);
  font-weight: 800;
}

.nyd-contact-form .wpcf7-form-control-wrap {
  display: block;
  margin-top: .45rem;
}

.nyd-contact-form input[type="text"],
.nyd-contact-form input[type="email"],
.nyd-contact-form input[type="tel"],
.nyd-contact-form textarea,
.nyd-contact-form select {
  width: 100%;
  min-height: 3rem;
  padding: .75rem 1rem;
  border: 1px solid var(--nyd-line);
  border-radius: 0;
  background: #fff;
}

.nyd-contact-form textarea {
  min-height: 9rem;
}

.nyd-contact-form input[type="submit"] {
  min-width: 12rem;
  padding: .8rem 2rem;
  border: 0;
  border-radius: 0;
  background: var(--nyd-yellow);
  color: var(--nyd-ink);
  font-weight: 800;
}

/* 4. Page-specific minimums */
.nyd-reasons h3 {
  font-family: var(--nyd-font-serif);
  font-weight: 800;
  line-height: 1.45;
}

.nyd-section h3.h5 {
  font-family: var(--nyd-font-serif);
}

.nyd-footer-icon {
  flex: 0 0 auto;
  width: 3.25rem;
  height: 3.25rem;
  display: inline-block;
  background: currentColor;
  color: var(--nyd-yellow);
  -webkit-mask-image: var(--nyd-footer-icon);
  mask-image: var(--nyd-footer-icon);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.nyd-footer-icon--phone {
  --nyd-footer-icon: url("assets/icons/phone.svg");
}

.nyd-footer-icon--envelope {
  --nyd-footer-icon: url("assets/icons/envelope.svg");
}

.nyd-button {
  min-width: 11rem;
  border: 0;
  border-radius: 0;
  background: var(--nyd-yellow);
  color: var(--nyd-ink);
  font-weight: 800;
}

.nyd-button:hover,
.nyd-button:focus {
  background: #ffd34f;
  color: var(--nyd-ink);
}

.nyd-button::after {
  content: "→";
  margin-left: 1.2rem;
}

.nyd-button--outline {
  border: 1px solid rgba(255, 255, 255, .5);
  background: transparent;
  color: #fff;
}

.nyd-button--outline:hover,
.nyd-button--outline:focus {
  background: #fff;
  color: var(--nyd-ink);
}

.nyd-footer-cta {
  padding: 2rem 0;
  background: var(--nyd-navy);
  color: #fff;
}

.nyd-footer-cta p {
  margin-bottom: .25rem;
  color: rgba(255, 255, 255, .82);
  font-size: .9rem;
  font-weight: 700;
}

.nyd-footer-cta strong,
.nyd-footer-cta strong a,
.nyd-footer-cta a[x-apple-data-detectors] {
  display: block;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  font-family: var(--nyd-font-serif);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 800;
  line-height: 1.1;
}

.nyd-footer-cta__divider {
  border-left: 1px solid rgba(255, 255, 255, .22);
}

/* 6. Responsive */
@media (max-width: 991.98px) {
  .site-header .container,
  .site-header-container,
  .site-header--layout--nav-float .site-header-container {
    min-height: 64px;
  }

  .global-nav-list > li > a,
  .gMenu > li > a {
    min-height: auto;
  }

  .nyd-section--overlap {
    margin-top: 0;
    padding-top: clamp(2.5rem, 6vw, 4rem);
  }

  .nyd-hero {
    min-height: 240px;
  }

  .nyd-hero--home {
    min-height: 420px;
  }

  .nyd-footer-cta__divider {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, .22);
    padding-top: 1.5rem;
  }

  .nyd-flow-step:not(:last-child)::after {
    content: none;
  }
}

@media (max-width: 575.98px) {
  .nyd-section {
    padding: 2.75rem 0;
  }

  .nyd-card .card-body {
    padding: 1.25rem;
  }

  .nyd-table th,
  .nyd-table td {
    display: block;
    width: 100%;
    padding: .8rem 1rem;
  }
}
