@charset "UTF-8";
/* ============================================================
   sm.css | for max-width: 640px
   ※ pc.css とは独立。モバイル単体で完結する想定。
   ============================================================ */

/* ===== 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:"Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3",Osaka,"メイリオ",Meiryo,sans-serif;
    font-size:14px;line-height:1.8;font-weight:normal;
    letter-spacing:.04em;padding:0;margin:0;
    padding-top:60px;
    -webkit-text-size-adjust:100%;
}
form{margin:0;padding:0}
img{border:none;max-width:100%;height:auto;display:block}
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}

/* ===== Wrap ===== */
.wrap,.wrap2{width:90%;margin:0 auto;padding:0}

/* ===== Service grid (Hero .topbaselay) SP: 2列 ===== */
.topbaselay .sec_contents ul{
    list-style:none;padding:0;margin:16px 0 0;
    display:grid;grid-template-columns:repeat(2,1fr);gap:14px;
}
.topbaselay .sec_contents ul li{margin:0}
.topbaselay .sec_contents ul li a{
    display:block;text-decoration:none;
    color:#1f3a5f;font-weight:500;font-size:13px;
}
.topbaselay .sec_contents ul li img{
    width:100%;height:auto; /* 元画像(2:1)をトリミングせず全体表示 */
    display:block;margin-bottom:6px;
}

/* ===== Post list (blog 一覧用) SP: 画像左小・テキスト右 ===== */
.post-list{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    margin:0;
    padding:0;
}
.post-card{
    border:1px solid #e1e5ec;
    border-radius:6px;
    overflow:hidden;
    background:#fff;
}
.post-card > a{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:12px;
    align-items:center;
    text-decoration:none;
    color:inherit;
}
.post-card-cover{
    align-self:stretch;
    min-width:0;
}
.post-card-cover picture,
.post-card-cover img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    aspect-ratio:4/3;
    border-radius:8px;
}
.post-card-body{
    padding:12px 14px 12px 0;
    min-width:0;
}
.post-card-meta{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    font-size:10px;
    line-height:1;
    margin-bottom:4px;
}
.post-card-meta time{color:#6b7280}
.post-card-category{
    background:#f5f7fa;
    color:#0096a5;
    padding:2px 8px;
    border-radius:3px;
    font-size:10px;
}
.post-card-title{
    font-size:13px;
    color:#1f3a5f;
    margin:4px 0 4px;
    line-height:1.4;
    font-weight:600;
}
.post-card-excerpt{
    margin:0;
    padding:0;
    color:black;
    font-size:11px;
    line-height:1.6;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
}

/* ===== Blog list (NewsList .topnews) SP: 2列 ===== */
.topnews .sec_contents ul{
    list-style:none;padding:0;margin:16px 0 0;
    display:grid;grid-template-columns:repeat(2,1fr);gap:16px;
}
.topnews .sec_contents ul li{margin:0}
.topnews .sec_contents ul li a{
    display:block;text-decoration:none;color:inherit;
}
.topnews .sec_contents ul li img{
    width:100%;height:auto;aspect-ratio:16/9;
    object-fit:cover;display:block;border-radius:5px;margin-bottom:8px;
}
.topnews .sec_contents .news-meta{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    font-size:11px;line-height:1;margin-top:6px;
}
.topnews .sec_contents .news-meta time{color:#6b7280}
.topnews .sec_contents .news-cat{
    background:#f5f7fa;color:#0096a5;
    padding:2px 8px;border-radius:3px;font-size:10px;
}
.topnews .sec_contents .news-title{
    font-size:13px;font-weight:600;color:#1f3a5f;
    margin:6px 0 0;padding:0;line-height:1.5;
}
.topnews .news-more{margin:20px 0 0;text-align:right}
.topnews .news-more a{color:#0096a5;text-decoration:none;font-weight:600;font-size:12px}

/* ===== Voice grid (Hero .topbaselay ol / Voice ページ .topabout ol) SP: 1列 ===== */
.topbaselay .sec_contents ol,
.topabout .sec_contents ol{
    list-style:none;padding:0;margin:16px 0 0;
    display:grid;grid-template-columns:1fr;gap:16px;
}
.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;
}
.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:8px;
}
.topbaselay .sec_contents ol li h4,
.topabout .sec_contents ol li h4{
    font-size:14px;font-weight:600;color:#1f3a5f;
    margin:0 0 6px;line-height:1.6;
}
.topbaselay .sec_contents ol li p,
.topabout .sec_contents ol li p{
    margin:0;padding:0;color:#6b7280;font-size:11px;
}

/* ===== Service detail hero image + tags panel (SP) ===== */
#service_image picture img{
    width:100%;
    height:auto; /* 固定240px+coverだと見切れるため全体表示 */
    display:block;
    border-radius:6px;
}
#service_image #txt{
    margin:16px 0 12px;
}
#service_image #txt p{
    margin:8px 0 0;
    font-size:14px;
}
#service_image #txt ul{
    list-style:none;padding:0;margin:12px 0 0;
    display:flex;flex-wrap:wrap;gap:6px;
}
#service_image #txt ul li{
    background:#f5f7fa;
    padding:6px 12px;
    border-radius:4px;
    font-size:11px;
    color:#1f3a5f;
    font-weight:500;
    line-height:1.4;
}

/* ===== .panel4box / .panel3box (SP: 1列) ===== */
.panel4box,
.panel3box{
    list-style:none;padding:0;margin:20px 0;
    display:grid;grid-template-columns:1fr;gap:12px;
}
.panel4box > li,
.panel3box > li{
    background:#f5f7fa;
    padding:18px 16px;
    border-radius:6px;
}
.panel4box > li p:first-child,
.panel3box > li p:first-child{
    margin:0 0 10px;
    padding:3px 10px;
    display:inline-block;
    background:#fff;
    color:#0096a5;
    border-radius:4px;
    font-size:10px;
    font-weight:600;
}
.panel4box > li h4,
.panel3box > li h4{
    font-size:14px;
    color:#1f3a5f;
    margin:0 0 8px;
    line-height:1.5;
    font-weight:700;
}
.panel4box > li p:not(:first-child),
.panel3box > li p:not(:first-child){
    margin:0 0 8px;
    font-size:12px;
    line-height:1.7;
    color:black;
}
.panel4box > li p:not(:first-child):last-child,
.panel3box > li p:not(:first-child):last-child{margin-bottom:0}

/* ===== .faq_panel (SP: 3列 × 2行) ===== */
.faq_panel{
    list-style:none;padding:0;margin:18px 0;
    display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
}
.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:14px 6px;
    border-radius:6px;
    min-height:90px;
    box-sizing:border-box;
}
.faq_panel > li > a img{
    width:30px;
    height:30px;
    object-fit:contain;
    display:none; /* アイコン一時非表示 (戻すときは display:block) */
    margin:0 0 8px;
}
.faq_panel > li > a p{
    margin:0;
    padding:0;
    font-size:11px;
    font-weight:600;
    line-height:1.3;
    color:#1f3a5f;
}

/* ===== .imglist01 (SP) ===== */
.imglist01{
    list-style:none;padding:0;margin:16px 0;
}
.imglist01 > li{
    padding:14px 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:80px 1fr;
    gap:14px;
    align-items:start;
    margin:0;
    padding:0;
}
.imglist01 li dl dt{
    display:block;
    width:80px;
    margin:0;padding:0;
    vertical-align:initial;
}
.imglist01 li dl dt img{
    width:80px;
    height:80px;
    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:8px;
    font-size:13px;
    color:#1f3a5f;
    margin:0 0 6px;
    line-height:1.5;
    font-weight:700;
}
.imglist01 li dl dd h4 img{
    width:16px;
    height:16px;
    flex-shrink:0;
    display:block;
    float:none;
    object-fit:contain;
}
.imglist01 li dl dd p{
    margin:0;
    font-size:12px;
    line-height:1.7;
    color:black;
}

/* ===== ul.imglist_base (SP: 画像上・テキスト下の縦積み。PCの2カラム+重ねレイアウトを解除) ===== */
ul.imglist_base{margin:20px 0;padding:0}
ul.imglist_base li{
    margin:0 0 32px;
    padding:0;
    list-style:none;
    clear:both;
}
ul.imglist_base li div.table{display:block;margin:0}
ul.imglist_base li div.table dl{margin:0}
ul.imglist_base li div.table dl dt,
ul.imglist_base li div.table dl dd{
    display:block;
    width:100%;
    margin:0;
    padding:0;
    box-sizing:border-box;
}
ul.imglist_base li div.table dl dt img{
    width:100%;
    height:auto;
    border-radius:6px;
    display:block;
}
ul.imglist_base li div.table dl dd{padding:12px 0 0}
ul.imglist_base li div.table dl dd p.txt_s{
    font-size:11px;
    color:gray;
    margin:0 0 4px;
    padding:0;
}
ul.imglist_base li div.table dl dd h3{
    font-family:"M PLUS Rounded 1c";
    font-weight:normal;
    font-size:20px;
    margin:0 0 10px;
    padding:0;
}
ul.imglist_base li div.table dl dd p.txt_b{
    margin:0;
    font-size:14px;
    line-height:1.9;
}

/* ===== 表 .rate-table (SP: 全幅・罫線あり) ===== */
table.rate-table{
    border-collapse:collapse;
    width:100%;
    margin:12px 0 20px;
    font-size:13px;
    letter-spacing:0;
}
table.rate-table th,
table.rate-table td{
    border:1px solid #d1d9e0;
    padding:8px 10px;
    text-align:left;
    vertical-align:top;
    line-height:1.6;
}
table.rate-table th{
    background:#f0f4f8;
    color:#1f3a5f;
    font-weight:700;
}
table.rate-table.kv th{width:35%}
table.rate-table.kv td{font-weight:700}

/* ===== .twocol-cards (SP: 1列に積む) ===== */
.twocol-cards{margin:16px 0}
.twocol-cards dl{
    display:flex;
    flex-direction:column;
    gap:14px;
    margin:0;
    padding:0;
}
.twocol-cards dl dt,
.twocol-cards dl dd{
    display:block;
    margin:0;
    padding:18px 20px;
    width:100%;
    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:14px;
    font-weight:700;
    color:#1f3a5f;
    margin:0 0 12px;
    padding-bottom:10px;
    border-bottom:1px solid #e1e5ec;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    line-height:1.5;
}
.twocol-cards dl dt h4::before{content:'⚠';font-size:16px}
.twocol-cards dl dd h4::before{content:'👍';font-size:16px}
.twocol-cards dl dt ul,
.twocol-cards dl dd ul{
    list-style:disc;
    padding:0 0 0 22px;
    margin:0;
}
.twocol-cards dl dt ul li,
.twocol-cards dl dd ul li{
    padding:4px 0;
    font-size:13px;
    line-height:1.7;
    color:#1f2937;
}
.twocol-cards .hl-yellow{
    background:#fff7c2;
    padding:1px 6px;
    border-radius:3px;
    font-weight:500;
    color:#7c5e00;
    font-size:.95em;
}
.twocol-cards .hl-blue{
    background:#e0eaff;
    padding:1px 6px;
    border-radius:3px;
    color:#0096a5;
    font-weight:500;
    font-size:.95em;
}

/* ===== .step-flow (SP: 1列縦積み・接続線なし) ===== */
.step-flow{
    list-style:none;
    padding:0;
    margin:20px 0;
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
}
.step-flow > li{
    position:relative;
    padding:0;margin:0;
    min-width:0;
}
.step-flow > li::after{display:none}
.step-flow > li > img{
    width:36px;
    height:36px;
    object-fit:contain;
    display:block;
    margin:0 0 10px;
}
.step-flow > li > .step-ico{
    display:block;
    width:36px;height:36px;
    margin:0 0 10px;
    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}
/* 黒字化支援ページ (theme-beige) の配色をPCと同期 */
.theme-beige .step-flow > li > h4{color:#9c7f56}
.theme-beige .panel3box > li p:first-child{color:#000}
.theme-beige #service_image #txt ul li{color:#000}
.theme-beige .base_midasi{border-left-color:#9c7f56}
.step-flow > li > p:first-of-type{
    font-size:10px;
    color:#888;
    letter-spacing:.06em;
    margin:0 0 3px;
    line-height:1;
}
.step-flow > li > h4{
    font-size:15px;
    color:#0096a5;
    margin:0 0 8px;
    line-height:1.5;
    font-weight:700;
}
.step-flow > li > p:last-of-type{
    font-size:12px;
    line-height:1.75;
    color:black;
    margin:0;
}

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

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

.titleh2{
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
    font-size:26px;line-height:1.5;
    margin:0 0 12px;padding:0;font-weight:normal;
}
.bordtopno{border:none}

/* ===== Breadcrumb (legacy .pankz) ===== */
.pankz{
    clear:both;border-top:1px dashed gray;
    /* 下の実線(.topabout margin-top:40px と相殺)との余白が上下10pxずつで均等になる設定 */
    margin:16px auto -40px auto;
    font-size:10px;padding:10px 0;color:gray;
    position:relative;z-index:1000;
}
.pankz a{color:gray}

/* ============================================================
   Header (mobile)
   ============================================================ */
header{
    position:fixed;top:0;left:0;width:100%;height:60px;
    background:rgba(255,255,255,.8);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    z-index:100;box-sizing:border-box;
}
header .wrap{
    width:100%;height:100%;
    padding:0 4%;box-sizing:border-box;
    display:flex;align-items:center;
}
header dl{
    display:flex;width:100%;margin:0;padding:0;
    align-items:center;justify-content:space-between;
}
header dt,header dd{display:block;margin:0;padding:0}

/* PC nav, tel, mail are hidden */
header nav,
header p#tel,
header p#mail{display:none}

/* Logo (mobile) */
#logo{display:flex;align-items:center}
#logo .logo-link{display:flex;align-items:center;text-decoration:none;color:inherit}
#logo .logo-link h1{color:#000}
#logo .logo-link h1 span{color:#000}
#logo img{width:32px;height:32px;float:none;margin:0 8px 0 0}
#logo h1{
    font-size:14px;margin:0;padding:0;float:none;
    line-height:1.3;font-weight:bold;
}
#logo h1 span{
    font-size:10px;font-weight:normal;color:#666;
    display:block;letter-spacing:0;margin-top:2px;
}

/* ============================================================
   Hamburger menu (toggle via #navTgl checkbox)
   ============================================================ */
#navTgl{display:none}
label.open,label.close{
    position:fixed;top:14px;right:14px;
    width:32px;height:32px;
    cursor:pointer;z-index:10000;
}
label.open{
    background:transparent;
    display:flex;align-items:center;justify-content:center;
}
label.open span,
label.open span::before,
label.open span::after{
    content:"";position:absolute;
    width:24px;height:2px;background:#000;
    transition:transform .3s ease,top .3s ease,opacity .2s ease;
}
label.open span{top:50%;margin-top:-1px}
label.open span::before{top:-8px;left:0}
label.open span::after{top:8px;left:0}
/* アイコン下の "MENU" 文言 (開いている間は "CLOSE") */
label.open::after{
    content:"MENU";
    position:absolute;
    top:100%;left:50%;
    transform:translateX(-50%);
    font-size:9px;
    letter-spacing:.08em;
    color:#000;
    line-height:1;
}
#navTgl:checked ~ label.open::after{content:"CLOSE"}
label.close{display:none}

#navTgl:checked ~ label.open span{background:transparent}
#navTgl:checked ~ label.open span::before{top:0;transform:rotate(45deg)}
#navTgl:checked ~ label.open span::after{top:0;transform:rotate(-45deg)}

/* Slide-in nav panel */
.sm_menu{
    position:fixed;top:0;right:0;
    width:100%;max-width:320px;height:100vh;
    background:#fff;z-index:9999;
    transform:translateX(100%);
    transition:transform .35s cubic-bezier(.7,.1,.2,1);
    overflow-y:auto;padding:56px 24px 40px;
    box-sizing:border-box;
    box-shadow:-12px 0 32px rgba(0,0,0,.08);
}
#navTgl:checked ~ .sm_menu{transform:translateX(0)}

.sm_menu ol,
.sm_menu ul{list-style:none;margin:0;padding:0}
.sm_menu li{
    border-bottom:1px solid #eee;
}
.sm_menu li a{
    display:block;padding:14px 4px;
    color:#1a1a1a;text-decoration:none;
    font-size:15px;font-weight:500;
}
.sm_menu li a i{margin-right:8px;color:#1f3a5f}

/* お問い合せ・電話のCTAボタン */
.sm_menu li.sm_menu-cta{border-bottom:none;margin-top:16px}
.sm_menu .sm_menu-btn{
    display:block;text-align:center;
    padding:13px 16px;border-radius:100px;
    font-size:15px;font-weight:600;
    line-height:1.4;
}
.sm_menu .sm_menu-btn-mail{background:#0096a5;color:#fff}
.sm_menu .sm_menu-btn-mail i{color:#fff}
.sm_menu .sm_menu-btn-tel{
    background:#fff;color:#0096a5;
    border:2px solid #0096a5;
}
.sm_menu .sm_menu-btn-tel i{color:#0096a5}

/* 税務サービスのグループ見出しとサブリンク */
.sm_menu .sm_menu-group{padding:0}
.sm_menu .sm_menu-label{
    display:block;padding:14px 4px 4px;
    font-size:12px;color:#888;
}
.sm_menu .sm_menu-sub li{border-bottom:none}
.sm_menu .sm_menu-sub li a{
    padding:10px 4px 10px 20px;
    font-size:14px;font-weight:normal;
}

#hung_menu{display:none}

/* ページ内アンカーナビ (PC左下固定) はスマホでは非表示 */
#leftbtm_nav{display:none}

/* ===== Blog: 記事タイトル (SP) ===== */
.post-detail-header h1{font-size:20px}

/* ===== Blog: SPはリスト版サイドバー非表示、タイトル右横にプルダウン ===== */
.post-sidebar{display:none}
dt.sec_title:has(.post-sidebar-selects){
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px 10px;
}
dt.sec_title:has(.post-sidebar-selects) h3{flex:0 0 auto}
.post-sidebar-selects{
    display:flex;
    gap:8px;
    margin-left:auto;
}
.post-sidebar-selects select{
    font-size:12px;
    padding:7px 8px;
    border:1px solid #ccd4de;
    border-radius:4px;
    background:#fff;
    color:#1f3a5f;
    max-width:130px;
}

/* ページトップボタンはハンバーガーメニュー(z:150/200)より下に */
.pagetop{z-index:120}

/* ============================================================
   Hero
   ============================================================ */
#top_h_txt{
    padding:30px 0 40px 0;
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
#top_h_txt h2{
    font-weight:normal;font-size:18px;
    margin:0 0 6px 0;padding:0;line-height:1.4;
}
#top_h_txt h3{
    font-weight:normal;font-size:32px;
    margin:0 0 16px 0;padding:0;line-height:1.25;
}
#top_h_txt h3 span{font-size:24px}
#top_h_txt img,
#top_h_txt video{
    width:100%;height:auto;
    aspect-ratio:900/350;object-fit:cover;display:block;
}

/* ============================================================
   Sub-text
   ============================================================ */
#toptxt2{
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
    font-size:14px;line-height:1.9;padding:30px 0;
}
#toptxt2 span{background-color:#f2f2f2}
#toptxt2 br{display:none}

/* ============================================================
   About
   ============================================================ */
.topabout,
.topbaselay{
    clear:both;display:block;
    border-top:1px solid #9b9b9b;
    margin-top:40px;padding-top:30px;
}
.topbaselay dl{display:block}
.topbaselay dl dt,
.topbaselay dl dd,

.topabout dl{display:block}
.topabout dl dt,
.topabout dl dd{
    display:block;width:100%;
    padding:0 0 24px 0;
    margin: 0;
    font-weight: normal;
}
.topbaselay dl dt.sec_title{padding-bottom:8px}
.topbaselay dl dt.sec_title h3{font-size:18px;margin:0}
.topbaselay dl dt.sec_title h3 span,

.topabout dl dt.sec_title{padding-bottom:8px}
.topabout dl dt.sec_title h3{font-size:18px;margin:0}
.topabout dl dt.sec_title h3 span{
    font-weight:normal;font-size:12px;color:black;
    display:block;margin-top:2px;
}
.topabout dl dd img,
.topbaselay dl dd img{
    width:100%;height:auto;float:none;
    aspect-ratio:3/2;object-fit:cover;
}
.titleh3{
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
    font-size:22px;line-height:1.5;
    margin:0 0 12px;padding:0;font-weight:normal;
}

/* ============================================================
   Mega panel: hide on mobile (interaction is hover-only)
   ============================================================ */
.mega-panel,
.mega-backdrop{display:none}

/* ============================================================
   Tax Schedule (mobile single column)
   ============================================================ */
.taxschedule{
    --text:#111;--line:#9b9b9b;
    --corp:#b9dae4;--corp-strong:#50bdd6;
    --ind:#e5ded6;--ind-strong:#50bdd6;
    margin:0 auto;color:var(--text);
    font-family:"Helvetica Neue","Yu Gothic","Hiragino Kaku Gothic ProN",Arial,sans-serif;
    padding:18px 0 32px;
}
.taxschedule,
.taxschedule *,
.taxschedule *::before,
.taxschedule *::after{box-sizing:border-box}
.taxschedule .header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.taxschedule .title{
    font-size:22px;font-weight:700;line-height:1.1;
    display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
}
.taxschedule .title small{font-size:14px;font-weight:500}
.taxschedule .control-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.taxschedule .control-label{font-size:13px;color:#444}
.taxschedule select{
    appearance:none;-webkit-appearance:none;-moz-appearance:none;
    height:32px;padding:0 30px 0 10px;border:1px solid #cfcfcf;
    background:
        linear-gradient(45deg,transparent 50%,#555 50%) calc(100% - 14px) 13px / 6px 6px no-repeat,
        linear-gradient(135deg,#555 50%,transparent 50%) calc(100% - 9px) 13px / 6px 6px no-repeat,
        #fff;
    font-size:13px;border-radius:4px;color:#222;cursor:pointer;
}
.taxschedule .note{font-size:12px;color:#333}
.taxschedule .tag{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:48px;height:24px;padding:0 10px;
    font-size:12px;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:20px}

.taxschedule .schedule{
    display:grid;grid-template-columns:1fr;
    gap:24px;align-items:start;
}
.taxschedule .month{
    display:grid;grid-template-columns:48px 1fr;
    align-items:start;gap:12px;
}
.taxschedule .month-num{
    font-size:28px;font-weight:700;line-height:1;
    padding-top:10px;text-align:center;margin:0;
}
.taxschedule .cards{display:flex;flex-direction:column;gap:8px}
.taxschedule .card{
    width:100%;padding:12px 10px 10px;
    font-size:13px;line-height:1.45;color:#1f1f1f;
    white-space:pre-line;border-radius:6px;
    min-height:unset;
}
.taxschedule .card.short{min-height:unset;padding: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;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:20px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.taxschedule .footnotes p{margin:0;font-size:11px;color:#444;line-height:1.7}
.taxschedule .footnotes strong{color:#222;display:block;margin-bottom:2px}
