/* ============================================================
   Insurance110 Media - SUUMO Journal Style
   ============================================================ */

/* --- Reset --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body.home{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;font-size:14px;line-height:1.7;color:var(--co-black);background:#fff;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font:inherit}
h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.4}

/* --- Custom Properties --- */

/* --- Layout --- */
/* Two Column Layout */
.two-col{
  display:grid;
  grid-template-columns:1fr var(--sidebar-width);
  gap:40px;
  align-items:start;
}
.two-col__main{
  min-width:0;
}
.two-col__side{
  position:sticky;
  top:68px;
}

/* --- Section --- */
.section{
  padding:32px 0;
}
.section--alt{
  background:var(--c-bg-alt);
}
.section--seminar{
  background:var(--c-primary-dark);
  color:#fff;
}
.section--compact{
  padding:20px 0;
}
.section__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:20px;
  padding-bottom:12px;
  border-bottom:2px solid var(--c-text-muted);
}
.section__title{
  font-size:18px;
  font-weight:500;
  display:flex;
  align-items:center;
  gap:8px;
  color: var(--co-black);
}
.section__more{
  font-size:14px;
  font-weight: 500;
  color:var(--c-text-light);
  white-space:nowrap;
}
.section__more:hover{
  color:var(--c-primary);
}

/* Category section header with color bar */
.section__header--category{
  border-bottom:2px solid var(--c-text-muted);
}
.section__title--bar{
  padding-left:12px;
  border-left:4px solid currentColor;
}
.isrc_color1{color:var(--c-assets)}
.isrc_color2{color:var(--c-insurance)}
.isrc_color3{color:var(--c-news)}
.isrc_color4{color:var(--c-overseas)}


/* ============================================================
   PICKUP SECTION (Full-width)
   ============================================================ */
.pickup{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:20px;
  margin-bottom:8px;
}
.pickup__main .card__image img{
  width:100%;
  height:auto;
  max-width:100%;
  display:block;
}
.pickup__main .card__title{
  font-size:20px;
  line-height:1.5;
  margin:8px 0;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--co-dark);
}
.pickup__main .card__title a:hover{
  color:var(--c-primary);
}
.pickup__main .card__excerpt{
  font-size:14px;
  color:var(--c-text-light);
  line-height:1.7;
  margin-bottom:8px;
  display:-webkit-box;
  -webkit-line-clamp:5;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.pickup__sub{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.pickup__sub-item{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:12px;
  align-items:start;
}
.pickup__sub-item img{
  width:160px;
  height:120px;
  object-fit:cover;
  border-radius:var(--radius);
}
.pickup__sub-title{
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.pickup__sub-item:hover .pickup__sub-title{
  color:var(--c-primary);
}
.pickup__sub-excerpt{
  font-size:12px;
  line-height:1.5;
  font-weight: 500;
  color:var(--c-text-light);
  margin-top:4px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.pickup__sub-date{
  font-size:11px;
  color:var(--c-text-muted);
  margin-top:4px;
  font-weight: 500;
}
/* ============================================================
   CATEGORY NAVIGATION
   ============================================================ */
.section--categories{
  padding:24px 0;
  border-bottom:1px solid var(--c-border-light);
}
.cat-nav{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:12px;
}
.cat-nav__item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  padding:20px 8px 16px;
  border-radius:8px;
  background:var(--c-bg-alt);
  transition:var(--transition);
  text-align:center;
}
.cat-nav__item:hover{
  background:#fff;
  box-shadow:var(--shadow-hover);
  transform:translateY(-2px);
}
.cat-nav__icon{
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:#fff;
}
.cat-nav__icon--assets{background:var(--c-assets)}
.cat-nav__icon--insurance{background:var(--c-insurance)}
.cat-nav__icon--news{background:var(--c-news)}
.cat-nav__icon--overseas{background:var(--c-overseas)}
.cat-nav__icon--column{background:var(--c-column)}
.cat-nav__icon--seminar{background:var(--c-primary)}
.cat-nav__label{
  font-size:12px;
  font-weight:700;
  line-height:1.3;
}
.cat-nav__count{
  font-size:11px;
  color:var(--c-text-muted);
}

/* ============================================================
   EDITOR'S PICKS (4-card grid, alt bg)
   ============================================================ */
.editors-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.editors-card{
  background:#fff;
}
.editors-card__image{
  position:relative;
  overflow:hidden;
}
.editors-card__image img{
  width:100%;
  height:auto;
  max-width:100%;
  display:block;
  transition:transform .3s ease;
}
.editors-card:hover .editors-card__image img{
  transform:scale(1.03);
}
.editors-card__body{
  padding:10px;
}
.editors-card__title{
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.editors-card__title a:hover{
  color:var(--c-primary);
}
.editors-card__date{
  font-size:11px;
  color:var(--c-text-muted);
  margin-top:4px;
}

/* ============================================================
   CATEGORY SECTION (inside main column)
   ============================================================ */
.cat-section{
  padding-bottom:28px;
  margin-bottom:28px;
}
.cat-section:last-child{
  border-bottom:none;
  margin-bottom:0;
}
.cat-section__content{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
/* Main article in category */
.cat-main{
  display:block;
}
.cat-main__image{
  position:relative;
  overflow:hidden;
  margin-bottom:10px;
}
.cat-main__image img{
  aspect-ratio:3/2;
  object-fit:cover;
  width:100%;
  transition:transform .3s ease;
}
.cat-main:hover .cat-main__image img{
  transform:scale(1.03);
}
.cat-main__title{
  font-size:16px;
  font-weight:500;
  line-height:1.5;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color: var(--co-dark);
}
.cat-main:hover .cat-main__title{
  color:var(--c-primary);
}
.cat-main__date{
  font-size:11px;
  color:var(--c-text-muted);
  margin-top:4px;
}

/* Side list in category */
.cat-list{
  display:flex;
  flex-direction:column;
  gap:0;
}
.cat-list__item{
  display:grid;
  grid-template-columns:100px 1fr;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--bord1);
  align-items:start;
}
.cat-list__item:first-child{
  padding-top:0;
}
.cat-list__item:last-child{
  border-bottom:none;
}
.cat-list__thumb{
  overflow:hidden;
  border-radius:var(--radius);
}
.cat-list__thumb img{
  width:100px;
  height:75px;
  object-fit:cover;
  transition:transform .3s ease;
}
.cat-list__item:hover .cat-list__thumb img{
  transform:scale(1.05);
}
.cat-list__body{
  min-width:0;
}
.cat-list__title{
  font-size:14px;
  font-weight:500;
  color: var(--co-dark);
  line-height:1.5;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.cat-list__item:hover .cat-list__title{
  color:var(--c-primary);
}
.cat-list__date{
  font-size:11px;
  color:var(--c-text-muted);
  margin-top:2px;
}

/* ============================================================
   NEW ARTICLES LIST (rows)
   ============================================================ */
.new-list__item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--bord2);
  transition:var(--transition);
}
.new-list__item:hover{
  background:var(--c-bg-alt);
  padding-left:4px;
}
.new-list__date{
  font-size:11px;
  color:var(--c-text-muted);
  min-width:80px;
  flex-shrink:0;
  font-weight: 500;
}
.new-list__title{
  font-size:14px;
  font-weight:500;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  flex:1;
  min-width:0;
  color: var(--co-black);
}
.new-list__item:hover .new-list__title{
  color:var(--c-primary);
}

/* ============================================================
   BADGES
   ============================================================ */
.badge{
  display:inline-flex;
  align-items:center;
  height:22px;
  padding:0 8px;
  font-size:11px;
  font-weight:600;
  border-radius:2px;
  white-space:nowrap;
}
.badge--sm{
  height:18px;
  padding:0 6px;
  background-color: #E9F0FD;
  font-weight: 500;
  color: var(--c-assets);
}
.badge--assets{background:#E9F0FD;color:var(--c-primary-light)}
.badge--insurance{background:rgba(5,150,105,.1);color:var(--c-insurance)}
.badge--news{background:rgba(217,119,6,.1);color:var(--c-news)}
.badge--overseas{background:rgba(124,58,237,.1);color:var(--c-overseas)}
.badge--column{background:rgba(225,29,72,.1);color:var(--c-column)}
.badge--new{background:#ef4444;color:#fff}

/* ============================================================
   COLUMN SECTION (independent full-width section)
   ============================================================ */
.section--column{
  background:var(--c-bg-alt, #f8f9fa);
  padding:48px 0;
}
.section__header--column .section__title{
  padding-left:12px;
  border-left:4px solid var(--co-black);
}
.column-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px 40px;
}
.column-block{
  padding:20px 0 35px 0;
  border-bottom:1px solid var(--c-border-light);
}
.column-block:nth-child(1),
.column-block:nth-child(2){
  border-bottom:1px solid var(--c-border-light);
}
.column-block:nth-child(3),
.column-block:nth-child(4){
  border-bottom:none;
}
.column-author{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:16px;
}
.column-author__avatar{
  width:56px;
  height:56px;
  border-radius:50%;
  overflow:hidden;
  flex-shrink:0;
}
.column-author__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.column-author__name{
  font-size:14px;
  font-weight:700;
}
.column-author__desc{
  font-size:12px;
  color:var(--c-text-muted);
  margin-top:4px;
  line-height:1.5;
  font-weight: 700;
}
.column-articles{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-left:0;
}
.column-article{
  display:flex;
  align-items:baseline;
  gap:12px;
}
.column-article__date{
  font-size:11px;
  color:var(--c-text-muted);
  min-width:76px;
  flex-shrink:0;
  font-weight: 500;
}
.column-article__title{
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  color: var(--co-black);
}
.column-article__title:hover{
  color:var(--c-primary);
}
.column-more{
  margin-top:16px;
  text-align:right;
}
.column-more__btn{
  display:inline-block;
  padding:8px 20px;
  border:1px solid var(--co-black);
  font-size:14px;
  font-weight:500;
  border-radius: 4px;
  color: var(--co-black);
  text-decoration:none;
  transition:background .2s,color .2s;
}
.column-more__btn:hover{
  background:var(--c-text);
  border-color: var(--c-text);
  color:#fff;
}

/* ============================================================
   SIDEBAR
   ============================================================ */
.sidebar-block{
  margin-bottom:28px;
}
.sidebar-block:last-child{
  margin-bottom:0;
}
.sidebar-block__header{
  font-size:16px;
  font-weight:500;
  padding-bottom:10px;
  margin-bottom:14px;
  border-bottom: 2px solid var(--c-text-muted);
  color: var(--co-dark);
}

/* Ranking Tabs */
.ranking-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin-bottom:12px;
  border-bottom:1px solid var(--c-border);
}
.ranking-tab{
  padding:6px 10px;
  font-size:11px;
  font-weight:500;
  color:var(--c-text-muted);
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  transition:var(--transition);
  white-space:nowrap;
}
.ranking-tab:hover{
  color:var(--c-text);
}
.ranking-tab.is-active{
  color:var(--c-primary);
  border-bottom-color:var(--c-primary);
  font-weight:700;
}
.col_p{
  color: #828282;
}
/* Ranking List */
.ranking-list{
  flex-direction:column;
}
.ranking-list.is-active{
  display:flex;
}
.ranking-item{
  display:flex;
  align-items:start;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--bord1);
}
.ranking-item:last-child{
  border-bottom:none;
}
.ranking-num{
  font-size:15px;
  font-weight:700;
  min-width:24px;
  text-align:center;
  line-height:1;
  flex-shrink:0;
  padding-top:2px;
}
.ranking-num--1{color:#D4A638}
.ranking-num--2{color:#A0A0A0}
.ranking-num--3{color:#C4833D}
.ranking-num--4,.ranking-num--5{color:var(--c-text-muted)}
.ranking-title{
  font-size:13px;
  font-weight:500;
  line-height:1.5;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color: var(--co-dark);
}
.ranking-title:hover{
  color:var(--c-primary);
}

/* Sidebar Featured */
.sidebar-featured{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.sidebar-featured__item{
  display:block;
}
.sidebar-featured__image{
  overflow:hidden;
  margin-bottom:8px;
}
.sidebar-featured__image img{
  aspect-ratio:16/9;
  object-fit:cover;
  width:100%;
  transition:transform .3s ease;
}
.sidebar-featured__item:hover .sidebar-featured__image img{
  transform:scale(1.03);
}
.sidebar-featured__title{
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color: var(--co-dark);
}
.sidebar-featured__item:hover .sidebar-featured__title{
  color:var(--c-primary);
}

/* Sidebar CTA */
.sidebar-cta{
  background:var(--c-primary);
  color:#fff;
  padding:24px 20px;
  text-align:center;
  border-radius:var(--radius);
}
.sidebar-cta__title{
  font-size:16px;
  font-weight:700;
  margin-bottom:8px;
}
.sidebar-cta__text{
  font-size:12px;
  opacity:.9;
  margin-bottom:16px;
  line-height:1.6;
}
.sidebar-cta__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  padding:0 24px;
  font-size:14px;
  font-weight:500;
  color:var(--c-primary);
  background:#fff;
  border-radius:var(--radius);
  transition:var(--transition);
}
.sidebar-cta__btn:hover{
  background:#f0f0f0;
}

/* Sidebar Country */
.sidebar-countries{
  display:flex;
  flex-direction:column;
}
.sidebar-country{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 0;
  border-bottom:1px solid var(--c-border-light);
  font-size:13px;
  transition:var(--transition);
}
.sidebar-country__name{
  font-size: 14px;
  font-weight: 500;
  color: var(--co-dark);
}
.sidebar-country__name:hover{
  color: var(--c-primary);
}
.sidebar-country:last-child{
  border-bottom:none;
}
.sidebar-country:hover{
  color:var(--c-primary);
}
.sidebar-country__flag{
  font-size:18px;
  flex-shrink:0;
}
.sidebar-country__name{
  flex:1;
}
.sidebar-country__count{
  font-size:11px;
  color:var(--c-text-muted);
}
.btnx{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 40px;
    padding: 0 20px;
    font-size: 13px;
    font-weight: 600;
    border-radius: var(--radius);
    transition: var(--transition);
    white-space: nowrap;
}
/* ============================================================
   BUTTONS
   ============================================================ */
.btn--white{
  background:#fff;
  color:var(--c-primary);
}
.btn--white:hover{
  background:#f0f0f0;
}
.btn--outline{
  border:1px solid var(--c-border);
  color:var(--c-text);
  background: #fff;
}
.btn--outline:hover{
  border-color:var(--c-primary);
  color:var(--c-primary);
}
.btn--ghost{
  color:rgba(255,255,255,.8);
}
.btn--ghost:hover{
  color:#fff;
}
.btn--sm{
  height:32px;
  padding:0 12px;
  font-size:12px;
}
.btn--lg{
  height:48px;
  padding:0 32px;
  font-size:15px;
}

/* ============================================================
   SEMINAR SECTION
   ============================================================ */
/* Section header */
.seminar-section-header{
  text-align:center;
  margin-bottom:32px;
}
.seminar-hero__label{
  display:inline-block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.15em;
  color:var(--c-accent);
  margin-bottom:4px;
}
.seminar-hero__title{
  font-size:26px;
  font-weight:700;
  margin-bottom:10px;
}
.seminar-hero__text{
  font-size:14px;
  opacity:.85;
  line-height:1.7;
}
.seminar-hero__text strong{
  color:var(--c-accent-light);
}

/* Featured Seminar (Hero Card) */
.seminar-featured{
  position:relative;
  background:#fff;
  border-radius:8px;
  overflow:hidden;
  margin-bottom:32px;
  box-shadow:0 4px 24px rgba(0,0,0,.25);
}
.seminar-featured__badge{
  position:absolute;
  top:0;
  left:24px;
  background:var(--c-accent);
  color:#fff;
  font-size:13px;
  font-weight:700;
  padding:6px 16px 8px;
  border-radius:0 0 6px 6px;
  z-index:2;
  letter-spacing:.05em;
}
.seminar-featured__inner{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.seminar-featured__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  min-height:300px;
}
.seminar-featured__content{
  padding:32px 32px 28px;
  color:var(--c-text);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.seminar-featured__tag{
  display:inline-block;
  font-size:12px;
  font-weight:700;
  color:#fff;
  background:var(--c-overseas);
  padding:3px 10px;
  border-radius:3px;
  width:fit-content;
  margin-bottom:10px;
}
.seminar-featured__title{
  font-size:20px;
  font-weight:900;
  line-height:1.5;
  margin-bottom:12px;
  color:var(--c-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.seminar-featured__desc{
  font-size:13px;
  line-height:1.7;
  color:var(--c-text-light);
  margin-bottom:16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.seminar-featured__speaker{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}
.seminar-featured__speaker-img{
  width:48px;
  height:48px;
  border-radius:50%;
  object-fit:cover;
}
.seminar-featured__speaker-name{
  font-size:13px;
  font-weight:700;
  color:var(--c-text-light);
}
.seminar-featured__meta{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:20px;
  font-size:13px;
  color:var(--c-text-light);
}
.seminar-featured__meta-item{
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.seminar-featured__meta-item div{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.seminar-featured__actions{
  display:flex;
  align-items:center;
  gap:16px;
}
.seminar-featured__status{
  font-size:13px;
  font-weight:700;
  color:var(--c-insurance);
}

/* Sub heading */
.seminar-sub-heading{
  font-size:16px;
  font-weight:700;
  color:#fff;
  margin-bottom:16px;
  padding-left:12px;
  border-left:3px solid var(--c-accent);
}

/* Seminar Cards */
.seminar-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-bottom:24px;
}
.seminar-card{
  background:#fff;
  border-radius:var(--radius);
  overflow:hidden;
  color:var(--c-text);
  display:flex;
  flex-direction:column;
}
.seminar-card__header{
  padding:8px 16px;
  font-size:12px;
  font-weight:700;
  color:#fff;
}
.seminar-card__header--assets{background:var(--c-assets)}
.seminar-card__header--insurance{background:var(--c-insurance)}
.seminar-card__header--returning{background:var(--c-overseas)}
.seminar-card__header--pension{background:#DA7706}
.seminar-card__header--ideco{background:#0B3190}
.seminar-card__header--fire{background:#DC2626}
.seminar-card__header--shukatsu{background:#6B7280}
.seminar-card__header--education{background:#059669}
.seminar-card__header--tax{background:#7C39ED}
.seminar-card__header--crypto{background:#F59E0B}
.seminar-card__image{
  overflow:hidden;
}
.seminar-card__image img{
  width: 100%;
  height: auto;
  display:block;
}
.seminar-card__speaker{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:12px;
}
.seminar-card__speaker img{
  width:36px;
  height:36px;
  border-radius:50%;
  object-fit:cover;
}
.seminar-card__body{
  padding:16px;
  flex:1;
}
.seminar-card__title{
  font-size:15px;
  font-weight:700;
  line-height:1.5;
  margin-bottom:8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.btn{
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius);
  transition: var(--transition);
  white-space: nowrap;
}
.seminar-card__desc{
  font-size:12px;
  line-height:1.6;
  color:var(--c-text-light);
  margin-bottom:12px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.seminar-card__info{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.seminar-card__info-item{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--c-text-light);
}
.seminar-card__info-icon{
  font-size:14px;
  flex-shrink:0;
}
.seminar-card__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 16px;
  border-top:1px solid var(--c-border-light);
}
.seminar-card__status{
  font-size:11px;
  font-weight:700;
}
.seminar-card__status--open{
  color:var(--c-insurance);
}

/* Accent Button */
.btn--accent{
  background:var(--c-accent);
  color:#fff;
  border:none;
  flex: 1;
  min-width: 0;
}
.btn--accent:hover{
  background:var(--c-accent-light);
}

/* Seminar Bottom CTA */
.seminar-bottom-cta{
  text-align:center;
  padding-top:8px;
}
.seminar-bottom-cta__text{
  font-size:13px;
  opacity:.8;
  margin-bottom:12px;
}
.seminar-bottom-cta__actions{
  display:flex;
  justify-content:center;
  gap:12px;
}

/* ============================================================
   CTA BLOCKS
   ============================================================ */
.cta-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.cta-block{
  padding:32px 24px;
  text-align:center;
  border-radius:var(--radius);
}
.cta-block--accent{
  background:linear-gradient(135deg,#f7f0e0,#fdf8ef);
  border:1px solid #e8d9b0;
}
.cta-block--light{
  background:var(--c-bg-alt);
  border:1px solid var(--c-border);
}
.cta-block--primary{
  background:var(--c-primary);
  color:#fff;
}
.cta-block__title{
  font-size:18px;
  font-weight:700;
  margin-bottom:8px;
}
.cta-block__text{
  font-size:13px;
  line-height:1.7;
  margin-bottom:16px;
  opacity:.9;
}
.cta-block__actions{
  display:flex;
  justify-content:center;
}
/* ============================================================
   SP FIXED BAR
   ============================================================ */
.sp-fixed-bar{
  display:none;
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:90;
  background:#fff;
  box-shadow:0 -2px 8px rgba(0,0,0,.1);
  border-top:1px solid var(--c-border);
}
.sp-fixed-bar__inner{
  display:flex;
}
.sp-fixed-bar__btn{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:10px 0;
  font-size:11px;
  font-weight:600;
  text-align:center;
}
.sp-fixed-bar__btn--seminar{
  color:var(--c-primary);
}
.sp-fixed-bar__btn--consulting{
  background:var(--c-primary);
  color:#fff;
}
.sp-fixed-bar__btn--line{
  background:#06C755;
  color:#fff;
}

/* ============================================================
   CARD (Generic, for sub-pages)
   ============================================================ */
.card{
  background:#fff;
  border-radius:var(--radius);
  overflow:hidden;
}
.card__image{
  position:relative;
  overflow:hidden;
}
.card__image img{
  width:100%;
  height:auto;
  max-width:100%;
  display:block;
  transition:transform .3s ease;
}
.card:hover .card__image img{
  transform:scale(1.03);
}
.card__body{
  padding:12px 0;
}
.card__meta{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:6px;
}
.card__title{
  font-size:14px;
  font-weight:600;
  line-height:1.5;
}
.card__title a:hover{
  color:var(--c-primary);
}
.card__excerpt{
  font-size:13px;
  color:var(--c-text-light);
  line-height:1.6;
  margin-top:6px;
}
.card__footer{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:8px;
}
.card__date{
  font-size:11px;
  color:var(--c-text-muted);
}
.card__author{
  font-size:11px;
  color:var(--c-text-muted);
}
.card-grid{
  display:grid;
  gap:20px;
}
.card-grid--2{grid-template-columns:repeat(2,1fr)}
.card-grid--3{grid-template-columns:repeat(3,1fr)}
.card-grid--4{grid-template-columns:repeat(4,1fr)}

/* ============================================================
   FAQ Accordion (sub-pages)
   ============================================================ */
.faq-item{
  border-bottom:1px solid var(--c-border);
}
.faq-item__question{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 0;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
}
.faq-item__question::after{
  content:'+';
  font-size:20px;
  color:var(--c-text-muted);
  transition:var(--transition);
}
.faq-item.is-open .faq-item__question::after{
  content:'\2212';
}
.faq-item__answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
}
.faq-item.is-open .faq-item__answer{
  max-height:500px;
}
.faq-item__answer-inner{
  padding:0 0 16px;
  font-size:14px;
  line-height:1.7;
  color:var(--c-text-light);
}

/* ============================================================
   BREADCRUMB (sub-pages)
   ============================================================ */
.breadcrumb{
  padding:10px 0;
  font-size:12px;
  color:var(--c-text-muted);
}
.breadcrumb a{color:var(--c-text-muted)}
.breadcrumb a:hover{color:var(--c-primary)}
.breadcrumb__sep{margin:0 6px}

/* ============================================================
   FILTER BAR (sub-pages)
   ============================================================ */
.filter-bar{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid var(--c-border);
  margin-bottom:20px;
}
.filter-bar__tabs{
  display:flex;
  gap:0;
}
.filter-bar__tab{
  padding:6px 14px;
  font-size:13px;
  color:var(--c-text-muted);
  border-bottom:2px solid transparent;
  transition:var(--transition);
}
.filter-bar__tab:hover{
  color:var(--c-text);
}
.filter-bar__tab.is-active{
  color:var(--c-primary);
  border-bottom-color:var(--c-primary);
  font-weight:600;
}

/* ============================================================
   PAGINATION (sub-pages)
   ============================================================ */
.pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:32px 0;
}
.pagination__item{
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  font-size:13px;
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  transition:var(--transition);
}
.pagination__item:hover{
  border-color:var(--c-primary);
  color:var(--c-primary);
}
.pagination__item.is-active{
  background:var(--c-primary);
  color:#fff;
  border-color:var(--c-primary);
}

/* ============================================================
   SUB-PAGE SIDEBAR (TOC, Author)
   ============================================================ */
.toc{
  background:var(--c-bg-alt);
  padding:16px 20px;
  border-radius:var(--radius);
  margin-bottom:24px;
}
.toc__title{
  font-size:14px;
  font-weight:700;
  margin-bottom:10px;
}
.toc__list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.toc__item a{
  font-size:13px;
  color:var(--c-text-light);
  line-height:1.5;
}
.toc__item a:hover{
  color:var(--c-primary);
}

.author-box{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px;
  background:var(--c-bg-alt);
  border-radius:var(--radius);
}
.author-box__avatar{
  width:56px;
  height:56px;
  border-radius:50%;
  overflow:hidden;
  flex-shrink:0;
}
.author-box__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.author-box__name{
  font-size:14px;
  font-weight:700;
}
.author-box__bio{
  font-size:12px;
  color:var(--c-text-light);
  margin-top:2px;
}

/* ============================================================
   ARTICLE PROSE (detail pages)
   ============================================================ */
.prose{
  font-size:15px;
  line-height:1.9;
  color:var(--c-text);
}
.prose h2{
  font-size:20px;
  margin:2rem 0 1rem;
  padding-bottom:8px;
  border-bottom:2px solid var(--c-primary);
}
.prose h3{
  font-size:17px;
  margin:1.5rem 0 .75rem;
}
.prose p{margin-bottom:1rem}
.prose ul,.prose ol{margin:1rem 0;padding-left:1.5rem}
.prose li{margin-bottom:.5rem;list-style:disc}
.prose ol li{list-style:decimal}
.prose blockquote{
  border-left:3px solid var(--c-primary);
  padding:12px 16px;
  margin:1rem 0;
  background:var(--c-bg-alt);
  font-size:14px;
}
.prose img{border-radius:var(--radius);margin:1rem 0}
.prose table{width:100%;border-collapse:collapse;margin:1rem 0}
.prose th,.prose td{border:1px solid var(--c-border);padding:8px 12px;font-size:13px;text-align:left}
.prose th{background:var(--c-bg-alt);font-weight:600}

/* ============================================================
   AUTHOR PROFILE (column/author page)
   ============================================================ */
.author-profile{
  background:#fff;
  padding:48px 0;
  border-bottom:1px solid var(--c-border-light);
}
.author-profile__inner{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:32px;
  align-items:start;
}
.author-profile__avatar{
  width:160px;
  height:160px;
  border-radius:50%;
  overflow:hidden;
  flex-shrink:0;
}
.author-profile__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.author-profile__name{
  font-size:24px;
  font-weight:700;
  margin-bottom:6px;
}
.author-profile__role{
  font-size:14px;
  font-weight:600;
  color:var(--c-primary);
  margin-bottom:12px;
}
.author-profile__bio{
  font-size:14px;
  line-height:1.8;
  color:var(--c-text-light);
  margin-bottom:16px;
}
.author-profile__tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.author-profile__tag{
  display:inline-block;
  font-size:12px;
  font-weight:600;
  color:var(--c-primary);
  background:rgba(26,54,93,.08);
  padding:4px 12px;
  border-radius:20px;
}

/* Pagination */
.pagination{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:4px;
}
.pagination__item{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:36px;
  padding:0 10px;
  font-size:14px;
  font-weight:500;
  border:1px solid var(--c-border-light);
  border-radius:4px;
  color:var(--c-text);
  text-decoration:none;
}
.pagination__item:hover{
  background:var(--c-bg-alt);
  border-color:var(--c-primary);
  color:var(--c-primary);
}
.pagination__item.is-current{
  background:var(--c-primary);
  border-color:var(--c-primary);
  color:#fff;
}
.pagination__next{
  padding:0 14px;
}

/* ============================================================
   PAGE HERO (sub-pages)
   ============================================================ */
.page-hero{
  background:var(--c-primary);
  color:#fff;
  padding:40px 0;
}
.page-hero--dark{
  background:var(--c-primary-dark);
}
.page-hero__title{
  font-size:28px;
  font-weight:700;
  margin-bottom:8px;
}
.page-hero__desc{
  font-size:14px;
  opacity:.85;
}

/* ============================================================
   RESPONSIVE: Tablet (768-1023px)
   ============================================================ */
@media(min-width: 1024px){
  .seminar-card__image img{
    height: 210px;
    object-fit: cover;
    object-position: center;
  }
  .column-articles{
    padding-left: 68px;
  }
  .column-more{
    padding-left: 68px;
    text-align: center;
  }
}
@media(max-width:1023px){
  .two-col{
    grid-template-columns:1fr;
    gap:32px;
  }
  .two-col__side{
    position:static;
  }
  .pickup{
    grid-template-columns:1fr 1fr;
  }
  .cat-nav{
    grid-template-columns:repeat(3,1fr);
  }
  .editors-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .cat-section__content{
    grid-template-columns:1fr;
  }
  .seminar-featured__inner{
    grid-template-columns:1fr 1fr;
  }
  .seminar-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .seminar-grid .seminar-card:last-child{
    grid-column:1 / -1;
    max-width:50%;
  }
  .cta-grid{
    grid-template-columns:1fr;
  }
  .card-grid--3{grid-template-columns:repeat(2,1fr)}
  .card-grid--4{grid-template-columns:repeat(2,1fr)}
}

/* ============================================================
   RESPONSIVE: SP (767px以下)
   ============================================================ */
@media(max-width:767px){
  :root{
    --gap:16px;
  }
  /* Pickup SP */
  .pickup{
    grid-template-columns:1fr;
  }
  .pickup__main .card__title{
    font-size:17px;
  }
  .pickup__sub-item{
    grid-template-columns:120px 1fr;
  }
  .pickup__sub-item img{
    width:120px;
    height:90px;
  }

  /* Category Nav SP */
  .cat-nav{
    grid-template-columns:repeat(3,1fr);
    gap:8px;
  }
  .cat-nav__item{
    padding:14px 6px 12px;
  }
  .cat-nav__icon{
    width:44px;
    height:44px;
  }
  .cat-nav__icon svg{
    width:22px;
    height:22px;
  }
  .cat-nav__label{
    font-size:12px;
  }

  /* Editors Grid SP */
  .editors-grid{
    grid-template-columns:repeat(2,1fr);
    gap:12px;
  }
  .editors-card__title{
    font-size:13px;
  }

  /* Seminar SP */
  .seminar-featured__inner{
    grid-template-columns:1fr;
  }
  .seminar-featured__image img{
    min-height:200px;
    max-height:220px;
  }
  .seminar-featured__content{
    padding:20px;
  }
  .seminar-featured__title{
    font-size:17px;
  }
  .seminar-featured__badge{
    left:16px;
  }
  .seminar-hero__title{
    font-size:20px;
  }
  .seminar-grid{
    grid-template-columns:1fr;
  }
  .seminar-grid .seminar-card:last-child{
    max-width:100%;
  }
  .seminar-bottom-cta__actions{
    flex-direction:column;
    align-items:center;
  }

  /* Author Profile SP */
  .author-profile{
    padding:32px 0;
  }
  .author-profile__inner{
    grid-template-columns:1fr;
    text-align:center;
  }
  .author-profile__avatar{
    width:120px;
    height:120px;
    margin:0 auto;
  }
  .author-profile__tags{
    justify-content:center;
  }

  /* CTA SP */
  .cta-grid{
    grid-template-columns:1fr;
  }

  /* Card Grid SP */
  .card-grid--2{grid-template-columns:1fr}
  .card-grid--3{grid-template-columns:1fr}
  .card-grid--4{grid-template-columns:repeat(2,1fr)}


  /* SP Fixed Bar */
  .sp-fixed-bar{
    display:block;
  }

  /* Section */
  .section{
    padding:24px 0;
  }
  .section__header{
    margin-bottom:16px;
  }
  .section__title{
    font-size:16px;
  }

  /* Sidebar */
  .ranking-tabs{
    overflow-x:auto;
    flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;
  }

  /* Column */
  .column-grid{
    grid-template-columns:1fr;
    gap:0;
  }
  .column-block{
    border-bottom:1px solid var(--c-border-light) !important;
  }
  .column-block:last-child{
    border-bottom:none !important;
  }

  /* New list */
  .new-list__item{
    flex-wrap:wrap;
  }
  .new-list__title{
    white-space:normal;
    font-size:13px;
    flex-basis: 100%;
  }

  /* Page Hero */
  .page-hero__title{
    font-size:22px;
  }
}

/* ============================================================
   RESPONSIVE: Small SP (479px以下)
   ============================================================ */
@media(max-width:479px){
  .editors-grid{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .editors-card__title{
    font-size:12px;
    -webkit-line-clamp:2;
  }
  .pickup__sub-item{
    grid-template-columns:100px 1fr;
  }
  .pickup__sub-item img{
    width:100px;
    height:75px;
  }
  .card-grid--4{grid-template-columns:1fr}
  .btn--accent{
    font-size: 13px;
    flex-basis: 71%;
    flex-grow: 0;
    flex-shrink: 0;
  }
}

/* ============================================================
   ARCHIVE SIDEBAR: 閲覧ランキングのサムネ非表示
   ============================================================ */
.src-acv-ranking-thumb{
  display:none !important;
}

/* ============================================================
   ARCHIVE SIDEBAR: お役立ち資料 (white-paper) ブロック
   ============================================================ */
.isrc-acv-whitepaper{
  margin-top:30px;
}
.isrc-acv-whitepaper .isrc-archive-sidebar{
  margin-bottom:12px;
}
.editors-grid--sidebar{
  display:flex;
  flex-direction:column;
  grid-template-columns:none;
  gap:14px;
}
.editors-grid--sidebar .editors-card{
  display:flex;
  gap:10px;
  align-items:flex-start;
  background:#fff;
  padding:0;
}
.editors-grid--sidebar .editors-card__image{
  flex:0 0 100px;
  width:100px;
}
.editors-grid--sidebar .editors-card__image img{
  width:100px;
  height:auto;
  display:block;
}
.editors-grid--sidebar .editors-card__body{
  flex:1;
  padding:0;
}
.editors-grid--sidebar .editors-card__title{
  font-size:13px;
  -webkit-line-clamp:3;
  line-height:1.5;
}
.editors-grid--sidebar .editors-card__title a,
.editors-grid--sidebar .editors-card__title a:visited{
  color:#222;
  text-decoration:none;
}
.editors-grid--sidebar .editors-card__title a:hover{
  color:#000;
  text-decoration:underline;
}
.isrc-acv-cta{
  margin-top:24px;
}
.isrc-acv-whitepaper__empty{
  font-size:12px;
  color:#888;
}
