/* Page-specific styles for column-list.html. */

:root{
  --ink:    #0C1220;
  --ink2:   #111827;
  --white:  #ffffff;
  --g50:    #F7F8FC;
  --g100:   #EEF1F8;
  --blue:   #2563EB;
  --blue2:  #3B82F6;
  --cyan:   #06B6D4;
  --text:   #111827;
  --muted:  #6B7280;
  --lt-ln:  #E5E9F2;
  --dk-ln:  rgba(255,255,255,0.1);
  
  --c-dev:    #2563EB;
  --c-design: #DB2777;
  --c-ops:    #06B6D4;
  --c-biz:    #F59E0B;
}

.col-hero{
  background:var(--ink);
  padding:104px 20px 40px;
  position:relative;overflow:hidden;
}

.col-hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 60% at 15% 0%, rgba(37,99,235,.18) 0%,transparent 55%),
    radial-gradient(ellipse 60% 50% at 100% 30%, rgba(6,182,212,.14) 0%,transparent 55%),
    radial-gradient(ellipse 50% 40% at 50% 100%, rgba(219,39,119,.08) 0%,transparent 60%);
  pointer-events:none;
}

.col-hero::after{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:48px 48px;
  pointer-events:none;
}

.col-hero-inner{position:relative;z-index:2;max-width:var(--contents-width, var(--contents-standard-width));margin:0 auto;}

.col-eyebrow{
  font-family:"DM Mono",monospace;font-size:.625rem;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--cyan);margin-bottom:16px;
  display:inline-flex;align-items:center;gap:8px;
}

.col-eyebrow::before{content:"";display:block;width:18px;height:1px;background:var(--cyan);opacity:.6;}

.col-hero h1{
  font-size:clamp(1.75rem,7vw,3.5rem);font-weight:700;
  line-height:1.16;letter-spacing:-.02em;color:#fff;margin-bottom:14px;
}

.col-hero h1 em{font-style:normal;color:var(--cyan);}

.col-hero-sub{
  font-size:.875rem;color:rgba(255,255,255,.5);
  line-height:1.8;max-width:520px;margin-bottom:28px;
}

.col-stat-row{display:flex;gap:18px;flex-wrap:wrap;}

.col-stat{
  display:flex;align-items:baseline;gap:6px;
  font-family:"DM Mono",monospace;
}

.col-stat-n{font-size:1.375rem;font-weight:500;color:#fff;letter-spacing:-.02em;}

.col-stat-n .pulse-dot{
  display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--cyan);margin-right:6px;
  box-shadow:0 0 0 0 rgba(6,182,212,.6);
  animation:pulse 2s infinite;
}

@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(6,182,212,.55);}
  70%{box-shadow:0 0 0 7px rgba(6,182,212,0);}
  100%{box-shadow:0 0 0 0 rgba(6,182,212,0);}
}

.col-stat-l{font-size:.625rem;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.06em;}

.cat-filter-sec{
  background:var(--ink);position:sticky;top:62px;z-index:120;
  border-bottom:1px solid var(--dk-ln);
  padding:14px 0 14px;
}

.cat-filter-track{
  display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding:0 20px;scrollbar-width:none;
}

.cat-filter-track::-webkit-scrollbar{display:none;}

.cat-chip{
  flex-shrink:0;
  font-family:"DM Mono",monospace;font-size:.6875rem;font-weight:500;
  letter-spacing:.04em;white-space:nowrap;
  padding:9px 16px;border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.03);color:rgba(255,255,255,.55);
  cursor:pointer;text-decoration:none;
  transition:border-color .2s,background .2s,color .2s;
}

.cat-chip .dot{display:none;}

.cat-chip:hover{color:#fff;border-color:rgba(255,255,255,.3);}

.cat-chip.active{background:#fff;color:var(--ink);border-color:#fff;}

.cat-chip.active .dot{background:var(--ink) !important;}

.feat-sec{background:var(--g50);padding:32px 20px 12px;}

.feat-card{
  max-width:var(--contents-width, var(--contents-standard-width));margin:0 auto;
  display:flex;flex-direction:column;
  background:var(--ink);border-radius:18px;overflow:hidden;
  text-decoration:none;color:inherit;
  position:relative;
  box-shadow:0 16px 48px rgba(15,23,42,.16);
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s;
}

.feat-card:hover{transform:translateY(-4px);box-shadow:0 24px 64px rgba(37,99,235,.22);}

.feat-media{
  position:relative;height:200px;
  background:
    radial-gradient(ellipse 90% 80% at 20% 0%, rgba(37,99,235,.5) 0%,transparent 60%),
    radial-gradient(ellipse 70% 70% at 100% 100%, rgba(6,182,212,.4) 0%,transparent 60%),
    linear-gradient(135deg,#0C1220 0%,#1E293B 100%);
  overflow:hidden;
}

.feat-media-img{
  position:relative;z-index:1;
  width:100%;height:100%;object-fit:contain;display:block;
}

.feat-media::after{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:34px 34px;
}

.feat-media-icon{
  position:absolute;right:18px;bottom:-18px;
  font-size:5.5rem;line-height:1;opacity:.16;
  transform:rotate(-8deg);
}

.feat-new-badge{
  position:absolute;top:16px;left:16px;z-index:2;
  font-family:"DM Mono",monospace;font-size:.625rem;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;
  background:var(--cyan);color:var(--ink);
  padding:5px 11px;border-radius:999px;
}

.feat-body{padding:24px 22px 26px;}

.feat-cat{
  font-family:"DM Mono",monospace;font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;
}

.feat-cat .dot{width:6px;height:6px;border-radius:50%;}

.feat-ttl{
  font-size:1.3125rem;font-weight:700;color:#fff;line-height:1.32;
  letter-spacing:-.01em;margin-bottom:10px;
}

.feat-desc{font-size:.8125rem;color:rgba(255,255,255,.5);line-height:1.7;margin-bottom:18px;}

.feat-meta{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  font-family:"DM Mono",monospace;font-size:.6875rem;color:rgba(255,255,255,.35);
}

.feat-meta .arrow{
  margin-left:auto;color:var(--cyan);font-size:.875rem;
  transition:transform .25s;
}

.feat-card:hover .feat-meta .arrow{transform:translateX(5px);}

.grid-sec{padding:36px 20px 64px;}

.grid-inner{max-width:var(--contents-width, var(--contents-standard-width));margin:0 auto;}

.grid-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;}

.grid-head h2{font-size:.8125rem;font-weight:600;color:var(--text);letter-spacing:.01em;}

.grid-count{font-family:"DM Mono",monospace;font-size:.6875rem;color:var(--muted);}

.article-grid{
  display:grid;grid-template-columns:1fr;gap:16px;
}

.art-card{
  display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--lt-ln);
  border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s;
  position:relative;
}

.art-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 36px rgba(37,99,235,.12);
  border-color:transparent;
}

.art-media{
  position:relative;height:148px;flex-shrink:0;
  overflow:hidden;
}

.art-media-bg{
  position:absolute;inset:0;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}

.art-media-img{
  position:relative;z-index:1;
  width:100%;height:100%;object-fit:contain;display:block;
}

.art-card:hover .art-media-bg{transform:scale(1.06);}

.art-media-icon{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:2.875rem;
}

.art-media.m-dev .art-media-bg{background:linear-gradient(135deg,#1d4ed8 0%,#1e3a8a 100%);}

.art-media.m-design .art-media-bg{background:linear-gradient(135deg,#db2777 0%,#831843 100%);}

.art-media.m-ops .art-media-bg{background:linear-gradient(135deg,#06b6d4 0%,#0e7490 100%);}

.art-media.m-biz .art-media-bg{background:linear-gradient(135deg,#f59e0b 0%,#b45309 100%);}

.art-media::after{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(circle at 30% 20%,rgba(255,255,255,.18) 0%,transparent 45%);
}

.art-time-badge{
  position:absolute;bottom:10px;right:10px;z-index:2;
  font-family:"DM Mono",monospace;font-size:.625rem;color:#fff;
  background:rgba(0,0,0,.35);backdrop-filter:blur(4px);
  padding:4px 9px;border-radius:999px;
}

.art-body{padding:18px 18px 20px;display:flex;flex-direction:column;flex:1;}

.art-cat{
  font-family:"DM Mono",monospace;font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:6px;margin-bottom:10px;
}

.art-cat .dot{width:6px;height:6px;border-radius:50%;}

.art-ttl{
  font-size:.9375rem;font-weight:600;color:var(--text);line-height:1.45;
  letter-spacing:-.005em;margin-bottom:8px;
}

.art-desc{font-size:.7812rem;color:var(--muted);line-height:1.65;margin-bottom:14px;flex:1;}

.art-foot{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:12px;border-top:1px solid var(--lt-ln);
}

.art-date{font-family:"DM Mono",monospace;font-size:.6562rem;color:var(--muted);}

.art-readmore{
  font-family:"DM Mono",monospace;font-size:.6562rem;letter-spacing:.04em;
  color:var(--blue);display:inline-flex;align-items:center;gap:4px;
}

.art-readmore .arrow{transition:transform .25s;}

.art-card:hover .art-readmore .arrow{transform:translateX(4px);}

.column-pagination{
  display:flex;justify-content:center;align-items:center;
  text-align:center;margin-top:32px;
}

.column-pagination ul.page-numbers{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  list-style:none;margin:0;padding:0;flex-wrap:wrap;
}

.column-pagination li{list-style:none;margin:0;padding:0;}

.column-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-width:40px;min-height:40px;
  padding:10px 14px;border-radius:999px;
  background:var(--white);
  color:var(--text);text-decoration:none;
  font-family:"DM Mono",monospace;font-size:.75rem;font-weight:500;
  letter-spacing:.04em;line-height:1;
}

.column-pagination .page-numbers.current{
  background:var(--ink);border-color:var(--ink);color:#fff;
}

.column-pagination a.page-numbers:hover{
  border-color:var(--blue);background:rgba(37,99,235,.04);
}

.column-pagination .page-numbers.current:hover{
  background:var(--ink);border-color:var(--ink);color:#fff;
}

.rank-sec{background:var(--ink);padding:56px 20px;border-top:1px solid var(--dk-ln);position:relative;overflow:hidden;}

.rank-sec::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 50% at 90% 10%, rgba(219,39,119,.1) 0%,transparent 60%);
  pointer-events:none;
}

.rank-inner{max-width:var(--contents-width, var(--contents-standard-width));margin:0 auto;position:relative;z-index:2;}

.rank-head{margin-bottom:28px;}

.rank-head .eyebrow{
  font-family:"DM Mono",monospace;font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cyan);margin-bottom:8px;display:block;
}

.rank-head h2{
  font-size:clamp(1.375rem,5vw,2rem);font-weight:700;letter-spacing:-.02em;color:#fff;
}

.rank-head h2 em{font-style:normal;color:var(--cyan);}

.rank-list{display:flex;flex-direction:column;gap:10px;}

.rank-item{
  display:flex;align-items:center;gap:16px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:14px;padding:16px 16px;text-decoration:none;color:inherit;
  transition:border-color .25s,background .25s,transform .2s;
}

.rank-item:hover{border-color:rgba(6,182,212,.4);background:rgba(255,255,255,.07);transform:translateX(3px);}

.rank-num{
  font-family:"DM Mono",monospace;font-size:1.625rem;font-weight:500;
  color:rgba(255,255,255,.15);letter-spacing:-.03em;flex-shrink:0;width:40px;
}

.rank-item.top .rank-num{
  background:linear-gradient(135deg,var(--cyan),var(--blue));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-fill-color:transparent;
}

.rank-body{flex:1;min-width:0;}

.rank-cat{font-family:"DM Mono",monospace;font-size:.5625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);margin-bottom:5px;}

.rank-ttl{font-size:.8438rem;font-weight:500;color:#fff;line-height:1.5;}

.rank-arrow{color:rgba(255,255,255,.3);font-size:.875rem;flex-shrink:0;transition:transform .25s,color .25s;}

.rank-item:hover .rank-arrow{transform:translateX(4px);color:var(--cyan);}

.nl-sec{background:var(--g50);padding:56px 20px;border-top:1px solid var(--lt-ln);}

.nl-card{
  max-width:var(--contents-width, var(--contents-article-width));margin:0 auto;text-align:center;
  background:var(--white);border:1px solid var(--lt-ln);border-radius:18px;
  padding:40px 24px;position:relative;overflow:hidden;
}

.nl-icon{font-size:1.875rem;margin-bottom:14px;display:block;}

.nl-card h3{font-size:1.125rem;font-weight:700;color:var(--text);margin-bottom:8px;letter-spacing:-.01em;}

.nl-card p{font-size:.8125rem;color:var(--muted);line-height:1.7;margin-bottom:22px;max-width:440px;margin-inline:auto;}

.art-card.reveal{transition-delay:calc(var(--i, 0) * 0.06s);}

@media(min-width:681px){
  .col-hero{padding:120px 32px 48px;}
  .feat-card{flex-direction:row;}
  .feat-media{width:42%;height:auto;min-height:240px;}
  .feat-body{flex:1;padding:30px 32px;display:flex;flex-direction:column;justify-content:center;}
  .feat-ttl{font-size:1.5rem;}
  .article-grid{grid-template-columns:1fr 1fr;}
  .rank-item{padding:18px 20px;}
  .nl-form{flex-direction:row;}
  .nl-input{flex:1;}
  .nl-submit{flex-shrink:0;padding:13px 24px;}
}

@media(min-width:1081px){
  body{font-size:1rem;}

  nav{padding:18px 48px;}
  .nav-toggle{display:none;}
  .nav-overlay{display:none;}
  .nav-r{
    position:static;width:auto;height:auto;
    background:none;border-left:none;backdrop-filter:none;
    flex-direction:row;align-items:center;gap:28px;
    padding:0;transform:none;overflow:visible;
  }
  .nav-link{font-size:.8125rem;padding:0;border-bottom:none;color:rgba(255,255,255,.5);}
  .nav-link:hover{color:#fff;}
  .nav-back{font-size:.6875rem;padding:0;order:0;}
  .nav-btn{font-size:.6875rem;padding:9px 20px;margin-top:0;}

  .col-hero{padding:148px 48px 64px;}
  .col-hero-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;}
  .col-hero-l{flex:1;}
  .col-hero h1{font-size:clamp(2.5rem,5vw,3.75rem);}
  .col-hero-sub{font-size:1rem;}
  .col-stat-row{flex-shrink:0;gap:28px;}

  .cat-filter-sec{top:74px;}
  .cat-filter-track{max-width:var(--contents-width, var(--contents-standard-width));margin:0 auto;padding:0 48px;justify-content:flex-start;}

  .feat-sec{padding:40px 48px 16px;}
  .feat-media{min-height:280px;}
  .feat-body{padding:36px 40px;}
  .feat-ttl{font-size:1.75rem;}
  .feat-desc{font-size:.875rem;}

  /* Main column archive: let the featured image define the card height. */
  body.post-type-archive-column .feat-card:has(.feat-media-img) .feat-media{
    width:50%;
    height:auto;
    min-height:0;
    aspect-ratio:auto;
    align-self:flex-start;
    flex:0 0 50%;
  }

  body.post-type-archive-column .feat-card:has(.feat-media-img) .feat-body{
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    width:50%;
    min-width:0;
    padding:24px 28px 20px;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    overflow:hidden;
  }

  body.post-type-archive-column .feat-card:has(.feat-media-img) .feat-ttl{
    font-size:1.5rem;
    line-height:1.32;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
  }

  body.post-type-archive-column .feat-card:has(.feat-media-img) .feat-desc{
    font-size:.8125rem;
    margin-bottom:10px;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
  }

  body.post-type-archive-column .feat-card:has(.feat-media-img) .feat-meta{
    margin-top:auto;
  }

  .grid-sec{padding:48px 48px 96px;}
  .article-grid{grid-template-columns:repeat(3,1fr);gap:20px;}
  .art-media{height:168px;}
  .art-ttl{font-size:1rem;}

  .rank-sec{padding:88px 48px;}
  .rank-item{padding:20px 24px;}
  .rank-ttl{font-size:.9062rem;}

  .nl-sec{padding:88px 48px;}
  .nl-card{padding:52px 56px;}
  .nl-card h3{font-size:1.375rem;}
  .nl-card p{font-size:.875rem;}
}

/********/
/* Page-specific styles for column-detail.html. */
/********/

.read-progress{
  position:fixed;top:0;left:0;height:2px;z-index:310;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  width:0%;transition:width .1s linear;
}

.art-hero{
  background:var(--ink);
  padding:100px 20px 36px;
  position:relative;overflow:hidden;
}

.art-hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 60% at 20% 0%, rgba(37,99,235,.22) 0%,transparent 55%),
    radial-gradient(ellipse 55% 45% at 100% 40%, rgba(6,182,212,.12) 0%,transparent 55%);
  pointer-events:none;
}

.art-hero::after{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:48px 48px;
  pointer-events:none;
}

.art-hero-inner{position:relative;z-index:2;max-width:var(--contents-width, var(--contents-article-width));margin:0 auto;}

.bc-trail{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-family:"DM Mono",monospace;font-size:.6562rem;letter-spacing:.03em;
  color:rgba(255,255,255,.35);margin-bottom:22px;
}

.bc-trail a{color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s;}

.bc-trail a:hover{color:#fff;}

.bc-trail .sep{color:rgba(255,255,255,.2);}

.art-cat-badge{
  font-family:"DM Mono",monospace;font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:7px;margin-bottom:18px;
  color:var(--cyan);
}

.art-cat-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);}

.art-hero h1{
  font-size:clamp(1.625rem,6.5vw,2.75rem);font-weight:700;
  line-height:1.34;letter-spacing:-.02em;color:#fff;margin-bottom:18px;
}

.art-hero-lead{
  font-size:.9062rem;color:rgba(255,255,255,.5);line-height:1.8;margin-bottom:28px;
}

.art-meta-row{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding-top:22px;border-top:1px solid var(--dk-ln);
}

.art-avatar{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;overflow:hidden;
  background:linear-gradient(135deg,var(--blue),var(--cyan));
  display:flex;align-items:center;justify-content:center;
  font-size:.9375rem;font-weight:600;color:#fff;
}

.art-avatar img{
  width:100%;height:100%;object-fit:cover;display:block;
}

.art-meta-txt{display:flex;flex-direction:column;gap:2px;}

.art-meta-name{font-size:.7812rem;font-weight:600;color:#fff;}

.art-meta-sub{
  font-family:"DM Mono",monospace;font-size:.6562rem;color:rgba(255,255,255,.4);
  display:flex;gap:10px;flex-wrap:wrap;
}

.art-feat-media{
  max-width:var(--contents-width, var(--contents-feature-width));margin:0 auto;padding:0 20px;
  transform:translateY(20px);margin-top:-20px;position:relative;z-index:3;
}

.art-feat-media-inner{
  height:200px;border-radius:18px;overflow:hidden;position:relative;
  background:
    radial-gradient(ellipse 90% 80% at 20% 0%, rgba(37,99,235,.55) 0%,transparent 60%),
    radial-gradient(ellipse 70% 70% at 100% 100%, rgba(6,182,212,.45) 0%,transparent 60%),
    linear-gradient(135deg,#0C1220 0%,#1E293B 100%);
  box-shadow:0 20px 50px rgba(15,23,42,.18);
}

.art-feat-media-inner::after{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:34px 34px;
}

.art-feat-icon{
  position:absolute;right:24px;bottom:-22px;font-size:6.875rem;line-height:1;opacity:.18;
  transform:rotate(-8deg);
}

.art-layout-sec{background:var(--white);padding:48px 20px 0;}

.art-layout{max-width:var(--contents-width, var(--contents-article-width));margin:0 auto;display:flex;flex-direction:column;gap:36px;}

.toc-card{
  width:min(100%,560px);
  background:var(--g50);border:1px solid var(--lt-ln);border-radius:14px;
  padding:16px 18px;
}

.toc-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}

.toc-title{
  font-size:.9375rem;font-weight:700;color:var(--text);line-height:1.5;
}

.toc-toggle{
  flex-shrink:0;
  padding:0;
  border:0;
  background:transparent;
  color:var(--blue);
  font-family:"DM Mono",monospace;
  font-size:.6875rem;
  line-height:1.5;
  cursor:pointer;
}

.toc-list{
  counter-reset:toc;
  display:flex;flex-direction:column;gap:7px;
  margin:14px 0 0;
  padding:12px 0 0;
  border-top:1px solid var(--lt-ln);
  list-style:none;
}

.toc-list[hidden]{display:none;}

.toc-item{
  counter-increment:toc;
  margin:0;
  padding:0;
}

.toc-list a{
  display:grid;
  grid-template-columns:2.25em minmax(0,1fr);
  align-items:baseline;
  gap:8px;
  color:var(--text);
  font-size:.7812rem;
  line-height:1.55;
  text-decoration:none;
  transition:color .2s;
}

.toc-list a::before{
  content:counter(toc, decimal-leading-zero);
  font-family:"DM Mono",monospace;
  font-size:.6562rem;
  color:var(--cyan);
}

.toc-list a:hover{color:var(--blue);}

.toc-list .toc-label{min-width:0;}

/* Keep TOC hierarchy stronger than the generic .art-prose li rule below. */
.art-prose .toc-list{
  padding-left:0;
}

.art-prose .toc-item.toc-level-2{
  padding-left:0;
}

.art-prose .toc-item.toc-level-3{
  padding-left:16px;
}

.art-prose .toc-item.toc-level-4{
  padding-left:32px;
}

.art-prose .toc-item.toc-level-5{
  padding-left:48px;
}

.art-prose .toc-item.toc-level-6{
  padding-left:64px;
}

.art-prose .toc-level-2 > a{
  font-size:.7812rem;
  font-weight:600;
}

.art-prose .toc-level-3 > a{
  font-size:.7188rem;
}

.art-prose .toc-level-4 > a{
  font-size:.6875rem;
}

.art-prose .toc-level-5 > a{
  font-size:.6562rem;
}

.art-prose .toc-level-6 > a{
  font-size:.625rem;
}

.art-prose{font-size:.9688rem;line-height:1.9;color:var(--text);}

.art-prose > * + *{margin-top:22px;}

.art-prose h2{
  width:100%;
  max-width:100%;
  margin-top:48px;
  padding:0 12px 8px;
  border-bottom:4px solid #2589CF;
  color:var(--text);
  font-size:clamp(1.25rem,4.5vw,1.625rem);
  font-weight:700;
  line-height:1.4;
  letter-spacing:-.015em;
  scroll-margin-top:90px;
}

.art-prose h2 .h-num{
  font-family:"DM Mono",monospace;font-size:.8125rem;color:var(--cyan);
  display:block;margin-bottom:6px;letter-spacing:.06em;
}

.art-prose h3{
  font-size:1.0625rem;font-weight:700;color:var(--text);letter-spacing:-.005em;
  margin-top:32px;padding-left:12px;border-left:3px solid var(--blue);
  scroll-margin-top:90px;
}


.art-prose .wp-block-group.is-style-wp-outsource-heading-box > .wp-block-heading:first-child,
.art-prose .wp-block-group.is-style-wp-outsource-heading-box .wp-outsource-heading-box-title{
  margin:0;
  padding-left:22px;
  border-left:0;
  scroll-margin-top:0;
}

.art-prose h4{
  font-size:.9375rem;font-weight:700;color:var(--text);margin-top:24px;
  display:flex;align-items:center;gap:8px;
}

.art-prose h4::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);flex-shrink:0;
}

.art-prose h5{
  font-size:.8438rem;font-weight:600;color:var(--ink2);margin-top:20px;
  font-family:"DM Mono",monospace;letter-spacing:.02em;text-transform:uppercase;
}

.art-prose h6{
  font-size:.75rem;font-weight:600;color:var(--muted);margin-top:16px;
  font-family:"DM Mono",monospace;letter-spacing:.04em;text-transform:uppercase;
}

.art-prose p.lead-p{font-size:1.0625rem;color:var(--ink2);font-weight:500;line-height:1.7;}

.art-prose ul,.art-prose ol{padding-left:1.3em;gap:8px;font-size:1em;}

.art-prose ol{padding-left:1.65em;}

.art-prose li{padding-left:4px;}

.art-prose ul li::marker{color:var(--cyan);}

.art-prose ol li::marker{
  font-size:.75em;
}


.art-prose table{
  font-size:.9em;
}

.art-figure{margin-top:22px;}

.art-figure-media{
  border-radius:12px;overflow:hidden;position:relative;height:170px;
  display:flex;align-items:center;justify-content:center;
}

.art-figure-media.bg-before{background:linear-gradient(135deg,#374151,#1F2937);}

.art-figure-media.bg-after{background:linear-gradient(135deg,#0e7490,#0369a1);}

.art-figure-icon{font-size:3.25rem;opacity:.85;}

.art-figure-cap{
  font-size:.75rem;color:var(--muted);text-align:center;margin-top:10px;
  font-family:"DM Mono",monospace;letter-spacing:.02em;
}

.art-prose blockquote{
  border-left:3px solid var(--cyan);
  padding:4px 0 4px 18px;
  font-size:.9375rem;color:var(--ink2);font-style:italic;
}

.art-code{
  background:var(--ink);border-radius:10px;padding:16px 18px;
  font-family:"DM Mono",monospace;font-size:.7812rem;color:#E2E8F0;
  line-height:1.7;overflow-x:auto;-webkit-overflow-scrolling:touch;
}

.callout{
  background:rgba(37,99,235,.06);border:1px solid rgba(37,99,235,.18);
  border-radius:12px;padding:18px 20px;display:flex;gap:14px;align-items:flex-start;
}

.callout-icon{font-size:1.125rem;flex-shrink:0;}

.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px;}

.stat-box{
  background:var(--g50);border:1px solid var(--lt-ln);border-radius:12px;
  padding:18px 16px;text-align:center;
}

.stat-box .num{
  font-family:"DM Mono",monospace;font-size:1.875rem;font-weight:500;color:var(--blue);letter-spacing:-.02em;
}

.stat-box .num.c{color:var(--cyan);}

.stat-box .lbl{font-size:.6875rem;color:var(--muted);margin-top:4px;}

.art-tags{display:flex;flex-wrap:wrap;gap:8px;padding-top:8px;}

.author-card{
  display:flex;gap:16px;align-items:flex-start;
  background:var(--g50);border:1px solid var(--lt-ln);border-radius:16px;
  padding:22px;
}

.author-avatar{
  width:52px;height:52px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--blue),var(--cyan));
  display:flex;align-items:center;justify-content:center;
  font-size:1.1875rem;font-weight:600;color:#fff;
}

.author-info-lbl{font-family:"DM Mono",monospace;font-size:.5938rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);margin-bottom:4px;}

.author-name{font-size:.9375rem;font-weight:700;color:var(--text);margin-bottom:6px;}

.author-bio{font-size:.8125rem;color:var(--muted);line-height:1.7;}

.related-sec{background:var(--ink);padding:56px 20px;margin-top:48px;border-top:1px solid var(--dk-ln);}

.related-inner{max-width:var(--contents-width, var(--contents-standard-width));margin:0 auto;}

.related-head{margin-bottom:24px;}

.related-head .eyebrow{
  font-family:"DM Mono",monospace;font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cyan);margin-bottom:8px;display:block;
}

.related-head h2{font-size:clamp(1.25rem,5vw,1.75rem);font-weight:700;letter-spacing:-.02em;color:#fff;}

.related-grid{display:grid;grid-template-columns:1fr;gap:16px;}

.rel-card{
  display:flex;flex-direction:column;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;
  transition:transform .25s,border-color .25s;
}

.rel-card:hover{transform:translateY(-3px);border-color:rgba(6,182,212,.4);}

.rel-media{height:120px;position:relative;overflow:hidden;}

.rel-media-img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}

.rel-media.m-dev{background:linear-gradient(135deg,#1d4ed8,#1e3a8a);}

.rel-media.m-design{background:linear-gradient(135deg,#db2777,#831843);}

.rel-media.m-ops{background:linear-gradient(135deg,#06b6d4,#0e7490);}

.rel-media.m-biz{background:linear-gradient(135deg,#f59e0b,#b45309);}

.rel-media-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:2.25rem;}

.rel-body{padding:16px 16px 18px;}

.rel-cat{font-family:"DM Mono",monospace;font-size:.5938rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);margin-bottom:8px;display:block;}

.rel-ttl{font-size:.875rem;font-weight:600;color:#fff;line-height:1.5;}

.adj-nav-sec{background:var(--g50);padding:36px 20px;}

.nl-sec{background:var(--g50);padding:0 20px 56px;}

.nl-card{
  max-width:var(--contents-width, var(--contents-article-width));margin:0 auto;text-align:center;
  background:var(--white);border:1px solid var(--lt-ln);border-radius:18px;
  padding:36px 24px;position:relative;overflow:hidden;
}

.nl-icon{font-size:1.75rem;margin-bottom:12px;display:block;}

.nl-card h3{font-size:1.0625rem;font-weight:700;color:var(--text);margin-bottom:8px;letter-spacing:-.01em;}

.nl-card p{font-size:.8125rem;color:var(--muted);line-height:1.7;margin-bottom:20px;max-width:420px;margin-inline:auto;}

@media(min-width:681px){
  .art-hero{padding:120px 32px 44px;}
  .art-hero h1{font-size:clamp(2rem,5vw,3rem);}
  .art-feat-media-inner{height:280px;}
  .stat-row{grid-template-columns:repeat(3,1fr);}
  .related-grid{grid-template-columns:1fr 1fr;}
  .adj-nav{flex-direction:row;}
  .adj-link{flex:1;}
  .nl-form{flex-direction:row;}
  .nl-input{flex:1;}
  .nl-submit{flex-shrink:0;padding:13px 24px;}
}

@media(min-width:1081px){
  body{font-size:1rem;}

  nav.site-nav{padding:18px 48px;}
  .nav-toggle{display:none;}
  .nav-overlay{display:none;}
  .nav-r{
    position:static;width:auto;height:auto;
    background:none;border-left:none;backdrop-filter:none;
    flex-direction:row;align-items:center;gap:28px;
    padding:0;transform:none;overflow:visible;
  }
  .nav-link{font-size:.8125rem;padding:0;border-bottom:none;color:rgba(255,255,255,.5);}
  .nav-link:hover{color:#fff;}
  .nav-back{font-size:.6875rem;padding:0;order:0;}
  .nav-btn{font-size:.6875rem;padding:9px 20px;margin-top:0;}

  .art-hero{padding:152px 48px 56px;}
  .art-hero h1{font-size:clamp(2.375rem,4.5vw,3.375rem);line-height:1.28;}
  .art-hero-lead{font-size:1rem;}
  .art-feat-media-inner{height:340px;}
  .art-feat-icon{font-size:8.75rem;}

  .art-layout-sec{padding:64px 48px 0;}
  .art-layout{gap:44px;}
  .toc-card{padding:18px 20px;}

  .art-prose{font-size:1.0312rem;}
  .art-prose h2{font-size:1.75rem;margin-top:56px;}
  .art-prose h3{font-size:1.125rem;}
  .art-prose p.lead-p{font-size:1.125rem;}

  .related-sec{padding:88px 48px;margin-top:64px;}
  .related-grid{grid-template-columns:repeat(3,1fr);}

  .adj-nav-sec{padding:48px 48px;}

  .nl-sec{padding:0 48px 88px;}
  .nl-card{padding:48px 56px;}
  .nl-card h3{font-size:1.3125rem;}
}

/* Keep product/archive thumbnails full-width without distorting their aspect ratio. */
.art-media{
  height:auto;
  aspect-ratio:16 / 9;
}

@media(min-width:1081px){
  .art-media{
    height:auto;
  }
}

/* Fill plugin archive thumbnail frames without distorting the source image. */
body.post-type-archive-gtspc_product .art-media-img,
body.tax-gtspc_product_category .art-media-img{
  object-fit:cover;
  object-position:center;
}

/* Show the full featured image only on the main column archive. */
body.post-type-archive-column .feat-media-img{
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
  border:1px solid var(--lt-ln);
  box-sizing:border-box;
}

/* Keep category featured images and regular archive cards filled as before. */
body.tax-column_category .feat-media-img,
body.post-type-archive-column .art-media-img,
body.tax-column_category .art-media-img{
  object-fit:cover;
  object-position:center;
}

/* Standard fixed pages using the column article typography. */
.wp-outsource-page-main{
  background:var(--white);
  padding:104px 20px 72px;
}

.wp-outsource-page-inner{
  width:100%;
  max-width:var(--contents-width,var(--contents-article-width));
  margin:0 auto;
}

.wp-outsource-page-title{
  margin:0 0 32px;
  color:var(--text);
  font-size:clamp(1.875rem,6vw,2.625rem);
  font-weight:700;
  line-height:1.28;
  letter-spacing:-.02em;
}

.wp-outsource-page-prose > :first-child{
  margin-top:0;
}

@media(min-width:681px){
  .wp-outsource-page-main{
    padding:120px 32px 88px;
  }

  .wp-outsource-page-title{
    margin-bottom:36px;
  }
}

@media(min-width:1081px){
  .wp-outsource-page-main{
    padding:144px 48px 104px;
  }

  .wp-outsource-page-title{
    font-size:clamp(2.125rem,3.5vw,3rem);
    margin-bottom:40px;
  }
}

/* Column detail managed CTA. */
.column-cta-sec{
  background:var(--g50);
  padding:56px 20px;
  border-top:1px solid var(--lt-ln);
}

.column-cta-card{
  max-width:var(--contents-width, var(--contents-article-width));
  margin:0 auto;
  text-align:center;
  background:var(--white);
  border:1px solid var(--lt-ln);
  border-radius:18px;
  padding:40px 24px;
  position:relative;
  overflow:hidden;
}

.column-cta-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:2px;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
}

.column-cta-card h3{
  margin:0 0 10px;
  color:var(--text);
  font-size:1.125rem;
  font-weight:700;
  line-height:1.45;
  letter-spacing:-.01em;
}

.column-cta-card p{
  max-width:520px;
  margin:0 auto 24px;
  color:var(--muted);
  font-size:.8125rem;
  line-height:1.8;
}

.column-cta-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:180px;
  padding:13px 24px;
  border-radius:8px;
  background:var(--blue);
  color:#fff;
  font-size:.8125rem;
  font-weight:600;
  line-height:1.4;
  text-decoration:none;
  transition:transform .2s,background .2s;
}

.column-cta-btn:hover{
  background:var(--blue2);
  transform:translateY(-1px);
}

@media(min-width:1081px){
  .column-cta-sec{
    padding:88px 48px;
  }

  .column-cta-card{
    padding:48px 56px;
  }

  .column-cta-card h3{
    font-size:1.3125rem;
  }

  .column-cta-card p{
    font-size:.875rem;
  }
}

/* Column detail/archive: shared CTA using the News horizontal layout. */
.single-column .sub-sec,
.single-column .sub-card,
.post-type-archive-column .sub-sec,
.post-type-archive-column .sub-card,
.tax-column_category .sub-sec,
.tax-column_category .sub-card{
  box-sizing:border-box;
}

body.single-column .sub-sec,
body.post-type-archive-column .sub-sec,
body.tax-column_category .sub-sec{
  background:var(--g50);
  padding:40px 20px;
  border-top:1px solid var(--lt-ln);
}

body.single-column .sub-card,
body.post-type-archive-column .sub-card,
body.tax-column_category .sub-card{
  max-width:var(--contents-width, var(--contents-medium-width));
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:16px;
  background:var(--white);
  border:1px solid var(--lt-ln);
  border-radius:14px;
  padding:26px 22px;
}

@media(min-width:681px){
  body.single-column .sub-card,
  body.post-type-archive-column .sub-card,
  body.tax-column_category .sub-card{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
}

@media(min-width:1081px){
  body.single-column .sub-sec,
  body.post-type-archive-column .sub-sec,
  body.tax-column_category .sub-sec{
    padding:64px 48px;
  }

  body.single-column .sub-card,
  body.post-type-archive-column .sub-card,
  body.tax-column_category .sub-card{
    padding:34px 36px;
  }

  body.single-column .sub-txt h3,
  body.post-type-archive-column .sub-txt h3,
  body.tax-column_category .sub-txt h3{
    font-size:1.0625rem;
  }
}

