/*
Theme Name: Nexia IT
Theme URI: https://nexiait.jp/
Author: Nexia IT
Description: Corporate block theme for Nexia IT — IT solutions, cloud, ERP/CRM integration.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: nexia
*/

/* ==========================================================================
   0. Tokens
   ========================================================================== */
:root {
	--nz-navy: #0A2742;
	--nz-navy-2: #12375C;
	--nz-navy-3: #0E4C86;
	--nz-blue: #1668C4;
	--nz-blue-dark: #0F4F97;
	--nz-cyan: #14B8C4;
	--nz-cyan-soft: #E6F7F9;
	--nz-ink: #1C2B39;
	--nz-muted: #5A6B7C;
	--nz-bg: #F6F8FB;
	--nz-line: #E2E8F0;
	--nz-line-soft: #EDF1F6;
	--nz-white: #fff;
	--nz-radius: 14px;
	--nz-radius-lg: 20px;
	--nz-shadow: 0 18px 40px rgba(10, 39, 66, .10);
	--nz-shadow-sm: 0 6px 18px rgba(10, 39, 66, .07);
	--nz-container: 1120px;
	--nz-font: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

/* ==========================================================================
   1. Base
   ========================================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--nz-font);
	color: var(--nz-ink);
	font-size: 16px;
	line-height: 1.9;
	background: #fff;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--nz-blue); text-decoration: none; }
a:hover { color: var(--nz-blue-dark); }

h1, h2, h3, h4, h5 { margin: 0 0 .6em; letter-spacing: .01em; color: var(--nz-navy); }
h1 { font-size: 2.35rem; line-height: 1.4; }
h2 { font-size: 1.85rem; line-height: 1.45; }
h3 { font-size: 1.22rem; line-height: 1.55; }
h4 { font-size: 1.05rem; }

p { margin: 0 0 1.2em; }
ul, ol { margin: 0 0 1.2em; padding-left: 1.3em; }
li { margin-bottom: .45em; }

.nz-container {
	width: min(var(--nz-container), calc(100% - 44px));
	margin-inline: auto;
}

.nz-main { display: block; }

/* ==========================================================================
   2. Buttons & links
   ========================================================================== */
.nz-btn-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin: 0; }

.nz-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 26px;
	border-radius: 999px;
	font-weight: 700;
	font-size: .95rem;
	line-height: 1.4;
	letter-spacing: .02em;
	transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease, border-color .18s ease;
	border: 1px solid transparent;
	cursor: pointer;
	text-align: center;
}
.nz-btn--lg { padding: 16px 38px; font-size: 1rem; }
.nz-btn--primary { background: var(--nz-blue); color: #fff; box-shadow: 0 10px 22px rgba(22, 104, 196, .28); }
.nz-btn--primary:hover { background: var(--nz-blue-dark); color: #fff; transform: translateY(-2px); }
.nz-btn--ghost { background: rgba(255, 255, 255, .06); color: #fff; border-color: rgba(255, 255, 255, .5); }
.nz-btn--ghost:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.nz-btn--outline { background: #fff; color: var(--nz-blue); border-color: #BFD8F1; }
.nz-btn--outline:hover { background: #F1F7FE; color: var(--nz-blue-dark); border-color: var(--nz-blue); }
.nz-btn--cyan { background: var(--nz-cyan); color: #04283a; }
.nz-btn--cyan:hover { background: #0FA6B1; color: #04283a; }

.nz-link-arrow { font-weight: 700; font-size: .92rem; display: inline-flex; align-items: center; gap: 6px; }
.nz-link-arrow::after { content: "→"; transition: transform .18s ease; }
.nz-link-arrow:hover::after { transform: translateX(4px); }

/* ==========================================================================
   3. Header
   ========================================================================== */
.nz-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(255, 255, 255, .94);
	backdrop-filter: saturate(1.6) blur(10px);
	border-bottom: 1px solid var(--nz-line);
}
.nz-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	min-height: 74px;
	flex-wrap: nowrap;
}
.nz-logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 800;
	font-size: 1.16rem;
	color: var(--nz-navy);
	letter-spacing: .02em;
	flex: 0 0 auto;
}
.nz-logo:hover { color: var(--nz-navy); }
.nz-logo__mark {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: linear-gradient(140deg, var(--nz-navy), #14507F);
	color: #7FE3EC;
	display: grid;
	place-items: center;
	font-size: 1.05rem;
	font-weight: 800;
}
.nz-logo b { color: var(--nz-blue); }
.nz-header__cta { flex: 0 0 auto; padding: 10px 20px; font-size: .86rem; }
.nz-header__tel {
	flex: 0 0 auto;
	font-size: .8rem;
	color: var(--nz-muted);
	line-height: 1.5;
	text-align: right;
}
.nz-header__tel strong { display: block; font-size: 1.05rem; color: var(--nz-navy); letter-spacing: .02em; }

/* Fallback plain nav (used if navigation block is unavailable) */
.nz-nav-plain { display: flex; flex-wrap: wrap; gap: 22px; list-style: none; margin: 0; padding: 0; }
.nz-nav-plain li { margin: 0; }
.nz-nav-plain a { font-size: .92rem; font-weight: 600; color: var(--nz-ink); }

/* Core navigation block */
.nz-nav { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.nz-nav .wp-block-navigation__container { gap: 26px; align-items: center; }
.nz-nav .wp-block-navigation-item__content {
	font-size: .92rem;
	font-weight: 600;
	color: var(--nz-ink);
	padding: 6px 0;
	position: relative;
}
.nz-nav .wp-block-navigation-item__content:hover { color: var(--nz-blue); }
.nz-nav .wp-block-navigation-submenu__toggle { font-size: 11px; }
.nz-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--nz-line);
	border-radius: 12px;
	box-shadow: var(--nz-shadow);
	padding: 8px;
	background: #fff;
	min-width: 240px;
}
.nz-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: .88rem;
	font-weight: 500;
	padding: 9px 12px;
	border-radius: 8px;
	color: var(--nz-ink);
}
.nz-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--nz-bg);
	color: var(--nz-blue);
}
.wp-block-navigation__responsive-container.is-menu-open { padding: 24px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1rem; }

/* ==========================================================================
   4. Hero (home)
   ========================================================================== */
.nz-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #09213A 0%, #12375C 52%, #0E4C86 100%);
	color: #fff;
	padding: 88px 0 84px;
}
.nz-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 16% 18%, rgba(20, 184, 196, .30), transparent 46%),
		radial-gradient(circle at 88% 8%, rgba(22, 104, 196, .40), transparent 42%);
	pointer-events: none;
}
.nz-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .5), transparent 78%);
	-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .5), transparent 78%);
	pointer-events: none;
}
.nz-hero > * { position: relative; z-index: 1; }
.nz-hero__grid {
	display: grid;
	grid-template-columns: 1.12fr .88fr;
	gap: 56px;
	align-items: center;
}
.nz-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	color: #8FE6EE;
	margin-bottom: 18px;
}
.nz-hero__eyebrow::before { content: ""; width: 26px; height: 2px; background: #8FE6EE; }
.nz-hero h1 {
	color: #fff;
	font-size: clamp(1.85rem, 3.2vw, 2.7rem);
	line-height: 1.42;
	margin-bottom: 22px;
	letter-spacing: .01em;
}
.nz-hero h1 em { font-style: normal; color: #7FE3EC; }
.nz-hero__lead {
	color: rgba(255, 255, 255, .84);
	font-size: 1rem;
	max-width: 34em;
	margin-bottom: 30px;
}
.nz-hero__cards { display: grid; gap: 14px; }
.nz-hero-card {
	display: flex;
	align-items: center;
	gap: 14px;
	background: rgba(255, 255, 255, .09);
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: var(--nz-radius);
	padding: 16px 18px;
	backdrop-filter: blur(6px);
}
.nz-hero-card__label { font-size: .72rem; letter-spacing: .1em; color: #8FE6EE; margin: 0 0 2px; }
.nz-hero-card__title { font-size: .98rem; font-weight: 700; color: #fff; margin: 0; }
.nz-hero-card__icon {
	width: 42px; height: 42px;
	flex: 0 0 42px;
	border-radius: 11px;
	background: rgba(127, 227, 236, .16);
	color: #7FE3EC;
	display: grid; place-items: center;
}
.nz-hero__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 44px;
	padding-top: 30px;
	border-top: 1px solid rgba(255, 255, 255, .16);
}
.nz-hero__stat { margin: 0; }
.nz-hero__stat strong {
	display: block;
	font-size: 1.6rem;
	font-weight: 800;
	color: #fff;
	letter-spacing: .02em;
	line-height: 1.3;
}
.nz-hero__stat span { font-size: .8rem; color: rgba(255, 255, 255, .72); }

/* ==========================================================================
   5. Page hero (inner pages)
   ========================================================================== */
.nz-page-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(120deg, #09213A, #143E68 62%, #0F5891);
	color: #fff;
	padding: 62px 0 56px;
}
.nz-page-hero::before {
	content: "";
	position: absolute; inset: 0;
	background: radial-gradient(circle at 82% 12%, rgba(20, 184, 196, .26), transparent 46%);
	pointer-events: none;
}
.nz-page-hero > * { position: relative; z-index: 1; }
.nz-page-hero__crumb { font-size: .78rem; color: rgba(255, 255, 255, .6); margin: 0 0 14px; letter-spacing: .04em; }
.nz-page-hero__crumb a { color: rgba(255, 255, 255, .8); }
.nz-page-hero h1 { color: #fff; font-size: clamp(1.6rem, 2.6vw, 2.2rem); margin-bottom: 14px; }
.nz-page-hero__lead { color: rgba(255, 255, 255, .82); max-width: 46em; margin: 0; }
.nz-page-hero__tag {
	display: inline-block;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .1em;
	color: #7FE3EC;
	border: 1px solid rgba(127, 227, 236, .45);
	border-radius: 999px;
	padding: 4px 12px;
	margin-bottom: 16px;
}

/* ==========================================================================
   6. Sections
   ========================================================================== */
.nz-section { padding: 80px 0; }
.nz-section--tight { padding: 56px 0; }
.nz-section--alt { background: var(--nz-bg); }
.nz-section--dark { background: var(--nz-navy); color: rgba(255, 255, 255, .8); }
.nz-section--dark h2, .nz-section--dark h3 { color: #fff; }

.nz-sec-head { max-width: 720px; margin: 0 auto 46px; text-align: center; }
.nz-sec-head--left { margin-left: 0; text-align: left; }
.nz-eyebrow {
	display: block;
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .16em;
	color: var(--nz-blue);
	margin: 0 0 12px;
	text-transform: uppercase;
}
.nz-sec-head .nz-h2, .nz-h2 { font-size: clamp(1.5rem, 2.2vw, 1.95rem); margin-bottom: 14px; }
.nz-lead { color: var(--nz-muted); margin-bottom: 0; }
.nz-center { text-align: center; }

/* ==========================================================================
   7. Grid + cards
   ========================================================================== */
.nz-grid { display: grid; gap: 24px; }
.nz-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nz-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nz-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nz-grid--split { grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; }

.nz-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	background: #fff;
	border: 1px solid var(--nz-line);
	border-radius: var(--nz-radius);
	padding: 26px 24px;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	height: 100%;
}
.nz-card:hover { transform: translateY(-4px); box-shadow: var(--nz-shadow); border-color: #CFE0F2; }
.nz-card h3 { font-size: 1.08rem; margin: 0; }
.nz-card p { font-size: .9rem; color: var(--nz-muted); margin: 0; line-height: 1.85; }
.nz-card__icon {
	width: 46px; height: 46px;
	border-radius: 12px;
	background: #EAF3FD;
	color: var(--nz-blue);
	display: grid; place-items: center;
	flex: 0 0 46px;
}
.nz-card__icon svg { width: 24px; height: 24px; }
.nz-card__link { margin-top: auto; padding-top: 6px; }
.nz-card--flat { background: #fff; }
.nz-card--accent { border-top: 3px solid var(--nz-cyan); }
.nz-card--plain { background: #fff; border-color: var(--nz-line-soft); }
.nz-card--plain:hover { transform: none; box-shadow: var(--nz-shadow-sm); }

.nz-card__num {
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .12em;
	color: var(--nz-cyan);
}

.nz-tag {
	display: inline-block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	color: var(--nz-blue-dark);
	background: #EAF3FD;
	border-radius: 999px;
	padding: 3px 11px;
	margin-bottom: 10px;
}

/* Card link wrapper (whole-card clickable) */
.nz-card > .nz-card__hit {
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

/* ==========================================================================
   8. News
   ========================================================================== */
.nz-news { list-style: none; margin: 0; padding: 0; }
.nz-news__item { margin: 0; border-bottom: 1px solid var(--nz-line-soft); }
.nz-news__item:first-child { border-top: 1px solid var(--nz-line-soft); }
.nz-news__item a {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px 4px;
	color: var(--nz-ink);
	transition: background .15s ease;
}
.nz-news__item a:hover { background: var(--nz-bg); }
.nz-news__date { font-size: .82rem; color: var(--nz-muted); flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.nz-news__tag {
	font-size: .7rem;
	font-weight: 700;
	color: var(--nz-blue-dark);
	background: #EAF3FD;
	border-radius: 6px;
	padding: 2px 9px;
	flex: 0 0 auto;
}
.nz-news__title { font-size: .94rem; font-weight: 500; }
.nz-news-bar { display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: start; }
.nz-news-bar__head { display: flex; flex-direction: column; gap: 6px; }
.nz-news-bar__label { font-size: .78rem; font-weight: 800; letter-spacing: .16em; color: var(--nz-blue); }

/* ==========================================================================
   9. Steps
   ========================================================================== */
.nz-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; counter-reset: nzstep; }
.nz-step {
	position: relative;
	background: #fff;
	border: 1px solid var(--nz-line);
	border-radius: var(--nz-radius);
	padding: 46px 22px 22px;
	counter-increment: nzstep;
}
.nz-step::before {
	content: "0" counter(nzstep);
	position: absolute;
	top: 16px;
	left: 22px;
	font-size: .92rem;
	font-weight: 800;
	letter-spacing: .1em;
	color: var(--nz-cyan);
}
.nz-step h3 { font-size: 1rem; margin: 0 0 8px; }
.nz-step p { font-size: .86rem; color: var(--nz-muted); margin: 0; line-height: 1.8; }

/* ==========================================================================
   10. Case cards
   ========================================================================== */
.nz-case { display: flex; flex-direction: column; gap: 12px; background: #fff; border: 1px solid var(--nz-line); border-radius: var(--nz-radius); overflow: hidden; height: 100%; }
.nz-case__head { background: linear-gradient(135deg, #F1F7FE, #EAF3FD); padding: 20px 24px; border-bottom: 1px solid var(--nz-line-soft); }
.nz-case__industry { font-size: .74rem; font-weight: 800; letter-spacing: .1em; color: var(--nz-blue); }
.nz-case__title { font-size: 1.02rem; margin: 6px 0 0; }
.nz-case__body { padding: 20px 24px 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.nz-case__row { display: grid; grid-template-columns: 66px 1fr; gap: 12px; font-size: .86rem; }
.nz-case__row dt, .nz-case__key { color: var(--nz-muted); font-weight: 700; font-size: .78rem; margin: 0; }
.nz-case__row dd, .nz-case__val { margin: 0; }
.nz-case__result { font-weight: 700; color: var(--nz-blue-dark); }

/* ==========================================================================
   11. CTA band
   ========================================================================== */
.nz-cta {
	position: relative;
	overflow: hidden;
	background: linear-gradient(120deg, #0A2742, #14507F);
	border-radius: var(--nz-radius-lg);
	padding: 46px 48px;
	color: #fff;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 28px;
	align-items: center;
}
.nz-cta::before {
	content: "";
	position: absolute; inset: 0;
	background: radial-gradient(circle at 88% 20%, rgba(20, 184, 196, .30), transparent 48%);
	pointer-events: none;
}
.nz-cta > * { position: relative; z-index: 1; }
.nz-cta h2 { color: #fff; font-size: clamp(1.3rem, 2vw, 1.65rem); margin-bottom: 10px; }
.nz-cta p { color: rgba(255, 255, 255, .8); margin: 0; font-size: .94rem; }

/* ==========================================================================
   12. Tables
   ========================================================================== */
.nz-table { width: 100%; border-collapse: collapse; background: #fff; font-size: .92rem; }
.nz-table th, .nz-table td { border: 1px solid var(--nz-line); padding: 14px 18px; text-align: left; vertical-align: top; }
.nz-table th { background: var(--nz-bg); font-weight: 700; color: var(--nz-navy); white-space: nowrap; }
.nz-table--profile th { width: 190px; }
.nz-table--price td:first-child { font-weight: 700; }

/* ==========================================================================
   13. Definition list
   ========================================================================== */
.nz-dl { margin: 0; display: grid; gap: 0; border-top: 1px solid var(--nz-line); }
.nz-dl > div { display: grid; grid-template-columns: 180px 1fr; gap: 20px; padding: 16px 4px; border-bottom: 1px solid var(--nz-line); }
.nz-dl dt { font-weight: 700; color: var(--nz-navy); font-size: .92rem; margin: 0; }
.nz-dl dd { margin: 0; font-size: .92rem; color: var(--nz-ink); }

/* ==========================================================================
   14. FAQ
   ========================================================================== */
.nz-faq { display: grid; gap: 14px; }
.nz-faq details {
	background: #fff;
	border: 1px solid var(--nz-line);
	border-radius: 12px;
	padding: 18px 22px;
}
.nz-faq summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--nz-navy);
	list-style: none;
	position: relative;
	padding-right: 28px;
}
.nz-faq summary::-webkit-details-marker { display: none; }
.nz-faq summary::after {
	content: "+";
	position: absolute;
	right: 0; top: 0;
	color: var(--nz-blue);
	font-weight: 700;
}
.nz-faq details[open] summary::after { content: "−"; }
.nz-faq p { margin: 12px 0 0; font-size: .9rem; color: var(--nz-muted); }

/* ==========================================================================
   15. Forms
   ========================================================================== */
.nz-form { display: grid; gap: 20px; }
.nz-form__row { display: grid; gap: 8px; }
.nz-form__label { font-size: .88rem; font-weight: 700; color: var(--nz-navy); display: flex; align-items: center; gap: 8px; }
.nz-req { font-size: .68rem; font-weight: 700; color: #fff; background: #E24B4B; border-radius: 4px; padding: 1px 7px; letter-spacing: .04em; }
.nz-input {
	width: 100%;
	font-family: inherit;
	font-size: .95rem;
	color: var(--nz-ink);
	background: #fff;
	border: 1px solid #CDD8E5;
	border-radius: 10px;
	padding: 12px 14px;
	transition: border-color .16s ease, box-shadow .16s ease;
}
.nz-input:focus { outline: none; border-color: var(--nz-blue); box-shadow: 0 0 0 3px rgba(22, 104, 196, .14); }
textarea.nz-input { resize: vertical; line-height: 1.8; }
select.nz-input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235A6B7C' stroke-width='2' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.nz-form__note { font-size: .8rem; color: var(--nz-muted); margin: 0; }
.nz-form__hp { position: absolute; left: -9999px; opacity: 0; }

.nz-alert { border-radius: 12px; padding: 16px 20px; font-size: .92rem; margin-bottom: 24px; }
.nz-alert--ok { background: #E9F8EF; border: 1px solid #B7E4C7; color: #14532D; }
.nz-alert--ng { background: #FDF0F0; border: 1px solid #F3C1C1; color: #7F1D1D; }

/* ==========================================================================
   16. Footer
   ========================================================================== */
.nz-footer { background: var(--nz-navy); color: rgba(255, 255, 255, .74); padding: 60px 0 26px; font-size: .88rem; }
.nz-footer a { color: rgba(255, 255, 255, .74); }
.nz-footer a:hover { color: #fff; }
.nz-footer__grid { display: grid; grid-template-columns: 1.3fr repeat(3, .9fr); gap: 36px; }
.nz-footer__brand .nz-logo { color: #fff; margin-bottom: 16px; }
.nz-footer__brand p { font-size: .84rem; line-height: 1.9; color: rgba(255, 255, 255, .62); margin: 0 0 10px; }
.nz-footer__title { font-size: .8rem; font-weight: 800; letter-spacing: .12em; color: #fff; margin: 0 0 14px; }
.nz-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nz-footer li { margin: 0; font-size: .86rem; }
.nz-footer__bottom {
	margin-top: 44px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, .14);
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	align-items: center;
	font-size: .78rem;
	color: rgba(255, 255, 255, .55);
}
.nz-footer__bottom ul { display: flex; gap: 18px; flex-wrap: wrap; }

/* ==========================================================================
   17. Content entry (news single, generic)
   ========================================================================== */
.nz-entry { padding: 64px 0 88px; }
.nz-entry__head { margin-bottom: 32px; }
.nz-entry__meta { font-size: .82rem; color: var(--nz-muted); margin-bottom: 10px; display: flex; gap: 14px; align-items: center; }
.nz-entry__content { font-size: 1rem; }
.nz-entry__content h2 { font-size: 1.35rem; margin-top: 2.2em; padding-bottom: .3em; border-bottom: 2px solid var(--nz-line-soft); }
.nz-entry__content h3 { font-size: 1.1rem; margin-top: 1.8em; }
.nz-entry__content table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: .92rem; }
.nz-entry__content th, .nz-entry__content td { border: 1px solid var(--nz-line); padding: 12px 16px; text-align: left; }
.nz-entry__content th { background: var(--nz-bg); }
.nz-entry__content blockquote {
	margin: 1.6em 0; padding: 18px 24px; background: var(--nz-bg);
	border-left: 4px solid var(--nz-blue); border-radius: 0 10px 10px 0; color: var(--nz-ink);
}
.nz-entry__content img { border-radius: 12px; }
.nz-entry__content ul li::marker { color: var(--nz-cyan); }

/* ==========================================================================
   18. Utilities
   ========================================================================== */
.nz-muted { color: var(--nz-muted); }
.nz-small { font-size: .84rem; }
.nz-mb-0 { margin-bottom: 0; }
.nz-mt-32 { margin-top: 32px; }
.nz-mt-44 { margin-top: 44px; }
.nz-check-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.nz-check-list li { position: relative; padding-left: 28px; font-size: .93rem; margin: 0; }
.nz-check-list li::before {
	content: "";
	position: absolute; left: 0; top: .55em;
	width: 16px; height: 16px;
	border-radius: 50%;
	background: var(--nz-cyan-soft);
	border: 1px solid #B5E5EA;
}
.nz-check-list li::after {
	content: "";
	position: absolute; left: 5px; top: .82em;
	width: 6px; height: 3px;
	border-left: 2px solid var(--nz-blue-dark);
	border-bottom: 2px solid var(--nz-blue-dark);
	transform: rotate(-45deg);
}
.nz-badge-row { display: flex; flex-wrap: wrap; gap: 10px; }
.nz-badge {
	font-size: .78rem; font-weight: 700; color: var(--nz-navy);
	background: #fff; border: 1px solid var(--nz-line);
	border-radius: 999px; padding: 6px 14px;
}
.nz-split-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; }

/* ==========================================================================
   19. Responsive
   ========================================================================== */
@media (max-width: 1024px) {
	.nz-hero { padding: 68px 0 64px; }
	.nz-hero__grid { gap: 36px; }
	.nz-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nz-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nz-footer__grid { grid-template-columns: 1fr 1fr; }
	.nz-header__tel { display: none; }
}

@media (max-width: 860px) {
	h1 { font-size: 1.9rem; }
	h2 { font-size: 1.5rem; }
	.nz-section { padding: 56px 0; }
	.nz-hero__grid { grid-template-columns: 1fr; }
	.nz-hero__cards { grid-template-columns: 1fr; }
	.nz-grid--2, .nz-grid--3, .nz-grid--split { grid-template-columns: 1fr; }
	.nz-news-bar { grid-template-columns: 1fr; gap: 16px; }
	.nz-cta { grid-template-columns: 1fr; padding: 34px 26px; }
	.nz-dl > div { grid-template-columns: 1fr; gap: 4px; }
	.nz-page-hero { padding: 48px 0 42px; }
	.nz-header__cta { display: none; }
	.nz-split-list { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
	.nz-container { width: calc(100% - 32px); }
	.nz-grid--4 { grid-template-columns: 1fr; }
	.nz-steps { grid-template-columns: 1fr; }
	.nz-footer__grid { grid-template-columns: 1fr; }
	.nz-hero__stats { grid-template-columns: 1fr; gap: 12px; }
	.nz-news__item a { flex-wrap: wrap; gap: 8px; }
	.nz-table th, .nz-table td { padding: 11px 13px; font-size: .86rem; }
	.nz-entry { padding: 44px 0 64px; }
}

/* ==========================================================================
   18b. News index (query loop) & inline link lists
   ========================================================================== */
.nz-query { display: grid; gap: 0; }
.nz-query__row {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 4px;
	border-bottom: 1px solid var(--nz-line-soft);
}
.nz-query__row:first-child { border-top: 1px solid var(--nz-line-soft); }
.nz-query__title { font-size: .98rem; font-weight: 500; margin: 0; }
.nz-query__title a { color: var(--nz-ink); }
.nz-query__title a:hover { color: var(--nz-blue); }
.nz-query .nz-news__tag { margin: 0; }

.nz-pagination { margin-top: 32px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.nz-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border: 1px solid var(--nz-line);
	border-radius: 10px;
	font-size: .9rem;
	font-weight: 600;
	color: var(--nz-ink);
	background: #fff;
}
.nz-pagination .current { background: var(--nz-blue); border-color: var(--nz-blue); color: #fff; }

.nz-links-inline { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; }
.nz-links-inline li { margin: 0; font-size: .88rem; }

/* Inline emphasis inside hero headline */
.nz-hero h1 em { font-style: normal; color: #7FE3EC; }

@media (max-width: 640px) {
	.nz-query__row { flex-wrap: wrap; gap: 8px; }
}

/* Wide (full-row) card, used on the 2-col service index */
.nz-card--span2 { grid-column: 1 / -1; }
@media (max-width: 860px) {
	.nz-card--span2 { grid-column: auto; }
}

/* Footer bottom bar */
.nz-footer__bottom p { margin: 0; }
.nz-footer__brand p { color: rgba(255, 255, 255, .66); }
.nz-cta p { color: rgba(255, 255, 255, .88); }

/* Accessibility: raise footer text contrast */
.nz-footer { color: rgba(255, 255, 255, .82); }
.nz-footer a { color: rgba(255, 255, 255, .86); }
.nz-footer a:hover { color: #fff; }
.nz-footer__brand p { color: rgba(255, 255, 255, .74); }
.nz-footer__bottom { color: rgba(255, 255, 255, .68); }
.nz-pagination .page-numbers { color: var(--nz-ink); }

/* ==========================================================================
/* ==========================================================================
   20. Staggered cards (home)
   --------------------------------------------------------------------------
   The first card of every row sits a little higher and carries a cyan accent
   so the offset reads as "featured", not as a broken grid.
   ========================================================================== */
.nz-home .nz-grid { row-gap: 34px; }

.nz-home .nz-grid--2 > .nz-card:nth-child(2n + 1),
.nz-home .nz-grid--3 > .nz-card:nth-child(3n + 1),
.nz-home .nz-grid--4 > .nz-card:nth-child(4n + 1),
.nz-home .nz-grid--2 > .nz-case:nth-child(2n + 1),
.nz-home .nz-grid--3 > .nz-case:nth-child(3n + 1),
.nz-home .nz-grid--4 > .nz-case:nth-child(4n + 1) {
	position: relative;
	transform: translateY(-16px);
	background: linear-gradient(180deg, #F6FAFF 0%, #FFFFFF 55%);
	border-color: #C3DCF3;
	box-shadow: 0 16px 34px rgba(10, 39, 66, .10);
}

.nz-home .nz-grid--2 > .nz-card:nth-child(2n + 1)::before,
.nz-home .nz-grid--3 > .nz-card:nth-child(3n + 1)::before,
.nz-home .nz-grid--4 > .nz-card:nth-child(4n + 1)::before,
.nz-home .nz-grid--2 > .nz-case:nth-child(2n + 1)::before,
.nz-home .nz-grid--3 > .nz-case:nth-child(3n + 1)::before,
.nz-home .nz-grid--4 > .nz-case:nth-child(4n + 1)::before {
	content: "";
	position: absolute;
	left: -1px;
	right: -1px;
	top: -1px;
	height: 3px;
	background: var(--nz-cyan);
	border-radius: 14px 14px 0 0;
}

.nz-home .nz-grid--2 > .nz-card:nth-child(2n + 1):hover,
.nz-home .nz-grid--3 > .nz-card:nth-child(3n + 1):hover,
.nz-home .nz-grid--4 > .nz-card:nth-child(4n + 1):hover,
.nz-home .nz-grid--2 > .nz-case:nth-child(2n + 1):hover,
.nz-home .nz-grid--3 > .nz-case:nth-child(3n + 1):hover,
.nz-home .nz-grid--4 > .nz-case:nth-child(4n + 1):hover {
	transform: translateY(-22px);
}

@media (max-width: 860px) {
	.nz-home .nz-grid > .nz-card,
	.nz-home .nz-grid > .nz-case {
		transform: none !important;
		box-shadow: none !important;
		background: #fff !important;
		border-color: var(--nz-line) !important;
	}
	.nz-home .nz-grid > .nz-card::before,
	.nz-home .nz-grid > .nz-case::before { display: none; }
}
