/*
Theme Name: 9Labo Lightning Child
Template: lightning
Version: 1.1.0
Description: ブロックエディターの標準ブロックと「ブロックスタイル」だけで9Laboのデザインを再現する子テーマ
*/

:root {
  --nl-ink: #10222d;
  --nl-ink-soft: #23404d;
  --nl-paper: #f5f7f4;
  --nl-blue: #2660ad;
  --nl-aqua: #71d7cf;
  --nl-line: rgba(16, 34, 45, 0.16);
  --nl-mono: 'DM Mono', monospace;
  --nl-sans: 'Manrope', 'Noto Sans JP', sans-serif;
  /* 全幅ブロックの中身を最大1340pxに収める左右余白 */
  --nl-gutter: max(36px, calc((100vw - 1340px) / 2));
}

/* ===== 全幅セクションの共通設定 ===== */
.wp-block-group.is-style-nl-section,
.wp-block-group.is-style-nl-page-hero,
.wp-block-group.is-style-nl-quote-band,
.wp-block-cover.is-style-nl-hero {
  box-sizing: border-box;
  margin-top: 0;
  margin-bottom: 0;
  padding-left: var(--nl-gutter);
  padding-right: var(--nl-gutter);
  font-family: var(--nl-sans);
  line-height: 1.65;
}

/* Lightningの見出し装飾（下線・背景・疑似要素）を打ち消す */
body :is(.is-style-nl-section, .is-style-nl-page-hero, .is-style-nl-quote-band, .is-style-nl-hero, .is-style-nl-feature) :is(h1, h2, h3) {
  margin-top: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font-family: var(--nl-sans);
  letter-spacing: 0;
}
body :is(.is-style-nl-section, .is-style-nl-page-hero, .is-style-nl-quote-band, .is-style-nl-hero, .is-style-nl-feature) :is(h1, h2, h3)::before,
body :is(.is-style-nl-section, .is-style-nl-page-hero, .is-style-nl-quote-band, .is-style-nl-hero, .is-style-nl-feature) :is(h1, h2, h3)::after {
  content: none;
}

/* ===== 段落スタイル ===== */
p.is-style-nl-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: var(--nl-aqua);
  font: 500 11px/1 var(--nl-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}
p.is-style-nl-eyebrow::before { width: 28px; height: 1px; content: ''; background: currentColor; }
p.is-style-nl-number { margin: 0; color: var(--nl-blue); font: 500 12px/1 var(--nl-mono); letter-spacing: .1em; }
p.is-style-nl-mono { margin: 0; color: var(--nl-ink-soft); font: 11px/1.5 var(--nl-mono); letter-spacing: .08em; }
p.is-style-nl-symbol { margin: 0; color: var(--nl-blue); font: 500 80px/.8 var(--nl-mono); }
.nl-lead { max-width: 530px; margin: 8px 0 0; font-size: 16px; }
.nl-accent { color: var(--nl-aqua); }

/* ===== 2カラムの見出し行（左: ラベル、右: 本文） ===== */
@media (min-width: 782px) {
  .wp-block-columns.is-style-nl-split > .wp-block-column:first-child { flex-basis: 33.333% !important; flex-grow: 0; }
  .wp-block-columns.is-style-nl-split > .wp-block-column:last-child { flex-basis: 66.666% !important; flex-grow: 1; }
  .wp-block-columns.is-style-nl-split.nl-split-wide > .wp-block-column:first-child { flex-basis: 40% !important; }
  .wp-block-columns.is-style-nl-split.nl-split-wide > .wp-block-column:last-child { flex-basis: 60% !important; }
}
.wp-block-columns.is-style-nl-split { gap: 30px; margin: 0 0 58px; }
.is-style-nl-section h2 { font-size: clamp(34px, 4vw, 58px); line-height: 1.08; margin-bottom: 0; }
.is-style-nl-section > .wp-block-buttons { margin-top: 36px; }
.is-style-nl-section .wp-block-buttons.nl-cta { margin-top: 32px; }
.is-style-nl-section.nl-rule { border-top: 1px solid var(--nl-line); }
.is-style-nl-section { padding-top: 118px; padding-bottom: 118px; color: var(--nl-ink); }

/* ===== ボタン ===== */
.wp-block-button.is-style-nl-line .wp-block-button__link,
.wp-block-button.is-style-nl-line-light .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 15px 20px;
  border: 1px solid var(--nl-ink);
  border-radius: 0;
  background: transparent;
  color: var(--nl-ink);
  font: 600 12px/1 var(--nl-mono);
  letter-spacing: .05em;
  text-decoration: none;
  transition: color .2s, background .2s;
}
.wp-block-button.is-style-nl-line .wp-block-button__link::after,
.wp-block-button.is-style-nl-line-light .wp-block-button__link::after { content: '↗'; font-size: 16px; }
.wp-block-button.is-style-nl-line .wp-block-button__link:hover { color: var(--nl-paper); background: var(--nl-ink); }
.wp-block-button.is-style-nl-line-light .wp-block-button__link { border-color: var(--nl-paper); color: var(--nl-paper); }
.wp-block-button.is-style-nl-line-light .wp-block-button__link:hover { color: var(--nl-ink); background: var(--nl-paper); }

/* ===== トップのヒーロー（カバーブロック） ===== */
.wp-block-cover.is-style-nl-hero {
  align-items: stretch;
  min-height: 680px;
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
  color: var(--nl-paper);
  background: var(--nl-ink);
}
.is-style-nl-hero .wp-block-cover__image-background { opacity: .36; }
.is-style-nl-hero .wp-block-cover__background {
  opacity: 1 !important;
  background: linear-gradient(90deg, rgba(16,34,45,.92) 3%, rgba(16,34,45,.65) 53%, rgba(16,34,45,.1)) !important;
}
.is-style-nl-hero::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  content: '';
  opacity: .3;
  background-image: linear-gradient(rgba(113,215,207,.22) 1px, transparent 1px), linear-gradient(90deg, rgba(113,215,207,.22) 1px, transparent 1px);
  background-size: 76px 76px;
  mask-image: linear-gradient(90deg, black, transparent);
  pointer-events: none;
}
.is-style-nl-hero .wp-block-cover__inner-container {
  z-index: 2;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  min-height: 680px;
  padding: 120px 0 62px;
  text-align: left;
}
.is-style-nl-hero :is(h1, h2) { max-width: 900px; margin: 24px 0; font-size: clamp(54px, 7.3vw, 112px); line-height: .98; }
.nl-hero-copy { max-width: 430px; margin: 0; color: rgba(245,247,244,.86); font-size: 15px; }
.nl-hero-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-top: auto; padding-top: 48px; }
.nl-hero-index { margin: 0; color: rgba(245,247,244,.68); font: 11px/1 var(--nl-mono); letter-spacing: .1em; }
.nl-hero-index strong { margin-right: 12px; color: var(--nl-aqua); font-size: 42px; font-weight: 400; vertical-align: middle; }

/* ===== 下層ページのヒーロー（グループ） ===== */
.wp-block-group.is-style-nl-page-hero {
  position: relative;
  overflow: hidden;
  padding-top: 115px;
  padding-bottom: 82px;
  color: var(--nl-paper);
  background: var(--nl-ink);
}
.is-style-nl-page-hero::after {
  position: absolute;
  top: -240px;
  right: -100px;
  width: 560px;
  height: 560px;
  border: 1px solid rgba(113,215,207,.35);
  border-radius: 50%;
  content: '';
  box-shadow: 0 0 0 66px rgba(113,215,207,.05), 0 0 0 132px rgba(113,215,207,.04);
  pointer-events: none;
}
.is-style-nl-page-hero h1 { max-width: 900px; margin: 20px 0 0; font-size: clamp(52px, 7vw, 96px); line-height: 1; }
.is-style-nl-page-hero p:not(.is-style-nl-eyebrow) { position: relative; max-width: 560px; margin: 22px 0 0; color: rgba(245,247,244,.72); }

/* ===== カード（カラムを罫線で区切る） ===== */
.wp-block-columns.is-style-nl-cards { gap: 0; margin: 0; border-top: 1px solid var(--nl-line); }
.wp-block-columns.is-style-nl-cards + .wp-block-columns.is-style-nl-cards { margin-top: 0; border-top: 0; }
.is-style-nl-cards > .wp-block-column {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  min-height: 330px;
  padding: 31px;
  border-right: 1px solid var(--nl-line);
  border-bottom: 1px solid var(--nl-line);
}
.is-style-nl-cards > .wp-block-column:last-child { border-right: 0; }
.is-style-nl-cards h3 { margin: 42px 0 16px; font-size: 26px; line-height: 1.18; }
.is-style-nl-cards p:not([class*='is-style-']):not(.nl-card-sub) { margin: 0; font-size: 14px; }
.nl-cards-bottom > .wp-block-column { min-height: 380px; justify-content: space-between; }
.nl-cards-bottom h3 { margin: 0; }
.nl-cards-bottom p:not([class*='is-style-']):not(.nl-card-sub) { margin-top: 20px; }
.nl-cards-small > .wp-block-column { min-height: 245px; padding: 28px; }
.nl-cards-small h3 { margin: 25px 0 7px; font-size: 21px; line-height: 1.2; }
.nl-cards-small p:not([class*='is-style-']):not(.nl-card-sub) { font-size: 13px; }
.nl-card-sub { margin: 0 0 12px; color: var(--nl-blue); font: 11px/1 var(--nl-mono); letter-spacing: .07em; }

/* ===== 画像+テキストの特集（メディアとテキスト） ===== */
.wp-block-media-text.is-style-nl-feature { min-height: 560px; color: var(--nl-paper); background: var(--nl-blue); font-family: var(--nl-sans); }
.is-style-nl-feature .wp-block-media-text__media { height: 100%; }
.is-style-nl-feature .wp-block-media-text__media img { width: 100%; height: 100%; min-height: 440px; object-fit: cover; }
.wp-block-media-text.is-style-nl-feature .wp-block-media-text__content {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  padding: clamp(42px, 7vw, 108px);
}
.is-style-nl-feature h2 { margin: 32px 0; font-size: clamp(38px, 4.8vw, 70px); line-height: 1.05; }
.is-style-nl-feature .wp-block-media-text__content p:not(.is-style-nl-eyebrow) { max-width: 440px; color: rgba(245,247,244,.84); }
.is-style-nl-feature .wp-block-buttons { margin-top: auto; padding-top: 32px; }

/* ===== お知らせ一覧（クエリループ） ===== */
.wp-block-query :is(.wp-block-post-date, .wp-block-post-terms) { font: 11px/1 var(--nl-mono); letter-spacing: .05em; }
.wp-block-query .wp-block-post-terms { color: var(--nl-blue); }
.wp-block-query .wp-block-post-terms a { color: inherit; text-decoration: none; }
.wp-block-query .wp-block-post-title { margin: 0; font-weight: 600; }
.wp-block-query .wp-block-post-title a { color: inherit; text-decoration: none; }
.wp-block-query ul.wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.wp-block-query .wp-block-post { margin: 0; }

.is-style-nl-news ul.wp-block-post-template { border-top: 1px solid var(--nl-line); }
.is-style-nl-news .wp-block-post {
  display: grid;
  grid-template-columns: 110px auto 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--nl-line);
  transition: padding .2s;
}
.is-style-nl-news .wp-block-post:hover { padding-left: 12px; }
.is-style-nl-news .wp-block-post::after { content: '→'; color: var(--nl-blue); font-size: 22px; }
.is-style-nl-news .wp-block-post-title { font-size: 16px; }

.is-style-nl-news-grid ul.wp-block-post-template { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--nl-line); }
.is-style-nl-news-grid .wp-block-post { min-height: 250px; padding: 28px; border-right: 1px solid var(--nl-line); border-bottom: 1px solid var(--nl-line); }
.is-style-nl-news-grid .wp-block-post:nth-child(3n) { border-right: 0; }
.is-style-nl-news-grid .wp-block-post-terms { margin-bottom: 14px; }
.is-style-nl-news-grid .wp-block-post-title { margin-top: 38px; font-size: 22px; line-height: 1.35; }
.wp-block-query .wp-block-query-pagination { margin-top: 32px; gap: 20px; font: 12px/1 var(--nl-mono); }

/* ===== 投稿詳細（single） ===== */
.is-style-nl-page-hero .nl-article-meta { display: flex; align-items: center; gap: 18px; margin: 28px 0 4px; }
.is-style-nl-page-hero .nl-article-meta :is(.wp-block-post-terms, .wp-block-post-date) { margin: 0; font: 11px/1 var(--nl-mono); letter-spacing: .05em; }
.is-style-nl-page-hero .nl-article-meta .wp-block-post-terms,
.is-style-nl-page-hero .nl-article-meta .wp-block-post-terms a { color: var(--nl-aqua); text-decoration: none; }
.is-style-nl-page-hero .nl-article-meta .wp-block-post-date { color: rgba(245,247,244,.72); }
.is-style-nl-page-hero h1.nl-article-title { max-width: 980px; font-size: clamp(34px, 4.6vw, 64px); line-height: 1.15; }
.nl-article-aside { border-top: 1px solid var(--nl-line); }
.nl-article-aside p.is-style-nl-mono { margin-top: 18px; }
.nl-article-aside :is(.wp-block-post-date, .wp-block-post-terms, .wp-block-post-author-name) { margin: 6px 0 18px; padding-bottom: 18px; border-bottom: 1px solid var(--nl-line); font: 500 13px/1.5 var(--nl-mono); }
.nl-article-aside a { color: inherit; text-decoration: none; }
.nl-article-body { max-width: 760px; font-size: 16px; line-height: 1.95; }
.nl-article-body > * + * { margin-top: 1.6em; }
.nl-article-body h2 { margin-top: 2.4em; padding-top: 22px; border-top: 1px solid var(--nl-line); font-size: clamp(24px, 2.6vw, 34px); line-height: 1.3; }
.nl-article-body h3 { margin-top: 2em; font-size: 21px; line-height: 1.4; }
.nl-article-body a { color: var(--nl-blue); text-decoration: underline; text-underline-offset: 3px; }
.nl-article-body img { width: 100%; height: auto; }
.nl-article-body blockquote { margin-left: 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--nl-aqua); color: var(--nl-ink-soft); }
.nl-article-body ul, .nl-article-body ol { padding-left: 1.4em; }
.nl-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 90px 0 0; border-top: 1px solid var(--nl-line); }
.nl-post-nav > * { margin: 0; padding: 28px; border-bottom: 1px solid var(--nl-line); font-weight: 700; line-height: 1.5; }
.nl-post-nav > * + * { border-left: 1px solid var(--nl-line); text-align: right; }
.nl-post-nav a { color: inherit; text-decoration: none; }
.nl-post-nav .post-navigation-link__label { display: block; margin-bottom: 12px; color: var(--nl-blue); font: 400 11px/1 var(--nl-mono); letter-spacing: .08em; }
.nl-back-link { margin-top: 48px; }

/* ===== 404 ===== */
.is-style-nl-page-hero p.nl-error-code { margin: 20px 0 0; max-width: none; color: var(--nl-aqua); font: 500 clamp(110px, 20vw, 280px)/.85 var(--nl-mono); letter-spacing: -.02em; }
.is-style-nl-page-hero .nl-error-title { margin-top: 28px; font-size: clamp(30px, 4vw, 52px); }
.is-style-nl-page-hero .nl-error-actions { margin-top: 36px; gap: 14px; }

/* ===== 引用帯（引用ブロック） ===== */
.wp-block-group.is-style-nl-quote-band { padding-top: 112px; padding-bottom: 112px; background: #dbeae7; color: var(--nl-ink); }
.is-style-nl-quote-band blockquote.wp-block-quote { max-width: 960px; margin: 0; padding: 0; border: 0; background: none; }
.is-style-nl-quote-band blockquote.wp-block-quote::before,
.is-style-nl-quote-band blockquote.wp-block-quote::after { content: none; }
.is-style-nl-quote-band blockquote.wp-block-quote p { margin: 0; font-size: clamp(32px, 4.5vw, 64px); font-weight: 600; line-height: 1.2; }
.is-style-nl-quote-band blockquote.wp-block-quote cite { display: block; margin-top: 32px; color: var(--nl-ink-soft); font: normal 11px/1 var(--nl-mono); letter-spacing: .1em; }

/* ===== 進め方（番号付きリスト） ===== */
.wp-block-list.is-style-nl-steps { margin: 40px 0 0; padding: 0; border-top: 1px solid var(--nl-line); list-style: none; counter-reset: nl-step; }
.is-style-nl-steps > li { position: relative; padding: 22px 0 22px 70px; border-bottom: 1px solid var(--nl-line); counter-increment: nl-step; }
.is-style-nl-steps > li::before { position: absolute; top: 25px; left: 0; content: counter(nl-step, decimal-leading-zero); color: var(--nl-blue); font: 500 12px/1 var(--nl-mono); letter-spacing: .1em; }
.is-style-nl-steps > li strong { display: block; margin-bottom: 5px; font-size: 17px; }

/* ===== 会社概要（テーブル） ===== */
.wp-block-table.is-style-nl-company { margin: 0; }
.wp-block-table.is-style-nl-company table { width: 100%; border: 0; border-top: 1px solid var(--nl-line); border-collapse: collapse; }
.wp-block-table.is-style-nl-company td { padding: 20px 0; border: 0; border-bottom: 1px solid var(--nl-line); background: none; }
.wp-block-table.is-style-nl-company td:first-child { width: 33.333%; color: var(--nl-ink-soft); font: 11px/1.7 var(--nl-mono); letter-spacing: .08em; }

/* ===== お問い合わせ（Contact Form 7 を暗色パネルに載せる） ===== */
.wp-block-group.nl-contact-panel { padding: clamp(40px, 7vw, 100px); color: var(--nl-paper); background: var(--nl-ink); }
.nl-contact-panel .wp-block-columns { gap: clamp(40px, 9vw, 150px); margin: 0; }
.nl-contact-panel h2 { font-size: clamp(40px, 5vw, 72px); line-height: 1.02; }
.nl-contact-panel p:not(.is-style-nl-eyebrow) { color: rgba(245,247,244,.7); }
.nl-contact-panel p a { color: var(--nl-aqua); text-decoration: underline; }
.nl-contact-panel .nl-field { margin-bottom: 24px; }
.nl-contact-panel .nl-field label { display: block; margin-bottom: 8px; font: 11px/1 var(--nl-mono); letter-spacing: .08em; }
.nl-contact-panel .wpcf7-form-control-wrap { display: block; }
.nl-contact-panel :is(input[type='text'], input[type='email'], select, textarea) {
  width: 100%;
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid rgba(245,247,244,.45);
  border-radius: 0;
  outline: 0;
  color: var(--nl-paper);
  background: transparent;
  font: 15px var(--nl-sans);
}
.nl-contact-panel select option { color: var(--nl-ink); }
.nl-contact-panel textarea { min-height: 88px; resize: vertical; }
.nl-contact-panel :is(input, select, textarea):focus { border-color: var(--nl-aqua); }
.nl-contact-panel .wpcf7-submit {
  width: 100%;
  margin-top: 12px;
  padding: 15px 20px;
  border: 1px solid var(--nl-aqua);
  border-radius: 0;
  color: var(--nl-ink);
  background: var(--nl-aqua);
  font: 600 12px/1 var(--nl-mono);
  letter-spacing: .05em;
  text-align: left;
  cursor: pointer;
}
.nl-contact-panel .wpcf7-not-valid-tip,
.nl-contact-panel .wpcf7-response-output { color: var(--nl-paper); font-size: 13px; }

/* ===== ページ読み込み時の表示（任意。ブロックの追加CSSクラスに指定） ===== */
.nl-reveal { opacity: 0; transform: translateY(18px); animation: nl-reveal .7s ease forwards; }
.nl-delay-1 { animation-delay: .1s; }
.nl-delay-2 { animation-delay: .2s; }
.nl-delay-3 { animation-delay: .3s; }
@keyframes nl-reveal { to { opacity: 1; transform: translateY(0); } }

/* ===== 共通ヘッダー・フッター（functions.php が出力） ===== */
.nl-site-header { position: sticky; top: 0; z-index: 1000; height: 78px; border-bottom: 1px solid rgba(245,247,244,.16); background: rgba(16,34,45,.94); color: var(--nl-paper); font-family: var(--nl-sans); backdrop-filter: blur(14px); }
.admin-bar .nl-site-header { top: 32px; }
.nl-header-inner { display: flex; align-items: center; justify-content: space-between; height: 100%; max-width: 1340px; margin: 0 auto; padding: 0 36px; box-sizing: border-box; }
.nl-site-header a, .nl-site-footer a { color: var(--nl-paper); text-decoration: none; }
.nl-brand { display: inline-flex; align-items: center; gap: 10px; font: 800 20px/1 var(--nl-sans); }
.nl-brand-logo { width: 42px; height: 42px; object-fit: contain; }
.nl-brand small { display: block; margin-top: 3px; color: rgba(245,247,244,.62); font: 11px/1 var(--nl-mono); letter-spacing: .06em; }
.nl-nav-list { display: flex; align-items: center; gap: clamp(16px, 2.2vw, 34px); margin: 0; padding: 0; list-style: none; }
.nl-nav-list a { position: relative; display: block; padding: 28px 0; font: 500 11px/1 var(--nl-mono); letter-spacing: .1em; }
.nl-nav-list a::after { position: absolute; bottom: 19px; left: 0; width: 0; height: 2px; content: ''; background: var(--nl-aqua); transition: width .25s ease; }
.nl-nav-list a:hover::after, .nl-nav-list a[aria-current='page']::after { width: 100%; }
.nl-menu-button { display: none; padding: 0; border: 0; background: transparent; color: var(--nl-paper); font: 500 12px/1 var(--nl-mono); letter-spacing: .1em; cursor: pointer; }

.nl-site-footer { padding: 50px 0 28px; background: var(--nl-ink); color: var(--nl-paper); font-family: var(--nl-sans); }
.nl-footer-wrap { width: min(100% - 72px, 1340px); margin: 0 auto; }
.nl-footer-top { display: flex; justify-content: space-between; gap: 30px; padding-bottom: 72px; }
.nl-footer-links { display: flex; flex-wrap: wrap; gap: 12px 26px; margin: 0; padding: 0; list-style: none; font: 11px/1.5 var(--nl-mono); letter-spacing: .06em; }
.nl-footer-links a:hover, .nl-footer-links a[aria-current='page'] { color: var(--nl-aqua); }
.nl-footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 20px; border-top: 1px solid rgba(245,247,244,.17); color: rgba(245,247,244,.55); font: 10px/1.5 var(--nl-mono); letter-spacing: .05em; }

@media (max-width: 781px) {
  .admin-bar .nl-site-header { top: 46px; }
}

@media (max-width: 781px) {
  :root { --nl-gutter: 20px; }
  .is-style-nl-section { padding-top: 74px; padding-bottom: 74px; }
  .wp-block-columns.is-style-nl-split { gap: 18px; margin-bottom: 34px; }
  .wp-block-cover.is-style-nl-hero, .is-style-nl-hero .wp-block-cover__inner-container { min-height: 590px; }
  .is-style-nl-hero .wp-block-cover__inner-container { padding: 78px 0 32px; }
  .is-style-nl-hero :is(h1, h2) { font-size: clamp(46px, 14vw, 70px); }
  .nl-hero-bottom { align-items: flex-start; flex-direction: column; }
  .wp-block-group.is-style-nl-page-hero { padding-top: 75px; padding-bottom: 55px; }
  .is-style-nl-page-hero::after { width: 300px; height: 300px; top: -120px; right: -100px; }
  .is-style-nl-cards > .wp-block-column { min-height: 260px; border-right: 0; }
  .is-style-nl-feature .wp-block-media-text__media img { min-height: 310px; }
  .wp-block-media-text.is-style-nl-feature .wp-block-media-text__content { min-height: 390px; padding: 42px 30px; }
  .is-style-nl-news .wp-block-post { grid-template-columns: 1fr auto; gap: 6px 12px; }
  .is-style-nl-news .wp-block-post-title { grid-column: 1; }
  .is-style-nl-news .wp-block-post::after { grid-column: 2; grid-row: 1 / span 2; }
  .is-style-nl-news-grid ul.wp-block-post-template { grid-template-columns: 1fr; }
  .is-style-nl-news-grid .wp-block-post { min-height: 200px; border-right: 0; }
  .wp-block-group.is-style-nl-quote-band { padding-top: 75px; padding-bottom: 75px; }
  .nl-post-nav { grid-template-columns: 1fr; margin-top: 60px; }
  .nl-post-nav > * + * { border-left: 0; text-align: left; }
  .wp-block-table.is-style-nl-company td:first-child { width: 40%; }
  .wp-block-group.nl-contact-panel { padding: 44px 24px; }
  .nl-site-header { height: 65px; }
  .nl-header-inner { padding: 0 20px; }
  .nl-menu-button { display: block; }
  .nl-nav-list { display: none; }
  .nl-nav-list.is-open { position: absolute; top: 65px; left: 0; right: 0; display: grid; gap: 2px; padding: 12px 20px 22px; background: var(--nl-ink); }
  .nl-nav-list.is-open a { padding: 13px 0; }
  .nl-nav-list.is-open a::after { bottom: 7px; }
  .nl-footer-wrap { width: min(100% - 40px, 1340px); }
  .nl-footer-top, .nl-footer-bottom { flex-direction: column; align-items: flex-start; }
  .nl-footer-top { padding-bottom: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  .nl-reveal { opacity: 1; transform: none; animation: none; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
