@charset "UTF-8";
/* ============================================================
   pc.css | for min-width: 641px
   ============================================================ */

/* ===== Font Family Utilities ===== */
.zen-kaku{font-family:"Zen Kaku Gothic New","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;font-style:normal}
.noto-sans{font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-optical-sizing:auto;font-style:normal}
.dm-sans{font-family:"DM Sans",sans-serif;font-optical-sizing:auto;font-style:normal}

/* ===== Base ===== */
body{
    font-family:Osaka,"メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
    font-size:16px;line-height:180%;font-weight:normal;
    letter-spacing:.05em;padding:0;margin:0;
    padding-top:100px;
}
form{margin:0;padding:0}
td{text-align:left;vertical-align:top}
img{border:none;max-width:100%;height:auto}
table{border:none;letter-spacing:1px}
.space0{margin:0;padding:0;text-align:left}
.yetxt{background-color:#FBFA8B}
.clear{margin:0;padding:0;clear:both}

/* ===== Mobile elements hidden on PC ===== */
#menu,.sm_menu,#navTgl,#hung_menu,
label.open,label.close{display:none}

/* ===== Layout helpers ===== */
dl{display:table-row}
.wrap{width:95%;min-width:1140px;margin:0 auto;padding:0}
.wrap2{width:89%;margin:0 auto;padding:0;line-height: 220%;}

/* ===== Page-top floating button ===== */
#go2{position:fixed;right:10px;bottom:10px;line-height:130%;z-index:999}
#go2 a{
    text-decoration:none;display:block;
    background-color:#93ca6f;border-radius:10px;
    color:#fff;text-align:center;font-size:10px;padding:5px;
}
#go2 a:hover{background-color:#5cb224}
#go2 a b{font-size:16px}

#footer,.wrap,#heads{min-width:1140px}

/* Tablet shrink */
@media screen and (max-width:1099px){
    body{min-width:900px}
}

/* ============================================================
   Header
   ============================================================ */
header{
    position:fixed;top:0;left:0;width:100%;height:100px;
    padding-bottom:10px;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    z-index:100;box-sizing:border-box;
}
header div{width:100%}
header div.wrap{display:block;margin:0 auto;width:95%}
header dl{display:flex;align-items:center;width:100%;margin:0;padding:0}
header div.wrap dl dt{
    display:block;flex:0 0 auto;
    vertical-align:top;text-align:left;
}
header div.wrap dl dd{
    display:flex;flex:1 1 auto;
    align-items:center;justify-content:flex-end;
    flex-wrap:nowrap;padding:0;min-width:0;
    vertical-align:top;text-align:left;
}
header div.wrap dl dd > p,
header div.wrap dl dd > nav{float:none;margin:0;flex-shrink:0}
header div.wrap dl dd nav{order:1;letter-spacing:0}
header div.wrap dl dd p#tel{order:2}
header div.wrap dl dd p#mail{order:3}
header div.wrap dl dd nav ul{display:table;margin:0}
header div.wrap dl dd nav ul li{
    display:table-cell;vertical-align:top;font-size:13px;position:relative;
}
header div.wrap dl dd nav ul li a,
header div.wrap dl dd nav ul li .mega-label{
    display:block;padding:10px 20px;color:#000;
    text-decoration:none;transition:color .2s ease;
}
header div.wrap dl dd nav ul li .mega-label{cursor:pointer;}
header div.wrap dl dd nav ul li a:hover,
header div.wrap dl dd nav ul li .mega-label:hover{color:#1f3a5f;text-decoration:none}
header div.wrap dl dd nav ul li::before{
    content:"";display:block;width:1px;height:10px;
    background-color:#ddd;position:absolute;top:17px;
}

/* Nav underline cue — 全項目に適用、中央から両側へ展開 */
header div.wrap dl dd nav ul li > a,
header div.wrap dl dd nav ul li > .mega-label{position:relative}
header div.wrap dl dd nav ul li > a::after,
header div.wrap dl dd nav ul li > .mega-label::after{
    content:"";position:absolute;left:20px;right:20px;bottom:4px;
    height:1px;background:currentColor;
    transform:scaleX(0);transform-origin:center center;
    transition:transform .35s cubic-bezier(.7,.1,.2,1);
}
header div.wrap dl dd nav ul li.has-mega.is-open > .mega-label::after,
header div.wrap dl dd nav ul li > a:hover::after,
header div.wrap dl dd nav ul li > .mega-label:hover::after{transform:scaleX(1)}
header div.wrap dl dd nav ul li.is-current > a,
header div.wrap dl dd nav ul li.is-current > .mega-label{font-weight:700;color:#0096a5}
header div.wrap dl dd nav ul li.is-current > a::after,
header div.wrap dl dd nav ul li.is-current > .mega-label::after{transform:scaleX(1);background:#0096a5}

/* Tel / Mail */
header div.wrap dl dd p#tel a{
    display:block;color:#000;text-decoration:none;
    font-weight:bold;font-size:20px;letter-spacing:0;
    pointer-events:none;padding:22px 10px;
}
header div.wrap dl dd p#tel a i{font-size:15px;margin:-5px 3px 0 0}
header div.wrap dl dd p#mail a{
    display:block;background-color:#0096a5;color:#fff;
    text-decoration:none;padding:10px 20px;margin:0;
    border-radius:100px;font-size:13px;line-height:100%;
    transition:background-color .2s ease;
}
header div.wrap dl dd p#mail a:hover{background-color:#00c4d8}
header div.wrap dl dd p#mail a i{margin:0 3px 0 0}

/* Logo */
#logo .logo-link{display:block;overflow:hidden;text-decoration:none;color:inherit}
#logo .logo-link h1{color:#000}
#logo .logo-link h1 span{color:#000}
#logo img{width:40px;height:40px;float:left;margin:20px 10px 0 0}
#logo h1{font-size:20px;margin:0;padding:25px 0 0 0;float:left}
#logo h1 span{
    font-size:12px;font-weight:normal;letter-spacing:0;
    display:inline-block;line-height:inherit;
    vertical-align:baseline;
    transform:translateY(0);
    transition:transform .3s ease;will-change:transform;
    color:#333;
}
header.shrink #logo h1 span{transform:translateY(-10px)}

/* ============================================================
   Top Heading (legacy #toph2)
   ============================================================ */
#toph2{
    clear:both;font-weight:normal;font-size:50px;
    line-height:150%;margin:0;padding:0;
}
#toph2 span{font-size:80px}

/* ============================================================
   Hero
   ============================================================ */
#top_h_txt{
    padding:150px 0 100px 0;
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","MS P明朝",serif;
}
#top_h_txt h2{font-weight:normal;font-size:65px;margin:0 0 0 -5px;padding:0}
#top_h_txt h3{font-weight:normal;font-size:94px;margin:70px 0 70px -5px;padding:0}
#top_h_txt h3 span{font-size:80px}
#top_h_txt img,
#top_h_txt video{
    width:100%;max-width:900px;height:auto;
    aspect-ratio:900/350;object-fit:cover;display:block;
}

/* ============================================================
   Service grid (Hero .topbaselay)
   ============================================================ */
.topbaselay .sec_contents ul{
    list-style:none;padding:0;margin:24px 0 0;
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.topbaselay .sec_contents ul li{margin:0 0 30px 0}
.topbaselay .sec_contents ul li a{
    display:block;text-decoration:none;
    color:#1f3a5f;font-weight:500;
    transition:opacity .2s ease;
}
.topbaselay .sec_contents ul li a:hover{opacity:.75}
.topbaselay .sec_contents ul li img{
    width:100%;height:auto;aspect-ratio:4/2;
    object-fit:cover;display:block;margin-bottom:8px;
    border-radius: 5px;
}
.topbaselay .sec_contents ul li p{
    margin: 0;
    padding: 0;
}

/* ============================================================
   Post list (blog 一覧用) — サムネ左 / テキスト右の2列カード
   ============================================================ */
.post-list{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    margin:0;
    padding:0;
}
.post-card{
    border-top:1px solid #e1e5ec;
    overflow:hidden;
    background:#fff;
    transition:box-shadow .2s ease,transform .2s ease;
}
.post-card:hover{
    box-shadow:0 6px 20px rgba(20,30,50,.06);
    transform:translateY(-2px);
}
.post-card > a{
    display:grid;
    grid-template-columns:240px 1fr;
    gap:24px;
    align-items:center;
    text-decoration:none;
    color:inherit;
    padding:0;
}
.post-card-cover{
    overflow:hidden;
    align-self:stretch;
    min-width:0;
}
.post-card-cover picture,
.post-card-cover img{
    width:100%;
    height:auto;
    object-fit:cover;
    display:block;
    aspect-ratio:16/9;
    margin: 50px 0;
    border-radius:8px;
}
.post-card-body{
    padding:35px 0 45px 0;
    min-width:0;
}
.post-card-meta{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    font-size:12px;
    line-height:1;
    margin-bottom:8px;
}
.post-card-meta time{
    color:#6b7280;
    letter-spacing:.04em;
}
.post-card-category{
    background:#f5f7fa;
    color:#0096a5;
    padding:3px 10px;
    border-radius:3px;
    font-size:11px;
    font-weight:500;
}
.post-card-title{
    font-size:17px;
    color:#1f3a5f;
    margin:15px 0;
    line-height:1.5;
    font-weight:600;
}
.post-card-excerpt{
    margin:0;
    padding:0;
    color:black;
    font-size:13px;
    line-height:1.75;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
}

/* ============================================================
   Blog list (NewsList .topnews) — 3列 サムネ付き
   ============================================================ */
.topnews .sec_contents ul{
    list-style:none;padding:0;margin:24px 0 0;
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.topnews .sec_contents ul li{margin:0}
.topnews .sec_contents ul li a{
    display:block;text-decoration:none;color:inherit;
    transition:opacity .2s ease;
}
.topnews .sec_contents ul li a:hover{opacity:.85}
.topnews .sec_contents ul li img{
    width:100%;height:auto;aspect-ratio:16/9;
    object-fit:cover;display:block;
    border-radius:5px;margin-bottom:10px;
}
.topnews .sec_contents .news-meta{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    font-size:12px;line-height:1;margin-top:8px;
}
.topnews .sec_contents .news-meta time{
    color:#6b7280;
    font-family:"DM Sans","Noto Serif JP",serif;letter-spacing:.04em;
}
.topnews .sec_contents .news-cat{
    background:#f5f7fa;color:#0096a5;
    padding:3px 10px;border-radius:3px;font-size:11px;
}
.topnews .sec_contents .news-title{
    font-size:15px;font-weight:600;color:#1f3a5f;
    margin:8px 0 0;padding:0;line-height:1.6;
}
.topnews .news-more{
    margin:32px 0 0;text-align:right;
}
.topnews .news-more a{
    color:#0096a5;text-decoration:none;font-weight:600;font-size:13px;
}
.topnews .news-more a:hover{text-decoration:underline}

/* ============================================================
   Voice grid (Hero .topbaselay ol / Voice ページ .topabout ol) — 2列1行
   ============================================================ */
.topbaselay .sec_contents ol,
.topabout .sec_contents ol{
    list-style:none;padding:0;margin:24px 0 0;
    display:grid;grid-template-columns:repeat(2,1fr);gap:24px;
}
.topbaselay .sec_contents ol li,
.topabout .sec_contents ol li{margin:0}
.topbaselay .sec_contents ol li a,
.topabout .sec_contents ol li a{
    display:block;text-decoration:none;color:inherit;
    transition:opacity .2s ease;
}
.topbaselay .sec_contents ol li a:hover,
.topabout .sec_contents ol li a:hover{opacity:.75}
.topbaselay .sec_contents ol li img,
.topabout .sec_contents ol li img{
    width:100%;height:auto;aspect-ratio:16/9;
    object-fit:cover;display:block;border-radius:5px;margin-bottom:12px;
}
.topbaselay .sec_contents ol li h4,
.topabout .sec_contents ol li h4{
    font-size:15px;font-weight:600;color:#1f3a5f;
    margin:0 0 8px;line-height:1.7;
}
.topbaselay .sec_contents ol li p,
.topabout .sec_contents ol li p{
    margin:0;padding:0;color:#6b7280;font-size:12px;
}

/* ============================================================
   Service detail hero image + tags panel (#service_image)
   ============================================================ */
#service_image{
    position:relative;
}
#service_image picture img{
    width:100%;
    height:500px;
    object-fit:cover;
    display:block;
    border-radius:8px;
}
#service_image #txt{
    margin:24px 0 16px;
}
#service_image #txt p{
    margin:12px 0 0;
}
#service_image #txt ul{
    list-style:none;padding:0;margin:18px 0 0;
    display:flex;flex-wrap:wrap;gap:8px;
}
#service_image #txt ul li{
    background:#f5f7fa;
    padding:8px 18px;
    border-radius:4px;
    font-size:13px;
    color:#1f3a5f;
    font-weight:500;
    line-height:1.4;
    transition:background .2s ease,transform .2s ease;
}
#service_image #txt ul li:hover{
    background:#eef3fb;
    transform:translateY(-1px);
}

/* メインイメージ上の文字を白に (背景が濃い色のページ用) */
#service_image.hero-txt-white #txt h3,
#service_image.hero-txt-white #txt p{
    color:#fff;
}

/* ============================================================
   .panel4box — 1行4列カードグリッド / .panel3box — 1行3列
   ============================================================ */
.panel4box,
.panel3box{
    list-style:none;padding:0;margin:32px 0;
    display:grid;gap:20px;
}
.panel4box{grid-template-columns:repeat(4,1fr);}
.panel3box{grid-template-columns:repeat(3,1fr);}
.panel4box > li,
.panel3box > li{
    background:#f5f7fa;
    padding:24px 20px;
    border-radius:8px;
}
.panel4box > li p:first-child,
.panel3box > li p:first-child{
    margin:0 0 12px;
    padding:4px 12px;
    display:inline-block;
    background:#fff;
    color:#0096a5;
    border-radius:4px;
    font-size:14px;
    font-weight:600;
    letter-spacing:.04em;
}
.panel4box > li h4,
.panel3box > li h4{
    font-size:15px;
    color:#1f3a5f;
    margin:0 0 12px;
    line-height:1.6;
    font-weight:700;
}
.panel4box > li p:not(:first-child),
.panel3box > li p:not(:first-child){
    margin:0 0 10px;
    font-size:13px;
    line-height:1.8;
    color:black;
}
.panel4box > li p:not(:first-child):last-child,
.panel3box > li p:not(:first-child):last-child{margin-bottom:0}

/* タブレット縮小時は2列に */
@media screen and (max-width:1099px){
    .panel4box{grid-template-columns:repeat(2,1fr);gap:16px}
    .panel3box{grid-template-columns:repeat(2,1fr);gap:16px}
}

/* ============================================================
   .faq_panel — 1行6カラム アイコン+ラベルのパネル
   ============================================================ */
.faq_panel{
    list-style:none;
    padding:0;
    margin:24px 0;
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:12px;
}
.faq_panel > li{margin:0;padding:0}
.faq_panel > li > a{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    text-decoration:none;
    color:#1f3a5f;
    background:#f5f7fa;
    padding:22px 10px;
    border-radius:8px;
    transition:background .2s ease,transform .2s ease;
    min-height:120px;
    box-sizing:border-box;
}
.faq_panel > li > a:hover{
    background:#e8eef5;
    transform:translateY(-2px);
}
.faq_panel > li > a img{
    width:40px;
    height:40px;
    object-fit:contain;
    display:none; /* アイコン一時非表示 (戻すときは display:block) */
    margin:0 0 10px;
}
.faq_panel > li > a p{
    margin:0;
    padding:0;
    font-size:13px;
    font-weight:600;
    line-height:1.4;
    color:#1f3a5f;
}

/* タブレットでは 3列 × 2行 */
@media screen and (max-width:1099px){
    .faq_panel{grid-template-columns:repeat(3,1fr);gap:10px}
}

/* ============================================================
   .imglist01 — dt(画像左) / dd(テキスト右) の2列リスト
   ※ .topabout dl dt/dd の table-cell 強制を打ち消す必要があるため
     セレクタを li dl 経由で 1段深く specificity を上げている
   ============================================================ */
.imglist01{
    list-style:none;padding:0;margin:24px 0;
}
.imglist01 > li{
    padding:18px 0;
    border-bottom:1px dashed #e1e5ec;
}
.imglist01 > li:last-child{border-bottom:none}
.imglist01 > li > div{margin:0;padding:0}
.imglist01 li dl{
    display:grid;
    grid-template-columns:200px 1fr;
    gap:24px;
    align-items:start;
    margin:0;
    padding:0;
}
.imglist01 li dl dt{
    display:block;
    width:200px;
    margin:0;
    padding:0;
    vertical-align:initial;
    text-align:left;
}
.imglist01 li dl dt img{
    width:200px;
    height:60px;
    object-fit:cover;
    display:block;
    border-radius:4px;
    float:none;
}
.imglist01 li dl dd{
    display:block;
    width:auto;
    margin:0;
    padding:0;
    min-width:0;
    vertical-align:initial;
}
.imglist01 li dl dd h4{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:16px;
    color:#1f3a5f;
    margin:0 0 8px;
    line-height:1.6;
    font-weight:700;
}
.imglist01 li dl dd h4 img{
    width:20px;
    height:20px;
    flex-shrink:0;
    display:block;
    float:none;
    object-fit:contain;
}
.imglist01 li dl dd p{
    margin:0;
    font-size:14px;
    line-height:1.8;
    color:black;
}

/* ============================================================
   .twocol-cards — 2列カード (dt | dd) ハイライト付き
   ============================================================ */
.twocol-cards{
    margin:24px 0;
}
.twocol-cards dl{
    display:flex;
    gap:24px;
    margin:0;
    padding:0;
}
.twocol-cards dl dt,
.twocol-cards dl dd{
    display:block;
    margin:0;
    padding:16px 28px;
    flex:1 1 0;
    width:50%;
    min-width:0;
    box-sizing:border-box;
    background:#f5f7fa;
    border:1px solid #e1e5ec;
    border-radius:8px;
    vertical-align:initial;
    text-align:left;
}
.twocol-cards dl dt h4,
.twocol-cards dl dd h4{
    font-size:16px;
    font-weight:700;
    color:#1f3a5f;
    margin:0 0 20px;
    padding:10px 0 16px;
    border-bottom:1px solid #e1e5ec;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:6px;
    line-height:1.5;
}
.twocol-cards dl dt h4::before{content:'⚠';font-size:24px;line-height:24px;display:inline-block;height:24px}
.twocol-cards dl dd h4::before{content:'';display:inline-block;width:24px;height:24px;background:url('../common/img/thumbs-up-regular-full.svg') no-repeat center/contain}
.twocol-cards dl dt ul,
.twocol-cards dl dd ul{
    list-style:disc;
    list-style-position:inside;
    padding:0;
    margin:20px 0;
}
.twocol-cards dl dt ul li,
.twocol-cards dl dd ul li{
    padding:3px 0;
    font-size:16px;
    line-height:1.6;
    color:#1f2937;
}
.twocol-cards .hl-yellow{
    background:#fff7c2;
    padding:1px 8px;
    border-radius:3px;
    font-weight:600;
    color:#4a3800;
    font-size:1em;
}
.twocol-cards .hl-blue{
    background:#e0eaff;
    padding:1px 8px;
    border-radius:3px;
    color:#143a70;
    font-weight:600;
    font-size:1em;
}

/* ============================================================
   .rate-table — 一般的な罫線付きテーブル（ペナルティ等）
   ============================================================ */
table.rate-table{
    border-collapse:collapse;
    width:50%;
    margin:12px 0 20px;
    font-size:14px;
    letter-spacing:0;
}
table.rate-table th,
table.rate-table td{
    border:1px solid #d1d9e0;
    padding:10px 14px;
    text-align:left;
    vertical-align:top;
    line-height:1.6;
}
table.rate-table th{
    background:#f0f4f8;
    color:#1f3a5f;
    font-weight:700;
    white-space:nowrap;
}
table.rate-table td:last-child,
table.rate-table th:last-child{
    white-space:nowrap;
}
table.rate-table.kv th{width:35%}
table.rate-table.kv td{font-weight:700}
table.zeiritsu-table{width:50%}

/* 電話リンク: PCではクリック無効 (tel: はスマホのみ有効。sm.css側は何もしない) */
a.tel-link{pointer-events:none;cursor:default}

/* SPハンバーガーメニューはPCでは非表示 (実体は sm.css) */
#navTgl,
label.open,
label.close,
.sm_menu{display:none}

/* SP専用の改行はPCでは無効 */
br.sp-br{display:none}

/* ブログのSP用プルダウン(カテゴリ/アーカイブ)はPCでは非表示 (リスト版 .post-sidebar を表示) */
.post-sidebar-selects{display:none}

/* 黒字化支援ページ：青(#0096a5)基調をベージュ(#9c7f56)へ（.theme-beige でページ限定） */
.theme-beige .panel3box > li p:first-child{color:#000}
.theme-beige #service_image #txt ul li{color:#000}
.theme-beige .step-flow > li > h4{color:#9c7f56}
.theme-beige .step-flow > li:not(:last-child)::after{background:#9c7f56}
.theme-beige .base_midasi{border-left-color:#9c7f56}
.theme-beige #leftbtm_nav li.is-active a,
.theme-beige #leftbtm_nav li.is-active a span,
.theme-beige #leftbtm_nav ul li a span:hover{color:#9c7f56}
.step-flow > li > img.etax-ico{width:88px;height:88px}

/* STEPアイコン(SVG)をタイトル色で塗る（mask方式・SVG内の色に依存しない） */
.step-flow > li > .step-ico{
    display:block;
    width:44px;height:44px;
    margin:0 0 14px;
    background-color:#0096a5;
    -webkit-mask:var(--ico) no-repeat center / contain;
            mask:var(--ico) no-repeat center / contain;
}
.theme-beige .step-flow > li > .step-ico{background-color:#cc7206}

/* ============================================================
   .step-flow — 3列フローステップ (横ライン接続 + 折り返し)
   ============================================================ */
.step-flow{
    list-style:none;
    padding:0;
    margin:32px 0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    column-gap:40px;
    row-gap:56px;
}
/* 4ステップを1行に収めるバリエーション */
.step-flow.step-flow-4{
    grid-template-columns:repeat(4,1fr);
    column-gap:32px;
}
.step-flow > li{
    position:relative;
    padding:0;
    margin:0;
    min-width:0;
}
/* 接続線:最終要素 (5番) 以外すべてに引く。行末 (step3) は次行へ続く演出として右に伸ばす */
.step-flow > li:not(:last-child)::after{
    content:'';
    position:absolute;
    top:22px;            /* アイコンの中央 */
    left:60px;           /* アイコン右端から */
    right:-40px;         /* gap or 行外に向かって伸ばす */
    height:2px;
    background:#0096a5;
    z-index:0;
}
.step-flow > li > img{
    width:44px;
    height:44px;
    object-fit:contain;
    display:block;
    margin:0 0 14px;
    position:relative;
    z-index:1;
}
.step-flow > li > p:first-of-type{
    font-size:11px;
    color:#888;
    letter-spacing:.06em;
    margin:0 0 4px;
    line-height:1;
}
.step-flow > li > h4{
    font-size:17px;
    color:#0096a5;
    margin:0 0 10px;
    line-height:1.5;
    font-weight:700;
}
.step-flow > li > p:last-of-type{
    font-size:13px;
    line-height:1.85;
    color:black;
    margin:0;
}

/* ============================================================
   Sub-text
   ============================================================ */
#toptxt2{
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","MS P明朝",serif;
    font-size:26px;line-height:180%;padding:50px 0;
}
#toptxt2 span{background-color:#f2f2f2}

/* ============================================================
   Breadcrumb (legacy .pankz)
   ============================================================ */
.pankz{
    clear:both;border-top:1px dashed gray;
    margin:-10px auto -95px auto;
    font-size:11px;padding:5px 0;color:gray;
    position:relative;z-index:1000;
}
.pankz a{color:gray}

/* ============================================================
   About
   ============================================================ */
.topabout{
    clear:both;display:table;
    border-top:1px solid #9b9b9b;margin-top:100px;
}
.topabout dl dt,
.topabout dl dd{
    display:table-cell;vertical-align:top;text-align:left;
    padding:50px 0 150px 0;
}
.topabout dl dt.sec_title{width:20%}
.topabout dl dt.sec_title h3 {
    margin: 0 0 20px 0;
    padding: 0;
}
.topabout dl dt.sec_title h3 span{
    font-weight:normal;font-size:14px;color:black;
}
.topabout dl dd{width:40%}
.topabout dl dd img{
    width:90%;height:300px;float:right;
    object-fit:cover;
}
/**/
dl.bordertop dt,
dl.bordertop dd {
    border-top: 1px solid red;
}
/**/
.titleh3{
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","MS P明朝",serif;
    font-size:32px;line-height:150%;margin:0;padding:0;font-weight:normal;
}
.titleh2{
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","MS P明朝",serif;
    font-size:50px;line-height:150%;margin:0;padding:0;font-weight:normal !important;
}
.titleh4{
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","MS P明朝",serif;
    font-size:38px;line-height:150%;margin:0;padding:0;font-weight:normal;
}
.min_midasi{
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","MS P明朝",serif;
    font-size:24px;line-height:150%;margin:0;padding:0;font-weight:normal !important;
}
.bordtopno{border:none}
/**/
.topbaselay{
    clear:both;display:table;
    margin: 0 auto auto auto;
    border-top:1px solid #9b9b9b;
}
.topbaselay dl dt,
.topbaselay dl dd{
    display:table-cell;vertical-align:top;text-align:left;
    padding:50px 0 150px 0;
}
.topbaselay dl dt.sec_title,
.topbaselay dl dt.sec_title2{width:20%}
.topbaselay dl dt.sec_title h3 span{
    font-weight:normal;font-size:14px;color:black;
}
.topbaselay dl dt.sec_title2 h3{
font-family: "M PLUS Rounded 1c";
} 
.topbaselay dl dd{width:40%}
.topbaselay dl dd img{
    width:90%;height:300px;float:right;
    object-fit:cover;
}
/**/
.baselayout{
    clear:both;display:table;
    margin: -150px auto auto auto;
}
.baselayout dl dt,
.baselayout dl dd{
    display:table-cell;vertical-align:top;text-align:left;
    padding:50px 0 150px 0;
}
.baselayout dl dt.sec_title,
.baselayout dl dt.sec_title2{width:20%}
.baselayout dl dt.sec_title h3 span{
    font-weight:normal;font-size:14px;color:black;
}
.baselayout dl dt.sec_title2 h3{
font-family: "M PLUS Rounded 1c";
} 
.baselayout dl dd{width:40%}
.baselayout dl dd img{
    width:90%;height:300px;float:right;
    object-fit:cover;
}
/* .baselayout dl dt/dd の汎用padding(50px 0 150px)が入れ子の .twocol-cards に
   漏れて上書きするのを打ち消す（同詳細度・後定義で確実に勝たせる） */
.twocol-cards dl dt,
.twocol-cards dl dd{
    display:block;
    padding:16px 28px;
    width:50%;
    vertical-align:initial;
}
/**/
.baselayout2{
    clear:both;display:table;
    margin: -80px auto auto auto;
}
.baselayout2 dl dt,
.baselayout2 dl dd{
    display:table-cell;vertical-align:top;text-align:left;
    padding:50px 0 150px 0;
}
.baselayout2 dl dt.sec_title,
.baselayout2 dl dt.sec_title2{width:20%}
.baselayout2 dl dt.sec_title h3 span{
    font-weight:normal;font-size:14px;color:black;
}
.baselayout2 dl dt.sec_title2 h3{
font-family: "M PLUS Rounded 1c";
} 
.baselayout2 dl dd{width:40%}
.baselayout2 dl dd img{
    width:90%;height:300px;float:right;
    object-fit:cover;
    margin-top: 15px;
}
/**/
#about_messe{
    background-color: #f5f7fa;
    padding: 60px 100px;
    margin-bottom: 100px;
}
#about_messe h3{
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","MS P明朝",serif;
    font-size:20px;line-height:150%;margin:0;padding:0;font-weight:normal !important;
}
.base_midasi{
    background-color: #f5f7fa;
    padding: 5px 20px;
	border-radius: 0 5px 5px 0;
    font-weight: normal;
    border-left: 1px solid #0096a5;
}
/* ============================================================
   Mega Panel
   ============================================================ */
.mega-backdrop{
    position:fixed;inset:0;
    background:rgba(15,20,28,.35);
    opacity:0;pointer-events:none;z-index:90;will-change:opacity;
}
.mega-panel{
    position:fixed;top:calc(var(--header-h,90px) - 10px);left:0;width:100%;
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border-top:1px solid #eaeaea;
    box-shadow:0 14px 40px rgba(20,30,50,.08);
    padding:24px 0 28px;z-index:110;
    pointer-events:none;opacity:0;transform:translateY(-20px);
    visibility:hidden;will-change:transform,opacity;
    transition:top .35s cubic-bezier(.7,.1,.2,1);
}
.mega-panel.is-active{pointer-events:auto;visibility:visible}
.mega-inner{width:95%;max-width:1200px;margin:0 auto}
.mega-eyebrow{
    font-size:12px;color:black;
    margin:0 0 14px;letter-spacing:.08em;font-weight:500;
}
.mega-eyebrow span{color:#6b7280;margin-left:6px;letter-spacing:.05em}
.mega-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.mega-card{display:block;text-decoration:none;color:inherit;opacity:0;will-change:transform,opacity}
.mega-thumb{
    position:relative;aspect-ratio:16/10;
    background:var(--c1,#0096a5) var(--thumb) center / cover no-repeat;
    border-radius:8px;overflow:hidden;margin-bottom:10px;
    transition:transform .5s cubic-bezier(.2,.6,.2,1);
}
.mega-card:hover .mega-thumb{transform:translateY(-3px)}
.mega-thumb-no{
    position:absolute;left:10px;bottom:6px;
    color:rgba(255,255,255,.95);font-size:16px;font-weight:500;
    letter-spacing:.02em;z-index:1;
}
.mega-meta h3{
    font-size:13px;font-weight:600;margin:0 0 2px;
    color:#1a1a1a;transition:color .2s ease;line-height:1.4;
}
.mega-card:hover .mega-meta h3{color:#1f3a5f}
.mega-meta p{
    font-size:11px;color:black;
    margin:0;line-height:1.5;letter-spacing:.02em;
}

/* ============================================================
   Tax Schedule
   ============================================================ */
.taxschedule{
    --text:#111;--line:#9b9b9b;
    --corp:#b9dae4;--corp-strong:#50bdd6;
    --ind:#e5ded6;--ind-strong:#50bdd6;
    margin:0 auto;overflow-x:auto;color:var(--text);
    font-family:"Helvetica Neue","Yu Gothic","Hiragino Kaku Gothic ProN",Arial,sans-serif;
}
.taxschedule,
.taxschedule *,
.taxschedule *::before,
.taxschedule *::after{box-sizing:border-box}
.taxschedule .header{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.taxschedule .title{
    font-size:28px;font-weight:700;line-height:1.1;letter-spacing:.01em;
    display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
}
.taxschedule .title small{font-size:18px;font-weight:500}
.taxschedule .control-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:4px}
.taxschedule .control-label{font-size:14px;color:#444}
.taxschedule select{
    appearance:none;-webkit-appearance:none;-moz-appearance:none;
    height:34px;padding:0 34px 0 12px;border:1px solid #cfcfcf;
    background:
        linear-gradient(45deg,transparent 50%,#555 50%) calc(100% - 16px) 14px / 6px 6px no-repeat,
        linear-gradient(135deg,#555 50%,transparent 50%) calc(100% - 11px) 14px / 6px 6px no-repeat,
        #fff;
    font-size:14px;border-radius:4px;color:#222;cursor:pointer;
}
.taxschedule .note{font-size:14px;color:#333;white-space:nowrap}
.taxschedule .tag{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:56px;height:28px;padding:0 12px;
    font-size:14px;font-weight:700;line-height:1;border-radius:2px;
}
.taxschedule .tag.corp{background:#b9dae4;color:#364255}
.taxschedule .tag.ind{background:#e5ded6;color:#5a4043}
.taxschedule .divider{height:1px;background:var(--line);margin-bottom:28px}
.taxschedule .schedule{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:start}
.taxschedule .month{min-width:0}
.taxschedule .month-num{font-size:32px;font-weight:700;line-height:1;margin-bottom:20px}
.taxschedule .cards{display:flex;flex-direction:column;gap:8px}
.taxschedule .card{
    width:100%;padding:12px 10px 10px;min-height:130px;
    font-size:13px;line-height:1.45;color:#1f1f1f;
    white-space:pre-line;border-radius:6px;
}
.taxschedule .card.short{min-height:72px;padding-top:10px;padding-bottom:10px;font-size:12px;line-height:1.5}
.taxschedule .card.empty{min-height:0;padding:0;background:transparent}
.taxschedule .card.corp{background:var(--corp)}
.taxschedule .card.corp.strong{background:var(--corp-strong);color:#fff}
.taxschedule .card.ind{background:var(--ind)}
.taxschedule .card.ind.strong{background:var(--ind-strong);color:#fff}
.taxschedule .card-title{font-weight:500}
.taxschedule .card-sub{margin-top:8px;font-size:12px;line-height:1.5;opacity:.98;white-space:pre-line}
.taxschedule .card-notice{display:inline-block;margin-top:6px;font-size:10px;line-height:1.4;opacity:.85;font-style:normal}
.taxschedule .footnotes{margin-top:28px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:5px}
.taxschedule .footnotes p{margin:0;font-size:12px;color:#444;line-height:1.6}
.taxschedule .footnotes strong{color:#222}

/* Tablet for tax schedule */
@media (max-width:900px){
    .taxschedule{padding:18px 18px 32px}
    .taxschedule .month-num{font-size:26px;margin-bottom:14px}
    .taxschedule .card{font-size:11px}
    .taxschedule .title{font-size:22px}
}
/**/
ol#about_3point{
    margin: 0;
    padding: 0;
}
ol#about_3point li{
    list-style: none;
    margin: 0;
    padding: 50px 0;
}
ol#about_3point li div{
    display: table;
}
ol#about_3point li div dl dt{
    display: table-cell;
    vertical-align: top;
    text-align: left;
    margin: 0;
    padding: 0;
  font-family: "Roboto Mono", monospace;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
    font-size: 200px;
    width: 8%;
    line-height: 100%;
}
ol#about_3point li div dl dd{
    display: table-cell;
    vertical-align: top;
    text-align: left;
    margin: 0;
    padding: 0;
}
ol#about_3point li div dl dd h3{
    margin: 0;
    padding: 0;
    font-weight: normal;
    font-size: 14px;
    color: #0096a5;
}
ol#about_3point li div dl dd h4{
    margin: 0;
    padding: 20px 0;
    font-weight: normal;
    font-size: 44px;
    line-height: 130%;
}
ol#about_3point li div dl dd p{

}
ol#about_3point li div dl dd table{

}
ol#about_3point li div dl dd table th{

}
ol#about_3point li div dl dd table th img{
    width: 400px;
    height: 200px;
    margin-right: 20px;
}
ol#about_3point li div dl dd table td{
    vertical-align: bottom;
}
ol#about_3point li div dl dd ul.pointtag{
    margin: 0;
    padding: 0;
}
ol#about_3point li div dl dd ul.pointtag li{
    margin: 0;
    padding: 0;
}
ol#about_3point li div dl dd ul.pointtag li span{
    margin: 8px 0 0 0;
    padding: 7px 20px;
    font-size: 12px;
    background-color: #f5f7fa;
    border-radius: 100px;
}
ol#about_3point li img{
    border-radius: 5px;
}
#point2img{
    width: 300px;
    margin-left: 20px;
}
#point3img{
    width: 100%;
}
/**/
#leftbtm_nav{
    position: fixed;
    left: 4%;
    bottom: 5%;
}
#leftbtm_nav ul{
    margin: 0;
    padding: 0;
}
#leftbtm_nav ul li{
    margin: 0;
    padding: 5px 0;
    list-style: none;
}
#leftbtm_nav ul li a{
    text-decoration: none;
    color: black;
}
#leftbtm_nav ul li a span:hover{
    color: #0096a5;
    text-decoration: underline;
}
/**/
#service_image{
    margin: 20px 0 100px 0;
    padding: 0;
    position: relative;
    height: 500px;
}
#service_image img{
    width: 100%;
    height: 500px !important;
}
#service_image div#txt{
    position: absolute;
    bottom: 10px;
    left: 5%;
}
#service_image div#txt h3{

}
#service_image p{
}
.bord_txt1{
    border: 3px solid #f5f7fa;
    padding: 3% 5%;
    border-radius:8px;
}
/**/
ul.imglist_base{
    margin: 0;
    padding: 0;
}
ul.imglist_base li{
    margin: 0 0 -150px 0 !important;
    padding: 0;
    clear: both;
    list-style: none;
}
ul.imglist_base li div.table{
    display: table;
    margin: 0 !important;
}
ul.imglist_base li div.table dl dt{
    display: table-cell;
    vertical-align: top;
    text-align: left;
    width: 25%;
}
ul.imglist_base li div.table dl dt img{
    width: 87%;
    height: auto;
    border-radius:5px;
}
ul.imglist_base li div.table dl dd{
    display: table-cell;
    vertical-align: top;
    text-align: left;
}
ul.imglist_base li div.table dl dd p.txt_s{
    font-size: 12px;
    color: gray;
    margin: -7px 0 5px 0;
    padding: 0;
}
ul.imglist_base li div.table dl dd h3{
    font-family: "M PLUS Rounded 1c";
    font-weight: normal;
    font-size: 30px;
    margin: 0 0 30px 0;
    padding: 0;
}
ul.imglist_base li div.table dl dd p.txt_b{
    
}
/**/
.margtop100px{
    margin-top: 100px;
}
.post-sidebar section{
    background-color: #f5f7fa;
    padding: 20px;
    border-radius: 5px;
    width: 60%;
}
.post-sidebar section h2{
    font-size: 12px;
    margin: 0;
    padding: 0;
}
.post-sidebar section ul {
    font-size: 12px;
    margin: 0;
    padding: 0;
}
.post-sidebar section ul li{
    margin: 0 0 -5px 20px;
    padding: 0;
}
.post-sidebar section ul li a{
    padding: 0;
    margin: 0;
}
.post-sidebar section ul li a:hover{
    text-decoration: none;
}