/* Regional care page typography balance */
body.page-250145 #kite-lp-hodogaya-direct,
body.page-250146 #kite-lp-nishi-caremanager,
body.page-250147 #kite-lp-naka-caremanager,
body.page-250148 #kite-lp-minami,
body.page-250239 #kite-lp-yokohama-wide {
    font-size: 16px !important;
    line-height: 1.9 !important;
    letter-spacing: 0.04em !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-hero .lp-title,
body.page-250145 #kite-lp-hodogaya-direct .lp-hero .lp-title-sub,
body.page-250146 #kite-lp-nishi-caremanager .lp-hero .lp-title,
body.page-250147 #kite-lp-naka-caremanager .lp-hero .lp-title,
body.page-250148 #kite-lp-minami .lp-hero .lp-title,
body.page-250239 #kite-lp-yokohama-wide .lp-hero .lp-title {
    font-size: clamp(34px, 4vw, 44px) !important;
    line-height: 1.38 !important;
    letter-spacing: 0.04em !important;
    font-weight: 600 !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-kicker,
body.page-250146 #kite-lp-nishi-caremanager .lp-kicker,
body.page-250147 #kite-lp-naka-caremanager .lp-kicker,
body.page-250148 #kite-lp-minami .lp-kicker,
body.page-250239 #kite-lp-yokohama-wide .lp-kicker {
    font-size: 13px !important;
    line-height: 1.7 !important;
    letter-spacing: 0.12em !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-lead,
body.page-250146 #kite-lp-nishi-caremanager .lp-lead,
body.page-250147 #kite-lp-naka-caremanager .lp-lead,
body.page-250148 #kite-lp-minami .lp-lead,
body.page-250239 #kite-lp-yokohama-wide .lp-lead {
    max-width: 820px !important;
    font-size: 16px !important;
    line-height: 1.9 !important;
    letter-spacing: 0.04em !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-section .lp-title,
body.page-250146 #kite-lp-nishi-caremanager .lp-section .lp-title,
body.page-250147 #kite-lp-naka-caremanager .lp-section .lp-title,
body.page-250148 #kite-lp-minami .lp-section .lp-title,
body.page-250239 #kite-lp-yokohama-wide .lp-section .lp-title {
    font-size: clamp(25px, 2.7vw, 30px) !important;
    line-height: 1.45 !important;
    letter-spacing: 0.04em !important;
    font-weight: 600 !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-glass-card h2,
body.page-250145 #kite-lp-hodogaya-direct .lp-glass-card h3,
body.page-250146 #kite-lp-nishi-caremanager .lp-glass-card h2,
body.page-250146 #kite-lp-nishi-caremanager .lp-glass-card h3,
body.page-250147 #kite-lp-naka-caremanager .lp-glass-card h2,
body.page-250147 #kite-lp-naka-caremanager .lp-glass-card h3,
body.page-250148 #kite-lp-minami .lp-glass-card h2,
body.page-250148 #kite-lp-minami .lp-glass-card h3,
body.page-250239 #kite-lp-yokohama-wide .lp-glass-card h2,
body.page-250239 #kite-lp-yokohama-wide .lp-glass-card h3 {
    font-size: clamp(20px, 2.1vw, 23px) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.04em !important;
    font-weight: 700 !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-section p,
body.page-250145 #kite-lp-hodogaya-direct .lp-glass-card p,
body.page-250145 #kite-lp-hodogaya-direct .lp-faq-item,
body.page-250146 #kite-lp-nishi-caremanager .lp-section p,
body.page-250146 #kite-lp-nishi-caremanager .lp-glass-card p,
body.page-250146 #kite-lp-nishi-caremanager .lp-faq-item,
body.page-250147 #kite-lp-naka-caremanager .lp-section p,
body.page-250147 #kite-lp-naka-caremanager .lp-glass-card p,
body.page-250147 #kite-lp-naka-caremanager .lp-faq-item,
body.page-250148 #kite-lp-minami .lp-section p,
body.page-250148 #kite-lp-minami .lp-glass-card p,
body.page-250148 #kite-lp-minami .lp-faq-item,
body.page-250239 #kite-lp-yokohama-wide .lp-section p,
body.page-250239 #kite-lp-yokohama-wide .lp-glass-card p,
body.page-250239 #kite-lp-yokohama-wide .lp-faq-item {
    font-size: 15.5px !important;
    line-height: 1.9 !important;
    letter-spacing: 0.035em !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-feature-card,
body.page-250146 #kite-lp-nishi-caremanager .lp-feature-card,
body.page-250147 #kite-lp-naka-caremanager .lp-feature-card,
body.page-250148 #kite-lp-minami .lp-feature-card,
body.page-250239 #kite-lp-yokohama-wide .lp-feature-card {
    line-height: 1.85 !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-faq-item summary,
body.page-250146 #kite-lp-nishi-caremanager .lp-faq-item summary,
body.page-250147 #kite-lp-naka-caremanager .lp-faq-item summary,
body.page-250148 #kite-lp-minami .lp-faq-item summary,
body.page-250239 #kite-lp-yokohama-wide .lp-faq-item summary {
    font-size: 16px !important;
    line-height: 1.7 !important;
    letter-spacing: 0.035em !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-cta-title,
body.page-250146 #kite-lp-nishi-caremanager .lp-cta-title,
body.page-250147 #kite-lp-naka-caremanager .lp-cta-title,
body.page-250148 #kite-lp-minami .lp-cta-title,
body.page-250239 #kite-lp-yokohama-wide .lp-cta-title {
    font-size: clamp(26px, 3vw, 32px) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.04em !important;
}

body.page-250145 #kite-lp-hodogaya-direct .lp-cta-desc,
body.page-250146 #kite-lp-nishi-caremanager .lp-cta-desc,
body.page-250147 #kite-lp-naka-caremanager .lp-cta-desc,
body.page-250148 #kite-lp-minami .lp-cta-desc,
body.page-250239 #kite-lp-yokohama-wide .lp-cta-desc {
    font-size: 16px !important;
    line-height: 1.9 !important;
    letter-spacing: 0.04em !important;
}

body.page-250145 .eternal-title,
body.page-250146 .eternal-title,
body.page-250147 .eternal-title,
body.page-250148 .eternal-title,
body.page-250239 .eternal-title {
    font-size: clamp(28px, 3.4vw, 36px) !important;
    line-height: 1.45 !important;
    letter-spacing: 0.1em !important;
}

@media (max-width: 767px) {
    body.page-250145 #kite-lp-hodogaya-direct,
    body.page-250146 #kite-lp-nishi-caremanager,
    body.page-250147 #kite-lp-naka-caremanager,
    body.page-250148 #kite-lp-minami,
    body.page-250239 #kite-lp-yokohama-wide {
          font-size: 14.5px !important;
          line-height: 1.85 !important;
          letter-spacing: 0.025em !important;
    }
  
    body.page-250145 #kite-lp-hodogaya-direct .lp-hero .lp-title,
    body.page-250145 #kite-lp-hodogaya-direct .lp-hero .lp-title-sub,
    body.page-250146 #kite-lp-nishi-caremanager .lp-hero .lp-title,
    body.page-250147 #kite-lp-naka-caremanager .lp-hero .lp-title,
    body.page-250148 #kite-lp-minami .lp-hero .lp-title,
    body.page-250239 #kite-lp-yokohama-wide .lp-hero .lp-title {
          font-size: 28px !important;
          line-height: 1.42 !important;
          letter-spacing: 0.025em !important;
    }
  
    body.page-250145 #kite-lp-hodogaya-direct .lp-section .lp-title,
    body.page-250146 #kite-lp-nishi-caremanager .lp-section .lp-title,
    body.page-250147 #kite-lp-naka-caremanager .lp-section .lp-title,
    body.page-250148 #kite-lp-minami .lp-section .lp-title,
    body.page-250239 #kite-lp-yokohama-wide .lp-section .lp-title {
          font-size: 23px !important;
          line-height: 1.45 !important;
    }
  
    body.page-250145 #kite-lp-hodogaya-direct .lp-lead,
    body.page-250145 #kite-lp-hodogaya-direct .lp-section p,
    body.page-250145 #kite-lp-hodogaya-direct .lp-glass-card p,
    body.page-250146 #kite-lp-nishi-caremanager .lp-lead,
    body.page-250146 #kite-lp-nishi-caremanager .lp-section p,
    body.page-250146 #kite-lp-nishi-caremanager .lp-glass-card p,
    body.page-250147 #kite-lp-naka-caremanager .lp-lead,
    body.page-250147 #kite-lp-naka-caremanager .lp-section p,
    body.page-250147 #kite-lp-naka-caremanager .lp-glass-card p,
    body.page-250148 #kite-lp-minami .lp-lead,
    body.page-250148 #kite-lp-minami .lp-section p,
    body.page-250148 #kite-lp-minami .lp-glass-card p,
    body.page-250239 #kite-lp-yokohama-wide .lp-lead,
    body.page-250239 #kite-lp-yokohama-wide .lp-section p,
    body.page-250239 #kite-lp-yokohama-wide .lp-glass-card p {
          font-size: 14.5px !important;
          line-height: 1.85 !important;
          letter-spacing: 0.025em !important;
    }
  
    body.page-250145 #kite-lp-hodogaya-direct .lp-cta-title,
    body.page-250146 #kite-lp-nishi-caremanager .lp-cta-title,
    body.page-250147 #kite-lp-naka-caremanager .lp-cta-title,
    body.page-250148 #kite-lp-minami .lp-cta-title,
    body.page-250239 #kite-lp-yokohama-wide .lp-cta-title {
          font-size: 24px !important;
          line-height: 1.5 !important;
    }
}


/* --------------------------------------------------
   [SYSTEM] AO-CHAN SPECIAL ARCHITECTURE
   Version: Optimized Final (Buttons Relocated Below Menu)
   -------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@700;900&display=swap');

/* ==================================================
   0. Variables & Base (変数・基本設定)
   ================================================== */
:root {
    --text-color: #222;
    --text-colorBase: #222;
    --text-colorSub: #fff;
    --color-sub: #666;
    --cursor-color: #00c9a7;
    
    /* Font Stacks */
    --font-gothic: "Yu Gothic Medium", "Yu Gothic", "YuGothic", "游ゴシック体", "游ゴシック", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    --font-mincho: "Yu Mincho", "YuMincho", "リュウミン R-KL", "Hiragino Mincho ProN", "Times New Roman", serif;
    --font-marugothic: "Hiragino Maru Gothic Pro W4", "Hiragino Maru Gothic", "Hiragino Maru Gothic Pro", "HG Maru Gothic M-PRO", "HG Maru Gothic", sans-serif;
}

html, body {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    background-color: #fff !important; 
    background-image: none !important;
}

body {
    color: var(--text-color);
    font-family: var(--font-gothic) !important;
    font-weight: 500;
    letter-spacing: 0.05em;
    font-size: 13px;
    line-height: 1.875;
    -webkit-font-smoothing: antialiased;
    word-break: normal;
    overflow-wrap: anywhere;
}

/* Global Reset & Typography Unification */
* { box-sizing: border-box; }
h1, h2, p, figure, ul, li { margin: 0; padding: 0; list-style: none; }
h3, p, div, span, a, h1, h3, h4, h5, h6, li, dt, dd, th, td, label, section, main { 
    font-family: var(--font-gothic) !important; 
    font-weight: 500 !important; 
    font-style: normal !important;
}
a { color: var(--text-color); text-decoration: none; cursor: pointer; }
a:hover { text-decoration: none; color: var(--text-color); }
img { max-width: 100%; height: auto; }
img[src*="e2SIvR4Civ_m.png"] { box-shadow: none !important; border: none !important; }
table, iframe { max-width: 100%; }

/* Mincho Font Targets */
h2.title, section.article, section.article *, div.kite-title, div.kite-body, h2.kite-en-main-heading, span.kite-en-title, body.slide h2.title, 
.footer-copy, h2.kite-language-label {
    font-family: var(--font-mincho) !important; font-style: normal !important;
}

/* Wrapper Box Special Font Weight Override */
.wrapper-box, .wrapper-box * {
    font-family: var(--font-gothic) !important;
    font-weight: 500 !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}
.wrapper-box h1, .wrapper-box h2, .wrapper-box h3, .wrapper-box b, .wrapper-box strong {
    font-weight: 500 !important; font-style: normal !important;
}

/* ==================================================
   1. Layout Components & Common
   ================================================== */
.siteWidth, .siteWidth-s { padding-left: 20px; padding-right: 20px; }
.bgColor-gray { background: #F7F7F7; padding-top: 60px; padding-bottom: 30px; }
.bgColor-white { background-color: #fff; }

.pageTitle { text-align: center; background: #F7F7F7; padding: 40px 20px; font-size: 24px !important; font-weight: bold !important; line-height: 1.4 !important; }

/* Buttons & SNS */
.btn { max-width: 200px; width: 100%; margin-left: auto; margin-right: auto; text-align: center; background: #fff; border-radius: 30px; margin-top: 30px; }
.btn:hover, .btn a:hover { background: #000; color: #fff; }
.snsBtn { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; }
.snsBtn li { margin-right: 20px; }
.snsBtn li:hover { opacity: .7; }
.snsBtn li:last-child { margin-right: 0; }

.contactBtn a { margin-top: 30px; margin-bottom: 40px; background: #000; color: #fff; text-decoration: none; font-size: 20px; font-weight: bold; display: block; text-align: center; padding: 33px 50px 33px 30px; position: relative; cursor: pointer; letter-spacing: 0.05em; line-height: 1.2; }
.contactBtn a::after { content: ''; position: absolute; top: 40%; right: 5%; margin: auto; transform: rotate(225deg); border-bottom: 3px solid #fff; border-left: 3px solid #fff; width: 20px; height: 20px; transition: all 0.2s ease-in-out; }
.contactBtn a:hover { background: #666; }

.pageTop { margin-top: 80px; text-align: center; }
.pageTop a { color: #222; font-weight: bold; font-size: 12px; position: relative; text-decoration: none; }
.pageTop a::before { content: ''; position: absolute; top: -30px; left: 0; right: 0; margin: auto; transform: rotate(135deg); border-bottom: 3px solid #000; border-left: 3px solid #000; width: 20px; height: 20px; transition: all 0.2s ease-in-out; }
.pageTop a:hover::before { top: -35px; }

/* ==================================================
   2. Header & Logo (Merged Patch V8 Logic / Text Bold Fix)
   ================================================== */
header, .header, .site-header { z-index: auto !important; position: relative; }
.header { display: flex; align-items: center; padding: 27px 90px 19px 20px; min-height: 70px; }
.siteTitle { line-height: 1.2; font-size: 20px; font-weight: bold; display: block; position: relative; width: auto; max-width: 100%; }
.siteTitle a { display: inline-block; min-height: 50px; }
.siteTitle a:hover { opacity: .7; }
.siteTitle img { max-height: 200px; width: auto; vertical-align: bottom; box-shadow: none !important; border: none !important; }

/* Non-Home Header Specifics */
body:not(.home):not(.top):not(#top) header .logo-catch,
body:not(.home):not(.top):not(#top) .header .logo-catch,
body:not(.home):not(.top):not(#top) header .logo-main,
body:not(.home):not(.top):not(#top) .site-header .logo-main,
body:not(.home):not(.top):not(#top) .header .logo-main,
body:not(.home):not(.top):not(#top) .header .siteTitle,
body:not(.home):not(.top):not(#top) .company-name-large,
body:not(.home):not(.top):not(#top) .header .kite-area-text,
body:not(.home):not(.top):not(#top) .header .sava {
    font-family: var(--font-gothic) !important;
    font-weight: normal !important;
    text-align: left !important;
    justify-content: flex-start !important;
    display: block !important;
    width: auto !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    line-height: 1.2 !important;
    color: #333 !important;
}

body:not(.home):not(.top):not(#top) .header .logo-catch { font-size: 15px !important; margin-bottom: 0 !important; padding-bottom: 0 !important; color: #555 !important; line-height: 1.0 !important; }
body:not(.home):not(.top):not(#top) .header .logo-main { font-size: 15px !important; line-height: 1.4 !important; white-space: normal !important; margin-top: 0 !important; padding-top: 0 !important; margin-bottom: 0 !important; }
body:not(.home):not(.top):not(#top) .company-name-large { font-size: 20px !important; font-weight: bold !important; margin-top: 5px !important; }
body:not(.home):not(.top):not(#top) .header .siteTitle { font-size: 20px !important; font-weight: bold !important; line-height: 1.0 !important; color: #000 !important; align-items: flex-start !important; }
body:not(.home):not(.top):not(#top) .header .sava { font-size: 14px !important; color: #000 !important; margin-top: 0 !important; margin-bottom: 0 !important; }
body:not(.home):not(.top):not(#top) .header img { margin-left: 0 !important; margin-right: auto !important; display: block !important; }
body:not(.home):not(.top):not(#top) .header br { display: none !important; }

/* Kite Text Replacement for Header */
body:not(.home):not(.top):not(#top) .header .kite-area-text {
    font-size: 0 !important; margin-top: 20px !important; padding-top: 0 !important;
}

/* Header Text Bold */
body:not(.home):not(.top):not(#top) .header .kite-area-text::before {
    content: "横浜市保土ヶ谷区・西区・中区・南区・京浜（東京・川崎・横浜）エリアのケアマネージメント（介護相談の専門事業所）";
    font-family: var(--font-gothic) !important; 
    font-size: 11px !important; 
    font-weight: bold !important;
    color: #333 !important; 
    display: block !important; 
    line-height: 1.5 !important; 
    margin-bottom: 5px !important;
}

body:not(.home):not(.top):not(#top) .header .kite-area-text::after {
    content: "横浜市保土ケ谷区天王町の「きてケアプランセンター」";
    font-family: var(--font-gothic) !important; 
    font-size: 11px !important; 
    font-weight: bold !important;
    color: #333 !important; 
    display: block !important; 
    line-height: 1.5 !important;
}

/* ==================================================
   3. Menu & Navigation
   ================================================== */
.menu { background: #000; }
.menu .inner { overflow-x: auto; }
.menu ul { display: flex; justify-content: center; width: max-content; margin-left: auto; margin-right: auto; }
.menu a { color: #fff; font-size: 15px; line-height: 1.2; border-right: 1px solid #fff; padding: 15px 20px; display: block; }
.menu a:hover { background: #666666; }
.menu ul li:last-child a { border-right: none; }

/* Hamburger Button */
.hamburger {
    background: #000 !important; width: 70px; height: 70px; 
    position: fixed !important; top: 0; right: 0; cursor: pointer; 
    z-index: 2147483646 !important; 
    transition: .7s; opacity: 1 !important; visibility: visible !important;
}
.hamburger::before, .hamburger::after, .hamburger.active::before, .hamburger.active::after { content: none !important; display: none !important; }

.hamburger .inner { 
    position: absolute; 
    width: 50px !important; 
    height: 44px !important; 
    left: 50% !important;
    transform: translateX(-50%) !important; 
    top: 40px !important; 
    margin: 0 !important; padding: 0 !important; line-height: 1 !important;
}

.hamburger span { 
    display: block !important; position: absolute !important; background: #fff !important; 
    opacity: 1 !important; visibility: visible !important; transition: all 0.5s ease !important;
    left: 0 !important; 
    width: 100% !important; 
    height: 3px !important; 
    border-radius: 2px !important; z-index: 10 !important;
}
.hamburger span:nth-of-type(1) { top: 0 !important; }
.hamburger span:nth-of-type(2) { top: 10px !important; } 
.hamburger span:nth-of-type(3) { top: 20px !important; } 

.hamburger p { 
    display: block !important; 
    position: absolute !important;
    bottom: 4px !important; 
    left: 0 !important;
    width: 100% !important; 
    text-align: center !important;
    font-size: 12px !important; 
    font-weight: 900 !important; 
    color: #fff !important;
    line-height: 1 !important;
    letter-spacing: 0.05em !important;
    margin: 0 !important; padding: 0 !important;
    font-family: Arial, sans-serif !important;
    white-space: nowrap !important; 
}
.hamburger strong { display: none !important; }
.hamburger.active p { display: none !important; }

/* Hamburger Animation (PC) */
.hamburger.active .inner { 
    top: 50% !important; 
    transform: translate(-50%, -50%) !important; 
    height: 40px !important; 
}
.hamburger.active span:nth-of-type(1) { opacity: 0 !important; }
.hamburger.active span:nth-of-type(2) { top: 18px !important; transform: rotate(45deg) !important; opacity: 1 !important; }
.hamburger.active span:nth-of-type(3) { top: 18px !important; transform: rotate(-45deg) !important; opacity: 1 !important; }


/* Mobile Hamburger */
@media screen and (max-width: 767px) {
    .hamburger .inner {
        width: 36px !important; 
        top: 24px !important; 
        height: 20px !important;
    }
    .hamburger span:nth-of-type(1) { top: 0 !important; }
    .hamburger span:nth-of-type(2) { top: 8px !important; }
    .hamburger span:nth-of-type(3) { top: 16px !important; }

    .hamburger p {
        font-size: 10px !important; 
        bottom: -14px !important; 
        font-weight: bold !important; 
    }

    .hamburger.active span:nth-of-type(2) { top: 8px !important; }
    .hamburger.active span:nth-of-type(3) { top: 8px !important; }
}


/* Navigation Drawer */
.navi { 
    background: #000; color: #fff; width: 100% !important; max-width: 100% !important; height: 0; 
    padding: 100px 20px 40px 20px; position: fixed !important; 
    z-index: 2147483645 !important; 
    top: 0; transform: translateY(-100%); transition: .7s; letter-spacing: 0.05em; line-height: 1.2; 
}
.navi.active { height: 100vh; transform: translateY(0); }
.navi a { color: #fff; }
.navi a:hover { opacity: .7; }
.navi .inner { height: 100%; overflow-y: auto; }
.navi .snsBtn { margin-bottom: 32px; }
.navi .qrCode { margin-bottom: 20px; }
.menuNavi .parent { font-size: 20px; font-weight: bold; line-height: 1.9; letter-spacing: 0; }
.menuNavi .parent > li { margin-bottom: 30px; line-height: 2; }
.menuNavi .child { font-size: 16px; font-weight: normal; }
.menuNavi a { display: block; }
.right { font-size: 15px; }
.headNavi { margin-bottom: 32px; }
.headNavi li { border: 1px solid #fff; text-align: center; margin-bottom: 16px; font-weight: bold; }
.headNavi li a { display: block; padding: 15px; }

.popUp { z-index: 1; }
.globalNav { display: none; }

/* ==================================================
   4. Slider & Homepage Visuals
   ================================================== */
.slide header { padding: 0; display: block; }
.slider, .slider-overlay, .slider li, .slider li img { width: 100vw; height: 70vw; max-width: 100% !important; box-sizing: border-box !important; }
.slide li img { object-fit: cover; }
.slider-overlay { background: rgba(0, 0, 0, .4); position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; }
.slider li img { transform: scale(1.3); }
.active3 img { transition-duration: 6s; }
.active2 img { transition-duration: 4s; }
.active1 img { transition-duration: 2s; }
.slider .active-slide img, .slider .active-slide-first img { transform: scale(1); }

.slide .siteTitle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-height: 80%; overflow: hidden; text-align: center; z-index: 3; font-size: 30px; }
.slide .siteTitle a { color: #fff; }
.slide .siteTitle img { top: 45%; }
.kite-area-text { display: none !important; }

/* Home Logo Specifics */
body.home .logo-main, body.top .logo-main, body.index .logo-main, #top .logo-main {
    font-family: var(--font-gothic) !important; font-weight: 600!important; line-height: 1.0 !important; letter-spacing: -0.02em !important;
}
body.home .kite-area-text, body.top .kite-area-text, #top .kite-area-text {
    font-family: var(--font-gothic) !important; font-weight: 800 !important; text-shadow: 0 2px 10px rgba(0,0,0,0.9) !important;
}
div.logo-catch { font-weight: 400 !important; }
div.sava, div.kite-area-text, h2.kite-en-main-heading, span.kite-en-title, body.slide, body.slide *, span.kite-sp { font-weight: 700 !important; }

/* ==================================================
   5. Kite Special Area
   ================================================== */
#kite-final-wrapper {
    position: relative !important; width: 100vw !important; max-width: none !important;
    left: 50% !important; right: auto !important; margin-left: -50vw !important; margin-right: -50vw !important;
    margin-top: 40px !important; margin-bottom: 40px !important; padding: 80px 40px !important;
    display: flex !important; flex-direction: column !important; align-items: center !important;
    z-index: 1 !important; background: #fff !important; border-radius: 0 !important; box-shadow: none !important;
    overflow: hidden; color: #333; box-sizing: border-box;
}

#kite-final-wrapper::before {
    content: "" !important; position: absolute !important; top: -25% !important; left: -25% !important; width: 150% !important; height: 150% !important; z-index: -1 !important;
    background: radial-gradient(circle at 80% 20%, rgba(0, 201, 167, 0.35), transparent 70%), 
                radial-gradient(circle at 15% 15%, rgba(135, 206, 235, 0.1), transparent 40%), 
                radial-gradient(circle at 50% 90%, rgba(209, 245, 0, 0.22), transparent 60%), 
                radial-gradient(circle at 40% 40%, rgba(255, 255, 255, 0.95), transparent 80%), 
                linear-gradient(135deg, #ffffff 0%, rgba(0, 201, 167, 0.08) 100%) !important;
    background-size: 200% 200% !important; animation: kiteWaveMotion 20s ease-in-out infinite alternate !important; will-change: background-position, transform;
}

#kite-final-wrapper .kite-block-jp, #kite-final-wrapper .kite-block-en, #kite-final-wrapper .kite-block {
    width: 100% !important; max-width: 800px !important; margin: 0 auto 40px !important; text-align: center !important; position: relative !important; z-index: 10 !important;
}
#kite-final-wrapper * { color: #111 !important; font-weight: 700 !important; }

.kite-block-jp .kite-body { font-family: var(--font-gothic) !important; font-size: 18px !important; font-weight: 500 !important; line-height: 2.0 !important; color: #222 !important; }
.kite-block-en .kite-body { font-family: var(--font-mincho) !important; font-size: 20px !important; font-weight: 400 !important; line-height: 1.8 !important; color: #555 !important; font-style: italic; }
#kite-final-wrapper div.kite-title { font-family: var(--font-mincho) !important; font-weight: 700 !important; font-size: 28px !important; }
#kite-final-wrapper .kite-en-section, #kite-final-wrapper .kite-en-section * { font-family: var(--font-mincho) !important; font-weight: 500 !important; font-style: normal !important; }
#kite-final-wrapper .kite-en-main-heading { font-weight: 700 !important; font-size: 32px !important; letter-spacing: 0.02em !important; }
.kite-en-main-heading, .kite-title, .kite-area-text { position: relative; z-index: 10 !important; }

.kite-section { margin-bottom: 60px !important; text-align: center; }
.kite-title { display: block; margin-bottom: 20px !important; }
.kite-body { width: 100%; display: block; white-space: normal; }
.kite-en-title { font-family: var(--font-mincho) !important; font-size: 24px !important; margin-bottom: 10px !important; display: block; font-weight: 700 !important; }
.kite-text-left { display: inline-block; text-align: justify; }

div.kite-anim-cont, div.kite-anim-cont *, span.kite-sp { font-family: var(--font-gothic) !important; font-weight: 700 !important; font-style: normal !important; -webkit-font-smoothing: antialiased !important; }
div.kite-anim-cont { letter-spacing: 0.05em !important; line-height: 1.2 !important; }

/* ==================================================
   6. Main Content Modules
   ================================================== */
.lead, article.lead { 
    padding-top: 15px; padding-bottom: 15px; background: #F7F7F7; letter-spacing: 0.1em; line-height: 2; margin-bottom: 35px; text-align: left; font-style: normal !important;
    color: #0972C0 !important;
}
.lead br { display: none; }
.mainImg { padding: 20px; background: #F7F7F7; margin-bottom: 60px; }
.mainImg .lead { padding: 0; margin-bottom: 0; }
.mainImg figure { margin-bottom: 20px; text-align: center; }

.article { margin-top: 60px; }
.article:last-child { margin-bottom: 60px; }
.article .title { font-family: var(--font-mincho) !important; font-size: 28px !important; letter-spacing: 0; line-height: 1.2; margin-bottom: 20px; }
.article figcaption { display: none; }
.article .txt { margin-bottom: 20px; }
.article .inner { z-index: 2; }
.article figure img, .imgContainer figure img { box-shadow: 6px 6px 18px rgba(0, 0, 0, 0.7) !important; }

.first-img { margin-right: -20px; margin-left: -20px; margin-bottom: 20px; display: block; text-align: center; }
.first-img img { width: 100%; }
.imgContainer figure { margin-bottom: 20px; text-align: center; }
.imgContainer figure img { width: 100%; }

/* Editor Area */
.editorArea a { text-decoration: underline; }
.editorArea a:hover { text-decoration: none; }
.editorArea img { display: block; margin: 0 auto; max-width: 100%; }
.editorArea hr { height: 1px; color: var(--text-colorBase); }
.editorArea ol li { list-style-type: decimal; }
.editorArea ul li { list-style-type: disc; margin-left: 2em; }
.editorArea ol li, .editorArea ul li { margin-bottom: 5px; }
.editorArea em { font-style: italic; }
.editorArea table { width: 100%; max-width: 100%; }
.editorArea table th, .editorArea table td { padding: 15px 25px; border: 1px solid #ccc; }
.editorArea table th { text-align: center; background: #F7F7F7; font-weight: normal; width: 102px; }
.editorArea table td { background: var(--text-colorSub); }
.editorArea strong, .editorArea b { font-weight: bolder; }

/* News & Blog */
.extraTtl { font-size: 28px; font-family: var(--font-mincho); text-align: center; position: relative; margin-bottom: 30px; letter-spacing: 0; line-height: 1.2; }
.extraTtl::before { position: absolute; top: -90%; text-align: center; left: 50%; transform: translateX(-50%); font-size: 15px; border-bottom: 1px solid #222; font-family: "Times New Roman"; }
.infoTtl::before { content: "NEWS"; }
.blogTtl::before { content: "BLOG"; }
#news { margin-bottom: 30px; }
.rss dt, .news time { font-family: "Times New Roman"; font-size: 15px; letter-spacing: 0; line-height: 1.1; font-weight: normal; }
.rss dd, .news span { margin-bottom: 20px; font-size: 13px; letter-spacing: 0.1em; line-height: 1.9; }
.news span { display: block; }
.rss dd a, .news li a { text-decoration: underline; }
.rss dd a:hover, .news p a:hover { text-decoration: none; }
.news li.is-hidden { display: none; }
.newsBtn { padding: 10px 15px; font-size: 16px; font-weight: bold; cursor: pointer; }
.blogBtn { position: relative; padding: 10px 15px; font-size: 16px; font-weight: bold; display: block; text-decoration: none; border-radius: 30px; }
.blogBtn::after { content: ''; background-image: url(https://assets.toriaez.jp/thp2/pc/images/240/pic-btn_001.png); background-repeat: no-repeat; position: absolute; width: 20px; height: 20px; top: 35%; right: 15%; cursor: pointer; }

/* Concern Section */
#concern { font-family: var(--font-gothic) !important; background:#faf9f6; color:#333; line-height:1.6; padding:32px 16px; scroll-snap-type:none !important; }
#concern h1, #concern h2, #concern h3, #concern p, #concern ul, #concern ol, #concern li { margin:0; padding:0; }
#concern, #concern * { height:auto !important; min-height:0 !important; scroll-snap-align:none !important; scroll-snap-stop:normal !important; }
#concern .concern-wrap { max-width:1000px; margin:0 auto; }
#concern .concern-title { font-size:1.65rem; font-weight:700; line-height:1.25; text-align:left; color:#2f2f2f; margin:0 0 18px; }
#concern .concern-title::after { content:""; display:block; width:56px; height:3px; background:#8da399; margin:10px 0 0; }
#concern .concern-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:14px; margin:0 0 18px; }
#concern .concern-item { background:#fff; border-radius:8px; border-top:3px solid #8da399; box-shadow:0 1px 8px rgba(0,0,0,0.05); }
#concern .concern-text { padding:18px; }
#concern .concern-heading { font-size:1.08rem; font-weight:700; line-height:1.35; color:#444; margin:0 0 8px; padding:0 0 6px; border-bottom:1px solid #eee; }
#concern .concern-desc { font-size:0.95rem; line-height:1.6; color:#666; }
#concern .concern-message { background:#fff; border-left:4px solid #8da399; border-radius:8px; padding:16px 18px; margin:0 0 18px; }
#concern .concern-message p { font-size:1rem; line-height:1.65; margin:0 0 8px; }
#concern .concern-message p:last-child { margin-bottom:0; }
#concern .concern-cta-section { max-width:820px; margin:0 auto; text-align:left; }
#concern .concern-cta-title { font-size:1.25rem; font-weight:700; line-height:1.3; color:#2f2f2f; margin:0 0 10px; }
#concern .concern-cta-desc p { font-size:0.98rem; line-height:1.7; color:#555; margin:0 0 10px; }
#concern .concern-cta-desc p:last-child { margin-bottom:0; }
#concern .concern-cta-row { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:12px; }
#concern .concern-btn { display:inline-block; background:#8da399; color:#fff; text-decoration:none; font-weight:700; font-size:1rem; line-height:1.2; padding:12px 18px; border-radius:999px; box-shadow:0 3px 6px rgba(0,0,0,0.1); }
#concern .concern-btn:hover { opacity:0.92; }
#concern .concern-tel { font-weight:700; font-size:1.05rem; color:#2f2f2f; white-space:nowrap; }
#concern .scroll, #concern .scroll-indicator, #concern .scroll-circle { position:static !important; transform:none !important; }

/* Access Map Section */
.access-section { padding: 80px 0; background-color: #fff; overflow: hidden; }
.access-ttl { margin-bottom: 50px !important; }
.access-ttl::before { content: "アクセス"; }
.access-container { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 40px; }
.access-map-box { flex: 1 1 500px; width: 100%; position: relative; border: 1px solid #eee; box-shadow: 0 10px 30px rgba(0,0,0,0.08); padding: 10px; background: #fff; border-radius: 4px; }
.map-responsive-styled { position: relative; padding-bottom: 60%; height: 0; overflow: hidden; background: #f7f7f7; }
.map-responsive-styled iframe { position: absolute; top: 0; left: 0; width: 100% !important; height: 100% !important; border: 0; filter: saturate(60%) contrast(95%); transition: filter 0.3s; }
.access-map-box:hover iframe { filter: saturate(90%) contrast(100%); }
.access-info-box { flex: 1 1 300px; width: 100%; padding: 20px; }
.access-org-name { font-family: var(--font-gothic) !important; font-size: 24px; font-weight: 900 !important; margin-bottom: 20px; line-height: 1.3; }
.access-address { font-size: 16px; line-height: 1.8; margin-bottom: 30px; font-weight: 500; }
.access-details { display: grid; grid-template-columns: auto 1fr; gap: 10px 20px; margin-bottom: 30px; border-top: 1px solid #eee; padding-top: 20px; }
.access-details dt { font-weight: bold; color: #000; min-width: 80px; }
.access-details dd { margin: 0; color: #333; }
.access-btn-wrap { text-align: left; }
.map-app-btn { display: inline-block; padding: 12px 30px; background: #333; color: #fff !important; text-decoration: none; font-weight: bold; border-radius: 30px; transition: all 0.3s; font-size: 14px; }
.map-app-btn:hover { background: #000; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0,0,0,0.2); }

/* Other Components (Forms, Info, Map) */
.pnkz { margin-top: 15px; font-size: 11px; line-height: 1.2; padding-right: 20px; margin-bottom: 40px; overflow-x: auto; overflow-y: hidden; }
.pnkz ul { display: flex; justify-content: flex-end; width: max-content; margin-left: auto; }
.pnkz li { border-right: 1px solid #CCCCCC; margin-left: 5px; }
.pnkz li:last-child { border-right: none; }
.pnkz a { text-decoration: underline; padding: 5px; }
.pnkz a:hover { text-decoration: none; }
.map iframe { margin: 0 auto; display: block; height: 300px; }
.info { margin-top: 60px; margin-bottom: 80px; }
.info dl { display: flex; margin-bottom: 1px; border-top: 1px solid #CCCCCC; }
.info dl:last-child { border-bottom: 1px solid #CCCCCC; }
.info dt { padding: 20px; width: 180px; min-width: 70px; font-weight: bold; display: block; }
.info dd { padding: 20px; width: 100%; margin-bottom: 0; }

.form { margin-top: 60px; }
.form table { width: 100%; }
.form th, .form td { display: block; width: 100%; }
.form th { padding: 15px 10px 5px 10px; }
.form td { padding: 5px 10px 15px 10px; }
.form tr { border-top: 1px solid #ccc; padding: 5px; }
.input-text input, textarea, .input-age input { padding: 8px 15px; border-radius: 4px; border: 1px solid #d6d6d6; }
.input-text input, textarea { width: 100%; }
.input-age input { margin-right: 10px; vertical-align: bottom; width: 150px; }
textarea { height: 300px; }
.validation_span { color: red; }
.btnCont { text-align: center; margin-top: 20px; margin-bottom: 60px; }
.form-btn { display: inline-block; max-width: 240px; width: 100%; padding-top: 18px; padding-bottom: 18px; border-radius: 5px; color: var(--color-sub); text-align: center; margin-right: 10px; border: none; font-weight: bold; font-size: 18px; }
.btn-submit:hover, .btn-reset:hover { opacity: 0.8; }
.btn-submit { background: #000; color: #fff; margin-bottom: 15px; }
.btn-reset { background: #c6c6c6; }
.thanks { padding-left: 20px; padding-right: 20px; }
.required { margin-top: 15px; }
.freeArea { margin-top: 60px; margin-bottom: 40px; letter-spacing: 0; line-height: 1.9; padding-right: 20px; padding-left: 20px; }

/* ==================================================
   7. Footer
   ================================================== */
footer, .footer, #footer, .site-footer, .foot-area, div.foot-area, .footer-container {
    background-color: transparent !important; background: transparent !important; color: #333 !important;
    padding: 60px 20px !important; margin-top: 0 !important; border: none !important;
}
.footer .snsBtn li { margin-right: 25px; }
.footer .snsBtn li:last-child { margin-right: 0; }
.footer .snsBtn a { width: 50px; height: 50px; border-radius: 100%; border: 1px solid #666; display: flex; align-items: center; justify-content: center; }
.footer .qrCode { margin-top: 24px; }
.qrCode { text-align: center !important; width: 100% !important; margin: 0 auto !important; }
.qrCode img { display: block !important; margin-left: auto !important; margin-right: auto !important; }
address.copyright, .copyright, .footer .copyright, .footer-motto,
.footer .kite-area-text, .site-footer .kite-area-text, footer .kite-area-text, 
body.home .footer .kite-area-text, body.home footer .kite-area-text,
#top .footer .kite-area-text, #top footer .kite-area-text, #top .site-footer .kite-area-text {
    display: none !important; font-size: 0 !important; width: 0 !important; height: 0 !important; opacity: 0 !important; visibility: hidden !important;
}
html body .faq-wrapper, html body .faq-wrapper * { font-family: var(--font-marugothic) !important; font-weight: 700 !important; }

.footer-inner { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 1.0em !important; width: 100% !important; max-width: 100% !important; }
.footer-copy {
    font-family: var(--font-mincho) !important; font-size: 11px !important; letter-spacing: 0.05em !important; opacity: 0.8 !important; color: #333 !important;
    text-align: center !important; display: flex !important; flex-wrap: wrap !important; justify-content: center !important; gap: 0.5em 1em !important; line-height: 1.8 !important;
}
.footer-sep { margin: 0 5px; opacity: 0.5; }

/* ==================================================
   8. Animation & Effects
   ================================================== */
@keyframes stalker-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes line-move { 0% { clip-path: inset(0 0 100% 0); } 50% { clip-path: inset(0 0 0 0); } 100% { clip-path: inset(100% 0 0 0); } }
@keyframes kiteWaveMotion { 0% { background-position: 0% 0%; transform: translate(0, 0) scale(1); } 100% { background-position: 100% 100%; transform: translate(-3%, -3%) scale(1.08); } }
@keyframes gentleBreath { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes gradientFlow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes borderGlow {
    0% { box-shadow: 0 0 10px rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.4); }
    50% { box-shadow: 0 0 30px rgba(255, 255, 255, 1.0); border-color: rgba(255, 255, 255, 1.0); }
    100% { box-shadow: 0 0 10px rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.4); }
}

.js-fade { opacity: 0; transform: translateY(30px); transition: opacity 1.5s ease-out, transform 1.5s ease-out; will-change: opacity, transform; }
.js-fade.active { opacity: 1; transform: translateY(0); }
.glass-card { transform: translateY(40px); transition: opacity 1.2s ease, transform 1.2s ease; }
.glass-card.is-visible { opacity: 1 !important; transform: translateY(0); }
.accent-bar { transform: scaleY(0); transform-origin: bottom center; transition: transform 0.8s ease 0.3s; }
.glass-card.is-visible .accent-bar { transform: scaleY(1); }
.animate-border-bottom { position: relative; }
.animate-border-bottom::after { content: ''; position: absolute; bottom: -4px; left: 0; right: 0; margin: 0 auto; width: 0%; height: 4px; background: rgba(2, 119, 189, 0.4); transition: width 1.5s ease-out 0.2s; }
.glass-card.is-visible .animate-border-bottom::after { width: 100%; }
.breathing-item { display: block; transform-origin: left center; animation: gentleBreath 5s ease-in-out infinite; }
.breathing-item:hover { animation-play-state: paused; }
.section, .block, .item { min-height: auto; height: auto; }

/* ==================================================
   9. Media Queries (Mobile First / Desktop Overrides)
   ================================================== */

/* Mobile Only (max-width: 767px) */
@media screen and (max-width: 767px) {
    body { font-size: 20px; }
    .slide .siteTitle { font-size: 40px !important; line-height: 1.3 !important; width: 95% !important; left: 50% !important; transform: translate(-50%, -50%) !important; }
    .slide .siteTitle::first-line { font-size: 28px !important; font-weight: normal !important; line-height: 2.0 !important; }
    .slide .siteTitle .sava { font-size: 20px !important; display: block !important; margin-top: 5px !important; }
    .siteTitle img { max-height: 60px; width: auto; }
    
    .menu a { font-size: 20px; padding: 16px 24px !important; font-weight: bold; }
    .globalNav .parent a { font-size: 20px !important; font-weight: bold; }
    .globalNav .parent > li > a { font-size: 20px !important; padding: 20px 28px !important; }
    
    .article .txt { font-size: 16px !important; line-height: 2.1; }
    .contactBtn a { font-size: 18px !important; letter-spacing: 0.08em; font-weight: bold; }
    
    body.home .logo-catch, body.top .logo-catch, #top .logo-catch { font-size: 6vw !important; font-weight: 200 !important; margin-bottom: 2px !important; line-height: 1.0 !important; }
    body.home .logo-main, body.top .logo-main, #top .logo-main { font-size: 10.5vw !important; margin: 10px 0 !important; width: 100% !important; line-height: 0.9 !important; }
    body.home .logo-sub, body.top .logo-sub, #top .logo-sub { font-size: 5vw !important; margin-top: -10px !important; }
    body.home .kite-area-text, body.top .kite-area-text, #top .kite-area-text { display: block !important; font-weight: bold !important; color: #ffffff !important; letter-spacing: 0.05em !important; font-size: 11px !important; margin-top: 10px !important; width: 95% !important; margin-left: auto !important; margin-right: auto !important; line-height: 1.5 !important; white-space: normal !important; text-shadow: 0 1px 3px rgba(0,0,0,0.8) !important; }
    body.home .sava, body.top .sava, #top .sava { font-size: 6vw !important; margin-top: 5px !important; }

    /* Non-Home Header Mobile */
    body:not(.home):not(.top):not(#top) header .logo-main, body:not(.home):not(.top):not(#top) .header .siteTitle { font-size: 11px !important; line-height: 1.3 !important; }
    body:not(.home):not(.top):not(#top) .company-name-large { font-size: 16px !important; }
    body:not(.home):not(.top):not(#top) .header .logo-catch { font-size: 11px !important; margin-bottom: -3px !important; }
    body:not(.home):not(.top):not(#top) .header .siteTitle { font-size: 18px !important; }
    body:not(.home):not(.top):not(#top) .header .sava { font-size: 10px !important; }
    body:not(.home):not(.top):not(#top) .header .kite-area-text { font-size: 11px !important; line-height: 1.4 !important; margin-top: 2px !important; }

    /* Disable Cursor Effects Mobile */
    .custom-cursor-follower, .cursor-core, .cursor-trail, #js-stalker-trail, #js-stalker-main, #js-stalker-core { display: none !important; visibility: hidden !important; }
    body, a, button, .btn { cursor: auto !important; }

    div.logo-catch, div.logo-main, div.sava, div.kite-area-text { line-height: 1.0 !important; margin: 0 !important; padding: 0 !important; }
    div.logo-main, div.sava { font-weight: 700 !important; width: 100% !important; box-sizing: border-box !important; white-space: normal !important; }
    div.logo-main { font-size: 10.5vw !important; }
    ul.slider, .slider, .slider li, .slider li img { height: 150vw !important; }
    
    #kite-final-wrapper { width: 100% !important; padding: 0 15px !important; }
    .kite-section { margin-bottom: 40px !important; }
    .kite-title { font-family: var(--font-mincho) !important; font-size: 24px !important; font-weight: bold !important; line-height: 1.3 !important; margin-bottom: 15px !important; }
    .kite-body { font-family: var(--font-mincho) !important; font-size: 14px !important; line-height: 1.8 !important; text-align: justify; }
    .kite-en-title { font-family: var(--font-mincho) !important; font-size: 20px !important; margin-bottom: 5px !important; }
    .sp-break { display: block; content: ""; margin-top: 0; }
    .care-message-card p, .gentle-message-content p { font-size: 16px !important; }
    .care-msg-title, h2.msg-title { font-size: 24px !important; }
    .kite-block-jp .kite-body { font-size: 15px; }
    .kite-block-en .kite-body { font-size: 15px; }
    
    #concern{ padding:26px 14px; }
    #concern .concern-title{ font-size:1.45rem; margin:0 0 14px; }
    #concern .concern-grid{ gap:12px; margin:0 0 14px; }
    #concern .concern-text{ padding:16px; }
    #concern .concern-message{ padding:14px; margin:0 0 14px; }
    #concern .concern-cta-row{ gap:10px; }
    #concern .concern-btn{ width:100%; text-align:center; }
    
    .footer-copy { flex-direction: column !important; gap: 0.5em !important; }
    .footer-sep { display: none !important; }
    .access-section { padding: 60px 0; }
    .access-container { flex-direction: column; gap: 30px; }
    .map-responsive-styled { padding-bottom: 75%; }
    .access-org-name { font-size: 20px; }
    .access-btn-wrap { text-align: center; }
}

/* PC / Tablet (min-width: 768px) */
@media screen and (min-width:768px) {
    body { font-size: 20px !important; }
    .siteWidth, .siteWidth-s, .editorArea, .pnkz, .article .inner, 
    #kite-final-wrapper .kite-block-jp, #kite-final-wrapper .kite-block-en, #kite-final-wrapper .kite-block {
        max-width: 1200px !important; margin-right: auto; margin-left: auto;
    }
    .siteWidth-s { padding-left: 0; padding-right: 0; }
    .bgColor-gray { padding-top: 90px; padding-bottom: 60px; }
    .header { min-height: 120px; padding: 49px 170px 35px 50px; }
    .header .inner, .navi .inner { max-width: 1200px !important; margin-left: auto !important; margin-right: auto !important; }
    .siteTitle { font-size: 30px; }
    .siteTitle img { max-height: 100px; }
    
    .menu .inner { margin-right: auto; margin-left: auto; padding: 0 30px; }
    .menu a { font-size: 16px !important; padding: 18px 32px !important; font-weight: bold; }
    .menu a, .globalNav .parent a { font-size: 18px !important; }
    
    .hamburger { width: 120px; height: 120px; }
    .hamburger .inner { width: 40px; height: 20px; }
    .hamburger span:nth-of-type(2) { top: 9px; }
    
    .globalNav { display: block; background: #fff; padding: 30px 16px 0 16px; }
    .globalNav .parent { display: flex; justify-content: center; align-items: center; list-style: none; margin: 0 auto; padding: 0; flex-wrap: wrap; }
    .globalNav .parent > li { border-right: 1px solid #ccc; margin-bottom: 20px; }
    .globalNav .parent li:last-child { border-right: none; }
    .globalNav .parent a { text-decoration: none; font-size: 24px !important; font-weight: bold; padding: 20px 32px !important; }
    .globalNav .parent a:hover { text-decoration: underline; }
    .globalNav .child { margin: 0; padding: 0; list-style: none; background: #000; position: absolute; z-index: 4; }
    .globalNav .child li { border-bottom: 1px solid #fff; }
    .globalNav .child li:last-child { border-bottom: none; }
    .globalNav .child a { display: block; color: #fff; text-align: center; }
    .globalNav .child a:hover { text-decoration: none; background: #666; }
    
    html body .pageTitle { font-size: 32px !important; padding-top: 60px; padding-bottom: 60px; }
    .slider { width: 100vw; height: 100vh; }
    .slider li, .slider li img { width: 100%; height: 100%; }
    
    #news { padding: 90px 0px 54px; line-height: 1.9; margin-bottom: 40px; }
    .rss dt, .news time { display: inline-block; width: 15%; min-width: 100px; padding-top: 6px; vertical-align: top; }
    .rss dd, .news span { display: inline-block; width: calc((99% - 15%) - 26px); font-size: 18px; }
    .news span { display: inline-flex; }
    .news li a:hover { text-decoration: none; }
    .article .txt, .lead, .news span, .rss dd { font-size: 20px !important; line-height: 2.0 !important; }
    
    .mainImg { margin-bottom: 0; padding: 0; }
    .mainImg .lead { width: 60%; margin-left: auto; margin-right: auto; }
    .noImg.lead { width: 100%; }
    .lead { text-align: center; }
    .lead br { display: block; }
    .lead .inner { padding-top: 30px; padding-bottom: 30px; }
    .mainImg .inner { display: flex; align-items: center; width: 100%; max-width: 1200px; padding: 40px 20px; margin-left: auto; margin-right: auto; }
    .mainImg figure { max-width: 500px; text-align: right; margin-right: 40px; margin-bottom: 0; }
    
    .navi { padding: 130px 30px 50px; }
    .navi .inner { display: flex; justify-content: space-between; height: 100%; max-width: 1200px; margin-left: auto; margin-right: auto; }
    .menuNavi { width: 100%; max-width: 500px; overflow-y: auto; height: 100%; margin-right: 30px; scrollbar-width: thin; scrollbar-color: #fff #fff; }
    .menuNavi::-webkit-scrollbar { width: 14px; }
    .menuNavi::-webkit-scrollbar-thumb { background: #fff; border-radius: 9px; }
    .menuNavi .parent { font-size: 28px; font-weight: bold; padding-right: 15px; }
    .menuNavi .parent > li { margin-bottom: 30px; }
    .menuNavi .child { font-size: 16px; font-weight: normal; }
    .right { width: 100%; max-width: 300px; overflow-y: auto; height: 100%; padding-right: 15px; font-size: 20px; }
    .right::-webkit-scrollbar { display: none; }
    .headNavi { margin-bottom: 60px; }
    .headNavi li { margin-bottom: 16px; }
    
    .article { margin-top: 130px; }
    .article:first-of-type { margin-top: 90px; }
    .article:last-child { margin-bottom: 130px; }
    .head { display: flex; margin-bottom: 40px; align-items: flex-start; }
    .reverse .head { flex-direction: row-reverse; }
    .article .inner { width: 100% !important; margin-top: 40px; background: #fff; padding-right: 40px !important; padding-left: 40px !important; margin-right: auto !important; margin-left: auto !important; }
    .normal .inner { padding: 40px 40px 40px 0; margin-right: -40px; }
    .reverse .inner { padding: 40px 0 40px 40px; margin-left: -40px; }
    .article .title { font-size: 32px !important; margin-bottom: 40px; line-height: 1.4; letter-spacing: 0; }
    .article .txt { font-size: 18px !important; line-height: 2.2; letter-spacing: 0.1em; }
    .article .head figure { width: 640px; }
    .first-img { margin-left: 0; margin-right: 0; }
    .normal .head figure { text-align: left; margin-left: -40px; }
    .reverse .head figure { text-align: right; margin-right: -40px; }
    
    .layout-box, .layout-box-text { max-width: 100% !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
    .editorArea { width: 100% !important; margin-left: auto !important; margin-right: auto !important; padding-left: 20px !important; padding-right: 20px !important; white-space: normal !important; }
    .editorArea table th { width: 200px; }
    .imgContainer { display: flex; justify-content: center; }
    .imgContainer figure { max-width: 380px; width: 100%; margin-right: 30px; }
    .imgContainer figure:last-child { margin-right: 0; }
    
    .freeArea { margin-top: 90px; margin-bottom: 72px; padding: 0; font-size: 15px; }
    .pageTop { display: none; position: fixed; bottom: 30px; right: 20px; margin-top: 0; }
    .contactBtn { margin-top: 90px; margin-bottom: 70px; }
    .contactBtn a { font-size: 32px !important; }
    .pnkz { font-size: 13px; width: 100%; margin-right: auto; margin-left: auto; }
    .map iframe { height: 500px; }
    .formPage .footer .snsBtn { margin-top: 90px; }
    .footer { margin-top: 72px; }
    .form th, .form td { padding: 30px 20px; font-size: 18px !important; }
    .form th { width: 30%; }
    .form td { width: 70%; }
    .form tr { display: flex; align-items: center; }
    .input-age input { width: 40%; }
    .thanks { max-width: 780px; margin-right: auto; margin-left: auto; padding-left: 0; padding-right: 0; }
    input, textarea { font-size: 18px !important; }
    
    #kite-final-wrapper { width: 95% !important; padding: 80px 60px !important; }
    .kite-section { margin-bottom: 60px !important; text-align: center; }
    .kite-title { font-size: 32px !important; font-weight: bold !important; line-height: 1.4 !important; }
    .kite-body { font-size: 16px !important; line-height: 1.8 !important; letter-spacing: 0.05em !important; font-weight: 500; }
    .care-message-card p, .gentle-message-content p { font-size: 18px !important; line-height: 2.1 !important; }
    .care-msg-title, h2.msg-title { font-size: 32px !important; }
    
    /* Cursor Stalker PC */
    body, a, button, .btn, .fixed-phone-btn { cursor: none !important; }
    .custom-cursor-follower { 
        position: fixed !important; top: 0; left: 0; pointer-events: none !important; 
        z-index: 2147483647 !important; /* Highest layer */
        display: flex !important; justify-content: center; align-items: center; box-sizing: border-box; opacity: 0; transition: opacity 0.3s ease; 
    }
    .custom-cursor-follower:not(.cursor-trail):not(.cursor-core) { width: 90px; height: 90px; background: transparent !important; border: 1px solid rgba(0, 201, 167, 0.6) !important; border-radius: 50% !important; transition: opacity 0.3s ease, transform 0.15s ease-out; }
    .custom-cursor-follower:not(.cursor-trail):not(.cursor-core)::before { content: ''; position: absolute; top: -3px; left: -3px; right: -3px; bottom: -3px; border-radius: 50%; border: 2px solid transparent; border-top-color: var(--cursor-color); border-right-color: var(--cursor-color); animation: stalker-spin 2s linear infinite; }
    .custom-cursor-follower:not(.cursor-trail):not(.cursor-core)::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translate(-50%, -50%); width: 14px; height: 40px; background-color: transparent !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 40'%3E%3Cline x1='7' y1='0' x2='7' y2='40' stroke='%2300c9a7' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: no-repeat; animation: line-move 1.8s ease-in-out infinite; }
    .cursor-core { 
        width: 6px; height: 6px; background-color: var(--cursor-color) !important; border-radius: 50% !important; 
        z-index: 2147483647 !important; transition: opacity 0.3s ease, transform 0.05s ease-out; position: fixed !important; pointer-events: none !important;
    }
    .cursor-trail { 
        width: 90px; height: 90px; background-color: rgba(0, 201, 167, 0.1) !important; border: 1px solid rgba(0, 201, 167, 0.2) !important; border-radius: 50% !important; 
        z-index: 2147483647 !important; transition: opacity 0.7s ease, transform 0.25s ease-out; position: fixed !important; pointer-events: none !important;
    }
    .custom-cursor-follower span { font-size: 11px; font-weight: bold; color: var(--cursor-color); font-family: sans-serif; letter-spacing: 0.1em; }
    .custom-cursor-follower, .cursor-core, .cursor-trail { will-change: transform; }
    #js-stalker-root, #js-stalker-trail, #js-stalker-main, #js-stalker-core { z-index: 2147483647 !important; pointer-events: none !important; position: fixed !important; }

    /* Logo & Slide Typography (PC) */
    .slide .siteTitle { font-size: 80px !important; }
    .slide .siteTitle::first-line { font-size: 45px !important; line-height: 1.8 !important; }
    .slide .siteTitle .sava { font-size: 35px !important; }
    body.home .kite-area-text, body.top .kite-area-text, body.index .kite-area-text, #top .kite-area-text {
        display: block !important; font-weight: bold !important; color: #ffffff !important; text-shadow: 0 2px 5px rgba(0,0,0,0.8) !important; letter-spacing: 0.05em !important; font-size: 18px !important; margin-top: -100px !important; line-height: 1.6 !important; font-weight: 500 !important;
    }
    body.home .siteTitle, body.top .siteTitle, body.index .siteTitle, #top .siteTitle { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 0 !important; row-gap: 0 !important; line-height: 1.0 !important; }
    body.home .logo-catch, body.home .logo-main, body.top .logo-catch, body.top .logo-main, #top .logo-catch, #top .logo-main,
    body.home .sava, body.top .sava, #top .sava, body.index .logo-main, body.index .sava { margin: 0 !important; padding: 0 !important; display: block !important; }
    body.home .logo-main, body.top .logo-main, body.index .logo-main, #top .logo-main { font-size: 95px !important; margin-bottom: 40px !important; margin-top: 0 !important; padding-top: 0 !important; line-height: 0.8 !important; }
    body.home .logo-catch, body.top .logo-catch, #top .logo-catch { font-size: 50px !important; letter-spacing: 0.15em !important; margin-bottom: -30px !important; position: relative; z-index: 2; line-height: 1.0 !important; font-weight: 300 !important; }
    body.home .logo-main + .sava, body.top .logo-main + .sava, #top .logo-main + .sava { margin-top: -100px !important; }
    body.home .sava, body.top .sava, #top .sava { position: relative !important; top: -100px !important; font-size: 40px !important; margin-top: 15px !important; }
}

/* Tablet (768px - 1100px) */
@media screen and (min-width: 768px) and (max-width: 1100px) {
    .slide .siteTitle { max-height: 95% !important; width: 95% !important; font-size: 45px !important; }
    .slide .siteTitle::first-line { font-size: 24px !important; line-height: 1.5 !important; }
    .slide .siteTitle .sava { font-size: 20px !important; }
    body.home .kite-area-text, body.top .kite-area-text, body.index .kite-area-text, #top .kite-area-text { margin-top: 15px !important; font-size: 14px !important; line-height: 1.4 !important; text-shadow: 0 1px 3px rgba(0,0,0,0.8) !important; }
}

/* ==================================================
   10. KITE DESCRIPTION & PATCHES (Consolidated)
   ================================================== */
#kite-desc {
  margin: 0; padding: 0; min-height: 100vh;
  background: linear-gradient(270deg, #0972C0, #034b82, #1e40af, #075985);
  background-size: 800% 800%;
  animation: kiteDescMovingGradient 15s ease infinite;
  font-family: var(--font-gothic) !important;
  color: #1a2a3a;
  line-height: 1.7;
  position: relative; width: 100%; overflow: hidden;
}

#kite-desc.bold-context, #kite-desc.bold-context * {
  font-weight: 700 !important;
  -webkit-font-smoothing: antialiased;
}

@keyframes kiteDescMovingGradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes kiteDescFadeIn { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kiteDescGlowEffectWhite {
  0% { box-shadow: 0 10px 40px rgba(255, 255, 255, 0.3); border-color: rgba(255, 255, 255, 0.7); }
  50% { box-shadow: 0 0 60px rgba(255, 255, 255, 0.9), 0 0 20px rgba(255, 255, 255, 0.5); border-color: rgba(255, 255, 255, 1); }
  100% { box-shadow: 0 10px 40px rgba(255, 255, 255, 0.3); border-color: rgba(255, 255, 255, 0.7); }
}

#kite-desc .container {
  max-width: 1000px; margin: 0 auto; padding: clamp(50px, 10vw, 120px) 20px;
  display: flex; flex-direction: column; gap: 80px; box-sizing: border-box;
}

#kite-desc .card {
  width: 100%; max-width: 800px;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(25px); -webkit-backdrop-filter: blur(25px);
  border-radius: clamp(30px, 5vw, 50px);
  border: 3px solid rgba(255, 255, 255, 0.9);
  padding: clamp(40px, 6vw, 70px) clamp(20px, 5vw, 50px);
  animation: kiteDescFadeIn 1.5s ease-out forwards, kiteDescGlowEffectWhite 4s infinite ease-in-out;
  position: relative; overflow: hidden; box-sizing: border-box;
  display: flex !important; flex-direction: column !important; align-items: center !important;
}

#kite-desc .card::before {
  content: ""; position: absolute; top: -100px; right: -100px; width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, transparent 70%);
  border-radius: 50%; pointer-events: none;
}

#kite-desc .brand-text { color: #0972C0 !important; }
#kite-desc .title-h1 {
  font-size: clamp(24px, 6vw, 42px); color: #0972C0; font-weight: 700; text-align: center;
  margin: 0 0 15px !important; letter-spacing: 0.02em; position: relative; padding-bottom: 20px; line-height: 1.3;
}
#kite-desc .title-h1::after {
  content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 100px; height: 5px; background: linear-gradient(90deg, #0972C0, #034b82); border-radius: 10px;
}
#kite-desc .subtitle {
  display: block; font-size: clamp(14px, 3.5vw, 20px); color: #54627A; margin-top: 10px !important;
  font-weight: 700; line-height: 1.5;
}
#kite-desc .kite-desc-lead {
  text-align: center !important; font-size: clamp(15px, 4vw, 22px) !important; color: #222 !important;
  font-weight: 700 !important; margin: 30px 0 0 !important; position: static !important; display: block !important; line-height: 1.8 !important;
}
#kite-desc .kite-desc-operator {
  text-align: center !important; font-size: clamp(11px, 3.5vw, 14px) !important; color: #64748b !important;
  font-weight: 700 !important; display: block !important; margin: 25px 0 0 !important; line-height: 1.4 !important; position: static !important; width: 100%;
}

@media screen and (max-width: 767px) {
  #kite-desc .container { padding: 40px 15px; }
  #kite-desc .card { padding: 40px 20px; border-width: 2px; border-radius: 30px; }
  #kite-desc .title-h1 { margin-bottom: 12px !important; padding-bottom: 15px; }
  #kite-desc .kite-desc-lead { margin-top: 25px !important; font-size: 16px !important; }
  #kite-desc .kite-desc-operator { margin-top: 20px !important; font-size: 10px !important; }
}

#kite-desc * { box-sizing: border-box; }
#kite-desc br { display: inline !important; }
#kite-desc header, #kite-desc section, #kite-desc footer {
  position: static !important; transform: none !important; float: none !important; background: transparent !important; padding: 0 !important; width: auto !important;
}

@keyframes kiteWave { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
@keyframes kiteGlow { 0%,100%{box-shadow:0 10px 40px rgba(255,255,255,0.3);border-color:rgba(255,255,255,0.7)} 50%{box-shadow:0 0 60px rgba(255,255,255,0.9);border-color:#fff} }
@keyframes kiteFade { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes kiteDescBgFlow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }

#kite-desc-root { all:initial!important; display:block!important; width:100%!important; font-family:"Yu Gothic Medium","Yu Gothic",sans-serif!important; margin:0!important; padding:0!important; }

/* KITE BG ANIMATION FIX (PATCH) */
@keyframes kiteBgAnimFinal {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
html body #kite-desc-root .kite-bg {
    background-image: linear-gradient(120deg, #0b5c88 0%, #114a9f 35%, #4b3fae 55%, #2b4fa8 75%, #0b5c88 100%) !important;
    background-size: 400% 400% !important;
    animation: kiteBgAnimFinal 15s ease infinite !important;
    will-change: background-position;
    width:100%!important; min-height:100vh!important;
    padding:60px 20px!important;
    display:flex!important; flex-direction:column!important; align-items:center!important; gap:60px!important;
}

.kite-card { width:100%!important; max-width:1100px!important; background:rgba(255,255,255,0.96)!important; border-radius:30px!important; border:3px solid rgba(255,255,255,0.9)!important; padding:60px 40px!important; animation:kiteFade 1.5s ease-out forwards,kiteGlow 4s infinite ease-in-out!important; position:relative!important; display:block!important; }

#kite-desc-root .kite-title {
    font-family: "Yu Gothic Medium", "Yu Gothic", "游ゴシック Medium", "游ゴシック体", "メイリオ", Meiryo, sans-serif !important;
    font-weight: 700 !important; font-size: 40px !important; color: #0972C0 !important;
    margin: 0 0 15px 0 !important; line-height: 1.3 !important; display: block !important;
    font-style: normal !important; text-align: center !important;
}

.kite-header{text-align:center!important;margin-bottom:60px!important}
.kite-sub{font-size:20px!important;color:#54627A!important;font-weight:700!important;display:block!important;margin-bottom:30px!important;text-align:center!important}

.kite-lead{
    font-size: 24px !important; color: #334155 !important; font-weight: 700 !important;
    line-height: 1.8 !important; margin: 25px 0 !important; text-align: center !important; display: block !important;
}

.kite-op, .kite-footer, .kite-bar{display:none!important}
.kite-sec{margin-bottom:60px!important;text-align:center!important}
.kite-sec-ttl{font-size:30px!important;color:#0972C0!important;font-weight:700!important;margin-bottom:25px!important;display:flex!important;justify-content:center!important;align-items:center!important;gap:12px!important}
.kite-philo{font-size:22px!important;color:#0972C0!important;line-height:1.6!important;font-weight:700!important;white-space:nowrap!important;text-align:center!important}
.kite-item{margin-bottom:30px!important;text-align:center!important}
.kite-head{font-size:24px!important;color:#064e8a!important;font-weight:700!important;margin-bottom:10px!important;display:block!important}
.kite-desc{font-size:17px!important;color:#4b5563!important;line-height:1.8!important}
.kite-msg{margin-top:50px!important;padding-top:40px!important;border-top:2px dashed #cbd5e1!important;font-size:20px!important;color:#475569!important;line-height:1.9!important;text-align:center!important}
.kite-hl{color:#0972C0!important;font-weight:bold!important;background:linear-gradient(transparent 70%,rgba(9,114,192,0.15) 70%)!important}
.kite-grid{display:grid!important;grid-template-columns:1fr!important;gap:50px!important}
.kite-col{text-align:center!important}
.kite-col-ttl{font-size:28px!important;color:#064e8a!important;font-weight:700!important;margin-bottom:20px!important;text-align:center!important}
.kite-col-sub{font-size:22px!important;color:#0972C0!important;font-weight:700!important;margin-bottom:15px!important;display:block!important;text-align:center!important}
.kite-col-txt{font-size:17px!important;color:#475569!important;line-height:1.9!important;text-align:justify!important;display:inline-block!important}
.kite-badge{display:inline-block!important;background:linear-gradient(135deg,#0972C0,#034b82)!important;color:#fff!important;padding:10px 30px!important;border-radius:30px!important;font-size:16px!important;letter-spacing:2px!important;font-weight:700!important;margin-bottom:35px!important}

@media(max-width:767px){
    #kite-desc-root .kite-title { font-size: 26px !important; }
    .kite-sec-ttl{ font-size: 24px !important; }
    .kite-philo{ font-size: 18px !important; white-space: normal !important; }
    .kite-lead{ font-size: 18px !important; }
    .kite-col-ttl{ font-size: 24px !important; }
    .kite-col-sub{ font-size: 18px !important; }
    .kite-head{ font-size: 18px !important; } 
    .kite-card{ padding: 50px 25px !important; }
    
    html body #kite-desc-root .kite-col-txt {
        text-align: center !important; text-align-last: center !important;
        word-spacing: normal !important; overflow-wrap: break-word !important;
    }
    
    /* Mobile Full-Bleed for kite-bg */
    html body #kite-desc-root {
        margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
        width: 100vw !important; max-width: 100vw !important; overflow-x: visible !important;
    }
    html body #kite-desc-root > .kite-bg { width: 100vw !important; max-width: 100vw !important; box-sizing: border-box !important; }
    html body #kite-desc-root .kite-bg .kite-card { width: calc(100% + 24px) !important; margin-left: -12px !important; margin-right: -12px !important; }
}

/* Floating Buttons - Universal Red Circle (Fixed Position) */
.header-floating-btns {
    display: flex !important;
    flex-direction: column !important; /* Stack vertically: Top(Tel) -> Bottom(Mail) */
    gap: 15px !important;
    position: fixed !important;
    bottom: auto !important; /* Unset bottom */
    top: 90px !important;    /* Mobile Default: Below hamburger (70px + margin) */
    right: 5px !important;   /* Mobile Default: Center align with hamburger */
    z-index: 2147483647 !important;
    pointer-events: auto !important;
}

/* PC Override */
@media screen and (min-width: 768px) {
    .header-floating-btns {
        top: 140px !important;  /* PC: Below hamburger (120px + margin) */
        right: 30px !important; /* PC: Center align with hamburger */
    }
}

.h-float-btn {
    width: 60px !important;
    height: 60px !important;
    border-radius: 50% !important;
    background: #FF0000 !important; /* Force Red Background */
    border: none !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    opacity: 1 !important;
    color: #fff !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

/* Hover Effect */
.h-float-btn:hover {
    transform: scale(1.1) !important;
    box-shadow: 0 6px 16px rgba(0,0,0,0.4) !important;
    opacity: 1 !important;
}

/* Hide Text Labels */
.h-float-btn span, 
.h-float-btn-text,
.h-float-btn::after {
    display: none !important;
}

/* Icon Styling */
.h-float-btn svg, 
.h-float-btn i {
    width: 30px !important;
    height: 30px !important;
    font-size: 30px !important;
    fill: #fff !important;
    color: #fff !important;
    margin: 0 !important;
    display: block !important;
}

/* Force Remove Green Button Styles if present in HTML */
.btn-tel, .btn-mail {
    background-color: #FF0000 !important;
    border: none !important;
    color: #fff !important;
}

/* Mobile Menu CTA - Disable Logic */
.mobile-menu-cta-area { display: none !important; }

/* Greeting */
.greeting-sign, .greeting-sign * {
    font-family: "Shippori Mincho", "Noto Serif JP", "Noto Serif CJK JP", "Noto Serif", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
    font-weight: 400 !important;
    -webkit-font-smoothing: initial !important;
    -moz-osx-font-smoothing: initial !important;
    color: #333 !important;
    letter-spacing: 0.05em !important;
    font-style: normal !important;
}
@media (min-width: 768px) {
    html body .greeting-wrapper .greeting-card .greeting-sign,
    html body .greeting-wrapper .greeting-card .greeting-sign * {
        font-weight: 300 !important;
        letter-spacing: 0.06em !important;
    }
}
@media screen and (max-width: 767px) {
    div.greeting-sign, div.greeting-sign p, div.greeting-sign span {
        font-weight: 400 !important;
        font-family: "Noto Serif JP", "Noto Serif", serif !important;
    }
}
html body .greeting-card p, html body .greeting-card p span { font-weight: 300 !important; }
@media (max-width: 767px) {
    html body .greeting-card { padding: 0 16px !important; text-align: left !important; }
    html body .greeting-card::before { display: none !important; }
    html body .greeting-card p { letter-spacing: 0.04em !important; line-height: 1.9 !important; font-size: 16px !important; }
    html body .greeting-intro, html body .greeting-intro span { text-align: left !important; font-weight: 300 !important; }
    html body .greeting-sign { text-align: left !important; }
}

/* Fix Mobile Map Box (Force Height) */
@media (max-width: 767px){
    html body div.access-map-box iframe{ display:block !important; width:100% !important; height:260px !important; border:0 !important; }
    html body div.access-map-box{ height:260px !important; min-height:0 !important; padding:0 !important; overflow:hidden !important; box-sizing:border-box !important; }
}

/* Footer Copyright Size */
footer .copyright, footer .footer-copyright, footer small, footer .footer-bottom, footer .footer-bottom small { font-size: 18px !important; line-height: 1.8 !important; letter-spacing: 0.06em !important; }
@media (max-width: 767px){ footer .copyright, footer .footer-copyright, footer small, footer .footer-bottom, footer .footer-bottom small { font-size: 16px !important; } }

/* Mobile Visual Stage Fix (CRITICAL FIX FOR NESTED SELECTOR ERROR) */
@media screen and (max-width: 767px) {
    /* Stage Full Width */
    html body .main-visual-wrapper .kite-visual-stage {
        width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
        max-width: none !important; box-sizing: border-box !important;
        width: 100vw !important; max-width: 380px !important; height: auto !important; aspect-ratio: 1 / 1 !important;
        border-radius: 40px !important; margin: 0 auto !important;
        overflow: hidden !important;
        clip-path: inset(0 round 40px) !important;
        -webkit-clip-path: inset(0 round 40px) !important;
        -webkit-mask-image: -webkit-radial-gradient(white, black) !important;
        mask-image: radial-gradient(white, black) !important;
        transform: translateZ(0) !important; isolation: isolate !important; z-index: 2 !important;
    }
    
    /* Background Layer Fix */
    html body .main-visual-wrapper .kite-bg-layer {
        position: absolute !important; inset: 0 !important; border-radius: 40px !important; z-index: 0 !important;
        width: 100% !important; height: 100% !important; background: none transparent !important;
    }
    html body .main-visual-wrapper .kite-bg-layer::before {
        content: none !important; display: none !important; background-image: none !important;
    }
    
    /* Content Box */
    html body .main-visual-wrapper .kite-anim-cont {
        width: 82% !important; height: 82% !important; padding: 20px !important; aspect-ratio: 1 / 1 !important; border-radius: 20px !important;
        max-width: 90% !important; margin-left: auto !important; margin-right: auto !important;
    }
    
    /* Gap Fix */
    html body .main-visual-wrapper { margin-top: 0 !important; padding-top: 0 !important; }
    html body .main-visual-wrapper .kite-visual-stage { margin-top: 20px !important; }
    
    .kite-xl { font-size: 20px !important; } .kite-l { font-size: 16px !important; } .kite-s { font-size: 12px !important; }
}

/* Concern Section Full Bleed */
@media (max-width: 767px){
    html body #concern-section { width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; box-sizing: border-box !important; overflow-x: visible !important; }
}

/* Final Color Override (Deep Blue) - Universal Fix */
html body #kite-desc-root .kite-sec-ttl,
html body #kite-desc-root .kite-sec-ttl *,
html body #kite-desc-root .kite-title-anim,
html body #kite-desc-root .kite-head {
    color: #064E8A !important;
}

/* Final Color Override (Bright Blue) - Headings */
html body #kite-desc-root .kite-head,
html body #kite-desc-root span.kite-head {
    color: #0972C0 !important;
}
/* --------------------------------------------------
   [PATCH] Kite Gradient Animation Fix (Force Enable)
   -------------------------------------------------- */

/* 1. アニメーションの動きを定義 */
@keyframes kiteBgAnimFinal {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* 2. 背景色とアニメーションを適用 */
html body #kite-desc-root .kite-bg {
    /* グラデーションの色定義（これがないと動きません） */
    background-image: linear-gradient(120deg, #0b5c88 0%, #114a9f 35%, #4b3fae 55%, #2b4fa8 75%, #0b5c88 100%) !important;
    
    /* 背景サイズを画面より大きくして動く余地を作る */
    background-size: 400% 400% !important;
    
    /* アニメーション実行（15秒かけてループ） */
    animation: kiteBgAnimFinal 15s ease infinite !important;
    
    /* 描画最適化 */
    will-change: background-position;
    
    /* レイアウト崩れ防止 */
    width: 100% !important;
    min-height: 100vh !important;
    padding: 60px 20px !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 60px !important;
}

/* スマホでの横揺れ防止 */
@media screen and (max-width: 767px) {
    html body #kite-desc-root .kite-bg {
        width: 100vw !important;
        max-width: 100vw !important;
        padding: 40px 15px !important;
        overflow-x: hidden !important;
    }
}
/* div.contactBtn を完全に無効化 */
html body div.contactBtn{
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;

  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
/* ===============================
   NEWS文字サイズ：最終強制指定
   =============================== */

/* ul.news 本体 */
html body ul.news{
  font-size: 18px !important;
}

/* すべての子要素を強制継承 */
html body ul.news li,
html body ul.news li *,
html body ul.news li a,
html body ul.news span,
html body ul.news time,
html body ul.news p{
  font-size: inherit !important;
  line-height: 2.0 !important;
}
/* =========================================
   [PATCH] NEWS 日付と本文のズレを解消（flexで2カラム固定）
   対象：.news / .rss の一覧行
   ========================================= */

/* 1行を2カラムに固定 */
html body :is(ul.news, .news, .rss) li{
  display: flex !important;
  align-items: flex-start !important;
  gap: 40px !important;
}

/* 日付カラム（time / dt） */
html body :is(ul.news, .news) time,
html body .rss dt{
  flex: 0 0 160px !important;     /* ←日付の幅。必要なら 140〜180 で調整 */
  width: 160px !important;
  display: block !important;
  padding-top: 0 !important;      /* 既存の padding-top を無効化 */
  margin: 0 !important;
  line-height: 1.9 !important;
}

/* 本文カラム（span / dd） */
html body :is(ul.news, .news) span,
html body .rss dd{
  flex: 1 1 auto !important;
  width: auto !important;
  display: block !important;      /* inline-flex を無効化して揃えを安定化 */
  margin: 0 !important;
  line-height: 1.9 !important;
}

/* スマホは日付幅を少し縮める */
@media (max-width: 768px){
  html body :is(ul.news, .news, .rss) li{ gap: 18px !important; }
  html body :is(ul.news, .news) time,
  html body .rss dt{
    flex-basis: 110px !important;
    width: 110px !important;
  }
}
/* =========================================
   [FINAL PATCH] copyright 表記を大きくする
   対象：
   copyright © Kite art factory LLC
   powered by sava all rights reserved.
   ========================================= */

html body .footer-copy,
html body .footer-copy *,
html body footer .footer-copy,
html body footer .footer-copy *{
  font-size: 15px !important;     /* ← 基本サイズ（まずは18px） */
  line-height: 2.0 !important;
  letter-spacing: 0.08em !important;
}

/* スマホではさらに読みやすく */
@media (max-width: 768px){
  html body .footer-copy,
  html body .footer-copy *{
    font-size: 13px !important;
    line-height: 2.1 !important;
  }
}
/* ==================================================
   [FIX] Mobile header broken / duplicated text
   Scope: header only (max-width 768px)
   ================================================== */
@media (max-width: 768px){

  /* ヘッダーの高さが暴れないように（必要最小限） */
  html body :is(header, .header, .site-header){
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  /* ★本丸：スマホのヘッダー内 “説明テキスト” を全部止める */
  html body :is(header, .header, .site-header) .kite-area-text{
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* 疑似要素で追記されている文言も止める */
  html body :is(header, .header, .site-header) .kite-area-text::before,
  html body :is(header, .header, .site-header) .kite-area-text::after{
    content: none !important;
    display: none !important;
  }

  /* 過去に “sava::after” で説明文を足していた場合の残骸を止める */
  html body :is(header, .header, .site-header) .sava::after{
    content: none !important;
    display: none !important;
  }

  /* br が増えて高さが膨らむ事故を抑える（ヘッダー内だけ） */
  html body :is(header, .header, .site-header) br{
    display: none !important;
  }
}
/* =========================================
   [FIX] Smaller width -> keep enough gap (mobile)
   ========================================= */
@media (max-width: 767px){

  /* margin:0 !important を上書きしつつ、savaの間を確保 */
  html body :is(body.home, body.top, body.index, #top) .slide .siteTitle :is(.logo-main, div.logo-main, span.logo-main) + :is(.sava, div.sava, span.sava){
    margin-top: 24px !important;   /* ←スマホの間（12〜24pxで調整） */
  }

  /* スマホで入っている「margin-top:5px」を確実に潰す */
  html body :is(body.home, body.top, body.index, #top) .slide .siteTitle :is(.sava, div.sava, span.sava){
    margin-top: 18px !important;
    top: 0 !important;
  }
}
/* ==================================================
   [PATCH] Mobile slide photo padding/gap removal
   Scope: .main-visual-wrapper only (max-width: 767px)
   ================================================== */
@media (max-width: 767px){

  /* 外側の不要な余白のみ抑制（当該ビジュアル領域に限定） */
  html body .main-visual-wrapper{
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  /* 余白の主因（max-width:380px + margin auto 等）を当該要素だけで打ち消す */
  html body .main-visual-wrapper .kite-visual-stage{
    max-width: none !important;
    margin: 0 !important;

    /* 100vw固定＋左右相殺で、親のsiteWidth系paddingの影響を遮断 */
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
}
/* ==================================================
   [PATCH] Mobile gray side-gaps removal (full-bleed lock)
   Scope: .main-visual-wrapper only (max-width: 767px)
   ================================================== */
@media (max-width: 767px){

  /* 親（siteWidth等）の左右余白を無効化して、当該ビジュアルだけ画面いっぱいへ */
  html body .main-visual-wrapper{
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* 直下ステージが max-width や margin:auto を持っても確実に打ち消す */
  html body .main-visual-wrapper > .kite-visual-stage{
    width: 100vw !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
/* ==================================================
   [PATCH] Mobile gray side-gaps FINAL OVERRIDE
   Cause: max-width:380px + margin:0 auto is re-applied
   Scope: .main-visual-wrapper .kite-visual-stage only
   ================================================== */
@media (max-width: 767px){
  html body .main-visual-wrapper .kite-visual-stage{
    max-width: none !important;   /* ← 380px固定の打ち消し */
    margin: 0 !important;         /* ← auto中央寄せの打ち消し */
  }
}
.logo-main {
  display: block; /* これを追加 */
  margin-bottom: 50px;
}
.logo-main {
  overflow: hidden; /* 高さを確保するおまじない */
  margin-bottom: 50px;
}
/* bodyを頭につけるだけで、優先度がかなり上がります */
body .logo-main {
  margin-bottom: 50px !important;
}

/* もしそれでもダメなら、さらに足す */
html body .logo-main {
  margin-bottom: 50px !important;
}
.logo-main {
  border-bottom: 30px solid transparent !important;
}
@media screen and (max-width: 767px) {
  /* bodyをつけて優先度を上げ、!importantでトドメを刺す */
  body .logo-main,
  body .logo-main * {
    font-weight: bold !important;
  }
}
font-weight: 900 !important; /* boldよりさらに太い数値 */
#kite-desc-root .kite-title-anim::after,
#kite-desc-root .kite-sec-ttl::after{
  display:block;
}

/* =========================================
   [FINAL FIX] トップ写真ブロック：文字のはみ出し防止
   ========================================= */

/* 1) kite-philo の nowrap がトップへ波及しないようにする
      （本来は .kite-philo を #kite-desc-root 配下に限定すべき） */
html body .kite-philo{
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

/* 2) トップ写真ブロックの英字行（2つ目の div）を確実に折り返す */
html body .main-visual-wrapper .kite-anim-cont > div:nth-of-type(2){
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

/* 3) 端末幅が狭いときの保険：余白とサイズを詰める */
@media (max-width: 768px){
  html body .main-visual-wrapper .kite-anim-cont{
    padding: 14px 12px !important;
  }
  html body .main-visual-wrapper .kite-anim-cont > div:nth-of-type(1){
    margin: 12px 0 !important;
  }
  html body .main-visual-wrapper .kite-anim-cont > div:nth-of-type(2){
    margin-bottom: 12px !important;
  }
  html body .main-visual-wrapper .main-visual-wrapper .kite-xl{
    font-size: 22px !important;
    line-height: 1.1 !important;
  }
}
/* ==========================================================================
   Global Navigation - "Celestial Kite Blue" (Perfect Balance Ver.)
   ダイヤモンドダストは最大量。ボタンの質感を「ほんの少しだけ」強く調整。
   ========================================================================== */

/* 1. ナビゲーションバー本体 */
nav.globalNav {
    /* ベースカラー */
    background: linear-gradient(180deg, 
        rgba(60, 66, 170, 0.95) 0%, 
        rgba(45, 50, 150, 0.98) 100%) !important;

    /* 質感 */
    backdrop-filter: blur(20px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(150%) !important;

    /* エッジ */
    border-top: 1px solid rgba(255, 255, 255, 0.4) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2) !important;

    /* 影 */
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3) !important;

    width: 100% !important;
    padding: 10px 0 !important;
    margin-top: 0 !important;
    position: relative !important;
    z-index: 9999 !important;
    
    /* ドロップダウン表示用 */
    overflow: visible !important; 
}

/* ダイヤモンドダスト（最大量・変更なし） */
nav.globalNav::before {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none;
    z-index: 0;
    
    /* 大量の光の粒 */
    background-image: 
        /* --- 大きめの輝き (Main) --- */
        radial-gradient(2px 2px at 10% 20%, rgba(255,255,255,1) 0%, transparent 100%),
        radial-gradient(2.5px 2.5px at 90% 10%, rgba(255,255,255,1) 0%, transparent 100%),
        radial-gradient(2px 2px at 50% 50%, rgba(255,255,255,0.9) 0%, transparent 100%),
        radial-gradient(2px 2px at 20% 80%, rgba(255,255,255,1) 0%, transparent 100%),
        
        /* --- 中くらいの光 (Medium) --- */
        radial-gradient(1.5px 1.5px at 5% 5%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 30% 30%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 70% 20%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 60% 60%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 80% 80%, rgba(255,255,255,0.8) 0%, transparent 100%),

        /* --- 細かい粒子 (Fine Dust - 大量配置) --- */
        radial-gradient(1px 1px at 15% 15%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 25% 35%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 35% 55%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 45% 75%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 55% 15%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 65% 35%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 75% 55%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 85% 75%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 95% 25%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 5% 90%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 50% 90%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 90% 50%, rgba(255,255,255,0.7) 0%, transparent 100%);
    
    background-size: 100% 100%;
    animation: diamondTwinkle 4s ease-in-out infinite alternate !important;
    border-radius: inherit;
}

@keyframes diamondTwinkle {
    0% { opacity: 0.5; transform: scale(0.95); }
    100% { opacity: 1.0; transform: scale(1.05); }
}

/* オーロラ（変更なし） */
nav.globalNav::after {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none;
    z-index: 0;

    background: linear-gradient(
        120deg,
        transparent 20%,
        rgba(0, 255, 255, 0.15) 40%, 
        rgba(255, 255, 255, 0.2) 50%, 
        rgba(200, 100, 255, 0.15) 60%, 
        transparent 80%
    );
    
    background-size: 300% 300%;
    animation: auroraInternalMove 8s ease-in-out infinite alternate !important;
    border-radius: inherit;
}

@keyframes auroraInternalMove {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}

/* 2. メインメニュー配置 */
nav.globalNav .parent {
    display: flex !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    margin: 0 auto !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent !important;
    max-width: 1280px !important;
    position: relative !important;
    z-index: 1 !important;
}

/* 3. 各メニュー項目 */
nav.globalNav .parent > li {
    position: relative !important;
    margin: 6px !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    flex: 0 1 auto !important;
    overflow: visible !important;
}
nav.globalNav .parent > li::after { display: none !important; }

/* 4. リンクデザイン：★ここを「ほんの少しだけ強く」調整 */
nav.globalNav .parent > li > a {
    display: block !important;
    font-size: 18px !important; 
    font-weight: 800 !important;
    font-family: "Yu Gothic", "YuGothic", sans-serif !important;
    color: #ffffff !important;
    text-decoration: none !important;
    letter-spacing: 0.03em !important;
    line-height: 1.2 !important;
    
    text-shadow: 0 1px 3px rgba(0,0,0,0.3) !important;
    
    padding: 14px 28px !important;
    border-radius: 50px !important;

    /* ▼変更点：透明度と枠線をわずかに強める */
    background: rgba(255, 255, 255, 0.12) !important; /* 0.08 -> 0.12 に少し濃く */
    border: 1px solid rgba(255, 255, 255, 0.3) !important; /* 0.15 -> 0.3 に少しはっきり */
    
    /* 上部にうっすらとハイライトを追加して立体感を出す */
    box-shadow: 
        inset 0 1px 0 rgba(255, 255, 255, 0.25), /* 控えめなツヤ */
        0 2px 5px rgba(0, 0, 0, 0.1) !important;
    
    transition: all 0.3s ease-out !important;
    white-space: nowrap !important;
}

/* ホバーエフェクト */
nav.globalNav .parent > li > a:hover {
    background: rgba(255, 255, 255, 0.25) !important;
    border-color: rgba(255, 255, 255, 0.7) !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    
    /* ホバー時の発光感 */
    box-shadow: 
        inset 0 0 15px rgba(255, 255, 255, 0.3),
        0 5px 15px rgba(255, 255, 255, 0.3) !important;
        
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.8) !important;
}

/* -----------------------------------------
   サブメニュー（ドロップダウン）
   ----------------------------------------- */
nav.globalNav .child {
    position: absolute !important;
    top: 100% !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    min-width: 260px !important;
    
    background: rgba(40, 45, 120, 0.98) !important;
    backdrop-filter: blur(10px) !important;
    
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.5) !important;
    border-radius: 12px !important;
    
    padding: 8px 0 !important;
    margin-top: 10px !important;
    
    display: none !important;
    opacity: 0;
    visibility: hidden;
    z-index: 10000 !important;
    list-style: none !important;
}

nav.globalNav .child::before {
    content: "";
    position: absolute;
    top: -20px;
    left: 0;
    width: 100%;
    height: 20px;
    background: transparent;
    display: block !important;
}

nav.globalNav .parent > li:hover .child {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    animation: menuFadeUp 0.3s ease-out forwards !important;
}

@keyframes menuFadeUp {
    from { opacity: 0; transform: translateX(-50%) translateY(10px); }
    to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

nav.globalNav .child li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
}
nav.globalNav .child li:last-child { border-bottom: none !important; }

nav.globalNav .child li a {
    display: block !important;
    padding: 14px 24px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #fff !important;
    text-align: left !important;
    white-space: normal !important;
    text-shadow: none !important;
    background: transparent !important;
    transition: background 0.2s ease !important;
    border: none !important;
    box-shadow: none !important;
}

nav.globalNav .child li a:hover {
    background-color: rgba(255, 255, 255, 0.15) !important;
    padding-left: 28px !important;
    transform: none !important;
}

/* スマホ対応 */
@media screen and (max-width: 900px) {
    nav.globalNav { padding: 5px 0 !important; }
    nav.globalNav .parent > li > a {
        padding: 12px 16px !important;
        font-size: 14px !important;
        border-radius: 30px !important;
    }
}
/* ==========================================================================
   Sub-Page Navigation - "Celestial Kite Blue" (Perfect Balance Ver.)
   トップページ「以外」のナビゲーションバーを、オーロラデザインにする設定
   ========================================================================== */

/* 1. ナビゲーションバー本体（トップページ以外に適用） */
body:not(.home):not(.top):not(.front-page) nav.globalNav {
    /* 参考コードのベースカラー */
    background: linear-gradient(180deg, 
        rgba(60, 66, 170, 0.95) 0%, 
        rgba(45, 50, 150, 0.98) 100%) !important;

    /* 質感 */
    backdrop-filter: blur(20px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(150%) !important;

    /* エッジ */
    border-top: 1px solid rgba(255, 255, 255, 0.4) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2) !important;

    /* 影 */
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3) !important;

    width: 100% !important;
    padding: 10px 0 !important;
    margin-top: 0 !important;
    position: relative !important;
    z-index: 9999 !important;
    
    /* ドロップダウン表示用 */
    overflow: visible !important; 
}

/* 2. ダイヤモンドダスト（トップページ以外） */
body:not(.home):not(.top):not(.front-page) nav.globalNav::before {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none;
    z-index: 0;
    
    /* 大量の光の粒 */
    background-image: 
        radial-gradient(2px 2px at 10% 20%, rgba(255,255,255,1) 0%, transparent 100%),
        radial-gradient(2.5px 2.5px at 90% 10%, rgba(255,255,255,1) 0%, transparent 100%),
        radial-gradient(2px 2px at 50% 50%, rgba(255,255,255,0.9) 0%, transparent 100%),
        radial-gradient(2px 2px at 20% 80%, rgba(255,255,255,1) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 5% 5%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 30% 30%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 70% 20%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 60% 60%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 80% 80%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1px 1px at 15% 15%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 25% 35%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 35% 55%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 45% 75%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 55% 15%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 65% 35%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 75% 55%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 85% 75%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 95% 25%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 5% 90%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 50% 90%, rgba(255,255,255,0.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 90% 50%, rgba(255,255,255,0.7) 0%, transparent 100%);
    
    background-size: 100% 100%;
    animation: diamondTwinkle 4s ease-in-out infinite alternate !important;
}

/* 3. オーロラ（トップページ以外） */
body:not(.home):not(.top):not(.front-page) nav.globalNav::after {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none;
    z-index: 0;

    background: linear-gradient(
        120deg,
        transparent 20%,
        rgba(0, 255, 255, 0.15) 40%, 
        rgba(255, 255, 255, 0.2) 50%, 
        rgba(200, 100, 255, 0.15) 60%, 
        transparent 80%
    );
    
    background-size: 300% 300%;
    animation: auroraInternalMove 8s ease-in-out infinite alternate !important;
}

/* アニメーション定義 */
@keyframes diamondTwinkle {
    0% { opacity: 0.5; transform: scale(0.95); }
    100% { opacity: 1.0; transform: scale(1.05); }
}
@keyframes auroraInternalMove {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}

/* 4. メニュー配置の調整（トップページ以外） */
body:not(.home):not(.top):not(.front-page) nav.globalNav .parent {
    display: flex !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    margin: 0 auto !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent !important;
    max-width: 1280px !important;
    position: relative !important;
    z-index: 1 !important;
}

/* 5. リンクボタンのデザイン（トップページ以外） */
body:not(.home):not(.top):not(.front-page) nav.globalNav .parent > li > a {
    display: block !important;
    font-size: 18px !important; 
    font-weight: 800 !important;
    font-family: "Yu Gothic", "YuGothic", sans-serif !important;
    color: #ffffff !important;
    text-decoration: none !important;
    letter-spacing: 0.03em !important;
    line-height: 1.2 !important;
    
    text-shadow: 0 1px 3px rgba(0,0,0,0.3) !important;
    
    padding: 14px 28px !important;
    border-radius: 50px !important;

    /* 透明度と枠線をわずかに強める */
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    
    /* 上部にうっすらとハイライト */
    box-shadow: 
        inset 0 1px 0 rgba(255, 255, 255, 0.25),
        0 2px 5px rgba(0, 0, 0, 0.1) !important;
    
    transition: all 0.3s ease-out !important;
    white-space: nowrap !important;
}

/* 6. ホバーエフェクト（トップページ以外） */
body:not(.home):not(.top):not(.front-page) nav.globalNav .parent > li > a:hover {
    background: rgba(255, 255, 255, 0.25) !important;
    border-color: rgba(255, 255, 255, 0.7) !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    
    box-shadow: 
        inset 0 0 15px rgba(255, 255, 255, 0.3),
        0 5px 15px rgba(255, 255, 255, 0.3) !important;
        
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.8) !important;
}

/* スマホ対応 */
@media screen and (max-width: 900px) {
    body:not(.home):not(.top):not(.front-page) nav.globalNav { padding: 5px 0 !important; }
    body:not(.home):not(.top):not(.front-page) nav.globalNav .parent > li > a {
        padding: 12px 16px !important;
        font-size: 14px !important;
        border-radius: 30px !important;
    }
}
/* ==========================================================================
   Sub-Page Navigation Fix (Targeting "nav.menu")
   トップページ以外の「黒い帯（nav.menu）」をオーロラデザインに変更する
   ========================================================================== */

/* 1. 黒い帯（nav.menu）自体をオーロラ化する */
body:not(.home):not(.top):not(.front-page) nav.menu {
    /* もともとの黒背景を打ち消す */
    background-color: transparent !important;
    background: linear-gradient(180deg, 
        rgba(60, 66, 170, 0.95) 0%, 
        rgba(45, 50, 150, 0.98) 100%) !important;

    /* 質感（すりガラス） */
    backdrop-filter: blur(20px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(150%) !important;

    /* 境界線 */
    border-top: 1px solid rgba(255, 255, 255, 0.4) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2) !important;

    /* 影 */
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3) !important;

    /* 配置調整 */
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    z-index: 9999 !important;
    overflow: visible !important;
}

/* 2. ダイヤモンドダスト（キラキラ）を追加 */
body:not(.home):not(.top):not(.front-page) nav.menu::before {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none;
    z-index: 0;
    
    background-image: 
        radial-gradient(2px 2px at 10% 20%, rgba(255,255,255,1) 0%, transparent 100%),
        radial-gradient(2.5px 2.5px at 90% 10%, rgba(255,255,255,1) 0%, transparent 100%),
        radial-gradient(2px 2px at 50% 50%, rgba(255,255,255,0.9) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 20% 80%, rgba(255,255,255,0.8) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 80% 30%, rgba(255,255,255,0.8) 0%, transparent 100%);
    
    background-size: 100% 100%;
    animation: diamondTwinkle 4s ease-in-out infinite alternate !important;
}

/* 3. オーロラ効果を追加 */
body:not(.home):not(.top):not(.front-page) nav.menu::after {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none;
    z-index: 0;

    background: linear-gradient(
        120deg,
        transparent 20%,
        rgba(0, 255, 255, 0.15) 40%, 
        rgba(255, 255, 255, 0.2) 50%, 
        rgba(200, 100, 255, 0.15) 60%, 
        transparent 80%
    );
    
    background-size: 300% 300%;
    animation: auroraInternalMove 8s ease-in-out infinite alternate !important;
}

/* 4. 内側の枠（div.inner）の背景を消して、文字色を白にする */
body:not(.home):not(.top):not(.front-page) nav.menu div.inner {
    background: transparent !important; /* 内側の黒があれば消す */
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    
    /* 文字の位置調整 */
    max-width: 1280px !important;
    margin: 0 auto !important;
    position: relative !important;
    z-index: 1 !important;
    color: #fff !important; /* 文字色を白に強制 */
}

/* 5. リンク文字（aタグ）のデザイン調整 */
body:not(.home):not(.top):not(.front-page) nav.menu a {
    color: #ffffff !important;
    font-weight: bold !important;
    text-decoration: none !important;
    text-shadow: 0 1px 3px rgba(0,0,0,0.3) !important;
    transition: opacity 0.3s ease !important;
}

body:not(.home):not(.top):not(.front-page) nav.menu a:hover {
    opacity: 0.8 !important;
    color: #fff !important;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.8) !important;
}

/* アニメーション定義（もし未定義なら必要） */
@keyframes diamondTwinkle {
    0% { opacity: 0.5; transform: scale(0.95); }
    100% { opacity: 1.0; transform: scale(1.05); }
}
@keyframes auroraInternalMove {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}
/* ==================================================
   [FINAL FIX] トップロゴ「きてケアプランセンター」ヒラギノ角ゴシック化
   ================================================== */

html body .slide .siteTitle {
  overflow: visible !important;
  max-height: none !important;
}

html body .logo-main {
  overflow: visible !important;
}

html body.home .logo-main,
html body.home .logo-main *,
html body.top .logo-main,
html body.top .logo-main *,
html body.index .logo-main,
html body.index .logo-main *,
html body#top .logo-main,
html body#top .logo-main *,
html body.slide .siteTitle .logo-main,
html body.slide .siteTitle .logo-main *,
html body .slide .siteTitle .logo-main,
html body .slide .siteTitle .logo-main *,
html body .siteTitle .logo-main,
html body .siteTitle .logo-main * {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", Meiryo, sans-serif !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  padding-top: 0.12em !important;
  padding-bottom: 0.08em !important;
  overflow: visible !important;
}
/* ==================================================
   [FINAL PATCH] 下層ページヘッダー左寄せ固定
   .slide .siteTitle の中央配置を下層ページだけ解除
   ================================================== */

body:not(.home):not(.top):not(.front-page):not(.index) .header,
body:not(.home):not(.top):not(.front-page):not(.index) header,
body:not(.home):not(.top):not(.front-page):not(.index) .site-header {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  text-align: left !important;
  padding-left: 50px !important;
  padding-right: 140px !important;
  box-sizing: border-box !important;
}

/* 下層ページでは siteTitle の絶対配置を解除 */
body:not(.home):not(.top):not(.front-page):not(.index) .slide .siteTitle,
body:not(.home):not(.top):not(.front-page):not(.index) .header .siteTitle,
body:not(.home):not(.top):not(.front-page):not(.index) header .siteTitle,
body:not(.home):not(.top):not(.front-page):not(.index) .site-header .siteTitle {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;

  display: block !important;
  width: auto !important;
  max-width: calc(100vw - 220px) !important;

  margin-left: 0 !important;
  margin-right: auto !important;

  text-align: left !important;
  overflow: visible !important;
}

/* inner が中央寄せしている場合も解除 */
body:not(.home):not(.top):not(.front-page):not(.index) .header .inner,
body:not(.home):not(.top):not(.front-page):not(.index) header .inner,
body:not(.home):not(.top):not(.front-page):not(.index) .site-header .inner {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left !important;
}

/* 下層ページのロゴ・説明文を左揃え */
body:not(.home):not(.top):not(.front-page):not(.index) .header .logo-catch,
body:not(.home):not(.top):not(.front-page):not(.index) .header .logo-main,
body:not(.home):not(.top):not(.front-page):not(.index) .header .sava,
body:not(.home):not(.top):not(.front-page):not(.index) .header .kite-area-text,
body:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .logo-catch,
body:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .logo-main,
body:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .sava,
body:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .kite-area-text {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  transform: none !important;
}

/* スマホは右上ハンバーガー分だけ余白を残す */
@media (max-width: 767px) {
  body:not(.home):not(.top):not(.front-page):not(.index) .header,
  body:not(.home):not(.top):not(.front-page):not(.index) header,
  body:not(.home):not(.top):not(.front-page):not(.index) .site-header {
    padding-left: 20px !important;
    padding-right: 86px !important;
  }

  body:not(.home):not(.top):not(.front-page):not(.index) .slide .siteTitle,
  body:not(.home):not(.top):not(.front-page):not(.index) .header .siteTitle,
  body:not(.home):not(.top):not(.front-page):not(.index) header .siteTitle,
  body:not(.home):not(.top):not(.front-page):not(.index) .site-header .siteTitle {
    max-width: calc(100vw - 110px) !important;
  }
}
/* ==================================================
   [TRUE FINAL FIX] body.slide 下層ページヘッダー左寄せ
   とりあえずHPの body.slide .siteTitle 中央配置を解除
   ================================================== */

html body.slide:not(.home):not(.top):not(.front-page):not(.index) header,
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .header,
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .site-header {
  display: block !important;
  text-align: left !important;
  padding-left: 50px !important;
  padding-right: 150px !important;
  box-sizing: border-box !important;
}

/* ここが本丸：body.slide .siteTitle の中央配置を解除 */
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;

  display: block !important;
  width: auto !important;
  max-width: calc(100vw - 220px) !important;

  margin-left: 0 !important;
  margin-right: auto !important;

  text-align: left !important;
  overflow: visible !important;
}

/* aタグがinline-blockで中央寄せを残す場合の対策 */
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle a {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  text-align: left !important;
}

/* ロゴ内テキストを左揃えに固定 */
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .logo-catch,
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .logo-main,
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .sava,
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .kite-area-text,
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .kite-area-subtext {
  display: block !important;
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  transform: none !important;
}

/* 下層ページではトップ用の大きすぎるロゴ指定を弱める */
html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .logo-main {
  font-size: 18px !important;
  line-height: 1.5 !important;
  margin-top: 0 !important;
  margin-bottom: 8px !important;
  border-bottom: none !important;
}

html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .sava {
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin-top: 0 !important;
  margin-bottom: 8px !important;
  top: auto !important;
  position: relative !important;
}

/* スマホ */
@media (max-width: 767px) {
  html body.slide:not(.home):not(.top):not(.front-page):not(.index) header,
  html body.slide:not(.home):not(.top):not(.front-page):not(.index) .header,
  html body.slide:not(.home):not(.top):not(.front-page):not(.index) .site-header {
    padding-left: 18px !important;
    padding-right: 86px !important;
  }

  html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle {
    max-width: calc(100vw - 110px) !important;
  }

  html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .logo-main {
    font-size: 14px !important;
  }

  html body.slide:not(.home):not(.top):not(.front-page):not(.index) .siteTitle .sava {
    font-size: 11px !important;
  }
}
/* ==================================================
   [AO RECOVERY] トップページ・スライド写真 完全復旧
   body.slide#top を下層ページパッチから救出
   ================================================== */

html body#top.slide,
html body.slide#top {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  background: #000 !important;
}

/* トップのheaderをスライド専用の全画面ステージに戻す */
html body#top.slide header.header,
html body.slide#top header.header {
  position: relative !important;
  display: block !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  min-height: 100vh !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: #000 !important;
}

/* スライド写真を背景として全面配置 */
html body#top.slide .slider,
html body.slide#top .slider,
html body#top.slide .slider-overlay,
html body.slide#top .slider-overlay {
  position: absolute !important;
  inset: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body#top.slide .slider,
html body.slide#top .slider {
  z-index: 1 !important;
  overflow: hidden !important;
}

html body#top.slide .slider li,
html body.slide#top .slider li {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  overflow: hidden !important;
}

html body#top.slide .slider li img,
html body.slide#top .slider li img {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  margin: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  border: none !important;
}

/* 暗幕を写真の上に戻す */
html body#top.slide .slider-overlay,
html body.slide#top .slider-overlay {
  z-index: 2 !important;
  background: rgba(0, 0, 0, 0.4) !important;
  pointer-events: none !important;
}

/* トップロゴを写真の中央に戻す */
html body#top.slide .siteTitle,
html body.slide#top .siteTitle {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;

  width: 90% !important;
  max-width: 90% !important;
  height: auto !important;
  max-height: none !important;

  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  overflow: visible !important;
  z-index: 3 !important;
  color: #fff !important;
}

html body#top.slide .siteTitle a,
html body.slide#top .siteTitle a {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  color: #fff !important;
  text-align: center !important;
}

/* トップではロゴ各行を中央揃えに固定 */
html body#top.slide .siteTitle .logo-catch,
html body#top.slide .siteTitle .logo-main,
html body#top.slide .siteTitle .sava,
html body#top.slide .siteTitle .kite-area-text,
html body.slide#top .siteTitle .logo-catch,
html body.slide#top .siteTitle .logo-main,
html body.slide#top .siteTitle .sava,
html body.slide#top .siteTitle .kite-area-text {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: #fff !important;
  transform: none !important;
}

/* トップのハンバーガーは写真上に固定 */
html body#top.slide .hamburger,
html body.slide#top .hamburger {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  z-index: 2147483646 !important;
}

/* 下層ページ補正は、今後トップに当てない */
html body:not(#top):not(.slide):not(.home):not(.top):not(.front-page):not(.index) header.header {
  text-align: left !important;
}
/* ==================================================
   [AO FIX] 下層ヘッダー左寄せ + ハンバーガー横線復旧
   ================================================== */

/* 空の p.siteTitle が後続ロゴを右へ押すのを止める */
html body:not(#top) header.header > p.siteTitle {
  display: none !important;
  flex: 0 0 0 !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* ブラウザが p の外へ出したロゴ本体を左へ戻す */
html body:not(#top) header.header {
  display: block !important;
  text-align: left !important;
  padding-left: 50px !important;
  padding-right: 150px !important;
  box-sizing: border-box !important;
}

html body:not(#top) header.header > .logo-catch,
html body:not(#top) header.header > p:empty,
html body:not(#top) header.header > br {
  display: none !important;
}

html body:not(#top) header.header > a {
  display: block !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  transform: none !important;

  width: auto !important;
  max-width: calc(100vw - 230px) !important;
  margin-left: 0 !important;
  margin-right: auto !important;

  text-align: left !important;
  color: #333 !important;
  text-decoration: none !important;
}

html body:not(#top) header.header > a .logo-main,
html body:not(#top) header.header > a .sava,
html body:not(#top) header.header > a .kite-area-text {
  width: auto !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  text-align: left !important;
  transform: none !important;
}

html body:not(#top) header.header > a .logo-main {
  font-size: 15px !important;
  line-height: 1.4 !important;
  margin-top: 0 !important;
  margin-bottom: 6px !important;
  padding: 0 !important;
  border-bottom: none !important;
}

html body:not(#top) header.header > a .sava {
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}

/* ハンバーガー横線を写真の形に戻す */
html body .hamburger {
  width: 120px !important;
  height: 120px !important;
  background: #000 !important;
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
}

html body .hamburger > .inner {
  position: absolute !important;
  width: 56px !important;
  min-width: 56px !important;
  max-width: 56px !important;
  height: 58px !important;

  left: 50% !important;
  right: auto !important;
  top: 34px !important;
  bottom: auto !important;

  transform: translateX(-50%) !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body .hamburger > .inner > span {
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: auto !important;

  width: 56px !important;
  min-width: 56px !important;
  max-width: 56px !important;
  height: 4px !important;

  background: #fff !important;
  border-radius: 999px !important;
  opacity: 1 !important;
}

html body .hamburger > .inner > span:nth-of-type(1) { top: 0 !important; }
html body .hamburger > .inner > span:nth-of-type(2) { top: 13px !important; }
html body .hamburger > .inner > span:nth-of-type(3) { top: 26px !important; }

html body .hamburger > .inner > p {
  position: absolute !important;
  top: 42px !important;
  bottom: auto !important;
  left: 0 !important;

  width: 56px !important;
  margin: 0 !important;
  padding: 0 !important;

  text-align: center !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;
  font-family: Arial, sans-serif !important;
}

/* スマホ */
@media (max-width: 767px) {
  html body:not(#top) header.header {
    padding-left: 18px !important;
    padding-right: 86px !important;
  }

  html body:not(#top) header.header > a {
    max-width: calc(100vw - 110px) !important;
  }

  html body .hamburger {
    width: 70px !important;
    height: 70px !important;
  }

  html body .hamburger > .inner {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 44px !important;
    top: 16px !important;
  }

  html body .hamburger > .inner > span {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 3px !important;
  }

  html body .hamburger > .inner > span:nth-of-type(1) { top: 0 !important; }
  html body .hamburger > .inner > span:nth-of-type(2) { top: 9px !important; }
  html body .hamburger > .inner > span:nth-of-type(3) { top: 18px !important; }

  html body .hamburger > .inner > p {
    top: 31px !important;
    width: 36px !important;
    font-size: 10px !important;
  }
}
/* ==================================================
   [AO FIX] ハンバーガー横線・MENU 中央寄せ固定
   .inner の幅に左右されない最終補正
   ================================================== */

html body .hamburger > .inner {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  transform: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 横線そのものを中央固定 */
html body .hamburger > .inner > span {
  display: block !important;
  position: absolute !important;

  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;

  width: 56px !important;
  height: 4px !important;
  background: #fff !important;
  border-radius: 999px !important;
  opacity: 1 !important;
}

html body .hamburger > .inner > span:nth-of-type(1) {
  top: 34px !important;
}

html body .hamburger > .inner > span:nth-of-type(2) {
  top: 47px !important;
}

html body .hamburger > .inner > span:nth-of-type(3) {
  top: 60px !important;
}

/* MENU文字も中央固定 */
html body .hamburger > .inner > p {
  display: block !important;
  position: absolute !important;

  left: 50% !important;
  right: auto !important;
  top: 76px !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;

  width: auto !important;
  min-width: 56px !important;
  margin: 0 !important;
  padding: 0 !important;

  text-align: center !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;
  font-family: Arial, sans-serif !important;
  white-space: nowrap !important;
}

/* スマホ */
@media (max-width: 767px) {
  html body .hamburger > .inner > span {
    width: 36px !important;
    height: 3px !important;
  }

  html body .hamburger > .inner > span:nth-of-type(1) {
    top: 16px !important;
  }

  html body .hamburger > .inner > span:nth-of-type(2) {
    top: 25px !important;
  }

  html body .hamburger > .inner > span:nth-of-type(3) {
    top: 34px !important;
  }

  html body .hamburger > .inner > p {
    top: 48px !important;
    min-width: 36px !important;
    font-size: 10px !important;
  }
}
/* ==================================================
   [AO FIX] トップページ下部の黒背景を白へ戻す
   スライド背景の黒は header 内だけに限定
   ================================================== */

/* トップページ全体は白 */
html body#top.slide,
html body.slide#top {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
}

/* スライド写真のステージだけ黒を維持 */
html body#top.slide header.header,
html body.slide#top header.header {
  background: #000 !important;
}

/* 透明指定の下部エリアが黒を拾わないように保険 */
html body#top.slide main,
html body#top.slide .main,
html body#top.slide .contents,
html body#top.slide .bgColor-white,
html body.slide#top main,
html body.slide#top .main,
html body.slide#top .contents,
html body.slide#top .bgColor-white {
  background-color: #fff !important;
}

/* 悩みセクション周辺が透明なら白に固定 */
html body#top.slide #concern,
html body#top.slide #concern-section,
html body.slide#top #concern,
html body.slide#top #concern-section {
  background-color: #fff !important;
}
/* ==================================================
   [FINAL FIX] ハンバーガーメニュー開閉時の✕変形・MENUズレ修正
   ================================================== */

/* 開いた時はMENU文字を確実に非表示 */
html body .hamburger.active > .inner > p,
html body .hamburger.active p {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

/* 開いた時の線を中央基準に固定 */
html body .hamburger.active > .inner > span {
  left: 50% !important;
  right: auto !important;
  transform-origin: center center !important;
  opacity: 1 !important;
}

/* 1本目は非表示 */
html body .hamburger.active > .inner > span:nth-of-type(1) {
  opacity: 0 !important;
  visibility: hidden !important;
}

/* 2本目・3本目で中央にきれいな✕を作る */
html body .hamburger.active > .inner > span:nth-of-type(2) {
  top: 58px !important;
  transform: translateX(-50%) rotate(45deg) !important;
}

html body .hamburger.active > .inner > span:nth-of-type(3) {
  top: 58px !important;
  transform: translateX(-50%) rotate(-45deg) !important;
}

/* スマホ時の✕位置 */
@media (max-width: 767px) {
  html body .hamburger.active > .inner > span:nth-of-type(2) {
    top: 34px !important;
    transform: translateX(-50%) rotate(45deg) !important;
  }

  html body .hamburger.active > .inner > span:nth-of-type(3) {
    top: 34px !important;
    transform: translateX(-50%) rotate(-45deg) !important;
  }
}



/* ==================================================
   [UX QUALITY SAFE PATCH v1] 2026-05-17
   Scope: horizontal scroll, overlap prevention, mobile tap targets.
   Note: does not change animations, hero images, gradients, or colors.
   ================================================== */

html,
body {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

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

html body img,
html body video,
html body iframe,
html body canvas,
html body svg {
  max-width: 100%;
}

html body .editorArea,
html body .freeArea,
html body .article,
html body .article .txt,
html body .lead,
html body .news,
html body .rss,
html body .info,
html body .form,
html body .navi,
html body .menuNavi,
html body nav.globalNav,
html body nav.menu {
  overflow-wrap: anywhere;
  word-break: normal;
}

html body .header,
html body .siteTitle,
html body .mainImg .inner,
html body .access-container,
html body nav.globalNav .parent,
html body ul.news li,
html body .info dl {
  min-width: 0;
}

html body .editorArea table,
html body .freeArea table,
html body .info table,
html body .form table {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

html body .editorArea iframe,
html body .freeArea iframe,
html body .map iframe,
html body .access-map-box iframe {
  max-width: 100% !important;
}

html body nav.globalNav .child,
html body .navi,
html body .menuNavi {
  max-width: 100vw !important;
}

html body nav.globalNav .child {
  max-width: min(92vw, 360px) !important;
  overflow-wrap: anywhere !important;
}

@media (max-width: 767px) {
  html body .navi a,
  html body .menuNavi a,
  html body .headNavi a,
  html body nav.menu a,
  html body nav.globalNav .parent > li > a,
  html body nav.globalNav .child li a,
  html body ul.news li a,
  html body .rss dd a,
  html body .pnkz a {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
  }

  html body .editorArea p > a:only-child,
  html body .article .txt p > a:only-child,
  html body .freeArea p > a:only-child,
  html body .map-app-btn,
  html body .concern-btn,
  html body .kite-return-home-btn,
  html body .h-float-btn {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  html body .editorArea a,
  html body .article .txt a,
  html body .freeArea a {
    text-underline-offset: 0.16em;
  }

  html body .header-floating-btns {
    max-width: 64px !important;
  }

  html body .h-float-btn {
    flex: 0 0 auto !important;
  }
}