/* bousai-store - 防災用品 自社通販テーマ
   Mobile First / CSS variables are set from 管理画面 (bstore_custom_css) */

/* === Reset & Base === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
body{font-family:var(--bs-font);font-size:16px;line-height:1.8;color:var(--bs-text);background:var(--bs-bg);-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 0}
img{max-width:100%;height:auto;display:block}
a{color:var(--bs-link);text-decoration:none;transition:color .2s ease,background-color .2s ease,border-color .2s ease,opacity .2s ease}
a:hover{color:var(--bs-link-hover)}
ul,ol{list-style:none}
h1,h2,h3,h4,h5,h6{line-height:1.45;font-weight:700;overflow-wrap:anywhere}
button{font-family:inherit}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.sp-only{display:block}
.pc-only{display:none}

/* === Layout === */
.bs-container{max-width:1120px;margin:0 auto;padding:0 16px}
.bs-container-narrow{max-width:860px}
.bs-section{padding:56px 0}
.bs-section-alt{background:var(--bs-sub-bg)}
.bs-section-head{margin-bottom:32px}
.bs-section-title{font-size:22px;font-weight:900;letter-spacing:.01em;padding-left:14px;border-left:5px solid var(--bs-main);line-height:1.35}
.bs-section-lead{margin-top:14px;font-size:15px;color:var(--bs-sub-text);line-height:1.9}
.bs-sub-title{font-size:19px;font-weight:800;margin:40px 0 18px;padding-bottom:10px;border-bottom:2px solid var(--bs-main)}
.bs-section-more{text-align:center;margin-top:32px}
.bs-cols-1,.bs-cols-2,.bs-cols-3,.bs-cols-4{display:grid;grid-template-columns:1fr;gap:16px}

/* === Buttons === */
.bs-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;font-size:15px;font-weight:700;line-height:1.3;border-radius:var(--bs-radius);text-align:center;cursor:pointer;border:2px solid transparent;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .15s ease,box-shadow .2s ease;text-decoration:none;min-height:48px}
.bs-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.12)}
.bs-btn-1{background:var(--bs-cta);color:var(--bs-cta-text);border-color:var(--bs-cta)}
.bs-btn-1:hover{background:var(--bs-cta-hover);border-color:var(--bs-cta-hover);color:var(--bs-cta-text)}
.bs-btn-2{background:var(--bs-cta2);color:var(--bs-cta-text);border-color:var(--bs-cta2)}
.bs-btn-2:hover{background:var(--bs-cta2-hover);border-color:var(--bs-cta2-hover);color:var(--bs-cta-text)}
.bs-btn-outline{background:#fff;color:var(--bs-main);border-color:var(--bs-main)}
.bs-btn-outline:hover{background:var(--bs-main);color:#fff}
.bs-btn-lg{padding:18px 32px;font-size:17px;min-height:58px;width:100%}
.bs-cta-pair{display:flex;flex-direction:column;gap:12px;margin:20px 0}
.bs-cta-pair .bs-btn{width:100%}
.bs-cta-wrap{text-align:center;margin:32px 0}
.bs-cta-wrap .bs-btn-lg{width:auto;min-width:280px}
.bs-cta-micro{display:block;font-size:13px;color:var(--bs-accent);font-weight:700;margin-bottom:8px}
.bs-link-more{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--bs-main);border-bottom:1px solid currentColor;padding-bottom:1px}
.bs-link-more::after{content:"";width:6px;height:6px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);margin-left:2px}
.bs-link-more:hover{color:var(--bs-accent)}

/* === Lists === */
.bs-list-check li,.bs-list-cross li{position:relative;padding-left:28px;margin-bottom:8px;font-size:15px;line-height:1.7}
.bs-list-check li::before{content:"";position:absolute;left:0;top:5px;width:18px;height:18px;border-radius:50%;background:var(--bs-main)}
.bs-list-check li::after{content:"";position:absolute;left:6px;top:9px;width:5px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}
.bs-list-cross li::before{content:"";position:absolute;left:0;top:5px;width:18px;height:18px;border-radius:50%;background:var(--bs-sub-text)}
.bs-list-cross li::after{content:"";position:absolute;left:5px;top:13px;width:8px;height:2px;background:#fff}

/* === Header === */
.bs-header{background:var(--bs-header-bg);border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:100}
.bs-header-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;max-width:1120px;margin:0 auto;padding:10px 16px;min-height:60px;gap:8px}
.bs-logo img{max-height:40px;width:auto}
.bs-logo-text{font-size:18px;font-weight:900;color:var(--bs-main);letter-spacing:.02em;white-space:nowrap}
.bs-logo-link{display:inline-flex;align-items:center;color:var(--bs-main)}
.bs-header-right{display:flex;align-items:center;gap:10px}
.bs-header-tel{display:none;flex-direction:column;align-items:flex-end;line-height:1.25;color:var(--bs-main)}
.bs-header-tel-num{font-size:20px;font-weight:900;letter-spacing:.02em;white-space:nowrap}
.bs-header-tel-hours{font-size:11px;color:var(--bs-sub-text)}
.bs-header-cta{display:none;padding:10px 18px;font-size:14px;min-height:40px;white-space:nowrap}
.bs-menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:1px solid #e5e7eb;border-radius:var(--bs-radius);cursor:pointer;padding:0 10px}
.bs-menu-toggle span{display:block;width:22px;height:2px;background:var(--bs-text);transition:transform .3s ease,opacity .3s ease}
.bs-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.bs-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.bs-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.bs-nav{display:none;flex-basis:100%;background:var(--bs-header-bg);border-top:1px solid #e5e7eb;padding:8px 0 12px}
.bs-nav.is-open{display:block}
.bs-nav-list{display:flex;flex-direction:column}
.bs-nav-list li a{display:block;padding:12px 8px;color:var(--bs-text);font-size:15px;font-weight:500;border-bottom:1px solid #f0f0f0}
.bs-nav-list li a:hover{color:var(--bs-accent)}

/* === Hero === */
.bs-section.bs-section-hero{padding:0}
.bs-hero{position:relative;overflow:hidden}
.bs-hero-inner{display:flex;flex-direction:column;gap:24px;padding-top:36px;padding-bottom:40px}
.bs-hero-label{display:inline-block;font-size:13px;font-weight:700;color:var(--bs-accent);border:1px solid var(--bs-accent);padding:4px 12px;border-radius:999px;margin-bottom:14px;line-height:1.4}
.bs-hero-catch{font-size:24px;font-weight:900;line-height:1.35;letter-spacing:.01em;color:var(--bs-main)}
.bs-hero-sub{margin-top:14px;font-size:15px;color:var(--bs-sub-text);line-height:1.9}
.bs-hero-points{margin-top:18px;display:grid;gap:8px}
.bs-hero-points li{position:relative;padding-left:26px;font-size:14px;font-weight:700;line-height:1.6}
.bs-hero-points li::before{content:"";position:absolute;left:0;top:5px;width:16px;height:16px;border-radius:50%;background:var(--bs-accent)}
.bs-hero-points li::after{content:"";position:absolute;left:5px;top:8px;width:5px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}
.bs-hero-btns{margin:24px 0 0}
.bs-hero-note{margin-top:12px;font-size:12px;color:var(--bs-sub-text);line-height:1.7}
.bs-hero-visual{max-width:320px;margin:0 auto;width:100%}
.bs-hero-visual img{width:100%;border-radius:var(--bs-radius);border:1px solid #e5e7eb}
.bs-hero-bgimg{position:absolute;inset:0;z-index:0}
.bs-hero-bgimg img{width:100%;height:100%;object-fit:cover}
.bs-hero-bg{min-height:420px;display:flex;align-items:center}
.bs-hero-bg .bs-hero-inner{position:relative;z-index:1;width:100%}
.bs-hero-bg .bs-hero-text{position:relative;z-index:2;color:#fff;background:rgba(20,28,45,.72);padding:28px 20px;border-radius:var(--bs-radius)}
.bs-hero-bg .bs-hero-catch,.bs-hero-bg .bs-hero-sub,.bs-hero-bg .bs-hero-note,.bs-hero-bg .bs-hero-points li{color:#fff}
.bs-hero-bg .bs-hero-label{color:#fff;border-color:#fff}

/* === Trust bar === */
.bs-section.bs-section-trust{padding:0;background:var(--bs-main);color:#fff}
.bs-trust-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0}
.bs-trust-item{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 8px;border-bottom:1px solid rgba(255,255,255,.15)}
.bs-trust-item:nth-child(odd){border-right:1px solid rgba(255,255,255,.15)}
.bs-trust-num{font-size:30px;font-weight:900;line-height:1.1;letter-spacing:.01em}
.bs-trust-unit{font-size:14px;font-weight:700;margin-left:2px}
.bs-trust-label{font-size:12px;margin-top:4px;opacity:.85}

/* === Problem === */
.bs-problem-grid{margin-bottom:36px}
.bs-problem-item{background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);padding:22px 20px 20px;position:relative}
.bs-section-alt .bs-problem-item{border-color:#e0e3e8}
.bs-problem-num{font-size:13px;font-weight:900;color:var(--bs-accent);letter-spacing:.08em}
.bs-problem-title{font-size:17px;margin:6px 0 8px}
.bs-problem-text{font-size:14px;color:var(--bs-sub-text);line-height:1.8}
.bs-ba{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
.bs-ba-col{background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);padding:20px;position:relative}
.bs-ba-after{border:2px solid var(--bs-main)}
.bs-ba-tag{display:inline-block;font-size:12px;font-weight:900;letter-spacing:.08em;padding:3px 10px;border-radius:3px;background:var(--bs-sub-text);color:#fff;margin-bottom:12px}
.bs-ba-after .bs-ba-tag{background:var(--bs-main)}
.bs-ba-img{border-radius:calc(var(--bs-radius) - 2px);overflow:hidden;margin-bottom:14px;aspect-ratio:4/3;background:var(--bs-sub-bg)}
.bs-ba-img img{width:100%;height:100%;object-fit:cover}
.bs-ba-title{font-size:17px;margin-bottom:10px}
.bs-ba-arrow{display:flex;justify-content:center;color:var(--bs-main);transform:rotate(90deg)}

/* === Targets === */
.bs-target-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.bs-target-tab{font-size:13px;font-weight:700;padding:8px 14px;border:1px solid var(--bs-main);border-radius:999px;color:var(--bs-main);background:#fff;line-height:1.4}
.bs-target-tab:hover{background:var(--bs-main);color:#fff}
.bs-target-list{display:grid;gap:20px}
.bs-target{background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);overflow:hidden;display:flex;flex-direction:column}
.bs-target-thumb{aspect-ratio:16/9;background:var(--bs-sub-bg)}
.bs-target-thumb img{width:100%;height:100%;object-fit:cover}
.bs-target-body{padding:22px 20px 24px;display:flex;flex-direction:column;flex:1}
.bs-target-label{font-size:12px;font-weight:700;color:var(--bs-accent);margin-bottom:6px;letter-spacing:.02em}
.bs-target-title{font-size:20px;line-height:1.4;margin-bottom:12px;color:var(--bs-main)}
.bs-target-summary{font-size:14px;color:var(--bs-sub-text);line-height:1.85;margin-bottom:14px}
.bs-target-points{margin-bottom:18px}
.bs-target-points li{font-size:14px}
.bs-target-actions{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:14px}
.bs-target-actions .bs-btn{width:100%}

/* === Product === */
.bs-product{display:grid;grid-template-columns:1fr;gap:28px}
.bs-product-main-img{border:1px solid #e5e7eb;border-radius:var(--bs-radius);overflow:hidden;background:#fff;aspect-ratio:1/1}
.bs-product-main-img img{width:100%;height:100%;object-fit:contain}
.bs-placeholder{display:flex;align-items:center;justify-content:center;text-align:center;background:repeating-linear-gradient(45deg,#f4f5f7,#f4f5f7 10px,#eceef2 10px,#eceef2 20px);color:var(--bs-sub-text);font-size:14px;padding:20px}
.bs-product-nomedia{grid-template-columns:1fr!important}
.bs-product-nomedia .bs-product-info .bs-cta-pair{flex-direction:row}
.bs-product-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px}
.bs-product-thumb{display:block;width:100%;aspect-ratio:1/1;border:2px solid #e5e7eb;border-radius:calc(var(--bs-radius) - 2px);overflow:hidden;background:#fff;cursor:pointer;padding:0}
.bs-product-thumb img{width:100%;height:100%;object-fit:cover}
.bs-product-thumb.is-active{border-color:var(--bs-main)}
.bs-product-model{font-size:13px;color:var(--bs-sub-text)}
.bs-product-name{font-size:24px;font-weight:900;line-height:1.35;margin:4px 0 10px;color:var(--bs-main)}
.bs-product-catch{font-size:16px;font-weight:700;margin-bottom:14px}
.bs-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:10px 0 14px}
.bs-price-main{font-size:34px;font-weight:900;color:var(--bs-price);line-height:1.1;letter-spacing:.01em}
.bs-price-yen{font-size:22px;margin-right:2px}
.bs-price-tax{font-size:13px;font-weight:700;color:var(--bs-sub-text);margin-left:4px}
.bs-price-incl{font-size:15px;font-weight:700;color:var(--bs-text)}
.bs-price-note{flex-basis:100%;font-size:12px;color:var(--bs-sub-text)}
.bs-product-meta{display:grid;gap:6px;margin:0 0 16px;font-size:14px}
.bs-product-meta div{display:flex;gap:10px;border-bottom:1px dashed #e5e7eb;padding-bottom:6px}
.bs-product-meta dt{flex:0 0 60px;font-weight:700;color:var(--bs-sub-text)}
.bs-product-lead{font-size:15px;line-height:1.9}
.bs-product-lead p{margin-bottom:10px}
.bs-link-doc{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--bs-main);border:1px solid var(--bs-main);padding:10px 16px;border-radius:var(--bs-radius);background:#fff}
.bs-link-doc:hover{background:var(--bs-main);color:#fff}
.bs-feature-list{display:grid;grid-template-columns:1fr;gap:14px}
.bs-feature{background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);padding:18px;display:flex;flex-direction:column;gap:12px}
.bs-feature-img{aspect-ratio:4/3;border-radius:calc(var(--bs-radius) - 2px);overflow:hidden;background:var(--bs-sub-bg)}
.bs-feature-img img{width:100%;height:100%;object-fit:cover}
.bs-feature-num{font-size:12px;font-weight:900;color:var(--bs-accent);letter-spacing:.08em}
.bs-feature-title{font-size:16px;margin:4px 0 6px}
.bs-feature-text{font-size:14px;color:var(--bs-sub-text);line-height:1.8}
.bs-spec-table{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:1px solid #e5e7eb}
.bs-spec-table th,.bs-spec-table td{padding:12px 14px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top;line-height:1.6}
.bs-spec-table th{width:34%;background:var(--bs-sub-bg);font-weight:700;color:var(--bs-main)}
.bs-spec-table tr:last-child th,.bs-spec-table tr:last-child td{border-bottom:none}
.bs-product-note{margin-top:14px;font-size:13px;color:var(--bs-sub-text);line-height:1.7;padding:12px 14px;border:1px solid #e5e7eb;border-radius:var(--bs-radius);background:#fff}
.bs-product-bottom-cta{margin-top:40px;padding:28px 20px;border:2px solid var(--bs-main);border-radius:var(--bs-radius);background:#fff;text-align:center}
.bs-product-bottom-cta .bs-price{justify-content:center}
.bs-product-bottom-cta .bs-cta-pair{justify-content:center}
.bs-product-info .bs-cta-pair{flex-direction:column}
.bs-product-info .bs-cta-pair .bs-btn{width:100%}
.bs-product-bottom-cta .bs-cta-pair{margin-bottom:0}

/* === Use cases === */
.bs-usecase{background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);overflow:hidden}
.bs-usecase-img{aspect-ratio:4/3;background:var(--bs-sub-bg)}
.bs-usecase-img img{width:100%;height:100%;object-fit:cover}
.bs-usecase-body{padding:18px}
.bs-usecase-title{font-size:17px;margin-bottom:8px}
.bs-usecase-text{font-size:14px;color:var(--bs-sub-text);line-height:1.8}

/* === Cases === */
.bs-case-grid{display:grid;grid-template-columns:1fr;gap:20px}
.bs-case-card{background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);overflow:hidden}
.bs-case-link{display:block;color:inherit}
.bs-case-thumb{position:relative;aspect-ratio:16/9;background:var(--bs-sub-bg);overflow:hidden}
.bs-case-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.bs-case-card:hover .bs-case-thumb img{transform:scale(1.03)}
.bs-case-qty{position:absolute;left:12px;bottom:12px;background:var(--bs-main);color:#fff;font-weight:900;font-size:14px;padding:4px 12px;border-radius:3px}
.bs-case-body{padding:18px}
.bs-case-client{font-size:13px;font-weight:700;color:var(--bs-accent);margin-bottom:4px}
.bs-case-title{font-size:17px;line-height:1.45;margin-bottom:10px}
.bs-case-meta{display:grid;gap:4px;font-size:13px;color:var(--bs-sub-text)}
.bs-case-meta div{display:flex;gap:8px}
.bs-case-meta dt{flex:0 0 40px;font-weight:700}
.bs-case-table{margin:20px 0 28px}
.bs-noimg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--bs-sub-text);font-size:13px;font-weight:700;padding:12px;text-align:center}

/* === Flow === */
.bs-flow-grid{gap:24px}
.bs-flow-col{background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);padding:24px 20px}
.bs-flow-title{font-size:18px;text-align:center;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--bs-main);color:var(--bs-main)}
.bs-flow-steps{display:grid;gap:0}
.bs-flow-step{display:flex;gap:14px;position:relative;padding-bottom:20px}
.bs-flow-step:not(:last-child)::before{content:"";position:absolute;left:17px;top:36px;bottom:0;width:2px;background:#e5e7eb}
.bs-flow-num{flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--bs-main);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;font-size:15px;position:relative;z-index:1}
.bs-flow-step-title{font-size:16px;margin:6px 0 4px}
.bs-flow-step-text{font-size:14px;color:var(--bs-sub-text);line-height:1.7}
.bs-flow-btn{width:100%;margin-top:8px}

/* === FAQ === */
.bs-faq-list{display:grid;gap:10px}
.bs-faq-item{border:1px solid #e5e7eb;border-radius:var(--bs-radius);background:#fff;overflow:hidden}
.bs-faq-q{display:flex;align-items:flex-start;gap:12px;padding:16px;cursor:pointer;list-style:none;font-weight:700;font-size:15px;line-height:1.6}
.bs-faq-q::-webkit-details-marker{display:none}
.bs-faq-q:hover{background:var(--bs-sub-bg)}
.bs-faq-label{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--bs-accent);color:#fff;font-size:14px;font-weight:900;display:flex;align-items:center;justify-content:center;margin-top:-1px}
.bs-faq-label-a{background:var(--bs-main)}
.bs-faq-question{flex:1}
.bs-faq-toggle{flex:0 0 20px;position:relative;width:20px;height:20px;margin-top:3px}
.bs-faq-toggle::before,.bs-faq-toggle::after{content:"";position:absolute;left:4px;top:9px;width:12px;height:2px;background:var(--bs-sub-text);transition:transform .25s ease}
.bs-faq-toggle::after{transform:rotate(90deg)}
.bs-faq-item[open] .bs-faq-toggle::after{transform:rotate(0)}
.bs-faq-a{display:flex;gap:12px;padding:0 16px 16px;font-size:15px;line-height:1.8;border-top:1px solid #f0f0f0;padding-top:14px}
.bs-faq-answer{flex:1}
.bs-faq-answer p{margin-bottom:8px}
.bs-faq-answer p:last-child{margin-bottom:0}
.bs-faq-section{margin:40px 0}
.bs-faq-heading{font-size:20px;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--bs-main)}

/* === Voices === */
.bs-voice{background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);padding:22px 20px;display:flex;flex-direction:column;position:relative}
.bs-voice::before{content:"“";position:absolute;top:6px;left:14px;font-size:48px;line-height:1;color:var(--bs-sub-bg);font-family:Georgia,serif}
.bs-voice-text{font-size:14px;line-height:1.85;position:relative;margin-bottom:14px}
.bs-voice-foot{margin-top:auto;border-top:1px solid #f0f0f0;padding-top:10px;font-size:13px;display:flex;flex-direction:column;gap:2px}
.bs-voice-name{font-style:normal;font-weight:700;color:var(--bs-main)}
.bs-voice-attr{color:var(--bs-sub-text)}
.bs-voice-disclaimer{margin-top:16px;font-size:12px;color:var(--bs-sub-text)}

/* === Article cards === */
.bs-card-grid{display:grid;grid-template-columns:1fr;gap:20px}
.bs-card{background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);overflow:hidden}
.bs-card-link{display:block;color:inherit}
.bs-card-thumb{aspect-ratio:16/9;overflow:hidden;background:var(--bs-sub-bg)}
.bs-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.bs-card:hover .bs-card-thumb img{transform:scale(1.03)}
.bs-card-body{padding:16px}
.bs-card-cat{display:inline-block;font-size:11px;color:var(--bs-accent);font-weight:700;margin-bottom:6px}
.bs-card-title{font-size:15px;line-height:1.55;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bs-card-date{font-size:12px;color:var(--bs-sub-text)}
@media(max-width:767px){
    .bs-card-link{display:flex;align-items:stretch}
    .bs-card-thumb{flex:0 0 128px;aspect-ratio:auto;min-height:96px}
    .bs-card-body{padding:12px 14px;min-width:0}
    .bs-card-title{font-size:14px;-webkit-line-clamp:3}
}

/* === Categories === */
.bs-cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.bs-cat-card{display:flex;flex-direction:column;align-items:center;padding:20px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:var(--bs-radius);text-align:center}
.bs-cat-card:hover{border-color:var(--bs-main)}
.bs-cat-name{font-size:15px;font-weight:700;color:var(--bs-main);margin-bottom:4px}
.bs-cat-desc{font-size:13px;color:var(--bs-sub-text);margin-bottom:4px}
.bs-cat-count{font-size:12px;color:var(--bs-sub-text)}

/* === About === */
.bs-about-text{font-size:15px;line-height:1.95;margin-bottom:24px}
.bs-about-text p{margin-bottom:12px}
.bs-about-card{display:flex;flex-direction:column;gap:18px;background:#fff;border:1px solid #e5e7eb;padding:24px;border-radius:var(--bs-radius)}
.bs-about-icon{width:88px;height:88px;border-radius:50%;object-fit:cover;flex-shrink:0}
.bs-about-org{font-size:13px;color:var(--bs-sub-text);margin-bottom:2px}
.bs-about-name{font-size:18px;font-weight:900;margin-bottom:8px}
.bs-about-title{font-size:13px;font-weight:700;color:var(--bs-sub-text);margin-right:8px}
.bs-about-bio{font-size:14px;color:var(--bs-sub-text);line-height:1.8;margin-bottom:12px}
.bs-about-meta{display:grid;gap:4px;font-size:13px;margin-bottom:12px}
.bs-about-meta div{display:flex;gap:10px}
.bs-about-meta dt{flex:0 0 48px;font-weight:700;color:var(--bs-sub-text)}

/* === Contact === */
.bs-section-contact{background:var(--bs-main);color:#fff}
.bs-section-contact .bs-section-title{border-left-color:var(--bs-accent);color:#fff}
.bs-section-contact .bs-section-lead{color:rgba(255,255,255,.85)}
.bs-contact-grid{display:grid;grid-template-columns:1fr;gap:16px}
.bs-contact-col{background:#fff;color:var(--bs-text);border-radius:var(--bs-radius);padding:24px 20px;text-align:center;display:flex;flex-direction:column;justify-content:center}
.bs-contact-col-title{font-size:13px;font-weight:700;color:var(--bs-sub-text);letter-spacing:.06em;margin-bottom:8px}
.bs-contact-col .bs-cta-pair{margin:8px 0}
.bs-contact-mail{font-size:14px;margin-top:8px}
.bs-contact-tel-num{display:block;font-size:30px;font-weight:900;color:var(--bs-main);letter-spacing:.02em;line-height:1.2;margin:8px 0 4px}
.bs-contact-hours{font-size:13px;color:var(--bs-sub-text)}
.bs-contact-form{margin-top:28px;background:#fff;color:var(--bs-text);border-radius:var(--bs-radius);padding:24px 20px;border:1px solid #e5e7eb}
.bs-contact-form input[type=text],.bs-contact-form input[type=email],.bs-contact-form input[type=tel],.bs-contact-form input[type=url],.bs-contact-form textarea,.bs-contact-form select{width:100%;padding:12px 14px;border:1px solid #cfd3d9;border-radius:var(--bs-radius);font-size:16px;font-family:inherit;background:#fff;color:var(--bs-text)}
.bs-contact-form textarea{min-height:140px}
.bs-contact-form label{font-weight:700;font-size:14px}
.bs-contact-form p{margin-bottom:14px}
.bs-contact-form input[type=submit],.bs-contact-form button[type=submit]{display:block;width:100%;padding:16px;background:var(--bs-cta);color:var(--bs-cta-text);border:none;border-radius:var(--bs-radius);font-size:16px;font-weight:700;cursor:pointer}
.bs-contact-form input[type=submit]:hover,.bs-contact-form button[type=submit]:hover{background:var(--bs-cta-hover)}

/* === Breadcrumb === */
.bs-breadcrumb{padding:12px 16px;font-size:12px;color:var(--bs-sub-text);max-width:1120px;margin:0 auto}
.bs-breadcrumb ol{display:flex;flex-wrap:wrap;gap:4px}
.bs-breadcrumb li::after{content:"/";margin-left:6px;color:#bbb}
.bs-breadcrumb li:last-child::after{content:""}
.bs-breadcrumb a{color:var(--bs-sub-text)}
.bs-breadcrumb a:hover{color:var(--bs-link)}

/* === Article === */
.bs-article-container{max-width:1120px;margin:0 auto;padding:0 16px 48px}
.bs-article-main{max-width:760px}
.bs-article-header{margin-bottom:28px}
.bs-article-cat{display:inline-block;font-size:12px;font-weight:700;color:#fff;background:var(--bs-accent);padding:3px 10px;border-radius:3px;margin-bottom:12px}
.bs-article-title{font-size:24px;line-height:1.5;margin-bottom:12px}
.bs-article-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--bs-sub-text);margin-bottom:16px}
.bs-article-thumb{margin-bottom:24px;border-radius:var(--bs-radius);overflow:hidden}
.bs-article-thumb img{width:100%}
.bs-article-body{line-height:1.95;font-size:16px}
.bs-article-body h2{font-size:21px;margin:48px 0 20px;padding:12px 16px;background:var(--bs-sub-bg);border-left:5px solid var(--bs-main);border-radius:0 4px 4px 0}
.bs-article-body h3{font-size:18px;margin:36px 0 16px;padding-bottom:8px;border-bottom:2px solid #e5e7eb}
.bs-article-body h4{font-size:16px;margin:28px 0 12px}
.bs-article-body p{margin-bottom:22px}
.bs-article-body ul,.bs-article-body ol{margin:16px 0 22px;padding-left:24px}
.bs-article-body ul{list-style:disc}
.bs-article-body ol{list-style:decimal}
.bs-article-body li{margin-bottom:6px}
.bs-article-body blockquote{border-left:3px solid var(--bs-sub-text);padding:16px 20px;margin:20px 0;background:var(--bs-sub-bg);font-size:15px;color:var(--bs-sub-text)}
.bs-article-body table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px}
.bs-article-body th,.bs-article-body td{border:1px solid #e5e7eb;padding:10px 12px;text-align:left}
.bs-article-body th{background:var(--bs-sub-bg);font-weight:700}
.bs-article-body img{border-radius:4px;margin:16px 0}
.bs-article-body a{text-decoration:underline;text-underline-offset:3px}
.bs-article-body a.bs-btn,.bs-article-body .bs-product-cta a{text-decoration:none}

/* === TOC === */
.bs-toc{background:var(--bs-sub-bg);border:1px solid #e5e7eb;border-radius:var(--bs-radius);padding:16px 20px;margin:24px 0}
.bs-toc-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.bs-toc-title{font-size:16px;font-weight:700}
.bs-toc-toggle{position:relative;width:20px;height:20px}
.bs-toc-toggle::before,.bs-toc-toggle::after{content:"";position:absolute;left:4px;top:9px;width:12px;height:2px;background:var(--bs-sub-text);transition:transform .25s ease}
.bs-toc-toggle::after{transform:rotate(90deg)}
.bs-toc.is-open .bs-toc-toggle::after{transform:rotate(0)}
.bs-toc-body{display:none}
.bs-toc.is-open .bs-toc-body{display:block}
.bs-toc ol{padding:12px 0 0 20px;list-style:decimal}
.bs-toc li{margin-bottom:6px;font-size:14px}
.bs-toc li a{color:var(--bs-text)}
.bs-toc li a:hover{color:var(--bs-link)}
.bs-article-body .bs-toc ul,.bs-toc-sublist{list-style:none;margin:0;padding:4px 0 0 18px}
.bs-article-body .bs-toc ol{margin:0}
.bs-article-body .bs-toc li{margin-bottom:6px}
.bs-toc-sub{font-size:13px;position:relative;padding-left:12px}
.bs-toc-sub::before{content:"";position:absolute;left:0;top:10px;width:6px;height:1px;background:var(--bs-sub-text)}
.bs-toc-nohead{list-style:none}

/* === Product CTA (記事下) === */
.bs-product-cta{margin:40px 0;border:2px solid var(--bs-main);border-radius:var(--bs-radius);background:#fff;overflow:hidden}
.bs-product-cta-title{background:var(--bs-main);color:#fff;font-weight:900;font-size:15px;padding:10px 18px;margin:0}
.bs-product-cta-inner{display:flex;flex-direction:column;gap:16px;padding:20px}
.bs-product-cta-img{flex:0 0 auto;max-width:220px;width:100%;margin:0 auto;border:1px solid #e5e7eb;border-radius:calc(var(--bs-radius) - 2px);overflow:hidden;background:#fff}
.bs-product-cta-img img{width:100%;aspect-ratio:1/1;object-fit:contain;margin:0;border-radius:0}
.bs-product-cta-model{font-size:12px;color:var(--bs-sub-text)}
.bs-product-cta-name{font-size:19px;font-weight:900;line-height:1.4;color:var(--bs-main);margin-bottom:4px}
.bs-product-cta-catch{font-size:14px;font-weight:700;margin-bottom:6px}
.bs-product-cta .bs-price{margin:6px 0 8px}
.bs-product-cta .bs-price-main{font-size:28px}
.bs-product-cta-meta{font-size:13px;color:var(--bs-sub-text);margin-bottom:4px}
.bs-product-cta .bs-cta-pair{margin:12px 0}
.bs-product-cta .bs-cta-pair .bs-btn{white-space:nowrap;padding-left:20px;padding-right:20px}
@media(min-width:768px){.bs-product-cta .bs-cta-pair .bs-btn{flex:0 1 auto}}

/* === Author Box === */
.bs-author-box{display:flex;flex-direction:column;gap:16px;padding:24px;background:var(--bs-sub-bg);border-radius:var(--bs-radius);margin:32px 0}
.bs-author-icon{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0}
.bs-author-label{font-size:11px;color:var(--bs-sub-text);margin-bottom:4px}
.bs-author-org,.bs-author-title{font-size:12px;color:var(--bs-sub-text);margin-right:6px}
.bs-author-name{font-size:16px;font-weight:700;margin-bottom:6px}
.bs-author-name a{color:var(--bs-text)}
.bs-author-bio{font-size:13px;color:var(--bs-sub-text);line-height:1.7}

/* === Update History === */
.bs-update-history{margin:32px 0;padding:20px;background:var(--bs-sub-bg);border-radius:var(--bs-radius)}
.bs-update-history-title{font-size:15px;margin-bottom:12px}
.bs-update-history li{display:flex;gap:12px;font-size:13px;padding:6px 0;border-bottom:1px solid #e5e7eb}
.bs-update-history li:last-child{border-bottom:none}
.bs-update-history time{color:var(--bs-sub-text);flex-shrink:0;width:90px}

/* === Related === */
.bs-related{margin:48px 0 0}
.bs-related-title{font-size:18px;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--bs-main)}

/* === Archive / Page === */
.bs-archive{padding:16px 0 56px}
.bs-archive-header{margin-bottom:24px}
.bs-archive-desc{font-size:14px;color:var(--bs-sub-text);margin-top:8px}
.bs-page{padding:16px 0 56px}
.bs-page-eyebrow{font-size:13px;font-weight:700;color:var(--bs-accent);margin-bottom:4px}
.bs-page-title{font-size:26px;margin-bottom:24px;padding-bottom:12px;border-bottom:2px solid var(--bs-main);line-height:1.4}
.bs-pagination{margin:40px 0;text-align:center}
.bs-pagination .nav-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px}
.bs-pagination a,.bs-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 10px;border-radius:var(--bs-radius);font-size:14px;border:1px solid #e5e7eb;color:var(--bs-text)}
.bs-pagination .current{background:var(--bs-main);color:#fff;border-color:var(--bs-main)}
.bs-pagination a:hover{background:var(--bs-sub-bg)}

/* === Target detail page === */
.bs-target-hero{background:var(--bs-sub-bg);padding:36px 0 40px;margin-bottom:40px}
.bs-target-hero-inner{display:flex;flex-direction:column;gap:24px}
.bs-target-page-title{font-size:26px;font-weight:900;line-height:1.4;color:var(--bs-main);margin-bottom:14px}
.bs-target-page-summary{font-size:15px;color:var(--bs-sub-text);line-height:1.9;margin-bottom:16px}
.bs-target-hero-visual img{border-radius:var(--bs-radius);border:1px solid #e5e7eb;width:100%}
.bs-target-content{margin-bottom:40px}
.bs-target-others{margin:40px 0 56px}
.bs-target-others ul{display:grid;gap:10px}
.bs-target-others li a{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border:1px solid #e5e7eb;border-radius:var(--bs-radius);font-weight:700;color:var(--bs-main);background:#fff}
.bs-target-others li a::after{content:"";width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}
.bs-target-others li a:hover{border-color:var(--bs-main)}

/* === 404 === */
.bs-404{padding:80px 16px;text-align:center}
.bs-404 h1{font-size:24px;margin-bottom:16px}
.bs-404 p{margin-bottom:24px;color:var(--bs-sub-text)}
.bs-404 .bs-cta-pair{max-width:420px;margin:0 auto}

/* === Search === */
.bs-search-form{display:flex;gap:6px}
.bs-search-input{flex:1;padding:10px 12px;border:1px solid #cfd3d9;border-radius:var(--bs-radius);font-size:15px;font-family:inherit}
.bs-search-btn{padding:10px 16px;background:var(--bs-main);color:#fff;border:none;border-radius:var(--bs-radius);cursor:pointer;font-size:14px;font-weight:700}

/* === Sidebar === */
.bs-sidebar{margin-top:40px}
.bs-widget{margin-bottom:28px}
.bs-widget-title{font-size:16px;font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--bs-main)}
.bs-widget ul li{padding:8px 0;border-bottom:1px solid #f0f0f0;font-size:14px}
.bs-widget-product .bs-product-cta{margin:0}
.bs-widget-product .bs-product-cta-inner{flex-direction:column}
.bs-widget-product .bs-cta-pair{flex-direction:column}
.bs-widget-product .bs-cta-pair .bs-btn{width:100%}
.bs-widget-product .bs-product-cta-img{flex-basis:auto}

/* === SP Fixed CTA === */
.bs-sp-fixed-cta{position:fixed;bottom:0;left:0;right:0;z-index:99;display:flex;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid #e5e7eb;backdrop-filter:blur(8px);transform:translateY(110%);transition:transform .3s ease}
.bs-sp-fixed-cta.is-visible{transform:translateY(0)}
.bs-sp-fixed-tel{flex:0 0 48px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bs-main);color:var(--bs-main);border-radius:var(--bs-radius);background:#fff}
.bs-sp-fixed-btn{flex:1;display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 8px;font-weight:700;font-size:14px;border-radius:var(--bs-radius);line-height:1.3;text-align:center}
.bs-sp-fixed-1{background:var(--bs-cta);color:var(--bs-cta-text)}
.bs-sp-fixed-2{background:var(--bs-cta2);color:var(--bs-cta-text)}
body.has-sp-cta{padding-bottom:72px}

/* === LP template === */
.bs-lp .bs-sp-fixed-cta{display:none}
.bs-lp-content{max-width:100%}

/* === Footer === */
.bs-footer{background:var(--bs-footer-bg);color:var(--bs-footer-text);padding:44px 0 20px;font-size:14px;border-top:1px solid rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(0,0,0,.25)}
.bs-footer-inner{max-width:1120px;margin:0 auto;padding:0 16px}
.bs-footer-top{display:flex;flex-direction:column;gap:28px;margin-bottom:28px}
.bs-footer-logo{max-height:36px;width:auto;margin-bottom:12px;filter:brightness(0) invert(1)}
.bs-footer-sitename{font-size:18px;font-weight:900;color:#fff;margin-bottom:10px}
.bs-footer-info{font-size:13px;line-height:1.8;opacity:.9}
.bs-footer-info p{margin-bottom:6px}
.bs-footer-list{display:flex;flex-wrap:wrap;gap:10px 20px;margin-bottom:16px}
.bs-footer-list a{color:var(--bs-footer-text);font-size:14px}
.bs-footer-list a:hover{color:#fff}
.bs-footer-legal{display:flex;flex-wrap:wrap;gap:8px 18px}
.bs-footer-legal a{color:var(--bs-footer-text);font-size:12px;opacity:.85}
.bs-footer-legal a:hover{color:#fff;opacity:1}
.bs-footer-note{font-size:12px;opacity:.7;line-height:1.7;margin-bottom:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}
.bs-footer-copy{font-size:12px;opacity:.6;text-align:center;padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}
.bs-tel-inline a{font-weight:700}

/* ============================
   Tablet: 768px+
   ============================ */
@media(min-width:768px){
    .sp-only{display:none}
    .pc-only{display:block}
    .bs-section{padding:72px 0}
    .bs-section-title{font-size:28px}
    .bs-cols-2,.bs-cols-3,.bs-cols-4{grid-template-columns:repeat(2,1fr)}
    .bs-cta-pair{flex-direction:row}
    .bs-cta-pair .bs-btn{width:auto;flex:1}
    .bs-btn-lg{width:auto}
    .bs-hero-inner{padding-top:48px;padding-bottom:52px}
    .bs-hero-visual{max-width:520px}
    .bs-hero-catch{font-size:32px}
    .bs-hero-points{grid-template-columns:repeat(2,1fr)}
    .bs-hero-bg .bs-hero-text{max-width:620px}
    .bs-trust-list{grid-template-columns:repeat(4,1fr)}
    .bs-trust-item{border-bottom:none;border-right:1px solid rgba(255,255,255,.15);padding:22px 8px}
    .bs-trust-item:last-child{border-right:none}
    .bs-trust-num{font-size:34px}
    .bs-trust-2 .bs-trust-item,.bs-trust-3 .bs-trust-item{border-right:1px solid rgba(255,255,255,.15)}
    .bs-ba{grid-template-columns:1fr 48px 1fr;gap:12px;align-items:stretch}
    .bs-ba-arrow{transform:none;align-items:center}
    .bs-target-list{grid-template-columns:repeat(2,1fr)}
    .bs-product{grid-template-columns:1fr 1fr;gap:40px}
    .bs-feature-list{grid-template-columns:repeat(2,1fr)}
    .bs-case-grid{grid-template-columns:repeat(2,1fr)}
    .bs-card-grid{grid-template-columns:repeat(2,1fr)}
    .bs-cat-grid{grid-template-columns:repeat(3,1fr)}
    .bs-about-card{flex-direction:row;align-items:flex-start}
    .bs-contact-grid.has-phone{grid-template-columns:1fr 1fr}
    .bs-contact-col .bs-cta-pair{flex-direction:column}
    .bs-product-cta-inner{flex-direction:row}
    .bs-product-cta-img{flex:0 0 220px;margin:0}
    .bs-author-box{flex-direction:row}
    .bs-article-title{font-size:28px}
    .bs-target-hero-inner{flex-direction:row;align-items:center;gap:40px}
    .bs-target-hero-text{flex:1 1 58%}
    .bs-target-hero-visual{flex:1 1 42%}
    .bs-target-page-title{font-size:32px}
    .bs-footer-top{flex-direction:row;justify-content:space-between;gap:40px}
    .bs-footer-list{justify-content:flex-end}
    .bs-footer-legal{justify-content:flex-end}
}

/* ============================
   PC: 1024px+
   ============================ */
@media(min-width:1024px){
    body{font-size:16px}
    .bs-header-inner{gap:16px}
    .bs-container{padding:0 24px}
    .bs-header-inner{padding:12px 24px;flex-wrap:nowrap}
    .bs-menu-toggle{display:none}
    .bs-header-tel{display:flex}
    .bs-header-cta{display:inline-flex}
    .bs-nav{display:block;flex-basis:auto;border:none;padding:0;order:2}
    .bs-header-right{order:3}
    .bs-nav-list{flex-direction:row;gap:4px}
    .bs-nav-list li a{padding:8px 10px;border-bottom:none;font-size:14px;white-space:nowrap}
    .bs-header-tel-hours{display:none}
    .bs-hero-btns .bs-btn{flex:0 1 auto;min-width:240px}
    .bs-hero-inner{flex-direction:row;align-items:center;gap:48px;padding-top:56px;padding-bottom:60px}
    .bs-hero-text{flex:1 1 56%}
    .bs-hero-visual{flex:1 1 44%;max-width:none;margin:0}
    .bs-hero-catch{font-size:38px}
    .bs-cols-3{grid-template-columns:repeat(3,1fr)}
    .bs-cols-4{grid-template-columns:repeat(4,1fr)}
    .bs-target-list{grid-template-columns:repeat(3,1fr)}
    .bs-target-list:has(> :nth-child(4)){grid-template-columns:repeat(2,1fr)}
    .bs-feature-list{grid-template-columns:repeat(3,1fr)}
    .bs-case-grid{grid-template-columns:repeat(3,1fr)}
    .bs-card-grid{grid-template-columns:repeat(3,1fr)}
    .bs-cat-grid{grid-template-columns:repeat(4,1fr)}
    .bs-article-container{display:flex;gap:40px}
    .bs-article-main{flex:1;min-width:0;max-width:none}
    .bs-sidebar{width:320px;flex-shrink:0;margin-top:0;position:sticky;top:84px;align-self:flex-start}
    .bs-archive-container{display:flex;gap:40px}
    .bs-archive-main{flex:1;min-width:0}
    .bs-sp-fixed-cta{display:none}
    body.has-sp-cta{padding-bottom:0}
}

@media(min-width:1200px){
    .bs-header-tel-hours{display:block}
    .bs-nav-list li a{padding:8px 14px}
}

/* 記事本文内の商品CTA画像は本文imgの余白ルールを打ち消す */
.bs-article-body .bs-product-cta-img img,.bs-article-main .bs-product-cta-img img{margin:0;border-radius:0}
