/* ==========================================================================
   Common Site Styles — Home Instead Japan
   Shared header, footer, page hero, typography, utilities
   ========================================================================== */

/* --------------------------------------------------------------------------
   Elementor Header/Footer Overrides — Color & Font Fixes
   -------------------------------------------------------------------------- */

/* Force correct text/link colors on the entire site */
body,
body.elementor-default,
body.hello-elementor-default {
    color: #2c4f26;
    font-family: "Noto Sans JP", "YuGothic", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 18px;
    line-height: 1.85;
}

/* 全ページ: 本文テキスト最小18px（UIバッジ・コピーライト除く） */
p, li, td, th, label,
.hi-page p, .hi-page li, .hi-page td, .hi-page th, .hi-page label,
.hi-about-section__body,
.about-photo-section__content p,
.about-photo-section__title,
.about-companies__desc,
.about-companies__sub,
.about-companies__name,
.about-companies__link,
.hi-contact-note,
.hi-faq-item__q,
.hi-faq-item__a,
.hi-table__value,
.hi-table__label,
.about-future-section__text p,
.about-social-section__content p,
.about-together,
.about-statement,
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,
.eael-entry-wrapper,
.eael-entry-title a,
.hi-link-card__label-jp,
.hi-footer-cta__heading,
.hi-btn {
    font-size: max(18px, inherit) !important;
    line-height: 1.8;
}

/* 例外: UIバッジ・小さいラベル・英語キャプション・フッター細字 */
.req-tag, .opt-tag, .hi-required-badge, .hi-optional-badge,
.slp-form__required, .slp-form__optional,
.hi-footer-bottom__copy, .hi-footer-bottom__legal a,
.hi-footer-bottom__nav a, .hi-mobile-nav__footer-legal a,
.hi-mobile-nav__footer-copy, .hi-mobile-nav__close-label,
.hi-breadcrumb, .hi-caption-en, .hi-section__en, .hi-hero__en,
.hi-header__logo-text, .hi-header__phone-note,
.hi-header__cta-text-sm,
.hi-footer-cta__phone-note,
sup, sub, .wpcf7-not-valid-tip,
.hfe-nav-menu a {
    font-size: revert !important;
}

a,
body a,
.elementor a,
.elementor-widget a {
    color: #2c4f26;
}

/* ── HEADER FIXES ── */
#masthead,
header#masthead {
    background: #faffee;
}

#masthead a,
#masthead .elementor-heading-title,
#masthead .elementor-widget-heading .elementor-heading-title {
    color: #2c4f26 !important;
}

/* Header nav: prevent wrapping, reduce font size */
#masthead .elementor-nav-menu a,
#masthead .elementor-nav-menu--main a,
#masthead .elementor-nav-menu--main .elementor-item {
    color: #2c4f26 !important;
    font-family: "Noto Serif JP", "YuMincho", serif;
    font-weight: 700;
    font-size: 13px;
    line-height: 21px;
    white-space: nowrap;
}

/* Header company name: prevent line break */
#masthead .elementor-widget-heading .elementor-heading-title {
    white-space: nowrap;
    font-size: 12px !important;
    line-height: 18px;
}

/* Header phone number: larger, single line */
#masthead .elementor-widget-text-editor,
#masthead .elementor-widget-text-editor p {
    color: #2c4f26 !important;
    font-weight: 700;
    white-space: nowrap;
}

/* Phone number text size */
#masthead .elementor-element .elementor-heading-title[style*="font-size"] {
    white-space: nowrap;
}

/* CTA button area (desktop dark green box): white text */
#masthead .elementor-element-ffb9c02 .elementor-heading-title,
#masthead .elementor-element-994a61e .elementor-heading-title,
#masthead .elementor-element-997ad10 .elementor-heading-title,
#masthead .elementor-element-300559a .elementor-heading-title {
    color: #faffee !important;
    white-space: nowrap;
}
/* CTA button area (mobile yellow-green box): dark green text */
#masthead .elementor-element-d785f45 .elementor-heading-title {
    color: #2c4f26 !important;
    white-space: nowrap;
}

/* Header CTA: Figma design — vertical text, proper sizing */
#masthead .elementor-element-997ad10 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}
#masthead .elementor-element-997ad10 .elementor-heading-title {
    font-family: "Noto Serif JP", serif !important;
    font-size: 14px !important;
    font-weight: 700;
    color: #faffee !important;
}
#masthead .elementor-element-994a61e .elementor-heading-title {
    font-family: "Noto Serif JP", serif !important;
    font-size: 20px !important;
    font-weight: 700;
    line-height: 30px;
}

/* Phone number: ensure adequate size */
#masthead .elementor-element-2916e18 .elementor-heading-title,
#masthead .elementor-element-eaef00e .elementor-heading-title {
    white-space: nowrap;
}

/* Header phone number size */
#masthead .elementor-element-2916e18 .elementor-heading-title {
    font-size: 28px !important;
}

/* Prevent header containers from wrapping */
#masthead .e-con {
    flex-wrap: nowrap !important;
}

#masthead .elementor-widget {
    flex-shrink: 0;
}

/* ── MOBILE MENU (HFE dropdown) ── */
/* Background: dark green */
#masthead .hfe-nav-menu__layout-horizontal .hfe-nav-menu,
#masthead .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-menu {
    background: #2c4f26 !important;
}

/* Menu links: white text */
#masthead .hfe-nav-menu a.hfe-menu-item,
#masthead .hfe-nav-menu a.hfe-sub-menu-item {
    color: #faffee !important;
}

/* Submenu toggle arrow: white */
#masthead .hfe-nav-menu .hfe-menu-toggle .fa {
    color: #faffee !important;
}

/* Toggle button (hamburger): dark green icon */
#masthead .hfe-nav-menu__toggle .e-font-icon-svg {
    fill: #2c4f26;
}

/* Separator between items */
#masthead .hfe-nav-menu li.menu-item {
    border-bottom: 1px solid rgba(250, 255, 238, 0.15);
}

/* Padding for readability */
#masthead .hfe-nav-menu__layout-horizontal .hfe-nav-menu a.hfe-menu-item,
#masthead .hfe-nav-menu__layout-horizontal .hfe-nav-menu a.hfe-sub-menu-item {
    padding: 14px 16px !important;
    font-family: "Noto Serif JP", "YuMincho", serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 27px;
}

#masthead .hfe-nav-menu__layout-horizontal .hfe-nav-menu a.hfe-sub-menu-item {
    font-family: "YuGothic", "Yu Gothic", sans-serif;
    font-weight: 500;
    font-size: 15px;
    line-height: 22.5px;
    padding-left: 32px !important;
}

/* ── FV HEADING FIXES ── */
/* PC: prevent line wrapping */
.elementor-313 .elementor-element-8944df9 .elementor-heading-title,
.elementor-313 .elementor-element-12f2622 .elementor-heading-title,
.elementor-313 .elementor-element-2445964 .elementor-heading-title,
.elementor-313 .elementor-element-6ad1870 .elementor-heading-title,
.elementor-313 .elementor-element-9f1981c .elementor-heading-title,
.elementor-313 .elementor-element-aceacf4 .elementor-heading-title {
    white-space: nowrap !important;
}

/* SP: reduce line breaks — hide excessive <br> and shrink font */
@media (max-width: 767px) {
    /* FV バッジ: site.js で「13カ国」を除去し「24時間365日対応可能な在宅介護サービス」に統一 */
    /* "世界で選ばれる<br>高い品質" → 1行に */
    .elementor-313 .elementor-element-70046ae .elementor-heading-title br {
        display: none;
    }
    /* '"その人らしさ"に<br①>寄り添う<br②>オーダーメイドのケア' → br①だけ消して2行に */
    .elementor-313 .elementor-element-d4485be .elementor-heading-title br:nth-of-type(1) {
        display: none;
    }
    .elementor-313 .elementor-element-d4485be .elementor-heading-title {
        font-size: 13px !important;
    }
    /* "介護で困った<br>どんなことでも、<br>信頼できるプロが<br>対応します。" → 2行に */
}

/* ── NEWS PAGE HERO ── */
/* Match subpage hero style */
.elementor-390 .elementor-element.elementor-element-87b68ae .elementor-heading-title {
    font-family: var(--hi-font-en) !important;
    font-size: 20px !important;
    font-weight: 600;
    color: var(--hi-primary) !important;
}
.elementor-390 .elementor-element.elementor-element-ca1a70b .elementor-heading-title {
    font-family: var(--hi-font-serif) !important;
    font-size: 36px !important;
    font-weight: 700;
    line-height: 1.38;
    color: var(--hi-primary) !important;
    white-space: nowrap;
}
/* ニュースヒーロー: テキストが画像の下に隠れないように */
.elementor-390 .elementor-element.elementor-element-939b46b {
    z-index: 2 !important;
    position: relative !important;
}
.elementor-390 .elementor-element.elementor-element-d5cced2 {
    z-index: 1 !important;
}
/* News page: post text size */
.elementor-390 .eael-grid-post .eael-entry-wrapper {
    font-size: 15px !important;
    line-height: 1.7;
}
.elementor-390 .eael-entry-title {
    font-size: 18px !important;
    line-height: 1.5;
}
@media (max-width: 768px) {
    .elementor-390 .elementor-element.elementor-element-7a0b91d {
        padding-left: 16px !important;
        height: auto !important;
        min-height: 94px !important;
        position: relative !important;
        overflow: hidden !important;
    }
    .elementor-390 .elementor-element.elementor-element-939b46b {
        gap: 2px !important;
    }
    .elementor-390 .elementor-element.elementor-element-87b68ae .elementor-heading-title {
        font-size: 10px !important;
        line-height: 15px !important;
    }
    .elementor-390 .elementor-element.elementor-element-ca1a70b .elementor-heading-title {
        font-size: 20px !important;
        line-height: 30px !important;
        white-space: nowrap;
    }
    /* News page SP: padding + text size */
    .elementor-390 .e-con {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .elementor-390 .eael-grid-post .eael-entry-wrapper {
        font-size: 16px !important;
    }
    /* Hide hero image on mobile if present */
    .elementor-390 .elementor-element.elementor-element-d5cced2 {
        display: none !important;
    }
}

/* ── FOOTER FIXES ── */

/* Footer CTA band (yellow area) — 見出しの文字色を深緑に */
#colophon .elementor-element-3fafdeb .elementor-heading-title,
#colophon .elementor-element-4538810 .elementor-heading-title {
    color: #2c4f26 !important;
}

/* Footer: prevent wrapping */
#colophon .e-con {
    flex-wrap: nowrap !important;
}

#colophon .elementor-heading-title {
    white-space: nowrap;
}

/* Footer CTA: ボタン文字サイズとpadding適正化 */
#colophon .elementor-element-ea832f0 .elementor-heading-title,
#colophon .elementor-element-ed707ef .elementor-heading-title {
    font-size: 14px !important;
}
#colophon .elementor-element-db607f3,
#colophon .elementor-element-ffb9c02 {
    padding: 10px 24px !important;
    border-radius: 120px;
}
#colophon .elementor-element-882982e .elementor-heading-title {
    font-size: 28px !important;
}
#colophon .elementor-element-32c63c9 .elementor-heading-title {
    font-size: 11px !important;
}

/* Fix site-title display */
.site-title,
.site-title a,
p.wp-block-site-title a,
.main-title a {
    color: #2c4f26 !important;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
    white-space: nowrap;
}

/* --------------------------------------------------------------------------
   Design Tokens (CSS Custom Properties)
   -------------------------------------------------------------------------- */
:root {
    --hi-primary:         #2c4f26;
    --hi-primary-dark:    #1a3116;
    --hi-support:         #faffee;
    --hi-friendly-400:    #deed6a;
    --hi-friendly-300:    #e6f18f;
    --hi-friendly-200:    #eff6b4;
    --hi-friendly-100:    #f7fbd9;
    --hi-white:           #ffffff;
    --hi-red:             #dc362e;
    --hi-gray-600:        #676767;

    --hi-font-serif:      "Noto Serif JP", "YuMincho", "Yu Mincho", serif;
    --hi-font-sans:       "Noto Sans JP", "YuGothic", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
    --hi-font-en:         "Plus Jakarta Sans", sans-serif;

    --hi-content-max:     1200px;
    --hi-content-narrow:  792px;
    --hi-page-max:        1440px;
    --hi-side-pad:        120px;
    --hi-side-pad-sp:     16px;

    --hi-transition:      0.25s ease;
    --hi-radius-btn:      120px;
    --hi-radius-card:     16px;
    --hi-shadow-btn:      0 4px 8px rgba(6, 41, 0, 0.12);
}

/* --------------------------------------------------------------------------
   Base / Reset
   -------------------------------------------------------------------------- */
.hi-page *,
.hi-page *::before,
.hi-page *::after {
    box-sizing: border-box;
}

.hi-page {
    margin: 0;
    padding: 0;
    font-family: var(--hi-font-sans);
    font-size: 16px;
    line-height: 1.75;
    color: var(--hi-primary);
    background-color: var(--hi-support);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Typography: titles = Noto Serif JP, body = Noto Sans JP */
.hi-page h1,
.hi-page h2,
.hi-page h3,
.hi-page h4,
.hi-page h5,
.hi-page h6 {
    font-family: var(--hi-font-serif);
}

.hi-page p,
.hi-page li,
.hi-page td,
.hi-page th,
.hi-page label,
.hi-page input,
.hi-page textarea,
.hi-page select,
.hi-page span,
.hi-page a,
.hi-page div {
    font-family: var(--hi-font-sans);
}

/* Override specific title classes to ensure Serif */
.hi-page .hi-hero__title,
.hi-page .hi-section__title,
.hi-page .hi-faq-item__q,
.hi-page .about-lead__heading,
.hi-page .about-photo-section__title,
.hi-page .about-statement,
.hi-page .about-together,
.hi-page .about-companies__name,
.hi-page .hi-news-card__title,
.hi-page .hi-top-fv__heading,
.hi-page .hi-top-fv__badge-text,
.hi-page .hi-top-fv__card-title,
.hi-page .hi-footer-cta__heading {
    font-family: var(--hi-font-serif) !important;
}

/* English labels = Plus Jakarta Sans */
.hi-page .hi-hero__en,
.hi-page .hi-section__en,
.hi-page .hi-caption-en,
.hi-page .hi-link-card__label-en,
.hi-page .hi-footer-bottom__copy,
.hi-page .hi-footer-bottom__nav-link--en,
.hi-page .hi-top-fv__card-icon-label {
    font-family: var(--hi-font-en) !important;
}

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

.hi-page a {
    color: inherit;
    text-decoration: none;
    transition: opacity var(--hi-transition);
}
.hi-page a:hover {
    opacity: 0.8;
}

/* --------------------------------------------------------------------------
   Utility classes
   -------------------------------------------------------------------------- */
.hi-br-pc { display: block; }
.hi-br-sp { display: none; }

.hi-caption-en {
    display: inline-block;
    font-family: var(--hi-font-en);
    font-weight: 600;
    font-size: 16px;
    line-height: 21px;
    opacity: 0.6;
}

.hi-caption-en--lg {
    font-size: 20px;
    line-height: 24px;
    opacity: 1;
}

/* --------------------------------------------------------------------------
   HEADER
   -------------------------------------------------------------------------- */
.hi-header {
    background: var(--hi-support);
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    position: sticky;
    top: 0;
    z-index: 100;
}

.hi-header__inner {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: space-between;
    padding: 20px 32px;
}

.hi-header__logo-wrap {
    display: flex;
    align-items: center;
    gap: 20px;
}

.hi-header__logo {
    height: 40px;
    width: auto;
}

.hi-header__logo-text {
    font-family: var(--hi-font-sans);
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
    white-space: nowrap;
}

.hi-header__right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 20px;
}

.hi-header__phone {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.hi-header__phone-number {
    display: flex;
    align-items: center;
    gap: 4px;
}

.hi-header__phone-number-icon {
    width: 24px;
    height: 24px;
}

.hi-header__phone-number-text {
    font-family: var(--hi-font-en);
    font-weight: 700;
    font-size: 28px;
    line-height: 28px;
}

.hi-header__phone-note {
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
}

.hi-header__nav {
    display: flex;
    align-items: center;
    gap: 32px;
}

.hi-header__nav-link {
    font-family: var(--hi-font-serif);
    font-weight: 700;
    font-size: 14px;
    line-height: 21px;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 8px;
}

.hi-header__nav-link--en {
    font-family: var(--hi-font-en);
    font-weight: 600;
}

.hi-header__nav-icon {
    width: 24px;
    height: 24px;
}

.hi-header__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--hi-primary);
    color: #fff;
    padding: 8px 40px;
    align-self: stretch;
}

.hi-header__cta-icon {
    width: 40px;
    height: 40px;
}

.hi-header__cta-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: var(--hi-font-serif);
    font-weight: 700;
    color: var(--hi-support);
    white-space: nowrap;
}

.hi-header__cta-text-sm {
    font-size: 14px;
    line-height: 21px;
}

.hi-header__cta-text-lg {
    font-size: 20px;
    line-height: 30px;
}

/* Mobile menu */
.hi-header__mobile {
    display: none;
}

.hi-header__hamburger {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
}

.hi-header__hamburger-bar {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--hi-primary);
    margin: 5px 0;
    transition: var(--hi-transition);
}

/* Mobile nav overlay */
/* Mobile nav overlay */
.hi-mobile-nav {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--hi-primary);
    color: var(--hi-support);
    z-index: 99;
    flex-direction: column;
    overflow-y: auto;
}

.hi-mobile-nav--open {
    display: flex;
}

.hi-mobile-nav a {
    color: var(--hi-support);
    text-decoration: none;
}

.hi-mobile-nav__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
    flex-shrink: 0;
}

.hi-mobile-nav__logo-wrap {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.hi-mobile-nav__logo {
    width: 74px;
    height: auto;
}

.hi-mobile-nav__logo-text {
    font-family: var(--hi-font-sans);
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
}

.hi-mobile-nav__close {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    color: var(--hi-support);
}

.hi-mobile-nav__close-label {
    font-family: var(--hi-font-en);
    font-weight: 700;
    font-size: 10px;
    line-height: 16px;
}

.hi-mobile-nav__links {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 64px 16px 0;
}

.hi-mobile-nav__link {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--hi-font-serif);
    font-weight: 600;
    font-size: 20px;
    line-height: 30px;
}

.hi-mobile-nav__item--with-sub {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.hi-mobile-nav__item--with-sub .hi-mobile-nav__link {
    width: 179px;
    flex-shrink: 0;
}

.hi-mobile-nav__sub {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-top: 2px;
}

.hi-mobile-nav__sub a {
    font-family: var(--hi-font-sans);
    font-weight: 500;
    font-size: 15px;
    line-height: 22.5px;
}

.hi-mobile-nav__cta {
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: center;
    padding: 64px 16px 0;
}

.hi-mobile-nav__cta-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    width: 100%;
}

.hi-mobile-nav__cta-heading {
    font-family: var(--hi-font-serif);
    font-weight: 600;
    font-size: 14px;
    line-height: 21px;
    text-align: center;
    margin: 0;
}

.hi-mobile-nav__cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 16px 24px;
    background: var(--hi-friendly-400);
    color: var(--hi-primary) !important;
    border-radius: 120px;
    font-family: var(--hi-font-serif);
    font-weight: 600;
    font-size: 16px;
    line-height: 24px;
    box-shadow: 0 4px 8px rgba(6, 41, 0, 0.12);
}

.hi-mobile-nav__cta-btn--en {
    font-family: var(--hi-font-en);
    font-weight: 500;
    font-size: 18px;
}

.hi-mobile-nav__cta-btn--phone {
    flex-direction: column;
    gap: 8px;
}

.hi-mobile-nav__phone-num {
    display: flex;
    align-items: center;
    gap: 4px;
}

.hi-mobile-nav__phone-num span {
    font-family: var(--hi-font-en);
    font-weight: 700;
    font-size: 32px;
    line-height: 28px;
    color: var(--hi-primary);
}

.hi-mobile-nav__phone-note {
    font-family: var(--hi-font-sans);
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
    color: var(--hi-primary);
}

.hi-mobile-nav__footer {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 48px 16px 16px;
    margin-top: auto;
}

.hi-mobile-nav__footer-legal {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-family: var(--hi-font-sans);
    font-weight: 500;
    font-size: 10px;
}

.hi-mobile-nav__footer-copy {
    font-family: var(--hi-font-en);
    font-weight: 300;
    font-size: 10px;
    line-height: 21px;
    text-align: center;
    margin: 0;
}

/* --------------------------------------------------------------------------
   BREADCRUMB
   -------------------------------------------------------------------------- */
.hi-breadcrumb {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px var(--hi-side-pad);
    font-family: var(--hi-font-sans);
    font-weight: 500;
    font-size: 14px;
    line-height: 21px;
}

.hi-breadcrumb__sep {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hi-breadcrumb__sep svg {
    width: 24px;
    height: 24px;
    fill: var(--hi-primary);
}

/* --------------------------------------------------------------------------
   PAGE HERO (共通ページヒーロー)
   -------------------------------------------------------------------------- */
.hi-hero {
    background: var(--hi-friendly-200);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-left: var(--hi-side-pad);
    overflow: hidden;
    min-height: 360px;
}

.hi-hero--simple {
    padding: 80px var(--hi-side-pad);
    justify-content: flex-start;
}

.hi-hero__text {
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex-shrink: 0;
}

.hi-hero__en {
    font-family: var(--hi-font-en);
    font-weight: 600;
    font-size: 20px;
    line-height: 24px;
    color: var(--hi-primary);
}

.hi-hero__title {
    font-family: var(--hi-font-serif);
    font-weight: 400;
    font-size: 52px;
    line-height: 72px;
    color: var(--hi-primary);
    margin: 0;
}

.hi-hero__image {
    position: relative;
    width: 720px;
    height: 360px;
    flex-shrink: 0;
    overflow: hidden;
}

.hi-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* --------------------------------------------------------------------------
   CONTENT SECTIONS
   -------------------------------------------------------------------------- */
.hi-content {
    max-width: var(--hi-content-narrow);
    margin: 0 auto;
    padding: 0 var(--hi-side-pad-sp);
}

.hi-content--wide {
    max-width: var(--hi-content-max);
    padding: 0 var(--hi-side-pad);
}

.hi-section {
    padding: 80px 0;
}

.hi-section__header {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 32px;
}

.hi-section__en {
    font-family: var(--hi-font-en);
    font-weight: 600;
    font-size: 14px;
    line-height: 21px;
    opacity: 0.6;
}

.hi-section__title {
    font-family: var(--hi-font-serif);
    font-weight: 900;
    font-size: 32px;
    line-height: 48px;
    margin: 0;
}

/* --------------------------------------------------------------------------
   DIVIDER
   -------------------------------------------------------------------------- */
.hi-divider {
    width: 100%;
    height: 1px;
    background: rgba(44, 79, 38, 0.15);
}

/* --------------------------------------------------------------------------
   TABLE-STYLE ROWS (会社概要, 特定商取引法)
   -------------------------------------------------------------------------- */
.hi-table {
    width: 100%;
}

.hi-table__row {
    display: flex;
    gap: 24px;
    padding: 32px 0;
    border-top: 1px solid rgba(44, 79, 38, 0.15);
    font-size: 18px;
    line-height: 27px;
    align-items: flex-start;
}

.hi-table__row:last-child {
    border-bottom: 1px solid rgba(44, 79, 38, 0.15);
}

.hi-table__label {
    width: 180px;
    flex-shrink: 0;
    font-weight: 700;
}

.hi-table__value {
    flex: 1;
    font-weight: 500;
}

/* --------------------------------------------------------------------------
   FAQ ITEMS
   -------------------------------------------------------------------------- */
.hi-faq-item {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

.hi-faq-item__q {
    font-family: var(--hi-font-serif);
    font-weight: 400;
    font-size: 24px;
    line-height: 36px;
    margin: 0;
}

.hi-faq-item__a {
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
}

/* --------------------------------------------------------------------------
   BUTTONS
   -------------------------------------------------------------------------- */
.hi-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: var(--hi-radius-btn);
    font-weight: 700;
    font-size: 18px;
    line-height: 27px;
    border: none;
    cursor: pointer;
    box-shadow: var(--hi-shadow-btn);
    transition: background var(--hi-transition), color var(--hi-transition);
    text-decoration: none;
}

.hi-btn--primary,
a.hi-btn--primary {
    background: var(--hi-primary);
    color: var(--hi-support);
}

.hi-btn--primary:hover,
a.hi-btn--primary:hover,
.hi-btn--primary:focus,
a.hi-btn--primary:focus {
    background: var(--hi-primary-dark);
    color: var(--hi-support);
}

.hi-btn--primary-lg,
a.hi-btn--primary-lg {
    background: var(--hi-primary);
    color: var(--hi-support);
    padding: 16px 24px;
    width: 100%;
}

.hi-btn--primary-lg:hover,
a.hi-btn--primary-lg:hover,
.hi-btn--primary-lg:focus,
a.hi-btn--primary-lg:focus {
    background: var(--hi-primary-dark);
    color: var(--hi-support);
}

.hi-btn__icon {
    width: 24px;
    height: 24px;
}

/* --------------------------------------------------------------------------
   FOOTER
   -------------------------------------------------------------------------- */
/* Footer CTA band */
.hi-footer-cta {
    background: var(--hi-friendly-400);
    padding: 40px var(--hi-side-pad);
    display: flex;
    justify-content: center;
}

.hi-footer-cta__inner {
    display: flex;
    align-items: center;
    gap: 228px;
}

.hi-footer-cta__col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    width: 384px;
}

.hi-footer-cta__col--phone {
    gap: 48px;
}

.hi-footer-cta__heading {
    font-family: var(--hi-font-serif);
    font-weight: 700;
    font-size: 24px;
    line-height: 36px;
    text-align: center;
    margin: 0;
    color: var(--hi-primary) !important;
}

.hi-footer-cta__btns {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    width: 100%;
}

a.hi-footer-cta__phone-btn,
.hi-footer-cta__phone-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    background: var(--hi-primary);
    color: var(--hi-support);
    padding: 16px 24px;
    border-radius: var(--hi-radius-btn);
    box-shadow: var(--hi-shadow-btn);
    width: 100%;
    text-decoration: none;
}

.hi-footer-cta__phone-num {
    display: flex;
    align-items: center;
    gap: 4px;
}

.hi-footer-cta__phone-num-icon {
    width: 40px;
    height: 40px;
}

.hi-footer-cta__phone-num-text {
    font-family: var(--hi-font-en);
    font-weight: 700;
    font-size: 36px;
    line-height: 28px;
}

.hi-footer-cta__phone-note {
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
}

/* Footer bottom (dark green) */
.hi-footer-bottom {
    background: var(--hi-primary);
    color: var(--hi-support);
    padding: 32px var(--hi-side-pad) 16px;
}

.hi-footer-bottom a {
    color: var(--hi-support);
}

.hi-footer-bottom__inner {
    max-width: var(--hi-content-max);
    display: flex;
    flex-direction: column;
    gap: 64px;
    align-items: center;
}

.hi-footer-bottom__content {
    display: flex;
    justify-content: space-between;
    width: 100%;
    color: var(--hi-support);
}

.hi-footer-bottom__brand {
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 200px;
}

.hi-footer-bottom__logo-wrap {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.hi-footer-bottom__logo {
    height: 40px;
    width: 124px;
    display: block;
}

.hi-footer-bottom__logo-text {
    font-weight: 700;
    font-size: 14px;
    line-height: 21px;
}

.hi-footer-bottom__social {
    display: flex;
    gap: 24px;
    align-items: center;
}

.hi-footer-bottom__social-icon {
    width: 24px;
    height: 24px;
}

.hi-footer-bottom__legal {
    display: flex;
    flex-direction: column;
    gap: 16px;
    font-weight: 500;
    font-size: 12px;
    line-height: 18px;
}

.hi-footer-bottom__legal a:hover {
    text-decoration: underline;
}

.hi-footer-bottom__nav {
    display: flex;
    gap: 28px;
}

.hi-footer-bottom__nav-group {
    display: flex;
    flex-direction: column;
    gap: 19px;
}

.hi-footer-bottom__nav-title {
    font-family: var(--hi-font-serif);
    font-weight: 700;
    font-size: 15px;
    line-height: 22px;
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.hi-footer-bottom__nav-title-icon {
    width: 20px;
    height: 20px;
}

.hi-footer-bottom__nav-items {
    display: flex;
    flex-direction: column;
    gap: 16px;
    font-weight: 500;
    font-size: 15px;
    line-height: 22.5px;
}

.hi-footer-bottom__nav-link {
    font-family: var(--hi-font-serif);
    font-weight: 700;
    font-size: 15px;
    line-height: 22px;
    white-space: nowrap;
}

.hi-footer-bottom__nav-link--en {
    font-family: var(--hi-font-en);
    font-weight: 500;
    font-size: 16px;
    line-height: 24px;
}

.hi-footer-bottom__copy {
    font-family: var(--hi-font-en);
    font-weight: 300;
    font-size: 12px;
    line-height: 18px;
    color: var(--hi-friendly-400);
    text-align: center;
    width: 100%;
}

/* --------------------------------------------------------------------------
   LINK CARDS (会社概要/創業ヒストリー等の内部リンク)
   -------------------------------------------------------------------------- */
.hi-link-cards {
    display: flex;
    gap: 24px;
    width: 100%;
    max-width: var(--hi-content-max);
    margin: 0 auto;
}

.hi-link-card {
    position: relative;
    flex: 1;
    min-width: 0;
    height: 196px;
    border-radius: var(--hi-radius-card);
    overflow: hidden;
    display: block;
}

.hi-link-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--hi-radius-card);
}

.hi-link-card__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.08);
    border-radius: var(--hi-radius-card);
}

.hi-link-card__label {
    position: absolute;
    bottom: 16px;
    left: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--hi-primary);
    color: var(--hi-support);
    padding: 8px 24px 8px 16px;
    border-radius: 0 40px 40px 0;
}

.hi-link-card__label-jp {
    font-family: var(--hi-font-serif);
    font-weight: 400;
    font-size: 18px;
    line-height: 27px;
}

.hi-link-card__label-en {
    font-family: var(--hi-font-en);
    font-weight: 600;
    font-size: 12px;
    line-height: 21px;
}

/* --------------------------------------------------------------------------
   CF7 Form Styles (shared contact page)
   -------------------------------------------------------------------------- */
.hi-page .wpcf7-form label {
    font-weight: 700;
    font-size: 18px;
    line-height: 27px;
}

.hi-page .wpcf7-form input[type="text"],
.hi-page .wpcf7-form input[type="email"],
.hi-page .wpcf7-form input[type="tel"],
.hi-page .wpcf7-form textarea,
.hi-page .wpcf7-form select {
    width: 100%;
    padding: 8px;
    border: 1px solid var(--hi-gray-600);
    border-radius: 4px;
    font-size: 16px;
    font-family: var(--hi-font-sans);
    background: var(--hi-white);
}

.hi-page .wpcf7-form input[type="text"]:focus,
.hi-page .wpcf7-form input[type="email"]:focus,
.hi-page .wpcf7-form input[type="tel"]:focus,
.hi-page .wpcf7-form textarea:focus {
    outline: 2px solid var(--hi-primary);
    border-color: var(--hi-primary);
}

.hi-page .wpcf7-form textarea {
    height: 200px;
    resize: vertical;
}

.hi-page .wpcf7-form .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: var(--hi-radius-btn);
    background: var(--hi-primary);
    color: var(--hi-support);
    font-weight: 700;
    font-size: 18px;
    border: none;
    cursor: pointer;
    box-shadow: var(--hi-shadow-btn);
}

.hi-required-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 4px;
    border: 1px solid var(--hi-red);
    border-radius: 2px;
    font-family: var(--hi-font-en);
    font-weight: 600;
    font-size: 12px;
    line-height: 21px;
    color: var(--hi-red);
    background: var(--hi-white);
    margin-left: 8px;
}

.hi-optional-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 4px;
    border: 1px solid var(--hi-gray-600);
    border-radius: 2px;
    font-family: var(--hi-font-en);
    font-weight: 600;
    font-size: 12px;
    line-height: 21px;
    color: var(--hi-gray-600);
    background: var(--hi-white);
    margin-left: 8px;
}

.hi-privacy-box {
    background: var(--hi-friendly-100);
    border-radius: var(--hi-radius-card);
    padding: 16px;
}

/* --------------------------------------------------------------------------
   HOME PAGE (Elementor post-313) — Font size & spacing overrides
   -------------------------------------------------------------------------- */

/* Reduce section gaps */
.elementor-313 .e-con.e-parent {
    --gap: 80px 80px !important;
    --row-gap: 80px !important;
}

/* FV main heading */
.elementor-313 .elementor-element-12f2622 .elementor-heading-title {
    font-size: clamp(22px, 2.4vw, 36px) !important;
    line-height: 1.35;
}

/* FV mobile heading — Figma: 36px, keep <br> for 4-line layout */
.elementor-313 .elementor-element-d1ba94d .elementor-heading-title {
    font-size: 28px !important;
    line-height: 1.4;
}

/* FV badge "24時間365日対応可能な在宅介護サービス" */
.elementor-313 .elementor-element-f920a89 .elementor-heading-title,
/* FV subtitle — Figma: 18px, centered, top/bottom border */
.elementor-313 .elementor-element-3de94cf .elementor-heading-title {
    font-size: 16px !important;
    line-height: 1.5;
    border-top: 1px solid rgba(44, 79, 38, 0.6);
    border-bottom: 1px solid rgba(44, 79, 38, 0.6);
    padding: 8px 0;
    display: inline-block;
}

/* Feature cards: titles — 1行に収める */
.elementor-313 .elementor-element-28a189b .elementor-heading-title,
.elementor-313 .elementor-element-73d3702 .elementor-heading-title {
    font-size: clamp(15px, 1.3vw, 18px) !important;
    line-height: 1.5;
    white-space: normal;
}
/* PC: カードコンテナ — 均等幅、高さを中身に合わせる */
.elementor-313 .elementor-element.elementor-element-bed41c1,
.elementor-313 .elementor-element.elementor-element-1bb97f1 {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    overflow: hidden !important;
}
.elementor-313 .elementor-element.elementor-element-7dee8b1,
.elementor-313 .elementor-element.elementor-element-d3f14e2 {
    align-self: stretch !important;
    height: auto !important;
}
.elementor-313 .elementor-element.elementor-element-70046ae,
.elementor-313 .elementor-element.elementor-element-d4485be,
.elementor-313 .elementor-element.elementor-element-aeb0c10,
.elementor-313 .elementor-element.elementor-element-f6c18c2 {
    width: 100% !important;
    max-width: 100% !important;
    --container-widget-width: 100% !important;
}
/* PC: カードタイトル — br①を消して2行に */
.elementor-313 .elementor-element-d4485be .elementor-heading-title br:nth-of-type(1) {
    display: none;
}
.elementor-313 .elementor-element-70046ae .elementor-heading-title,
.elementor-313 .elementor-element-d4485be .elementor-heading-title {
    font-size: clamp(14px, 1.2vw, 18px) !important;
    line-height: 1.5;
    white-space: normal;
}

/* Feature cards: body — Elementor設定14px準拠、カード内に収まるサイズ */
.elementor-313 .elementor-element.elementor-element-aeb0c10 .elementor-heading-title,
.elementor-313 .elementor-element.elementor-element-f6c18c2 .elementor-heading-title,
.elementor-313 .elementor-element.elementor-element-256ed69 .elementor-heading-title,
.elementor-313 .elementor-element.elementor-element-5296375 .elementor-heading-title {
    font-size: 14px !important;
    line-height: 1.7 !important;
    font-weight: 400 !important;
    font-family: "Noto Sans JP", "YuGothic", sans-serif !important;
}

/* トップページ: 本文テキストをNoto Sans JPに統一 */
.elementor-313 .elementor-element-1969739 .elementor-heading-title,
.elementor-313 .elementor-element-3b2ecb7 .elementor-heading-title,
.elementor-313 .elementor-element-58d8fc7 .elementor-heading-title,
.elementor-313 .elementor-element-c458222 .elementor-heading-title,
.elementor-313 .elementor-widget-text-editor {
    font-family: "Noto Sans JP", "YuGothic", sans-serif !important;
}

/* Section titles */
.elementor-313 .elementor-element-93ad987 .elementor-heading-title,
.elementor-313 .elementor-element-98edee3 .elementor-heading-title,
.elementor-313 .elementor-element-d12fe86 .elementor-heading-title,
.elementor-313 .elementor-element-6482237 .elementor-heading-title,
.elementor-313 .elementor-element-ac06aa5 .elementor-heading-title,
.elementor-313 .elementor-element-981ad4a .elementor-heading-title {
    font-size: clamp(24px, 2.2vw, 32px) !important;
    line-height: 1.5;
}

/* About / Service body text */
.elementor-313 .elementor-element-1969739 .elementor-heading-title,
.elementor-313 .elementor-element-3b2ecb7 .elementor-heading-title,
.elementor-313 .elementor-element-58d8fc7 .elementor-heading-title,
.elementor-313 .elementor-element-c458222 .elementor-heading-title {
    font-size: clamp(16px, 1.4vw, 19px) !important;
    line-height: 1.8;
}

/* All Elementor heading text on top page — minimum 15px */
.elementor-313 .elementor-heading-title {
    font-size: max(15px, inherit) !important;
}

/* Link cards (会社概要 / 創業ヒストリー): equal size & consistent layout */
.elementor-313 .elementor-element-ffca97c,
.elementor-313 .elementor-element-058f2fe {
    width: 50% !important;
    max-width: 588px !important;
    min-height: 196px !important;
    height: 196px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    background-size: cover !important;
    background-position: center !important;
}

/* Mobile: link cards stacked */
@media (max-width: 1024px) {
    .elementor-313 .elementor-element-ffca97c,
    .elementor-313 .elementor-element-058f2fe {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Service section (mobile/tablet) */
/* Image container: no side padding for full-width image */
.elementor-313 .elementor-element.elementor-element-fc8f6d7 {
    --padding-left: 0px !important;
    --padding-right: 0px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.elementor-313 .elementor-element.elementor-element-2b441df {
    width: 100% !important;
    max-width: 100% !important;
}
.elementor-313 .elementor-element.elementor-element-2b441df img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: cover;
    content: url('https://202511270952xs43b875.conohawing.com/wp-content/uploads/2026/03/service-section-hero.webp') !important;
}
/* Text container: keep side padding */
.elementor-313 .elementor-element.elementor-element-97f6955 {
    width: 100% !important;
    max-width: 100% !important;
}

/* Link card labels */
.elementor-313 .elementor-element-d2fd236,
.elementor-313 .elementor-element-8d6cf68,
.elementor-313 .elementor-element-94c0c41,
.elementor-313 .elementor-element-ec764ad,
.elementor-313 .elementor-element-5bd25a8,
.elementor-313 .elementor-element-14b5f61,
.elementor-313 .elementor-element-06a8c04,
.elementor-313 .elementor-element-d5179cb {
    white-space: nowrap;
}

/* Mobile: home page adjustments */
@media (max-width: 768px) {
    /* FV: stack vertically, text on top */
    .elementor-313 .elementor-element-12f2622 .elementor-heading-title {
        font-size: 28px !important;
        line-height: 1.35;
    }
    .elementor-313 .elementor-element-f920a89 .elementor-heading-title,
    /* Feature cards: stack, full width */
    .elementor-313 .elementor-element-28a189b .elementor-heading-title,
    .elementor-313 .elementor-element-73d3702 .elementor-heading-title {
        font-size: 18px !important;
    }
    /* FV cards: replaced by images on SP (via site.js) */
    .sp-fv-cards {
        display: flex;
        gap: 8px;
        width: 100%;
    }
    .sp-fv-cards__img {
        flex: 1;
        width: calc(50% - 4px);
        height: auto;
        border-radius: 12px;
    }
    /* "介護で困った..." smaller, hide br */
    /* Section titles */
    .elementor-313 .elementor-element-93ad987 .elementor-heading-title,
    .elementor-313 .elementor-element-98edee3 .elementor-heading-title,
    .elementor-313 .elementor-element-d12fe86 .elementor-heading-title,
    .elementor-313 .elementor-element-6482237 .elementor-heading-title,
    .elementor-313 .elementor-element-ac06aa5 .elementor-heading-title,
    .elementor-313 .elementor-element-981ad4a .elementor-heading-title {
        font-size: 24px !important;
    }
    /* Body text */
    .elementor-313 .elementor-element-1969739 .elementor-heading-title,
    .elementor-313 .elementor-element-3b2ecb7 .elementor-heading-title,
    .elementor-313 .elementor-element-58d8fc7 .elementor-heading-title,
    .elementor-313 .elementor-element-c458222 .elementor-heading-title {
        font-size: 15px !important;
    }
}

/* Mobile link cards */
.elementor-313 .elementor-element-7b46068,
.elementor-313 .elementor-element-a874e6a {
    min-height: 140px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    background-size: cover !important;
    background-position: center !important;
}

/* --------------------------------------------------------------------------
   TOP PAGE SPECIFIC
   -------------------------------------------------------------------------- */
.hi-top-fv {
    background: var(--hi-friendly-200);
    min-height: 638px;
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: stretch;
}

.hi-top-fv__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 48px;
    width: 55%;
    max-width: 786px;
    padding: 60px 0 60px 121px;
    flex-shrink: 0;
    justify-content: center;
    box-sizing: border-box;
}

.hi-top-fv__badge {
    display: flex;
    align-items: center;
    gap: 8px;
    border-top: 1px solid var(--hi-primary);
    border-bottom: 1px solid var(--hi-primary);
    padding: 8px;
}

.hi-top-fv__badge-icon {
    width: 40px;
    height: 40px;
}

.hi-top-fv__badge-text {
    font-family: var(--hi-font-serif);
    font-weight: 900;
    font-size: 18px;
    line-height: 1.4;
}

.hi-top-fv__heading {
    font-family: var(--hi-font-serif);
    font-weight: 900;
    font-size: clamp(28px, 3.2vw, 46px);
    line-height: 1.5;
    margin: 0;
}

.hi-top-fv__cards {
    display: flex;
    gap: 24px;
}

.hi-top-fv__card {
    background: var(--hi-support);
    border-radius: var(--hi-radius-card);
    padding: 16px;
    flex: 0 0 282px;
    max-width: 282px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.hi-top-fv__card-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.hi-top-fv__card-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.hi-top-fv__card-icon img {
    width: 48px;
    height: 48px;
}

.hi-top-fv__card-icon-label {
    font-family: var(--hi-font-en);
    font-weight: 600;
    font-size: 12px;
    line-height: 21px;
    opacity: 0.6;
}

.hi-top-fv__card-title {
    font-family: var(--hi-font-serif);
    font-weight: 700;
    font-size: 20px;
    line-height: 30px;
    text-align: center;
    margin: 0;
}

.hi-top-fv__card-body {
    font-weight: 700;
    font-size: 14px;
    line-height: 21px;
}

.hi-top-fv__image {
    position: absolute;
    right: 0;
    top: 0;
    width: 42%;
    height: 100%;
    overflow: hidden;
}

.hi-top-fv__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Top: About section */
.hi-top-about {
    max-width: var(--hi-content-max);
    margin: 0 auto;
    display: flex;
    gap: 24px;
}

.hi-top-about__image {
    width: 0;
    flex: 1;
    height: 428px;
    flex-shrink: 0;
    border-radius: var(--hi-radius-card);
    overflow: hidden;
}

.hi-top-about__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hi-top-about__text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.hi-top-about__text-content {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.hi-top-about__body {
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
}

/* Top: Service section */
.hi-top-service {
    display: flex;
    gap: 24px;
    max-width: 1200px;
    margin: 0 auto;
}

.hi-top-service__text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.hi-top-service__text-content {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.hi-top-service__body {
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
}

.hi-top-service__image {
    flex: 1;
    min-width: 0;
    height: auto;
    flex-shrink: 0;
    border-radius: var(--hi-radius-card);
    overflow: hidden;
}

.hi-top-service__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Top: News section */
.hi-top-news {
    background: var(--hi-white);
    padding: 40px var(--hi-side-pad);
}

.hi-top-news__inner {
    max-width: var(--hi-content-max);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 64px;
    align-items: center;
}

.hi-news-list {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.hi-news-card {
    display: flex;
    gap: 24px;
}

.hi-news-card__image {
    width: 282px;
    height: 186px;
    flex-shrink: 0;
    border-radius: 12px;
    overflow: hidden;
}

.hi-news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hi-news-card__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.hi-news-card__meta {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.hi-news-card__title {
    font-family: var(--hi-font-serif);
    font-weight: 400;
    font-size: 24px;
    line-height: 36px;
    margin: 0;
}

.hi-news-card__date {
    font-weight: 500;
    font-size: 14px;
    line-height: 21px;
}

.hi-news-card__excerpt {
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}

/* --------------------------------------------------------------------------
   CONTACT PAGE
   -------------------------------------------------------------------------- */
.hi-hero__title--en {
    font-family: var(--hi-font-en);
    font-weight: 500;
    font-size: 56px;
    line-height: 1.5;
}

.hi-hero__image-overlap {
    position: absolute;
    top: 100px;
    left: 100px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hi-section__title--en {
    font-family: var(--hi-font-en);
    font-weight: 500;
    font-size: 40px;
    line-height: 1.5;
}

.hi-contact-note {
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
    margin-bottom: 40px;
}

.hi-contact-note--en {
    font-family: var(--hi-font-en);
}

.hi-contact-note--red {
    color: var(--hi-red);
}

/* CF7 Form Override — Figma design */
.hi-page .custom-design-form {
    background-color: transparent;
    padding: 0;
    border-radius: 0;
    color: var(--hi-primary);
    font-family: var(--hi-font-sans);
}

.hi-page .custom-design-form h2 {
    display: none; /* タイトルはテンプレート側で出している */
}

.hi-page .custom-design-form .label-group {
    font-family: var(--hi-font-sans);
    font-weight: 700;
    font-size: 18px;
    line-height: 27px;
    color: var(--hi-primary);
    margin-bottom: 8px;
}

.hi-page .custom-design-form .req-tag {
    background: transparent;
    color: var(--hi-red);
    border: 1px solid var(--hi-red);
    font-family: var(--hi-font-sans);
    font-weight: 600;
    font-size: 12px;
    padding: 2px 4px;
    border-radius: 2px;
    margin-left: 8px;
}

.hi-page .custom-design-form .opt-tag {
    background: transparent;
    color: var(--hi-gray-600);
    border: 1px solid var(--hi-gray-600);
    font-family: var(--hi-font-sans);
    font-weight: 600;
    font-size: 12px;
    padding: 2px 4px;
    border-radius: 2px;
    margin-left: 8px;
}

.hi-page .custom-design-form .form-row {
    gap: 24px;
    margin-bottom: 40px;
}

.hi-page .custom-design-form .form-full {
    margin-bottom: 40px;
}

.hi-page .custom-design-form input[type="text"],
.hi-page .custom-design-form input[type="tel"],
.hi-page .custom-design-form input[type="email"],
.hi-page .custom-design-form textarea {
    padding: 8px;
    border: 1px solid var(--hi-gray-600);
    border-radius: 4px;
    background: var(--hi-white);
    font-family: var(--hi-font-sans);
    font-size: 16px;
    color: var(--hi-primary);
    height: 44px;
}

.hi-page .custom-design-form textarea {
    height: 200px;
    resize: vertical;
}

.hi-page .custom-design-form input:focus,
.hi-page .custom-design-form textarea:focus {
    border-color: var(--hi-primary);
    outline: 2px solid var(--hi-primary);
}

.hi-page .custom-design-form .wpcf7-checkbox .wpcf7-list-item {
    display: block;
    margin-bottom: 8px;
}

.hi-page .custom-design-form .wpcf7-checkbox .wpcf7-list-item label {
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.hi-page .custom-design-form .policy-container {
    background: var(--hi-friendly-100);
    border: none;
    border-radius: var(--hi-radius-card);
    padding: 16px;
    margin: 40px 0;
    color: var(--hi-primary);
    font-size: 18px;
    line-height: 27px;
}

.hi-page .custom-design-form .policy-container a.policy-link {
    font-weight: 700;
    text-decoration: underline;
}

.hi-page .custom-design-form .submit-area {
    text-align: center;
    margin-top: 48px;
}

.hi-page .custom-design-form .submit-area p {
    color: var(--hi-primary);
    font-size: 14px;
    font-weight: 500;
}

.hi-page .custom-design-form input[type="submit"] {
    background: var(--hi-primary);
    color: var(--hi-support);
    font-family: var(--hi-font-sans);
    font-size: 18px;
    font-weight: 700;
    padding: 12px 48px;
    border: none;
    border-radius: var(--hi-radius-btn);
    cursor: pointer;
    box-shadow: var(--hi-shadow-btn);
    transition: opacity var(--hi-transition);
}

.hi-page .custom-design-form input[type="submit"]:hover {
    opacity: 0.85;
    transform: none;
    box-shadow: var(--hi-shadow-btn);
}

/* --------------------------------------------------------------------------
   404 PAGE
   -------------------------------------------------------------------------- */
.hi-404 {
    text-align: center;
    padding: 80px 0 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
}

.hi-404__heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

.hi-404__code {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.hi-404__code-num {
    font-family: var(--hi-font-en);
    font-weight: 600;
    font-size: 40px;
    line-height: 1;
}

.hi-404__code-label {
    font-family: var(--hi-font-en);
    font-weight: 700;
    font-size: 16px;
    line-height: 24px;
}

.hi-404__title {
    font-weight: 700;
    font-size: 18px;
    line-height: 27px;
    margin: 0;
}

.hi-404__body {
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
}

/* --------------------------------------------------------------------------
   ABOUT PAGE SPECIFIC (私たちについて)
   -------------------------------------------------------------------------- */
.hi-about-section__body {
    font-weight: 500;
    font-size: 18px;
    line-height: 30px;
    color: #1a3317;
    margin-bottom: 24px;
}

/* Lead heading */
.about-lead__heading {
    font-family: var(--hi-font-serif);
    font-weight: 400;
    font-size: 32px;
    line-height: 48px;
    color: var(--hi-primary);
    margin: 0 0 48px;
}

/* Intro: text + logo side by side */
.about-intro {
    display: flex;
    gap: 48px;
    align-items: flex-start;
}

.about-intro__text {
    flex: 1;
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
}

.about-intro__text p {
    margin: 0 0 16px;
}

.about-intro__logos {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 24px;
}

.about-intro__logo-hi {
    width: 200px;
    height: auto;
}

.about-intro__logo-shinkokai {
    width: 80px;
    height: auto;
}

/* Photo + text sections (zigzag layout) */
.about-photo-section {
    padding: 48px 0;
    overflow: hidden;
}

.about-photo-section__inner {
    max-width: var(--hi-content-max);
    margin: 0 auto;
    display: flex;
    gap: 48px;
    align-items: center;
    padding: 0 var(--hi-side-pad);
}

.about-photo-section--reverse .about-photo-section__inner {
    flex-direction: row-reverse;
}

.about-photo-section__image {
    flex: 0 0 50%;
    border-radius: var(--hi-radius-card);
    overflow: hidden;
    height: 320px;
}

.about-photo-section__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--hi-radius-card);
}

.about-photo-section__content {
    flex: 1;
}

.about-photo-section__title {
    font-family: var(--hi-font-serif);
    font-weight: 400;
    font-size: 24px;
    line-height: 36px;
    color: var(--hi-primary);
    margin: 0 0 24px;
}

.about-photo-section__content p {
    font-weight: 500;
    font-size: 18px;
    line-height: 30px;
    margin: 0;
    color: #1a3317;
}


/* Statement */
.about-statement {
    font-family: var(--hi-font-serif);
    font-weight: 400;
    font-size: 28px;
    line-height: 42px;
    color: var(--hi-primary);
    text-align: center;
    margin: 0 0 64px;
}

.about-companies__link {
    font-family: var(--hi-font-sans);
    font-weight: 500;
    font-size: 13px;
    line-height: 21px;
    color: var(--hi-primary);
    text-decoration: underline;
    display: block;
    margin-top: 12px;
}

/* Companies cards — Figma: 486px each, side by side with × in between */
.about-companies {
    display: flex;
    align-items: stretch;
    gap: 0;
    justify-content: center;
    margin-bottom: 48px;
}

.about-companies__card {
    flex: 1;
    max-width: 486px;
    background: var(--hi-friendly-200);
    border: none;
    border-radius: var(--hi-radius-card);
    padding: 40px;
    text-align: center;
    display: flex;
    flex-direction: column;
}

.about-companies__icon {
    margin-bottom: 24px;
    height: 160px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    overflow: hidden;
}

.about-companies__icon img {
    margin: 0 auto;
    max-height: 160px;
    max-width: 200px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.about-companies__body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.about-companies__name {
    font-family: var(--hi-font-serif);
    font-weight: 700;
    font-size: 18px;
    line-height: 27px;
    color: var(--hi-primary);
    margin: 0 0 16px;
}

.about-companies__detail {
    padding-top: 16px;
}

.about-companies__sub {
    font-family: var(--hi-font-sans);
    font-weight: 500;
    font-size: 14px;
    line-height: 21px;
    color: var(--hi-primary);
    opacity: 0.6;
    margin: 0 0 8px;
}

.about-companies__desc {
    font-family: var(--hi-font-sans);
    font-weight: 500;
    font-size: 16px;
    line-height: 24px;
    color: #1a3a15;
    margin: 0 0 12px;
}

.about-companies__cross {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    font-weight: 300;
    color: var(--hi-primary);
    flex-shrink: 0;
    width: 80px;
}

.about-companies__cross::before {
    content: '';
    display: block;
    width: 40px;
    height: 40px;
    background: url("data:image/svg+xml,%3Csvg viewBox='0 0 60 60' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='2' y1='1' x2='58' y2='59' stroke='%232C4F26' stroke-width='2'/%3E%3Cline x1='1' y1='59' x2='58' y2='1' stroke='%232C4F26' stroke-width='2'/%3E%3C/svg%3E") no-repeat center/contain;
}

/* Hide the text × since we use SVG */
.about-companies__cross {
    font-size: 0;
}

/* Together text */
.about-together {
    font-family: var(--hi-font-serif);
    font-weight: 600;
    font-size: 24px;
    line-height: 36px;
    text-align: center;
    color: var(--hi-primary);
}

/* Social Purpose section with photos */
/* About: 日本の未来を支える section */
.about-future-section {
    padding: 60px 0;
}

.about-future-section__inner {
    max-width: var(--hi-content-max);
    margin: 0 auto;
    padding: 0 var(--hi-side-pad);
}

.about-future-section__title {
    font-family: var(--hi-font-serif);
    font-weight: 700;
    font-size: 32px;
    line-height: 48px;
    color: var(--hi-primary);
    text-align: center;
    margin: 0 0 32px;
}

.about-future-section__row {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.about-future-section__image {
    flex: 0 0 50%;
    border-radius: var(--hi-radius-card);
    overflow: hidden;
    height: 392px;
}

.about-future-section__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--hi-radius-card);
}

.about-future-section__text {
    flex: 1;
}

.about-future-section__text p {
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
    color: var(--hi-primary);
    margin: 0;
}

.about-social-section {
    padding: 80px 0;
}

.about-social-section__inner {
    max-width: var(--hi-content-max);
    margin: 0 auto;
    display: flex;
    gap: 48px;
    align-items: flex-start;
    padding: 0 var(--hi-side-pad);
}

.about-social-section__content {
    flex: 1;
}

.about-social-section__photo {
    flex-shrink: 0;
    width: 50%;
    border-radius: var(--hi-radius-card);
    overflow: hidden;
    height: 392px;
}

.about-social-section__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Responsive */
@media (max-width: 1024px) {
    .about-social-section__inner {
        flex-direction: column;
    }

    .about-social-section__photo {
        width: 100%;
    }

    .about-photo-section__inner {
        flex-direction: column;
    }

    .about-future-section__row {
        flex-direction: column;
    }

    .about-future-section__title {
        font-size: 28px;
        line-height: 42px;
    }

    .about-intro {
        flex-direction: column;
        gap: 24px;
    }

    .about-photo-section__inner {
        flex-direction: column !important;
        padding: 24px var(--hi-side-pad);
    }

    .about-companies {
        flex-direction: column;
        align-items: center;
    }

    .about-companies__cross {
        transform: rotate(90deg);
    }

    .about-statement {
        font-size: 22px;
        line-height: 33px;
    }
}

@media (max-width: 768px) {
    .about-lead__heading {
        font-size: 24px;
        line-height: 36px;
    }

    .about-photo-section__title {
        font-size: 20px;
        line-height: 30px;
    }

    .about-photo-section__content p {
        font-size: 16px;
        line-height: 24px;
    }

    .about-statement {
        font-size: 20px;
        line-height: 30px;
    }

    .about-together {
        font-size: 16px;
        line-height: 24px;
    }
}

.hi-about-section__body {
    font-weight: 500;
    font-size: 18px;
    line-height: 27px;
}

/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
    :root {
        --hi-side-pad: 40px;
    }

    .hi-header__nav {
        display: none;
    }

    .hi-header__phone {
        display: none;
    }

    .hi-header__hamburger {
        display: flex;
        flex-direction: column;
    }

    .hi-header__cta {
        padding: 8px 20px;
    }

    .hi-hero__title {
        font-size: 36px;
        line-height: 52px;
    }

    .hi-hero__en {
        font-size: 16px;
    }

    .hi-hero__title--en {
        font-size: 40px;
    }

    .hi-hero__image {
        width: 400px;
    }

    .about-photo-section__image {
        flex: 0 0 100%;
        width: 100%;
    }

    .hi-top-fv {
        height: auto;
        min-height: auto;
        flex-direction: column-reverse;
    }

    .hi-top-fv__content {
        position: static;
        top: auto;
        left: auto;
        transform: none;
        width: 100%;
        padding: 40px var(--hi-side-pad);
    }

    .hi-top-fv__heading {
        font-size: 36px;
        line-height: 52px;
    }

    .hi-top-fv__cards {
        justify-content: center;
    }

    .hi-top-fv__image {
        display: block;
        position: static;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 7;
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 85%);
    }

    .hi-top-fv__image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 25%;
    }

    .hi-top-about {
        flex-direction: column;
        padding: 0 var(--hi-side-pad);
    }

    .hi-top-about__image,
    .hi-top-about__text {
        width: 100%;
    }

    .hi-top-about__image {
        height: 300px;
    }

    .hi-top-service {
        flex-direction: column-reverse;
        padding: 0 var(--hi-side-pad);
    }

    .hi-top-service__text,
    .hi-top-service__image {
        width: 100%;
    }

    .hi-link-cards {
        flex-direction: column;
        padding: 0 var(--hi-side-pad);
    }

    .hi-link-card {
        width: 100%;
    }

    .hi-footer-cta__inner {
        flex-direction: column;
        gap: 40px;
    }

    .hi-footer-cta__col {
        width: 100%;
    }

    .hi-footer-bottom__content {
        flex-direction: column;
        gap: 40px;
    }

    .hi-footer-bottom__nav {
        flex-wrap: wrap;
        gap: 24px;
    }

    .hi-table__row {
        flex-direction: column;
        gap: 8px;
    }

    .hi-table__label {
        width: 100%;
    }

    .hi-news-card {
        flex-direction: column;
    }

    .hi-news-card__image {
        width: 100%;
        height: 200px;
    }
}

@media (max-width: 768px) {
    :root {
        --hi-side-pad: 16px;
    }

    .hi-br-pc { display: none; }
    .hi-br-sp { display: block; }

    .hi-header__inner {
        padding: 12px 16px;
    }

    .hi-header__logo {
        height: 28px;
    }

    .hi-header__logo-text {
        display: none;
    }

    .hi-header__cta {
        padding: 8px 16px;
        gap: 4px;
    }

    .hi-header__cta-icon {
        width: 24px;
        height: 24px;
    }

    .hi-header__cta-text-sm {
        font-size: 10px;
    }

    .hi-header__cta-text-lg {
        font-size: 14px;
        line-height: 21px;
    }


    /* Hero: Figma compact horizontal layout */
    .hi-hero {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        padding: 0 0 0 var(--hi-side-pad);
        min-height: auto;
        height: 94px;
        background: var(--hi-friendly-200);
        overflow: hidden;
    }

    .hi-hero__text {
        flex-shrink: 0;
    }

    .hi-hero__en {
        font-size: 10px;
        line-height: 15px;
    }

    .hi-hero__title {
        font-size: 20px;
        line-height: 30px;
    }

    .hi-hero__title--en {
        font-size: 20px;
    }

    .hi-hero__image {
        width: 50%;
        max-width: 50%;
        height: 100%;
        flex-shrink: 0;
    }

    .hi-hero__image-overlap {
        top: 50px;
        left: 50px;
    }

    .hi-section__title {
        font-size: 24px;
        line-height: 36px;
    }

    .hi-faq-item__q {
        font-size: 20px;
        line-height: 30px;
    }

    .hi-faq-item__a {
        font-size: 16px;
        line-height: 24px;
    }

    .hi-top-fv__cards {
        flex-direction: column;
    }

    .hi-top-fv__card {
        width: 100%;
    }

    .hi-top-fv__heading {
        font-size: 28px;
        line-height: 42px;
    }

    .hi-top-fv__badge-text {
        font-size: 16px;
        line-height: 24px;
    }

    .hi-breadcrumb {
        padding: 8px var(--hi-side-pad);
        font-size: 12px;
        flex-wrap: wrap;
    }

    .hi-footer-cta {
        padding: 24px var(--hi-side-pad);
    }

    .hi-footer-cta__heading {
        font-size: 18px;
        line-height: 27px;
    }

    .hi-footer-cta__phone-num-text {
        font-size: 28px;
    }

    .hi-footer-bottom {
        padding: 24px var(--hi-side-pad) 16px;
    }

    .hi-about-section__photo-grid {
        grid-template-columns: 1fr;
    }

    /* ── Subpage mobile fixes (About / Company / History / Contact) ── */

    /* Section padding reduction */
    .hi-section {
        padding: 40px 0;
    }

    /* Hero text gap */
    .hi-hero__text {
        gap: 2px;
    }

    /* About: intro section */
    .about-lead__heading {
        font-size: 20px;
        line-height: 30px;
        margin-bottom: 16px;
    }
    .about-intro__text {
        font-size: 15px;
        line-height: 22.5px;
    }

    /* About: photo sections */
    .about-photo-section {
        padding: 40px 0;
    }
    .about-photo-section__inner {
        gap: 24px;
    }
    .about-photo-section__title {
        font-size: 18px;
        line-height: 27px;
    }
    .about-photo-section__image {
        flex: 0 0 100%;
        width: 100%;
        height: 179px;
        border-radius: 10px;
    }
    .about-photo-section__content p {
        font-size: 15px;
        line-height: 22.5px;
    }
    /* SP: --reverse section → image should come first */
    .about-photo-section--reverse .about-photo-section__image {
        order: -1;
    }
    /* SP: future section → title, image, text stacked */
    .about-future-section {
        padding: 40px 0;
    }
    .about-future-section__title {
        font-size: 20px;
        line-height: 30px;
        text-align: left;
        margin-bottom: 16px;
    }
    .about-future-section__row {
        flex-direction: column;
        gap: 16px;
    }
    .about-future-section__image {
        width: 100%;
        height: 179px;
        border-radius: 10px;
    }
    .about-future-section__text p {
        font-size: 15px;
        line-height: 22.5px;
    }

    /* About: statement — Figma: left-aligned, consistent sizing */
    .about-statement {
        text-align: left;
        font-size: 20px;
        line-height: 30px;
        margin-bottom: 16px;
    }
    .about-statement br {
        display: none;
    }
    .hi-about-section__body {
        font-size: 15px;
        line-height: 22.5px;
    }

    /* About: company cards — Figma aligned */
    .about-companies {
        gap: 0;
    }
    .about-companies__card {
        padding: 16px;
        max-width: 100%;
        width: 100%;
        border-radius: 16px;
    }
    .about-companies__icon {
        height: 80px;
        margin-bottom: 16px;
    }
    .about-companies__icon img {
        max-height: 80px;
        max-width: 120px;
    }
    .about-companies__name {
        font-size: 20px;
        line-height: 30px;
        text-align: center;
    }
    .about-companies__sub {
        font-size: 16px;
        line-height: 24px;
        text-align: center;
    }
    .about-companies__desc {
        font-size: 14px;
        line-height: 21px;
        text-align: center;
    }
    .about-companies__cross {
        width: 36px;
        height: 36px;
        transform: none;
    }
    .about-together {
        font-size: 14px;
        line-height: 21px;
    }
    .about-together br {
        display: none;
    }

    /* About: social section */
    .about-social-section {
        padding: 40px 0;
    }
    .about-social-section__photo {
        height: 239px;
        border-radius: 10px;
    }

    /* Company: table rows */
    .hi-table__row {
        font-size: 15px;
        line-height: 24px;
        padding: 20px 0;
    }

    /* Link cards: Figma pill-label style */
    .hi-link-cards {
        gap: 24px;
    }
    .hi-link-card {
        height: 119px;
        border-radius: 10px;
    }
    .hi-link-card__overlay {
        background: none;
    }
    .hi-link-card__label {
        position: absolute;
        top: auto;
        bottom: 0;
        left: 0;
        right: auto;
        transform: none;
        background: var(--hi-primary);
        color: var(--hi-support);
        border-radius: 0 40px 40px 0;
        padding: 6px 24px 6px 16px;
        display: flex;
        flex-direction: row;
        gap: 8px;
        align-items: center;
        text-align: left;
    }
    .hi-link-card__label-jp {
        font-size: 16px;
        line-height: 24px;
    }
    .hi-link-card__label-en {
        font-size: 10px;
        line-height: 15px;
    }

    /* Contact: form */
    .hi-contact-note {
        font-size: 15px;
        line-height: 24px;
        margin-bottom: 24px;
    }
    .hi-page .custom-design-form .form-row {
        flex-direction: column;
        gap: 0;
    }
    .hi-page .custom-design-form input[type="submit"] {
        width: 100%;
        padding: 16px 24px;
    }

    /* F4: SP必須マーク改行防止 */
    .hi-page .custom-design-form .label-group,
    .hi-page .custom-design-form .form-row label {
        display: flex;
        align-items: center;
        flex-wrap: nowrap;
        gap: 8px;
    }
    .hi-page .custom-design-form .req-tag,
    .hi-page .custom-design-form .opt-tag,
    .wpcf7 .slp-form__required,
    .wpcf7 .slp-form__optional {
        white-space: nowrap;
        flex-shrink: 0;
    }

    /* H1: History SP — PCのみ改行 */
    .hi-br-pc {
        display: none;
    }
}

/* ==========================================================================
   About ページ改善
   ========================================================================== */

/* A1: About セクション間スペース縮小（PC向けのみ） */
@media (min-width: 769px) {
    .about-photo-section {
        padding: 48px 0;
    }
    .about-future-section {
        padding: 48px 0;
    }
}
.about-lead__heading {
    margin: 0 0 32px;
}

/* A3/A4: タイトルと本文のコントラスト改善 */
.about-photo-section__title {
    color: #1a3317 !important;
    font-weight: 700;
}
.about-photo-section__content p {
    color: #3d3d3d !important;
}
.hi-about-section__body {
    color: #3d3d3d;
}
.about-companies__desc {
    color: #3d3d3d !important;
}
.about-companies__sub {
    opacity: 1;
    color: #5a7a55 !important;
}

/* A5: 伸こう会カード配置バランス改善（PC向けのみ） */
@media (min-width: 769px) {
    .about-companies__icon {
        height: 100px;
    }
    .about-companies__icon img {
        max-height: 100px;
    }
    .about-companies__card {
        padding: 32px;
    }
    .about-companies__cross {
        width: 60px;
    }
    .about-companies {
        margin-bottom: 32px;
    }
}

/* ==========================================================================
   SP トップページ FV 改善
   ========================================================================== */
@media (max-width: 768px) {
    /* FV画像: 高さ制限 + 斜めカット + 顔が見える位置 */
    .elementor-313 .elementor-element-7c80e9e {
        max-height: 65vw !important;
        overflow: hidden !important;
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 90%) !important;
    }
    .elementor-313 .elementor-element-7c80e9e img {
        width: 100% !important;
        height: 65vw !important;
        object-fit: cover !important;
        object-position: center 30% !important;
    }

    /* FV見出し: 「介護で困った<br①>どんなことでも、<br②>信頼できるプロが<br③>対応します。」
       → br①とbr③を消してbr②だけ残す → 「、」で切れた2行表示 */
    .elementor-313 .elementor-element-d1ba94d .elementor-heading-title br:nth-of-type(1),
    .elementor-313 .elementor-element-d1ba94d .elementor-heading-title br:nth-of-type(3) {
        display: none !important;
    }
    .elementor-313 .elementor-element-d1ba94d .elementor-heading-title {
        font-size: 24px !important;
        line-height: 1.5 !important;
    }

    /* FVカード: SP では画像に差し替え（site.js） — 旧Elementor要素のoverride不要 */

    /* フッターCTA電話番号はみ出し防止 */
    #colophon .elementor-element-4b0da6b .elementor-heading-title {
        font-size: clamp(18px, 5.5vw, 22px) !important;
        white-space: nowrap;
    }

    /* Serviceセクション: SP全体に余白確保 */
    .elementor-313 .elementor-element.elementor-element-fc8f6d7 {
        --padding-left: 16px !important;
        --padding-right: 16px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        box-sizing: border-box !important;
    }
    .elementor-313 .elementor-element.elementor-element-97f6955,
    .elementor-313 .elementor-element.elementor-element-28f3c20 {
        --width: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .elementor-313 .elementor-element.elementor-element-2b441df {
        width: 100% !important;
        max-width: 100% !important;
    }
    .elementor-313 .elementor-element.elementor-element-2b441df img {
        border-radius: 16px !important;
        height: 50vw !important;
        object-fit: cover !important;
    }
}

/* ==========================================================================
   追加修正 — PDF確認点対応 (2026-04-05〜06)
   ========================================================================== */

/* ── トップPC: ニュース見出し改行修正 ── */
.elementor-313 .elementor-element-981ad4a .elementor-heading-title {
    white-space: nowrap !important;
}

/* ── トップPC: 「私たちについて」本文とボタンの間隔改善 ── */
.elementor-313 .elementor-element-1969739 {
    margin-bottom: 16px !important;
}

/* ── トップSP: 「私たちについて」改行防止 ── */
@media (max-width: 768px) {
    .elementor-313 .elementor-element-6482237 .elementor-heading-title {
        white-space: nowrap !important;
        font-size: 22px !important;
    }
}

/* ── SP: 「お問い合わせ」ボタン文字切れ防止 ── */
@media (max-width: 767px) {
    #masthead .elementor-element-d785f45 {
        min-width: auto !important;
        padding: 8px 6px !important;
    }
    #masthead .elementor-element-d785f45 .elementor-heading-title {
        font-size: 10px !important;
        white-space: nowrap !important;
    }
}

/* ==========================================================================
   フッター色の根本対策
   ========================================================================== */

/* CTA帯見出し（黄緑背景上）= 深緑 */
#colophon .elementor-element-3fafdeb .elementor-heading-title,
#colophon .elementor-element-4538810 .elementor-heading-title {
    color: #2c4f26 !important;
}

/* フッターCTA: 深緑背景コンテナ内の全テキスト = 白 */
#colophon [data-settings*="background_background"] .elementor-heading-title,
#colophon [data-settings*="background_background"] a,
#colophon [data-settings*="background_background"] a:link,
#colophon [data-settings*="background_background"] a:visited,
#colophon [data-settings*="background_background"] a:hover,
#colophon [data-settings*="background_background"] a:active {
    color: #faffee !important;
}

/* フッターナビ: 全リンク白文字 */
#colophon .elementor-heading-title a,
#colophon .elementor-heading-title a:link,
#colophon .elementor-heading-title a:visited,
#colophon .elementor-heading-title a:hover,
#colophon .elementor-heading-title a:active {
    color: #faffee !important;
    text-decoration: none !important;
}

/* フッター: 外部リンクアイコン非表示 */
#colophon .elementor-element-fd5f2a9,
#colophon .elementor-element-706c07b {
    display: none !important;
}

/* フッターナビ: Inquiry (English)非表示（CTAに既にある） */
#colophon .elementor-element-603af42 {
    display: none !important;
}

/* SP用フッターCTA見出し色（深緑） */
#colophon .elementor-element-6430b39 .elementor-heading-title,
#colophon .elementor-element-ba1994e .elementor-heading-title {
    color: #2c4f26 !important;
}

/* フッターCTAアイコン位置調整 */
#colophon .elementor-element-db607f3 {
    align-items: center !important;
    justify-content: center !important;
}
#colophon .elementor-element-b163294 {
    flex-shrink: 0 !important;
    align-self: center !important;
}

/* カスタムテンプレート用フッター */
.hi-footer-cta a.hi-btn,
.hi-footer-cta a.hi-btn:visited,
.hi-footer-cta a.hi-btn:hover,
a.hi-footer-cta__phone-btn,
a.hi-footer-cta__phone-btn:visited,
a.hi-footer-cta__phone-btn:hover {
    color: #faffee !important;
}
.hi-footer-cta__heading {
    color: #2c4f26 !important;
}
.hi-footer-bottom,
.hi-footer-bottom a,
.hi-footer-bottom a:visited,
.hi-footer-bottom a:hover {
    color: #faffee !important;
}

/* 深緑背景内リンクの汎用ルール */
.elementor-element[style*="background-color: #2C4F26"] a,
.elementor-element[style*="background-color:#2c4f26"] a,
.elementor-element[style*="background-color: #2c4f26"] a,
.elementor-element[style*="background-color: #2C4F26"] a:visited,
.elementor-element[style*="background-color:#2c4f26"] a:visited,
.elementor-element[style*="background-color: #2c4f26"] a:visited {
    color: #faffee !important;
}

/* CTA帯見出し色の確定上書き（最後に置いて最高優先度） */
#colophon .elementor-element-3fafdeb .elementor-heading-title,
#colophon .elementor-element-4538810 .elementor-heading-title {
    color: #2c4f26 !important;
}

/* ==========================================================================
   ニュース一覧ページ — 本文サイズ + ヒーロー（レガシー、カスタムテンプレート移行済み）
   ========================================================================== */

/* ニュース本文サイズ拡大 */
.page-id-390 .eael-grid-post .eael-entry-wrapper,
.page-id-390 .eael-grid-post .eael-entry-wrapper p {
    font-size: 16px !important;
    line-height: 1.8 !important;
}
.page-id-390 .eael-entry-title,
.page-id-390 .eael-entry-title a {
    font-size: 20px !important;
    line-height: 1.5 !important;
}

/* 個別記事ページ本文 */
.single-post .entry-content,
.single-post .entry-content p {
    font-size: 18px !important;
    line-height: 1.85 !important;
}
.single-post .entry-title {
    font-size: 28px !important;
    line-height: 1.4 !important;
    font-family: "Noto Serif JP", "YuMincho", serif;
}

@media (max-width: 768px) {
    .page-id-390 .eael-grid-post .eael-entry-wrapper {
        font-size: 15px !important;
    }
    .page-id-390 .eael-entry-title,
    .page-id-390 .eael-entry-title a {
        font-size: 18px !important;
    }
    .single-post .entry-content,
    .single-post .entry-content p {
        font-size: 16px !important;
        line-height: 1.8 !important;
    }
    .single-post .entry-title {
        font-size: 22px !important;
    }
}

/* ==========================================================================
   ニュース一覧グリッド (page-news.php カスタムテンプレート)
   ========================================================================== */

.hi-news-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
}
.hi-news-card {
    background: var(--hi-white);
    border-radius: var(--hi-radius-card);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(44, 79, 38, 0.08);
    transition: box-shadow 0.3s ease;
}
.hi-news-card:hover {
    box-shadow: 0 8px 32px rgba(44, 79, 38, 0.14);
}
.hi-news-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
}
.hi-news-card__image-wrap {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.hi-news-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.hi-news-card:hover .hi-news-card__image {
    transform: scale(1.04);
}
.hi-news-card__body {
    padding: 24px;
}
.hi-news-card__date {
    display: block;
    font-size: 14px;
    color: #888;
    margin-bottom: 12px;
}
.hi-news-card__title {
    font-family: var(--hi-font-serif);
    font-size: 22px;
    line-height: 1.5;
    margin: 0 0 12px;
    font-weight: 700;
    color: var(--hi-primary);
}
.hi-news-card__excerpt {
    font-size: 15px;
    line-height: 1.8;
    color: #555;
    margin: 0 0 16px;
}
.hi-news-card__readmore {
    display: inline-flex;
    align-items: center;
    font-family: var(--hi-font-serif);
    font-weight: 700;
    font-size: 15px;
    color: var(--hi-primary);
    border-bottom: 2px solid var(--hi-primary);
    padding-bottom: 2px;
}
.hi-pagination {
    margin-top: 48px;
    text-align: center;
}
.hi-pagination .page-numbers {
    display: inline-block;
    padding: 8px 16px;
    margin: 0 4px;
    border-radius: 8px;
    font-size: 15px;
    color: var(--hi-primary);
}
.hi-pagination .page-numbers.current {
    background: var(--hi-primary);
    color: var(--hi-support);
}
@media (max-width: 768px) {
    .hi-news-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .hi-news-card__title {
        font-size: 18px;
    }
    .hi-news-card__body {
        padding: 16px;
    }
}

/* ==========================================================================
   タブレット(769-1024px) FVカード配置
   ========================================================================== */
@media (max-width: 1024px) and (min-width: 769px) {
    .elementor-313 .elementor-element.elementor-element-bed41c1,
    .elementor-313 .elementor-element.elementor-element-1bb97f1 {
        flex: 1 1 45% !important;
        min-width: 0 !important;
    }
    .elementor-313 .elementor-element-70046ae .elementor-heading-title,
    .elementor-313 .elementor-element-d4485be .elementor-heading-title {
        font-size: 15px !important;
        text-align: center !important;
    }
    .elementor-313 .elementor-element-aeb0c10 .elementor-heading-title,
    .elementor-313 .elementor-element-f6c18c2 .elementor-heading-title {
        font-size: 13px !important;
        text-align: center !important;
    }
}

/* ==========================================================================
   SPハンバーガーメニュー: サブメニューを常時展開・フラット表示
   ========================================================================== */

/* サブメニューを常時表示（折りたたみ解除） */
#masthead .hfe-nav-menu .sub-menu,
#masthead .hfe-nav-menu .hfe-has-submenu-container .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    width: 100% !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* サブメニュー項目を親と同じスタイルに */
#masthead .hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
    padding-left: 16px !important;
    font-family: "Noto Serif JP", "YuMincho", serif !important;
    font-weight: 700 !important;
    font-size: 18px !important;
}

/* 折りたたみトグル（▼矢印）を非表示 */
#masthead .hfe-nav-menu .hfe-menu-toggle {
    display: none !important;
}

/* サブメニューコンテナの余分なスタイルをリセット */
#masthead .hfe-has-submenu-container {
    position: static !important;
}

/* ==========================================================================
   カスタムテンプレート: トップページ (page-top-custom.php)
   ========================================================================== */

/* ── FV セクション調整 ── */

/* PC: FVカードをフレックスで横並び、SP用カード画像は非表示 */
.hi-top-fv__cards--pc {
    display: flex;
    gap: 24px;
}
.hi-top-fv__cards--sp {
    display: none;
}

/* ── About セクション padding ── */
.hi-top-about-section {
    padding: 80px var(--hi-side-pad);
}

/* ── リンクカード セクション padding ── */
.hi-top-linkcards-section {
    padding: 0 0 80px;
}
.hi-top-linkcards-section .hi-link-cards {
    padding: 0 var(--hi-side-pad);
}

/* ── Service セクション padding ── */
.hi-top-service-section {
    padding: 80px var(--hi-side-pad);
    background: var(--hi-white);
}

/* ── ニュース「アウトライン」ボタン ── */
.hi-btn--outline {
    background: transparent;
    color: var(--hi-primary);
    border: 2px solid var(--hi-primary);
}
.hi-btn--outline:hover {
    background: var(--hi-primary);
    color: var(--hi-support);
    opacity: 1;
}

/* ── ニュースカード: リスト reset ── */
.hi-news-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* ── タブレット (769px – 1024px) ── */
@media (max-width: 1024px) and (min-width: 769px) {
    .hi-top-about-section,
    .hi-top-service-section {
        padding-left: 40px;
        padding-right: 40px;
    }
    .hi-top-linkcards-section .hi-link-cards {
        padding-left: 40px;
        padding-right: 40px;
    }
    .hi-top-news {
        padding-left: 40px;
        padding-right: 40px;
    }

    /* リンクカードセクション: タブレットではパディング調整 */
    .hi-top-linkcards-section .hi-link-cards {
        flex-direction: row;
    }
}

/* ── モバイル (〜768px) ── */
@media (max-width: 768px) {

    /* ── FV ── */
    /* FV: PC用カード非表示、SP用カード画像を表示 */
    .hi-top-fv__cards--pc {
        display: none;
    }
    .hi-top-fv__cards--sp {
        display: flex;
        gap: 8px;
        width: 100%;
    }
    .hi-top-fv__sp-card-img {
        width: calc(50% - 4px);
        height: auto;
        border-radius: var(--hi-radius-card);
    }

    /* FV: 高さ固定解除、画像トップ→コンテンツ下の縦積みレイアウト */
    .hi-top-fv {
        height: auto;
        flex-direction: column-reverse;
        overflow: visible;
    }
    .hi-top-fv__content {
        position: static;
        transform: none;
        width: 100%;
        padding: 40px var(--hi-side-pad-sp) 24px;
        gap: 24px;
    }
    .hi-top-fv__badge-text {
        font-size: 16px;
        line-height: 1.6;
        white-space: nowrap;
    }
    .hi-top-fv__heading {
        font-size: 22px;
        line-height: 1.5;
    }
    .hi-top-fv__image {
        display: block;
        position: static;
        width: 100%;
        height: auto;
        aspect-ratio: 390 / 241;
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 85%);
    }
    .hi-top-fv__image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 25%;
    }

    /* ── About セクション ── */
    .hi-top-about-section {
        padding: 40px var(--hi-side-pad-sp);
    }
    .hi-top-about {
        flex-direction: column;
        gap: 24px;
    }
    .hi-top-about__image {
        width: 100%;
        height: 240px;
        flex-shrink: 1;
    }
    .hi-top-about__text {
        width: 100%;
        gap: 24px;
    }
    .hi-top-about__body {
        font-size: 16px;
        line-height: 1.7;
    }

    /* ── リンクカード ── */
    .hi-top-linkcards-section {
        padding-bottom: 40px;
    }
    .hi-top-linkcards-section .hi-link-cards {
        padding: 0 var(--hi-side-pad-sp);
    }
    .hi-link-cards {
        flex-direction: column;
        gap: 16px;
    }
    .hi-link-card {
        width: 100%;
        height: 140px;
    }

    /* ── Service セクション ── */
    .hi-top-service-section {
        padding: 40px var(--hi-side-pad-sp);
    }
    .hi-top-service {
        flex-direction: column-reverse;
        gap: 24px;
    }
    .hi-top-service__text {
        width: 100%;
        gap: 24px;
    }
    .hi-top-service__body {
        font-size: 16px;
        line-height: 1.7;
    }
    .hi-top-service__image {
        width: 100%;
        height: 240px;
        flex-shrink: 1;
    }

    /* ── ニュース ── */
    .hi-top-news {
        padding-left: var(--hi-side-pad-sp);
        padding-right: var(--hi-side-pad-sp);
    }

    /* ── 共通セクション ── */
    .hi-section {
        padding: 40px 0;
    }
    .hi-section__title {
        font-size: 28px;
        line-height: 1.5;
    }

    /* hi-content--wide: SPでは左右16pxパディング */
    .hi-content--wide {
        padding: 0 var(--hi-side-pad-sp);
    }
}

/* ==========================================================================
   SPフッター深緑部分のレスポンシブ改善
   ========================================================================== */
@media (max-width: 768px) {
    /* フッター深緑 inner: gap縮小 */
    .hi-footer-bottom__inner {
        gap: 24px;
    }

    /* フッター深緑 content: ブランドエリアとナビの縦積み */
    .hi-footer-bottom__content {
        display: flex;
        flex-direction: column;
        gap: 24px;
        width: 100%;
    }

    /* ブランドエリア: ロゴ(左) + 法的リンク(右) を横並び、その下にSNS */
    .hi-footer-bottom__brand {
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
        width: 100%;
    }

    /* ロゴ+社名ブロック: 1行目左側 */
    .hi-footer-bottom__logo-wrap {
        flex: 1;
        min-width: 140px;
        order: 1;
        align-items: flex-start;
    }

    /* 法的リンク: 1行目右側 */
    .hi-footer-bottom__legal {
        flex: 1;
        min-width: 140px;
        display: flex;
        flex-direction: column;
        gap: 8px;
        text-align: right;
        order: 2;
    }

    /* SNS: 2行目・全幅・左寄せ、アイコンを大きく */
    .hi-footer-bottom__social {
        width: 100%;
        flex-basis: 100%;
        display: flex;
        gap: 20px;
        justify-content: flex-start;
        order: 3;
    }
    .hi-footer-bottom__social svg {
        width: 32px;
        height: 32px;
    }

    /* ナビ（リンク一覧）はSPでは非表示 */
    .hi-footer-bottom__nav {
        display: none;
    }

    /* コピーライト */
    .hi-footer-bottom__copy {
        width: 100%;
        text-align: center;
    }
}
