:root {
    /* ロゴ由来のブランドカラー */
    --color-logo-blue: #06c8e8;
    --color-logo-green: #8ccf00;

    /* ロゴブルーと同系統（色相 約190度）で可読性を確保した実用色 */
    --color-primary: #067f97;
    --color-primary-strong: #045c6f;
    --color-primary-deep: #0d4b5c;
    --color-primary-soft: #e4f5f9;
    --color-accent-strong: #5f8f00;
    --color-accent-soft: #f4fbe4;
    --gradient-brand: linear-gradient(90deg, var(--color-logo-blue), var(--color-logo-green));

    --color-bg: #eef4f7;
    --color-surface: #ffffff;
    --color-surface-soft: #f4fafc;
    --color-text: #16323c;
    /* 補助テキスト。白背景でコントラスト比 約7:1 を確保 */
    --color-muted: #3f5c68;
    --color-border: #d8e6ec;
    --color-border-soft: #e3eef2;
    --shadow-soft: 0 10px 30px rgba(16, 62, 76, 0.08);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    font-size: 18.667px;
}

body {
    margin: 0;
    /* Windows の游ゴシックは Regular が細く読みにくいため Medium を優先 */
    font-family: "Yu Gothic Medium", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    color: var(--color-text);
    line-height: 1.72;
    background: radial-gradient(circle at top right, #f6fbfd, var(--color-bg) 50%);
}

a {
    color: inherit;
    text-decoration: none;
}

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

.container {
    width: min(1140px, calc(100% - 2.4rem));
    margin: 0 auto;
}

.narrow {
    width: min(1140px, calc(100% - 2.4rem));
}

.site-main {
    padding-top: 1.5rem;
}

.breadcrumbs {
    padding-top: clamp(0.9rem, 2vw, 1.5rem);
    color: var(--color-muted);
    font-size: 0.84rem;
    line-height: 1.6;
}

.breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.breadcrumbs li {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.breadcrumbs li:not(:last-child)::after {
    content: "›";
    margin: 0 0.65rem;
    color: #88a0a9;
}

.breadcrumbs a {
    color: var(--color-primary);
    text-decoration: underline;
    text-decoration-color: rgba(6, 127, 151, 0.35);
    text-underline-offset: 0.18em;
}

.breadcrumbs a:hover {
    text-decoration-color: currentColor;
}

.breadcrumbs [aria-current="page"] {
    overflow: hidden;
    max-width: min(58vw, 42rem);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 200;
    padding: 1rem 0 0.8rem;
    backdrop-filter: blur(7px);
    background: rgba(238, 244, 247, 0.86);
}

.site-header .container {
    width: calc(100% - 2rem);
}

.header-inner {
    min-height: 78px;
    display: flex;
    align-items: center;
    gap: clamp(1rem, 2vw, 2rem);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    box-shadow: var(--shadow-soft);
    padding: 0.8rem 1rem 0.8rem 1.4rem;
}

.site-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    flex: 0 0 clamp(260px, 24vw, 340px);
    min-width: 0;
}

.site-logo-mark {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    object-fit: contain;
}

.site-logo-main {
    font-size: 1.9rem;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.site-logo-sub {
    font-size: 0.78rem;
    color: var(--color-muted);
    font-weight: 600;
}

.menu-toggle {
    display: none;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    padding: 0.5rem 0.8rem;
    border-radius: 10px;
    font-weight: 700;
}

.global-nav {
    flex: 1;
}

.global-nav .menu {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: center;
    gap: 0.25rem;
}

.global-nav .menu-item a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0.55rem 0.85rem;
    border-radius: 999px;
    color: var(--color-muted);
    font-size: 0.86rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    transition: all 0.2s ease;
}

.global-nav .menu-item a:hover,
.global-nav .current-menu-item > a,
.global-nav .current_page_item > a {
    color: var(--color-primary-strong);
    background: var(--color-primary-soft);
}

.header-phone {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 clamp(260px, 24vw, 340px);
    min-width: 0;
    color: var(--color-primary-strong);
    font-size: clamp(0.86rem, 1vw, 0.98rem);
    font-weight: 700;
    white-space: nowrap;
}

.mobile-fixed-phone {
    display: none;
}

.header-contact-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0.6rem 1.35rem;
    border-radius: 999px;
    background: linear-gradient(140deg, #0aa8c6, var(--color-primary));
    color: #ffffff;
    font-weight: 700;
    white-space: nowrap;
    box-shadow: 0 8px 20px rgba(6, 127, 151, 0.32);
}

.hero {
    color: #ffffff;
    background:
        linear-gradient(130deg, rgba(8, 45, 56, 0.95), rgba(6, 110, 133, 0.86)),
        radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.2), transparent 38%);
    border-radius: 26px;
    margin: 0.5rem auto 0;
    width: min(1140px, calc(100% - 2.4rem));
    box-shadow: 0 20px 36px rgba(11, 52, 64, 0.22);
}

.hero-inner {
    padding: clamp(3rem, 6vw, 5rem) clamp(1.2rem, 5vw, 4rem);
}

.hero h1 {
    margin: 0 0 1rem;
    font-size: clamp(1.8rem, 4vw, 3rem);
    line-height: 1.3;
}

.hero-kicker {
    margin: 0 0 0.9rem;
    font-size: 0.85rem;
    letter-spacing: 0.12em;
    font-weight: 700;
    color: #b8ecf7;
}

.hero p {
    max-width: 52ch;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 1.5rem;
}

.section {
    padding: 4.5rem 0;
}

.section-title {
    margin: 0 0 1.5rem;
    font-size: clamp(1.5rem, 2.8vw, 2.1rem);
}

.section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.15rem;
}

.section-head a {
    color: var(--color-primary);
    font-weight: 700;
}

.cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    padding: 1.4rem;
    box-shadow: var(--shadow-soft);
}

.post-list {
    display: grid;
    gap: 1rem;
}

.post-item {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 1rem 1.25rem;
    box-shadow: var(--shadow-soft);
}

.post-item time {
    color: var(--color-muted);
    font-size: 0.88rem;
}

.post-item h2,
.post-item h3 {
    margin: 0.35rem 0 0;
    font-size: 1.2rem;
    line-height: 1.5;
}

.job-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.2rem;
}

.recruit-intro {
    position: relative;
    overflow: hidden;
    margin-bottom: clamp(2.8rem, 6vw, 4.8rem);
    padding: clamp(2rem, 5vw, 4rem);
    border: 1px solid rgba(23, 44, 111, 0.16);
    background: linear-gradient(135deg, #f3f8fa 0%, #ffffff 68%);
    box-shadow: var(--shadow-soft);
}

.recruit-intro::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: clamp(90px, 16vw, 190px);
    height: 5px;
    background: var(--gradient-brand);
}

.recruit-intro-label {
    margin: 0 0 0.7rem;
    color: var(--color-primary);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.2em;
}

.recruit-intro h1 {
    margin: 0;
    color: var(--color-primary-deep);
    font-size: clamp(1.8rem, 3.8vw, 3rem);
    line-height: 1.4;
    letter-spacing: 0.05em;
}

.recruit-intro-lead {
    max-width: 58rem;
    margin: 1.3rem 0 0;
    font-size: clamp(0.98rem, 1.5vw, 1.08rem);
    line-height: 2;
}

.recruit-list-title {
    margin-bottom: clamp(1.6rem, 3vw, 2.4rem);
}

.job-item {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0;
    overflow: hidden;
    box-shadow: var(--shadow-soft);
}

.job-item > a {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 1.4rem;
    padding: 1.2rem 1.4rem;
}

.job-item-image {
    position: relative;
}

.job-item-image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

/* 急募の求人を一覧で目立たせる */
.job-item.is-urgent {
    border-color: #e04a4a;
    border-width: 3px;
    box-shadow: 0 10px 26px rgba(224, 74, 74, 0.16);
    animation: kyoeikeibi-urgent-blink 1.2s step-end infinite;
}

@keyframes kyoeikeibi-urgent-blink {
    0% {
        border-color: #e04a4a;
        box-shadow: 0 10px 26px rgba(224, 74, 74, 0.18);
    }
    50% {
        border-color: #f3bfbf;
        box-shadow: 0 10px 26px rgba(224, 74, 74, 0.04);
    }
}

/* OS側で視差効果を減らす設定をしている環境では点滅させない */
@media (prefers-reduced-motion: reduce) {
    .job-item.is-urgent {
        animation: none;
    }
}

/* バッジを画像の上の余白に逃がすため、急募カードだけ上側を広く取る */
.job-item.is-urgent > a {
    padding-top: 3.3rem;
}

.job-urgent-badge {
    position: absolute;
    top: -2.7rem;
    left: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 104px;
    padding: 0.4rem 1.1rem;
    background: #e04a4a;
    color: #ffffff;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.4;
    box-shadow: 0 4px 12px rgba(224, 74, 74, 0.35);
}

.job-urgent-badge-inline {
    position: static;
    margin-right: 0.7rem;
    vertical-align: 0.1em;
}

.job-item-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0;
}

.job-item-body h2,
.job-item-body h3 {
    margin: 0 0 0.45rem;
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    line-height: 1.55;
}

.job-item-body p {
    margin: 0;
    color: var(--color-muted);
}

.job-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.3rem;
    margin-top: 0.65rem;
    padding: 0.75rem 0.9rem;
    border: 1px dotted var(--color-border);
    color: var(--color-primary);
    font-size: 0.92rem;
    line-height: 1.7;
}

.job-item-date {
    margin-top: 0.65rem;
    color: var(--color-muted);
    font-size: 0.92rem;
    font-weight: 700;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    padding: 0.7rem 1.25rem;
    font-weight: 700;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-primary {
    background: linear-gradient(140deg, #0aa8c6, var(--color-primary));
    color: #ffffff;
    box-shadow: 0 8px 20px rgba(6, 127, 151, 0.3);
}

.btn-outline {
    border: 1px solid #9ad6e4;
    color: var(--color-primary-strong);
    background: var(--color-primary-soft);
}

.single-article {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    padding: 1.6rem;
    box-shadow: var(--shadow-soft);
}

.single-article h1 {
    margin-top: 0.25rem;
}

.lead-text {
    color: var(--color-text);
}

.entry-content {
    margin-top: 1.25rem;
}

.job-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.25rem 0;
    background: var(--color-surface);
}

.job-table th,
.job-table td {
    border: 1px solid var(--color-border);
    padding: 0.75rem;
    text-align: left;
    vertical-align: top;
}

.job-table th {
    width: 190px;
    background: #eef7fa;
}

.job-detail-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: clamp(2rem, 5vw, 3.6rem);
}

.job-detail-head h1 {
    margin: 0;
    padding-left: 1rem;
    border-left: 5px solid var(--color-primary);
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    line-height: 1.4;
}

.job-detail-updated {
    min-width: 220px;
    color: var(--color-muted);
    font-size: 0.78rem;
    line-height: 1.65;
    text-align: left;
}

.job-detail-updated p {
    margin: 0;
}

.job-image-slider {
    position: relative;
    overflow: hidden;
    margin-bottom: clamp(2rem, 4vw, 3rem);
    border-radius: 16px;
    background: #eef7fa;
}

.job-image-slider-track {
    display: flex;
    transition: transform 0.35s ease;
}

.job-image-slider .single-thumbnail {
    flex: 0 0 100%;
    margin: 0;
}

.job-image-slider .single-thumbnail img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.job-image-slider-control {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 56px;
    transform: translateY(-50%);
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.86);
    color: var(--color-primary-strong);
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(16, 62, 76, 0.18);
}

.job-image-slider-prev {
    left: 1rem;
}

.job-image-slider-next {
    right: 1rem;
}

.job-image-slider-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 1rem;
    z-index: 2;
    display: flex;
    justify-content: center;
    gap: 0.45rem;
}

.job-image-slider-dot {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.58);
}

.job-image-slider-dot.is-active {
    width: 24px;
    background: #ffffff;
}

.job-intro-text {
    margin: 0 0 clamp(2.2rem, 5vw, 4rem);
    color: var(--color-text);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 2;
}

.job-intro-text p {
    margin: 0 0 1.6rem;
}

.job-intro-text p:last-child {
    margin-bottom: 0;
}

.job-section-title {
    margin: clamp(2rem, 4vw, 3rem) 0 1rem;
    padding-left: 0.9rem;
    border-left: 5px solid var(--color-primary);
    font-size: clamp(1.35rem, 2.4vw, 1.8rem);
    line-height: 1.35;
}

.job-apply-cta {
    margin-top: clamp(2.4rem, 5vw, 4rem);
    text-align: center;
}

.job-apply-btn {
    width: min(520px, 100%);
    min-height: 68px;
    border-radius: 999px;
    font-size: 1.2rem;
    letter-spacing: 0.08em;
    box-shadow: 0 16px 34px rgba(6, 127, 151, 0.34);
}

.site-footer {
    position: relative;
    margin-top: 0;
    border-top: 0;
    background: #eaf7fc;
    color: var(--color-text);
}

.site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 5px;
    background: var(--gradient-brand);
}

.footer-inner {
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(1.5rem, 3vw, 2.2rem);
    padding: clamp(2.2rem, 5vw, 3.2rem) 0 clamp(1.8rem, 3vw, 2.4rem);
    text-align: center;
}

.footer-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: clamp(1rem, 4vw, 4.5rem);
    width: 100%;
}

.footer-nav a {
    color: var(--color-text);
    font-size: 0.92rem;
    font-weight: 400;
    letter-spacing: 0.04em;
    transition: color 0.2s ease;
}

.footer-nav a:hover {
    color: var(--color-primary);
}

.footer-company {
    display: grid;
    gap: 1.15rem;
    place-items: center;
}

.footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    color: var(--color-primary-deep);
    font-size: clamp(1.05rem, 1.8vw, 1.35rem);
    font-weight: 700;
    letter-spacing: 0.03em;
}

.footer-logo-mark {
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    object-fit: contain;
}

.footer-address {
    display: grid;
    gap: 0.25rem;
    margin: 0;
    color: var(--color-muted);
    font-style: normal;
    font-size: 0.92rem;
    font-weight: 400;
    line-height: 1.65;
}

.footer-bottom {
    background: var(--color-primary-deep);
    color: rgba(255, 255, 255, 0.88);
}

.footer-copy {
    margin: 0;
    padding: 0.9rem 0;
    color: inherit;
    font-size: 0.78rem;
    font-weight: 400;
    text-align: center;
}

.contact-grid {
    margin-top: 1.5rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.contact-card {
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 1rem 1.2rem;
    background: var(--color-surface-soft);
}

.contact-main {
    /* メールアドレスは折り返し位置がないため、狭い画面では文字を縮めて収める */
    font-size: clamp(1.1rem, 4.6vw, 1.4rem);
    font-weight: 700;
    margin: 0.3rem 0;
    overflow-wrap: anywhere;
}

.section-divider {
    border: 0;
    border-top: 1px solid var(--color-border);
    margin: 1.8rem 0;
}

.apply-page {
    padding: 1.4rem 1rem;
}

.apply-target {
    margin: 0.8rem 0 1.2rem;
    border: 1px solid var(--color-border);
}

.apply-target-label {
    margin: 0;
    padding: 0.6rem 0.8rem;
    font-weight: 700;
    background: var(--color-surface-soft);
}

.apply-target-title {
    margin: 0;
    padding: 0.8rem;
    background: #4fb6cf;
    color: #ffffff;
    font-weight: 700;
}

.apply-required-note {
    color: #d23d3d;
    font-weight: 700;
}

.apply-field-note {
    margin-top: 6px;
    font-size: 0.85rem;
    color: #666;
}

.apply-row-field {
    min-width: 0;
}

.apply-row-field > .apply-field-note {
    margin: 0 0.8rem 0.8rem;
}

.apply-errors {
    margin: 0 0 1rem;
    border: 1px solid #f0b4b4;
    background: #fff1f1;
    color: #a42929;
    padding: 0.7rem 0.9rem;
}

.apply-errors p {
    margin: 0.2rem 0;
}

.apply-form {
    border: 1px solid var(--color-border);
    background: #fcfdfe;
}

.apply-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    border-bottom: 1px solid var(--color-border);
}

.apply-row > label:first-child,
.apply-row > .apply-row-label {
    background: var(--color-surface-soft);
    padding: 0.9rem 0.8rem;
    font-weight: 700;
    border-right: 1px solid var(--color-border);
}

.apply-row > label span,
.apply-row > .apply-row-label span {
    font-size: 0.72rem;
    margin-left: 0.4rem;
    color: #b00020;
    font-weight: 800;
}

.apply-row input,
.apply-row select,
.apply-row textarea,
.apply-inline-group {
    margin: 0.7rem 0.8rem;
}

.apply-row input,
.apply-row select,
.apply-row textarea {
    width: calc(100% - 1.6rem);
    border: 1px solid #cfdde3;
    border-radius: 4px;
    padding: 0.6rem 0.7rem;
    font-size: 1rem;
    background: #ffffff;
}

.apply-row input.field-sm,
.apply-row select.field-sm {
    width: min(calc(100% - 1.6rem), 11rem);
}

.apply-row input.field-md,
.apply-row select.field-md {
    width: min(calc(100% - 1.6rem), 16rem);
}

.contact-subject-options {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.8rem 2rem;
    padding: 0.9rem 0.8rem;
}

.contact-form .apply-row > label:first-child,
.contact-form .apply-row > .apply-row-label,
.contact-subject-option {
    white-space: nowrap;
}

.contact-subject-option {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}

.apply-row .contact-subject-option input {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0;
    accent-color: var(--color-primary);
}

.apply-inline-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.apply-inline-group select {
    width: auto;
    min-width: 96px;
    margin: 0;
}

.radio-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid #cfdde3;
    border-radius: 4px;
    padding: 0.35rem 0.7rem;
    background: #ffffff;
    font-weight: 500;
}

.apply-privacy {
    margin: 1rem;
    padding: 0.9rem 1rem;
    background: var(--color-surface-soft);
    border: 1px solid var(--color-border);
    font-size: 0.92rem;
}

.apply-submit-wrap {
    margin: 1rem;
    padding: 1.4rem;
    background: var(--color-accent-soft);
    text-align: center;
}

.apply-submit-wrap-double {
    display: flex;
    justify-content: center;
    gap: 0.8rem;
    flex-wrap: wrap;
}

.apply-submit-btn {
    border: 0;
    border-radius: 4px;
    padding: 0.95rem 2.6rem;
    background: #ff5959;
    color: #ffffff;
    font-size: 1.15rem;
    font-weight: 700;
    cursor: pointer;
}

.apply-submit-btn-back {
    background: #7b8f99;
}

.apply-confirm-table {
    width: 100%;
    border-collapse: collapse;
}

.apply-confirm-table th,
.apply-confirm-table td {
    border-bottom: 1px solid var(--color-border);
    text-align: left;
    vertical-align: top;
    padding: 0.85rem;
}

.apply-confirm-table th {
    width: 230px;
    background: var(--color-surface-soft);
}

.apply-confirm-table td {
    overflow-wrap: anywhere;
}

.apply-complete-box {
    border: 1px solid #dcefb3;
    background: var(--color-accent-soft);
    border-radius: 10px;
    padding: 1.1rem 1rem;
}

.apply-complete-title {
    margin: 0 0 0.7rem;
    color: #4c7a00;
    font-size: 1.2rem;
    font-weight: 700;
}

.global-nav-title {
    display: none;
}

.home {
    background: #06181f;
}

.home .site-main {
    padding-top: 0;
}

.home .site-header {
    position: fixed;
    width: 100%;
    padding: 0.45rem 0;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(9px);
}

.home.is-scrolled .site-header {
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.12);
}

.home .header-inner {
    position: relative;
    min-height: 48px;
    align-items: center;
    gap: 2rem;
    border-radius: 0;
    border-color: rgba(91, 116, 128, 0.7);
    background: rgba(255, 255, 255, 0.86);
    box-shadow: none;
    padding: 0.35rem 0.7rem;
}

.home .site-logo {
    min-width: 190px;
    border: 1px solid rgba(91, 116, 128, 0.75);
    padding: 0.3rem 0.8rem;
    text-align: center;
    align-items: center;
}

.home .site-logo-main {
    font-size: 1.35rem;
}

.home .site-logo-sub {
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.56rem;
}

.home .global-nav {
    display: none;
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 50%;
    z-index: 220;
    width: min(720px, calc(100vw - 2rem));
    min-height: 38px;
    padding: 0.5rem;
    transform: translateX(-50%);
    border: 1px solid rgba(91, 116, 128, 0.75);
    background: rgba(255, 255, 255, 0.7);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.16);
}

.home .global-nav.is-open {
    display: block;
}

.home .global-nav-title {
    display: none;
    margin: 0;
    color: var(--color-text);
    font-size: clamp(1.25rem, 2.2vw, 1.9rem);
    line-height: 1;
    letter-spacing: 0.08em;
}

.home .global-nav .menu {
    display: flex;
    flex-wrap: wrap;
}

.home .header-contact-btn {
    display: none;
}

.home .menu-toggle {
    flex: 1;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    border-color: rgba(91, 116, 128, 0.75);
    background: rgba(255, 255, 255, 0.7);
    color: var(--color-text);
    font-size: clamp(1.25rem, 2.2vw, 1.9rem);
    font-weight: 500;
    letter-spacing: 0.08em;
}

.top-page {
    background: #06181f;
    color: #ffffff;
    padding-bottom: 3.5rem;
}

.top-visual {
    padding: clamp(4.8rem, 8vw, 6rem) 0 clamp(1.5rem, 3vw, 2.4rem);
}

.top-visual-secondary {
    padding-top: clamp(2.2rem, 4vw, 3.5rem);
}

.top-visual-slider {
    position: relative;
    width: min(1260px, calc(100% - 2rem));
    min-height: clamp(430px, 62vw, 620px);
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid rgba(150, 176, 186, 0.5);
    background: #0d2129;
}

.top-visual-track,
.top-visual-slide {
    position: absolute;
    inset: 0;
}

.top-visual-slide {
    opacity: 0;
    transition: opacity 0.5s ease;
}

.top-visual-slide.is-active {
    opacity: 1;
}

.top-visual-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-visual-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(6, 24, 31, 0.34);
}

.top-visual-message {
    position: absolute;
    z-index: 3;
    inset: clamp(3rem, 7vw, 5.4rem) clamp(7rem, 14vw, 12rem);
    display: grid;
    place-content: center;
    text-align: center;
    padding: clamp(1.4rem, 4vw, 3rem);
    background: rgba(238, 244, 247, 0.84);
    border: 1px solid rgba(255, 255, 255, 0.48);
    color: var(--color-text);
}

.top-visual-message h1,
.top-visual-message h2 {
    margin: 0.25rem 0 0.85rem;
    font-size: clamp(1.7rem, 3.2vw, 3rem);
    line-height: 1.45;
    letter-spacing: 0.05em;
}

.top-visual-message p {
    margin: 0;
    font-size: clamp(0.95rem, 1.5vw, 1.2rem);
}

.top-visual-message .top-visual-kicker {
    margin-bottom: 0.4rem;
    color: var(--color-muted);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.top-visual-control {
    position: absolute;
    top: 50%;
    z-index: 4;
    width: clamp(82px, 10vw, 132px);
    height: clamp(190px, 28vw, 300px);
    transform: translateY(-50%);
    border: 1px solid rgba(255, 255, 255, 0.5);
    background: rgba(238, 244, 247, 0.82);
    color: var(--color-text);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    transition: background 0.2s ease, transform 0.2s ease;
}

.top-visual-control:hover {
    background: rgba(255, 255, 255, 0.92);
    transform: translateY(-50%) scale(1.02);
}

.top-visual-control span {
    font-size: clamp(1.8rem, 3.3vw, 2.7rem);
    line-height: 1;
}

.top-visual-control small {
    font-size: 0.72rem;
    line-height: 1.6;
    writing-mode: horizontal-tb;
}

.top-visual-control-prev {
    left: clamp(0.8rem, 2.6vw, 2.4rem);
}

.top-visual-control-next {
    right: clamp(0.8rem, 2.6vw, 2.4rem);
}

.top-scroll-note {
    padding: 0.6rem 0 1.4rem;
}

.top-scroll-note-inner {
    width: min(1100px, calc(100% - 6rem));
    min-height: 138px;
    margin: 0 auto;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: #cfd9dd;
    color: var(--color-text);
    text-align: center;
}

.top-scroll-note-inner p {
    margin: 0;
    font-size: clamp(1.25rem, 2.2vw, 2rem);
    letter-spacing: 0.05em;
}

.top-intro-visual {
    position: relative;
}

.top-intro-panel {
    position: relative;
    z-index: 5;
    margin-top: -5.5rem;
    padding: clamp(1.4rem, 3vw, 2.4rem);
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.9);
    color: var(--color-text);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.18);
}

.top-intro-panel h2 {
    margin: 0 0 0.75rem;
    font-size: clamp(1.45rem, 2.6vw, 2.15rem);
    line-height: 1.45;
}

.top-intro-panel p {
    max-width: 56rem;
}

@media (max-width: 1080px) {
    .site-logo-sub {
        display: none;
    }

    .global-nav .menu-item a {
        padding-left: 0.65rem;
        padding-right: 0.65rem;
        font-size: 0.8rem;
    }

    .top-visual-message {
        inset: 2.4rem 6rem;
    }
}

@media (max-width: 900px) {
    .cards,
    .job-list {
        grid-template-columns: 1fr;
    }

    .site-header {
        padding-top: 0.7rem;
    }

    .header-inner {
        min-height: 66px;
        border-radius: 16px;
        padding: 0.65rem 0.9rem;
        flex-wrap: wrap;
    }

    .site-logo {
        min-width: 0;
        flex: 1;
    }

    .site-logo-mark {
        width: 34px;
        height: 34px;
    }

    .site-logo-main {
        font-size: 1.35rem;
    }

    .header-contact-btn {
        order: 3;
        width: 100%;
    }

    .header-phone {
        display: none;
    }

    .menu-toggle {
        display: inline-flex;
    }

    .global-nav {
        display: none;
        width: 100%;
        order: 4;
    }

    .home .global-nav {
        display: none;
    }

    .global-nav.is-open {
        display: block;
        margin-top: 0.5rem;
        padding-top: 0.45rem;
        border-top: 1px solid var(--color-border);
    }

    .home .global-nav.is-open {
        display: block;
        background: rgba(255, 255, 255, 0.92);
    }

    .global-nav .menu {
        flex-direction: column;
        align-items: stretch;
    }

    .global-nav .menu-item a {
        min-height: 40px;
    }

    .hero {
        border-radius: 16px;
    }

    .top-visual {
        padding-top: 5.5rem;
    }

    .top-visual-slider {
        width: calc(100% - 1rem);
        min-height: 540px;
    }

    .top-visual-message {
        inset: 5rem 1.2rem 8.5rem;
    }

    .top-visual-control {
        top: auto;
        bottom: 1.2rem;
        width: calc(50% - 1.6rem);
        height: 72px;
        transform: none;
        flex-direction: row;
    }

    .top-visual-control:hover {
        transform: none;
    }

    .top-visual-control-prev {
        left: 1rem;
    }

    .top-visual-control-next {
        right: 1rem;
    }

    .top-scroll-note-inner {
        width: calc(100% - 1rem);
        min-height: 110px;
    }

    .top-intro-panel {
        margin-top: -3rem;
    }

    .contact-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .contact-subject-options {
        flex-wrap: wrap;
        gap: 0.6rem 1.4rem;
    }

    .apply-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .apply-row > label:first-child,
    .apply-row > .apply-row-label {
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }

    .apply-confirm-table,
    .apply-confirm-table tbody,
    .apply-confirm-table tr {
        display: block;
        width: 100%;
    }

    .apply-confirm-table th,
    .apply-confirm-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    .apply-confirm-table th {
        width: 100%;
        border-bottom: 0;
        padding-bottom: 0.25rem;
    }

    .apply-confirm-table td {
        padding-top: 0.2rem;
    }
}

/* Home visual style: simple header + full-width hero slider */
.home {
    background: var(--color-bg);
}

.home .site-header {
    position: sticky;
    top: 0;
    width: 100%;
    padding: 0 0 7px;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(8px);
    box-shadow: none;
}

.home.is-scrolled .site-header {
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 8px 22px rgba(11, 52, 64, 0.08);
}

.home .site-main {
    padding-top: 0;
}

.home .header-inner {
    min-height: 62px;
    padding: 0;
    gap: clamp(1rem, 2vw, 2rem);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.home .site-logo {
    flex: 0 0 clamp(260px, 24vw, 340px);
    min-width: 0;
    padding: 0;
    border: 0;
    text-align: left;
    align-items: center;
}

.home .site-logo-main {
    color: var(--color-primary-deep);
    font-size: clamp(1.05rem, 1.35vw, 1.4rem);
    line-height: 1.1;
    font-weight: 800;
}

.home .site-logo-sub {
    max-width: none;
    color: var(--color-text);
    font-size: 0.6rem;
    line-height: 1.2;
    white-space: normal;
}

.home .menu-toggle {
    display: none;
}

.home .global-nav {
    position: static;
    display: block;
    flex: 1;
    width: auto;
    min-height: 0;
    padding: 0;
    transform: none;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.home .global-nav-title {
    display: none;
}

.home .global-nav .menu {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: clamp(1.2rem, 3vw, 3.2rem);
}

.home .global-nav .menu-item a {
    justify-content: center;
    min-width: 104px;
    min-height: 62px;
    padding: 0 0.8rem;
    border-radius: 0;
    color: var(--color-text);
    background: transparent;
    font-size: clamp(0.82rem, 1.1vw, 0.98rem);
    letter-spacing: 0.02em;
}

.home .global-nav .menu-item a:hover,
.home .global-nav .current-menu-item > a,
.home .global-nav .current_page_item > a {
    color: var(--color-primary);
    background: transparent;
}

.home .header-contact-btn {
    min-height: 62px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-text);
    box-shadow: none;
    font-size: clamp(0.72rem, 1vw, 0.9rem);
}

.home .header-phone {
    flex: 0 0 clamp(260px, 24vw, 340px);
    min-height: 62px;
}

.top-page {
    padding-bottom: 0;
    background: #ffffff;
    color: var(--color-text);
}

/* ヘッダー下のブランドラインとスライダー画像の間に余白を取る */
.top-visual {
    padding: 0;
}

.top-visual-slider {
    width: 100%;
    /* 写真の縦横比に近い高さにして、上下の切れ幅を最小限に抑える */
    min-height: clamp(390px, 56vw, 82vh);
    border: 0;
    background: #e6eff2;
}

.top-visual-slide img {
    object-fit: cover;
    object-position: center;
}

.top-visual-slide::after {
    background: linear-gradient(90deg, rgba(5, 18, 27, 0.72) 0%, rgba(5, 18, 27, 0.42) 48%, rgba(5, 18, 27, 0.08) 78%);
}

.top-visual-message {
    display: none;
}

.top-visual-copy {
    position: absolute;
    left: clamp(4.8rem, 10vw, 9rem);
    bottom: clamp(2.6rem, 8vw, 6.5rem);
    z-index: 3;
    width: min(720px, calc(100% - 9.6rem));
    color: #ffffff;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.38);
}

.top-visual-copy h1 {
    margin: 0;
    font-size: clamp(2rem, 4.2vw, 3.9rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
}

.top-visual-copy h1 span {
    display: block;
    margin-top: 0.2em;
    font-size: 0.72em;
    letter-spacing: 0.08em;
    /* 濃い縁で文字を保ち、外側は暖色のモヤで社名を目立たせる */
    -webkit-text-stroke: 0.055em #021018;
    paint-order: stroke fill;
    text-shadow:
        0.04em 0.04em 0 #021018,
        -0.04em 0.04em 0 #021018,
        0.04em -0.04em 0 #021018,
        -0.04em -0.04em 0 #021018,
        0.04em 0 0 #021018,
        -0.04em 0 0 #021018,
        0 0.04em 0 #021018,
        0 -0.04em 0 #021018,
        0 0 0.12em rgba(255, 196, 90, 0.95),
        0 0 0.32em rgba(255, 154, 40, 0.88),
        0 0 0.55em rgba(255, 120, 20, 0.7),
        0 0 0.9em rgba(255, 96, 0, 0.45);
}

.top-visual-copy p {
    max-width: 46rem;
    margin: 1.25rem 0 0;
    font-size: clamp(0.92rem, 1.35vw, 1.08rem);
    font-weight: 500;
    line-height: 1.9;
}

.top-visual-control {
    width: 48px;
    height: 64px;
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.78);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.top-visual-control:hover {
    background: transparent;
    color: #ffffff;
    transform: translateY(-50%);
}

.top-visual-control span {
    font-size: clamp(2rem, 3.6vw, 3.2rem);
    font-weight: 300;
}

.top-visual-control small {
    display: none;
}

.top-visual-control-prev {
    left: clamp(1rem, 6vw, 5.5rem);
}

.top-visual-control-next {
    right: clamp(1rem, 6vw, 5.5rem);
}

.top-page-links {
    padding: clamp(2.8rem, 5vw, 4.6rem) 0;
    background: #ffffff;
}

.top-page-links-title {
    margin: 0 0 clamp(1.8rem, 3vw, 2.6rem);
    text-align: center;
    color: var(--color-primary-deep);
    font-size: clamp(1.6rem, 2.8vw, 2.25rem);
    line-height: 1.35;
    letter-spacing: 0.08em;
}

.top-page-links-title::after {
    content: "";
    display: block;
    width: 64px;
    height: 3px;
    margin: 0.85rem auto 0;
    border-radius: 999px;
    background: var(--gradient-brand);
}

/* 4枚の間隔を広げつつ、補足文が2行で収まる列幅を確保する */
.top-page-links .container {
    width: min(1280px, calc(100% - 3rem));
}

.top-page-link-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1.5rem, 3.4vw, 3.4rem);
    max-width: 1280px;
    margin: 0 auto;
}

.top-page-link-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    color: var(--color-text);
    transition: color 0.2s ease, transform 0.2s ease;
}

.top-page-link-card:hover {
    color: var(--color-primary);
    transform: translateY(-2px);
}

.top-page-link-card:nth-child(even):hover {
    color: var(--color-accent-strong);
}

.top-page-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 0.7rem;
    border: 1px solid rgba(6, 200, 232, 0.72);
    border-radius: 50%;
    color: var(--color-primary);
    background: rgba(6, 200, 232, 0.08);
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.top-page-link-card:nth-child(even) .top-page-link-icon {
    border-color: rgba(140, 207, 0, 0.72);
    color: var(--color-accent-strong);
    background: rgba(140, 207, 0, 0.1);
}

.top-page-link-card:hover .top-page-link-icon {
    border-color: var(--color-logo-blue);
    background: var(--color-logo-blue);
    color: #ffffff;
}

.top-page-link-card:nth-child(even):hover .top-page-link-icon {
    border-color: var(--color-logo-green);
    background: var(--color-logo-green);
    color: #ffffff;
}

.top-page-link-icon svg {
    width: 30px;
    height: 30px;
    fill: currentColor;
}

.top-page-link-title {
    margin-bottom: 0.65rem;
    font-size: 0.96rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    transition: text-decoration-color 0.2s ease;
}

.top-page-link-card:hover .top-page-link-title {
    text-decoration-color: currentColor;
}

.top-page-link-text {
    color: var(--color-muted);
    font-size: 0.78rem;
    line-height: 1.75;
}

.top-scroll-note,
.top-intro-visual {
    display: none;
}

@media (max-width: 900px) {
    .home .header-inner {
        min-height: 64px;
        padding: 0.55rem 0;
    }

    .home .menu-toggle {
        display: inline-flex;
        flex: 0 0 auto;
        min-height: 40px;
        padding: 0.45rem 0.7rem;
        border-radius: 8px;
        font-size: 0.84rem;
        letter-spacing: 0.02em;
    }

    .home .global-nav {
        position: static;
        flex: 0 0 100%;
        width: 100%;
        transform: none;
    }

    .home .global-nav:not(.is-open) {
        display: none;
    }

    .home .global-nav.is-open {
        display: block;
        margin-top: 0.5rem;
        padding-top: 0.5rem;
        border-top: 1px solid var(--color-border);
        box-shadow: none;
    }

    .home .global-nav .menu {
        align-items: stretch;
        gap: 0;
    }

    .home .global-nav .menu-item a {
        min-height: 42px;
    }

    .home .header-contact-btn {
        display: none;
    }

    .home .header-phone {
        display: none;
    }

    .top-visual-slider {
        /* 写真の高さに近づけて、上下の余白が広くなりすぎないようにする */
        min-height: clamp(430px, 78vw, 560px);
    }

    .top-visual-copy {
        left: clamp(1.5rem, 6vw, 3rem);
        bottom: clamp(1.8rem, 6vw, 3rem);
        width: calc(100% - clamp(3rem, 12vw, 6rem));
    }

    .top-visual-copy h1 {
        font-size: clamp(1.7rem, 6vw, 2.5rem);
    }

    .top-visual-copy p {
        margin-top: 0.9rem;
        font-size: clamp(0.84rem, 2.5vw, 0.98rem);
        line-height: 1.75;
    }

    .top-visual-control {
        top: 50%;
        bottom: auto;
        width: 42px;
        height: 58px;
        transform: translateY(-50%);
    }

    .top-visual-control:hover {
        transform: translateY(-50%);
    }

    .top-page-link-list {
        grid-template-columns: 1fr;
        gap: 2.4rem;
        max-width: 420px;
    }

    .job-item > a {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 1rem;
    }

    .job-item-image img {
        aspect-ratio: 16 / 10;
    }

    .job-item-meta {
        flex-direction: column;
        gap: 0.25rem;
    }
}

/* 4列だと補足文が3行になる幅からは2列に切り替える */
@media (max-width: 1199px) and (min-width: 901px) {
    .top-page-link-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 720px;
    }
}

/* Shared page style based on the top page */
.site-header {
    position: sticky;
    top: 0;
    z-index: 200;
    width: 100%;
    /* 「警備依頼はこちら」のボタンと下端のラインが接触しないよう余白を確保する */
    padding: 0 0 7px;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(8px);
    box-shadow: none;
}

.is-scrolled .site-header {
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 8px 22px rgba(11, 52, 64, 0.08);
}

.site-header::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 5px;
    background: var(--gradient-brand);
}

.site-main {
    padding-top: 0;
}

.header-inner {
    min-height: 62px;
    padding: 0;
    gap: clamp(1rem, 2vw, 2rem);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.site-logo {
    flex: 0 0 clamp(260px, 24vw, 340px);
    min-width: 0;
    padding: 0;
    border: 0;
    text-align: left;
    align-items: center;
}

.site-logo-main {
    color: var(--color-primary-deep);
    font-size: clamp(1.05rem, 1.35vw, 1.4rem);
    line-height: 1.1;
    font-weight: 800;
}

.site-logo-sub {
    max-width: none;
    color: var(--color-text);
    font-size: 0.6rem;
    line-height: 1.2;
    white-space: normal;
}

.global-nav {
    position: static;
    display: block;
    flex: 1;
    width: auto;
    min-height: 0;
    padding: 0;
    transform: none;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.global-nav .menu {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: clamp(1.2rem, 3vw, 3.2rem);
}

.global-nav .menu-item a {
    position: relative;
    justify-content: center;
    min-width: 104px;
    min-height: 62px;
    padding: 0 0.8rem;
    border-radius: 0;
    color: var(--color-text);
    background: transparent;
    font-size: clamp(0.82rem, 1.1vw, 0.98rem);
    letter-spacing: 0.02em;
}

.global-nav .menu-item a::after {
    content: "";
    position: absolute;
    bottom: 14px;
    left: 50%;
    width: 0;
    height: 2px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: var(--gradient-brand);
    transition: width 0.2s ease;
}

.global-nav .menu-item a:hover,
.global-nav .current-menu-item > a,
.global-nav .current_page_item > a {
    color: var(--color-primary);
    background: transparent;
}

.global-nav .menu-item a:hover::after,
.global-nav .current-menu-item > a::after,
.global-nav .current_page_item > a::after {
    width: calc(100% - 1.6rem);
}

.section {
    padding: clamp(3.2rem, 7vw, 5.5rem) 0;
}

/* トップページ以外の共通背景。ロゴ2色（ブルー・グリーン）を淡くしたグラデーション */
body:not(.home) {
    /* 上部のロゴカラーの光。ここが濃度100%の基準 */
    background:
        radial-gradient(68% 52% at 4% -6%, rgba(6, 200, 232, 0.26), rgba(6, 200, 232, 0) 72%),
        radial-gradient(62% 48% at 102% 10%, rgba(140, 207, 0, 0.22), rgba(140, 207, 0, 0) 72%),
        /* 右側のロゴグリーンを下部まで継続させる */
        radial-gradient(36% 68% at 108% 55%, rgba(140, 207, 0, 0.10), rgba(140, 207, 0, 0) 74%),
        radial-gradient(56% 40% at 100% 102%, rgba(140, 207, 0, 0.20), rgba(140, 207, 0, 0) 74%),
        /* 縦方向の濃度。上部100%→中央10%、そこから最下部の30%まで戻す */
        linear-gradient(
            180deg,
            rgba(6, 200, 232, 0.13) 0%,
            rgba(6, 200, 232, 0.039) 50%,
            rgba(6, 200, 232, 0.06) 68%,
            rgba(6, 200, 232, 0.117) 100%
        ),
        #ffffff;
    background-repeat: no-repeat;
}

body:not(.home) .section:first-child {
    background: transparent;
}

body:not(.home) .section-title,
body:not(.home) .single-article h1 {
    margin: 0 0 clamp(1.5rem, 3vw, 2.3rem);
    text-align: center;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    letter-spacing: 0.04em;
}

body:not(.home) .lead-text {
    max-width: 44rem;
    margin: -0.8rem auto 2rem;
    text-align: center;
}

.single-article {
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.single-article > p a:not(.btn),
.entry-content a:not(.btn) {
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.entry-content,
.contact-grid,
.apply-form,
.apply-target,
.post-list,
.job-list {
    margin-top: clamp(1.4rem, 3vw, 2.2rem);
}

.entry-content {
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
    font-size: 1rem;
}

.card,
.post-item,
.job-item,
.contact-card {
    border: 1px solid var(--color-border-soft);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.07);
}

.contact-card {
    padding: clamp(1.3rem, 3vw, 2rem);
    text-align: center;
}

.contact-card h2 {
    margin-top: 0;
    font-size: 1.2rem;
}

.contact-form-head {
    margin-top: clamp(1.8rem, 4vw, 3rem);
    text-align: center;
}

.contact-form-head h2 {
    margin: 0 0 0.45rem;
    font-size: clamp(1.35rem, 2.4vw, 1.8rem);
}

.contact-form-head p {
    margin: 0;
    color: var(--color-muted);
}

.contact-form-head span {
    color: #b00020;
    font-weight: 800;
}

.contact-form,
.contact-complete-box {
    margin-top: clamp(1.4rem, 3vw, 2rem);
}

.company-profile {
    margin-top: clamp(1.6rem, 3vw, 2.4rem);
    border: 1px solid var(--color-border-soft);
    border-radius: 18px;
    padding: clamp(1.4rem, 3vw, 2.2rem);
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.07);
}

.company-message {
    /* 下の会社概要ブロック（.company-info-grid）と幅を揃える */
    width: min(1200px, 100%);
    margin: clamp(1.6rem, 4vw, 3rem) auto 0;
    padding: clamp(1.4rem, 3vw, 2.4rem) clamp(1.2rem, 3vw, 2.6rem);
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.06);
}

.company-message h2,
.company-profile h2,
.company-strength-card h2 {
    margin-top: 0;
    font-size: 1.2rem;
}

.company-message h2 {
    margin-bottom: clamp(1.4rem, 3vw, 2rem);
    text-align: center;
    font-size: clamp(1.35rem, 2.4vw, 1.8rem);
    letter-spacing: 0.08em;
}

.company-message p {
    margin-bottom: 0;
}

.company-message p + p {
    margin-top: 1rem;
}

/* 役職名と横書き署名を同じ高さの中心で横一線に並べる */
.company-message-signature {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(0.55rem, 1.4vw, 1rem);
    margin-top: clamp(1.8rem, 3.4vw, 2.6rem);
    line-height: 1.4;
}

.company-message-role {
    flex: 0 0 auto;
    white-space: nowrap;
    letter-spacing: 0.08em;
}

/* 直筆署名を横向きで表示し、役職名と同じ一行に収める */
.company-message-name {
    flex: 0 0 auto;
    width: auto;
    height: clamp(2.5rem, 5vw, 3.6rem);
}

.company-info-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(420px, 0.75fr);
    align-items: stretch;
    gap: 0;
    width: min(1200px, 100%);
    margin-top: clamp(1.8rem, 4vw, 3rem);
    margin-right: auto;
    margin-left: auto;
    overflow: hidden;
    border: 1px solid #e5edf6;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(31, 57, 89, 0.07);
}

.company-info-grid .company-profile,
.company-info-grid .company-map {
    margin-top: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.company-info-grid .company-map {
    border-left: 1px solid #e5edf6;
}

.company-table {
    width: 100%;
    border-collapse: collapse;
}

.company-table th,
.company-table td {
    border-bottom: 1px solid var(--color-border-soft);
    padding: 1rem 0.9rem;
    text-align: left;
    vertical-align: top;
}

.company-table tr:last-child th,
.company-table tr:last-child td {
    border-bottom: 0;
}

.company-table th {
    width: 160px;
    color: var(--color-primary-strong);
    font-weight: 700;
}

.company-address-link {
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.company-strengths {
    margin-top: clamp(1.6rem, 3vw, 2.4rem);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.company-strength-card {
    border: 1px solid var(--color-border-soft);
    border-radius: 18px;
    padding: 1.4rem;
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.07);
}

.company-strength-card p {
    margin-bottom: 0;
}

.company-map {
    margin-top: clamp(1.6rem, 3vw, 2.4rem);
    border: 1px solid var(--color-border-soft);
    border-radius: 18px;
    padding: clamp(1.4rem, 3vw, 2.2rem);
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.07);
}

.company-map h2,
.company-certificate h2 {
    margin-top: 0;
    font-size: 1.2rem;
}

.company-map-frame {
    overflow: hidden;
    margin-top: 1rem;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    background: var(--color-surface-soft);
}

.company-map-frame iframe {
    display: block;
    width: 100%;
    height: 430px;
    border: 0;
}

.company-map-link {
    margin: 1rem 0 0;
    text-align: center;
}

.company-certificate {
    width: min(1200px, 100%);
    margin: clamp(2.2rem, 5vw, 4rem) auto 0;
    border: 1px solid var(--color-border-soft);
    border-radius: 18px;
    padding: clamp(1.4rem, 3vw, 2.2rem);
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.07);
}

.company-certificate img {
    width: 100%;
    height: auto;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: #ffffff;
}

.security-service-hero {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    align-items: center;
    gap: clamp(1.6rem, 4vw, 3rem);
}

.security-service-hero-text {
    padding: clamp(1rem, 3vw, 2rem) 0;
}

body:not(.home) .security-service-hero .section-title {
    margin-bottom: 1rem;
    text-align: left;
}

.service-title-parenthetical {
    display: inline-block;
    margin-left: 0.25em;
    font-size: 0.52em;
    letter-spacing: 0.03em;
    vertical-align: 0.12em;
    white-space: nowrap;
}

body:not(.home) .security-service-hero .lead-text {
    margin: 0;
    text-align: left;
    color: #172c6f;
    font-size: calc(1rem + 1pt);
    font-weight: 700;
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
}

.service-lead-sp {
    display: none;
}

.service-lead-pc {
    display: inline;
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
}

.security-service-page .lead-text,
.security-service-card p,
.security-service-achievements li,
.services-index-page .lead-text,
.services-index-body p {
    color: var(--color-text);
}

.security-service-kicker {
    margin: 0 0 0.8rem;
    color: #67778a;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.security-service-visual {
    margin: 0;
    overflow: hidden;
    border-radius: 22px;
    box-shadow: 0 18px 36px rgba(16, 62, 76, 0.12);
}

.security-service-visual img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.security-service-body {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
    gap: clamp(1rem, 3vw, 1.8rem);
    margin-top: clamp(1.8rem, 4vw, 3rem);
}

.security-service-card {
    border: 1px solid var(--color-border-soft);
    border-radius: 18px;
    padding: clamp(1.4rem, 3vw, 2.2rem);
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.07);
}

.security-service-card h2 {
    margin: 0 0 1rem;
    padding-left: 0.8rem;
    border-left: 4px solid var(--color-logo-blue);
    font-size: 1.25rem;
}

.security-service-card p {
    margin: 0 0 1rem;
}

.security-service-card p:last-child {
    margin-bottom: 0;
}

.security-service-achievements ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.security-service-achievements li {
    position: relative;
    padding: 0.65rem 0 0.65rem 1.35rem;
    border-bottom: 1px solid var(--color-border-soft);
}

.security-service-achievements li:last-child {
    border-bottom: 0;
}

.security-service-achievements li::before {
    content: "";
    position: absolute;
    top: 1.25rem;
    left: 0;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: var(--color-logo-green);
}

.security-service-actions {
    display: flex;
    justify-content: center;
    gap: 0.8rem;
    flex-wrap: wrap;
    margin-top: clamp(1.8rem, 4vw, 3rem);
}

.services-index-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 1.6rem);
    margin-top: clamp(1.8rem, 4vw, 3rem);
}

.services-index-card {
    overflow: hidden;
    border: 1px solid var(--color-border-soft);
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.07);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.services-index-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 38px rgba(16, 62, 76, 0.12);
}

.services-index-card a {
    display: grid;
    height: 100%;
    color: inherit;
}

.services-index-visual {
    margin: 0;
    background: #eef7fa;
}

.services-index-visual img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.services-index-body {
    display: grid;
    gap: 0.7rem;
    padding: clamp(1.2rem, 3vw, 1.7rem);
}

.services-index-body h2 {
    margin: 0;
    padding-left: 0.75rem;
    border-left: 4px solid var(--color-logo-blue);
    font-size: 1.2rem;
    line-height: 1.45;
}

.services-index-card:nth-child(even) .services-index-body h2 {
    border-left-color: var(--color-logo-green);
}

.services-index-body p {
    margin: 0;
    color: var(--color-text);
}

.services-index-more {
    justify-self: start;
    margin-top: 0.3rem;
    color: var(--color-primary);
    font-weight: 700;
}

.privacy-policy-content {
    display: grid;
    gap: 1rem;
    margin-top: clamp(1.8rem, 4vw, 3rem);
}

.privacy-policy-card {
    border: 1px solid var(--color-border-soft);
    border-radius: 18px;
    padding: clamp(1.25rem, 3vw, 1.8rem);
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.07);
}

.privacy-policy-card h2 {
    margin: 0 0 0.75rem;
    padding-left: 0.8rem;
    border-left: 4px solid var(--color-primary);
    font-size: 1.15rem;
    line-height: 1.45;
}

.privacy-policy-card h3 {
    margin: 1.3rem 0 0.55rem;
    color: var(--color-text);
    font-size: 1rem;
    line-height: 1.55;
}

.privacy-policy-card p {
    margin: 0 0 0.8rem;
    color: var(--color-muted);
}

.privacy-policy-card p:last-child {
    margin-bottom: 0;
}

.privacy-policy-card ul,
.privacy-policy-card ol {
    margin: 0.4rem 0 1rem;
    padding-left: 1.4rem;
    color: var(--color-muted);
}

.privacy-policy-card li {
    margin: 0.25rem 0;
}

.privacy-policy-card a {
    color: var(--color-primary-strong);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.section-divider {
    border-top-color: var(--color-border-soft);
}

.apply-page {
    padding: 0;
}

.apply-target,
.apply-form,
.apply-complete-box {
    border: 1px solid var(--color-border-soft);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(16, 62, 76, 0.07);
    overflow: hidden;
}

.apply-target-label {
    padding: 0.75rem 1rem;
    background: var(--color-surface-soft);
}

.apply-target-title {
    padding: 1rem;
    background: #ffffff;
    color: var(--color-primary-strong);
}

.apply-row {
    border-bottom-color: var(--color-border-soft);
}

.apply-row > label:first-child,
.apply-row > .apply-row-label,
.apply-confirm-table th {
    background: var(--color-surface-soft);
    border-right-color: var(--color-border-soft);
}

.apply-row input,
.apply-row select,
.apply-row textarea {
    border-color: var(--color-border);
    border-radius: 8px;
}

.radio-chip {
    border-color: var(--color-border);
    border-radius: 999px;
}

.apply-inline-group .radio-chip {
    position: relative;
    min-width: 112px;
    min-height: 46px;
    justify-content: center;
    gap: 0.55rem;
    padding: 0.65rem 1.2rem;
    border: 1px solid #cddfe6;
    background: #ffffff;
    color: var(--color-text);
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.apply-inline-group .radio-chip:hover {
    border-color: var(--color-primary);
    box-shadow: 0 8px 18px rgba(6, 127, 151, 0.12);
}

.apply-inline-group .radio-chip input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--color-primary);
}

.apply-inline-group .radio-chip span {
    white-space: nowrap;
    font-weight: 700;
    line-height: 1;
}

.apply-inline-group .radio-chip:has(input:checked) {
    border-color: var(--color-primary);
    background: var(--color-primary-soft);
    color: var(--color-primary-strong);
    box-shadow: 0 8px 18px rgba(6, 127, 151, 0.14);
}

.apply-privacy,
.apply-submit-wrap {
    border-color: var(--color-border-soft);
    border-radius: 14px;
    background: var(--color-surface-soft);
}

.apply-submit-btn {
    border-radius: 999px;
    background: linear-gradient(140deg, #0aa8c6, var(--color-primary));
    box-shadow: 0 8px 20px rgba(6, 127, 151, 0.25);
}

.apply-submit-btn-back {
    background: #7b8f99;
}

/* 支援技術向けのテキスト。画面上には表示しない */
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.pagination {
    margin-top: 2rem;
    text-align: center;
}

.pagination .prev,
.pagination .next {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
}

.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.4rem;
    min-height: 2.4rem;
    margin: 0.15rem;
    border: 1px solid var(--color-border-soft);
    border-radius: 999px;
    background: #ffffff;
    color: var(--color-text);
}

.pagination .current {
    background: var(--color-primary);
    color: #ffffff;
}

.site-footer {
    margin-top: 0;
}

@media (max-width: 900px) {
    .header-inner {
        min-height: 64px;
        padding: 0.55rem 0;
        border-radius: 0;
    }

    .site-logo {
        min-width: 0;
    }

    .site-logo-mark {
        width: 34px;
        height: 34px;
    }

    .header-phone {
        display: none;
    }

    .menu-toggle {
        display: inline-flex;
        flex: 0 0 auto;
        min-height: 40px;
        padding: 0.45rem 0.7rem;
        border-radius: 8px;
        font-size: 0.84rem;
        letter-spacing: 0.02em;
    }

    .global-nav {
        position: static;
        /* flex: 1 のままだとメニューボタンと同じ行に収まってしまうため、行全体を使う */
        flex: 0 0 100%;
        width: 100%;
        transform: none;
    }

    .global-nav:not(.is-open) {
        display: none;
    }

    .global-nav.is-open {
        display: block;
        margin-top: 0.5rem;
        padding-top: 0.5rem;
        border-top: 1px solid var(--color-border);
        box-shadow: none;
    }

    .global-nav .menu {
        align-items: stretch;
        gap: 0;
    }

    .global-nav .menu-item a {
        min-width: 0;
        min-height: 42px;
    }

    .company-table th,
    .company-table td {
        display: block;
        width: 100%;
        padding: 0.8rem 0;
    }

    .company-table th {
        border-bottom: 0;
        padding-bottom: 0.2rem;
    }

    .job-table,
    .job-table tbody,
    .job-table tr {
        display: block;
        width: 100%;
    }

    .job-table tr {
        border: 1px solid var(--color-border);
        border-bottom: 0;
    }

    .job-table tr:last-child {
        border-bottom: 1px solid var(--color-border);
    }

    .job-table th,
    .job-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
        border: 0;
    }

    .job-table th {
        padding: 0.7rem 0.75rem 0.2rem;
    }

    .job-table td {
        padding: 0.2rem 0.75rem 0.75rem;
    }

    .company-info-grid {
        grid-template-columns: 1fr;
    }

    .company-info-grid .company-map {
        order: -1;
        border-bottom: 1px solid #e5edf6;
        border-left: 0;
    }

    .company-strengths {
        grid-template-columns: 1fr;
    }

    .company-map-frame iframe {
        height: 300px;
    }

    .security-service-hero,
    .security-service-body,
    .services-index-grid {
        grid-template-columns: 1fr;
    }

    body:not(.home) .security-service-hero .section-title,
    body:not(.home) .security-service-hero .lead-text {
        text-align: center;
    }

    .service-lead-pc {
        display: none;
    }

    .service-lead-sp {
        display: inline;
        word-break: keep-all;
        overflow-wrap: normal;
        line-break: strict;
    }

    .security-service-kicker {
        text-align: center;
    }

    .job-detail-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .job-detail-updated {
        min-width: 0;
    }

    .footer-inner {
        align-items: center;
        padding: 2rem 0 1.6rem;
        text-align: center;
    }

    .footer-nav {
        gap: 0.8rem 1.2rem;
    }

    .footer-nav a {
        font-size: 0.84rem;
    }

    .footer-address {
        font-size: 0.84rem;
    }
}

@media (max-width: 900px) {
    body {
        padding-bottom: calc(74px + env(safe-area-inset-bottom));
    }

    .top-visual-control {
        display: none;
    }

    .mobile-fixed-phone {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 500;
        display: inline-flex;
        flex: none;
        align-items: center;
        justify-content: center;
        min-height: calc(56px + env(safe-area-inset-bottom));
        padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom));
        border-radius: 0;
        background: linear-gradient(140deg, #0aa8c6, var(--color-primary));
        color: #ffffff;
        font-size: 1rem;
        font-weight: 700;
        box-shadow: 0 12px 28px rgba(6, 127, 151, 0.3);
    }
}

/* iPhoneのように画面下に安全領域がある端末向け。
   下にスクロールしてブラウザのアドレスバーがしまわれると、
   安全領域分（約0.8rem）だけ帯の下側が伸びて見えるため、
   その分は透明にして見た目の高さを一定に保つ。 */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
    @media (max-width: 900px) {
        body {
            padding-bottom: 74px;
        }

        .mobile-fixed-phone {
            padding-bottom: 0.85rem;
            background-image: linear-gradient(140deg, #0aa8c6, var(--color-primary));
        }

        .mobile-fixed-phone::after {
            content: "";
            position: absolute;
            right: 0;
            bottom: -0.85rem;
            left: 0;
            height: calc(0.85rem + env(safe-area-inset-bottom));
            pointer-events: none;
            background: transparent;
        }
    }
}

/* 幅の狭いスマホではボタン内の文言が2行に折り返されるため、余白と文字サイズを詰める */
@media (max-width: 600px) {
    .btn {
        padding: 0.7rem 1rem;
    }

    .apply-submit-wrap {
        margin: 0.8rem;
        padding: 1rem 0.8rem;
    }

    .apply-submit-btn {
        padding: 0.9rem 1rem;
        font-size: 1rem;
    }
}

@media (min-width: 901px) {
    .services-index-page .lead-text {
        max-width: none;
        white-space: nowrap;
    }

    .site-header {
        border-bottom: 1px solid rgba(23, 44, 111, 0.1);
        box-shadow: 0 5px 18px rgba(18, 43, 83, 0.06);
    }

    .header-inner,
    .home .header-inner {
        min-height: 70px;
    }

    .site-logo,
    .home .site-logo {
        flex: 0 0 clamp(230px, 22vw, 280px);
        white-space: nowrap;
    }

    .site-logo-mark,
    .home .site-logo-mark {
        width: calc(42px + 2pt);
        height: calc(42px + 2pt);
    }

    .site-logo-main,
    .home .site-logo-main {
        font-size: clamp(
            calc(1.05rem + 2pt),
            calc(1.35vw + 2pt),
            calc(1.4rem + 2pt)
        );
    }

    .header-phone,
    .home .header-phone {
        flex: 0 0 clamp(195px, 18vw, 230px);
        justify-content: flex-end;
        min-height: 42px;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        white-space: nowrap;
        font-size: clamp(
            calc(0.86rem + 5pt),
            calc(1vw + 5pt),
            calc(0.98rem + 5pt)
        );
        transition: border-color 0.2s ease, background 0.2s ease;
    }

    .header-phone:hover,
    .home .header-phone:hover {
        color: var(--color-primary);
        background: transparent;
    }

    .global-nav .menu,
    .home .global-nav .menu {
        justify-content: flex-end;
        flex-wrap: nowrap;
        gap: clamp(1.3rem, 2.5vw, 2.5rem);
    }

    .global-nav .menu-item a,
    .home .global-nav .menu-item a {
        min-width: auto;
        padding-right: clamp(0.2rem, 0.4vw, 0.4rem);
        padding-left: clamp(0.2rem, 0.4vw, 0.4rem);
        font-size: clamp(
            calc(0.82rem + 3pt),
            calc(1.1vw + 3pt),
            calc(0.98rem + 3pt)
        );
        white-space: nowrap;
    }

    .global-nav .menu-item:not(:last-child) a,
    .home .global-nav .menu-item:not(:last-child) a {
        position: relative;
    }

    .global-nav .menu-item:not(:last-child) a::after,
    .home .global-nav .menu-item:not(:last-child) a::after {
        position: absolute;
        right: 20%;
        bottom: 12px;
        left: 20%;
        height: 2px;
        border-radius: 999px;
        background: var(--color-primary);
        content: "";
        opacity: 0;
        transform: scaleX(0.5);
        transition: opacity 0.2s ease, transform 0.2s ease;
    }

    .global-nav .menu-item:not(:last-child) a:hover::after,
    .global-nav .menu-item:not(:last-child).current-menu-item > a::after,
    .global-nav .menu-item:not(:last-child).current_page_item > a::after,
    .home .global-nav .menu-item:not(:last-child) a:hover::after,
    .home .global-nav .menu-item:not(:last-child).current-menu-item > a::after,
    .home .global-nav .menu-item:not(:last-child).current_page_item > a::after {
        opacity: 1;
        transform: scaleX(1);
    }

    /*
     * 「警備依頼はこちら」はボタン表示のため、テキストリンク用の下線は出さない。
     * 下線は bottom 固定値のため、表示倍率や画面幅でボタンが小さくなると文字に重なる。
     */
    .global-nav .menu-item:last-child a::after,
    .home .global-nav .menu-item:last-child a::after {
        display: none;
    }

    .global-nav .menu-item:last-child a,
    .home .global-nav .menu-item:last-child a {
        min-height: 44px;
        padding: 0.45rem 0.95rem;
        border: 3px solid transparent;
        border-radius: 999px;
        background:
            linear-gradient(#ffffff, #ffffff) padding-box,
            linear-gradient(135deg, #06c8e8 0%, #38cba0 55%, #8ccf00 100%) border-box;
        color: #1d2a38;
        box-shadow: none;
        transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .global-nav .menu-item:last-child a:hover,
    .global-nav .menu-item:last-child.current-menu-item > a,
    .global-nav .menu-item:last-child.current_page_item > a,
    .home .global-nav .menu-item:last-child a:hover,
    .home .global-nav .menu-item:last-child.current-menu-item > a,
    .home .global-nav .menu-item:last-child.current_page_item > a {
        background:
            linear-gradient(#f7fcfc, #f7fcfc) padding-box,
            linear-gradient(135deg, #06c8e8 0%, #38cba0 55%, #8ccf00 100%) border-box;
        color: #1d2a38;
        box-shadow: 0 6px 14px rgba(30, 154, 164, 0.18);
        transform: translateY(-1px);
    }
}

/* 901pxでPCヘッダーへ切り替わった直後も、ロゴ・ナビ・TELを1行に収める。 */
@media (min-width: 901px) and (max-width: 1080px) {
    .services-index-page .lead-text {
        white-space: normal;
    }

    .header-inner,
    .home .header-inner {
        gap: 0.5rem;
        padding-right: 0.7rem;
        padding-left: 0.7rem;
    }

    .site-logo,
    .home .site-logo {
        flex: 0 1 190px;
        min-width: 170px;
        gap: 0.45rem;
    }

    .site-logo-mark,
    .home .site-logo-mark {
        width: 36px;
        height: 36px;
    }

    .site-logo-main,
    .home .site-logo-main {
        font-size: 0.95rem;
    }

    .global-nav,
    .home .global-nav {
        min-width: 0;
    }

    .global-nav .menu,
    .home .global-nav .menu {
        gap: 0.2rem;
    }

    .global-nav .menu-item a,
    .home .global-nav .menu-item a {
        padding-right: 0.15rem;
        padding-left: 0.15rem;
        font-size: 0.72rem;
        letter-spacing: 0.01em;
    }

    .global-nav .menu-item:last-child a,
    .home .global-nav .menu-item:last-child a {
        min-height: 40px;
        padding: 0.35rem 0.55rem;
        border-width: 2px;
        font-size: 0.7rem;
    }

    .header-phone,
    .home .header-phone {
        flex: 0 0 150px;
        font-size: 0.78rem;
    }
}
