/*
Theme Name: bizenya
Theme URI: https://ueki-bizenya.com
Author: three9studio
Description: 植木屋びぜん屋のオリジナルテーマ（Bootstrap 5ベース）
Version: 1.0.0
Text Domain: bizenya
*/

/* ===== Variables ===== */
:root {
  /* Primary: 明るめ深緑 */
  --t9-teal: #3d8b40;
  --t9-teal-dark: #2c6e2f;
  --t9-teal-light: #d4edda;
  --t9-teal-bg: #f2f8f3;
  /* Accent: ゴールド */
  --bz-gold: #c4944a;
  --bz-gold-light: #f5ead6;
  /* Ink */
  --t9-ink: #2a2a28;
  --t9-ink-light: #5a5a56;
  --t9-ink-muted: #8a8a84;
  /* Background */
  --t9-bg: #fffdf9;
  --t9-bg-off: #f7f5f0;
  /* Border */
  --t9-border: #e0d8cc;
  --t9-border-light: #ece6dc;
  --t9-radius: 8px;
  --t9-shadow-sm: 0 1px 3px rgba(0,0,0,0.05);
  --t9-shadow-md: 0 4px 16px rgba(44,95,45,0.07);
  --t9-shadow-lg: 0 8px 32px rgba(44,95,45,0.08);
}

/* ===== Base ===== */
body {
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--t9-ink);
  background: var(--t9-bg);
  line-height: 1.8;
  font-size: 18px;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
html { overflow-x: hidden; }
@media (min-width: 1200px) { body { font-size: 18px; } }
@media (max-width: 768px) { body { font-size: 16px; line-height: 1.9; } }
a { color: inherit; text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--t9-teal); }
img { max-width: 100%; height: auto; }

/* ===== Typography ===== */
h1,h2,h3,h4,h5,h6 { font-family: 'Noto Sans JP', sans-serif; font-weight: 700; color: var(--t9-ink); }

/* ===== Content Headings (pnlsc style, high specificity) ===== */
/* ===== Content Headings (pnlsc style) ===== */
.entry-content h1 {
  font-size: 1.6875rem;
  font-weight: 700;
  color: var(--t9-teal-dark);
  padding: 0 0 0.75rem;
  margin: 0 0 1.5rem;
  border-bottom: 3px solid var(--t9-teal);
  line-height: 1.5;
}
.entry-content h2 {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--t9-teal-dark);
  background-color: rgba(13,148,136,0.07);
  padding: 0.75rem 0.875rem;
  margin: 2.5rem -0.875rem 1.25rem -0.875rem;
  width: calc(100% + 1.75rem);
  line-height: 1.6;
  border-radius: 6px;
  border: none;
}
.entry-content h2:first-child { margin-top: 0; }

.entry-content h3 {
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--t9-teal-dark);
  padding: 0.6em 0.875rem;
  margin: 2.5rem 0 1.25rem -0.875rem;
  width: calc(100% + 1.75rem);
  border-top: 2px solid var(--t9-teal);
  border-bottom: 2px solid var(--t9-teal);
  border-left: none;
  border-right: none;
  line-height: 1.6;
  background: none;
}

.entry-content h4 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--t9-teal-dark);
  margin: 2rem 0 1rem;
  padding: 0;
  border: none;
  line-height: 1.5;
  background: none;
}

.entry-content h5 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--t9-ink);
  margin: 1.75rem 0 0.875rem;
  line-height: 1.5;
}

/* Accordion内の見出しリセット */
.entry-content .accordion h2,
.entry-content .accordion h3,
.entry-content .accordion h4,
.entry-content .accordion h5 {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  color: inherit;
  font-size: inherit;
}

/* Content heading responsive */
@media (max-width: 992px) {
  .entry-content h1 { font-size: 1.5rem; }
  .entry-content h2 { font-size: 1.375rem; }
  .entry-content h3 { font-size: 1.25rem; }
  .entry-content h4 { font-size: 1.125rem; }
  .entry-content h5 { font-size: 1rem; }
}
@media (max-width: 768px) {
  .entry-content h1 { font-size: 1.375rem; }
  .entry-content h2 { font-size: 1.25rem; padding: 0.6rem 0.75rem; margin: 2rem -0.75rem 1rem -0.75rem; width: calc(100% + 1.5rem); }
  .entry-content h3 { margin-left: -0.75rem; margin-right: -0.75rem; width: calc(100% + 1.5rem); padding-left: 0.75rem; padding-right: 0.75rem; }
  .entry-content h3 { font-size: 1.0625rem; padding: 0.5em 0.75rem; }
  .entry-content h4 { font-size: 1rem; }
  .entry-content h5 { font-size: 1rem; }
}

/* ===== Content Spacing ===== */
.entry-content { line-height: 1.9; font-size: inherit; }
.entry-content p, .site-main p { margin-bottom: 1rem; }
.entry-content ul, .entry-content ol,
.site-main ul:not(.navbar-nav):not(.nav), .site-main ol {
  margin-top: 0;
  margin-bottom: 1rem;
  padding-left: 0;
}
.entry-content li, .site-main li:not(.nav-item) { margin-bottom: 0.375rem; line-height: 1.8; }

/* Unordered list: teal dot (pnlsc style) */
.entry-content ul:not(.list-check):not(.list-note):not(.navbar-nav):not(.nav) { list-style: none; padding-left: 0; }
.entry-content ul:not(.list-check):not(.list-note):not(.navbar-nav):not(.nav) li {
  position: relative;
  padding-left: 1.5em;
}
.entry-content ul:not(.list-check):not(.list-note):not(.navbar-nav):not(.nav) li::before {
  content: "";
  position: absolute;
  left: 0.5em;
  top: 0.72em;
  width: 7px;
  height: 7px;
  background-color: var(--t9-teal);
  border-radius: 50%;
}

/* Check list */
.list-check { list-style: none; padding-left: 0; }
.list-check li { position: relative; padding-left: 1.5em; }
.list-check li::before {
  content: "\2713";
  position: absolute;
  left: 0.25em;
  top: 0;
  color: var(--t9-teal);
  font-weight: 700;
  background: none;
  width: auto;
  height: auto;
  border-radius: 0;
}

/* Note list (※) */
.list-note { list-style: none; padding-left: 0; }
.list-note li { position: relative; padding-left: 1.5em; }
.list-note li::before {
  content: "\203B";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--t9-ink-muted);
  font-size: 0.85em;
  background: none;
  width: auto;
  height: auto;
  border-radius: 0;
}

.entry-content hr { margin: 2.5rem 0; border-color: var(--t9-border); }
.entry-content img { border-radius: var(--t9-radius); margin: 1rem 0; }
.entry-content table { margin-bottom: 1.5rem; }
.entry-content blockquote {
  background-color: #f5f5f5;
  border: none;
  padding: 1.5rem 2rem;
  margin: 1.5rem 0;
  border-radius: 6px;
  font-size: 1rem;
}
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content blockquote cite {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.875rem;
  color: var(--t9-ink-muted);
}
.entry-content .row { margin-top: 1rem; margin-bottom: 2rem; }
.entry-content .accordion { margin-top: 1.5rem; margin-bottom: 1.5rem; }
.entry-content .accordion:not(.accordion--faq) .accordion-item {
  border: none;
  border-radius: 6px;
  margin-bottom: 1rem;
  overflow: hidden;
}
.entry-content .accordion:not(.accordion--faq) .accordion-button {
  background-color: var(--t9-teal-bg);
  color: var(--t9-teal-dark);
  font-weight: 600;
  border: none;
  border-radius: 6px;
  padding: 0.75rem 1.25rem;
}
.entry-content .accordion:not(.accordion--faq) .accordion-button.collapsed { border-radius: 6px; }
.entry-content .accordion:not(.accordion--faq) .accordion-button:not(.collapsed) {
  background-color: rgba(13,148,136,0.12);
  color: var(--t9-teal-dark);
  box-shadow: none;
  border-radius: 6px 6px 0 0;
}
.entry-content .accordion:not(.accordion--faq) .accordion-button:focus { box-shadow: none; }
.entry-content .accordion:not(.accordion--faq) .accordion-button {
  width: 100%;
  margin: 0;
  border-radius: 6px;
  overflow: hidden;
}
/* Accordion color variants */
.accordion--blue .accordion-button { background-color: #eef4fc; color: #1e55a0; }
.accordion--blue .accordion-button:not(.collapsed) { background-color: rgba(42,107,200,0.12); color: #1e55a0; }
.accordion--orange .accordion-button { background-color: #fef3e0; color: #b87a00; }
.accordion--orange .accordion-button:not(.collapsed) { background-color: rgba(232,160,40,0.12); color: #b87a00; }
.accordion--gray .accordion-button { background-color: #f5f5f5; color: var(--t9-ink); }
.accordion--gray .accordion-button:not(.collapsed) { background-color: #ebebeb; color: var(--t9-ink); }

.entry-content .accordion:not(.accordion--faq) .accordion-collapse {
  border: 1px solid var(--t9-border);
  border-top: none;
  border-radius: 0 0 6px 6px;
}
.entry-content .accordion h2, .entry-content .accordion h3,
.entry-content .accordion h4, .entry-content .accordion h5 {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  width: auto;
  white-space: normal;
  color: inherit;
}
/* ===== All content element spacing (unified vertical rhythm) ===== */
.entry-content > *:first-child { margin-top: 0; }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content p { margin-top: 0; margin-bottom: 1rem; }
.entry-content ul,
.entry-content ol { margin-top: 0; margin-bottom: 1rem; }
.entry-content .alert {
  margin-top: 0;
  margin-bottom: 1rem;
}
.entry-content .color-box { margin-top: 0; margin-bottom: 1rem; }

/* Flow (vertical steps) */
.entry-content .flow { margin: 1.5rem 0; }
.entry-content .flow-item {
  display: flex;
  gap: 1rem;
  padding-bottom: 1.5rem;
  position: relative;
}
.entry-content .flow-item:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 23px;
  top: 48px;
  bottom: 0;
  width: 2px;
  background: var(--t9-border);
}
.entry-content .flow-number {
  width: 48px;
  height: 48px;
  min-width: 48px;
  background: var(--t9-teal);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 1rem;
  position: relative;
  z-index: 1;
}
.entry-content .flow-badge {
  width: 48px;
  min-width: 48px;
  background: var(--t9-teal);
  color: #fff;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.75rem;
  text-align: center;
  padding: 8px 4px;
  line-height: 1.3;
  position: relative;
  z-index: 1;
}
.entry-content .flow-badge--outline {
  background: none;
  border: 2px solid var(--t9-teal);
  color: var(--t9-teal);
}
.entry-content .flow-content { flex: 1; padding-top: 4px; }
.entry-content .flow-content .flow-title {
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--t9-ink);
  background: none;
  border: none;
  padding: 0;
}
.entry-content .flow-content p { font-size: 16px; color: var(--t9-ink-muted); margin: 0; }

/* Definition list (dl/dt/dd) */
.entry-content dl { margin: 1.25rem 0; }
.entry-content dt {
  font-weight: 700;
  color: var(--t9-teal-dark);
  padding: 0.5rem 0 0.25rem;
  border-bottom: 1px solid var(--t9-border);
  margin-top: 1rem;
}
.entry-content dt:first-child { margin-top: 0; }
.entry-content dd {
  margin: 0;
  padding: 0.5rem 0 0.5rem 1rem;
  color: var(--t9-ink-light);
}

/* dl横並び版 */
.entry-content dl.dl-horizontal {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0;
}
.entry-content dl.dl-horizontal dt {
  padding: 0.75rem 1rem;
  background: var(--t9-teal-bg);
  border-top: 1px solid var(--t9-border);
  border-bottom: 1px solid var(--t9-border);
  margin: 0;
  font-size: inherit;
}
.entry-content dl.dl-horizontal dd {
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--t9-border);
  border-bottom: 1px solid var(--t9-border-light);
  margin: 0;
  font-size: inherit;
}

/* Color boxes */
.color-box { padding: 1rem 1.25rem; border-radius: 6px; margin: 1rem 0; }
.color-box p { margin: 0 0 0.75rem; }
.color-box p:last-child { margin-bottom: 0; }
.color-box--green { background-color: rgba(61,139,64,0.08); }
.color-box--light-gray { background-color: #f5f5f3; }
.color-box--light-green { background-color: rgba(61,139,64,0.05); }
.color-box--red { background-color: rgba(220,53,69,0.08); }
.color-box--blue { background-color: rgba(42,107,200,0.08); }
.color-box--yellow { background-color: rgba(232,160,40,0.08); }
.color-box--gray { background-color: #f5f5f5; }

/* Alert overrides for bizenya */
.alert { padding: 1.25rem 1.5rem; }
.alert-success {
  background-color: #e8f5e9;
  border-color: #c8e6c9;
  color: #2e7d32;
}
.alert-primary {
  background-color: #e8f0fa;
  border-color: #d0e0f0;
  color: #2c5282;
}
.alert-danger {
  background-color: #fde8e8;
  border-color: #f0d0d0;
  color: #9b2c2c;
}
.entry-content .row { margin: 0.5rem 0 1.25rem; }
.entry-content .accordion { margin: 1.5rem 0; }
.entry-content .table-responsive,
.entry-content .table,
.entry-content table { margin: 1.5rem 0; }
.entry-content table thead th {
  background-color: var(--t9-teal);
  color: #fff;
  font-weight: 600;
  border-color: var(--t9-teal-dark);
}
.entry-content table tbody tr:nth-child(even) {
  background-color: rgba(13,148,136,0.04);
}
.entry-content .table-responsive table thead th {
  background-color: var(--t9-teal);
  color: #fff;
  border-color: var(--t9-teal-dark);
}
.entry-content .table-responsive table tbody tr:nth-child(even) {
  background-color: rgba(13,148,136,0.04);
}

/* テーブル薄色thバリエーション */
.entry-content table.table-light-th thead th {
  background-color: var(--t9-teal-bg);
  color: var(--t9-teal-dark);
  border-color: var(--t9-border);
}
.entry-content table.table-light-th tbody tr:nth-child(even) {
  background-color: rgba(13,148,136,0.04);
}
.entry-content blockquote { margin: 1.5rem 0; }
.entry-content hr { margin: 2rem 0; border-color: var(--t9-border); }
.entry-content img { border-radius: var(--t9-radius); margin: 1rem 0; }

/* Card/component内の見出しリセット */
.service-card h3,
.service-card-v2 h3,
.support-card h3,
.card h3, .card h4, .card h5,
.pickup-card h3,
.work-card h4,
.entry-content .service-card h3,
.entry-content .service-card-v2 h3,
.entry-content .support-card h3,
.entry-content .card h3,
.entry-content .card h4,
.entry-content .card h5,
.entry-content .pickup-card h3,
.entry-content .work-card h4 {
  background: none;
  border: none;
  padding: 0;
  margin: 0 0 8px;
  color: var(--t9-ink);
  font-size: 1.05rem;
}
.entry-content .support-card h3 { color: #fff; }
.entry-content p > .btn-t9 { margin: 0.25rem 0; }
.entry-content .service-card { margin-bottom: 1rem; }
.entry-content .support-card { margin-bottom: 1rem; }

/* ===== Header ===== */
.admin-bar .site-header { top: 32px; }
.admin-bar .hero-slider { margin-top: 137px; }
.admin-bar .hero-section { margin-top: 137px; }
.admin-bar .hero-v2 { margin-top: 137px; }
.admin-bar .page-hero { margin-top: 137px; }
.admin-bar .sekou-hero { margin-top: 137px; }
@media (max-width: 992px) {
  .admin-bar .hero-slider { margin-top: 92px; }
  .admin-bar .hero-section { margin-top: 92px; }
  .admin-bar .hero-v2 { margin-top: 92px; }
  .admin-bar .page-hero { margin-top: 92px; }
  .admin-bar .sekou-hero { margin-top: 92px; }
}
@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
  .admin-bar .hero-slider { margin-top: 102px; }
  .admin-bar .hero-section { margin-top: 102px; }
  .admin-bar .hero-v2 { margin-top: 102px; }
  .admin-bar .page-hero { margin-top: 102px; }
  .admin-bar .sekou-hero { margin-top: 102px; }
}
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1030;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--t9-border-light);
  transition: box-shadow 0.3s;
}
.site-header.scrolled { box-shadow: var(--t9-shadow-sm); }

/* 2-row header */
.header-upper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  position: relative;
}
.header-upper-right {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-left: auto;
  padding-top: 4px;
}
.header-upper-right .btn-t9 {
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 0.8125rem;
}
.header-upper-right .btn-t9-outline {
  padding-top: 8.5px;
  padding-bottom: 8.5px;
}
.header-sns {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--t9-border);
  color: var(--t9-ink-muted);
  transition: all 0.2s;
}
.header-sns:hover {
  color: var(--t9-ink);
  border-color: var(--t9-ink-muted);
  background: var(--t9-bg-off);
}
.header-lower {
  display: flex;
  align-items: center;
  height: 48px;
}
.header-lower .navbar-nav {
  gap: 0;
  width: 100%;
  justify-content: space-between;
}
.header-lower .navbar-nav .nav-item {
  flex: 1;
  text-align: center;
}
.header-lower .navbar-nav .nav-link {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 0 8px;
}

/* Legacy single-row fallback */
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}
.site-logo { font-family: 'Noto Sans JP', sans-serif; font-size: 1.75rem; font-weight: 900; color: var(--t9-teal-dark); }

/* ===== Navigation ===== */
.site-header .navbar-nav .nav-link,
.site-nav .navbar-nav .nav-link {
  font-size: 16px;
  font-weight: 700;
  color: var(--t9-ink-light);
  padding: 8px 4px;
  position: relative;
  transition: color 0.2s;
}
.site-header .navbar-nav .nav-link::after,
.site-nav .navbar-nav .nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 4px;
  right: 4px;
  height: 2px;
  background: var(--t9-teal);
  transform: scaleX(0);
  transition: transform 0.25s;
}
.site-header .navbar-nav .nav-link:hover,
.site-nav .navbar-nav .nav-link:hover { color: var(--t9-teal); }
.site-header .navbar-nav .nav-link:hover::after,
.site-nav .navbar-nav .nav-link:hover::after { transform: scaleX(1); }

/* ===== Hamburger Button ===== */
.hamburger-btn {
  width: 56px;
  height: 56px;
  border-radius: 0;
  margin-left: auto;
  margin-right: -20px;
  border: none;
  background: var(--t9-teal);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s;
  gap: 5px;
}
.hamburger-btn .material-icons-outlined {
  font-size: 28px;
  color: #fff;
  -webkit-text-stroke: 1px #fff;
}
.hamburger-btn i {
  font-size: 2rem;
  color: #fff;
  line-height: 1;
}
.hamburger-label {
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.05em;
  line-height: 1;
}
.hamburger-btn:hover { background: var(--t9-teal-dark); }

/* ===== Drawer Nav ===== */
.offcanvas { max-width: 340px; }
.offcanvas .btn-close {
  width: 36px;
  height: 36px;
  border: 2px solid var(--t9-border);
  border-radius: 50%;
  opacity: 0.6;
  padding: 0;
  background-size: 10px;
  transition: opacity 0.2s, border-color 0.2s;
}
.offcanvas .btn-close:hover { opacity: 1; border-color: var(--t9-ink); }
/* Phone links: disable tap-to-call on PC (except buttons) */
@media (min-width: 993px) {
  a[href^="tel:"]:not(.btn-t9) {
    pointer-events: none;
    cursor: default;
    color: inherit;
    text-decoration: none;
  }
}

/* News section (TOP page) */
.section-news { padding-top: 3rem; padding-bottom: 3rem; }
.section-title--news { margin: 0; font-size: 1.25rem; }

/* News compact list (TOP page) */
.news-list-compact { border-top: 1px solid var(--t9-border); }
.news-compact-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--t9-border-light);
  color: var(--t9-ink);
  text-decoration: none;
  transition: background 0.2s;
}
.news-compact-item:hover { background: var(--t9-bg-off); color: var(--t9-ink); }
.news-compact-item time {
  flex-shrink: 0;
  font-size: 0.875rem;
  color: var(--t9-ink-muted);
  width: 5.5em;
}
.news-compact-item .news-tag {
  flex-shrink: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 2px 0;
  border-radius: 100px;
  width: 72px;
  min-width: 72px;
  max-width: 72px;
  text-align: center;
  box-sizing: border-box;
}
.news-tag--sekou { background: var(--t9-teal-bg); color: var(--t9-teal); }
.news-tag--blog { background: var(--bz-gold-light); color: #8a6020; }
.news-compact-title {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.text-link-arrow {
  display: inline-flex;
  align-items: center;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--t9-teal);
  text-decoration: none;
  transition: color 0.2s;
}
.text-link-arrow .material-icons-outlined { font-size: 18px; }
.text-link-arrow:hover { color: var(--t9-teal-dark); }

@media (max-width: 576px) {
  .news-compact-item { flex-wrap: wrap; gap: 2px 8px; }
  .news-compact-title { flex-basis: 100%; white-space: normal; }
}

/* About page images */
.about-prof-img {
  width: 100%;
  max-width: 320px;
  border-radius: var(--t9-radius);
  display: block;
  margin: 0 auto;
}
.about-work-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--t9-radius);
}

/* Back to top button */
.back-to-top {
  position: fixed;
  bottom: 80px;
  right: 20px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--t9-teal);
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.3s, transform 0.3s, background 0.2s;
  z-index: 1010;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.back-to-top.visible {
  opacity: 1;
  transform: translateY(0);
}
.back-to-top:hover {
  background: var(--t9-teal-dark);
}
.back-to-top .material-icons-outlined {
  font-size: 24px;
}

.faq-filter { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 1.5rem; margin-bottom: 2rem; }

/* Marker highlights */
.marker-yellow { background: linear-gradient(transparent 60%, #ffe49c 0%); }
.marker-green { background: linear-gradient(transparent 60%, #d4edda 0%); }
.marker-red { background: linear-gradient(transparent 60%, #ffc9c9 0%); }
.marker-blue { background: linear-gradient(transparent 60%, #b8d4f0 0%); }

.nav-icon {
  font-size: 1.125rem;
  vertical-align: -3px;
  margin-right: 6px;
}
span.drawer-logo { display: block; line-height: 1.3; }
.drawer-logo .site-logo-sub { display: block; margin-top: 4px; }
.drawer-nav .nav-link {
  font-size: 16px;
  font-weight: 500;
  color: var(--t9-ink-light);
  padding: 12px 8px;
  border-bottom: 1px solid var(--t9-border-light);
  transition: color 0.2s, background 0.2s;
}
.drawer-nav .nav-link:hover { color: var(--t9-teal); background: var(--t9-teal-bg); }
.drawer-nav .nav-link i, .drawer-nav .nav-link .material-icons-outlined { color: rgba(13,148,136,0.5); }

/* ===== Buttons (pill shape) ===== */
.btn-t9 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 600;
  padding: 7px 24px 8px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
  text-decoration: none;
}
.btn-t9::after {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  margin-left: 6px;
  transition: transform 0.2s;
}
.btn-t9:hover::after { transform: rotate(45deg) translateX(2px) translateY(-2px); }
.btn-t9-primary { background: var(--t9-teal); color: #fff; box-shadow: 0 1px 4px rgba(0,0,0,0.12); }
.btn-t9-primary:hover { background: var(--t9-teal-dark); color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.15); transform: translateY(-2px); }
.btn-t9-outline { background: transparent; color: var(--t9-teal); border: 1.5px solid var(--t9-teal); box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
.btn-t9-outline:hover { background: var(--t9-teal-bg); color: var(--t9-teal); box-shadow: 0 2px 8px rgba(0,0,0,0.12); transform: translateY(-2px); }
.btn-t9-white { background: #fff; color: var(--t9-ink); border: 1.5px solid var(--t9-border); box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
.btn-t9-white:hover { border-color: var(--t9-teal); box-shadow: 0 2px 8px rgba(0,0,0,0.12); color: var(--t9-teal); transform: translateY(-2px); }
.btn-t9-ghost { background: rgba(255,255,255,0.1); color: #fff; border: 1.5px solid rgba(255,255,255,0.4); }
.btn-t9-ghost:hover { background: rgba(255,255,255,0.2); color: #fff; border-color: rgba(255,255,255,0.7); transform: translateY(-2px); }
/* Size variants */
.btn-t9-sm { font-size: 0.8125rem; padding: 6px 16px 7px; }
.btn-t9-lg { font-size: 18px; padding: 13px 36px 15px; border-radius: 999px; }

/* Gradient variants */
/* Dark gradients */
.btn-t9-grad-green { background: linear-gradient(135deg, #3d8b40, #2c6e2f); color: #fff; border: none; }
.btn-t9-grad-green:hover { background: linear-gradient(135deg, #2c6e2f, #1a5a1d); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(44,95,45,0.3); }
.btn-t9-grad-gold { background: linear-gradient(135deg, #d4a44a, #b8843a); color: #fff; border: none; }
.btn-t9-grad-gold:hover { background: linear-gradient(135deg, #b8843a, #9a6a2a); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(196,148,74,0.3); }
.btn-t9-grad-blue { background: linear-gradient(135deg, #4a7ab5, #3a6095); color: #fff; border: none; }
.btn-t9-grad-blue:hover { background: linear-gradient(135deg, #3a6095, #2a4a75); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(74,122,181,0.3); }
.btn-t9-grad-dark { background: linear-gradient(135deg, #4a4a48, #2a2a28); color: #fff; border: none; }
.btn-t9-grad-dark:hover { background: linear-gradient(135deg, #2a2a28, #1a1a18); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(42,42,40,0.3); }
/* Light gradients */
.btn-t9-grad-green-light { background: linear-gradient(135deg, #5cb85c, #4cae4c); color: #fff; border: none; }
.btn-t9-grad-green-light:hover { background: linear-gradient(135deg, #4cae4c, #3d9b3d); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(92,184,92,0.3); }
.btn-t9-grad-gold-light { background: linear-gradient(135deg, #f0c060, #e0aa40); color: #fff; border: none; }
.btn-t9-grad-gold-light:hover { background: linear-gradient(135deg, #e0aa40, #d09a30); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(240,192,96,0.3); }
.btn-t9-grad-blue-light { background: linear-gradient(135deg, #6ca0d0, #5a8aba); color: #fff; border: none; }
.btn-t9-grad-blue-light:hover { background: linear-gradient(135deg, #5a8aba, #4a7aa0); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(108,160,208,0.3); }
.btn-t9-grad-coral { background: linear-gradient(135deg, #f08070, #e06050); color: #fff; border: none; }
.btn-t9-grad-coral:hover { background: linear-gradient(135deg, #e06050, #d05040); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(240,128,112,0.3); }
@media (max-width: 768px) {
  .btn-t9 { font-size: 16px; padding: 7px 20px 8px; }
  .btn-t9-lg { font-size: 16px; padding: 11px 28px 13px; }
}
@media (max-width: 576px) {
  .btn-t9 { font-size: 16px; padding: 6px 18px 7px; }
  .btn-t9-lg { font-size: 16px; padding: 10px 24px 12px; }
}

/* ===== Section Common ===== */
.section { padding: 5rem 0; }
.section-bg { background: var(--t9-bg-off); }
.section-dark { background: var(--t9-ink); color: #fff; }
.section-label {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--t9-teal);
  background: var(--t9-teal-bg);
  padding: 5px 14px;
  border-radius: 4px;
  margin-bottom: 12px;
}
.section-title {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 900;
  line-height: 1.4;
  margin-bottom: 0.5rem;
}
.section-desc { font-size: 18px; color: var(--t9-ink-muted); }

/* ===== Hero ===== */
.hero-section {
  margin-top: 64px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(160deg, #f0fdfa 0%, #fff 40%, #f8fafb 100%);
  min-height: 520px;
  display: flex;
  align-items: center;
}
.hero-section::before {
  content: '';
  position: absolute;
  top: -200px;
  right: -200px;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(13,148,136,0.06) 0%, transparent 70%);
  pointer-events: none;
}
.hero-title {
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: -0.02em;
}
.hero-title em {
  font-style: normal;
  color: var(--t9-teal);
  position: relative;
}
.hero-title em::after {
  content: '';
  position: absolute;
  bottom: 2px;
  left: 0;
  right: 0;
  height: 8px;
  background: rgba(13,148,136,0.12);
  border-radius: 4px;
  z-index: -1;
}
.hero-sub { font-size: 18px; color: var(--t9-ink-light); line-height: 1.9; }
.hero-placeholder {
  width: 100%;
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #e6f7f5 0%, #d4f0ed 50%, #c2e9e5 100%);
  border-radius: var(--t9-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--t9-teal);
  font-size: 16px;
  font-weight: 500;
  border: 2px dashed rgba(13,148,136,0.2);
}

/* ===== Stats Bar ===== */
.stats-bar { background: var(--t9-ink); padding: 2.5rem 0; }
.stat-num { font-family: 'Noto Sans JP', sans-serif; font-size: 2rem; font-weight: 900; color: #fff; }
.stat-num span { color: var(--t9-teal-light); font-size: 1rem; font-weight: 500; }
.stat-label { font-size: 12px; color: rgba(255,255,255,0.5); font-weight: 500; letter-spacing: 0.05em; }

/* ===== Service Tabs ===== */
.tab-btn {
  padding: 10px 22px;
  border-radius: 8px;
  border: 1.5px solid var(--t9-border);
  background: #fff;
  font-size: 16px;
  font-weight: 600;
  color: var(--t9-ink-muted);
  cursor: pointer;
  transition: all 0.2s;
}
.tab-btn:hover { border-color: var(--t9-teal); color: var(--t9-teal); }
.tab-btn.active { background: var(--t9-teal); color: #fff; border-color: var(--t9-teal); }

/* ===== Service Card ===== */
.service-card {
  background: #fff;
  border: 1px solid var(--t9-border);
  border-radius: var(--t9-radius);
  padding: 2rem;
  transition: all 0.3s;
  position: relative;
  overflow: hidden;
}
@media (hover: hover) {
  .service-card:hover {
    box-shadow: var(--t9-shadow-lg);
    background: var(--t9-teal-bg);
  }
  .service-card:hover .service-link { color: var(--t9-teal-dark); gap: 10px; }
}
.service-icon {
  width: 48px;
  height: 48px;
  background: var(--t9-teal-bg);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  margin-bottom: 16px;
}
.service-card h3 { font-size: 1.25rem; margin-bottom: 8px; }
.service-card p { color: var(--t9-ink-muted); line-height: 1.8; }
.service-link { font-size: 16px; font-weight: 600; color: var(--t9-teal); transition: color 0.2s, padding-left 0.2s; }
.service-link:hover { color: var(--t9-teal-dark); padding-left: 4px; }

/* ===== Works ===== */
.filter-btn {
  padding: 6px 18px;
  border-radius: 100px;
  border: 1.5px solid var(--t9-border);
  background: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--t9-ink-muted);
  cursor: pointer;
  transition: all 0.2s;
}
.filter-btn:hover { border-color: var(--t9-teal); color: var(--t9-teal); }
.filter-btn.active { background: var(--t9-teal); color: #fff; border-color: var(--t9-teal); }
@media (max-width: 768px) {
  .filter-btn { padding: 8px 16px; font-size: 0.875rem; }
}
@media (max-width: 576px) {
  .filter-btn { padding: 6px 12px; font-size: 0.8125rem; }
  .works-filter, .sekou-filter-center { gap: 4px; margin-bottom: 1rem; }
}

/* Sekou category badge colors */
.sekou-card-cat[data-cat="剪定"] { background: var(--bz-gold); color: #fff; }
.sekou-card-cat[data-cat="除草"] { background: #5a9e6f; color: #fff; }
.sekou-card-cat[data-cat="伐採"] { background: #8b6f5e; color: #fff; }
.sekou-card-cat[data-cat="庭園改修"] { background: #5a7ab5; color: #fff; }
.sekou-card-cat[data-cat="空き家管理"] { background: #8a8a84; color: #fff; }
.sekou-card-cat[data-cat="墓地管理"] { background: #7a6a8a; color: #fff; }
.sekou-card-cat-overlay[data-cat="剪定"] { background: var(--bz-gold); }
.sekou-card-cat-overlay[data-cat="除草"] { background: #5a9e6f; }
.sekou-card-cat-overlay[data-cat="伐採"] { background: #8b6f5e; }
.sekou-card-cat-overlay[data-cat="庭園改修"] { background: #5a7ab5; }
.sekou-card-cat-overlay[data-cat="空き家管理"] { background: #8a8a84; }
.sekou-card-cat-overlay[data-cat="墓地管理"] { background: #7a6a8a; }

.work-card {
  background: #fff;
  border-radius: var(--t9-radius);
  overflow: hidden;
  box-shadow: var(--t9-shadow-sm);
  transition: all 0.3s;
}
@media (hover: hover) {
  .work-card:hover { transform: translateY(-4px); box-shadow: var(--t9-shadow-lg); background: #f8fffe; }
}
.work-thumb {
  aspect-ratio: 16/10;
  background: linear-gradient(135deg, #e2e8f0, #cbd5e1);
  position: relative;
}
.work-tag {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(0,0,0,0.6);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 4px;
  letter-spacing: 0.05em;
}
.work-body { padding: 15px 18px 19px; }
.work-body h4 { font-size: 1.125rem; margin-bottom: 4px; }
.work-body p { font-size: 16px; color: var(--t9-ink-muted); margin: 0; }

/* ===== News ===== */
.news-item {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--t9-border-light);
}
.news-item:last-child { border-bottom: none; }
.news-date { font-size: 12px; color: var(--t9-ink-muted); white-space: nowrap; font-weight: 500; min-width: 90px; }
.news-tag {
  font-size: 13px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 100px;
  white-space: nowrap;
  letter-spacing: 0.02em;
  display: inline-block;
  width: 7.5em;
  min-width: 7.5em;
  text-align: center;
  flex-shrink: 0;
}
.news-tag--info { background: #eef4fc; color: #2a6bc8; }
.news-tag--diary { background: var(--t9-teal-bg); color: var(--t9-teal); }
.news-tag--season { background: #fef3e0; color: #b87a00; }
.news-tag--tips { background: #edf7ee; color: #2e7d32; }
.news-tag--case { background: #fef3e0; color: #b87a00; }
.news-tag--update { background: #eef4fc; color: #2a6bc8; }
.news-tag--uncategorized { background: #f5f5f5; color: #757575; }
.news-title { font-size: 18px; font-weight: 500; color: var(--t9-ink-light); }
.news-item:hover .news-title { color: var(--t9-teal); }

/* ===== Flow Steps ===== */
.flow-num {
  width: 48px;
  height: 48px;
  background: var(--t9-teal);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: 1rem;
  margin: 0 auto 12px;
}
.flow-step { text-align: center; position: relative; }
.flow-step:not(:last-child)::after {
  content: '→';
  position: absolute;
  right: -6px;
  top: 22px;
  font-size: 1rem;
  color: var(--t9-ink-muted);
  font-weight: 300;
}
.flow-step h4 { font-size: 1.125rem; margin-bottom: 4px; }
.flow-step p { font-size: 16px; color: var(--t9-ink-muted); margin: 0; }

/* ===== CTA Section ===== */
.cta-section {
  background: linear-gradient(135deg, var(--t9-teal) 0%, var(--t9-teal-dark) 100%);
  padding: 4.5rem 0 5.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-section::before {
  content: '';
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  width: 800px;
  height: 800px;
  background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 60%);
  pointer-events: none;
}

/* ===== Footer ===== */
.site-footer { background: var(--t9-ink); color: rgba(255,255,255,0.5); padding: 3.5rem 0 2rem; font-size: 16px; }
.site-footer p { font-size: 16px; color: rgba(255,255,255,0.5); }
.site-footer a { color: rgba(255,255,255,0.55); font-size: 16px; }
.site-footer a:hover { color: var(--t9-teal-light); }
.footer-title { font-size: 16px; font-weight: 700; color: rgba(255,255,255,0.9); margin-bottom: 14px; letter-spacing: 0.05em; }
.site-footer .footer-bottom { font-size: 13px; color: rgba(255,255,255,0.3); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 1.5rem; margin-top: 2rem; }
.footer-bottom-links { display: flex; gap: 8px; align-items: center; }
.footer-bottom-links a { font-size: 13px; color: rgba(255,255,255,0.35); }
.footer-bottom-links a:hover { color: rgba(255,255,255,0.7); }
.footer-bottom-sep { color: rgba(255,255,255,0.15); font-size: 13px; }

/* ===== Sitemap Page ===== */
.sitemap-group { margin-bottom: 2.5rem; }
.sitemap-group:last-child { margin-bottom: 0; }
.sitemap-group h2 {
  font-size: 1.1rem;
  font-weight: 700;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--t9-teal);
  margin-bottom: 1rem;
}
.sitemap-group ul {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
  column-gap: 2rem;
}
.sitemap-group ul li {
  padding: 6px 0;
  border-bottom: 1px solid var(--t9-border-light);
  break-inside: avoid;
}
.sitemap-group ul li a {
  color: var(--t9-ink-light);
  text-decoration: none;
  font-size: 0.9375rem;
}
.sitemap-group ul li a:hover { color: var(--t9-teal); }
@media (max-width: 576px) {
  .sitemap-group ul { columns: 1; }
}

/* ===== Floating CTA ===== */
.float-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  padding: 10px 0;
  z-index: 1020;
  border-top: 1px solid var(--t9-border-light);
  transform: translateY(100%);
  transition: transform 0.3s;
}
.float-cta.visible { transform: translateY(0); }

/* ===== Hero V2 (image right, text left, bottom-left radius) ===== */
.hero-v2 {
  margin-top: 105px;
  display: flex;
  height: 560px;
  position: relative;
  background: #fff;
}

.hero-v2-text {
  width: 30%;
  min-width: 320px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem 0 3rem 5rem;
  position: relative;
  z-index: 2;
}
.hero-v2-title {
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 900;
  line-height: 1.4;
  color: var(--t9-ink);
  position: relative;
  z-index: 3;
  margin-right: -8rem;
  white-space: nowrap;
}
.hero-v2-title span { display: block; }
.hero-v2-title em {
  font-style: normal;
  color: var(--t9-teal);
}
.hero-v2-sub {
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-weight: 700;
  color: var(--t9-ink-light);
  margin-top: 1rem;
  margin-right: -10rem;
  padding-left: 0.5em;
  line-height: 1.8;
  position: relative;
  z-index: 3;
  white-space: nowrap;
}

/* Scroll indicator (vertical arrow with glowing dot) */
.hero-v2-scroll {
  position: absolute;
  bottom: 2rem;
  left: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.hero-v2-scroll-text {
  writing-mode: vertical-lr;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.15em;
  color: var(--t9-ink-muted);
}
.hero-v2-scroll-arrow {
  position: relative;
  width: 20px;
  height: 50px;
}
/* Arrow line */
.hero-v2-scroll-arrow::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  width: 1px;
  height: 100%;
  background: var(--t9-border);
  transform: translateX(-50%);
}
/* Arrow foot (single angled line, like レ mirror) */
.hero-v2-scroll-arrow::after {
  content: '';
  position: absolute;
  bottom: 0;
  right: 50%;
  width: 8px;
  height: 1px;
  background: #bbb;
  transform: rotate(45deg);
  transform-origin: right center;
}
.hero-v2-scroll-arrow-v { display: none; }
/* Glowing dot */
.hero-v2-scroll-dot {
  position: absolute;
  left: 50%;
  top: 0;
  width: 6px;
  height: 6px;
  background: var(--t9-teal);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 6px var(--t9-teal);
  animation: scrollDot 1.8s ease-in-out infinite;
}
@keyframes scrollDot {
  0% { top: 0; opacity: 0; }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { top: 44px; opacity: 0; }
}

/* Image area */
.hero-v2-img {
  flex: 1;
  position: relative;
  overflow: hidden;
  border-top-left-radius: 120px;
  border-bottom-left-radius: 120px;
}
/* Hero fade slider */
.hero-slider-fade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.hero-slide-fade {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 2.5s ease;
}
.hero-slide-fade.is-active {
  opacity: 1;
}
.hero-slide-fade img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero-slide-fade.zoom-in img {
  animation: heroZoomIn 7s ease-out forwards;
}
.hero-slide-fade.zoom-out img {
  animation: heroZoomIn 7s ease-out reverse forwards;
}
@keyframes heroZoomIn {
  from { transform: scale(1); }
  to { transform: scale(1.1); }
}

.hero-v2-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  animation: heroZoomOut 8s ease-out forwards;
}
.hero-v2-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  animation: heroVideoReveal 6s ease-out forwards;
}
@keyframes heroVideoReveal {
  0% { opacity: 0.3; filter: blur(6px); }
  100% { opacity: 1; filter: blur(0px); }
}
.hero-v2-fallback { display: none; }
.hero-v2-video + .hero-v2-fallback { display: none; }
.hero-v2-img .hero-v2-white-grad {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 30%;
  background: linear-gradient(to right, rgba(255,255,255,0.6) 0%, transparent 100%);
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
}
@keyframes heroZoomOut {
  0% { transform: scale(1.15); opacity: 0.3; }
  100% { transform: scale(1); opacity: 1; }
}

/* Tablet */
@media (max-width: 992px) {
  .hero-v2 { height: 420px; margin-top: 60px; }
  .hero-v2-text { min-width: 260px; padding: 2rem 0 2rem 3rem; }
  .hero-v2-title { font-size: 3.5rem; margin-right: -5rem; }
  .hero-v2-sub { font-size: 1.3rem; margin-right: -6rem; }
  .hero-v2-img { border-top-left-radius: 80px; border-bottom-left-radius: 80px; }
  .hero-v2-scroll { left: 1rem; }
}
/* Small tablet */
@media (max-width: 768px) {
  .hero-v2 { height: 360px; margin-top: 60px; }
  .hero-v2-title { font-size: 3rem; margin-right: -3rem; }
  .hero-v2-sub { margin-right: -4rem; font-size: 1.2rem; }
  .hero-v2-img { border-top-left-radius: 40px; border-bottom-left-radius: 40px; border-top-right-radius: 0; border-bottom-right-radius: 0; }
  .hero-v2-scroll { display: none; }
  .hero-v2 + .circle-links + .section,
  .hero-v2 + .section { margin-top: 90px; }
}
/* SP */
@media (max-width: 576px) {
  .hero-v2 {
    height: 320px;
    margin-top: 56px;
    position: relative;
  }
  .hero-v2-text {
    position: absolute;
    bottom: -90px;
    left: 0;
    right: 0;
    width: 100%;
    min-width: auto;
    padding: 0 20px 0.5rem 32px;
    z-index: 3;
    text-align: left;
    justify-content: flex-end;
  }
  .hero-v2-title {
    margin-right: 0;
    white-space: normal;
    font-size: 2.1rem;
    color: var(--t9-ink);
    text-shadow: none;
    line-height: 1.6;
    background: none;
  }
  .hero-v2-title span {
    display: inline-block;
    background: rgba(255,255,255,0.63);
    padding: 0 10px 3px;
    margin: 6px 3px 6px -6px;
  }
  .hero-v2-title em { color: var(--t9-teal); text-shadow: none; }
  .hero-v2-sub {
    color: var(--t9-ink-light);
    text-shadow: none;
    margin-right: 0;
    white-space: normal;
    font-size: 1rem;
    font-weight: 600;
    background: rgba(255,255,255,0.72);
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    padding: 2px 8px;
  }
  .hero-v2-img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
  .hero-v2-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(255,255,255,0.5) 0%, transparent 50%);
    border-radius: inherit;
    z-index: 1;
  }
}

/* ===== Hero Slider (JVC-style) ===== */
.hero-slider {
  position: relative;
  margin-top: 64px;
  height: 520px;
  overflow: hidden;
  background: #1a1a1a;
}
@media(max-width:768px){ .hero-slider { height: 400px; } }
.hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1s ease;
}
.hero-slide.is-active { opacity: 1; }
.hero-slide:nth-child(1) { background-color: #1a3a4a; }
.hero-slide:nth-child(2) { background-color: #2a2a3a; }
.hero-slide:nth-child(3) { background-color: #1a2a2a; }
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.2) 60%, transparent 100%);
  display: flex;
  align-items: center;
  z-index: 2;
}
.hero-content {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
  color: #fff;
}
.hero-content .hero-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(1.6rem, 4vw, 2.5rem);
  font-weight: 900;
  line-height: 1.5;
  color: #fff;
  margin-bottom: 12px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.hero-content .hero-title em { font-style: normal; color: var(--t9-teal-light); }
.hero-content .hero-subtitle {
  font-size: 18px;
  color: rgba(255,255,255,0.8);
  margin-bottom: 24px;
}
.hero-dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 10px;
}
.hero-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.4);
  cursor: pointer;
  transition: all 0.3s;
}
.hero-dot.is-active { background: #fff; transform: scale(1.2); }

/* ===== Circle Links (JVC-style) ===== */
.circle-links {
  margin-top: -50px;
  position: relative;
  z-index: 4;
  padding-bottom: 2rem;
}
.circle-links-inner {
  display: none;
  justify-content: center;
  gap: 2.5rem;
}
.circle-link {
  text-align: center;
  text-decoration: none;
  color: var(--t9-ink);
  transition: transform 0.2s;
}
.circle-link:hover { transform: translateY(-6px); color: var(--t9-teal); }
.circle-link:hover .circle-link-img { box-shadow: 0 8px 24px rgba(13,148,136,0.2); border-color: var(--t9-teal); }
.circle-link-img {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  border: 3px solid #fff;
}
.circle-link span { font-size: 18px; font-weight: 600; }
@media(max-width:576px){
  .circle-link-img { width: 72px; height: 72px; }
  .circle-links-inner { gap: 1.5rem; }
  .circle-link span { font-size: 16px; }
}

/* ===== Section Header Left (JVC-style) ===== */
.section-header-left {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 1.5rem;
  border-bottom: none;
  padding-bottom: 0;
}
.section-icon {
  width: 36px;
  height: 36px;
  background: var(--t9-teal);
  color: #fff;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}
.section-icon-plain {
  font-size: 3rem;
  color: var(--t9-teal);
  line-height: 1;
  position: relative;
  top: -2px;
}
.section-clover {
  width: 27px;
  height: auto;
  position: relative;
  top: 0px;
  right: -4px;
}
.section-title-sm { font-size: 1.5rem; font-weight: 900; margin: 0; }
.section-title-en { font-size: 0.85rem; font-weight: 600; color: var(--t9-teal); margin-left: 4px; letter-spacing: 0.05em; }
.section-title-en::before { content: '/\3000'; color: var(--t9-ink-muted); }
.section-more { margin-left: auto; font-size: 16px; font-weight: 600; color: var(--t9-teal); }
.section-more:hover { color: var(--t9-teal-dark); }

/* ===== Pickup Swiper ===== */
.pickup-card {
  display: block;
  background: #fff;
  border-radius: var(--t9-radius);
  overflow: hidden;
  box-shadow: var(--t9-shadow-sm);
  transition: all 0.3s;
  text-decoration: none;
  color: var(--t9-ink);
}
@media (hover: hover) {
  .pickup-card:hover { transform: translateY(-4px); box-shadow: var(--t9-shadow-lg); color: var(--t9-ink); background: #f8fffe; }
}
.pickup-thumb { aspect-ratio: 16/10; overflow: hidden; }
@media (max-width: 576px) {
  .pickup-thumb { aspect-ratio: 2/1; }
  .pickup-swiper .swiper-slide { width: 100%; }
}
.pickup-card { position: relative; }
.pickup-body { padding: 10px 16px 14px; }
.pickup-tag {
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 3px;
  background: var(--t9-teal-bg);
  color: var(--t9-teal);
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1;
}
.pickup-body h3 { font-size: 1rem; font-weight: 600; line-height: 1.6; margin: 0; }

/* ===== About Band (JVC-style orange -> teal) ===== */
.about-band {
  background: linear-gradient(135deg, var(--t9-teal) 0%, var(--t9-teal-dark) 100%);
  padding: 5rem 0;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.about-band::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 60%);
}
.about-lead {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  opacity: 0.6;
  margin-bottom: 8px;
}
.about-copy h2 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.5;
  margin-bottom: 1.5rem;
}
.about-desc { font-size: 18px; color: rgba(255,255,255,0.8); line-height: 1.8; }
.about-feature {
  display: flex;
  gap: 16px;
  padding: 20px;
  background: rgba(255,255,255,0.1);
  border-radius: var(--t9-radius);
  margin-bottom: 12px;
  backdrop-filter: blur(4px);
  transition: background 0.2s, transform 0.2s;
}
@media (hover: hover) {
  .about-feature:hover { background: rgba(255,255,255,0.18); transform: translateX(4px); }
}
.about-feature-icon {
  width: 48px;
  height: 48px;
  min-width: 48px;
  background: rgba(255,255,255,0.15);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  color: #fff;
}
.about-feature h4 { font-size: 1.125rem; color: #fff; margin-bottom: 4px; }
.about-feature p { font-size: 18px; color: rgba(255,255,255,0.7); margin: 0; }

/* ===== Service Card V2 (JVC-style) ===== */
.service-card-v2 {
  background: #fff;
  border-radius: var(--t9-radius);
  padding: 2.5rem 2rem;
  text-align: left;
  box-shadow: var(--t9-shadow-sm);
  transition: all 0.3s;
  height: 100%;
}
@media (hover: hover) {
  .service-card-v2:hover { transform: translateY(-4px); box-shadow: var(--t9-shadow-lg); background: #f8fffe; }
}
.service-card-v2-icon {
  width: 64px;
  height: 64px;
  margin: 0 0 16px;
  background: var(--t9-teal-bg);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: var(--t9-teal);
}
.service-card-v2 h3 { font-size: 1.5rem; margin-bottom: 10px; }
.service-card-v2 p { color: var(--t9-ink-light); line-height: 1.8; margin-bottom: 16px; font-size: 18px; }

/* ===== News V2 (Tab style) ===== */
.news-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 1rem;
  border-bottom: 2px solid var(--t9-border);
}
.news-tab {
  padding: 8px 20px;
  border: none;
  background: none;
  font-size: 16px;
  font-weight: 600;
  color: var(--t9-ink-muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: all 0.2s;
}
.news-tab:hover { color: var(--t9-teal); }
.news-tab.active { color: var(--t9-teal); border-bottom-color: var(--t9-teal); }
.news-item-v2 {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 12px;
  border-bottom: 1px solid var(--t9-border-light);
  text-decoration: none;
  color: var(--t9-ink);
  border-radius: 4px;
  transition: background 0.2s;
}
.news-item-v2:hover { color: var(--t9-teal); background: var(--t9-teal-bg); }
.news-item-v2 time { font-size: 12px; color: var(--t9-ink-muted); width: 80px; min-width: 80px; flex-shrink: 0; }
.news-title-v2 { font-size: 18px; font-weight: 500; }
@media (max-width: 576px) {
  .news-item-v2 { flex-wrap: wrap; gap: 4px 10px; }
  .news-item-v2 time { width: auto; min-width: auto; }
  .news-title-v2 { width: 100%; font-size: 16px; }
}

/* ===== Support Cards (JVC-style 3-col CTA) ===== */
.support-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2.5rem 2rem;
  border-radius: var(--t9-radius);
  text-decoration: none;
  color: #fff;
  transition: all 0.3s;
  height: 100%;
}
@media (hover: hover) {
  .support-card:hover { transform: translateY(-4px); color: #fff; filter: brightness(1.1); }
}
.support-card:active, .support-card:focus, .support-card:visited { color: #fff; }
.support-card .material-icons-outlined { color: #fff; }
.support-card--teal { background: linear-gradient(135deg, #0d9488, #0a7a70); }
.support-card--orange { background: linear-gradient(135deg, #e8a028, #c68510); }
.support-card--blue { background: linear-gradient(135deg, #2a6bc8, #1e55a0); }
.support-card h3 { font-size: 1.25rem; color: #fff; margin: 16px 0 8px; }
.support-card p { font-size: 18px; color: rgba(255,255,255,0.8); margin-bottom: 16px; flex: 1; line-height: 1.8; text-align: left; }
.support-card-btn {
  font-size: 16px;
  font-weight: 600;
  padding: 8px 20px;
  border: 1.5px solid rgba(255,255,255,0.4);
  border-radius: 6px;
  transition: all 0.2s;
}
.support-card:hover .support-card-btn { background: rgba(255,255,255,0.15); }

/* ===== Subsidy link banner ===== */
.subsidy-link-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 28px;
  background: var(--t9-bg-off);
  border: 1px solid var(--t9-border);
  border-radius: var(--t9-radius);
  text-decoration: none;
  color: var(--t9-ink);
  transition: border-color 0.2s, background 0.2s, transform 0.2s;
}
@media (hover: hover) {
  .subsidy-link-banner:hover { border-color: var(--t9-teal); background: var(--t9-teal-bg); transform: translateY(-2px); color: var(--t9-ink); }
}

/* ===== Filter/Tab button hover ===== */
@media (hover: hover) {
  .filter-btn:hover { border-color: var(--t9-teal); color: var(--t9-teal); background: var(--t9-teal-bg); }
  .tab-btn:hover { border-color: var(--t9-teal); color: var(--t9-teal); background: var(--t9-teal-bg); }
  .news-tab:hover { color: var(--t9-teal); background: rgba(13,148,136,0.04); }
}

/* ===== Swiper overrides ===== */
.swiper { overflow: hidden; }
.swiper-outer {
  position: relative;
  padding: 0 48px;
}
.pickup-swiper, .works-swiper {
  overflow: hidden;
  padding: 8px 0 20px;
}
.pickup-swiper .swiper-wrapper, .works-swiper .swiper-wrapper { padding-bottom: 0; }
.swiper-button-prev, .swiper-button-next {
  color: var(--t9-teal);
  width: 36px;
  height: 36px;
  border: 1.5px solid var(--t9-border);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  transition: border-color 0.2s, background 0.2s;
}
.swiper-button-prev:hover, .swiper-button-next:hover {
  border-color: var(--t9-teal);
  background: var(--t9-teal-bg);
}
.swiper-button-prev::after, .swiper-button-next::after { font-size: 0.9rem; }
.swiper-outer .swiper-button-prev,
.swiper-outer .swiper-button-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.swiper-outer .swiper-button-prev { left: 0; }
.swiper-outer .swiper-button-next { right: 0; }
.swiper-button-prev::after, .swiper-button-next::after {
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 992px) {
  .swiper-outer { padding: 0 40px; }
}
@media (max-width: 768px) {
  .swiper-outer { padding: 0; }
  .swiper-button-prev, .swiper-button-next { display: none; }
}

/* ===== Animations ===== */
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.fade-up { opacity: 0; animation: fadeUp 0.6s ease forwards; }
.fade-up-d1 { animation-delay: 0.1s; }
.fade-up-d2 { animation-delay: 0.2s; }
.fade-up-d3 { animation-delay: 0.3s; }

/* ===== Responsive ===== */
@media (min-width: 576px) and (max-width: 991px) {
  .container { max-width: 100%; padding-left: 24px; padding-right: 24px; }
}
@media (max-width: 768px) {
  .container { padding-left: 20px; padding-right: 20px; }
  .entry-content { overflow-x: visible; }
  .entry-content .table-responsive { overflow-x: auto; }
  .hero-section { min-height: auto; }
  .flow-step:nth-child(3)::after { display: none; }
}
@media (max-width: 576px) {
  .flow-step:nth-child(2n)::after { display: none; }
}

/* ==============================================
   Sub Pages (下層ページ共通)
   ============================================== */

/* ===== Page Hero ===== */
.page-hero {
  margin-top: 105px;
  background: linear-gradient(135deg, #2c6e2f 0%, #3d8b40 50%, #4a9a4d 100%);
  color: #fff;
  padding: 2.625rem 0 3.875rem;
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute;
  top: -140px;
  right: -100px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(13,148,136,0.05) 0%, transparent 65%);
  pointer-events: none;
}
.page-hero::after {
  content: '';
  position: absolute;
  bottom: -80px;
  left: -60px;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(13,148,136,0.03) 0%, transparent 70%);
  pointer-events: none;
}
.page-hero-inner, .page-hero .container { text-align: center; position: relative; z-index: 1; }
.page-hero-en {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 10px;
  position: relative;
}
.page-hero-en::before,
.page-hero-en::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 28px;
  height: 1px;
  background: rgba(255,255,255,0.4);
  opacity: 1;
}
.page-hero-en::before { right: calc(100% + 12px); }
.page-hero-en::after { left: calc(100% + 12px); }
.page-hero-title {
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  font-weight: 900;
  color: #fff;
  margin: 0;
  line-height: 1.4;
}
.page-hero-sub {
  font-size: 1rem;
  color: rgba(255,255,255,0.8);
  margin: 0.5rem 0 0;
  font-weight: 400;
}
@media (max-width: 992px) {
  .page-hero { margin-top: 60px; }
}
@media (max-width: 768px) {
  .page-hero { margin-top: 60px; padding: 2rem 0 2.5rem; }
}
@media (max-width: 576px) {
  .page-hero { margin-top: 56px; padding: 1.25rem 0 2.25rem; }
  .page-hero { padding: 1.25rem 0 2.25rem; }
  .page-hero-en { margin-bottom: 6px; }
  .page-hero-title { font-size: 1.375rem; }
  .page-hero-en::before, .page-hero-en::after { width: 20px; }
  .page-hero-sub { font-size: 1rem; }
}

/* ===== Works Archive ===== */
.works-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.work-card-archive {
  display: block;
  background: #fff;
  border-radius: var(--t9-radius);
  overflow: hidden;
  box-shadow: var(--t9-shadow-sm);
  transition: all 0.3s;
  text-decoration: none;
  color: var(--t9-ink);
}
.work-card-archive:hover { color: var(--t9-ink); }
@media (hover: hover) {
  .work-card-archive:hover {
    transform: scale(1.03);
    box-shadow: var(--t9-shadow-lg);
  }
  .work-card-archive:hover .work-card-archive-overlay { opacity: 1; }
}
.work-card-archive-thumb {
  aspect-ratio: 16/9;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #e2e8f0, #cbd5e1);
}
.work-card-archive-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  margin: 0;
}
.work-card-archive-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--t9-ink-muted);
  font-size: 16px;
  background: linear-gradient(135deg, #e2e8f0, #cbd5e1);
}
.work-card-archive-placeholder .material-icons-outlined { font-size: 2.5rem; opacity: 0.5; }
.work-card-archive-thumb img {
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
@media (hover: hover) {
  .work-card-archive:hover .work-card-archive-thumb img {
    transform: scale(1.06);
  }
}
.work-card-archive-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(13,148,136,0.6) 0%, rgba(26,26,26,0.5) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.35s;
}
.work-card-archive-view {
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.2em;
  border: 1.5px solid rgba(255,255,255,0.8);
  padding: 10px 28px;
  border-radius: 999px;
  transform: translateY(8px);
  transition: transform 0.35s;
}
@media (hover: hover) {
  .work-card-archive:hover .work-card-archive-view { transform: translateY(0); }
}
.work-card-archive-body {
  padding: 16px 20px 20px;
}
.work-card-archive-body h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 6px;
  line-height: 1.5;
}
.work-card-archive-body p {
  font-size: 16px;
  color: var(--t9-ink-muted);
  margin: 0;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Works Pagination */
.works-pagination { text-align: center; }
.works-pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.works-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 600;
  color: var(--t9-ink-light);
  border: 1.5px solid var(--t9-border);
  background: #fff;
  transition: all 0.2s;
  text-decoration: none;
}
.works-pagination .page-numbers:hover { border-color: var(--t9-teal); color: var(--t9-teal); }
.works-pagination .page-numbers.current {
  background: var(--t9-teal);
  color: #fff;
  border-color: var(--t9-teal);
}

/* ===== Single Works ===== */
.single-works-hero {
  margin-top: 64px;
  position: relative;
  width: 100%;
  max-height: 480px;
  overflow: hidden;
  background: linear-gradient(135deg, #e2e8f0, #cbd5e1);
}
.single-works-hero-img {
  width: 100%;
  height: 480px;
  object-fit: cover;
  display: block;
  border-radius: 0;
  margin: 0;
}
.single-works-hero-placeholder {
  width: 100%;
  height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--t9-ink-muted);
}
.single-works-hero-placeholder .material-icons-outlined { font-size: 4rem; opacity: 0.3; }
.admin-bar .single-works-hero { margin-top: 137px; }
@media (max-width: 992px) { .admin-bar .single-works-hero { margin-top: 92px; } }
@media (max-width: 782px) { .admin-bar .single-works-hero { margin-top: 102px; } }
@media (max-width: 576px) {
  .single-works-hero-img { height: 240px; }
  .single-works-hero-placeholder { height: 200px; }
}

.work-tag-inline {
  display: inline-block;
  background: var(--t9-teal-bg);
  color: var(--t9-teal);
  font-size: 12px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 4px;
  margin-bottom: 16px;
  margin-right: 6px;
}

/* Single Works Info Table */
.single-works-info {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 0;
  border-top: 1px solid var(--t9-border);
  border-radius: 6px;
  overflow: hidden;
}
.single-works-info dt {
  padding: 0.85rem 1rem;
  background: var(--t9-teal-bg);
  border-bottom: 1px solid var(--t9-border);
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--t9-teal-dark);
}
.single-works-info dd {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--t9-border-light);
  margin: 0;
  font-size: 16px;
  color: var(--t9-ink-light);
}
.single-works-info dd a { color: var(--t9-teal); }
.single-works-info dd a:hover { color: var(--t9-teal-dark); text-decoration: underline; }
@media (max-width: 576px) {
  .single-works-info { grid-template-columns: 110px 1fr; }
  .single-works-info dt,
  .single-works-info dd { padding: 0.7rem 0.75rem; font-size: 16px; }
}

/* Single Works Nav */
.single-works-nav-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px;
  border: 1px solid var(--t9-border);
  border-radius: var(--t9-radius);
  text-decoration: none;
  color: var(--t9-ink);
  transition: all 0.2s;
  max-width: 100%;
}
.single-works-nav-link:hover { border-color: var(--t9-teal); color: var(--t9-teal); background: var(--t9-teal-bg); }
.single-works-nav-link .material-icons-outlined { font-size: 1.5rem; color: var(--t9-ink-muted); flex-shrink: 0; }
.single-works-nav-link:hover .material-icons-outlined { color: var(--t9-teal); }
.single-works-nav-link--next { justify-content: flex-end; float: right; }
.single-works-nav-text { display: flex; flex-direction: column; overflow: hidden; }
.single-works-nav-text small { font-size: 11px; color: var(--t9-ink-muted); font-weight: 600; letter-spacing: 0.05em; }
.single-works-nav-text span { font-size: 16px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; }

/* ===== Service Page ===== */
.service-block { position: relative; }
.service-block-img {
  aspect-ratio: 4/3;
  border-radius: var(--t9-radius);
  position: relative;
  overflow: hidden;
}
.service-block-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}
@media (hover: hover) {
  .service-block:hover .service-block-img img {
    transform: scale(1.05);
  }
}
.service-block-heading {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: 16px;
}
.service-block-num {
  font-size: 2.5rem;
  font-weight: 900;
  color: var(--t9-teal);
  opacity: 0.2;
  line-height: 1;
  font-family: 'Noto Sans JP', sans-serif;
}
.service-block-title {
  font-size: clamp(1.3rem, 2.5vw, 1.6rem);
  font-weight: 900;
  color: var(--t9-ink);
  margin: 0;
}
.service-block-desc {
  font-size: 18px;
  color: var(--t9-ink-light);
  line-height: 1.9;
  margin-bottom: 24px;
}

/* ===== Pricing Page ===== */
.pricing-card {
  background: #fff;
  border: 1.5px solid var(--t9-border);
  border-radius: var(--t9-radius);
  padding: 2rem 1.5rem 2rem;
  text-align: center;
  transition: all 0.3s;
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
}
@media (hover: hover) {
  .pricing-card:hover { transform: translateY(-4px); box-shadow: var(--t9-shadow-lg); }
}
.pricing-card--recommended {
  border-color: var(--t9-teal);
  box-shadow: 0 4px 24px rgba(13,148,136,0.15);
  position: relative;
  z-index: 1;
}
@media (min-width: 992px) {
  .pricing-card--recommended { transform: scale(1.04); }
  .pricing-card--recommended:hover { transform: scale(1.04) translateY(-4px); }
}
.pricing-card-badge {
  position: absolute;
  top: -1px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--t9-teal);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 20px;
  border-radius: 0 0 8px 8px;
  letter-spacing: 0.05em;
}
.pricing-card-header { margin-bottom: 16px; padding-top: 8px; }
.pricing-plan-name {
  display: block;
  font-size: 1.25rem;
  font-weight: 900;
  color: var(--t9-ink);
}
.pricing-plan-en {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--t9-ink-muted);
  letter-spacing: 0.1em;
  margin-top: 2px;
}
.pricing-card-price {
  padding: 16px 0;
  border-top: 1px solid var(--t9-border-light);
  border-bottom: 1px solid var(--t9-border-light);
  margin-bottom: 20px;
}
.pricing-yen {
  font-size: 1rem;
  font-weight: 700;
  color: var(--t9-ink);
  vertical-align: baseline;
}
.pricing-amount {
  font-size: 2.2rem;
  font-weight: 900;
  color: var(--t9-ink);
  letter-spacing: -0.02em;
}
.pricing-card--recommended .pricing-amount { color: var(--t9-teal); }
.pricing-tax {
  font-size: 0.875rem;
  color: var(--t9-ink-muted);
  font-weight: 500;
}
.pricing-features {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  text-align: left;
  flex: 1;
}
.pricing-features li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  font-size: 16px;
  font-weight: 500;
  color: var(--t9-ink-light);
  border-bottom: 1px solid var(--t9-border-light);
}
.pricing-features li:last-child { border-bottom: none; }
.pricing-features li .material-icons-outlined {
  font-size: 18px;
  color: var(--t9-teal);
  flex-shrink: 0;
}
.pricing-features-disabled { opacity: 0.4; }
.pricing-card .pricing-features-disabled .material-icons-outlined { color: var(--t9-ink-muted); }

/* Pricing Notes */
.pricing-notes {
  background: var(--t9-bg-off);
  border-radius: var(--t9-radius);
  padding: 1.5rem 2rem;
}
.pricing-notes h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--t9-ink);
  margin-bottom: 12px;
}
.pricing-notes ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.pricing-notes li {
  position: relative;
  padding-left: 1.5em;
  font-size: 16px;
  color: var(--t9-ink-light);
  line-height: 1.8;
  margin-bottom: 4px;
}
.pricing-notes li::before {
  content: "\203B";
  position: absolute;
  left: 0;
  color: var(--t9-ink-muted);
}

/* ===== About Page ===== */
.about-photo-placeholder {
  aspect-ratio: 3/4;
  max-width: 320px;
  margin: 0 auto;
  background: linear-gradient(135deg, #e6f7f5 0%, #d4f0ed 100%);
  border-radius: var(--t9-radius);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--t9-teal);
  font-size: 16px;
  font-weight: 500;
  border: 2px dashed rgba(13,148,136,0.2);
}
.about-photo-placeholder .material-icons-outlined { font-size: 3rem; opacity: 0.5; }
.about-greeting-text { margin-top: 1.5rem; line-height: 2; }
.about-map-note { font-size: 16px; color: var(--t9-ink-muted); margin-top: 8px; }

.company-info-dl {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 0;
  border-top: 1px solid var(--t9-border);
  border-radius: 6px;
  overflow: hidden;
}
.company-info-dl dt {
  padding: 0.85rem 1rem;
  background: var(--t9-teal-bg);
  border-bottom: 1px solid var(--t9-border);
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--t9-teal-dark);
}
.company-info-dl dd {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--t9-border-light);
  margin: 0;
  font-size: 16px;
  color: var(--t9-ink-light);
}
.company-info-dl dd a { color: var(--t9-teal); }
@media (max-width: 576px) {
  .company-info-dl { grid-template-columns: 100px 1fr; }
  .company-info-dl dt,
  .company-info-dl dd { padding: 0.7rem 0.75rem; font-size: 16px; }
}

.about-map-placeholder {
  border-radius: var(--t9-radius);
  overflow: hidden;
  border: 2px dashed var(--t9-border);
  background: var(--t9-bg-off);
}
.about-map-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 4rem 2rem;
  text-align: center;
  color: var(--t9-ink-muted);
  font-size: 16px;
}
.about-map-inner .material-icons-outlined { font-size: 2.5rem; opacity: 0.4; margin-bottom: 8px; }

/* ===== Contact Page ===== */
.contact-form-wrap { margin-top: 2rem; }
.contact-fallback-form { margin-top: 2rem; }
.contact-label {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: var(--t9-ink);
  margin-bottom: 6px;
}
.contact-required {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: #e74c3c;
  padding: 1px 6px;
  border-radius: 3px;
  margin-left: 4px;
  vertical-align: 1px;
}
.contact-input {
  display: block;
  width: 100%;
  padding: 12px 16px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  border: 1.5px solid var(--t9-border);
  border-radius: 8px;
  background: #fff;
  color: var(--t9-ink);
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
}
.contact-input:focus {
  border-color: var(--t9-teal);
  box-shadow: 0 0 0 3px rgba(13,148,136,0.1);
}
.contact-input::placeholder { color: var(--t9-ink-muted); }
select.contact-input { appearance: auto; }
textarea.contact-input { resize: vertical; min-height: 140px; }

/* Contact Form 7 style override */
.contact-form-wrap .wpcf7-form-control-wrap { display: block; margin-bottom: 4px; }
.contact-form-wrap input[type="text"],
.contact-form-wrap input[type="email"],
.contact-form-wrap input[type="tel"],
.contact-form-wrap select,
.contact-form-wrap textarea {
  display: block;
  width: 100%;
  padding: 12px 16px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  border: 1.5px solid var(--t9-border);
  border-radius: 8px;
  background: #fff;
  color: var(--t9-ink);
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
}
.contact-form-wrap input:focus,
.contact-form-wrap select:focus,
.contact-form-wrap textarea:focus {
  border-color: var(--t9-teal);
  box-shadow: 0 0 0 3px rgba(13,148,136,0.1);
}
.contact-form-wrap input[type="submit"] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 18px;
  font-weight: 600;
  padding: 14px 36px;
  border-radius: 999px;
  border: none;
  background: var(--t9-teal);
  color: #fff;
  cursor: pointer;
  transition: all 0.2s;
}
.contact-form-wrap input[type="submit"]:hover {
  background: var(--t9-teal-dark);
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

/* Contact Notice */
.contact-notice {
  background: var(--t9-bg-off);
  border-radius: var(--t9-radius);
  padding: 1.5rem 2rem;
}
.contact-notice h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--t9-ink);
  margin-bottom: 12px;
}
.contact-notice ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.contact-notice li {
  position: relative;
  padding-left: 1.5em;
  font-size: 16px;
  color: var(--t9-ink-light);
  line-height: 1.8;
  margin-bottom: 4px;
}
.contact-notice li::before {
  content: "\203B";
  position: absolute;
  left: 0;
  color: var(--t9-ink-muted);
}

/* ===== Flow Page ===== */
.flow-page-item {
  display: flex;
  gap: 24px;
  padding-bottom: 2.5rem;
  position: relative;
}
.flow-page-item--connected::after {
  content: '';
  position: absolute;
  left: 23px;
  top: 56px;
  bottom: 0;
  width: 2px;
  background: var(--t9-border);
}
.flow-page-num-wrap { position: relative; z-index: 1; }
.flow-page-num {
  width: 48px;
  height: 48px;
  min-width: 48px;
  background: var(--t9-teal);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 1rem;
}
.flow-page-content {
  flex: 1;
  padding-top: 2px;
}
.flow-page-icon {
  margin-bottom: 8px;
}
.flow-page-icon .material-icons-outlined {
  font-size: 2rem;
  color: var(--t9-teal);
  opacity: 0.6;
}
.flow-page-title {
  font-size: 1.25rem;
  font-weight: 900;
  color: var(--t9-ink);
  margin: 0 0 8px;
}
.flow-page-desc {
  font-size: 16px;
  color: var(--t9-ink-light);
  line-height: 1.9;
  margin: 0 0 10px;
}
.flow-page-period {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--t9-teal);
  background: var(--t9-teal-bg);
  padding: 3px 12px;
  border-radius: 4px;
}
@media (max-width: 576px) {
  .flow-page-item { gap: 16px; }
  .flow-page-num { width: 40px; height: 40px; min-width: 40px; font-size: 0.875rem; }
  .flow-page-item--connected::after { left: 19px; top: 48px; }
  .flow-page-title { font-size: 1.1rem; }
  .flow-page-desc { font-size: 16px; }
}

/* ===== Sub Page Utilities ===== */
/* Sub containers: unified width */
.sub-container-narrow,
.sub-container-mid,
.sub-container-wide,
.sub-container-pricing,
.sub-container-flow,
.sub-container-info,
.sub-container-service { max-width: 1000px; }
.sub-container-form { max-width: 800px; }

.sub-intro {
  text-align: center;
  color: var(--t9-ink-light);
  line-height: 1.9;
  margin-bottom: 2rem;
}
.sub-empty-text {
  text-align: center;
  color: var(--t9-ink-muted);
}

/* Works Pagination icons */
.works-pagination .page-numbers .material-icons-outlined {
  font-size: 1.2rem;
  vertical-align: -3px;
}

/* Single works hero admin-bar handled by .admin-bar .single-works-hero above */
.single-works-info dd .material-icons-outlined {
  font-size: 14px;
  vertical-align: -2px;
}

/* About greeting section title */
.about-greeting-title {
  font-size: clamp(1.4rem, 3vw, 1.8rem);
}

/* Flow page period icon */
.flow-page-period .material-icons-outlined {
  font-size: 14px;
  vertical-align: -2px;
  margin-right: 2px;
}

/* Pricing notes icon, contact notice icon */
.pricing-notes h3 .material-icons-outlined,
.contact-notice h4 .material-icons-outlined {
  font-size: 1.2rem;
  vertical-align: -3px;
  margin-right: 4px;
}

/* Service link arrow */
.service-block .service-link-arrow {
  font-size: 1rem;
  vertical-align: -3px;
}

/* ===== Estimate Page ===== */
.estimate-step {
  display: flex;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
.estimate-step-num {
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: var(--t9-teal);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 1rem;
}
.estimate-step-title {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.estimate-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.estimate-option {
  padding: 12px 16px 12px 44px;
  border: 1.5px solid var(--t9-border);
  border-radius: 8px;
  background: #fff;
  font-size: 16px;
  font-weight: 500;
  color: var(--t9-ink-light);
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
  text-align: left;
}
.estimate-option::before {
  content: '';
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  border: 2px solid var(--t9-border);
  border-radius: 50%;
  background: #fff;
  transition: all 0.2s;
}
.estimate-options--multi .estimate-option::before {
  border-radius: 4px;
}
.estimate-option:hover {
  border-color: var(--t9-teal);
}
.estimate-option.active {
  background: var(--t9-teal-bg);
  color: var(--t9-teal-dark);
  border-color: var(--t9-teal);
}
.estimate-option.active::before {
  background: var(--t9-teal);
  border-color: var(--t9-teal);
}
.estimate-option.active::after {
  content: '';
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-60%) rotate(45deg);
  width: 5px;
  height: 9px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
}
.estimate-result {
  background: var(--t9-bg-off);
  border: 2px solid var(--t9-teal);
  border-radius: var(--t9-radius);
  padding: 2.5rem;
  text-align: center;
  margin-top: 2rem;
  position: sticky;
  bottom: 80px;
}
.estimate-result-label {
  font-size: 16px;
  font-weight: 600;
  color: var(--t9-ink-muted);
  margin-bottom: 8px;
}
.estimate-result-price {
  font-size: 3rem;
  font-weight: 900;
  color: var(--t9-teal);
  margin-bottom: 8px;
}
.estimate-result-yen { font-size: 1.2rem; font-weight: 500; }
.estimate-result-tax { font-size: 0.8rem; color: var(--t9-ink-muted); margin-left: 4px; }
.estimate-result-note { font-size: 16px; color: var(--t9-ink-muted); margin-bottom: 1.5rem; }
.estimate-result-ctas { display: flex; justify-content: center; }
@media (max-width: 576px) {
  .estimate-step { flex-direction: column; gap: 0.75rem; }
  .estimate-option { font-size: 16px; padding: 8px 16px; }
  .estimate-result-price { font-size: 2.2rem; }
  .estimate-result { padding: 1.5rem; }
}

/* ===== Global Parts Responsive Spacing ===== */
@media (max-width: 992px) {
  .section { padding: 3.75rem 0; }
  .service-card { padding: 1.5rem; }
  .reason-card { padding: 1.5rem 1.25rem; }
  .review-card { padding: 1.5rem 1.25rem; }
}
@media (max-width: 768px) {
  .section { padding: 3.5rem 0; }
  .section-title { font-size: 1.5rem; }
  .section-desc { font-size: 16px; }
  .entry-content .accordion:not(.accordion--faq) .accordion-button { padding: 0.65rem 1rem; font-size: 16px; }
  .entry-content .accordion:not(.accordion--faq) .accordion-body { padding: 0.875rem 1rem; }
  .entry-content .accordion:not(.accordion--faq) .accordion-item { margin-bottom: 0.75rem; }
  .entry-content .alert { padding: 0.875rem 1rem; font-size: 16px; }
  .entry-content .color-box { padding: 0.875rem 1rem; }
  .entry-content .flow .flow-item { padding-bottom: 1.25rem; }
  .entry-content dl.dl-horizontal { grid-template-columns: 1fr; }
  .entry-content dl.dl-horizontal dt { border-bottom: none; }
  .news-tag { min-width: 5em; font-size: 0.8125rem; }
  .estimate-step { gap: 1rem; }
  .estimate-step-title { font-size: 1.1rem; }
  .estimate-option { padding: 10px 14px 10px 40px; font-size: 16px; }
  .estimate-result { padding: 1.5rem; }
  .estimate-result-price { font-size: 2.2rem; }
  .service-card-v2 { padding: 1.5rem; }
  .support-card { padding: 1.5rem; }
  .service-card { padding: 1.25rem; }
  .reason-card { padding: 1.25rem 1rem; }
  .review-card { padding: 1.25rem 1rem; }
}
@media (max-width: 576px) {
  .section { padding: 2.5rem 0; }
  .section-title { font-size: 1.5rem; }
  .entry-content .accordion:not(.accordion--faq) .accordion-button { padding: 0.6rem 0.875rem; font-size: 16px; }
  .entry-content .alert { padding: 0.75rem; font-size: 16px; }
  .entry-content .color-box { padding: 0.75rem; }
  .service-card-v2 { padding: 1.25rem; }
  .support-card { padding: 1.25rem; }
  .service-card { padding: 1rem; }
  .reason-card { padding: 1rem; }
  .review-card { padding: 1rem; }
}

/* ===== Single Post Navigation ===== */
.single-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--t9-border);
}
.single-post-nav-item a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.25rem;
  background: var(--t9-bg-off);
  border: 1px solid var(--t9-border-light);
  border-radius: var(--t9-radius);
  text-decoration: none;
  color: var(--t9-ink);
  font-size: 0.875rem;
  transition: border-color 0.2s, background 0.2s;
}
.single-post-nav-item a:hover {
  background: var(--t9-teal-bg);
  border-color: var(--t9-teal);
  color: var(--t9-teal);
}
.single-post-nav-item a small {
  display: block;
  font-size: 0.8125rem;
  color: var(--t9-ink-muted);
  font-weight: 600;
  margin-bottom: 2px;
}
.single-post-nav-item a span:not(.material-icons-outlined) {
  font-size: 16px;
  font-weight: 500;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.single-post-nav-item--next a { justify-content: flex-end; text-align: right; }
.single-post-nav-item .material-icons-outlined { color: var(--t9-teal); font-size: 1.5rem; flex-shrink: 0; }
@media (max-width: 576px) {
  .single-post-nav { grid-template-columns: 1fr; }
  .single-post-nav-item a { overflow: hidden; }
  .single-post-nav-item a span:not(.material-icons-outlined) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
}

/* ===== Related Posts ===== */
.related-posts {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--t9-border);
}
.related-posts-title {
  font-size: 1.2rem;
  font-weight: 900;
  margin-bottom: 1.5rem;
}
/* Related posts list (no thumbnail) */
.related-list-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 12px;
  border-bottom: 1px solid var(--t9-border-light);
  text-decoration: none;
  color: var(--t9-ink);
  border-radius: 4px;
  transition: background 0.2s;
}
.related-list-item:hover { color: var(--t9-teal); background: var(--t9-teal-bg); }
.related-list-item time { font-size: 12px; color: var(--t9-ink-muted); width: 80px; min-width: 80px; flex-shrink: 0; }
.related-list-title { font-size: 16px; font-weight: 500; }
@media (max-width: 576px) {
  .related-list-item { flex-wrap: wrap; gap: 4px 10px; }
  .related-list-item time { width: auto; min-width: auto; }
  .related-list-title { width: 100%; }
}

/* ===== Author Card ===== */
.bz-author-card {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--t9-border);
}
.bz-author-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 20px;
  padding: 20px 24px;
  background: var(--t9-bg-off);
  border-radius: 12px;
}
.bz-author-label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8rem;
  color: var(--t9-ink-muted);
  margin-bottom: 2px;
}
.bz-author-label .material-icons-outlined { font-size: 16px; }
.bz-author-img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
  flex-shrink: 0;
}
.bz-author-name-row {
  display: flex;
  align-items: center;
  gap: 1em;
  flex-wrap: wrap;
}
.bz-author-name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--t9-ink);
}
.bz-author-desc {
  font-size: 0.875rem;
  color: var(--t9-ink-muted);
  margin-top: 4px;
  line-height: 1.6;
}
.bz-author-prof-btn {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 0.75rem;
  padding: 3px 12px;
  background: #fff;
  border: 1px solid var(--t9-border);
  border-radius: 100px;
  color: var(--t9-teal);
  text-decoration: none;
  transition: all 0.2s;
}
.bz-author-prof-btn:hover {
  background: var(--t9-teal);
  color: #fff;
  border-color: var(--t9-teal);
}
.bz-author-prof-btn--sp { display: none; }

@media (max-width: 767px) {
  .bz-author-inner { flex-direction: column; text-align: center; gap: 12px; padding: 16px; }
  .bz-author-label { justify-content: center; }
  .bz-author-name-row { justify-content: center; }
  .bz-author-prof-btn--pc { display: none; }
  .bz-author-prof-btn--sp { display: inline-flex; margin-top: 8px; }
}

/* ===== Blog Dates ===== */
.blog-date { font-size: 16px; color: var(--t9-ink-muted); }

/* ===== Pagination ===== */
.pagination { justify-content: center; }
.pagination .nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
}
.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  border: 1px solid var(--t9-border);
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  color: var(--t9-ink-light);
  text-decoration: none;
  margin: 0 3px;
  transition: all 0.2s;
}
.page-numbers:hover { border-color: var(--t9-teal); color: var(--t9-teal); }
.page-numbers.current { background: var(--t9-teal); color: #fff; border-color: var(--t9-teal); }
.page-numbers .material-icons-outlined { font-size: 1.2rem; }

/* ===== FAQ Group Spacing ===== */
.faq-group { margin-bottom: 3rem; }
.faq-group:last-child { margin-bottom: 0; }
.faq-group h2 { margin-top: 0; }

/* ===== Bootstrap Accordion Override (global) ===== */
.accordion-button:not(.collapsed) {
  background-color: var(--t9-teal-bg);
  color: var(--t9-ink);
  box-shadow: none;
}
.accordion-button:focus {
  box-shadow: none;
  border-color: var(--t9-border);
}
.accordion.accordion--faq .accordion-item {
  border: none;
  border-bottom: 1px solid var(--t9-border-light);
  border-radius: 0;
  margin-bottom: 0;
  background: none;
}
.accordion.accordion--faq .accordion-button,
.entry-content .accordion.accordion--faq .accordion-button {
  background: none;
  color: var(--t9-ink);
  font-weight: 600;
  font-size: 18px;
  padding: 1.25rem 2.5rem 1.25rem 3rem;
  border-radius: 0;
  position: relative;
}
.accordion.accordion--faq .accordion-button::before {
  content: 'Q';
  position: absolute;
  left: 0;
  top: 1rem;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--t9-teal);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.accordion.accordion--faq .accordion-button:not(.collapsed) {
  background: none;
  color: var(--t9-ink);
  box-shadow: none;
}
.accordion.accordion--faq .accordion-collapse {
  border: none;
  border-radius: 0;
}
.accordion.accordion--faq .accordion-body,
.entry-content .accordion.accordion--faq .accordion-body {
  padding: 0 2.5rem 1.25rem 3rem;
  font-size: 18px;
  color: var(--t9-ink-light);
  line-height: 1.8;
  position: relative;
}
.accordion.accordion--faq .accordion-body::before {
  content: 'A';
  position: absolute;
  left: 0;
  top: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--bz-gold);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== FAQ Accordion (Q/A circle style) ===== */
.entry-content .accordion.accordion--faq .accordion-item {
  border: none;
  border-bottom: 1px solid var(--t9-border-light);
  border-radius: 0;
  margin-bottom: 0;
  background: none;
  overflow: visible;
}
.entry-content .accordion.accordion--faq .accordion-item:last-child { border-bottom: none; }
.entry-content .accordion.accordion--faq .accordion-button {
  background: none;
  color: var(--t9-ink);
  font-weight: 600;
  font-size: inherit;
  padding: 1.25rem 2.5rem 1.25rem 3rem;
  border-radius: 0;
  position: relative;
  width: 100%;
  margin: 0;
}
.entry-content .accordion.accordion--faq .accordion-button::before {
  content: 'Q';
  position: absolute;
  left: 0;
  top: 1rem;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--t9-teal);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.entry-content .accordion.accordion--faq .accordion-button.collapsed {
  background: none;
  border-radius: 0;
}
.entry-content .accordion.accordion--faq .accordion-button:not(.collapsed) {
  background: none;
  color: var(--t9-ink);
  box-shadow: none;
  border-radius: 0;
}
.entry-content .accordion.accordion--faq .accordion-button:focus { box-shadow: none; }
.entry-content .accordion.accordion--faq .accordion-collapse {
  border: none;
  border-radius: 0;
}
.entry-content .accordion.accordion--faq .accordion-body {
  padding: 0 2.5rem 1.25rem 3rem;
  position: relative;
  font-size: inherit;
  color: var(--t9-ink-light);
  line-height: 1.8;
}
.entry-content .accordion.accordion--faq .accordion-body::before {
  content: 'A';
  position: absolute;
  left: 0;
  top: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #e8a028;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== Accordion +/- icon (replaces Bootstrap chevron) ===== */
.accordion-button::after {
  content: '';
  background-image: none;
  width: 20px;
  height: 20px;
  position: relative;
  flex-shrink: 0;
  background: linear-gradient(var(--t9-ink-muted), var(--t9-ink-muted)) center/2px 14px no-repeat,
              linear-gradient(var(--t9-ink-muted), var(--t9-ink-muted)) center/14px 2px no-repeat;
  transition: transform 0.25s ease;
}
.accordion-button:not(.collapsed)::after {
  background-image: none;
  background: linear-gradient(var(--t9-teal), var(--t9-teal)) center/14px 2px no-repeat;
  transform: none;
}

@media (max-width: 576px) {
  .entry-content .accordion.accordion--faq .accordion-button { padding: 1rem 2rem 1rem 2.5rem; font-size: 16px; }
  .entry-content .accordion.accordion--faq .accordion-button::before { width: 28px; height: 28px; font-size: 12px; top: 1rem; }
  .entry-content .accordion.accordion--faq .accordion-body { padding: 0 2rem 1rem 2.5rem; }
  .entry-content .accordion.accordion--faq .accordion-body::before { width: 28px; height: 28px; font-size: 12px; }
}

/* ==============================================
   びぜん屋 Custom Styles
   ============================================== */

/* ===== Logo ===== */
.site-logo {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.8rem;
  font-weight: 900;
  color: var(--t9-ink);
  text-decoration: none;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.site-logo-sub {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--t9-teal);
  letter-spacing: 0.05em;
}
.footer-logo {
  color: #fff;
}
.footer-logo .site-logo-sub {
  color: var(--t9-teal-light);
}

/* ===== Header Phone ===== */
.header-phone {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--t9-teal);
  text-decoration: none;
  white-space: nowrap;
}
.header-phone .material-icons-outlined {
  font-size: 1.375rem;
}
.header-phone:hover {
  color: var(--t9-teal-dark);
}

/* ===== Drawer Phone ===== */
.drawer-phone-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--t9-teal);
  padding: 12px 8px;
  text-decoration: none;
}
.drawer-phone-link .material-icons-outlined {
  font-size: 1.3rem;
}

/* ===== CTA Section (override for bizenya) ===== */
.cta-section-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  font-weight: 700;
  color: #fff;
  margin-bottom: 0.5rem;
}
.cta-section-sub {
  color: rgba(255,255,255,0.7);
  margin-bottom: 1.5rem;
  font-size: 16px;
}

/* ===== Footer Contact Info ===== */
.footer-contact-info {
  margin-top: 12px;
}
.footer-contact-info p {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
  font-size: 16px;
  color: rgba(255,255,255,0.7);
}
.footer-contact-info .material-icons-outlined {
  font-size: 1rem;
  color: rgba(255,255,255,0.5);
}

/* ===== Hero V2 Placeholder (for image-less hero) ===== */
.hero-v2-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: linear-gradient(135deg, var(--t9-teal-light) 0%, #e8f5e9 50%, #d4edda 100%);
  color: var(--t9-teal);
  font-size: 16px;
  font-weight: 500;
}
.hero-v2-placeholder .material-icons-outlined {
  font-size: 4rem;
  opacity: 0.4;
}

/* ===== About Story ===== */
.about-story-text {
  margin-top: 1rem;
  line-height: 2;
  font-size: 18px;
}

/* ===== Reason Cards ===== */
.reason-card {
  background: #fff;
  border: 1px solid var(--t9-border);
  border-radius: var(--t9-radius);
  padding: 2rem 1.5rem;
  text-align: left;
  transition: all 0.3s;
  height: 100%;
}
@media (hover: hover) {
  .reason-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--t9-shadow-lg);
    border-color: var(--t9-teal);
  }
}
.reason-num {
  display: block;
  font-size: 2.5rem;
  font-weight: 900;
  color: var(--t9-teal);
  opacity: 0.2;
  line-height: 1;
  margin-bottom: 12px;
  font-family: 'Noto Sans JP', sans-serif;
}
.reason-card h3 {
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--t9-ink);
  margin-bottom: 12px;
  line-height: 1.6;
}
.reason-card p {
  font-size: 18px;
  color: var(--t9-ink-light);
  line-height: 1.8;
  margin: 0;
}

/* ===== Sekou (施工事例) Cards ===== */
.sekou-card {
  display: block;
  background: #fff;
  border-radius: var(--t9-radius);
  overflow: hidden;
  box-shadow: var(--t9-shadow-sm);
  transition: all 0.3s;
  text-decoration: none;
  color: var(--t9-ink);
}
.sekou-card:hover {
  color: var(--t9-ink);
}
@media (hover: hover) {
  .sekou-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--t9-shadow-lg);
  }
}
.sekou-card-images {
  overflow: hidden;
}
.sekou-card { position: relative; }
.sekou-card-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: rgba(0,0,0,0.5);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  border-radius: var(--t9-radius);
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
  z-index: 2;
}
.sekou-card-overlay .material-icons-outlined {
  font-size: 40px;
}
@media (hover: hover) {
  .sekou-card:hover .sekou-card-overlay { opacity: 1; }
}
.sekou-card-ba {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
}
.sekou-card-before,
.sekou-card-after {
  aspect-ratio: 4/3;
  position: relative;
  overflow: hidden;
}
.sekou-card-before img,
.sekou-card-after img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  margin: 0;
}
.sekou-card-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #e8e0d4, #d4ccc0);
  color: var(--t9-ink-muted);
  font-size: 12px;
  font-weight: 600;
}
.sekou-card-placeholder--after {
  background: linear-gradient(135deg, #d4edda, #c8e6c9);
  color: var(--t9-teal);
}
.sekou-ba-label {
  position: absolute;
  bottom: 6px;
  left: 6px;
  background: rgba(0,0,0,0.6);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 3px;
  letter-spacing: 0.05em;
}
.sekou-ba-label--after {
  background: rgba(61,139,64,0.8);
}
.sekou-card-body {
  padding: 11px 12px 13px;
}
.sekou-card-cat {
  display: inline-block;
  background: var(--t9-teal-bg);
  color: var(--t9-teal);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 100px;
  margin-right: 6px;
  margin-bottom: 6px;
}
.sekou-card-loc {
  display: inline-block;
  font-size: 12px;
  color: var(--t9-ink-muted);
  margin-bottom: 6px;
}
.sekou-card-loc::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 4px;
  background: var(--t9-ink-muted);
  border-radius: 50%;
  vertical-align: middle;
  margin-right: 6px;
  opacity: 0.5;
}
.sekou-card-body h4 {
  font-size: 1.125rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.5;
  width: 100%;
}

/* ===== Sekou Archive Grid ===== */
.sekou-archive-section { padding-top: 2.5rem; }
.sekou-filter-center {
  justify-content: center;
  margin-bottom: 2rem;
}
.sekou-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.sekou-grid-item { min-width: 0; }
.sekou-grid-empty { grid-column: 1 / -1; text-align: center; padding: 3rem 0; }
@media (max-width: 991px) {
  .sekou-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
  .sekou-grid { grid-template-columns: 1fr; gap: 1.25rem; }
}
/* Category badge overlay on image */
.sekou-card-images { position: relative; }
.sekou-card-cat-overlay {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
  display: inline-block;
  background: var(--t9-teal);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 4px;
  line-height: 1.4;
  letter-spacing: 0.02em;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}
.sekou-card-loc-icon {
  font-size: 6px;
  vertical-align: middle;
  margin-right: 4px;
  opacity: 0.4;
}

/* ===== Sekou Detail ===== */
.sekou-detail-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.sekou-detail-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
@media (max-width: 768px) {
  .sekou-detail-gallery {
    grid-template-columns: 1fr;
  }
}
.sekou-detail-gallery-section {
  position: relative;
}
.sekou-gallery-label {
  display: inline-block;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--t9-ink-muted);
  margin-bottom: 12px;
  padding: 4px 16px;
  background: var(--t9-bg-off);
  border-radius: 4px;
}
.sekou-gallery-label--after {
  color: var(--t9-teal);
  background: var(--t9-teal-bg);
}
.sekou-detail-gallery .swiper-slide img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: var(--t9-radius);
}
.sekou-detail-desc h2 {
  font-size: 1.3rem;
  margin-bottom: 12px;
}

/* ===== Review Cards ===== */
.review-card {
  background: #fff;
  border: 1px solid var(--t9-border);
  border-radius: var(--t9-radius);
  padding: 2rem 1.5rem;
  height: 100%;
  transition: all 0.3s;
}
@media (hover: hover) {
  .review-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--t9-shadow-lg);
  }
}
.review-card-stars {
  display: flex;
  gap: 2px;
  margin-bottom: 12px;
}
.review-card-stars .material-icons-outlined {
  font-size: 1.2rem;
  color: var(--bz-gold);
}
.review-card-text {
  font-size: 18px;
  color: var(--t9-ink-light);
  line-height: 1.9;
  margin-bottom: 16px;
}
.review-card-author {
  font-size: 16px;
  font-weight: 600;
  color: var(--t9-ink-muted);
}

/* ===== Area Section ===== */
.area-map-placeholder {
  aspect-ratio: 4/3;
  border-radius: var(--t9-radius);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: var(--t9-bg-off);
  border: 2px dashed var(--t9-border);
  color: var(--t9-ink-muted);
  font-size: 16px;
}
.area-map-placeholder--large {
  aspect-ratio: auto;
  min-height: 400px;
}
.area-map-placeholder .material-icons-outlined {
  font-size: 3rem;
  opacity: 0.4;
}
.area-subtitle {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--t9-ink);
  margin-bottom: 16px;
}
.area-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.area-list-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: #fff;
  border: 1px solid var(--t9-border-light);
  border-radius: 6px;
  font-size: 16px;
  font-weight: 500;
  color: var(--t9-ink);
}
.area-list-item .material-icons-outlined {
  font-size: 1.2rem;
  color: var(--t9-ink-muted);
}
.area-list-item--main {
  background: var(--t9-teal-bg);
  border-color: var(--t9-teal);
  font-weight: 700;
}
.area-list-item--main .material-icons-outlined {
  color: var(--t9-teal);
}
.area-note {
  font-size: 16px;
  color: var(--t9-ink-muted);
  margin-top: 8px;
}

/* ===== Pricing Table (bizenya) ===== */
.bz-pricing-table {
  font-size: 16px;
}
.bz-pricing-note {
  font-size: 16px;
  color: var(--t9-ink-muted);
  margin-top: 12px;
  text-align: center;
}

/* ===== Service link chevron (override inline style) ===== */
.service-card-v2 .service-link .material-icons-outlined {
  font-size: 1rem;
  vertical-align: -3px;
}

/* ===== Drawer nav icon alignment ===== */
.drawer-nav .nav-link .material-icons-outlined {
  font-size: 20px;
  vertical-align: -4px;
  color: rgba(61,139,64,0.5);
}

/* ===== FAQ A circle (use gold for bizenya) ===== */
.entry-content .accordion.accordion--faq .accordion-body::before {
  background: var(--bz-gold);
}

/* Back button (down arrow) */
.btn-t9--back::after { display: none; }
.btn-t9--back::before {
  content: "";
  display: inline-block;
  width: 0.5em;
  height: 0.5em;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  margin-right: 0.25rem;
  position: relative;
  top: -1px;
}

/* ===== Sekou Detail Page ===== */
.sekou-hero {
  margin-top: 105px;
  height: 300px;
  background-color: var(--t9-teal-dark);
  background-size: cover;
  background-position: center;
  position: relative;
}
@media (max-width: 992px) {
  .sekou-hero { margin-top: 60px; }
}
@media (max-width: 576px) {
  .sekou-hero { margin-top: 56px; }
}
.sekou-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(44,110,47,0.85) 0%, rgba(44,110,47,0.6) 50%, rgba(44,110,47,0.45) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.sekou-hero-cat {
  display: inline-block;
  background: transparent;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 600;
  padding: 4px 16px;
  border-radius: 100px;
  border: 1.5px solid rgba(255,255,255,0.7);
  margin-bottom: 0.75rem;
}
.sekou-hero-title {
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 900;
  color: #fff;
  margin: 0 0 0.5rem;
  line-height: 1.4;
}
.sekou-hero-loc {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 1rem;
  color: rgba(255,255,255,0.8);
}
.sekou-hero-loc .material-icons-outlined { font-size: 1.125rem; }

/* Breadcrumb */
.sekou-breadcrumb {
  padding: 0.875rem 0;
  font-size: 0.8125rem;
  color: var(--t9-ink-muted);
  border-bottom: 1px solid var(--t9-border-light);
}
.sekou-breadcrumb a {
  color: var(--t9-ink-muted);
  text-decoration: none;
}
.sekou-breadcrumb a:hover { color: var(--t9-teal); }
.sekou-breadcrumb-sep {
  margin: 0 0.5rem;
  color: var(--t9-border);
}
.sekou-breadcrumb-icon {
  font-size: 1em;
  vertical-align: -2px;
}

/* Before/After Grid */
.sekou-ba-section {
  margin-bottom: 3rem;
}
.sekou-ba-pair--mt {
  margin-top: 2.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid var(--t9-border);
}
.sekou-ba-pair-num {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--t9-ink);
  text-align: center;
  margin-bottom: 1rem;
}
a.sekou-ba-img {
  display: block;
  cursor: zoom-in;
  text-decoration: none;
}
.sekou-ba-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0;
  align-items: stretch;
}
.sekou-ba-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #c8c8c8;
  padding: 0 8px;
  align-self: center;
}
.sekou-ba-arrow .material-icons-outlined {
  font-size: 48px;
}
.sekou-ba-col .sekou-ba-label {
  position: static;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.5rem 1rem;
  border-radius: 6px 6px 0 0;
  text-align: center;
  letter-spacing: 0.05em;
}
.sekou-ba-col .sekou-ba-label--before {
  background: var(--t9-ink-muted);
  color: #fff;
}
.sekou-ba-col .sekou-ba-label--after {
  background: var(--t9-teal);
  color: #fff;
}
.sekou-ba-img {
  margin-bottom: 0.75rem;
  border-radius: 0 0 var(--t9-radius) var(--t9-radius);
  overflow: hidden;
}
.sekou-ba-img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 0;
}
.sekou-ba-col .sekou-ba-img:first-of-type {
  border-radius: 0;
}

/* Description */
.sekou-detail-desc {
  margin: 2.5rem 0;
  padding: 2rem;
  background: var(--t9-bg-off);
  border-radius: var(--t9-radius);
}
.sekou-detail-desc h2 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--t9-teal-dark);
  margin-bottom: 1rem;
}
.sekou-detail-desc p {
  margin: 0;
  color: var(--t9-ink-light);
  line-height: 1.9;
}

/* Info Table */
.sekou-info-table {
  margin: 2rem 0 3rem;
}
.sekou-info-table table {
  width: 100%;
  max-width: 500px;
  border-collapse: collapse;
}
.sekou-info-table th {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--t9-ink);
  padding: 0.75rem 1rem;
  background: var(--t9-bg-off);
  border-top: 1px solid var(--t9-border);
  border-bottom: 1px solid var(--t9-border);
  width: 120px;
}
.sekou-info-table td {
  font-size: 0.9375rem;
  color: var(--t9-ink-light);
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--t9-border);
  border-bottom: 1px solid var(--t9-border);
}

/* Pager */
.sekou-pager {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--t9-border);
}
.sekou-pager-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}
.sekou-pager-link--prev { margin-right: auto; }
.sekou-pager-spacer { margin-right: auto; }
.sekou-pager-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--t9-ink-muted);
  text-decoration: none;
  font-size: 0.875rem;
  padding: 0.5rem 0;
  transition: color 0.2s;
}
.sekou-pager-link:hover {
  color: var(--t9-teal);
}
.sekou-pager-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.sekou-pager-text small {
  font-size: 0.75rem;
  color: var(--t9-ink-muted);
}
.sekou-pager-text span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: block;
  max-width: 100%;
  text-align: left;
}
.sekou-pager-link--next { margin-left: auto; text-align: right; }
.sekou-pager-link--next .sekou-pager-text { align-items: flex-end; text-align: right; }
.sekou-pager-inner .btn-t9--back {
  flex-shrink: 0;
}
.sekou-pager-spacer {
  visibility: hidden;
  width: 0;
}

/* Responsive */
@media (max-width: 768px) {
  .sekou-hero { height: 280px; }
  .sekou-ba-grid { grid-template-columns: 1fr; gap: 0; }
  .sekou-ba-arrow { padding: 0; margin: -4px 0; }
  .sekou-ba-arrow .material-icons-outlined { transform: rotate(90deg); font-size: 36px; }
  .sekou-pager-link { max-width: 45%; }
}
@media (max-width: 768px) {
  .sekou-pager-inner {
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  .sekou-pager-link {
    max-width: 45%;
    min-width: 0;
    padding: 0.5rem 0;
    gap: 0.25rem;
    overflow: hidden;
  }
  .sekou-pager-link--prev { order: 1; }
  .sekou-pager-link--next { order: 2; justify-content: flex-end; }
  .sekou-pager-link--next .sekou-pager-text { align-items: flex-end; text-align: right; }
  .sekou-pager-inner .btn-t9--back {
    width: 100%;
    justify-content: center;
    text-align: center;
    order: 3;
    margin-top: 0.5rem;
  }
  .sekou-pager-spacer { display: none; }
}
@media (max-width: 576px) {
  .sekou-hero { height: 200px; margin-top: 56px; }
  .sekou-hero-title { font-size: 1.25rem; }
}

/* ==============================================
   Comprehensive Responsive Overrides
   ============================================== */

/* --- Large tablet (992px) --- */
@media (max-width: 992px) {
  /* Grids: 3col -> 2col */
  .row-cols-md-3 > * { flex: 0 0 50%; max-width: 50%; }

  /* About band */
  .about-band { padding: 3.75rem 0; }
  .about-feature { padding: 16px; }

  /* CTA */
  .cta-section { padding: 3.5rem 0 4rem; }

  /* Stats */
  .stats-bar { padding: 2rem 0; }

  /* Footer */
  .site-footer { padding: 2.5rem 0 1.5rem; }
}

/* --- iPad Air / Small tablet (820px - 768px) --- */
@media (max-width: 820px) {
  .about-desc { font-size: 16px; }
  .about-feature p { font-size: 16px; }
  .about-story-text { font-size: 16px; }
}

/* --- 768px --- */
@media (max-width: 768px) {
  /* Service/reason/review text */
  .service-card-v2 p { font-size: 16px; }
  .reason-card p { font-size: 16px; }
  .review-card-text { font-size: 16px; }
  .support-card p { font-size: 16px; }
  .about-feature p { font-size: 16px; }
  .about-desc { font-size: 16px; }

  /* News */
  .news-title { font-size: 16px; }
  .news-title-v2 { font-size: 16px; }

  /* Grids: ensure 2col at tablet */
  .sekou-ba-grid { gap: 1rem; }

  /* Hero areas spacing */
  .hero-v2 + .circle-links + .section,
  .hero-v2 + .section { margin-top: 80px; }

  /* Footer */
  .site-footer { padding: 2rem 0 1.5rem; }
}

/* --- SP (576px and below) --- */
@media (max-width: 576px) {
  /* Container */
  .container { padding-left: 20px; padding-right: 20px; }

  /* Grids: 1col */
  .row-cols-md-3 > * { flex: 0 0 100%; max-width: 100%; }

  /* Hero V2 following section spacing */
  .hero-v2 + .circle-links + .section,
  .hero-v2 + .section { margin-top: 100px; }

  /* About band */
  .about-band { padding: 2.5rem 0; }
  .about-feature { padding: 14px; }
  .about-feature h4 { font-size: 1rem; }
  .about-feature p { font-size: 16px; }

  /* CTA */
  .cta-section { padding: 2.5rem 0 3rem; }

  /* Stats */
  .stats-bar { padding: 1.5rem 0; }
  .stat-num { font-size: 1.5rem; }

  /* Reason cards */
  .reason-card h3 { font-size: 1.2rem; }

  /* Review cards */
  .review-card-text { font-size: 16px; line-height: 1.8; }

  /* Service cards */
  .service-card-v2 h3 { font-size: 1.25rem; }
  .service-card-v2 p { font-size: 16px; }

  /* FAQ */
  .accordion.accordion--faq .accordion-button,
  .entry-content .accordion.accordion--faq .accordion-button { font-size: 16px; }
  .accordion.accordion--faq .accordion-body,
  .entry-content .accordion.accordion--faq .accordion-body { font-size: 16px; }

  /* Footer */
  .site-footer { padding: 2rem 0 1.25rem; }

  /* News */
  .news-item { flex-wrap: wrap; gap: 8px; padding: 12px 0; }
  .news-title { font-size: 16px; }
  .news-title-v2 { font-size: 16px; }

  /* Pagination/pager spacing */
  .works-pagination .nav-links { gap: 4px; }
  .sekou-pager { margin-top: 2rem; padding-top: 1.5rem; }

  /* Flow steps */
  .flow-step h4 { font-size: 1rem; }

  /* Subsidy banner */
  .subsidy-link-banner { padding: 14px 16px; flex-direction: column; gap: 12px; text-align: center; }
}

/* ===== SP TOP Page Font Size Fix ===== */
@media (max-width: 576px) {
  /* Section headings hierarchy (TOP page only) */
  .home .section-title { font-size: 1.25rem; }
  .section-label { font-size: 0.6875rem; }

  /* Reason cards */
  .reason-card h3 { font-size: 1.125rem; }
  .reason-card p { font-size: 16px; }

  /* Service cards */
  .service-card-v2 h3 { font-size: 1.125rem; }
  .service-card-v2 p { font-size: 16px; }

  /* Sekou cards */
  .sekou-card-body h4 { font-size: 1rem; }

  /* About */
  #about .section-label,
  #about .section-title { text-align: center; }
  #about .col-lg-7 { text-align: center; }
  .about-story-text { text-align: left; font-size: 16px; }
  #about .btn-t9 { display: inline-flex; }

  /* Reviews */
  .review-card-text { font-size: 16px; }

  /* FAQ */
  .accordion.accordion--faq .accordion-button { font-size: 16px; padding: 1rem 1rem 1rem 2.5rem; }
  .accordion.accordion--faq .accordion-body { font-size: 16px; padding: 0 1rem 1rem 2.5rem; }
  .accordion.accordion--faq .accordion-button::before { width: 28px; height: 28px; font-size: 12px; top: 1rem; }
  .accordion.accordion--faq .accordion-body::before { width: 28px; height: 28px; font-size: 12px; }

  /* CTA section */
  .cta-section-title { font-size: 1.25rem; }
}
