/* --------------------------------------------------
   [SYSTEM] AO-CHAN SPECIAL ARCHITECTURE
   Version: Optimized Final (Buttons Relocated Below Menu)
   -------------------------------------------------- */

/* ==================================================
   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;
    }
}