:root {
  --sw-primary: #1794e8;
  --sw-primary-dark: #0284c7;
  --sw-text: #1e293b;
  --sw-sub: #1d1d1d;
  --sw-bg: #ffffff;
  --sw-soft: #f6fbff;
  --sw-border: #e2e8f0;
  --sw-dark: #0f172a;
  --sw-radius: 18px;
  --sw-radius-lg: 28px;
  --sw-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
  --sw-container: 1120px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Noto Sans JP", sans-serif;
  color: var(--sw-text);
  background: var(--sw-bg);
  line-height: 1.8;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

a {
  color: inherit;
  text-decoration: none;
}

.sw-container {
  width: min(calc(100% - 32px), var(--sw-container));
  margin: 0 auto;
}

.sw-center {
  text-align: center;
}

.sw-section {
  padding: 88px 0;
}

.sw-section--soft {
  background: var(--sw-soft);
}

.sw-section--dark {
  background: var(--sw-dark);
  color: #fff;
}

.sw-title {
  margin: 0 0 20px;
  font-size: clamp(32px, 5vw, 56px);
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: -0.03em;
}

.sw-title--md {
  font-size: clamp(25px, 3.5vw, 38px);
}

.sw-lead {
  margin: 0;
  color: var(--sw-sub);
  font-size: 16px;
  line-height: 1.9;
}

.sw-center .sw-lead {
  margin-left: auto;
  margin-right: auto;
}

.sw-eyebrow {
  display: inline-block;
  margin-bottom: 14px;
  padding: 7px 14px;
  border-radius: 999px;
  background: rgba(23, 148, 232, 0.1);
  color: var(--sw-primary);
  font-size: 14px;
  font-weight: 900;
}

.sw-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--sw-border);
  backdrop-filter: blur(10px);
}

.sw-header__inner {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.sw-logo img {
  max-height: 44px;
}

.sw-header__right {
  display: flex;
  align-items: center;
  gap: 16px;
}

.sw-header__tel {
  font-size: 14px;
  font-weight: 900;
  white-space: nowrap;
}

.sw-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 10px 24px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 900;
  font-size: 15px;
  line-height: 1.35;
  text-align: center;
  transition: 0.25s ease;
}

.sw-btn small {
  font-size: 12px;
  font-weight: 700;
}

.sw-btn--primary {
  background: var(--sw-primary);
  color: #fff;
  box-shadow: var(--sw-shadow);
}

.sw-btn--primary:hover {
  background: var(--sw-primary-dark);
  transform: translateY(-1px);
}

.sw-btn--ghost {
  background: #fff;
  border-color: var(--sw-border);
}

.sw-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.sw-hero {
  padding: 72px 0 64px;
  background: linear-gradient(180deg, #f6fbff 0%, #ffffff 100%);
}

.sw-hero__inner {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 44px;
  align-items: center;
}

.sw-hero__copy {
  max-width: 660px;
}

.sw-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 24px 0;
  padding: 0;
  list-style: none;
}

.sw-badges li {
  padding: 10px 15px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--sw-border);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
  font-size: 14px;
  font-weight: 900;
}

.sw-cta-lead {
  margin: 24px 0 0;
  color: var(--sw-primary-dark);
  font-weight: 900;
  font-size: 17px;
}

.sw-hero__media {
  position: relative;
}

.sw-hero__image {
  width: 100%;
  border-radius: var(--sw-radius-lg);
  box-shadow: 0 20px 60px rgba(15, 23, 42, 0.14);
}

.sw-hero__voice {
  position: absolute;
  right: 24px;
  bottom: 24px;
  padding: 14px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--sw-primary-dark);
  font-size: 16px;
  font-weight: 900;
  box-shadow: var(--sw-shadow);
}

.sw-anchor-nav {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 0 16px 28px;
  background: #fff;
}

.sw-anchor-nav a {
  padding: 10px 18px;
  border: 1px solid var(--sw-border);
  border-radius: 999px;
  font-weight: 900;
  font-size: 14px;
}

#top,
#problems,
#benefits,
#safety,
#trust,
#compare,
#price,
#scene,
#faq,
#contact {
  scroll-margin-top: 96px;
}

.sw-grid-3,
.sw-grid-4 {
  display: grid;
  gap: 20px;
  margin-top: 36px;
}

.sw-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.sw-grid-4 {
  grid-template-columns: repeat(4, 1fr);
}

.sw-card,
.sw-feature,
.sw-product-card,
.sw-price-panel {
  background: #fff;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  box-shadow: 0 6px 24px rgba(15, 23, 42, 0.06);
}

.sw-card {
  padding: 26px;
}

.sw-card h3 {
  margin: 0 0 10px;
  font-size: 20px;
}

.sw-card p {
  margin: 0;
  color: var(--sw-sub);
}

.sw-card--dark {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.12);
}

.sw-card--dark p {
  color: rgba(255,255,255,0.82);
}

.sw-quick-solution {
  margin-top: 56px;
  padding: 40px;
  background: #fff;
  border-radius: var(--sw-radius-lg);
  box-shadow: var(--sw-shadow);
}

.sw-quick-solution h2 {
  margin: 0 0 28px;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.4;
  text-align: center;
}

.sw-solution-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.sw-solution-grid div {
  padding: 24px;
  border-radius: var(--sw-radius);
  background: var(--sw-soft);
  text-align: center;
}

.sw-solution-grid span {
  display: block;
  color: var(--sw-sub);
  font-weight: 900;
}

.sw-solution-grid strong {
  display: block;
  color: var(--sw-primary);
  font-size: 32px;
}

.sw-feature-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 36px;
}

.sw-feature {
  padding: 22px;
}

.sw-feature strong {
  display: block;
  margin-bottom: 6px;
  font-size: 17px;
}

.sw-feature span {
  color: var(--sw-sub);
  font-size: 14px;
}

.sw-cta-space {
  margin-top: 36px;
}

.sw-safety {
  background: #fff;
}

.sw-safety-box {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 24px;
  padding: 40px;
  border-radius: var(--sw-radius-lg);
  background: linear-gradient(135deg, #f6fbff 0%, #ffffff 100%);
  border: 1px solid var(--sw-border);
  box-shadow: var(--sw-shadow);
}

.sw-safety-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 28px;
  border-radius: var(--sw-radius);
  background: #fff;
  border: 1px solid var(--sw-border);
}

.sw-safety-card strong {
  color: var(--sw-primary);
  font-size: 24px;
  margin-bottom: 10px;
}

.sw-safety-card span {
  color: var(--sw-sub);
}

.sw-guide-box {
  margin: 36px auto 0;
  max-width: 800px;
  padding: 26px;
  border-radius: var(--sw-radius);
  background: var(--sw-soft);
  border: 1px solid var(--sw-border);
  text-align: center;
}

.sw-guide-box strong {
  display: block;
  margin-bottom: 14px;
  font-size: 18px;
}

.sw-guide-box ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sw-guide-box li {
  padding: 10px 14px;
  border-radius: 999px;
  background: #fff;
  font-weight: 900;
}

.sw-compare-grid {
  margin-top: 36px;
}

.sw-product-card {
  padding: 20px;
}

.sw-product-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 14px;
  margin-bottom: 16px;
}

.sw-product-card h3 {
  margin: 0 0 8px;
  font-size: 21px;
}

.sw-product-card p {
  margin: 0 0 14px;
  color: var(--sw-primary);
  font-weight: 900;
}

.sw-product-card ul {
  margin: 0;
  padding-left: 1.2em;
  color: var(--sw-sub);
  font-size: 14px;
}

.sw-price-box {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
  margin-top: 36px;
}

.sw-price-panel {
  padding: 30px;
}

.sw-price-panel h3 {
  margin: 0 0 12px;
  font-size: 22px;
}

.sw-price-num {
  margin-bottom: 14px;
  color: var(--sw-primary);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 900;
  line-height: 1.1;
}

.sw-price-panel p {
  margin: 0;
  color: var(--sw-sub);
}

.sw-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 36px;
}

.sw-gallery img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--sw-radius);
  box-shadow: 0 6px 24px rgba(15, 23, 42, 0.06);
}

.sw-faq {
  max-width: 900px;
  margin: 36px auto 0;
  display: grid;
  gap: 12px;
}

.sw-faq details {
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  box-shadow: 0 6px 24px rgba(15, 23, 42, 0.06);
}

.sw-faq summary {
  cursor: pointer;
  font-weight: 900;
  list-style: none;
}

.sw-faq p {
  margin: 12px 0 0;
  color: var(--sw-sub);
}

.sw-contact {
  background: linear-gradient(135deg, #0ea5e9 0%, #1794e8 100%);
  color: #fff;
}

.sw-contact .sw-lead,
.sw-contact .sw-cta-lead {
  color: #fff;
}

@media (max-width: 1024px) {
  .sw-hero__inner,
  .sw-safety-box,
  .sw-price-box {
    grid-template-columns: 1fr;
  }

  .sw-grid-4,
  .sw-gallery {
    grid-template-columns: repeat(2, 1fr);
  }

  .sw-grid-3,
  .sw-feature-list,
  .sw-solution-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .sw-actions {
    justify-content: center;
  }
}

@media (max-width: 767px) {
  .sw-production #problems .sw-problem-integrated-card .sw-problem-integrated-card__before h3 {
    font-size: 17px !important;
  }

  .sw-container {
    width: min(calc(100% - 24px), var(--sw-container));
  }

  .sw-section {
    padding: 64px 0;
  }

  .sw-hero {
    padding: 48px 0 56px;
  }

  .sw-header__inner {
    min-height: 64px;
  }

  .sw-logo img {
    max-height: 36px;
  }

  .sw-header__tel {
    display: none;
  }

  .sw-header .sw-btn {
    min-height: 44px;
    padding: 8px 16px;
    font-size: 13px;
  }

  .sw-grid-3,
  .sw-grid-4,
  .sw-feature-list,
  .sw-solution-grid,
  .sw-guide-box ul,
  .sw-gallery,
  .sw-price-box {
    grid-template-columns: 1fr;
  }

  .sw-quick-solution {
    padding: 28px 20px;
  }

  .sw-safety-box {
    padding: 24px;
  }

  .sw-hero__voice {
    position: static;
    margin-top: 14px;
    display: inline-block;
  }

  .sw-actions {
    flex-direction: column;
  }

  .sw-btn {
    width: 100%;
  }

  .sw-anchor-nav {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .sw-anchor-nav a {
    white-space: nowrap;
    flex: 0 0 auto;
  }
}


/* ==================================
   Final FV / Price / CTA Optimization
   客先最終要望反映
================================== */

.sw-hero__copy .sw-title{
  margin-bottom: 22px;
}

.sw-hero-feature-tag{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 4px 0 18px;
  padding: 9px 22px;
  border-radius: 999px;
  background: linear-gradient(135deg, #e6f6ff 0%, #ffffff 100%);
  border: 1px solid rgba(23, 148, 232, 0.22);
  color: var(--sw-primary-dark);
  font-size: 16px;
  font-weight: 900;
  letter-spacing: .08em;
  box-shadow: 0 8px 24px rgba(23, 148, 232, 0.08);
}

.sw-hero-subcopy{
  max-width: 520px;
  margin: 0;
  color: var(--sw-sub);
  font-size: 16px;
  line-height: 1.9;
}

.sw-hero-price-card{
  position: absolute;
  left: 24px;
  bottom: 24px;
  min-width: 210px;
  padding: 18px 22px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(226, 232, 240, 0.9);
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.16);
}

.sw-hero-price-card span{
  display: block;
  color: var(--sw-sub);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.2;
}

.sw-hero-price-card strong{
  display: block;
  margin-top: 4px;
  color: var(--sw-primary);
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.04em;
}

.sw-hero-price-card small{
  display: block;
  margin-top: 8px;
  color: var(--sw-sub);
  font-size: 13px;
  font-weight: 800;
}

.sw-hero__voice{
  right: 22px;
  bottom: 22px;
}

.sw-price-box--emphasis{
  grid-template-columns: 1.15fr .85fr;
  align-items: stretch;
}

.sw-price-panel--main{
  position: relative;
  padding: 38px;
  border: 2px solid rgba(23, 148, 232, 0.25);
  background: linear-gradient(135deg, #ffffff 0%, #f2faff 100%);
}

.sw-price-panel--option{
  padding: 28px;
  background: #fff;
}

.sw-price-label{
  display: inline-flex;
  margin-bottom: 12px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(23, 148, 232, .1);
  color: var(--sw-primary-dark);
  font-size: 13px;
  font-weight: 900;
}

.sw-price-label--option{
  background: #f8fafc;
  color: var(--sw-sub);
}

.sw-price-panel--main .sw-price-num{
  font-size: clamp(44px, 6vw, 72px);
  letter-spacing: -0.05em;
}

.sw-price-num--option{
  font-size: clamp(24px, 3vw, 34px);
  color: var(--sw-text);
}

.sw-tax-note{
  margin: -4px 0 16px !important;
  color: var(--sw-sub);
  font-size: 15px;
  font-weight: 900;
}

.sw-support-compare{
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.sw-support-compare div{
  padding: 16px;
  border-radius: 14px;
  background: var(--sw-soft);
  border: 1px solid var(--sw-border);
}

.sw-support-compare strong{
  display: block;
  margin-bottom: 6px;
  color: var(--sw-text);
  font-size: 15px;
}

.sw-support-compare p{
  color: var(--sw-sub);
  font-size: 14px;
  line-height: 1.7;
}

.sw-contact .sw-btn--final{
  min-height: 90px;
  padding: 22px 52px;
  font-size: 23px;
  border-radius: 999px;
  box-shadow: 0 22px 58px rgba(15, 23, 42, .26);
}

.sw-contact .sw-btn--final small{
  font-size: 15px;
}

@media (max-width: 1024px){
  .sw-price-box--emphasis{
    grid-template-columns: 1fr;
  }

  .sw-hero-price-card{
    left: 18px;
    bottom: 18px;
  }
}

@media (max-width: 767px){
  .sw-hero-feature-tag{
    margin-left: auto;
    margin-right: auto;
  }

  .sw-hero-subcopy{
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }

  .sw-hero-price-card{
    position: static;
    margin-top: 16px;
    width: 100%;
    text-align: center;
  }

  .sw-hero__voice{
    position: static;
    margin-top: 12px;
  }

  .sw-price-panel--main,
  .sw-price-panel--option{
    padding: 24px;
  }

  .sw-contact .sw-btn--final{
    min-height: 76px;
    padding: 18px 28px;
    font-size: 19px;
  }
}


/* ==================================
   PFAS Test Result / Safety Evidence
================================== */

.sw-safety-head{
  max-width: 850px;
  margin: 0 auto 36px;
  text-align: center;
}

.sw-pfas-summary{
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: 22px;
  align-items: stretch;
  margin-top: 36px;
}

.sw-pfas-summary__main{
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 290px;
  padding: 36px;
  border-radius: var(--sw-radius-lg);
  background: linear-gradient(145deg, #0b88d7 0%, #1794e8 55%, #48b5ef 100%);
  color: #fff;
  box-shadow: 0 20px 52px rgba(23, 148, 232, .22);
}

.sw-pfas-summary__label{
  align-self: flex-start;
  margin-bottom: 18px;
  padding: 6px 12px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .08em;
}

.sw-pfas-summary__main strong{
  display: block;
  font-size: clamp(34px, 5vw, 58px);
  line-height: 1.18;
  letter-spacing: -.04em;
}

.sw-pfas-summary__main small{
  display: block;
  margin-top: 18px;
  color: rgba(255,255,255,.84);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
}

.sw-pfas-data{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
  margin: 0;
}

.sw-pfas-data div{
  padding: 22px;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  background: #fff;
  box-shadow: 0 8px 28px rgba(15,23,42,.055);
}

.sw-pfas-data dt{
  margin-bottom: 7px;
  color: var(--sw-sub);
  font-size: 13px;
  font-weight: 900;
}

.sw-pfas-data dd{
  margin: 0;
  color: var(--sw-text);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.6;
}

.sw-pfas-data dd strong{
  color: var(--sw-primary-dark);
  font-size: 24px;
}

.sw-pfas-detail{
  margin-top: 24px;
  padding: 32px;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius-lg);
  background: #fff;
  box-shadow: var(--sw-shadow);
}

.sw-pfas-detail h3{
  margin: 0 0 18px;
  font-size: 22px;
}

.sw-table-wrap{
  overflow-x: auto;
  border: 1px solid var(--sw-border);
  border-radius: 16px;
  background: #fff;
}

.sw-pfas-table{
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
  font-size: 14px;
}

.sw-pfas-table th,
.sw-pfas-table td{
  padding: 15px 16px;
  border-bottom: 1px solid var(--sw-border);
  text-align: left;
  vertical-align: middle;
}

.sw-pfas-table thead th{
  background: #eef8fe;
  color: var(--sw-text);
  font-weight: 900;
}

.sw-pfas-table tbody th{
  color: var(--sw-text);
  font-weight: 900;
}

.sw-pfas-table td strong{
  color: var(--sw-primary-dark);
}

.sw-pfas-table tbody tr:last-child th,
.sw-pfas-table tbody tr:last-child td{
  border-bottom: 0;
}

.sw-pfas-note{
  margin: 16px 0 0;
  color: var(--sw-sub);
  font-size: 12px;
  line-height: 1.8;
}

.sw-pfas-actions{
  display: flex;
  justify-content: center;
  margin-top: 24px;
}

.sw-btn--outline{
  background: #fff;
  color: var(--sw-primary-dark);
  border-color: rgba(23,148,232,.35);
  box-shadow: 0 10px 28px rgba(23,148,232,.1);
}

.sw-btn--outline:hover{
  background: #eff9ff;
  border-color: var(--sw-primary);
  transform: translateY(-1px);
}

@media (max-width: 1024px){
  .sw-pfas-summary{
    grid-template-columns: 1fr;
  }

  .sw-pfas-summary__main{
    min-height: 0;
  }
}

@media (max-width: 767px){
  .sw-pfas-summary__main,
  .sw-pfas-detail{
    padding: 24px;
  }

  .sw-pfas-data{
    grid-template-columns: 1fr;
  }

  .sw-pfas-summary__main strong{
    font-size: 38px;
  }

  .sw-pfas-actions .sw-btn{
    width: 100%;
  }
}
/* =========================================================
   2026-09 制作開始版
   客先確定FV + サーバー構成整理
   ========================================================= */

:root{
  --sw-navy:#082552;
  --sw-blue:#0b5ee8;
  --sw-blue-2:#176ff2;
  --sw-cyan:#15a8e6;
  --sw-red:#ef3f4f;
  --sw-hero-border:#d9e4f4;
  --sw-hero-shadow:0 12px 34px rgba(8,37,82,.10);
}

.sw-production{
  color:var(--sw-navy);
}

.sw-production .sw-container{
  width:min(calc(100% - 48px), 1180px);
}

/* header */
.sw-production .sw-header{
  position:sticky;
  top:0;
  z-index:1000;
  border-bottom:1px solid rgba(8,37,82,.08);
  background:rgba(255,255,255,.96);
}

.sw-production .sw-header__inner{
  min-height:76px;
  gap:24px;
}

.sw-production .sw-logo{
  flex:0 0 auto;
}

.sw-production .sw-logo img{
  width:auto;
  max-width:205px;
  max-height:48px;
}

.sw-global-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  margin-left:auto;
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
}

.sw-global-nav a{
  transition:.2s ease;
}

.sw-global-nav a:hover{
  color:var(--sw-blue);
}

.sw-header__actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.sw-production .sw-btn--header-sub,
.sw-production .sw-btn--header-main{
  min-height:44px;
  padding:8px 16px;
  border-radius:7px;
  font-size:12px;
}

.sw-btn--header-sub{
  color:var(--sw-blue);
  border:1.5px solid var(--sw-blue);
  background:#fff;
}

.sw-btn--header-main{
  flex-direction:row;
  gap:8px;
  white-space:nowrap;
  color:#fff;
  border:1.5px solid var(--sw-blue);
  background:linear-gradient(135deg,var(--sw-blue-2),#0747b8);
  box-shadow:0 8px 20px rgba(11,94,232,.20);
}

.sw-header-cta-arrow{
  display:inline-grid;
  flex:0 0 auto;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:var(--sw-blue);
  font-size:13px;
  font-weight:900;
  line-height:1;
}

.sw-menu-button{
  display:none;
  width:42px;
  height:42px;
  padding:9px;
  border:0;
  background:transparent;
}

.sw-menu-button span{
  display:block;
  width:100%;
  height:2px;
  margin:5px 0;
  background:var(--sw-navy);
}

/* hero */
.sw-production .sw-hero--reference{
  padding:26px 0 24px;
  background:
    radial-gradient(circle at 70% 25%, rgba(230,236,245,.7) 0, rgba(255,255,255,0) 36%),
    #fff;
}

.sw-hero-shell{
  position:relative;
}

.sw-hero-main{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  align-items:end;
  min-height:570px;
  overflow:hidden;
  border-radius:4px;
  background:#fff;
}

.sw-production .sw-hero__copy{
  z-index:2;
  align-self:center;
  max-width:650px;
  padding:30px 0 24px;
}

.sw-audience-pill{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  margin-bottom:22px;
  padding:5px 21px;
  border:1.5px solid var(--sw-blue);
  border-radius:999px;
  color:var(--sw-blue);
  font-size:15px;
  font-weight:800;
  letter-spacing:.02em;
}

.sw-hero-kicker{
  display:inline-block;
  position:relative;
  margin:0 0 12px;
  font-size:21px;
  font-weight:900;
  letter-spacing:.13em;
}

.sw-hero-kicker::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:54px;
  height:3px;
  border-radius:99px;
  background:#6dc9ff;
}

.sw-production .sw-hero-title{
  margin:0 0 16px;
  color:var(--sw-navy);
  font-size:clamp(42px,4.4vw,62px);
  line-height:1.22;
  letter-spacing:.04em;
}

.sw-production .sw-hero-subcopy{
  margin:0 0 18px;
  color:var(--sw-navy);
  font-size:15px;
  font-weight:700;
  line-height:1.55;
  letter-spacing:.06em;
}

.sw-temp-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  width:min(100%,530px);
  margin:0 0 13px;
  overflow:hidden;
  border:1px solid var(--sw-hero-border);
  border-radius:8px;
  background:rgba(255,255,255,.96);
  box-shadow:var(--sw-hero-shadow);
}

.sw-temp-strip div{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:52px;
  border-right:1px solid var(--sw-hero-border);
  font-size:15px;
}

.sw-temp-strip div:last-child{
  border-right:0;
}

.sw-temp-strip div:nth-child(1){color:#1269ee}
.sw-temp-strip div:nth-child(2){color:var(--sw-red)}
.sw-temp-strip div:nth-child(3){color:#14a4d9}
.sw-temp-strip span{font-size:23px}

.sw-hero-offer{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  width:min(100%,590px);
  min-height:106px;
  margin-bottom:12px;
  overflow:hidden;
  border:1.5px solid #aacbff;
  border-radius:8px;
  background:rgba(255,255,255,.98);
  box-shadow:0 10px 26px rgba(10,74,171,.13);
}

.sw-hero-price{
  display:flex;
  align-items:center;
  min-width:0;
  padding:14px 14px 14px 16px;
}

.sw-hero-price__label{
  display:flex;
  align-items:center;
  justify-content:center;
  align-self:stretch;
  min-width:62px;
  margin-right:14px;
  border-radius:8px;
  background:linear-gradient(180deg,#1668ed,#084bc4);
  color:#fff;
  font-size:17px;
  font-weight:900;
}

.sw-hero-price strong{
  color:var(--sw-blue);
  font-size:clamp(52px,5.5vw,72px);
  line-height:.9;
  letter-spacing:.01em;
  white-space:nowrap;
}

.sw-hero-price strong small{
  font-size:23px;
}

.sw-hero-price__tax{
  align-self:flex-end;
  margin:0 0 14px 6px;
  color:var(--sw-blue);
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}

.sw-hero-checks{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  margin:0;
  padding:16px 15px;
  list-style:none;
  font-size:12px;
  font-weight:800;
}

.sw-hero-checks li::before{
  content:"✓";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  margin-right:7px;
  border:1.5px solid var(--sw-blue);
  border-radius:50%;
  color:var(--sw-blue);
  font-size:11px;
}

.sw-hero-actions{
  display:grid;
  grid-template-columns:1.14fr .86fr;
  gap:12px;
  width:min(100%,650px);
}

.sw-hero-cta{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:62px;
  padding:7px 42px 8px 18px;
  border-radius:8px;
  text-align:center;
  font-size:14px;
  font-weight:900;
}

.sw-hero-cta small{
  margin-bottom:1px;
  font-size:10px;
  font-weight:700;
}

.sw-hero-cta span{
  position:absolute;
  right:14px;
  top:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  width:31px;
  height:31px;
  transform:translateY(-50%);
  border-radius:50%;
  font-size:18px;
}

.sw-hero-cta--primary{
  color:#fff;
  background:linear-gradient(135deg,#1673f1,#074fc8);
  box-shadow:0 12px 28px rgba(11,94,232,.24);
}

.sw-hero-cta--primary span{
  background:#fff;
  color:var(--sw-blue);
}

.sw-hero-cta--secondary{
  border:1.5px solid var(--sw-blue);
  color:var(--sw-blue);
  background:#fff;
}

.sw-hero-cta--secondary span{
  background:#f3f7ff;
}

.sw-production .sw-hero__media{
  align-self:stretch;
  min-height:570px;
  overflow:hidden;
  border-radius:0;
}

.sw-production .sw-hero__image{
  width:100%;
  height:100%;
  min-height:570px;
  border-radius:0;
  box-shadow:none;
  object-fit:cover;
  object-position:center bottom;
}

.sw-hero-benefit-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  width:min(100%,650px);
  margin-top:-62px;
  position:relative;
  z-index:5;
  overflow:hidden;
  border:1px solid var(--sw-hero-border);
  border-radius:8px;
  background:rgba(255,255,255,.98);
  box-shadow:var(--sw-hero-shadow);
}

.sw-hero-benefit-strip > div{
  display:grid;
  grid-template-columns:34px 1fr;
  grid-template-rows:auto auto;
  align-items:center;
  gap:0 9px;
  min-height:72px;
  padding:10px 12px;
  border-right:1px solid var(--sw-hero-border);
}

.sw-hero-benefit-strip > div:last-child{
  border-right:0;
}

.sw-benefit-icon{
  grid-row:1/3;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--sw-blue);
  font-size:26px;
}

.sw-hero-benefit-strip strong{
  font-size:12px;
  line-height:1.25;
}

.sw-hero-benefit-strip small{
  font-size:10px;
  font-weight:700;
  line-height:1.2;
}

.sw-production .sw-anchor-nav{
  padding-top:18px;
}

/* server lineup */
.sw-server-section{
  background:linear-gradient(180deg,#fff 0%,#f4f8fd 100%);
}

/* ラインナップから料金まで、同じ薄い水色を境界色にして背景をつなぐ */
.sw-production #price.sw-section--soft{
  background:linear-gradient(180deg,#f4f8fd 0%,#fff 100%);
}

.sw-server-choice{
  max-width:920px;
  margin:42px auto 0;
  padding:24px;
  border:1px solid #dce9f8;
  border-radius:20px;
  background:#f7fbff;
}

.sw-server-choice__label{
  margin-bottom:16px;
  text-align:center;
  color:var(--sw-blue);
  font-weight:900;
}

.sw-server-choice__steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}

.sw-server-choice__steps > div{
  padding:18px;
  border-radius:14px;
  background:#fff;
  box-shadow:0 6px 18px rgba(8,37,82,.05);
}

.sw-server-choice__steps span{
  display:block;
  color:var(--sw-blue);
  font-size:12px;
  font-weight:900;
}

.sw-server-choice__steps strong,
.sw-server-choice__steps small{
  display:block;
}

.sw-server-choice__steps strong{
  margin:3px 0;
  font-size:17px;
}

.sw-server-choice__steps small{
  color:var(--sw-sub);
  font-size:12px;
}

.sw-server-groups{
  display:grid;
  gap:28px;
  margin-top:30px;
}

.sw-server-group{
  padding:30px;
  border:1px solid #dce6f3;
  border-radius:24px;
  background:#fff;
  box-shadow:0 12px 35px rgba(8,37,82,.06);
}

.sw-server-group__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:24px;
}

.sw-product-kicker{
  display:block;
  margin-bottom:5px;
  color:var(--sw-blue);
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
}

.sw-server-group__head h3{
  margin:0 0 7px;
  color:var(--sw-navy);
  font-size:30px;
  line-height:1.25;
}

.sw-server-group__head p{
  margin:0;
  color:var(--sw-sub);
}

.sw-product-tag{
  flex:0 0 auto;
  padding:8px 14px;
  border-radius:999px;
  background:#eef5ff;
  color:var(--sw-blue);
  font-size:12px;
  font-weight:900;
}

.sw-product-tag--accent{
  background:#eafaff;
  color:#0085b9;
}

.sw-standard-layouts{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}

.sw-server-card{
  display:grid;
  grid-template-columns:42% 58%;
  overflow:hidden;
  border:1px solid #e1e8f1;
  border-radius:18px;
  background:#fff;
}

.sw-server-card__image{
  min-height:330px;
  background:#f6f9fd;
}

.sw-server-card__image img{
  width:100%;
  height:100%;
  min-height:330px;
  object-fit:contain;
  object-position:center bottom;
}

.sw-server-card__body{
  padding:24px;
}

.sw-server-card__body h4{
  margin:0 0 9px;
  color:var(--sw-navy);
  font-size:23px;
  line-height:1.35;
}

.sw-server-card__body > p{
  margin:0 0 16px;
  color:var(--sw-sub);
  font-size:14px;
}

.sw-methods{
  display:grid;
  gap:10px;
}

.sw-method{
  padding:13px 14px;
  border-radius:12px;
  background:#f5f9ff;
}

.sw-method strong,
.sw-method span{
  display:block;
}

.sw-method strong{
  margin-bottom:3px;
  color:var(--sw-blue);
  font-size:14px;
}

.sw-method span{
  color:var(--sw-sub);
  font-size:12px;
  line-height:1.55;
}

.sw-server-card--large{
  grid-template-columns:minmax(250px,34%) 1fr;
}

.sw-server-card--large .sw-server-card__image{
  min-height:380px;
}

.sw-server-card--large .sw-server-card__image img{
  min-height:380px;
}

.sw-server-points{
  display:grid;
  gap:10px;
  margin:18px 0 0;
  padding:0;
  list-style:none;
}

.sw-server-points li{
  position:relative;
  padding-left:24px;
  color:var(--sw-navy);
  font-size:14px;
  font-weight:700;
}

.sw-server-points li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:var(--sw-blue);
}

.sw-server-note{
  margin-top:28px;
  padding:30px;
  border-radius:20px;
  background:#eef6ff;
  text-align:center;
}

.sw-server-note strong{
  display:block;
  margin-bottom:8px;
  font-size:20px;
}

.sw-server-note p{
  margin:0 0 18px;
  color:var(--sw-sub);
}

/* Mobile */
@media (max-width:1100px){
  .sw-global-nav{
    display:none;
  }

  .sw-header__actions .sw-btn--header-sub{
    display:none;
  }

  .sw-menu-button{
    display:block;
  }

  .sw-hero-main{
    grid-template-columns:1fr 44%;
  }

  .sw-hero-benefit-strip{
    margin-top:12px;
  }
}

@media (max-width:767px){
  .sw-production .sw-container{
    width:95%;
  }

  .sw-production .sw-header__inner{
    min-height:64px;
  }

  .sw-production .sw-logo img{
    max-width:176px;
    max-height:38px;
  }

  .sw-header__actions{
    display:none;
  }

  .sw-production .sw-hero--reference{
    padding:18px 0 8px;
  }

  .sw-hero-main{
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow:visible;
  }

  .sw-production .sw-hero__copy{
    width:100%;
    max-width:none;
    padding:8px 0 18px;
  }

  .sw-audience-pill{
    min-height:30px;
    margin-bottom:18px;
    padding:4px 14px;
    font-size:11px;
  }

  .sw-hero-kicker{
    margin-bottom:11px;
    font-size:16px;
  }

  .sw-production .sw-hero-title{
    margin-bottom:12px;
    font-size:clamp(35px,10vw,43px);
    line-height:1.28;
    letter-spacing:.02em;
  }

  .sw-production .sw-hero-subcopy{
    margin-bottom:16px;
    font-size:13px;
  }

  .sw-temp-strip{
    width:100%;
    margin-bottom:12px;
  }

  .sw-temp-strip div{
    min-height:48px;
    gap:5px;
    font-size:12px;
  }

  .sw-temp-strip span{
    font-size:18px;
  }

  .sw-hero-offer{
    grid-template-columns:1fr;
    width:100%;
  }

  .sw-hero-price{
    justify-content:center;
    padding:14px;
  }

  .sw-hero-price__label{
    min-width:55px;
    min-height:70px;
    align-self:auto;
  }

  .sw-hero-price strong{
    font-size:clamp(50px,16vw,68px);
  }

  .sw-hero-price__tax{
    margin-bottom:16px;
  }

  .sw-hero-checks{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    padding:13px 22px 16px;
    border-top:1px solid #e5edf7;
    font-size:12px;
  }

  .sw-hero-actions{
    grid-template-columns:1fr;
    width:100%;
  }

  .sw-hero-cta{
    min-height:64px;
  }

  .sw-hero-cta--primary{
    order:1;
  }

  .sw-hero-cta--secondary{
    order:2;
  }

  .sw-production .sw-hero__media{
    order:2;
    width:calc(100% + 28px);
    min-height:0;
    margin-left:-14px;
  }

  .sw-production .sw-hero__image{
    min-height:0;
    aspect-ratio:4/4.5;
    object-fit:cover;
    object-position:center bottom;
  }

  .sw-hero-benefit-strip{
    grid-template-columns:repeat(2,1fr);
    width:100%;
    margin-top:0;
    border-radius:0 0 12px 12px;
  }

  .sw-hero-benefit-strip > div{
    min-height:92px;
    border-right:1px solid var(--sw-hero-border);
    border-bottom:1px solid var(--sw-hero-border);
  }

  .sw-hero-benefit-strip > div:nth-child(2n){
    border-right:0;
  }

  .sw-hero-benefit-strip > div:nth-last-child(-n+2){
    border-bottom:0;
  }

  .sw-production .sw-anchor-nav{
    display:none;
  }

  .sw-server-choice{
    margin-top:28px;
    padding:18px;
  }

  .sw-server-choice__steps{
    grid-template-columns:1fr;
  }

  .sw-server-group{
    padding:20px 15px;
    border-radius:18px;
  }

  .sw-server-group__head{
    display:block;
  }

  .sw-product-tag{
    display:inline-block;
    margin-top:12px;
  }

  .sw-standard-layouts{
    grid-template-columns:1fr;
  }

  .sw-server-card,
  .sw-server-card--large{
    grid-template-columns:1fr;
  }

  .sw-server-card__image,
  .sw-server-card__image img,
  .sw-server-card--large .sw-server-card__image,
  .sw-server-card--large .sw-server-card__image img{
    min-height:0;
  }

  .sw-server-card__image img{
    aspect-ratio:4/3;
    padding:18px;
  }

  .sw-server-card__body{
    padding:20px;
  }

  .sw-server-note{
    padding:24px 18px;
  }
}

/* Optional sticky CTA for mobile */
@media (max-width:767px){
  .sw-production{
    padding-bottom:76px;
  }

  .sw-production::after{
    content:"";
    display:block;
    height:0;
  }

  .sw-production .sw-contact{
    margin-bottom:0;
  }
}


/* Native mobile menu + fixed CTA */
.sw-mobile-menu{
  display:none;
  position:relative;
  margin:0;
}

.sw-mobile-menu summary{
  width:42px;
  height:42px;
  padding:9px;
  cursor:pointer;
  list-style:none;
}

.sw-mobile-menu summary::-webkit-details-marker{
  display:none;
}

.sw-mobile-menu summary span{
  display:block;
  width:100%;
  height:2px;
  margin:5px 0;
  background:var(--sw-navy);
  transition:.2s ease;
}

.sw-mobile-menu[open] summary span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.sw-mobile-menu[open] summary span:nth-child(2){
  opacity:0;
}
.sw-mobile-menu[open] summary span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

.sw-mobile-menu nav{
  position:absolute;
  top:52px;
  right:0;
  width:min(310px,calc(100vw - 28px));
  padding:14px;
  border:1px solid #dce6f3;
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 50px rgba(8,37,82,.18);
}

.sw-mobile-menu nav a{
  display:block;
  padding:12px 10px;
  border-bottom:1px solid #edf1f6;
  color:var(--sw-navy);
  font-size:13px;
  font-weight:800;
}

.sw-mobile-menu nav a:last-child{
  border-bottom:0;
  color:var(--sw-blue);
}

.sw-mobile-menu nav a.sw-mobile-trial-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:8px;
  padding:11px 12px;
  border:0;
  border-radius:9px;
  background:linear-gradient(135deg,var(--sw-blue-2),#0747b8);
  color:#fff;
  box-shadow:0 7px 16px rgba(11,94,232,.16);
}

.sw-mobile-menu nav a.sw-instagram-link--menu{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:10px;
  padding:13px 10px 4px;
  border-top:1px solid #edf1f6;
  border-bottom:0;
  color:var(--sw-blue);
}

.sw-instagram-link svg{
  width:20px;
  height:20px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}

.sw-header-instagram{
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  margin-left:-8px;
  border:1px solid rgba(11,94,232,.28);
  border-radius:50%;
  color:var(--sw-blue);
  transition:color .2s ease,background .2s ease,border-color .2s ease;
}

.sw-header-instagram svg{
  width:18px;
  height:18px;
}

.sw-header-instagram:hover,
.sw-header-instagram:focus-visible{
  border-color:var(--sw-blue);
  background:#edf5ff;
  color:var(--sw-blue);
}

.sw-mobile-phone{
  display:none;
  place-items:center;
  flex:0 0 auto;
  width:40px;
  height:40px;
  border:1.5px solid rgba(11,94,232,.35);
  border-radius:50%;
  background:rgba(255,255,255,.76);
  color:var(--sw-blue);
  text-decoration:none;
}

.sw-mobile-phone svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.sw-mobile-sticky{
  display:none;
}

@media (max-width:1100px){
  .sw-menu-button{display:none!important}
  .sw-mobile-menu{display:block}

  .sw-production .sw-header__actions{
    margin-left:auto!important;
  }

  .sw-mobile-phone{
    display:grid;
  }
}

@media (max-width:767px){
  .sw-mobile-sticky{
    position:fixed;
    z-index:1200;
    left:10px;
    right:10px;
    bottom:10px;
    display:block;
    opacity:0;
    pointer-events:none;
    transform:translateY(18px);
    transition:opacity .28s ease,transform .28s ease;
  }

  html.is-mobile-sticky-visible .sw-mobile-sticky{
    opacity:1;
    pointer-events:auto;
    transform:none;
  }

  .sw-mobile-sticky a{
    position:relative;
    display:flex;
    min-height:64px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:7px 48px 8px 16px;
    border-radius:10px;
    color:#fff;
    background:linear-gradient(135deg,#1673f1,#074fc8);
    box-shadow:0 10px 34px rgba(8,50,135,.30);
    text-align:center;
  }

  .sw-mobile-sticky small{
    font-size:9px;
    line-height:1.2;
  }

  .sw-mobile-sticky strong{
    margin-top:2px;
    font-size:14px;
    line-height:1.3;
  }

  .sw-mobile-sticky span{
    position:absolute;
    right:14px;
    top:50%;
    display:flex;
    width:31px;
    height:31px;
    align-items:center;
    justify-content:center;
    transform:translateY(-50%);
    border-radius:50%;
    background:#fff;
    color:var(--sw-blue);
    font-size:18px;
  }
}

@media (prefers-reduced-motion:reduce){
  .sw-mobile-sticky{
    transition:none!important;
  }
}


/* =========================================================
   2026-09 整形レイヤー（レイアウト・文言は客先版を維持）
   ・色／書体／余白／改行／アイコン／レスポンシブを整える
   ・このブロックを削除すれば元の見た目に戻ります
   ========================================================= */

/* ---------- 1. 色をFVの青に統一 ---------- */
.sw-production{
  --sw-primary:#0b5ee8;
  --sw-primary-dark:#074fc8;
  --sw-text:#082552;
  --sw-sub:#1d1d1d;
  --sw-soft:#f4f8fe;
  --sw-border:#dfe7f2;
  --sw-dark:#0a1838;
  --sw-grad:linear-gradient(135deg,#1673f1 0%,#074fc8 100%);
  --sw-radius:14px;
  --sw-radius-lg:22px;
  --sw-shadow:0 12px 32px rgba(8,37,82,.08);
}

/* ---------- 2. 書体・文字組み ---------- */
body.sw-production{
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,system-ui,sans-serif;
  font-feature-settings:"palt";
  -webkit-font-smoothing:antialiased;
  line-height:1.85;
}

/* 見出しは<wbr>位置でのみ改行（語の途中で折り返さない） */
.sw-production h1,
.sw-production h2,
.sw-production h3,
.sw-production h4,
.sw-production .sw-server-note strong{
  word-break:keep-all;
  overflow-wrap:anywhere;
}

.sw-production .sw-title{
  color:var(--sw-navy);
  letter-spacing:.04em;
  line-height:1.45;
}

.sw-production .sw-title--md{
  font-size:clamp(24px,3vw,36px);
  margin-bottom:0;
}

.sw-production .sw-section--dark .sw-title{
  color:#fff;
}

.sw-production .sw-lead{
  max-width:780px;
  margin-top:18px;
  font-size:15.5px;
  line-height:2;
}

.sw-production p,
.sw-production li,
.sw-production dd{
  line-break:strict;
}

/* ---------- 3. セクション共通 ---------- */
.sw-production .sw-section{
  padding:104px 0;
}

.sw-production .sw-eyebrow{
  margin-bottom:16px;
  padding:5px 18px;
  border:1.5px solid rgba(11,94,232,.35);
  background:#fff;
  color:var(--sw-blue);
  font-size:13px;
  letter-spacing:.08em;
}

.sw-production .sw-section--soft .sw-eyebrow{
  background:#fff;
}

.sw-production .sw-section--dark .sw-eyebrow{
  border-color:rgba(143,195,255,.45);
  background:transparent;
  color:#9cc8ff;
}

.sw-production .sw-grid-3,
.sw-production .sw-grid-4,
.sw-production .sw-feature-list{
  margin-top:44px;
}

.sw-production .sw-card,
.sw-production .sw-feature,
.sw-production .sw-price-panel{
  border-color:var(--sw-border);
  box-shadow:0 4px 16px rgba(8,37,82,.05);
}

.sw-production .sw-card h3{
  color:var(--sw-navy);
  font-size:19px;
  letter-spacing:.04em;
}

.sw-production .sw-card p{
  font-size:14.5px;
  line-height:1.9;
}

/* ---------- 4. ボタン（FVのCTAと同じ形状に） ---------- */
.sw-production .sw-btn{
  border-radius:8px;
  letter-spacing:.04em;
}

.sw-production .sw-section .sw-btn--primary,
.sw-production .sw-contact .sw-btn--final{
  position:relative;
  min-width:340px;
  min-height:64px;
  padding:10px 60px 10px 28px;
  background:var(--sw-grad);
  color:#fff;
  font-size:16px;
  box-shadow:0 12px 28px rgba(11,94,232,.24);
}

.sw-production .sw-section .sw-btn--primary::after,
.sw-production .sw-contact .sw-btn--final::after{
  content:"→";
  position:absolute;
  right:16px;
  top:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  transform:translateY(-50%);
  border-radius:50%;
  background:#fff;
  color:var(--sw-blue);
  font-size:16px;
  font-weight:900;

}

.sw-production .sw-btn--primary small{
  margin-top:1px;
  font-size:11.5px;
  opacity:.92;
}

/* 各セクション末尾のCTA位置をそろえる */
.sw-production #problems > .sw-container > .sw-center:last-child{
  margin-top:48px;
}

.sw-production .sw-cta-space{
  margin-top:48px;
}

.sw-production .sw-btn--outline{
  border-radius:8px;
  border-color:var(--sw-blue);
  color:var(--sw-blue);
  box-shadow:none;
}

/* ---------- 5. ヘッダー ---------- */
.sw-production .sw-header__actions{
  margin-left:auto;
}

.sw-production .sw-global-nav + .sw-header__actions{
  margin-left:0;
}

/* ---------- 6. FV（客先確定デザインの再現精度を上げる） ---------- */
.sw-production .sw-audience-pill{
  display:flex;
  width:max-content;
  max-width:100%;
}

.sw-production .sw-hero-kicker{
  display:block;
  width:max-content;
}

.sw-production .sw-hero-kicker::after{
  width:100%;
  background:linear-gradient(90deg,#6dc9ff,rgba(109,201,255,.2));
}

.sw-production .sw-hero-title{
  letter-spacing:.1em;
}

.sw-production .sw-hero__copy{
  padding-bottom:104px;
}

.sw-temp-strip span{
  display:flex;
}

.sw-temp-strip svg{
  width:24px;
  height:24px;
}

.sw-benefit-icon svg{
  width:28px;
  height:28px;
}

.sw-production .sw-hero-benefit-strip{
  width:min(100%,600px);
  margin-top:-92px;
}

.sw-production .sw-hero-actions,
.sw-production .sw-hero-offer{
  width:min(100%,600px);
}

.sw-production .sw-pfas-summary__main strong{
  font-size:clamp(32px,3.6vw,46px);
  letter-spacing:0;
}

.sw-production .sw-hero-benefit-strip strong{
  color:var(--sw-navy);
}

.sw-production .sw-hero-benefit-strip small{
  color:var(--sw-sub);
}

.sw-production .sw-hero-cta{

}

.sw-production .sw-anchor-nav{
  gap:10px;
  padding-bottom:36px;
}

.sw-production .sw-anchor-nav a{
  padding:8px 18px;
  border-color:var(--sw-border);
  color:var(--sw-navy);
  font-size:13px;

}

.sw-production .sw-anchor-nav a::after{
  content:"↓";
  margin-left:6px;
  color:var(--sw-blue);
}

/* ---------- 7. お悩み／解決 ---------- */
.sw-production #problems .sw-problem-card{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  grid-template-rows:auto 1fr;
  column-gap:16px;
  align-items:start;
}

.sw-production .sw-problem-card__icon{
  grid-row:1 / 3;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid rgba(11,94,232,.18);
  border-radius:12px;
  background:linear-gradient(180deg,#f8fcff,#eef7ff);
  color:var(--sw-blue);
}

.sw-production .sw-problem-card__icon svg{
  width:30px;
  height:30px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.sw-production #problems .sw-problem-card h3{
  margin:0 0 7px;
}

.sw-production .sw-quick-solution{
  position:relative;
  margin-top:64px;
  padding:52px 48px 48px;
  border:1px solid var(--sw-border);
  text-align:center;
}

.sw-production .sw-quick-solution::before{
  content:"";
  position:absolute;
  left:50%;
  top:-13px;
  width:24px;
  height:24px;
  transform:translateX(-50%) rotate(45deg);
  border-top:1px solid var(--sw-border);
  border-left:1px solid var(--sw-border);
  background:#fff;
}

.sw-production .sw-quick-solution h2{
  color:var(--sw-navy);
  letter-spacing:.05em;
}

.sw-production .sw-solution-grid div{
  padding:26px 16px;
  border:1px solid #e3ecf8;
}

.sw-production .sw-solution-grid span{
  color:var(--sw-navy);
  font-size:15px;
  letter-spacing:.06em;
}

.sw-production .sw-solution-grid strong{
  color:var(--sw-blue);
  font-size:36px;
  letter-spacing:.12em;
  line-height:1.4;
}

/* ---------- 8. 法人のメリット ---------- */
.sw-production #benefits{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#f6f9fd;
}

.sw-production #benefits::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.72),rgba(255,255,255,.8) 50%,rgba(255,255,255,.68)),
    url("../images/benefits-office-bg.jpg");
  background-repeat:no-repeat;
  background-position:center,center 38%;
  background-size:cover;
}

.sw-production #benefits .sw-container{
  position:relative;
  z-index:1;
}

.sw-production #benefits .sw-feature{
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
}

.sw-production .sw-feature{
  position:relative;
  padding:26px 26px 24px 64px;
}

.sw-production .sw-feature::before{
  content:"";
  position:absolute;
  left:24px;
  top:28px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--sw-grad) ;
  -webkit-mask:none;
}

.sw-production .sw-feature::after{
  content:"";
  position:absolute;
  left:32px;
  top:33px;
  width:6px;
  height:11px;
  transform:rotate(45deg);
  border-right:2px solid #fff;
  border-bottom:2px solid #fff;
}

.sw-production .sw-feature strong{
  color:var(--sw-navy);
  letter-spacing:.04em;
}

.sw-production .sw-feature span{
  display:block;
  line-height:1.85;
}

/* ---------- 9. PFAS ---------- */
.sw-production .sw-pfas-summary__main{
  background:linear-gradient(145deg,#074fc8 0%,#1673f1 60%,#3d8ff5 100%);
  box-shadow:0 20px 48px rgba(11,94,232,.22);
}

.sw-production .sw-pfas-data dd strong,
.sw-production .sw-pfas-table td strong{
  color:var(--sw-blue);
}

.sw-production .sw-pfas-table thead th{
  background:#eef4fe;
}

/* ---------- 10. 選ばれる理由 ---------- */
.sw-production #trust{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#071735;
}

.sw-production #trust::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:
    linear-gradient(180deg,rgba(5,18,45,.7) 0%,rgba(5,18,45,.6) 42%,rgba(5,18,45,.86) 100%),
    linear-gradient(90deg,rgba(5,18,45,.28),rgba(5,18,45,.08) 48%,rgba(5,18,45,.3));
}

.sw-production .sw-trust-media{
  position:absolute;
  z-index:-2;
  inset:0;
}

.sw-production .sw-trust-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 47%;
}

.sw-production #trust > .sw-container{
  position:relative;
  text-align:center;
}

.sw-production #trust .sw-trust-grid{
  text-align:left;
}

.sw-production .sw-card--dark{
  padding:30px 26px;
  border-top:3px solid rgba(90,160,255,.7);
  background:rgba(7,23,53,.74);
  border-right-color:rgba(255,255,255,.28);
  border-bottom-color:rgba(255,255,255,.28);
  border-left-color:rgba(255,255,255,.28);
  box-shadow:0 16px 38px rgba(0,13,38,.18);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
}

.sw-production .sw-card--dark h3{
  color:#fff;
  font-size:18px;
  line-height:1.55;
}

/* ---------- 11. サーバーラインナップ ---------- */
.sw-production .sw-server-group__head h3{
  letter-spacing:.04em;
}

.sw-production .sw-server-note .sw-btn--primary{
  min-width:300px;
}

/* ---------- 12. 料金 ---------- */
.sw-production .sw-price-panel--main{
  border:2px solid var(--sw-blue);
  background:#fff;
}

.sw-production .sw-price-panel--main .sw-price-num{
  color:var(--sw-blue);
  letter-spacing:-.01em;
}

.sw-production .sw-price-label{
  background:var(--sw-grad);
  color:#fff;
}

.sw-production .sw-price-label--option{
  background:#fff;
  border:1px solid var(--sw-border);
  color:var(--sw-sub);
}

.sw-production .sw-price-panel--option{
  background:var(--sw-soft);
}

.sw-production .sw-support-compare div{
  background:#fff;
}

.sw-production .sw-support-compare div:first-child{
  border-color:rgba(11,94,232,.35);
}

.sw-production .sw-support-compare div:first-child strong{
  color:var(--sw-blue);
}

/* ---------- 13. 使用シーン ---------- */
.sw-production .sw-scene-carousel{
  margin-top:44px;
}

.sw-production .sw-scene-carousel__track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  padding:2px 2px 14px;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
}

.sw-production .sw-scene-carousel__track::-webkit-scrollbar{
  display:none;
}

.sw-production .sw-scene-card{
  flex:0 0 calc((100% - 32px) / 3);
  min-width:0;
  margin:0;
  overflow:hidden;
  border:1px solid var(--sw-line);
  border-radius:var(--sw-radius);
  background:#fff;
  scroll-snap-align:start;
}

.sw-production .sw-scene-card img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  object-position:center;
  background:var(--sw-soft);
}

.sw-production .sw-scene-card figcaption{
  padding:14px 16px 15px;
  color:var(--sw-navy);
  font-size:14px;
  font-weight:800;
  line-height:1.5;
}

.sw-production .sw-scene-carousel__controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  margin-top:10px;
}

.sw-production .sw-scene-carousel__button{
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  padding:0 0 3px;
  border:1px solid rgba(11,94,232,.28);
  border-radius:50%;
  background:#fff;
  color:var(--sw-blue);
  cursor:pointer;
  font-size:30px;
  line-height:1;
}

.sw-production .sw-scene-carousel__button:hover,
.sw-production .sw-scene-carousel__button:focus-visible{
  border-color:var(--sw-blue);
  outline:3px solid rgba(11,94,232,.14);
  outline-offset:2px;
}

.sw-production .sw-scene-carousel__button:disabled{
  cursor:default;
  opacity:.34;
}

.sw-production .sw-scene-carousel__status{
  min-width:54px;
  color:var(--sw-sub);
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  text-align:center;
}

/* ---------- 14. FAQ（Q／A表示と開閉アイコン） ---------- */
.sw-production .sw-faq details{
  padding:0;
  box-shadow:none;

}

.sw-production .sw-faq details[open]{
  border-color:rgba(11,94,232,.35);
  box-shadow:0 6px 20px rgba(8,37,82,.06);
}

.sw-production .sw-faq summary{
  position:relative;
  padding:20px 56px 20px 64px;
  color:var(--sw-navy);
  line-height:1.6;
}

.sw-production .sw-faq summary::-webkit-details-marker{
  display:none;
}

.sw-production .sw-faq summary::before{
  content:"Q";
  position:absolute;
  left:20px;
  top:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  transform:translateY(-50%);
  border-radius:50%;
  background:var(--sw-grad);
  color:#fff;
  font-size:14px;
  font-weight:900;
}

.sw-production .sw-faq summary::after{
  content:"＋";
  position:absolute;
  right:22px;
  top:50%;
  transform:translateY(-50%);
  color:var(--sw-blue);
  font-size:18px;
  font-weight:700;

}

.sw-production .sw-faq details[open] summary::after{
  content:"－";
}

.sw-production .sw-faq p{
  position:relative;
  margin:0;
  padding:0 24px 22px 64px;
  font-size:14.5px;
  line-height:1.95;
}

.sw-production .sw-faq p::before{
  content:"A";
  position:absolute;
  left:20px;
  top:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#eaf2ff;
  color:var(--sw-blue);
  font-size:14px;
  font-weight:900;
}

/* ---------- 15. 最終CTA ---------- */
.sw-production .sw-contact{
  position:relative;
  overflow:hidden;
  padding:112px 0;
  background:var(--sw-grad);
}

.sw-production .sw-contact::before,
.sw-production .sw-contact::after{
  content:"";
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.16);
  pointer-events:none;
}

.sw-production .sw-contact::before{
  width:680px;
  height:680px;
  right:-240px;
  top:-320px;
}

.sw-production .sw-contact::after{
  width:460px;
  height:460px;
  left:-200px;
  bottom:-280px;
}

.sw-production .sw-contact .sw-container{
  position:relative;
  z-index:1;
}

.sw-production .sw-contact .sw-title{
  color:#fff;
  font-size:clamp(28px,4vw,46px);
}

.sw-production .sw-contact .sw-lead{
  color:rgba(255,255,255,.92);
}

.sw-production .sw-contact .sw-cta-lead{
  margin-top:36px;
  color:#fff;
}

.sw-production .sw-contact .sw-btn--final{
  margin-top:14px;
  min-width:420px;
  min-height:80px;
  padding:14px 72px 14px 36px;
  background:#fff;
  color:var(--sw-blue);
  font-size:21px;
  box-shadow:0 20px 44px rgba(5,20,80,.3);
}

.sw-production .sw-contact .sw-btn--final::after{
  width:36px;
  height:36px;
  right:20px;
  background:var(--sw-grad);
  color:#fff;
}

.sw-production .sw-contact .sw-btn--final small{
  font-size:13px;
}

/* =========================================================
   RESPONSIVE（整形レイヤー）
   ========================================================= */

/* タブレット：FVを縦積みにして崩れを防ぐ */
@media (max-width:1024px){
  .sw-production .sw-section{
    padding:88px 0;
  }

  .sw-production .sw-hero-main{
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow:visible;
  }

  .sw-production .sw-hero__copy{
    width:100%;
    max-width:none;
    padding:16px 0 24px;
  }

  .sw-production .sw-hero__media{
    width:100%;
    min-height:0;
    border-radius:12px;
  }

  .sw-production .sw-hero__image{
    min-height:0;
    height:auto;
    aspect-ratio:16/10;
    object-position:center 28%;
  }

  .sw-production .sw-header__actions,
  .sw-production .sw-global-nav + .sw-header__actions{
    margin-left:auto;
  }

  .sw-production .sw-standard-layouts{
    grid-template-columns:1fr;
  }

  .sw-production .sw-hero-benefit-strip{
    width:100%;
    margin-top:14px;
  }

  /* 3列カードはタブレットでも3列を維持（2＋1の段落ちを防ぐ） */
  .sw-production .sw-grid-3,
  .sw-production .sw-solution-grid{
    grid-template-columns:repeat(3,1fr);
  }

  .sw-production .sw-grid-3 .sw-card{
    padding:22px 18px;
  }

  .sw-production .sw-feature-list{
    grid-template-columns:repeat(2,1fr);
  }

  .sw-production .sw-scene-card{
    flex-basis:calc((100% - 16px) / 2);
  }
}

@media (max-width:767px){
  .sw-production .sw-section{
    padding:72px 0;
  }

  .sw-production .sw-title--md{
    font-size:23px;
    line-height:1.55;
  }

  .sw-production .sw-lead{
    font-size:14.5px;
    text-align:left;
  }

  .sw-production .sw-hero-title{
    font-size:clamp(30px,9.2vw,40px);
    letter-spacing:.03em;
  }

  .sw-production .sw-hero-subcopy{
    text-align:left;
    margin-left:0;
  }

  .sw-production .sw-hero__media{
    width:calc(100% + 28px);
    border-radius:0;
  }

  .sw-production .sw-hero__image{
    aspect-ratio:4/4.2;
  }

  .sw-production .sw-hero-benefit-strip{
    margin-top:0;
  }

  .sw-production .sw-hero-benefit-strip > div{
    min-height:76px;
  }

  .sw-production .sw-grid-3,
  .sw-production .sw-feature-list{
    grid-template-columns:1fr;
    gap:12px;
    margin-top:32px;
  }

  .sw-production .sw-grid-4{
    gap:12px;
  }

  /* 解決ボックス：3項目を横並びのまま圧縮 */
  .sw-production .sw-quick-solution{
    margin-top:48px;
    padding:36px 16px 20px;
  }

  .sw-production .sw-quick-solution h2{
    font-size:19px;
  }

  .sw-production .sw-solution-grid{
    grid-template-columns:repeat(3,1fr);
    gap:8px;
  }

  .sw-production .sw-solution-grid div{
    padding:14px 4px;
  }

  .sw-production .sw-solution-grid span{
    font-size:11.5px;
    letter-spacing:0;
  }

  .sw-production .sw-solution-grid strong{
    font-size:22px;
    letter-spacing:.06em;
  }

  .sw-production .sw-feature{
    padding:20px 20px 18px 56px;
  }

  .sw-production .sw-feature::before{
    left:18px;
    top:22px;
  }

  .sw-production .sw-feature::after{
    left:26px;
    top:27px;
  }

  .sw-production .sw-section .sw-btn--primary{
    min-width:0;
    width:100%;
    font-size:15px;
  }

  .sw-production #problems > .sw-container > .sw-center:last-child,
  .sw-production .sw-cta-space{
    margin-top:36px;
  }

  .sw-production .sw-card--dark{
    padding:24px 20px;
  }

  .sw-production .sw-pfas-table{
    min-width:520px;
    font-size:13px;
  }

  .sw-production .sw-scene-carousel{
    margin-top:32px;
  }

  .sw-production .sw-scene-carousel__track{
    gap:12px;
    margin-right:calc(50% - 50vw);
    padding-right:28px;
  }

  .sw-production .sw-scene-card{
    flex-basis:84%;
  }

  .sw-production .sw-scene-card figcaption{
    padding:12px 14px 13px;
    font-size:13.5px;
  }

  .sw-production .sw-scene-carousel__controls{
    justify-content:center;
    margin-top:8px;
  }

  .sw-production .sw-faq summary{
    padding:16px 44px 16px 54px;
    font-size:14.5px;
  }

  .sw-production .sw-faq summary::before,
  .sw-production .sw-faq p::before{
    left:14px;
    width:28px;
    height:28px;
    font-size:13px;
  }

  .sw-production .sw-faq summary::after{
    right:16px;
  }

  .sw-production .sw-faq p{
    padding:0 18px 18px 54px;
    font-size:14px;
  }

  .sw-production .sw-contact{
    padding:80px 0;
  }

  .sw-production .sw-contact .sw-title{
    font-size:26px;
  }

  .sw-production .sw-contact .sw-lead{
    text-align:center;
  }

  .sw-production .sw-contact .sw-btn--final{
    min-width:0;
    width:100%;
    min-height:72px;
    padding:12px 60px 12px 20px;
    font-size:18px;
  }
}


/* FV image layout: keep the current content, type scale and CTA styling.
   Adjust these two positions independently after the final photo is supplied. */
.sw-production .sw-hero--reference {
  --sw-fv-position-pc: 40% center;
  --sw-fv-position-tablet: 72% center;
  --sw-fv-position-sp: 75% center;
}

/* Desktop: one full-width visual, with the existing copy in front. */
@media (min-width: 1025px) {
  .sw-production .sw-hero--reference .sw-hero-shell {
    width: 100%;
    max-width: none;
  }

  .sw-production .sw-hero--reference .sw-hero-main {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    width: 100%;
    min-width: 0;
    aspect-ratio: 32 / 15;
    min-height: 700px;
    overflow: hidden;
  }

  .sw-production .sw-hero--reference .sw-hero__media {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
  }

  .sw-production .sw-hero--reference .sw-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: var(--sw-fv-position-pc);
  }

  .sw-production .sw-hero--reference .sw-hero-main::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(90deg,
      rgba(255,255,255,.65) 0%,
      rgba(255,255,255,.50) 32%,
      rgba(255,255,255,.18) 46%,
      rgba(255,255,255,0) 60%);
  }

  .sw-production .sw-hero--reference .sw-hero__copy {
    position: relative;
    z-index: 2;
    width: min(650px, calc(100% - 48px));
    max-width: 650px;
    margin-left: max(24px, calc((100% - 1180px) / 2));
    padding: 30px 0;
  }

  .sw-production .sw-hero--reference .sw-hero-benefit-strip {
    margin-top: 18px;
    margin-left: max(24px, calc((100% - 1180px) / 2));
  }
}

/* Tablet / mobile: copy and CTAs, then the same photo in normal flow. */
@media (max-width: 1024px) {
  .sw-production .sw-hero--reference .sw-hero__media {
    position: static;
    width: 100%;
    height: auto;
    min-height: 0;
    margin-left: 0;
  }

  .sw-production .sw-hero--reference .sw-hero__image {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: var(--sw-fv-position-tablet);
  }

  .sw-production .sw-hero--reference .sw-hero-benefit-strip {
    margin-top: 14px;
  }
}

@media (max-width: 767px) {
  .sw-production .sw-hero--reference .sw-hero__image {
    aspect-ratio: 1 / 1;
    object-position: var(--sw-fv-position-sp);
  }
}

/* Desktop FV: share one photo behind the copy and anchor links. */
@media (min-width:1025px) {
  .sw-production .sw-fv-group {
    position:relative;
    isolation:isolate;
    overflow:hidden;
  }
  .sw-production .sw-fv-group .sw-hero--reference {
    padding:30px 0 14px;
    background:transparent;
    --sw-fv-position-pc:50% center;
  }
  .sw-production .sw-fv-group .sw-hero-shell {
    position:static;
  }
  .sw-production .sw-fv-group .sw-hero-main {
    position:static;
    isolation:auto;
    aspect-ratio:auto;
    min-height:0;
    overflow:visible;
    background:transparent;
  }
  .sw-production .sw-fv-group .sw-hero__copy {
    padding:0;
  }
  .sw-production .sw-fv-group .sw-anchor-nav {
    position:relative;
    z-index:2;
    padding-top:8px;
    padding-bottom:24px;
    background:transparent;
  }
  .sw-production .sw-fv-group .sw-anchor-nav a {
    background:rgba(255,255,255,.94);
  }
}

/* Product lineup and price clarification. */
.sw-production .sw-hero-price {
  position:relative;
  padding-top:28px;
}

.sw-production .sw-hero-price__plan {
  position:absolute;
  top:7px;
  left:92px;
  color:var(--sw-navy);
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
  white-space:nowrap;
}

.sw-production .sw-server-card__image {
  position:relative;
  background:#f7f9fc;
}

.sw-production .sw-server-card__image img,
.sw-production .sw-server-card--large .sw-server-card__image img {
  object-fit:cover;
  object-position:center;
}

.sw-production .sw-server-card--large {
  grid-template-columns:minmax(360px,45%) 1fr;
}

.sw-production .sw-standard-layouts--three {
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
}

.sw-production .sw-standard-layouts--three .sw-server-card {
  grid-template-columns:1fr;
  grid-template-rows:280px 1fr;
  min-width:0;
}

.sw-production .sw-standard-layouts--three .sw-server-card__image,
.sw-production .sw-standard-layouts--three .sw-server-card__image img {
  min-height:280px;
  height:280px;
}

.sw-production .sw-product-dimensions {
  position:absolute;
  right:12px;
  bottom:12px;
  left:12px;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  overflow:hidden;
  border:1px solid rgba(11,94,232,.2);
  border-radius:10px;
  background:rgba(255,255,255,.94);
  box-shadow:0 6px 18px rgba(17,49,91,.1);
  color:var(--sw-navy);
  font-size:10px;
  font-weight:900;
  line-height:1.35;
  text-align:center;
  font-variant-numeric:tabular-nums;
  backdrop-filter:blur(4px);
}

.sw-production .sw-product-dimensions span {
  padding:9px 4px;
  border-left:1px solid #dfe9f5;
  white-space:nowrap;
}

.sw-production .sw-product-dimensions span:first-child {
  border-left:0;
}

.sw-production .sw-installation-note {
  width:fit-content;
  max-width:100%;
  margin:14px auto 0;
  padding:9px 14px;
  border-radius:999px;
  background:#eef6ff;
  color:var(--sw-sub);
  font-size:12px;
  font-weight:700;
  line-height:1.6;
}

/* セクション間を同じ薄い水色でつなぐ背景グラデーション */
.sw-production #problems.sw-section--soft,
.sw-production #safety.sw-safety {
  background:linear-gradient(180deg,#f4f8fd 0%,#fff 100%);
}

/* Filter roles and replacement cycle. */
.sw-production .sw-filter-section {
  background:linear-gradient(180deg,#fff 0%,#f4f8fd 100%);
}

.sw-production .sw-filter-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:34px;
}

.sw-production .sw-filter-card {
  --filter-color:#0b5ee8;
  --filter-line:#9ecfee;
  --filter-soft:#eef7ff;
  --filter-cap:#e5f4ff;
  --filter-shadow:#cfe7f7;
  position:relative;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  min-height:470px;
  padding:22px;
  border:1px solid #dce7f4;
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 30px rgba(17,49,91,.06);
}

.sw-production .sw-filter-card--first {
  --filter-color:#d75b62;
  --filter-line:#e7a7ab;
  --filter-soft:#fff3f3;
  --filter-cap:#fde5e6;
  --filter-shadow:#f2cacc;
}

.sw-production .sw-filter-card--second {
  --filter-color:#78889a;
  --filter-line:#b9c3cd;
  --filter-soft:#f3f6f8;
  --filter-cap:#e7ebef;
  --filter-shadow:#d4dce3;
}

.sw-production .sw-filter-card::before {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:var(--filter-color);
}

.sw-production .sw-filter-card__visual {
  position:relative;
  display:grid;
  place-items:center;
  width:100%;
  height:150px;
  border-radius:13px;
  background:linear-gradient(180deg,#fff,var(--filter-soft));
}

.sw-production .sw-filter-card__number {
  position:absolute;
  top:12px;
  left:14px;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid var(--filter-line);
  border-radius:50%;
  background:#fff;
  color:var(--filter-color);
  font-size:22px;
  font-weight:900;
  line-height:1;
}

.sw-production .sw-filter-card__visual svg {
  width:96px;
  height:124px;
  overflow:visible;
}

.sw-production .sw-filter-illustration__body {
  fill:#fff;
  stroke:var(--filter-color);
  stroke-width:1.8;
}

.sw-production .sw-filter-illustration__cap {
  fill:var(--filter-cap);
  stroke:var(--filter-color);
  stroke-width:1.8;
  stroke-linejoin:round;
}

.sw-production .sw-filter-illustration__line {
  fill:none;
  stroke:var(--filter-line);
  stroke-width:1.35;
  stroke-linecap:round;
}

.sw-production .sw-filter-illustration__mark {
  fill:none;
  stroke:var(--filter-color);
  stroke-width:2;
  stroke-linecap:round;
}

.sw-production .sw-filter-illustration__shadow {
  fill:none;
  stroke:var(--filter-shadow);
  stroke-width:3;
  stroke-linecap:round;
}

.sw-production .sw-filter-card h3 {
  min-height:52px;
  margin:18px 0 12px;
  color:var(--sw-navy);
  font-size:18px;
  line-height:1.45;
  text-align:center;
}

.sw-production .sw-filter-card__role {
  flex:1;
  padding:14px 15px;
  border-radius:12px;
  background:#f7faff;
}

.sw-production .sw-filter-card__role span,
.sw-production .sw-filter-card__cycle span {
  display:block;
  color:var(--sw-blue);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
}

.sw-production .sw-filter-card__role p {
  margin:0;
  color:var(--sw-sub);
  font-size:13px;
  line-height:1.75;
}

.sw-production .sw-filter-card__role span + p {
  margin-top:6px;
}

.sw-production .sw-filter-card__cycle {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
  padding:12px 14px;
  border:1px solid rgba(11,94,232,.18);
  border-radius:12px;
  background:#fff;
}

.sw-production .sw-filter-card__cycle strong {
  color:var(--sw-navy);
  font-size:15px;
  line-height:1.4;
  white-space:nowrap;
}

.sw-production .sw-filter-delivery {
  margin-top:22px;
  padding:20px 24px;
  border:1px solid rgba(11,94,232,.22);
  border-radius:16px;
  background:#fff;
  text-align:center;
}

.sw-production .sw-filter-delivery strong,
.sw-production .sw-filter-delivery p,
.sw-production .sw-filter-delivery small {
  display:block;
}

.sw-production .sw-filter-delivery strong {
  color:var(--sw-blue);
  font-size:17px;
  line-height:1.6;
}

.sw-production .sw-filter-delivery p {
  margin:8px 0 2px;
  color:var(--sw-navy);
  font-size:12px;
  font-weight:800;
}

.sw-production .sw-filter-delivery small {
  color:var(--sw-sub);
  font-size:11px;
  line-height:1.6;
}

.sw-production .sw-standard-layouts--three .sw-server-card__body {
  display:flex;
  flex-direction:column;
  min-height:660px;
}

.sw-production .sw-standard-layouts--three .sw-methods {
  margin-top:18px;
}

.sw-production .sw-product-quick-specs {
  display:grid;
  gap:0;
  margin-top:14px;
  padding:4px 14px;
  border:1px solid #dbe8f8;
  border-radius:12px;
  background:#f5f9ff;
}

.sw-production .sw-product-quick-specs > div {
  display:grid;
  grid-template-columns:96px minmax(0,1fr);
  gap:10px;
  padding:9px 0;
  border-top:1px solid #dfeaf7;
  line-height:1.5;
}

.sw-production .sw-product-quick-specs > div:first-child {
  border-top:0;
}

.sw-production .sw-product-quick-specs dt,
.sw-production .sw-product-quick-specs dd {
  margin:0;
}

.sw-production .sw-product-quick-specs dt {
  color:var(--sw-blue);
  font-size:10px;
  font-weight:900;
}

.sw-production .sw-product-quick-specs dd {
  min-width:0;
  color:var(--sw-navy);
  font-size:12px;
  font-weight:900;
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}

.sw-production .sw-capacity-compare {
  margin-top:10px;
  padding:13px 14px 14px;
  border:1px solid rgba(11,94,232,.24);
  border-radius:12px;
  background:linear-gradient(135deg,#f7fbff,#eef7ff);
}

.sw-production .sw-capacity-compare p {
  margin:0 0 8px;
  color:var(--sw-navy);
  font-size:12px;
  font-weight:900;
}

.sw-production .sw-capacity-compare > div {
  display:grid;
  grid-template-columns:44px minmax(38px,.8fr) minmax(48px,1fr) auto;
  gap:7px;
  align-items:center;
  padding:7px 0;
  border-top:1px solid #dce9f6;
  font-size:11px;
  line-height:1.4;
}

.sw-production .sw-capacity-compare .sw-capacity-compare__head {
  padding:0 0 5px;
  border-top:0;
  color:var(--sw-sub);
  font-size:9px;
  font-weight:800;
}

.sw-production .sw-capacity-compare b,
.sw-production .sw-capacity-compare strong {
  color:var(--sw-navy);
  font-weight:900;
}

.sw-production .sw-capacity-compare strong {
  color:var(--sw-blue);
  font-size:14px;
}

.sw-production .sw-capacity-compare em {
  padding:3px 6px;
  border-radius:999px;
  background:var(--sw-blue);
  color:#fff;
  font-size:9px;
  font-style:normal;
  font-weight:900;
  white-space:nowrap;
}

.sw-production .sw-product-specs {
  overflow:hidden;
  margin-top:10px;
  border:1px solid #dbe4ef;
  border-radius:12px;
  background:#fff;
}

.sw-production .sw-product-specs summary {
  position:relative;
  padding:13px 42px 13px 14px;
  color:var(--sw-navy);
  font-size:12px;
  font-weight:900;
  line-height:1.5;
  cursor:pointer;
  list-style:none;
}

.sw-production .sw-product-specs summary::-webkit-details-marker {
  display:none;
}

.sw-production .sw-product-specs summary::after {
  content:"＋";
  position:absolute;
  top:50%;
  right:14px;
  color:var(--sw-blue);
  font-size:15px;
  transform:translateY(-50%);
}

.sw-production .sw-product-specs[open] summary::after {
  content:"−";
}

.sw-production .sw-product-specs__list {
  display:grid;
  gap:0;
  margin:0;
  padding:0 14px 12px;
}

.sw-production .sw-product-specs__list > div {
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  gap:10px;
  padding:8px 0;
  border-top:1px solid #edf1f6;
  font-size:11px;
  line-height:1.55;
}

.sw-production .sw-product-specs__list dt,
.sw-production .sw-product-specs__list dd {
  margin:0;
}

.sw-production .sw-product-specs__list dt {
  color:var(--sw-sub);
  font-weight:700;
}

.sw-production .sw-product-specs__list dd {
  min-width:0;
  color:var(--sw-navy);
  font-weight:800;
  overflow-wrap:anywhere;
}

.sw-production .sw-product-catalog-link {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:2px 10px;
  margin-top:14px;
  padding:12px 14px;
  border:1px solid rgba(11,94,232,.32);
  border-radius:12px;
  background:#fff;
  color:var(--sw-blue);
  font-size:13px;
  font-weight:900;
  line-height:1.45;
  transition:border-color .2s ease,background-color .2s ease;
}

.sw-production .sw-product-catalog-link::after {
  content:"↗";
  grid-column:2;
  grid-row:1 / span 2;
  font-size:16px;
}

.sw-production .sw-product-catalog-link span {
  min-width:0;
}

.sw-production .sw-product-catalog-link small {
  grid-column:1;
  color:var(--sw-sub);
  font-size:10px;
  font-weight:700;
}

.sw-production .sw-product-catalog-link:hover {
  border-color:var(--sw-blue);
  background:#f5f9ff;
}

.sw-production .sw-server-card__image--contain img {
  padding:20px;
  object-fit:contain;
  object-position:center;
}

.sw-production .sw-server-details {
  grid-column:1 / -1;
  border-top:1px solid #e1e8f1;
  background:#f8fbff;
}

.sw-production .sw-server-detail-panels {
  display:grid;
  gap:10px;
  margin-top:18px;
}

.sw-production .sw-server-details--wide {
  grid-column:auto;
  overflow:hidden;
  border:1px solid #dce6f3;
  border-radius:14px;
  background:#f8fbff;
}

.sw-production .sw-server-details--wide summary {
  display:flex;
  align-items:center;
  gap:14px;
  padding:17px 54px 17px 22px;
}

.sw-production .sw-server-details--wide summary strong {
  color:var(--sw-navy);
  font-size:16px;
}

.sw-production .sw-server-details--wide summary span {
  font-size:16px;
}

.sw-production .sw-server-details--wide .sw-server-details__grid {
  gap:18px;
  padding:4px 22px 22px;
}

.sw-production .sw-server-details--wide figure {
  border:0;
  border-radius:14px;
}

.sw-production .sw-server-details--wide img {
  aspect-ratio:3 / 2;
}

.sw-production .sw-server-details summary {
  position:relative;
  padding:17px 50px 17px 20px;
  color:var(--sw-blue);
  cursor:pointer;
  font-size:14px;
  font-weight:900;
  list-style:none;
}

.sw-production .sw-server-details summary::-webkit-details-marker {
  display:none;
}

.sw-production .sw-server-details summary::after {
  content:"＋";
  position:absolute;
  top:50%;
  right:20px;
  transform:translateY(-50%);
  font-size:18px;
}

.sw-production .sw-server-details[open] summary::after {
  content:"−";
}

.sw-production .sw-server-details__grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  padding:0 18px 18px;
}

.sw-production .sw-server-details__grid--two {
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.sw-production .sw-server-details figure {
  overflow:hidden;
  margin:0;
  border:1px solid #e1e8f1;
  border-radius:12px;
  background:#fff;
}

.sw-production .sw-server-details img {
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
}

.sw-production .sw-server-details img.sw-detail-image--zoomable {
  cursor:zoom-in;
  transition:transform .2s ease,filter .2s ease;
}

.sw-production .sw-server-details img.sw-detail-image--zoomable:hover {
  filter:brightness(.94);
  transform:scale(1.015);
}

.sw-production .sw-server-details img.sw-detail-image--zoomable:focus-visible {
  outline:3px solid var(--sw-blue);
  outline-offset:-3px;
}

html.sw-lightbox-open {
  overflow:hidden;
}

.sw-image-lightbox {
  position:fixed;
  inset:0;
  display:none;
  width:100vw;
  max-width:none;
  height:100vh;
  height:100dvh;
  max-height:none;
  place-items:center;
  overflow:hidden;
  padding:0;
  border:0;
  background:transparent;
}

.sw-image-lightbox[open] {
  display:grid;
}

.sw-image-lightbox::backdrop {
  background:rgba(3,12,29,.88);
  backdrop-filter:blur(3px);
}

.sw-image-lightbox__body {
  display:flex;
  align-items:center;
  justify-content:center;
  width:calc(100vw - 112px);
  height:calc(100vh - 64px);
  height:calc(100dvh - 64px);
  pointer-events:none;
}

.sw-image-lightbox__body img {
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  border-radius:12px;
  object-fit:contain;
  object-position:center center;
  pointer-events:auto;
  box-shadow:0 24px 80px rgba(0,0,0,.35);
}

.sw-image-lightbox__close {
  position:absolute;
  z-index:3;
  top:18px;
  right:18px;
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  padding:0;
  border:1px solid rgba(255,255,255,.6);
  border-radius:50%;
  background:#fff;
  color:var(--sw-navy);
  box-shadow:0 8px 24px rgba(0,0,0,.24);
  cursor:pointer;
  font-size:28px;
  line-height:1;
}

.sw-image-lightbox__nav {
  position:absolute;
  z-index:3;
  top:50%;
  display:grid;
  width:52px;
  height:52px;
  place-items:center;
  padding:0 0 4px;
  border:1px solid rgba(255,255,255,.52);
  border-radius:50%;
  background:rgba(255,255,255,.96);
  color:var(--sw-navy);
  box-shadow:0 8px 28px rgba(0,0,0,.28);
  cursor:pointer;
  font-size:38px;
  line-height:1;
  transform:translateY(-50%);
}

.sw-image-lightbox__nav--prev {
  left:18px;
}

.sw-image-lightbox__nav--next {
  right:18px;
}

.sw-image-lightbox__nav:hover,
.sw-image-lightbox__nav:focus-visible,
.sw-image-lightbox__close:hover,
.sw-image-lightbox__close:focus-visible {
  outline:3px solid rgba(255,255,255,.55);
  outline-offset:3px;
  background:#fff;
}

.sw-image-lightbox__counter {
  position:absolute;
  z-index:3;
  bottom:14px;
  left:50%;
  margin:0;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(3,12,29,.72);
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.4;
  transform:translateX(-50%);
}

.sw-production .sw-server-details img.sw-server-details__image--contain {
  background:#fff;
  object-fit:contain;
}

.sw-production .sw-server-details figcaption {
  padding:10px 12px 12px;
  color:var(--sw-sub);
  font-size:12px;
  line-height:1.6;
}

.sw-production .sw-price-box--plans {
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.sw-production .sw-price-box--plans .sw-price-panel--main .sw-price-num {
  font-size:clamp(40px,5vw,64px);
}

.sw-production .sw-price-panel--large {
  border-color:#9adcec;
}

.sw-production .sw-price-num small {
  margin-left:6px;
  font-size:14px;
  letter-spacing:0;
  white-space:nowrap;
}

.sw-production .sw-price-panel--shared {
  grid-column:1 / -1;
  padding:30px 38px;
}

.sw-production .sw-price-panel--shared .sw-support-compare {
  grid-template-columns:repeat(2,minmax(0,1fr));
}

@media (max-width:1024px) {
  .sw-production .sw-hero--reference .sw-hero__copy {
    padding-bottom:24px;
  }

  .sw-production .sw-filter-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
  }

  .sw-production .sw-filter-card {
    min-height:500px;
    padding:18px;
  }

  .sw-production .sw-filter-card h3 {
    font-size:16px;
  }

  .sw-production #problems .sw-problem-card{
    grid-template-columns:38px minmax(0,1fr);
    column-gap:12px;
  }

  .sw-production .sw-problem-card__icon{
    width:38px;
    height:38px;
    border-radius:10px;
  }

  .sw-production .sw-problem-card__icon svg{
    width:26px;
    height:26px;
  }

  .sw-production #benefits::before {
    background-position:center,55% center;
  }

  .sw-production .sw-standard-layouts--three {
    grid-template-columns:1fr;
  }

  .sw-production .sw-standard-layouts--three .sw-server-card {
    grid-template-columns:minmax(250px,36%) 1fr;
    grid-template-rows:auto auto;
  }

  .sw-production .sw-standard-layouts--three .sw-server-card__body {
    min-height:0;
  }

  .sw-production .sw-standard-layouts--three .sw-server-card__image,
  .sw-production .sw-standard-layouts--three .sw-server-card__image img {
    height:100%;
    min-height:320px;
  }

  .sw-production .sw-server-card--large {
    grid-template-columns:1fr;
  }

  .sw-production .sw-price-box--plans {
    grid-template-columns:1fr;
  }

  .sw-production .sw-price-panel--shared {
    grid-column:auto;
  }
}

@media (max-width:767px) {
  .sw-production #problems .sw-problem-card{
    grid-template-columns:42px minmax(0,1fr);
    column-gap:14px;
  }

  .sw-production .sw-problem-card__icon{
    width:42px;
    height:42px;
  }

  .sw-production .sw-problem-card__icon svg{
    width:28px;
    height:28px;
  }

  .sw-production .sw-filter-grid {
    grid-template-columns:1fr;
    margin-top:26px;
  }

  .sw-production .sw-filter-card {
    min-height:0;
    padding:18px;
  }

  .sw-production .sw-filter-card__visual {
    height:132px;
  }

  .sw-production .sw-filter-card__visual svg {
    width:82px;
    height:108px;
  }

  .sw-production .sw-filter-card h3 {
    min-height:0;
    margin:15px 0 10px;
    font-size:17px !important;
  }

  .sw-production .sw-filter-card__role {
    flex:none;
  }

  .sw-production .sw-filter-delivery {
    padding:18px 16px;
    text-align:left;
  }

  .sw-production .sw-installation-note {
    border-radius:12px;
    text-align:left;
  }

  .sw-production .sw-product-dimensions {
    right:10px;
    bottom:10px;
    left:10px;
    font-size:9px;
  }

  .sw-production #trust{
    padding-top:0;
  }

  .sw-production #trust::before{
    display:none;
  }

  .sw-production .sw-trust-media{
    position:relative;
    z-index:auto;
    width:100%;
    aspect-ratio:3 / 2;
    background:#edf3f7;
  }

  .sw-production .sw-trust-media img{
    object-position:50% 48%;
  }

  .sw-production #trust > .sw-container{
    padding-top:62px;
  }

  .sw-production #benefits::before {
    background-image:
      linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.84) 190px,#f6f9fd 360px),
      url("../images/benefits-office-bg.jpg");
    background-position:center top,center top;
    background-size:100% 100%,100% auto;
  }

  .sw-production .sw-hero-price {
    padding-top:30px;
  }

  .sw-production .sw-hero-price__plan {
    left:50%;
    transform:translateX(-50%);
  }

  .sw-production .sw-server-details__grid,
  .sw-production .sw-server-details__grid--two,
  .sw-production .sw-price-panel--shared .sw-support-compare {
    grid-template-columns:1fr;
  }

  .sw-production .sw-standard-layouts--three .sw-server-card {
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
  }

  .sw-production .sw-standard-layouts--three .sw-server-card__image,
  .sw-production .sw-standard-layouts--three .sw-server-card__image img {
    height:auto;
    min-height:0;
  }

  .sw-production .sw-server-details__grid {
    padding:0 12px 12px;
  }

  .sw-production .sw-server-details--wide summary {
    display:block;
    padding:15px 48px 15px 16px;
  }

  .sw-production .sw-server-details--wide summary strong,
  .sw-production .sw-server-details--wide summary span {
    display:block;
  }

  .sw-production .sw-server-details--wide summary span {
    margin-top:3px;
    font-size:16px;
  }

  .sw-production .sw-server-details--wide .sw-server-details__grid {
    padding:0 12px 12px;
  }

  .sw-image-lightbox {
    width:100vw;
    height:100vh;
    height:100dvh;
  }

  .sw-image-lightbox__body {
    width:calc(100vw - 28px);
    height:calc(100vh - 92px);
    height:calc(100dvh - 92px);
  }

  .sw-image-lightbox__close {
    top:8px;
    right:8px;
  }

  .sw-image-lightbox__nav {
    top:auto;
    bottom:14px;
    width:44px;
    height:44px;
    font-size:32px;
    transform:none;
  }

  .sw-image-lightbox__nav--prev {
    left:14px;
  }

  .sw-image-lightbox__nav--next {
    right:14px;
  }

  .sw-image-lightbox__counter {
    bottom:22px;
  }

  .sw-production .sw-price-panel--shared {
    padding:26px 20px;
  }
}

/* ========================================================================
   Client refinements: lineup image, price width, installation-result cards
   ======================================================================== */

/* 卓上型はタブレット幅でも写真本来の3:2比率を保ち、製品全体を見せる。 */
@media (min-width:768px) and (max-width:1024px) {
  .sw-production .sw-standard-layouts--three .sw-server-card:nth-child(2) {
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
  }

  .sw-production .sw-standard-layouts--three .sw-server-card:nth-child(2) .sw-server-card__image,
  .sw-production .sw-standard-layouts--three .sw-server-card:nth-child(2) .sw-server-card__image img {
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:3 / 2;
  }

  .sw-production .sw-standard-layouts--three .sw-server-card:nth-child(2) .sw-server-card__image img {
    object-fit:cover;
    object-position:center center;
  }
}

@media (max-width:767px) {
  .sw-production .sw-standard-layouts--three .sw-server-card:nth-child(2) .sw-server-card__image,
  .sw-production .sw-standard-layouts--three .sw-server-card:nth-child(2) .sw-server-card__image img {
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:3 / 2;
  }
}

/* 料金見出しは現状幅、標準タイプ以下は画面幅のおよそ85%で中央配置。 */
.sw-production #price .sw-price-content {
  width:min(85vw,1280px);
  max-width:calc(100vw - 32px);
  margin:42px 0 0 50%;
  transform:translateX(-50%);
}

.sw-production #price .sw-price-content .sw-price-box {
  margin-top:0;
}

@media (max-width:767px) {
  .sw-production #price .sw-price-content {
    width:88vw;
    max-width:calc(100vw - 24px);
    margin-top:30px;
  }

  .sw-production #price .sw-price-content .sw-price-num {
    overflow-wrap:normal;
    word-break:keep-all;
  }

  .sw-production #price .sw-price-content .sw-btn--primary {
    white-space:normal;
  }
}

/* 導入実績：写真を主役にした、非リンクのモダンなカード表現。 */
.sw-production #scene .sw-scene-carousel {
  margin-top:48px;
}

.sw-production #scene .sw-scene-carousel__track {
  gap:20px;
  padding:8px 4px 22px;
}

.sw-production #scene .sw-scene-card {
  position:relative;
  isolation:isolate;
  flex-basis:calc((100% - 40px) / 3);
  padding:9px;
  overflow:hidden;
  border:1px solid rgba(11,94,232,.16);
  border-radius:24px;
  background:linear-gradient(145deg,#fff,#f6faff);
  box-shadow:0 12px 28px rgba(8,37,82,.10);
}

.sw-production #scene .sw-scene-card::after {
  content:"";
  position:absolute;
  z-index:1;
  right:9px;
  bottom:9px;
  left:9px;
  height:42%;
  border-radius:0 0 17px 17px;
  background:linear-gradient(180deg,transparent,rgba(4,23,49,.40));
  pointer-events:none;
}

.sw-production #scene .sw-scene-card img {
  width:100%;
  aspect-ratio:4 / 3;
  border-radius:17px;
  object-fit:cover;
  object-position:center center;
}

.sw-production #scene .sw-scene-card figcaption {
  position:absolute;
  z-index:2;
  left:24px;
  bottom:24px;
  min-width:94px;
  padding:8px 16px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,255,255,.91);
  color:var(--sw-navy);
  box-shadow:0 7px 20px rgba(3,20,43,.16);
  font-size:15px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1.4;
  text-align:center;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}

@media (hover:hover) and (pointer:fine) {
  .sw-production #scene .sw-scene-card:hover {
    transform:translateY(-3px);
    border-color:rgba(11,94,232,.28);
    box-shadow:0 15px 30px rgba(8,37,82,.14);
  }
}

@media (max-width:1024px) {
  .sw-production #scene .sw-scene-card {
    flex-basis:calc((100% - 18px) / 2);
  }
}

@media (max-width:767px) {
  .sw-production #scene .sw-scene-carousel {
    margin-top:34px;
  }

  .sw-production #scene .sw-scene-carousel__track {
    gap:14px;
    padding-top:5px;
    padding-bottom:18px;
  }

  .sw-production #scene .sw-scene-card {
    flex-basis:88%;
    padding:7px;
    border-radius:21px;
  }

  .sw-production #scene .sw-scene-card::after {
    right:7px;
    bottom:7px;
    left:7px;
    border-radius:0 0 15px 15px;
  }

  .sw-production #scene .sw-scene-card img {
    border-radius:15px;
  }

  .sw-production #scene .sw-scene-card figcaption {
    left:20px;
    bottom:20px;
    min-width:86px;
    padding:7px 14px;
    font-size:14px;
  }
}

/* =========================================================
   Before / After comparison + trust split layout
   ========================================================= */
.sw-production .sw-problem-comparison {
  position:relative;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:72px;
  margin-top:52px;
}

.sw-production .sw-problem-before,
.sw-production .sw-problem-after {
  min-width:0;
  min-height:500px;
  padding:36px 38px;
  border-radius:20px;
}

.sw-production .sw-problem-before {
  border:1px solid #dce7f4;
  background:#fff;
}

.sw-production .sw-comparison-label {
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:5px 16px;
  border-radius:999px;
  background:#f0f3f8;
  color:#8090a6;
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
}

.sw-production .sw-problem-before__item {
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:16px;
  align-items:center;
  min-height:102px;
  border-top:1px solid #dbe5f1;
}

.sw-production .sw-problem-before__item:first-of-type {
  margin-top:20px;
}

.sw-production .sw-problem-before__cross {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:#f2f5f9;
  color:#a1afc1;
  font-size:22px;
  font-weight:800;
}

.sw-production .sw-problem-before__icon,
.sw-production .sw-problem-mobile-result {
  display:none;
}

.sw-production .sw-problem-before__item h3 {
  margin:0 0 5px;
  color:var(--sw-navy);
  font-size:18px;
  line-height:1.45;
}

.sw-production .sw-problem-before__item p {
  margin:0;
  color:var(--sw-sub);
  font-size:13px;
  line-height:1.75;
}

.sw-production .sw-problem-after {
  background:linear-gradient(145deg,#1674f1,#0752c7);
  color:#fff;
  box-shadow:0 20px 50px rgba(11,94,232,.17);
}

.sw-production .sw-problem-after__head {
  display:flex;
  align-items:center;
  gap:14px;
}

.sw-production .sw-problem-after .sw-comparison-label {
  background:rgba(255,255,255,.17);
  color:#fff;
}

.sw-production .sw-problem-after__kicker {
  font-size:14px;
  font-weight:900;
  letter-spacing:.05em;
}

.sw-production .sw-problem-after h2 {
  margin:20px 0 22px;
  color:#fff;
  font-size:23px;
  line-height:1.65;
  letter-spacing:.04em;
}

.sw-production .sw-problem-title--mobile {
  display:none;
}

.sw-production .sw-problem-after__list {
  border-top:1px solid rgba(255,255,255,.25);
}

.sw-production .sw-problem-after__list > div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:82px;
  border-bottom:1px solid rgba(255,255,255,.25);
}

.sw-production .sw-problem-after__list span {
  font-size:15px;
  font-weight:800;
}

.sw-production .sw-problem-after__list strong {
  font-size:30px;
  letter-spacing:.08em;
}

.sw-production .sw-comparison-arrow {
  position:absolute;
  top:50%;
  left:50%;
  z-index:2;
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  transform:translate(-50%,-50%);
  border:1px solid #dbe6f3;
  border-radius:50%;
  background:#fff;
  color:var(--sw-blue);
  font-size:24px;
  font-weight:900;
  box-shadow:0 10px 24px rgba(17,49,91,.08);
}

.sw-production #trust.sw-trust-section {
  position:relative;
  overflow:hidden;
  background:#fff;
  color:var(--sw-navy);
}

.sw-production #trust.sw-trust-section::before {
  display:none;
}

.sw-production .sw-trust-layout {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:68px;
  align-items:center;
  text-align:left;
}

.sw-production #trust > .sw-trust-layout {
  padding-top:0;
  text-align:left;
}

.sw-production .sw-trust-media {
  position:relative;
  z-index:auto;
  inset:auto;
  overflow:hidden;
  width:100%;
  min-height:620px;
  margin:0;
  border-radius:22px;
  background:#edf3f7;
}

.sw-production .sw-trust-media img {
  display:block;
  width:100%;
  height:100%;
  min-height:620px;
  object-fit:cover;
  object-position:72% 48%;
}

.sw-production .sw-trust-content .sw-eyebrow {
  margin-bottom:20px;
}

.sw-production .sw-trust-content .sw-title {
  max-width:650px;
  color:var(--sw-navy);
  font-size:clamp(28px,3vw,40px);
  line-height:1.55;
}

.sw-production .sw-trust-list {
  margin:34px 0 0;
  padding:0;
  border-top:1px solid #dbe5f1;
  list-style:none;
}

.sw-production .sw-trust-list li {
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:22px;
  align-items:start;
  padding:24px 0;
  border-bottom:1px solid #dbe5f1;
}

.sw-production .sw-trust-number {
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  border-radius:14px;
  background:linear-gradient(145deg,#1879f4,#0754ce);
  color:#fff;
  font-size:17px;
  font-weight:900;
}

.sw-production .sw-trust-list h3 {
  margin:2px 0 6px;
  color:var(--sw-navy);
  font-size:19px;
  line-height:1.5;
}

.sw-production .sw-trust-list p {
  margin:0;
  color:var(--sw-sub);
  font-size:13.5px;
  line-height:1.85;
}

.sw-production .sw-trust-action {
  margin-top:34px;
  text-align:center;
}

@media (max-width:1024px) {
  .sw-production .sw-problem-comparison {
    gap:44px;
  }

  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    min-height:470px;
    padding:28px 24px;
  }

  .sw-production .sw-problem-after h2 {
    font-size:20px;
  }

  .sw-production .sw-trust-layout {
    gap:40px;
  }

  .sw-production .sw-trust-media,
  .sw-production .sw-trust-media img {
    min-height:520px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-problem-title--desktop {
    display:none;
  }

  .sw-production .sw-problem-title--mobile {
    display:inline;
  }

  .sw-production .sw-problem-comparison {
    grid-template-columns:1fr;
    gap:0;
    margin-top:34px;
  }

  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    min-height:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }

  .sw-production .sw-problem-before > .sw-comparison-label,
  .sw-production .sw-problem-before__cross,
  .sw-production .sw-problem-after .sw-comparison-label,
  .sw-production .sw-comparison-arrow,
  .sw-production .sw-problem-after__list {
    display:none;
  }

  .sw-production .sw-problem-before__item,
  .sw-production .sw-problem-before__item:first-of-type {
    grid-template-columns:42px minmax(0,1fr) 104px;
    gap:11px;
    min-height:104px;
    margin:0 0 12px;
    padding:0 0 0 14px;
    overflow:hidden;
    border:1px solid #dce7f4;
    border-radius:15px;
    background:#fff;
  }

  .sw-production .sw-problem-before__icon {
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:#f2f6fb;
    color:#8193ad;
  }

  .sw-production .sw-problem-before__icon svg {
    width:25px;
    height:25px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  .sw-production .sw-problem-before__item h3 {
    margin-bottom:3px;
    font-size:16px;
  }

  .sw-production .sw-problem-before__item p {
    font-size:11.5px;
    line-height:1.65;
  }

  .sw-production .sw-problem-mobile-result {
    align-self:stretch;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding-left:8px;
    background:linear-gradient(145deg,#1879f4,#0754ce);
    color:#fff;
    clip-path:polygon(11px 0,100% 0,100% 100%,11px 100%,11px 58%,0 50%,11px 42%);
  }

  .sw-production .sw-problem-mobile-result span {
    font-size:10px;
    font-weight:800;
  }

  .sw-production .sw-problem-mobile-result strong {
    margin-top:3px;
    font-size:25px;
    line-height:1.2;
    letter-spacing:.06em;
  }

  .sw-production .sw-problem-after {
    padding-top:18px;
    color:var(--sw-navy);
    text-align:center;
  }

  .sw-production .sw-problem-after__head {
    justify-content:center;
  }

  .sw-production .sw-problem-after__kicker {
    display:inline-flex;
    padding:6px 16px;
    border-radius:999px;
    background:var(--sw-blue);
    color:#fff;
    font-size:12px;
  }

  .sw-production .sw-problem-after h2 {
    margin:16px auto 0;
    color:var(--sw-navy);
    font-size:20px;
    line-height:1.65;
  }

  .sw-production #problems > .sw-container > .sw-center:last-child {
    margin-top:34px;
  }

  .sw-production #trust.sw-trust-section {
    padding-top:0;
  }

  .sw-production .sw-trust-layout {
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    width:100%;
  }

  .sw-production .sw-trust-media {
    width:calc(100% - 28px);
    min-height:0;
    margin:0 14px;
    aspect-ratio:4 / 3;
    border-radius:18px;
  }

  .sw-production .sw-trust-media img {
    min-height:0;
    object-position:72% 48%;
  }

  .sw-production .sw-trust-content {
    padding:38px 14px 0;
  }

  .sw-production .sw-trust-content .sw-eyebrow {
    margin-bottom:18px;
  }

  .sw-production .sw-trust-content .sw-title {
    font-size:23px;
    line-height:1.55;
  }

  .sw-production .sw-trust-list {
    margin-top:28px;
  }

  .sw-production .sw-trust-list li {
    grid-template-columns:44px minmax(0,1fr);
    gap:14px;
    padding:20px 0;
  }

  .sw-production .sw-trust-number {
    width:44px;
    height:44px;
    border-radius:11px;
    font-size:14px;
  }

  .sw-production .sw-trust-list h3 {
    margin-top:0;
    font-size:16px;
  }

  .sw-production .sw-trust-list p {
    font-size:12.5px;
    line-height:1.8;
  }

  .sw-production .sw-trust-action {
    margin-top:30px;
  }

  .sw-production .sw-trust-action .sw-btn {
    width:100%;
  }
}

@media (max-width:374px) {
  .sw-production .sw-problem-before__item,
  .sw-production .sw-problem-before__item:first-of-type {
    grid-template-columns:38px minmax(0,1fr) 92px;
    gap:8px;
    padding-left:11px;
  }

  .sw-production .sw-problem-before__icon {
    width:38px;
    height:38px;
  }
}

/* =========================================================
   Scroll motion
   JavaScriptが有効な場合だけ初期状態を隠し、1度だけ表示する。
   ========================================================= */
body.sw-production {
  overflow-x:clip;
}

/* 追従ナビは背景を60%にして、文字の可読性はぼかしで補う */
.sw-production .sw-header {
  background:rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(14px) saturate(145%);
  backdrop-filter:blur(14px) saturate(145%);
}

/* FVのキャッチコピーを短時間で読み切れる一文字表示にする */
.sw-visually-hidden {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.sw-type-char {
  display:inline-block;
  opacity:0;
  filter:blur(3px);
  transform:translateY(.42em);
  animation:sw-type-char .36s cubic-bezier(.22,1,.36,1) forwards;
  animation-delay:var(--sw-char-delay,0ms);
}

@keyframes sw-type-char {
  to {
    opacity:1;
    filter:none;
    transform:none;
  }
}

.sw-hero-fade {
  opacity:0;
  animation:sw-hero-fade .72s cubic-bezier(.22,1,.36,1) forwards;
  animation-delay:var(--sw-hero-fade-delay,0ms);
}

@keyframes sw-hero-fade {
  to { opacity:1; }
}

/* 最終CTAの上端を、ゆっくり横へ流れる波形にする */
.sw-production .sw-contact-wave {
  position:absolute;
  top:-1px;
  left:0;
  z-index:2;
  width:100%;
  height:42px;
  overflow:hidden;
  pointer-events:none;
}

.sw-production .sw-contact-wave::before {
  content:"";
  position:absolute;
  inset:0 -720px 0 0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 42' preserveAspectRatio='none'%3E%3Cpath fill='%23f4f8fe' d='M0 0h720v17c-120 22-240 22-360 0S120-5 0 17V0Z'/%3E%3C/svg%3E");
  background-position:0 0;
  background-repeat:repeat-x;
  background-size:720px 42px;
  animation:sw-contact-wave 22s linear infinite;
}

@keyframes sw-contact-wave {
  to {
    background-position:-720px 0;
  }
}

html.sw-motion-ready .sw-reveal {
  opacity:0;
  filter:blur(2px);
  transform:translate3d(0,22px,0);
  transition:
    opacity .68s cubic-bezier(.22,1,.36,1),
    transform .68s cubic-bezier(.22,1,.36,1),
    filter .52s ease;
  transition-delay:var(--sw-reveal-delay,0ms);
  will-change:opacity,transform;
}

html.sw-motion-ready .sw-reveal--left {
  transform:translate3d(-26px,0,0);
}

html.sw-motion-ready .sw-reveal--right {
  transform:translate3d(26px,0,0);
}

html.sw-motion-ready .sw-reveal--scale {
  transform:translate3d(0,14px,0) scale(.975);
}

html.sw-motion-ready .sw-reveal.is-visible {
  opacity:1;
  filter:none;
  transform:none;
  will-change:auto;
}

/* =========================================================
   Shared site footer
   トップ・お問い合わせ・お申し込み・プライバシーポリシーで共通使用。
   ========================================================= */
.sw-production .sw-site-footer {
  position:relative;
  z-index:3;
  padding:52px 0 20px;
  background:#082b5c;
  color:rgba(255,255,255,.84);
  font-size:13px;
  line-height:1.75;
}

.sw-production .sw-site-footer__inner {
  display:grid;
  grid-template-columns:minmax(150px,.8fr) minmax(210px,1.15fr) minmax(190px,1fr) minmax(240px,1.35fr);
  align-items:start;
  gap:34px;
}

.sw-production .sw-site-footer__brand img {
  display:block;
  width:min(100%,190px);
  height:auto;
}

.sw-production .sw-site-footer__heading {
  margin:0 0 14px;
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.1em;
}

.sw-production .sw-site-footer__company strong {
  display:block;
  margin-bottom:8px;
  color:#fff;
  font-size:15px;
}

.sw-production .sw-site-footer__company address {
  margin:0 0 12px;
  font-style:normal;
}

.sw-production .sw-site-footer__company dl,
.sw-production .sw-site-footer__company dd {
  margin:0;
}

.sw-production .sw-site-footer__company dl div {
  display:grid;
  grid-template-columns:36px 1fr;
  gap:8px;
}

.sw-production .sw-site-footer__company dt {
  color:rgba(255,255,255,.58);
  font-size:11px;
  font-weight:800;
}

.sw-production .sw-site-footer__company a,
.sw-production .sw-site-footer__nav a {
  color:inherit;
  text-decoration:none;
}

.sw-production .sw-site-footer__nav {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
}

.sw-production .sw-site-footer__nav a {
  transition:color .2s ease;
}

.sw-production .sw-site-footer__nav .sw-instagram-link--footer {
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:3px;
  color:#fff;
  font-weight:700;
}

.sw-production .sw-site-footer__nav .sw-instagram-link--footer svg {
  width:18px;
  height:18px;
}

.sw-production .sw-site-footer__nav a:hover,
.sw-production .sw-site-footer__nav a:focus-visible {
  color:#fff;
}

.sw-production .sw-site-footer__actions {
  display:flex;
  flex-direction:column;
  gap:10px;
}

.sw-production .sw-site-footer__button {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:46px;
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:8px;
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1.35;
  text-decoration:none;
  transition:transform .2s ease,background .2s ease,border-color .2s ease;
}

.sw-production .sw-site-footer__button--primary {
  border-color:#217cf2;
  background:linear-gradient(135deg,#217cf2,#0754c7);
}

.sw-production .sw-site-footer__button--secondary {
  background:rgba(255,255,255,.05);
}

.sw-production .sw-site-footer__button span {
  font-size:17px;
}

.sw-production .sw-site-footer__sdgs {
  display:block;
  width:100%;
  height:auto;
  margin-top:4px;
  border-radius:8px;
  background:#fff;
}

.sw-production .sw-site-footer__bottom {
  margin-top:34px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.14);
}

.sw-production .sw-site-footer__copyright {
  margin:0;
  color:rgba(255,255,255,.6);
  font-size:11px;
}

@media (hover:hover) and (pointer:fine) {
  .sw-production .sw-site-footer__button:hover {
    transform:translateY(-2px);
    background-color:rgba(255,255,255,.11);
  }
}

@media (max-width:1100px) {
  .sw-production .sw-site-footer__inner {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:34px 50px;
  }

  .sw-production .sw-site-footer__brand img {
    max-width:190px;
  }

  .sw-production .sw-site-footer__sdgs {
    max-width:360px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-site-footer {
    padding:38px 0 100px;
  }

  .sw-production.sw-form-site-page .sw-site-footer {
    padding-bottom:30px;
  }

  .sw-production .sw-site-footer__inner {
    grid-template-columns:1fr;
    gap:30px;
    text-align:left;
  }

  .sw-production .sw-site-footer__brand img {
    width:170px;
  }

  .sw-production .sw-site-footer__actions {
    gap:11px;
  }

  .sw-production .sw-site-footer__sdgs {
    max-width:100%;
  }

  .sw-production .sw-site-footer__bottom {
    margin-top:28px;
  }
}

@media (hover:hover) and (pointer:fine) {
  .sw-production .sw-feature,
  .sw-production .sw-filter-card,
  .sw-production .sw-server-card,
  .sw-production .sw-price-panel,
  .sw-production .sw-scene-card,
  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
  }

  .sw-production .sw-feature:hover,
  .sw-production .sw-filter-card:hover,
  .sw-production .sw-server-card:hover,
  .sw-production .sw-price-panel:hover,
  .sw-production .sw-scene-card:hover,
  .sw-production .sw-problem-before:hover,
  .sw-production .sw-problem-after:hover {
    transform:translateY(-4px);
    box-shadow:0 16px 36px rgba(8,37,82,.11);
  }

  .sw-production .sw-server-card__image img,
  .sw-production .sw-scene-card img,
  .sw-production .sw-trust-media img {
    transition:transform .55s cubic-bezier(.22,1,.36,1);
  }

  .sw-production .sw-server-card:hover .sw-server-card__image img,
  .sw-production .sw-scene-card:hover img,
  .sw-production .sw-trust-media:hover img {
    transform:scale(1.018);
  }

  .sw-production .sw-section .sw-btn--primary::after,
  .sw-production .sw-contact .sw-btn--final::after {
    transition:transform .22s ease;
  }

  .sw-production .sw-section .sw-btn--primary:hover::after,
  .sw-production .sw-contact .sw-btn--final:hover::after {
    transform:translate(3px,-50%);
  }
}

.sw-production .sw-faq details[open] p {
  animation:sw-faq-answer .28s ease both;
}

@keyframes sw-faq-answer {
  from {
    opacity:0;
    transform:translateY(-6px);
  }
  to {
    opacity:1;
    transform:none;
  }
}

@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto !important;
  }

  html.sw-motion-ready .sw-reveal,
  html.sw-motion-ready .sw-reveal--left,
  html.sw-motion-ready .sw-reveal--right,
  html.sw-motion-ready .sw-reveal--scale {
    opacity:1 !important;
    filter:none !important;
    transform:none !important;
    transition:none !important;
  }

  .sw-production *,
  .sw-production *::before,
  .sw-production *::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
  }

  .sw-production .sw-contact-wave::before {
    animation:none !important;
  }
}

/* =========================================================
   Shared header breakpoint / compact action group
   1200px以下では電話とハンバーガーを常に隣接させる。
   ========================================================= */
.sw-production .sw-header__mobile-actions {
  display:none;
  align-items:center;
  flex:0 0 auto;
  gap:8px;
  margin-left:auto;
}

.sw-production .sw-header__actions .sw-btn {
  white-space:nowrap;
}

@media (max-width:1200px) {
  .sw-production .sw-header__inner {
    gap:14px;
  }

  .sw-production .sw-logo {
    margin-right:auto;
  }

  .sw-production .sw-global-nav,
  .sw-production .sw-header__actions {
    display:none;
  }

  .sw-production .sw-header__mobile-actions {
    display:flex;
  }

  .sw-production .sw-header__mobile-actions .sw-mobile-phone {
    display:grid;
  }

  .sw-production .sw-header__mobile-actions .sw-mobile-menu {
    display:block;
  }
}

@media (max-width:767px) {
  .sw-production .sw-header__mobile-actions {
    gap:5px;
  }

  .sw-production .sw-mobile-phone,
  .sw-production .sw-mobile-menu summary {
    width:40px;
    height:40px;
  }
}

/* =========================================================
   Brand illustrations
   ========================================================= */
.sw-production .sw-trust-support {
  display:grid;
  grid-template-columns:minmax(150px,220px) minmax(0,1fr);
  gap:24px;
  align-items:center;
  margin-top:28px;
  padding:18px 24px;
  border:1px solid #dce7f4;
  border-radius:18px;
  background:linear-gradient(135deg,#f8fbff,#eef5ff);
}

.sw-production .sw-trust-support img {
  display:block;
  width:100%;
  height:auto;
}

.sw-production .sw-trust-support strong {
  display:block;
  color:var(--sw-navy);
  font-size:18px;
  line-height:1.5;
}

.sw-production .sw-trust-support p {
  margin:7px 0 0;
  color:var(--sw-sub);
  font-size:13px;
  line-height:1.8;
}

.sw-production .sw-trust-support + .sw-trust-action {
  margin-top:26px;
}

.sw-production .sw-contact .sw-container {
  z-index:3;
}

.sw-production .sw-contact-layout {
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(0,7fr);
  gap:48px;
  align-items:center;
}

.sw-production .sw-contact-visual {
  display:flex;
  align-items:center;
  justify-content:center;
  align-self:center;
}

.sw-production .sw-contact-content {
  min-width:0;
}

.sw-production .sw-contact-mascot {
  display:block;
  width:min(100%,300px);
  height:auto;
  margin:0 auto;
  pointer-events:none;
  user-select:none;
}

@media (min-width:768px) {
  .sw-production .sw-contact .sw-title {
    margin-top:30px;
  }
}

@media (max-width:1024px) {
  .sw-production .sw-trust-support {
    grid-template-columns:150px minmax(0,1fr);
    gap:18px;
  }

  .sw-production .sw-contact-layout {
    grid-template-columns:minmax(0,3fr) minmax(0,7fr);
    gap:26px;
  }

  .sw-production .sw-contact-mascot {
    width:min(100%,210px);
  }
}

@media (max-width:767px) {
  .sw-production .sw-trust-support {
    grid-template-columns:1fr;
    gap:12px;
    padding:18px;
    text-align:center;
  }

  .sw-production .sw-trust-support img {
    width:min(100%,240px);
    margin:0 auto;
  }

  .sw-production .sw-trust-support strong {
    font-size:17px;
  }

  .sw-production .sw-contact-layout {
    grid-template-columns:1fr;
    gap:20px;
  }

  .sw-production .sw-contact-visual {
    align-self:auto;
    order:0;
  }

  .sw-production .sw-contact-content {
    order:1;
  }

  .sw-production .sw-contact-mascot {
    width:148px;
    margin:0 auto;
  }
}

/* =========================================================
   FV responsive composition (final)
   >= 768px: full-photo composition with copy overlay
   <= 767px: copy first, then a 16:9 photo with brand mark
   ========================================================= */
.sw-production .sw-hero__mobile-logo {
  display:none;
}

@media (min-width:768px) {
  .sw-production .sw-fv-group {
    position:relative;
    isolation:isolate;
    overflow:hidden;
  }

  .sw-production .sw-fv-group .sw-hero--reference {
    padding:clamp(22px,3vw,30px) 0 12px;
    background:transparent;
    --sw-fv-position-pc:50% center;
  }

  .sw-production .sw-fv-group .sw-hero-shell {
    position:static;
    width:100%;
    max-width:none;
  }

  .sw-production .sw-fv-group .sw-hero-main {
    position:static;
    isolation:auto;
    display:flex;
    flex-direction:row;
    align-items:center;
    width:100%;
    min-width:0;
    min-height:0;
    aspect-ratio:auto;
    overflow:visible;
    background:transparent;
  }

  .sw-production .sw-fv-group .sw-hero__media {
    position:absolute;
    inset:0;
    z-index:0;
    width:100%;
    height:100%;
    min-height:0;
    margin:0;
    overflow:hidden;
    border-radius:0;
  }

  .sw-production .sw-fv-group .sw-hero__image {
    display:block;
    width:100%;
    height:100%;
    min-height:0;
    aspect-ratio:auto;
    object-fit:cover;
    object-position:var(--sw-fv-position-pc);
  }

  .sw-production .sw-fv-group::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(90deg,
      rgba(255,255,255,.82) 0%,
      rgba(255,255,255,.72) 31%,
      rgba(255,255,255,.30) 48%,
      rgba(255,255,255,0) 64%);
  }

  .sw-production .sw-fv-group .sw-hero__copy {
    position:relative;
    z-index:2;
    width:min(650px,calc(100% - 48px));
    max-width:650px;
    margin-left:max(24px,calc((100% - 1180px) / 2));
    padding:0;
  }

  .sw-production .sw-fv-group .sw-anchor-nav {
    position:relative;
    z-index:2;
    padding-top:8px;
    padding-bottom:24px;
    background:transparent;
  }

  .sw-production .sw-fv-group .sw-anchor-nav a {
    background:rgba(255,255,255,.94);
  }
}

@media (min-width:768px) and (max-width:1024px) {
  .sw-production .sw-fv-group .sw-hero--reference {
    --sw-fv-position-pc:67% center;
  }

  .sw-production .sw-fv-group .sw-hero__copy {
    width:clamp(354px,49vw,500px);
    margin-left:clamp(20px,3.2vw,34px);
  }

  .sw-production .sw-fv-group .sw-hero-title {
    font-size:clamp(34px,4.45vw,45px);
    line-height:1.2;
  }

  .sw-production .sw-fv-group .sw-audience-pill {
    margin-bottom:14px;
  }

  .sw-production .sw-fv-group .sw-hero-kicker {
    font-size:18px;
  }

  .sw-production .sw-fv-group .sw-hero-subcopy {
    margin-bottom:12px;
    font-size:13px !important;
  }

  .sw-production .sw-fv-group .sw-temp-strip {
    margin-bottom:10px;
  }

  .sw-production .sw-fv-group .sw-temp-strip div {
    min-height:44px;
    gap:6px;
    font-size:13px;
  }

  .sw-production .sw-fv-group .sw-hero-offer {
    grid-template-columns:minmax(0,1fr) 140px;
    min-height:96px;
    margin-bottom:10px;
  }

  .sw-production .sw-fv-group .sw-hero-price {
    padding:25px 10px 10px 10px;
  }

  .sw-production .sw-fv-group .sw-hero-price__plan {
    left:78px;
  }

  .sw-production .sw-fv-group .sw-hero-price__label {
    min-width:54px;
    margin-right:9px;
    font-size:15px;
  }

  .sw-production .sw-fv-group .sw-hero-price strong {
    font-size:clamp(44px,5.7vw,56px);
  }

  .sw-production .sw-fv-group .sw-hero-price strong small {
    font-size:18px;
  }

  .sw-production .sw-fv-group .sw-hero-price__tax {
    margin:0 0 12px 3px;
    font-size:9px;
  }

  .sw-production .sw-fv-group .sw-hero-checks {
    gap:6px;
    padding:12px 8px;
    font-size:10px;
  }

  .sw-production .sw-fv-group .sw-hero-checks li::before {
    width:16px;
    height:16px;
    margin-right:4px;
  }

  .sw-production .sw-fv-group .sw-hero-actions {
    gap:8px;
  }

  .sw-production .sw-fv-group .sw-hero-cta {
    min-height:58px;
    padding-right:34px;
    padding-left:12px;
    font-size:12px;
  }

  .sw-production .sw-fv-group .sw-hero-cta span {
    right:9px;
    width:27px;
    height:27px;
  }
}

@media (min-width:768px) and (max-width:860px) {
  .sw-production .sw-fv-group .sw-hero-actions {
    grid-template-columns:1fr;
    width:min(100%,390px);
  }

  .sw-production .sw-fv-group .sw-hero-cta {
    min-height:54px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-fv-group .sw-hero--reference {
    padding-bottom:8px;
  }

  .sw-production .sw-fv-group .sw-hero-main {
    display:flex;
    flex-direction:column;
  }

  .sw-production .sw-fv-group .sw-hero__copy {
    order:1;
  }

  .sw-production .sw-fv-group .sw-hero__media {
    order:2;
    position:relative;
    width:100vw;
    margin-left:calc(50% - 50vw);
    overflow:hidden;
    border-radius:0;
    background:#dfe4e5;
  }

  .sw-production .sw-fv-group .sw-hero__image {
    display:block !important;
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:16 / 9;
    object-fit:cover;
    object-position:45% center;
  }

  .sw-production .sw-hero__mobile-logo {
    position:absolute;
    left:29%;
    top:50%;
    display:block;
    width:clamp(130px,32vw,180px);
    height:auto;
    padding:0;
    transform:translate(-50%,-50%);
    background:transparent;
    box-shadow:none;
  }
}

/* Tablet portrait: use the same left-logo / right-subject photo composition. */
@media (min-width:768px) and (max-width:1024px) and (orientation:portrait) {
  .sw-production .sw-container {
    width:95%;
  }

  .sw-production .sw-fv-group::after {
    display:none;
  }

  .sw-production .sw-fv-group .sw-hero--reference {
    padding-bottom:8px;
  }

  .sw-production .sw-fv-group .sw-hero-main {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    overflow:visible;
  }

  .sw-production .sw-fv-group .sw-hero__copy {
    order:1;
    width:95%;
    max-width:none;
    margin:0 auto;
    padding:0 0 24px;
  }

  .sw-production .sw-fv-group .sw-hero__media {
    position:relative;
    inset:auto;
    order:2;
    z-index:0;
    width:100%;
    height:auto;
    min-height:0;
    margin:0;
    overflow:hidden;
  }

  .sw-production .sw-fv-group .sw-hero__image {
    display:block;
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:16 / 9;
    object-fit:cover;
    object-position:45% center;
  }

  .sw-production .sw-fv-group .sw-hero__mobile-logo {
    position:absolute;
    left:29%;
    top:50%;
    display:block;
    width:clamp(160px,24vw,220px);
    height:auto;
    transform:translate(-50%,-50%);
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-hero__mobile-logo {
    animation:none !important;
    transition:none !important;
  }
}

/* =========================================================
   Final content hierarchy and pricing conditions
   ========================================================= */
.sw-production .sw-temp-strip {
  display:flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:0;
  margin:0 0 14px;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:var(--sw-navy);
  font-size:15px;
  font-weight:900;
  line-height:1.5;
  letter-spacing:.08em;
}

.sw-production .sw-temp-strip strong {
  color:var(--sw-navy);
  font:inherit;
}

.sw-production .sw-temp-strip span {
  margin:0 10px;
  color:#83a2c8;
  font-size:13px;
  font-weight:700;
}

.sw-production .sw-hero-price__plan {
  left:84px;
}

.sw-production .sw-hero-price__tax {
  align-self:center;
  margin:10px 0 0 6px;
  color:#52657f;
  font-size:12px;
  font-weight:800;
  line-height:1.5;
  white-space:nowrap;
}

.sw-production .sw-hero-cta--primary {
  box-shadow:0 14px 30px rgba(0,84,214,.28);
}

.sw-production .sw-comparison-label {
  min-width:132px;
  justify-content:center;
  letter-spacing:.06em;
}

.sw-production .sw-problem-after .sw-comparison-label {
  min-width:176px;
}

.sw-production .sw-problem-before__item,
.sw-production .sw-problem-after__list > div {
  min-height:96px;
}

.sw-production .sw-price-optional {
  display:inline-flex;
  align-items:center;
  min-height:26px;
  margin-left:8px;
  padding:3px 10px;
  border-radius:999px;
  background:#eef4fc;
  color:#5f718a;
  font-size:11px;
  font-weight:900;
  vertical-align:middle;
}

.sw-production .sw-price-conditions {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:20px;
}

.sw-production .sw-price-conditions > div {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px 14px;
  align-content:start;
  min-width:0;
  padding:20px;
  border:1px solid #d7e5f5;
  border-radius:16px;
  background:rgba(255,255,255,.88);
}

.sw-production .sw-price-conditions strong {
  color:var(--sw-navy);
  font-size:14px;
  line-height:1.5;
}

.sw-production .sw-price-conditions span {
  color:var(--sw-blue);
  font-size:14px;
  font-weight:900;
  white-space:nowrap;
}

.sw-production .sw-price-conditions p {
  grid-column:1 / -1;
  margin:0;
  color:var(--sw-sub);
  font-size:12px;
  line-height:1.75;
}

.sw-production .sw-price-action {
  margin-top:32px;
}

@media (min-width:768px) and (max-width:1024px) {
  .sw-production .sw-fv-group .sw-hero-price__plan {
    left:68px;
    font-size:9px;
  }

  .sw-production .sw-fv-group .sw-hero-price__tax {
    font-size:10px;
  }

  .sw-production .sw-price-conditions {
    grid-template-columns:1fr;
  }
}

@media (max-width:767px) {
  .sw-production .sw-temp-strip {
    margin-bottom:12px;
    font-size:13px;
  }

  .sw-production .sw-temp-strip span {
    margin:0 7px;
    font-size:11px;
  }

  .sw-production .sw-problem-before__item,
  .sw-production .sw-problem-before__item:first-of-type {
    min-height:104px;
  }

  .sw-production .sw-price-optional {
    display:flex;
    width:max-content;
    margin:8px auto 0;
  }

  .sw-production .sw-price-conditions {
    grid-template-columns:1fr;
    gap:10px;
    margin-top:14px;
  }

  .sw-production .sw-price-conditions > div {
    padding:16px;
  }

  .sw-production .sw-price-action {
    margin-top:24px;
  }
}

/* Before / After: emphasize the two states and align each comparison row. */
.sw-production .sw-problem-before,
.sw-production .sw-problem-after {
  min-height:548px;
}

.sw-production .sw-problem-before__head,
.sw-production .sw-problem-after__head {
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:10px;
  min-height:42px;
}

.sw-production .sw-problem-before__head .sw-comparison-label,
.sw-production .sw-problem-after__head .sw-comparison-label {
  min-height:38px;
  padding:7px 18px;
  font-size:14px;
  letter-spacing:.04em;
}

.sw-production .sw-problem-before__catch,
.sw-production .sw-problem-after h2 {
  display:flex;
  align-items:center;
  min-height:86px;
  margin:12px 0 14px;
  font-size:22px;
  font-weight:900;
  line-height:1.55;
  letter-spacing:.035em;
}

.sw-production .sw-problem-before__catch {
  color:var(--sw-navy);
}

.sw-production .sw-problem-after__head {
  flex-wrap:wrap;
}

.sw-production .sw-problem-after__kicker {
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:7px 14px;
  border:1px solid rgba(255,255,255,.38);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  font-size:15px;
  line-height:1.3;
}

.sw-production .sw-problem-before__item,
.sw-production .sw-problem-after__list > div {
  height:92px;
  min-height:92px;
}

.sw-production .sw-problem-before__item:first-of-type {
  margin-top:0;
}

@media (max-width:1024px) and (min-width:768px) {
  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    min-height:560px;
  }

  .sw-production .sw-problem-before__head .sw-comparison-label,
  .sw-production .sw-problem-after__head .sw-comparison-label {
    padding-inline:13px;
    font-size:12px;
  }

  .sw-production .sw-problem-after__kicker {
    padding-inline:11px;
    font-size:12px;
  }

  .sw-production .sw-problem-before__catch,
  .sw-production .sw-problem-after h2 {
    font-size:19px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    min-height:0;
  }

  .sw-production .sw-problem-before__head,
  .sw-production .sw-problem-after__head {
    flex-direction:column;
    align-items:center;
    min-height:0;
    text-align:center;
  }

  .sw-production .sw-problem-before__head .sw-comparison-label,
  .sw-production .sw-problem-after__head .sw-comparison-label {
    display:inline-flex;
    min-width:0;
    min-height:34px;
    padding:6px 15px;
    font-size:12px;
  }

  .sw-production .sw-problem-before__catch,
  .sw-production .sw-problem-after h2 {
    display:block;
    min-height:0;
    margin:14px auto 20px;
    font-size:19px;
    line-height:1.55;
    text-align:center;
  }

  .sw-production .sw-problem-after {
    padding-top:24px;
  }

  .sw-production .sw-problem-after__kicker {
    min-height:34px;
    padding:6px 15px;
    border:0;
    background:var(--sw-blue);
    font-size:12px;
  }

  .sw-production .sw-problem-before__item,
  .sw-production .sw-problem-before__item:first-of-type {
    height:auto;
    min-height:104px;
  }
}

/* Trial CTAs: use the same two-line application message throughout the page body. */
.sw-production .sw-section .sw-btn--primary small,
.sw-production .sw-contact .sw-btn--final small {
  order:0;
  margin:0 0 2px;
  font-size:10.5px;
  font-weight:700;
  line-height:1.25;
}

.sw-production .sw-section .sw-btn--primary strong,
.sw-production .sw-contact .sw-btn--final strong {
  order:1;
  font-size:16px;
  font-weight:900;
  line-height:1.35;
}

.sw-production .sw-contact .sw-btn--final strong {
  font-size:20px;
}

@media (max-width:767px) {
  .sw-production .sw-section .sw-btn--primary small,
  .sw-production .sw-contact .sw-btn--final small {
    font-size:9.5px;
  }

  .sw-production .sw-section .sw-btn--primary strong,
  .sw-production .sw-contact .sw-btn--final strong {
    font-size:15px;
  }
}

/* Final CTA: keep the approved message as the single supporting statement. */
.sw-production .sw-contact-content .sw-lead {
  margin-top:22px;
  font-size:18px;
  font-weight:700;
  line-height:1.8;
  letter-spacing:.035em;
}

.sw-production .sw-contact .sw-btn--final {
  margin-top:32px;
}

@media (max-width:767px) {
  .sw-production .sw-contact-content .sw-lead {
    margin-top:18px;
    font-size:15.5px;
    font-weight:700;
    line-height:1.75;
    text-align:center;
  }

  .sw-production .sw-contact .sw-btn--final {
    margin-top:26px;
  }
}


/* Body copy contrast and provisional price explanation. */
.sw-production .sw-price-reason {
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #d7e5f5;
  color:#1d1d1d;
  font-size:13px;
  font-weight:700;
  line-height:1.75;
}

.sw-production .sw-price-reason__label {
  display:inline-flex;
  align-items:center;
  margin:0 8px 4px 0;
  padding:3px 9px;
  border-radius:999px;
  background:#eaf3ff;
  color:#0754ce;
  font-size:11px;
  font-weight:900;
  line-height:1.5;
  vertical-align:middle;
}

@media (max-width:767px) {
  .sw-production .sw-price-reason {
    margin-top:10px;
    padding-top:10px;
    font-size:12.5px;
  }
}


/* Before / After: five aligned needs with clear, non-interactive result labels. */
.sw-production .sw-problem-before,
.sw-production .sw-problem-after {
  min-height:728px;
}

.sw-production .sw-problem-before__head .sw-comparison-label,
.sw-production .sw-problem-after__head .sw-comparison-label {
  border:1px solid #c8d7ea;
  background:#fff;
  color:var(--sw-navy);
  box-shadow:0 4px 12px rgba(8,37,82,.08);
  font-size:15px;
  font-weight:900;
}

.sw-production .sw-problem-after__head .sw-comparison-label {
  border-color:rgba(255,255,255,.9);
  background:#fff;
  color:#0754ce;
}

.sw-production .sw-problem-before__item,
.sw-production .sw-problem-after__list > div {
  height:96px;
  min-height:96px;
}

.sw-production .sw-problem-after__list strong,
.sw-production .sw-problem-mobile-result strong {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:96px;
  min-height:44px;
  padding:8px 14px;
  border-radius:11px;
  background:#fff;
  color:#0754ce;
  box-shadow:0 6px 16px rgba(4,39,102,.16);
  font-size:22px;
  font-weight:900;
  line-height:1.25;
  letter-spacing:.03em;
  text-align:center;
  cursor:default;
  user-select:text;
}

.sw-production .sw-problem-after__list > div:nth-child(4) strong {
  min-width:132px;
  font-size:16px;
}

@media (max-width:1024px) and (min-width:768px) {
  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    min-height:736px;
  }

  .sw-production .sw-problem-before__item,
  .sw-production .sw-problem-after__list > div {
    height:100px;
    min-height:100px;
  }

  .sw-production .sw-problem-after__list strong {
    min-width:86px;
    padding-inline:10px;
    font-size:19px;
  }

  .sw-production .sw-problem-after__list > div:nth-child(4) strong {
    min-width:112px;
    font-size:14px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    min-height:0;
  }

  .sw-production .sw-problem-before__head .sw-comparison-label,
  .sw-production .sw-problem-after__head .sw-comparison-label {
    font-size:13px;
  }

  .sw-production .sw-problem-before__item,
  .sw-production .sw-problem-before__item:first-of-type {
    grid-template-columns:36px minmax(0,1fr) 112px;
    gap:9px;
    min-height:108px;
    margin-bottom:10px;
    padding-left:12px;
  }

  .sw-production .sw-problem-before__icon {
    width:36px;
    height:36px;
  }

  .sw-production .sw-problem-before__icon svg {
    width:22px;
    height:22px;
  }

  .sw-production .sw-problem-before__item h3 {
    font-size:14px;
    line-height:1.4;
  }

  .sw-production .sw-problem-before__item p {
    font-size:10.5px;
    line-height:1.55;
  }

  .sw-production .sw-problem-mobile-result {
    padding:10px 7px 10px 15px;
  }

  .sw-production .sw-problem-mobile-result span {
    font-size:9px;
    line-height:1.35;
    text-align:center;
  }

  .sw-production .sw-problem-mobile-result strong {
    min-width:78px;
    min-height:36px;
    margin-top:6px;
    padding:6px 7px;
    border-radius:9px;
    font-size:17px;
    letter-spacing:.02em;
  }

  .sw-production .sw-problem-mobile-result--wide strong {
    font-size:12px;
  }
}

/* Scene cards: keep the hover shadow inside the carousel spacing. */
@media (hover:hover) and (pointer:fine) {
  .sw-production .sw-scene-card:hover {
    transform:translateY(-2px);
    box-shadow:0 6px 12px -8px rgba(8,37,82,.28);
  }
}


/* Corporate benefits: larger titles and code-native icons, without new image assets. */
.sw-production #benefits .sw-feature-list {
  gap:20px;
}

.sw-production #benefits .sw-feature {
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:18px;
  align-items:center;
  min-height:166px;
  padding:28px 26px;
  border-color:rgba(11,94,232,.14);
  background:rgba(255,255,255,.94);
}

.sw-production #benefits .sw-feature::before,
.sw-production #benefits .sw-feature::after {
  content:none;
  display:none;
}

.sw-production .sw-feature__icon {
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  border:1px solid rgba(11,94,232,.18);
  border-radius:18px;
  background:linear-gradient(145deg,#f8fcff,#eaf4ff);
  color:var(--sw-blue);
  box-shadow:0 8px 20px rgba(11,94,232,.09);
}

.sw-production .sw-feature__icon svg {
  width:36px;
  height:36px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.sw-production .sw-feature__body {
  min-width:0;
}

.sw-production #benefits .sw-feature strong {
  margin:0 0 9px;
  color:var(--sw-navy);
  font-size:21px;
  font-weight:900;
  line-height:1.4;
  letter-spacing:.025em;
}

.sw-production #benefits .sw-feature span:not(.sw-feature__icon) {
  color:#1d1d1d;
  font-size:14px;
  font-weight:500;
  line-height:1.8;
}

/* Problems comparison: keep the water-supply badge in the card corner. */
.sw-production .sw-problem-before,
.sw-production .sw-problem-after {
  min-height:754px;
}

.sw-production .sw-problem-after {
  position:relative;
}

.sw-production .sw-problem-after__head {
  position:relative;
  display:block;
  min-height:42px;
  padding-right:132px;
}

.sw-production .sw-problem-after__kicker {
  position:absolute;
  top:0;
  right:0;
  z-index:1;
  white-space:nowrap;
}

.sw-production .sw-problem-before__catch,
.sw-production .sw-problem-after h2 {
  min-height:112px;
}

.sw-production .sw-problem-after h2 {
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}

.sw-production .sw-problem-title--desktop,
.sw-production .sw-problem-title--mobile {
  display:block;
}

.sw-production .sw-problem-title--mobile {
  display:none;
}

@media (max-width:1024px) and (min-width:768px) {
  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    min-height:764px;
  }

  .sw-production .sw-problem-after__head {
    padding-right:112px;
  }

  .sw-production #benefits .sw-feature {
    grid-template-columns:58px minmax(0,1fr);
    gap:15px;
    min-height:158px;
    padding:24px 22px;
  }

  .sw-production .sw-feature__icon {
    width:58px;
    height:58px;
    border-radius:16px;
  }

  .sw-production .sw-feature__icon svg {
    width:32px;
    height:32px;
  }

  .sw-production #benefits .sw-feature strong {
    font-size:19px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    min-height:0;
  }

  .sw-production .sw-problem-after__head {
    display:block;
    min-height:34px;
    padding-right:108px;
    text-align:left;
  }

  .sw-production .sw-problem-after .sw-comparison-label {
    display:inline-flex;
    max-width:calc(100% - 8px);
    font-size:12px;
  }

  .sw-production .sw-problem-after__kicker {
    top:0;
    right:0;
  }

  .sw-production .sw-problem-before__catch,
  .sw-production .sw-problem-after h2 {
    min-height:0;
  }

  .sw-production .sw-problem-after h2 {
    display:flex;
    align-items:center;
    margin-top:16px;
  }

  .sw-production .sw-problem-title--desktop {
    display:none;
  }

  .sw-production .sw-problem-title--mobile {
    display:block;
  }

  .sw-production #benefits .sw-feature-list {
    gap:12px;
  }

  .sw-production #benefits .sw-feature {
    grid-template-columns:54px minmax(0,1fr);
    gap:15px;
    min-height:118px;
    padding:20px;
  }

  .sw-production .sw-feature__icon {
    width:54px;
    height:54px;
    border-radius:15px;
  }

  .sw-production .sw-feature__icon svg {
    width:30px;
    height:30px;
  }

  .sw-production #benefits .sw-feature strong {
    margin-bottom:6px;
    font-size:18px;
    line-height:1.45;
  }

  .sw-production #benefits .sw-feature span:not(.sw-feature__icon) {
    font-size:12.5px;
    line-height:1.7;
  }
}

/* ========================================================================
   Corporate benefits photo-card preview (2026-10-17)
   Review-only layout: six current benefit items use the approved image set.
   ======================================================================== */
.sw-production #benefits::before {
  opacity:.36;
}

.sw-production #benefits .sw-feature-list {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.sw-production #benefits .sw-feature {
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:flex-end;
  min-height:330px;
  padding:26px;
  overflow:hidden;
  border:0;
  border-radius:22px;
  background-color:#17345b;
  background-image:
    linear-gradient(180deg,rgba(5,24,50,.02) 24%,rgba(5,24,50,.2) 51%,rgba(5,24,50,.92) 100%),
    var(--sw-feature-image);
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  box-shadow:0 12px 30px rgba(8,37,82,.13);
  transition:transform .32s ease,box-shadow .32s ease;
}

.sw-production #benefits .sw-feature::before {
  content:"";
  display:block;
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,transparent 46%,rgba(4,20,43,.14) 60%,rgba(4,20,43,.48) 100%);
  pointer-events:none;
}

.sw-production #benefits .sw-feature::after {
  content:"";
  display:block;
  position:absolute;
  inset:1px;
  z-index:3;
  border:1px solid rgba(255,255,255,.22);
  border-radius:21px;
  pointer-events:none;
}

.sw-production #benefits .sw-feature__icon {
  position:absolute;
  top:20px;
  left:20px;
  z-index:2;
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.48);
  border-radius:14px;
  background:rgba(8,37,82,.42);
  color:#fff;
  box-shadow:none;
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
}

.sw-production #benefits .sw-feature__icon svg {
  width:27px;
  height:27px;
  stroke-width:2;
}

.sw-production #benefits .sw-feature__body {
  position:relative;
  z-index:2;
  width:100%;
}

.sw-production #benefits .sw-feature strong {
  margin:0 0 8px;
  color:#fff;
  font-size:22px;
  font-weight:900;
  line-height:1.4;
  letter-spacing:.035em;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}

.sw-production #benefits .sw-feature span:not(.sw-feature__icon) {
  display:block;
  color:rgba(255,255,255,.96);
  font-size:14px;
  font-weight:600;
  line-height:1.75;
  text-shadow:0 1px 10px rgba(0,0,0,.4);
}

@media (hover:hover) and (pointer:fine) {
  .sw-production #benefits .sw-feature:hover {
    transform:translateY(-3px);
    box-shadow:0 16px 34px rgba(8,37,82,.18);
  }
}

@media (max-width:1024px) {
  .sw-production #benefits .sw-feature-list {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }

  .sw-production #benefits .sw-feature {
    min-height:300px;
    padding:23px;
  }
}

@media (max-width:767px) {
  .sw-production #benefits .sw-feature-list {
    grid-template-columns:1fr;
    gap:12px;
  }

  .sw-production #benefits .sw-feature {
    min-height:0;
    aspect-ratio:3 / 2;
    padding:20px;
    border-radius:18px;
  }

  .sw-production #benefits .sw-feature:nth-child(1) { background-position:center 44%; }
  .sw-production #benefits .sw-feature:nth-child(2) { background-position:center 46%; }
  .sw-production #benefits .sw-feature:nth-child(3) { background-position:center 42%; }
  .sw-production #benefits .sw-feature:nth-child(4) { background-position:center 43%; }
  .sw-production #benefits .sw-feature:nth-child(5) { background-position:center 43%; }
  .sw-production #benefits .sw-feature:nth-child(6) { background-position:center 42%; }

  .sw-production #benefits .sw-feature::after {
    border-radius:17px;
  }

  .sw-production #benefits .sw-feature__icon {
    top:16px;
    left:16px;
    width:42px;
    height:42px;
    border-radius:12px;
  }

  .sw-production #benefits .sw-feature__icon svg {
    width:24px;
    height:24px;
  }

  .sw-production #benefits .sw-feature strong {
    margin-bottom:4px;
    font-size:19px;
  }

  .sw-production #benefits .sw-feature span:not(.sw-feature__icon) {
    font-size:12.5px;
    line-height:1.62;
  }
}

/* Client revision: negate bottle replacement / inventory burden in-photo. */
.sw-production #benefits .sw-feature__negation {
  position:absolute;
  top:18px;
  right:18px;
  z-index:4;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  color:#fff;
  line-height:1;
  text-align:center;
  text-shadow:0 2px 10px rgba(3,20,45,.72);
  transform:rotate(-7deg);
  pointer-events:none;
}

.sw-production #benefits .sw-feature__negation b {
  display:block;
  color:#fff;
  font-size:62px;
  font-weight:600;
  font-style:normal;
  line-height:.72;
  -webkit-text-stroke:2px rgba(4,24,50,.5);
  text-shadow:0 3px 12px rgba(3,20,45,.72);
}

.sw-production #benefits .sw-feature__negation em {
  display:block;
  color:#fff;
  font-size:11px;
  font-weight:900;
  font-style:normal;
  letter-spacing:.12em;
  white-space:nowrap;
}

@media (max-width:767px) {
  .sw-production #benefits .sw-feature__negation {
    top:14px;
    right:14px;
  }

  .sw-production #benefits .sw-feature__negation b {
    font-size:56px;
  }

  .sw-production #benefits .sw-feature__negation em {
    font-size:10px;
  }
}

/* ========================================================================
   Client refinements: complete lineup images and three-column water footer
   ======================================================================== */

/* 1024px以下では4機種すべてを元画像の3:2比率で表示し、全体の見切れを防ぐ。 */
@media (max-width:1024px) {
  .sw-production .sw-standard-layouts--three .sw-server-card,
  .sw-production .sw-server-card--large {
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
  }

  .sw-production .sw-standard-layouts--three .sw-server-card .sw-server-card__image,
  .sw-production .sw-standard-layouts--three .sw-server-card .sw-server-card__image img,
  .sw-production .sw-server-card--large .sw-server-card__image,
  .sw-production .sw-server-card--large .sw-server-card__image img {
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:3 / 2;
  }

  .sw-production .sw-standard-layouts--three .sw-server-card .sw-server-card__image img,
  .sw-production .sw-server-card--large .sw-server-card__image img {
    object-fit:cover;
    object-position:center center;
    transform:none;
  }
}

/* 共通フッター：明るい水面を思わせる背景とPC3列構成。 */
.sw-production .sw-site-footer {
  isolation:isolate;
  overflow:hidden;
  padding:58px 0 20px;
  background:linear-gradient(180deg,#fafdff 0%,#e7f5ff 52%,#d8efff 100%);
  color:#173b63;
}

.sw-production .sw-site-footer::before,
.sw-production .sw-site-footer::after {
  content:"";
  position:absolute;
  z-index:-1;
  left:-12%;
  width:124%;
  pointer-events:none;
}

.sw-production .sw-site-footer::before {
  top:-105px;
  height:220px;
  border:1px solid rgba(67,157,221,.2);
  border-radius:0 0 52% 48%;
  background:radial-gradient(ellipse at center,rgba(255,255,255,.42),rgba(139,207,251,.12) 58%,transparent 72%);
  transform-origin:50% 0;
  animation:sw-footer-water-ripple 18s ease-in-out infinite alternate;
}

.sw-production .sw-site-footer::after {
  right:-12%;
  bottom:-74px;
  height:170px;
  border-radius:48% 52% 0 0;
  background:linear-gradient(0deg,rgba(255,255,255,.94),rgba(195,231,255,.42));
  animation:sw-footer-water-drift 14s ease-in-out infinite alternate;
}

@keyframes sw-footer-water-drift {
  from { transform:translate3d(-1.5%,0,0) rotate(-.6deg) scaleX(1.01); }
  to { transform:translate3d(1.5%,8px,0) rotate(.6deg) scaleX(.99); }
}

@keyframes sw-footer-water-ripple {
  from { transform:translate3d(1%,0,0) scaleX(.98); opacity:.62; }
  to { transform:translate3d(-1%, -10px,0) scaleX(1.02); opacity:.9; }
}

.sw-production .sw-site-footer__inner,
.sw-production .sw-site-footer__bottom {
  position:relative;
  z-index:1;
}

.sw-production .sw-site-footer__inner {
  grid-template-columns:minmax(270px,1.05fr) minmax(220px,.85fr) minmax(280px,1fr);
  align-items:stretch;
  gap:clamp(32px,5vw,72px);
}

.sw-production .sw-site-footer__company,
.sw-production .sw-site-footer__nav,
.sw-production .sw-site-footer__actions {
  min-width:0;
}

.sw-production .sw-site-footer__brand {
  display:inline-block;
  margin-bottom:26px;
}

.sw-production .sw-site-footer__brand img {
  width:min(100%,220px);
  max-width:220px;
}

.sw-production .sw-site-footer__heading {
  margin-bottom:13px;
  color:#082b5c;
}

.sw-production .sw-site-footer__company strong {
  margin-bottom:7px;
  color:#082b5c;
}

.sw-production .sw-site-footer__company address {
  margin-bottom:7px;
}

.sw-production .sw-site-footer__company dl div {
  min-height:25px;
  align-items:center;
  gap:9px;
}

.sw-production .sw-site-footer__company dt {
  color:#52708f;
}

.sw-production .sw-site-footer__company a,
.sw-production .sw-site-footer__nav a {
  color:#173b63;
}

.sw-production .sw-site-footer__company .sw-instagram-link--footer {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:28px;
  margin-top:7px;
  color:#0b5ee8;
  font-weight:800;
  text-decoration:none;
}

.sw-production .sw-site-footer__company .sw-instagram-link--footer svg {
  width:19px;
  height:19px;
}

.sw-production .sw-site-footer__nav {
  gap:9px;
}

.sw-production .sw-site-footer__nav a:hover,
.sw-production .sw-site-footer__nav a:focus-visible,
.sw-production .sw-site-footer__company a:hover,
.sw-production .sw-site-footer__company a:focus-visible {
  color:#0b5ee8;
}

.sw-production .sw-site-footer__legal {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
  width:100%;
  margin-top:11px;
  padding-top:12px;
  border-top:1px solid rgba(8,43,92,.14);
}

.sw-production .sw-site-footer__legal a {
  color:#58728e;
  font-size:11px;
}

.sw-production .sw-site-footer__actions {
  align-self:stretch;
}

.sw-production .sw-site-footer__button--secondary {
  border-color:rgba(11,94,232,.38);
  background:rgba(255,255,255,.64);
  color:#0b5ee8;
}

.sw-production .sw-site-footer__sdgs {
  border:1px solid rgba(8,43,92,.1);
  box-shadow:0 10px 24px rgba(8,43,92,.08);
}

.sw-production .sw-site-footer__bottom {
  border-top-color:rgba(8,43,92,.14);
}

.sw-production .sw-site-footer__copyright {
  color:#607993;
  font-size:12px;
  text-align:right;
}

.sw-production .sw-site-footer__copyright span {
  display:inline-block;
  margin-right:1px;
  font-size:15px;
  line-height:1;
  vertical-align:-1px;
}

@media (min-width:901px) {
  .sw-production .sw-site-footer__inner {
    align-items:end;
  }
}

@media (max-width:900px) {
  .sw-production .sw-site-footer__inner {
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:34px 44px;
  }

  .sw-production .sw-site-footer__actions {
    grid-column:1 / -1;
    width:min(100%,560px);
  }
}

@media (max-width:767px) {
  .sw-production .sw-site-footer,
  .sw-production.sw-form-site-page .sw-site-footer {
    padding:42px 0 34px;
  }

  .sw-production .sw-site-footer__inner {
    grid-template-columns:1fr;
    gap:30px;
  }

  .sw-production .sw-site-footer__actions {
    grid-column:auto;
    width:100%;
  }

  .sw-production .sw-site-footer__brand {
    margin-bottom:22px;
  }

  .sw-production .sw-site-footer__brand img {
    width:190px;
    max-width:70vw;
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-site-footer::before,
  .sw-production .sw-site-footer::after {
    animation:none !important;
  }
}

/* SWELL標準のページトップボタンをサイトの青いCTAと統一。 */
.sw-production #pagetop {
  border-color:#0b5ee8;
  background:#0b5ee8;
  color:#fff;
  opacity:.94;
  box-shadow:0 8px 22px rgba(7,79,200,.24);
}

.sw-production #pagetop:focus-visible {
  outline:3px solid rgba(11,94,232,.28);
  outline-offset:3px;
}

@media (hover:hover) and (pointer:fine) {
  .sw-production #pagetop:hover {
    border-color:#0754c7;
    background:#0754c7 !important;
    color:#fff !important;
  }
}

@media (max-width:767px) {
  .sw-production.shirokuma-lp-page .p-fixBtnWrap {
    right:16px;
    bottom:88px;
    z-index:1199;
  }

  .sw-production.sw-form-site-page .p-fixBtnWrap {
    right:16px;
    bottom:18px;
  }
}

/* =========================================================
   2026-10-20 FV / final CTA responsive alignment
   768px以下は情報を縦に整理し、769–1024pxはPCと同じ
   写真背景＋左コピーの構成を維持する。
   ========================================================= */
.sw-production .sw-fv-group .sw-hero--reference {
  padding-bottom:0;
}

@media (min-width:769px) and (max-width:1024px) {
  .sw-production .sw-fv-group::after {
    display:block;
    background:linear-gradient(90deg,
      rgba(255,255,255,.88) 0%,
      rgba(255,255,255,.78) 36%,
      rgba(255,255,255,.34) 55%,
      rgba(255,255,255,0) 72%);
  }

  .sw-production .sw-fv-group .sw-hero--reference {
    padding-top:78px;
    --sw-fv-position-pc:66% center;
  }

  .sw-production .sw-fv-group .sw-hero-main {
    position:static;
    display:flex;
    flex-direction:row;
    align-items:center;
    overflow:visible;
  }

  .sw-production .sw-fv-group .sw-hero__copy {
    position:relative;
    z-index:2;
    order:1;
    width:clamp(410px,49vw,500px);
    max-width:500px;
    margin-left:clamp(22px,3.2vw,34px);
    padding:0;
  }

  .sw-production .sw-fv-group .sw-hero__media {
    position:absolute;
    inset:0;
    z-index:0;
    order:2;
    width:100%;
    height:100%;
    min-height:0;
    margin:0;
    overflow:hidden;
    border-radius:0;
  }

  .sw-production .sw-fv-group .sw-hero__image {
    width:100%;
    height:100%;
    aspect-ratio:auto;
    object-fit:cover;
    object-position:var(--sw-fv-position-pc);
  }

  .sw-production .sw-fv-group .sw-hero__mobile-logo {
    display:none;
  }

  .sw-production .sw-fv-group .sw-hero-actions {
    grid-template-columns:1.14fr .86fr;
    width:100%;
  }
}

@media (max-width:768px) {
  .sw-production .sw-fv-group::after {
    display:none;
  }

  .sw-production .sw-fv-group .sw-hero--reference {
    padding:82px 0 0;
    background:#fff;
  }

  .sw-production .sw-fv-group .sw-hero-shell {
    width:100%;
    max-width:none;
  }

  .sw-production .sw-fv-group .sw-hero-main {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    overflow:visible;
  }

  .sw-production .sw-fv-group .sw-hero--reference .sw-hero__copy {
    order:1;
    width:88%;
    max-width:680px;
    margin:0 auto;
    padding:0 0 60px;
  }

  .sw-production .sw-fv-group .sw-hero__media {
    position:relative;
    inset:auto;
    order:2;
    width:100%;
    height:auto;
    min-height:0;
    margin-left:0;
    overflow:hidden;
    border-radius:0;
    background:#dfe4e5;
  }

  .sw-production .sw-fv-group .sw-hero__image {
    display:block;
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:16 / 9;
    object-fit:cover;
    object-position:45% center;
  }

  .sw-production .sw-fv-group .sw-hero__mobile-logo {
    left:29%;
    top:50%;
    display:block;
    width:clamp(130px,28vw,210px);
    transform:translate(-50%,-50%);
  }

  .sw-production .sw-fv-group .sw-hero-actions {
    grid-template-columns:1fr;
    width:100%;
  }
}

@media (min-width:768px) {
  .sw-production .sw-contact-layout {
    grid-template-columns:minmax(0,4fr) minmax(0,6fr);
  }

  .sw-production .sw-contact-visual {
    position:relative;
    left:clamp(24px,4vw,60px);
  }
}

/* 768px境界でも料金カードをモバイル構成に統一。 */
@media (max-width:768px) {
  .sw-production .sw-fv-group .sw-hero-offer {
    grid-template-columns:1fr;
    width:100%;
  }

  .sw-production .sw-fv-group .sw-hero-price {
    justify-content:center;
    padding:14px;
  }

  .sw-production .sw-fv-group .sw-hero-price__label {
    min-width:55px;
    min-height:70px;
    align-self:auto;
  }

  .sw-production .sw-fv-group .sw-hero-price strong {
    font-size:clamp(50px,12vw,68px);
  }

  .sw-production .sw-fv-group .sw-hero-checks {
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    padding:13px 22px 16px;
    border-top:1px solid #e5edf7;
    font-size:12px;
  }
}

/* 768px以下：プラン名と月額表示の重なりを防ぐ。 */
@media (max-width:768px) {
  .sw-production .sw-fv-group .sw-hero-price {
    padding:44px 14px 14px;
  }

  .sw-production .sw-fv-group .sw-hero-price__plan {
    top:11px;
    left:50%;
    transform:translateX(-50%);
  }
}

/* 768px以下：水面の光と波紋をイメージしたHero背景。 */
@keyframes sw-mobile-hero-water-drift {
  0% {
    transform:translate3d(-2%,-1%,0) scale(1);
  }
  50% {
    transform:translate3d(3%,2%,0) scale(1.05);
  }
  100% {
    transform:translate3d(-1%,4%,0) scale(1.02);
  }
}

@keyframes sw-mobile-hero-ripple-drift {
  0% {
    transform:translate3d(-3%,-2%,0) rotate(-1deg) scale(1.02);
  }
  100% {
    transform:translate3d(4%,3%,0) rotate(1deg) scale(1.08);
  }
}

@media (max-width:768px) {
  .sw-production .sw-fv-group .sw-hero--reference {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:linear-gradient(180deg,#fff 0%,#fff 76%,#fbfdff 100%);
  }

  .sw-production .sw-fv-group .sw-hero--reference::before,
  .sw-production .sw-fv-group .sw-hero--reference::after {
    content:"";
    position:absolute;
    pointer-events:none;
  }

  .sw-production .sw-fv-group .sw-hero--reference::before {
    inset:-18%;
    z-index:0;
    background:
      radial-gradient(ellipse at 88% 10%,rgba(72,184,255,.11) 0 12%,rgba(72,184,255,0) 43%),
      radial-gradient(ellipse at 78% 18%,rgba(14,112,232,.055) 0 18%,rgba(14,112,232,0) 51%);
    filter:blur(8px);
    animation:sw-mobile-hero-water-drift 14s ease-in-out infinite alternate;
    will-change:transform;
  }

  .sw-production .sw-fv-group .sw-hero--reference::after {
    inset:-12%;
    z-index:0;
    background:
      repeating-radial-gradient(ellipse at 88% 10%,
        rgba(255,255,255,0) 0 42px,
        rgba(85,174,233,.09) 43px 45px,
        rgba(255,255,255,0) 46px 84px);
    opacity:.42;
    animation:sw-mobile-hero-ripple-drift 18s ease-in-out infinite alternate;
    will-change:transform;
  }

  .sw-production .sw-fv-group .sw-hero--reference .sw-hero-shell {
    position:relative;
    z-index:1;
  }
}

@media (max-width:768px) and (prefers-reduced-motion:reduce) {
  .sw-production .sw-fv-group .sw-hero--reference::before,
  .sw-production .sw-fv-group .sw-hero--reference::after {
    animation:none;
  }
}

@media (max-width:768px) {
  .sw-production .sw-fv-group .sw-hero--reference .sw-hero-main {
    background:transparent;
  }
}

/* ヘッダーナビゲーション下部の境界線を削除。 */
.sw-production .sw-header {
  border-bottom:0;
}


/* 2026-10-22: 「ろ過の仕組み」だけに限定した静止グラデーションと淡い光。 */
.sw-production .sw-filter-section {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:linear-gradient(180deg,#fff 0%,#E5F2FC 100%);
}

.sw-production .sw-filter-section::before {
  content:"";
  position:absolute;
  top:14%;
  left:50%;
  z-index:0;
  width:min(1120px,112vw);
  height:68%;
  transform:translate3d(-52%,0,0) scale(1.02);
  border-radius:50%;
  background:
    radial-gradient(ellipse at 50% 48%,
      rgba(255,255,255,.88) 0%,
      rgba(255,255,255,.58) 26%,
      rgba(191,226,249,.25) 52%,
      rgba(191,226,249,0) 74%);
  filter:blur(34px);
  opacity:.9;
  pointer-events:none;
  will-change:transform;
  animation:sw-filter-light-drift 26s ease-in-out infinite alternate;
  animation-play-state:paused;
}

.sw-production .sw-filter-section.is-filter-inview::before {
  animation-play-state:running;
}

.sw-production .sw-filter-section > .sw-container {
  position:relative;
  z-index:1;
}

@keyframes sw-filter-light-drift {
  0% {
    transform:translate3d(-52%,-5px,0) scale(1.02);
  }
  50% {
    transform:translate3d(-49%,6px,0) scale(1.045);
  }
  100% {
    transform:translate3d(-51%,1px,0) scale(1.025);
  }
}

/* 実物の縦長円筒・首肩・単色ラベル帯を、既存線画のまま簡略化。 */
.sw-production .sw-filter-illustration__body {
  fill:#fff;
  stroke:var(--filter-color);
  stroke-width:1.8;
  stroke-linejoin:round;
}

.sw-production .sw-filter-illustration__cap {
  fill:#fff;
  stroke:var(--filter-color);
  stroke-width:1.8;
}

.sw-production .sw-filter-illustration__line {
  fill:none;
  stroke:var(--filter-line);
  stroke-width:1.3;
  stroke-linecap:round;
}

.sw-production .sw-filter-illustration__band {
  fill:var(--filter-color);
}

/* Afterの各項目名を、右側の結果ラベルと同じ文字サイズ・ウェイトに統一。 */
.sw-production .sw-problem-after__list > div > span {
  font-size:22px;
  font-weight:900;
  line-height:1.25;
}

/* お悩みセクションは上下を白でつなぎ、中央の水色を明確に見せる。 */
.sw-production #problems.sw-section--soft {
  background:linear-gradient(180deg,#fff 0%,#edf7ff 24%,#dceeff 58%,#eef8ff 82%,#fff 100%);
}

/* FAQ本文色を変えず、上端だけを緩やかな波で接続。 */
.sw-production #faq {
  position:relative;
  isolation:isolate;
}

.sw-production #faq > .sw-container {
  position:relative;
  z-index:1;
}

.sw-production .sw-faq-wave {
  position:absolute;
  top:-33px;
  left:0;
  z-index:0;
  width:100%;
  height:34px;
  overflow:hidden;
  pointer-events:none;
}

.sw-production .sw-faq-wave::before {
  content:"";
  position:absolute;
  inset:0 -1080px 0 0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1080 34' preserveAspectRatio='none'%3E%3Cpath fill='%23f4f8fe' d='M0 34V18C180 4 360 4 540 18s360 14 540 0v16H0Z'/%3E%3C/svg%3E");
  background-position:0 0;
  background-repeat:repeat-x;
  background-size:1080px 34px;
  animation:sw-faq-wave 30s linear infinite;
}

@keyframes sw-faq-wave {
  to {
    background-position:-1080px 0;
  }
}

@media (max-width:1024px) and (min-width:768px) {
  .sw-production .sw-problem-after__list > div > span {
    font-size:19px;
  }

}

@media (max-width:767px) {
  .sw-production .sw-problem-mobile-result > span {
    font-size:17px;
    font-weight:900;
    line-height:1.25;
  }

  .sw-production .sw-filter-section::before {
    top:12%;
    width:150vw;
    height:72%;
    filter:blur(28px);
  }

  .sw-production .sw-faq-wave {
    top:-25px;
    height:26px;
  }

  .sw-production .sw-faq-wave::before {
    background-size:1080px 26px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-filter-section::before,
  .sw-production .sw-faq-wave::before {
    animation:none;
  }
}

/* =========================================================
   Official social links: compact header icon and shared links.
   ========================================================= */
.sw-production .sw-mobile-instagram {
  display:none;
  place-items:center;
  width:40px;
  height:40px;
  flex:0 0 auto;
  border-radius:50%;
  background:radial-gradient(circle at 31% 108%,#ffd600 0 10%,#ff7a00 26%,#ff0169 52%,#d300c5 72%,#7638fa 100%);
  color:#fff;
  box-shadow:0 5px 14px rgba(211,0,197,.16);
}

.sw-production .sw-mobile-instagram svg {
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}

.sw-production .sw-tiktok-mark {
  width:21px;
  height:21px;
  flex:0 0 auto;
  overflow:visible;
}

.sw-production .sw-tiktok-mark__cyan { fill:#25f4ee; }
.sw-production .sw-tiktok-mark__pink { fill:#fe2c55; }
.sw-production .sw-tiktok-mark__dark { fill:#111; }

.sw-production .sw-mobile-menu nav a.sw-tiktok-link--menu {
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 10px 6px;
  border:0;
  color:#111;
}

.sw-production .sw-mobile-menu nav a.sw-instagram-link--menu svg {
  width:21px;
  height:21px;
  padding:3px;
  border-radius:7px;
  background:radial-gradient(circle at 31% 108%,#ffd600 0 10%,#ff7a00 26%,#ff0169 52%,#d300c5 72%,#7638fa 100%);
  box-sizing:border-box;
  color:#fff;
  stroke:#fff;
}

.sw-production .sw-site-footer__socials {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
  margin-top:7px;
}

.sw-production .sw-site-footer__socials > a {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:28px;
  margin:0;
  font-weight:800;
  text-decoration:none;
}

.sw-production .sw-site-footer__socials .sw-instagram-link svg {
  width:21px;
  height:21px;
  padding:3px;
  border-radius:7px;
  background:radial-gradient(circle at 31% 108%,#ffd600 0 10%,#ff7a00 26%,#ff0169 52%,#d300c5 72%,#7638fa 100%);
  box-sizing:border-box;
  color:#fff;
  stroke:#fff;
}

.sw-production .sw-site-footer__socials .sw-tiktok-link {
  color:#111;
}

@media (max-width:1200px) {
  .sw-production .sw-header__mobile-actions .sw-mobile-instagram {
    display:grid;
  }
}

@media (max-width:767px) {
  .sw-production .sw-mobile-instagram {
    width:40px;
    height:40px;
  }
}

/* =========================================================
   2026-10-27 client meeting refinements
   Latest local design is preserved; these rules only override
   the confirmed typography, hierarchy and responsive details.
   ========================================================= */
.sw-production {
  font-size:16px;
}

/* Header contact link beside Instagram on the desktop navigation. */
.sw-production .sw-header-phone {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#0754ce;
  font-size:12px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
}

.sw-production .sw-header-phone svg {
  width:28px;
  height:28px;
  padding:6px;
  border:1px solid rgba(7,84,206,.3);
  border-radius:50%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media (min-width:1201px) and (max-width:1380px) {
  .sw-production .sw-global-nav {
    gap:18px;
  }

  .sw-production .sw-header-phone span {
    display:none;
  }
}

@media (max-width:1200px) {
  .sw-production .sw-header-phone {
    display:none;
  }
}

/* Hero hierarchy. */
.sw-production .sw-hero-kicker {
  z-index:0;
  margin-bottom:16px;
  padding:7px 16px 8px;
  color:#fff;
  font-size:21px;
  line-height:1.25;
  letter-spacing:.12em;
  filter:drop-shadow(0 5px 10px rgba(7,84,206,.16));
}

.sw-production .sw-hero-kicker::before {
  content:"";
  position:absolute;
  inset:1px -8px -1px -7px;
  z-index:-1;
  background:linear-gradient(105deg,#0b64df 0%,#1689ee 55%,#5fbce9 100%);
  clip-path:polygon(1% 19%,8% 8%,21% 14%,35% 4%,52% 11%,70% 1%,87% 11%,100% 5%,97% 83%,87% 94%,68% 88%,52% 100%,34% 91%,17% 98%,2% 88%);
}

.sw-production .sw-hero-kicker::after {
  display:none;
}

.sw-production .sw-hero-title__accent,
.sw-production .sw-hero-title__accent .sw-type-char {
  color:#eb4d4b;
}

.sw-production .sw-temp-strip {
  font-size:24px;
  line-height:1.35;
  letter-spacing:.04em;
}

.sw-production .sw-temp-strip strong {
  font-size:24px;
}

.sw-production .sw-temp-strip .sw-temp-strip__cold { color:#0984e3; }
.sw-production .sw-temp-strip .sw-temp-strip__hot { color:#eb4d4b; }
.sw-production .sw-temp-strip .sw-temp-strip__normal { color:#2ecc71; }

.sw-production .sw-temp-strip > span {
  margin:0 8px;
  color:#8ca2bc;
  font-size:20px;
}

.sw-production .sw-hero-price__label,
.sw-production .sw-hero-price__plan {
  font-size:14px;
}

.sw-production .sw-hero__mobile-mascot {
  display:none;
}

@keyframes sw-gentle-float {
  0%,100% { transform:translate3d(0,0,0) rotate(-1deg); }
  50% { transform:translate3d(0,-8px,0) rotate(1deg); }
}

@media (max-width:768px) {
  .sw-production .sw-fv-group .sw-hero__copy {
    position:relative;
  }

  .sw-production .sw-hero__mobile-mascot {
    position:absolute;
    top:2px;
    right:0;
    z-index:2;
    display:block;
    width:clamp(78px,17vw,116px);
    height:auto;
    pointer-events:none;
    animation:sw-gentle-float 5.8s ease-in-out infinite;
  }

  .sw-production .sw-temp-strip,
  .sw-production .sw-temp-strip strong {
    font-size:24px;
  }

  .sw-production .sw-temp-strip > span {
    margin-inline:6px;
    font-size:18px;
  }

  .sw-production .sw-hero-price__label,
  .sw-production .sw-hero-price__plan {
    font-size:13px;
  }
}

/* Five-row Before / After comparison with a clear resolution headline. */
.sw-production .sw-problem-before,
.sw-production .sw-problem-after {
  min-height:760px;
}

.sw-production .sw-problem-before__head {
  margin-bottom:112px;
}

.sw-production .sw-problem-after__intro {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:112px;
}

.sw-production .sw-problem-after__intro h2 {
  min-width:0;
  min-height:0;
  margin:12px 0 14px;
  color:#fff;
  font-size:clamp(24px,2.2vw,31px);
  line-height:1.45;
  letter-spacing:.025em;
}

.sw-production .sw-problem-doctor {
  flex:0 0 auto;
  width:92px;
  height:auto;
  filter:drop-shadow(0 8px 14px rgba(3,35,91,.2));
  animation:sw-gentle-float 6.6s ease-in-out infinite .4s;
}

.sw-production .sw-problem-after__list > div {
  gap:14px;
}

.sw-production .sw-problem-after__list > div > span,
.sw-production .sw-problem-after__list > div > strong {
  font-size:20px;
  font-weight:900;
}

.sw-production .sw-problem-after__list > div:nth-child(4) strong {
  min-width:150px;
  font-size:17px;
}

@media (max-width:1024px) and (min-width:768px) {
  .sw-production .sw-problem-before__head {
    margin-bottom:106px;
  }

  .sw-production .sw-problem-after__intro {
    min-height:106px;
  }

  .sw-production .sw-problem-after__intro h2 {
    font-size:23px;
  }

  .sw-production .sw-problem-doctor {
    width:72px;
  }

  .sw-production .sw-problem-after__list > div > span,
  .sw-production .sw-problem-after__list > div > strong {
    font-size:17px;
  }

  .sw-production .sw-problem-after__list > div:nth-child(4) strong {
    min-width:118px;
    font-size:14px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-problem-before,
  .sw-production .sw-problem-after {
    min-height:0;
  }

  .sw-production .sw-problem-after {
    padding-bottom:26px;
  }

  html.sw-motion-ready .sw-production .sw-problem-after.sw-reveal {
    opacity:1;
    filter:none;
    transform:none;
  }

  .sw-production .sw-problem-before__head {
    margin-bottom:18px;
  }

  .sw-production .sw-problem-after__intro {
    justify-content:center;
    min-height:0;
    margin-top:10px;
  }

  .sw-production .sw-problem-after__intro h2 {
    width:auto;
    margin:0;
    color:var(--sw-navy);
    font-size:clamp(22px,6.2vw,28px);
    line-height:1.45;
    text-align:left;
  }

  .sw-production .sw-problem-doctor {
    width:74px;
  }

  .sw-production .sw-problem-mobile-result > span {
    font-size:14px;
  }
}

/* Benefits: retain all six card photos and remove only the section backdrop. */
.sw-production #benefits::before {
  display:none !important;
  content:none !important;
  background:none !important;
}

.sw-production #benefits .sw-title {
  font-size:30px;
}

.sw-production #benefits .sw-feature__negation {
  top:16px;
  right:18px;
  gap:6px;
}

.sw-production #benefits .sw-feature__negation b {
  font-size:76px;
  line-height:.68;
}

.sw-production #benefits .sw-feature__negation em {
  padding:4px 9px;
  border-radius:999px;
  background:rgba(4,25,55,.6);
  font-size:15px;
  letter-spacing:.08em;
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}

@media (max-width:767px) {
  .sw-production #benefits .sw-title {
    font-size:30px;
  }

  .sw-production #benefits .sw-feature__negation b {
    font-size:66px;
  }

  .sw-production #benefits .sw-feature__negation em {
    font-size:13px;
  }
}

/* Filter bottles based on the supplied vector reference. */
.sw-production .sw-filter-card {
  min-height:440px;
}

.sw-production .sw-filter-card__visual-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) 102px;
  gap:12px;
  align-items:center;
}

.sw-production .sw-filter-card__visual {
  height:190px;
}

.sw-production .sw-filter-card__visual svg {
  width:116px;
  height:174px;
  animation:sw-gentle-float 7.2s ease-in-out infinite;
}

.sw-production .sw-filter-card:nth-child(2) .sw-filter-card__visual svg { animation-delay:.55s; }
.sw-production .sw-filter-card:nth-child(3) .sw-filter-card__visual svg { animation-delay:1.1s; }

.sw-production .sw-filter-illustration__band-number {
  fill:#fff;
  font-family:inherit;
  font-size:22px;
  font-weight:900;
  text-anchor:middle;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:112px;
  margin:0;
  padding:14px 10px;
  border-color:var(--filter-line);
  background:var(--filter-soft);
  text-align:center;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle span {
  color:var(--filter-color);
  font-size:13px;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle strong {
  margin-top:8px;
  font-size:17px;
  white-space:normal;
}

.sw-production .sw-filter-card__role {
  padding:15px 16px;
}

.sw-production .sw-filter-card__role p {
  color:#1d1d1d;
  font-size:16px;
  line-height:1.8;
}

.sw-production .sw-filter-delivery strong {
  font-size:24px;
}

.sw-production .sw-filter-delivery p {
  margin:7px 0 0;
  font-size:16px;
  line-height:1.7;
}

.sw-production .sw-filter-delivery small {
  margin-top:7px;
  font-size:12px;
}

@media (max-width:1024px) {
  .sw-production .sw-filter-card__visual-row {
    grid-template-columns:minmax(0,1fr) 88px;
    gap:8px;
  }

  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    min-height:104px;
    padding-inline:7px;
  }

  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle strong {
    font-size:15px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-filter-card__visual-row {
    grid-template-columns:minmax(0,1fr) 112px;
    gap:12px;
  }

  .sw-production .sw-filter-card__visual {
    height:160px;
  }

  .sw-production .sw-filter-card__visual svg {
    width:104px;
    height:156px;
  }

  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    min-height:116px;
  }

  .sw-production .sw-filter-delivery strong {
    font-size:21px;
    line-height:1.55;
    text-align:center;
  }

  .sw-production .sw-filter-delivery p {
    font-size:16px;
    text-align:center;
  }
}

/* PFAS summary: four balanced evidence cells on desktop. */
.sw-production .sw-pfas-summary {
  display:grid;
  grid-template-columns:1.2fr repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}

.sw-production .sw-pfas-data {
  display:contents;
}

.sw-production .sw-pfas-summary__main,
.sw-production .sw-pfas-data > div {
  min-width:0;
  min-height:190px;
  margin:0;
  padding:24px 20px;
  border:1px solid #dce8f6;
  border-radius:16px;
  background:#fff;
}

.sw-production .sw-pfas-summary__main {
  border-color:#2b76e8;
  background:linear-gradient(145deg,#1b79ee,#0754ce);
}

@media (max-width:1024px) {
  .sw-production .sw-pfas-summary {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:600px) {
  .sw-production .sw-pfas-summary {
    grid-template-columns:1fr;
  }

  .sw-production .sw-pfas-summary__main,
  .sw-production .sw-pfas-data > div {
    min-height:0;
  }
}

@media (min-width:601px) {
  .sw-production .sw-pfas-summary {
    grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);
    gap:clamp(12px,1.5vw,22px);
    align-items:stretch;
  }
  .sw-production .sw-pfas-summary__main { min-height:0; padding:22px; }
  .sw-production .sw-pfas-data {
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:repeat(3,1fr);
    gap:0;
    padding:0 18px;
    border:1px solid var(--sw-border);
    border-radius:16px;
    background:#fff;
  }
  .sw-production .sw-pfas-data > div {
    display:grid;
    grid-template-columns:5em minmax(0,1fr);
    align-items:center;
    gap:10px;
    min-height:0;
    padding:12px 0;
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  .sw-production .sw-pfas-data > div + div { border-top:1px solid var(--sw-border); }
  .sw-production .sw-pfas-data dt { margin:0; }
}

/* Lineup emphasis and capacity comparison. */
.sw-production .sw-product-tag {
  font-size:22px;
  font-weight:900;
}

.sw-production #large-server-title {
  font-size:20px;
}

.sw-production .sw-large-capacity-label b,
.sw-production .sw-large-price-title b {
  position:relative;
  z-index:0;
  display:inline-block;
  margin-inline:2px;
  padding:3px 6px 4px;
  color:#fff;
  font-size:1.3em;
  line-height:1.1;
  text-shadow:0 1px 2px rgba(4,43,102,.42);
}

.sw-production .sw-large-capacity-label b::before,
.sw-production .sw-large-price-title b::before {
  content:"";
  position:absolute;
  inset:1px -2px 0;
  z-index:-1;
  background:linear-gradient(90deg,#0b64df 0%,#2f8eea 48%,#b9e6ff 100%);
  border-radius:9px 3px 8px 5px;
  transform:skewX(-6deg) rotate(-1.2deg);
}

.sw-production .sw-large-capacity-label b::after,
.sw-production .sw-large-price-title b::after {
  content:"";
  position:absolute;
  right:-1px;
  bottom:1px;
  z-index:-1;
  width:20%;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(47,142,234,.55),rgba(185,230,255,0));
  transform:rotate(-3deg);
}

.sw-production .sw-hero-kicker {
  z-index:0;
  padding:3px 7px 4px;
  color:#fff;
  text-shadow:0 1px 2px rgba(4,43,102,.42);
}

.sw-production .sw-hero-kicker::before {
  content:"";
  position:absolute;
  inset:1px -2px 0;
  z-index:-1;
  border-radius:9px 3px 8px 5px;
  background:linear-gradient(90deg,#0b64df 0%,#2f8eea 48%,#b9e6ff 100%);
  transform:skewX(-6deg) rotate(-1.2deg);
}

.sw-production .sw-hero-kicker::after {
  right:-4px;
  bottom:1px;
  left:auto;
  width:20%;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(47,142,234,.55),rgba(185,230,255,0));
  transform:rotate(-3deg);
}

.sw-production .sw-method strong {
  font-size:18px;
}

.sw-production .sw-method span {
  font-size:16px;
  line-height:1.7;
}

.sw-production .sw-capacity-compare {
  margin-top:14px;
  padding:17px 18px 18px;
  border:1px solid rgba(11,94,232,.28);
  border-radius:16px;
  background:linear-gradient(135deg,#f8fcff 0%,#e9f5ff 100%);
  box-shadow:0 10px 24px rgba(7,84,206,.08);
}

.sw-production .sw-capacity-compare p {
  margin-bottom:9px;
  font-size:17px;
}

.sw-production .sw-capacity-compare > div {
  grid-template-columns:54px minmax(48px,.75fr) minmax(58px,1fr) auto;
  gap:8px;
  padding:7px 0;
  font-size:15px;
}

.sw-production .sw-capacity-compare .sw-capacity-compare__head {
  font-size:12px;
}

.sw-production .sw-capacity-compare strong {
  font-size:20px;
}

.sw-production .sw-capacity-compare em {
  padding:5px 9px;
  font-size:13px;
}

@media (max-width:767px) {
  .sw-production .sw-product-tag {
    font-size:20px;
  }

  .sw-production .sw-method strong {
    font-size:18px;
  }

  .sw-production .sw-method span {
    font-size:16px;
  }

  .sw-production .sw-capacity-compare > div {
    grid-template-columns:48px minmax(42px,.7fr) minmax(55px,1fr) auto;
    gap:6px;
    font-size:14px;
  }
}

/* Price: numeric value leads, labels and units support it. */
.sw-production .sw-price-label {
  font-size:16px;
}

.sw-production .sw-price-num,
.sw-production .sw-price-num--option {
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:4px;
  color:#0754ce;
  font-size:16px;
  line-height:1;
}

.sw-production .sw-price-num > span {
  font-size:18px;
  font-weight:900;
}

.sw-production .sw-price-num > strong {
  font-size:clamp(58px,6.5vw,82px);
  font-weight:900;
  letter-spacing:-.04em;
}

.sw-production .sw-price-num--option > strong {
  font-size:clamp(50px,5.5vw,70px);
}

.sw-production .sw-price-num > b {
  font-size:22px;
  font-weight:900;
}

.sw-production .sw-price-num > small {
  margin-left:4px;
  font-size:13px;
}

.sw-production .sw-price-panel--option > h3 {
  font-size:clamp(28px,3.2vw,40px);
}

.sw-production .sw-support-compare strong {
  font-size:22px;
}

.sw-production .sw-price-installation-fees {
  margin-top:18px;
}

.sw-production .sw-price-installation-fees > h3 {
  margin-bottom:2px;
}

@media (max-width:767px) {
  .sw-production .sw-price-label {
    font-size:16px;
  }

  .sw-production .sw-price-num > strong {
    font-size:clamp(54px,16vw,72px);
  }

  .sw-production .sw-price-num--option > strong {
    font-size:clamp(48px,14vw,64px);
  }

  .sw-production .sw-support-compare strong {
    font-size:22px;
  }
}

/* Scene cards also use the established product-image lightbox. */
.sw-production .sw-scene-card img {
  cursor:zoom-in;
}

.sw-production .sw-scene-card figcaption {
  border:1px solid rgba(255,255,255,.58);
  background:rgba(5,31,69,.78);
  color:#fff;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}

.sw-production .sw-scene-card img:focus-visible {
  outline:3px solid #fff;
  outline-offset:-7px;
}

/* FAQ readability. */
.sw-production .sw-faq summary {
  font-size:20px;
}

.sw-production .sw-faq p {
  font-size:16px;
}

/* Contact and application page phone route. */
.sw-production .sw-form-phone-cta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:8px 14px;
  margin:16px auto 22px;
  color:#1d1d1d;
  font-size:16px;
  font-weight:700;
}

.sw-production .sw-form-phone-cta a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:7px 17px;
  border:1px solid rgba(7,84,206,.35);
  border-radius:999px;
  background:#fff;
  color:#0754ce;
  font-size:22px;
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:0 7px 18px rgba(7,84,206,.08);
}

@media (max-width:767px) {
  .sw-production .sw-form-phone-cta {
    flex-direction:column;
    margin-block:14px 20px;
    font-size:15px;
  }

  .sw-production .sw-form-phone-cta a {
    font-size:21px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-hero__mobile-mascot,
  .sw-production .sw-problem-doctor,
  .sw-production .sw-filter-card__visual svg {
    animation:none !important;
  }
}

/* =========================================================
   2026-10-28 shared header: compact social/phone group and
   trial CTA retained down to 600px.
   ========================================================= */
.sw-production .sw-instagram-link {
  position:relative;
}

.sw-production .sw-instagram-link svg {
  display:none;
}

.sw-production .sw-instagram-link::before {
  content:"";
  display:block;
  width:22px;
  height:22px;
  flex:0 0 22px;
  background:linear-gradient(145deg,#7c3aed 4%,#c026d3 35%,#f43f5e 66%,#f59e0b 96%);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4.25'/%3E%3Ccircle cx='17.4' cy='6.7' r='1' fill='black' stroke='none'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4.25'/%3E%3Ccircle cx='17.4' cy='6.7' r='1' fill='black' stroke='none'/%3E%3C/svg%3E") center/contain no-repeat;
}

.sw-production .sw-header__desktop-icon-group,
.sw-production .sw-header__icon-group {
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  gap:3px;
}

.sw-production .sw-header__desktop-icon-group {
  min-height:40px;
}

.sw-production .sw-header__desktop-icon-group .sw-header-instagram,
.sw-production .sw-header__icon-group .sw-mobile-instagram {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  flex:0 0 40px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  box-shadow:none;
}

.sw-production .sw-header__desktop-icon-group .sw-header-phone,
.sw-production .sw-header__icon-group .sw-mobile-phone {
  min-height:40px;
  margin:0;
}

.sw-production .sw-mobile-instagram:hover,
.sw-production .sw-mobile-instagram:focus-visible,
.sw-production .sw-header-instagram:hover,
.sw-production .sw-header-instagram:focus-visible {
  border:0;
  background:rgba(239,246,255,.78);
  outline-offset:2px;
}

.sw-production .sw-mobile-menu nav a.sw-instagram-link--menu svg,
.sw-production .sw-site-footer__socials .sw-instagram-link svg {
  display:none;
}

.sw-production .sw-mobile-menu nav a.sw-instagram-link--menu::before,
.sw-production .sw-site-footer__socials .sw-instagram-link::before {
  width:21px;
  height:21px;
  flex-basis:21px;
}

.sw-production .sw-tablet-trial-link {
  display:none;
  min-height:40px;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:7px 14px;
  border:1px solid var(--sw-blue);
  border-radius:8px;
  background:linear-gradient(135deg,var(--sw-blue-2),#0747b8);
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1.25;
  white-space:nowrap;
  box-shadow:0 6px 15px rgba(11,94,232,.16);
}

@media (min-width:1201px) {
  .sw-production .sw-global-nav {
    column-gap:24px;
  }

  .sw-production .sw-header__desktop-icon-group {
    margin-left:-8px;
  }
}

@media (min-width:600px) and (max-width:1200px) {
  .sw-production .sw-tablet-trial-link {
    display:inline-flex;
  }
}

@media (min-width:600px) and (max-width:720px) {
  .sw-production .sw-header__inner {
    gap:8px;
  }

  .sw-production .sw-logo img {
    max-width:154px;
    max-height:36px;
  }

  .sw-production .sw-header__mobile-actions {
    gap:4px;
  }

  .sw-production .sw-tablet-trial-link {
    padding-inline:10px;
  }
}

@media (max-width:599px) {
  .sw-production .sw-tablet-trial-link {
    display:none;
  }
}

/* =========================================================
   2026-11-01 tablet/mobile problem cards
   Restore the compact problem/result split-card composition.
   ========================================================= */
.sw-production #problems .sw-problem-integrated-card__description {
  display:none;
}

.sw-production #problems .sw-problem-result-break {
  display:none;
}

@media (max-width:1024px) {
  .sw-production #problems .sw-problem-card-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    width:min(100%,760px);
    margin:36px auto 0;
    padding:0;
    overflow:visible;
  }

  .sw-production #problems .sw-problem-integrated-card,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4),
  .sw-production #problems .sw-problem-integrated-card:nth-child(5) {
    display:grid;
    grid-template-columns:minmax(0,1fr) clamp(132px,25vw,174px);
    grid-column:auto;
    width:100%;
    min-width:0;
    min-height:126px;
    justify-self:stretch;
    overflow:hidden;
    border-radius:18px;
  }

  .sw-production #problems .sw-problem-integrated-card__before {
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:14px;
    align-content:center;
    min-height:126px;
    padding:17px 18px;
    text-align:left;
  }

  .sw-production #problems .sw-problem-integrated-card__before::after {
    display:none;
  }

  .sw-production #problems .sw-problem-integrated-card__icon {
    grid-row:1 / 3;
    align-self:center;
    width:46px;
    height:46px;
    margin:0;
  }

  .sw-production #problems .sw-problem-integrated-card__icon svg {
    width:24px;
    height:24px;
  }

  .sw-production #problems .sw-problem-integrated-card__before h3 {
    align-self:end;
    margin:0;
    font-size:17px;
    line-height:1.45;
    letter-spacing:-.035em;
    white-space:nowrap;
  }

  .sw-production #problems .sw-problem-integrated-card__description {
    display:block;
    align-self:start;
    margin:4px 0 0;
    color:#5b687a;
    font-size:13px;
    line-height:1.55;
  }

  .sw-production #problems .sw-problem-result-break {
    display:block;
  }

  .sw-production #problems .sw-problem-integrated-card__after {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:126px;
    padding:14px 10px;
    text-align:center;
  }

  .sw-production #problems .sw-problem-integrated-card__after::before {
    content:"";
    position:absolute;
    top:50%;
    left:-1px;
    width:18px;
    height:28px;
    background:#fff;
    clip-path:polygon(0 0,100% 50%,0 100%);
    transform:translateY(-50%);
  }

  .sw-production #problems .sw-problem-integrated-card__after span {
    display:none;
  }

  .sw-production #problems .sw-problem-integrated-card__after strong {
    margin:0;
    font-size:clamp(23px,3.2vw,28px);
    line-height:1.2;
  }

  .sw-production #problems .sw-problem-integrated-card:nth-child(4) .sw-problem-integrated-card__after strong {
    max-width:7em;
    font-size:clamp(17px,2.45vw,22px);
    line-height:1.35;
  }

  .sw-production #problems .sw-problem-resolution {
    display:grid !important;
    grid-template-columns:92px minmax(0,1fr);
    gap:12px !important;
    width:min(100%,520px);
    margin:24px auto;
    align-items:center;
  }

  .sw-production #problems .sw-problem-resolution .sw-problem-doctor {
    width:92px !important;
  }

  .sw-production #problems .sw-problem-resolution p {
    min-width:0;
    align-items:flex-start;
    text-align:left;
  }

  .sw-production #problems .sw-problem-resolution + .sw-center {
    margin-top:0;
  }

  .sw-production #problems > .sw-container > .sw-problem-resolution + .sw-center:last-child {
    margin-top:0 !important;
  }
}

@media (max-width:599px) {
  .sw-production #problems .sw-problem-card-grid {
    gap:12px;
    width:100%;
    margin-top:30px;
  }

  .sw-production #problems .sw-problem-integrated-card,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4),
  .sw-production #problems .sw-problem-integrated-card:nth-child(5) {
    grid-template-columns:minmax(0,1fr) 104px !important;
    min-height:112px;
  }

  .sw-production #problems .sw-problem-integrated-card__before {
    grid-template-columns:38px minmax(0,1fr) !important;
    column-gap:8px !important;
    min-height:112px;
    padding:14px 10px !important;
  }

  .sw-production #problems .sw-problem-integrated-card__icon {
    width:38px !important;
    height:38px !important;
  }

  .sw-production #problems .sw-problem-integrated-card__before h3 {
    font-size:15px !important;
  }

  .sw-production #problems .sw-problem-integrated-card__description {
    margin-top:3px;
    font-size:11.5px !important;
    line-height:1.5;
  }

  .sw-production #problems .sw-problem-integrated-card__after {
    min-height:112px;
    padding:12px 6px;
  }

  .sw-production #problems .sw-problem-integrated-card__after strong {
    font-size:23px;
  }

  .sw-production #problems .sw-problem-integrated-card:nth-child(4) .sw-problem-integrated-card__after strong {
    font-size:16px;
  }

  .sw-production #problems .sw-problem-resolution {
    grid-template-columns:86px minmax(0,1fr);
    gap:10px !important;
    width:min(100%,480px);
    margin:22px auto;
  }

  .sw-production #problems .sw-problem-resolution .sw-problem-doctor {
    width:86px !important;
  }

  .sw-production #problems .sw-problem-resolution strong {
    font-size:clamp(19px,5.1vw,23px) !important;
  }
}

@media (max-width:420px) {
  .sw-production #problems .sw-problem-resolution {
    grid-template-columns:78px minmax(0,1fr);
    gap:8px !important;
  }

  .sw-production #problems .sw-problem-resolution .sw-problem-doctor {
    width:78px !important;
  }

  .sw-production #problems .sw-problem-resolution strong {
    font-size:clamp(17px,4.9vw,20px) !important;
  }
}

@media (max-width:390px) {
  .sw-production .sw-header__inner {
    gap:6px;
  }

  .sw-production .sw-logo img {
    max-width:160px;
  }

  .sw-production .sw-header__mobile-actions {
    gap:2px;
  }

  .sw-production .sw-header__icon-group {
    gap:0;
  }
}

@media (max-width:360px) {
  .sw-production .sw-logo img {
    max-width:146px;
  }

  .sw-production .sw-header__desktop-icon-group .sw-header-instagram,
  .sw-production .sw-header__icon-group .sw-mobile-instagram,
  .sw-production .sw-mobile-phone,
  .sw-production .sw-mobile-menu summary {
    width:38px;
    height:38px;
  }
}

/* =========================================================
   2026-10-28 approved navigation, FV highlight and
   integrated problem cards.
   ========================================================= */
/* Header social/phone controls share the same circular frame and scale. */
.sw-production .sw-header__desktop-icon-group .sw-header-instagram,
.sw-production .sw-header__icon-group .sw-mobile-instagram {
  width:40px;
  height:40px;
  flex-basis:40px;
  border:1.5px solid rgba(7,84,206,.3);
  border-radius:50%;
  background:#fff;
  box-shadow:0 4px 12px rgba(7,84,206,.08);
}

.sw-production .sw-header__desktop-icon-group .sw-header-instagram::before,
.sw-production .sw-header__icon-group .sw-mobile-instagram::before {
  width:22px;
  height:22px;
  flex-basis:22px;
}

.sw-production .sw-header__desktop-icon-group .sw-header-phone svg {
  width:40px;
  height:40px;
  flex:0 0 40px;
  padding:9px;
  border:1.5px solid rgba(7,84,206,.3);
  background:#fff;
  stroke-width:1.8;
  box-shadow:0 4px 12px rgba(7,84,206,.08);
}

.sw-production .sw-header__icon-group .sw-mobile-phone {
  width:40px;
  height:40px;
  min-height:40px;
  flex:0 0 40px;
  border-width:1.5px;
  background:#fff;
  box-shadow:0 4px 12px rgba(7,84,206,.08);
}

.sw-production .sw-header__icon-group .sw-mobile-phone svg {
  width:21px;
  height:21px;
  stroke-width:1.8;
}

.sw-production .sw-mobile-instagram:hover,
.sw-production .sw-mobile-instagram:focus-visible,
.sw-production .sw-header-instagram:hover,
.sw-production .sw-header-instagram:focus-visible {
  border:1.5px solid rgba(7,84,206,.48);
  background:#fff;
}

/* FV kicker: readable blue base text plus a one-shot gradient sweep. */
.sw-production .sw-hero-kicker {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin-bottom:16px;
  padding:0;
  border-radius:999px;
  color:#0754ce;
  filter:none;
  animation:sw-hero-kicker-base 1s cubic-bezier(.22,.7,.2,1) .18s forwards;
}

.sw-production .sw-hero-kicker::before,
.sw-production .sw-hero-kicker::after {
  position:absolute;
  inset:0;
  border-radius:inherit;
  clip-path:inset(0 100% 0 0 round 999px);
  animation:sw-hero-highlight-sweep 1s cubic-bezier(.22,.7,.2,1) .18s forwards;
}

.sw-production .sw-hero-kicker::before {
  content:"";
  z-index:-1;
  background:linear-gradient(105deg,#0b64df 0%,#1689ee 58%,#5fbce9 100%);
}

.sw-production .sw-hero-kicker::after {
  content:attr(data-text);
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:7px 17px 8px;
  color:#fff;
  font:inherit;
  letter-spacing:inherit;
  white-space:nowrap;
  box-sizing:border-box;
}

@keyframes sw-hero-highlight-sweep {
  to { clip-path:inset(0 0 0 0 round 999px); }
}

@keyframes sw-hero-kicker-base {
  0%,45% { color:#0754ce; }
  100% { color:transparent; }
}

.sw-production .sw-hero-title__accent {
  display:inline-block;
  margin-inline:.05em;
  padding:.01em .18em .05em;
  border-radius:.18em;
  background:#eb4d4b;
  color:#fff;
  line-height:1.08;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}

.sw-production .sw-hero-title__accent .sw-type-char {
  color:#fff;
}

@keyframes sw-summer-float {
  0%,100% { transform:translate3d(0,0,0) rotate(-3deg); }
  50% { transform:translate3d(0,-8px,0) rotate(-1deg); }
}

@media (max-width:768px) {
  .sw-production .sw-hero__mobile-mascot {
    top:-8px;
    right:-12px;
    z-index:1;
    width:clamp(158px,35vw,245px);
    max-width:42%;
    animation:sw-summer-float 6.4s ease-in-out infinite;
    transform-origin:50% 70%;
  }

  .sw-production .sw-audience-pill,
  .sw-production .sw-hero-kicker,
  .sw-production .sw-hero-title,
  .sw-production .sw-hero-subcopy,
  .sw-production .sw-temp-strip,
  .sw-production .sw-hero-offer,
  .sw-production .sw-hero-actions {
    position:relative;
    z-index:2;
  }
}

@media (max-width:420px) {
  .sw-production .sw-hero__mobile-mascot {
    top:4px;
    right:-8px;
    width:175px;
    max-width:49%;
    opacity:.96;
  }
}

/* Problem section: five self-contained before/after cards. */
.sw-production .sw-problem-card-grid {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:24px;
  margin-top:52px;
}

.sw-production .sw-problem-integrated-card {
  grid-column:span 2;
  min-width:0;
  overflow:hidden;
  border:1px solid #d9e6f4;
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 36px rgba(7,84,206,.09);
}

.sw-production .sw-problem-integrated-card:nth-child(4) {
  grid-column:2 / span 2;
}

.sw-production .sw-problem-integrated-card:nth-child(5) {
  grid-column:4 / span 2;
}

.sw-production .sw-problem-integrated-card__before {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:190px;
  padding:28px 18px 30px;
  text-align:center;
}

.sw-production .sw-problem-integrated-card__before::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:-10px;
  z-index:2;
  width:18px;
  height:18px;
  transform:translateX(-50%) rotate(45deg);
  border-right:4px solid #0b64df;
  border-bottom:4px solid #0b64df;
  background:#fff;
}

.sw-production .sw-problem-integrated-card__icon {
  display:grid;
  place-items:center;
  width:66px;
  height:66px;
  margin-bottom:18px;
  border-radius:50%;
  background:#f2f6fb;
  color:#8496af;
}

.sw-production .sw-problem-integrated-card__icon svg {
  width:34px;
  height:34px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.sw-production .sw-problem-integrated-card__before h3 {
  margin:0;
  color:var(--sw-navy);
  font-size:clamp(17px,1.5vw,21px);
  font-weight:900;
  line-height:1.45;
}

.sw-production .sw-problem-integrated-card__after {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:110px;
  padding:24px 14px 20px;
  background:linear-gradient(145deg,#1979f4 0%,#0752c7 100%);
  color:#fff;
  text-align:center;
}

.sw-production .sw-problem-integrated-card__after span {
  font-size:15px;
  font-weight:800;
  line-height:1.4;
}

.sw-production .sw-problem-integrated-card__after strong {
  margin-top:3px;
  font-size:clamp(25px,2.3vw,34px);
  font-weight:900;
  line-height:1.25;
  letter-spacing:.03em;
}

.sw-production .sw-problem-integrated-card:nth-child(4) .sw-problem-integrated-card__after strong {
  font-size:clamp(20px,1.8vw,27px);
}

.sw-production .sw-problem-resolution {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin:42px auto 28px;
  color:var(--sw-navy);
  text-align:left;
}

.sw-production .sw-problem-resolution .sw-problem-doctor {
  width:112px;
}

.sw-production .sw-problem-resolution p {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:0;
}

.sw-production .sw-problem-resolution span {
  align-self:flex-start;
  padding:5px 14px;
  border-radius:999px;
  background:#0b64df;
  color:#fff;
  font-size:14px;
  font-weight:900;
}

.sw-production .sw-problem-resolution strong {
  font-size:clamp(25px,3vw,38px);
  font-weight:900;
  line-height:1.35;
}

@media (max-width:1024px) {
  .sw-production .sw-problem-card-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
  }

  .sw-production .sw-problem-integrated-card,
  .sw-production .sw-problem-integrated-card:nth-child(4) {
    grid-column:auto;
  }

  .sw-production .sw-problem-integrated-card:nth-child(5) {
    grid-column:1 / -1;
    width:calc(50% - 10px);
    justify-self:center;
  }
}

@media (max-width:599px) {
  .sw-production .sw-problem-card-grid {
    grid-template-columns:1fr;
    gap:16px;
    margin-top:34px;
  }

  .sw-production .sw-problem-integrated-card,
  .sw-production .sw-problem-integrated-card:nth-child(4),
  .sw-production .sw-problem-integrated-card:nth-child(5) {
    grid-column:auto;
    width:100%;
  }

  .sw-production .sw-problem-integrated-card__before {
    min-height:138px;
    padding:22px 18px 24px;
  }

  .sw-production .sw-problem-integrated-card__icon {
    width:54px;
    height:54px;
    margin-bottom:12px;
  }

  .sw-production .sw-problem-integrated-card__icon svg {
    width:29px;
    height:29px;
  }

  .sw-production .sw-problem-integrated-card__after {
    min-height:90px;
    padding:21px 14px 17px;
  }

  .sw-production .sw-problem-integrated-card__after strong,
  .sw-production .sw-problem-integrated-card:nth-child(4) .sw-problem-integrated-card__after strong {
    font-size:25px;
  }

  .sw-production .sw-problem-resolution {
    gap:12px;
    margin:32px auto 22px;
  }

  .sw-production .sw-problem-resolution .sw-problem-doctor {
    width:82px;
  }

  .sw-production .sw-problem-resolution span {
    font-size:12px;
  }

  .sw-production .sw-problem-resolution strong {
    font-size:clamp(21px,6.4vw,27px);
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-hero-kicker {
    color:transparent;
    animation:none !important;
  }

  .sw-production .sw-hero-kicker::before,
  .sw-production .sw-hero-kicker::after {
    clip-path:inset(0 0 0 0 round 999px);
    animation:none !important;
  }

  .sw-production .sw-hero__mobile-mascot,
  .sw-production .sw-problem-doctor {
    animation:none !important;
  }
}

/* =========================================================
   2026-10-28 FV label / CTA / anchor navigation refinements
   ========================================================= */
.sw-production .sw-hero-kicker,
.sw-production .sw-hero-kicker::before,
.sw-production .sw-hero-kicker::after {
  border-radius:5px;
}

.sw-production .sw-fv-group .sw-hero-cta {
  font-size:16px;
}

@media (min-width:769px) {
  .sw-production .sw-fv-group .sw-anchor-nav {
    padding-top:24px;
    padding-bottom:32px;
  }
}

/* =========================================================
   2026-10-29 filter bottle artwork alignment
   ========================================================= */
.sw-production .sw-filter-bottle {
  transform:rotate(2.5deg);
  transform-box:fill-box;
  transform-origin:center;
}

.sw-production .sw-filter-illustration__line {
  opacity:.62;
}

.sw-production .sw-filter-illustration__band-circle {
  fill:none;
  stroke:#fff;
  stroke-width:1.8;
}

.sw-production .sw-filter-illustration__band-number {
  fill:#fff;
  font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:15px;
  font-weight:700;
  line-height:1;
  text-anchor:middle;
  dominant-baseline:middle;
}

/* =========================================================
   2026-10-29 filter section visual and motion refinements
   ========================================================= */
.sw-production .sw-filter-card {
  --filter-highlight:rgba(11,94,232,.22);
}

.sw-production .sw-filter-card--first {
  --filter-highlight:rgba(215,91,98,.24);
}

.sw-production .sw-filter-card--second {
  --filter-highlight:rgba(120,136,154,.28);
}

.sw-production .sw-filter-bottle {
  transform:rotate(4deg);
}

.sw-production .sw-filter-card__visual svg {
  animation:none;
}

.sw-production .sw-filter-illustration__body {
  fill:#fff;
  stroke:none;
}

.sw-production .sw-filter-illustration__outline {
  fill:none;
  stroke:var(--filter-color);
  stroke-width:1.8;
  stroke-linejoin:round;
}

.sw-production .sw-filter-illustration__band-circle {
  fill:none;
  stroke:#fff;
  stroke-width:1.8;
}

.sw-production .sw-filter-illustration__band-number {
  font-size:15px;
  dominant-baseline:middle;
  transform:translateY(1.25px);
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
  width:112px;
  min-width:112px;
  min-height:112px;
  aspect-ratio:1;
  padding:14px 10px;
  border-radius:50%;
  white-space:nowrap;
  animation:sw-filter-cycle-float 7.2s ease-in-out infinite;
}

.sw-production .sw-filter-card:nth-child(2) .sw-filter-card__cycle {
  animation-delay:.55s;
}

.sw-production .sw-filter-card:nth-child(3) .sw-filter-card__cycle {
  animation-delay:1.1s;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle span,
.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle strong {
  white-space:nowrap;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle strong {
  font-size:17px;
}

@keyframes sw-filter-cycle-float {
  0%,100% { transform:translate3d(0,0,0); }
  50% { transform:translate3d(0,-6px,0); }
}

.sw-production .sw-filter-card h3 {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  margin:18px 0;
}

.sw-production .sw-filter-card h3 span {
  display:inline;
  padding:0 .12em .08em;
  background:linear-gradient(transparent 68%,var(--filter-highlight) 68%) no-repeat;
  background-size:0 100%;
}

.sw-production .sw-filter-card.is-visible h3 span {
  animation:sw-filter-title-highlight 1s ease .35s forwards;
}

@keyframes sw-filter-title-highlight {
  to { background-size:100% 100%; }
}

.sw-production .sw-filter-delivery {
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(118px,15vw,170px);
  align-items:center;
  gap:22px;
  min-height:184px;
  padding:24px 34px;
  overflow:hidden;
  background:linear-gradient(135deg,#fff 0%,#f4f9ff 100%);
  text-align:left;
}

.sw-production .sw-filter-delivery__content {
  min-width:0;
}

.sw-production .sw-filter-delivery strong {
  color:var(--sw-navy);
  font-size:clamp(25px,2.25vw,32px);
  font-weight:950;
  line-height:1.35;
  letter-spacing:.02em;
}

.sw-production .sw-filter-delivery p,
.sw-production .sw-filter-delivery small {
  text-align:left;
}

.sw-production .sw-filter-delivery__character {
  display:block;
  width:100%;
  max-width:170px;
  margin:auto;
  opacity:0;
  transform:scaleX(-1) scale(.7);
  transform-origin:center;
}

.sw-production .sw-filter-delivery.is-visible strong {
  opacity:0;
  transform:translateY(30px);
  animation:sw-filter-delivery-fade-up .8s ease .18s forwards;
}

.sw-production .sw-filter-delivery.is-visible .sw-filter-delivery__character {
  animation:sw-filter-character-elastic .8s ease .82s forwards;
}

@keyframes sw-filter-delivery-fade-up {
  to {
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes sw-filter-character-elastic {
  60% {
    opacity:1;
    transform:scaleX(-1) scale(1.08);
  }
  80% {
    transform:scaleX(-1) scale(.97);
  }
  100% {
    opacity:1;
    transform:scaleX(-1) scale(1);
  }
}

@media (max-width:1024px) {
  .sw-production .sw-filter-card__visual-row {
    grid-template-columns:minmax(0,1fr) 104px;
  }

  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    width:104px;
    min-width:104px;
    min-height:104px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-filter-card__visual-row {
    grid-template-columns:minmax(0,1fr) 108px;
  }

  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    width:108px;
    min-width:108px;
    min-height:108px;
  }

  .sw-production .sw-filter-card h3 {
    min-height:54px;
    margin:16px 0;
  }

  .sw-production .sw-filter-delivery {
    grid-template-columns:minmax(0,1fr) 88px;
    gap:8px;
    padding:22px 16px;
  }

  .sw-production .sw-filter-delivery strong {
    font-size:clamp(21px,5.8vw,25px);
  }

  .sw-production .sw-filter-delivery__character {
    max-width:92px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle,
  .sw-production .sw-filter-card.is-visible h3 span,
  .sw-production .sw-filter-delivery.is-visible strong,
  .sw-production .sw-filter-delivery.is-visible .sw-filter-delivery__character {
    animation:none !important;
  }

  .sw-production .sw-filter-card h3 span {
    background-size:100% 100%;
  }

  .sw-production .sw-filter-delivery strong {
    opacity:1;
    transform:none;
  }

  .sw-production .sw-filter-delivery__character {
    opacity:1;
    transform:scaleX(-1);
  }
}

/* =========================================================
   2026-10-29 filter band center and delivery spacing
   ========================================================= */
.sw-production .sw-filter-illustration__band-number {
  transform:translateY(.5px);
}

.sw-production .sw-filter-delivery {
  gap:34px;
  padding-right:42px;
}

.sw-production .sw-filter-delivery__content,
.sw-production .sw-filter-delivery p,
.sw-production .sw-filter-delivery small {
  text-align:center;
}

.sw-production .sw-filter-delivery strong {
  color:var(--sw-blue);
}

.sw-production .sw-filter-delivery__character {
  justify-self:end;
  margin-right:8px;
}

@media (max-width:767px) {
  .sw-production .sw-filter-delivery {
    gap:12px;
    padding-right:18px;
  }

  .sw-production .sw-filter-delivery__character {
    margin-right:0;
  }
}

/* =========================================================
   2026-10-29 filter band optical center / delivery true center
   ========================================================= */
.sw-production .sw-filter-illustration__band-number {
  dominant-baseline:central;
  alignment-baseline:central;
  transform:none;
}

.sw-production .sw-filter-delivery {
  position:relative;
  display:block;
  min-height:184px;
  padding:28px 210px;
}

.sw-production .sw-filter-delivery__content,
.sw-production .sw-filter-delivery p,
.sw-production .sw-filter-delivery small {
  width:100%;
  text-align:center;
}

.sw-production .sw-filter-delivery strong {
  color:#0788ae;
}

.sw-production .sw-filter-delivery__character {
  position:absolute;
  top:50%;
  right:54px;
  width:clamp(118px,15vw,170px);
  margin:0;
  translate:0 -50%;
}

@media (max-width:1024px) {
  .sw-production .sw-filter-delivery {
    padding-right:170px;
    padding-left:170px;
  }

  .sw-production .sw-filter-delivery__character {
    right:38px;
    width:132px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-filter-delivery {
    min-height:0;
    padding:22px 16px 112px;
  }

  .sw-production .sw-filter-delivery__character {
    top:auto;
    right:22px;
    bottom:14px;
    width:88px;
    translate:none;
  }
}

/* =========================================================
   2026-10-29 filter section lower layout proposal
   ========================================================= */
.sw-production .sw-filter-grid {
  gap:22px;
  margin-top:54px;
}

.sw-production .sw-filter-card {
  min-height:520px;
  padding:22px;
}

.sw-production .sw-filter-card__visual-row {
  position:relative;
  display:block;
}

.sw-production .sw-filter-card__visual {
  height:224px;
}

.sw-production .sw-filter-card__visual svg {
  width:120px;
  height:180px;
  translate:-30px 0;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
  position:absolute;
  top:28px;
  right:18px;
  z-index:1;
  width:112px;
  min-width:112px;
  min-height:112px;
  margin:0;
}

.sw-production .sw-filter-card__step {
  display:block;
  margin:22px 0 2px;
  color:var(--filter-color);
  font-size:11px;
  font-weight:900;
  line-height:1.4;
  letter-spacing:.2em;
  text-align:center;
}

.sw-production .sw-filter-card h3 {
  min-height:34px;
  margin:2px 0 18px;
}

.sw-production .sw-filter-card__role {
  min-height:118px;
}

.sw-production .sw-filter-delivery {
  margin-top:26px;
  min-height:196px;
}

.sw-production .sw-filter-delivery strong {
  color:var(--sw-blue);
}

.sw-production .sw-filter-delivery strong span {
  display:inline;
  background:linear-gradient(transparent 68%,#ffe06a 68%);
}

@media (max-width:1024px) {
  .sw-production .sw-filter-grid {
    gap:14px;
  }

  .sw-production .sw-filter-card {
    min-height:520px;
    padding:16px;
  }

  .sw-production .sw-filter-card__visual {
    height:210px;
  }

  .sw-production .sw-filter-card__visual svg {
    width:112px;
    height:168px;
    translate:-25px 0;
  }

  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    top:24px;
    right:12px;
    width:98px;
    min-width:98px;
    min-height:98px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-filter-grid {
    gap:18px;
    margin-top:34px;
  }

  .sw-production .sw-filter-card {
    min-height:0;
    padding:18px;
  }

  .sw-production .sw-filter-card__visual {
    height:206px;
  }

  .sw-production .sw-filter-card__visual svg {
    width:112px;
    height:168px;
    translate:-28px 0;
  }

  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    top:24px;
    right:16px;
    width:100px;
    min-width:100px;
    min-height:100px;
  }

  .sw-production .sw-filter-card__step {
    margin-top:18px;
  }

  .sw-production .sw-filter-card h3 {
    min-height:0;
    margin:2px 0 16px;
  }

  .sw-production .sw-filter-card__role {
    min-height:0;
  }

  .sw-production .sw-filter-delivery {
    margin-top:20px;
  }
}

/* =========================================================
   2026-10-29 filter card title / spacing refinements
   ========================================================= */
.sw-production .sw-filter-card__visual svg {
  translate:0 0;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle strong {
  margin-top:3px;
  font-size:21px;
  line-height:1.15;
}

.sw-production .sw-filter-card h3 {
  gap:9px;
  margin:22px 0 18px;
}

.sw-production .sw-filter-card__title-number {
  display:grid;
  place-items:center;
  flex:0 0 28px;
  width:28px;
  height:28px;
  border:2px solid var(--filter-color);
  border-radius:50%;
  color:var(--filter-color);
  font-size:15px;
  font-weight:900;
  line-height:1;
}

.sw-production .sw-filter-card__role {
  display:flex;
  align-items:center;
}

.sw-production .sw-filter-card__role p {
  width:100%;
}

.sw-production .sw-filter-delivery {
  min-height:170px;
}

@media (max-width:1024px) {
  .sw-production .sw-filter-card__visual svg {
    translate:0 0;
  }

  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle strong {
    margin-top:2px;
    font-size:19px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-filter-card__visual svg {
    translate:0 0;
  }

  .sw-production .sw-filter-card h3 {
    margin:18px 0 16px;
  }

  .sw-production .sw-filter-card__title-number {
    flex-basis:27px;
    width:27px;
    height:27px;
    font-size:14px;
  }

  .sw-production .sw-filter-delivery {
    min-height:0;
  }
}

/* =========================================================
   2026-10-29 replacement cycle compact alignment
   ========================================================= */
.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
  top:18px;
  right:18px;
  gap:0;
  width:98px;
  min-width:98px;
  min-height:98px;
  padding:12px 8px;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle span {
  line-height:1.1;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle strong {
  margin-top:0;
}

@media (max-width:1024px) {
  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    top:14px;
    right:14px;
    width:90px;
    min-width:90px;
    min-height:90px;
    padding:10px 7px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    top:16px;
    right:16px;
    width:92px;
    min-width:92px;
    min-height:92px;
  }
}

/* =========================================================
   2026-10-29 section anchor point typography
   ========================================================= */
.sw-production .sw-section .sw-eyebrow {
  font-size:18px;
}

/* =========================================================
   2026-10-29 filter delivery centered group
   ========================================================= */
.sw-production .sw-filter-delivery {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  min-height:0;
  padding:18px 0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}

.sw-production .sw-filter-delivery__content,
.sw-production .sw-filter-delivery p,
.sw-production .sw-filter-delivery small {
  width:auto;
}

.sw-production .sw-filter-delivery__content {
  flex:0 1 auto;
}

.sw-production .sw-filter-delivery__character {
  position:static;
  flex:0 0 142px;
  width:142px;
  max-width:142px;
  margin:0;
  translate:none;
}

@media (max-width:767px) {
  .sw-production .sw-filter-delivery {
    gap:12px;
    padding:16px 4px;
  }

  .sw-production .sw-filter-delivery__content {
    flex:0 1 250px;
  }

  .sw-production .sw-filter-delivery__character {
    flex-basis:82px;
    width:82px;
    max-width:82px;
  }
}

/* =========================================================
   2026-10-29 filter copy fade / role spacing balance
   ========================================================= */
.sw-production .sw-filter-card__role {
  flex:0 0 auto;
  min-height:116px;
  padding:16px;
  box-sizing:border-box;
}

.sw-production .sw-filter-delivery p {
  opacity:0;
  transform:translateY(14px);
}

.sw-production .sw-filter-delivery.is-visible p {
  animation:sw-filter-delivery-fade-up .7s ease .5s forwards;
}

@media (max-width:767px) {
  .sw-production .sw-filter-card__role {
    min-height:0;
    padding:16px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-filter-delivery p,
  .sw-production .sw-filter-delivery.is-visible p {
    opacity:1;
    transform:none;
    animation:none !important;
  }
}

/* =========================================================
   2026-10-29 filter visual balance / delivery CTA
   ========================================================= */
.sw-production .sw-filter-card__visual svg {
  translate:0 10px;
}

.sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
  top:26px;
}

.sw-production .sw-filter-delivery__cta {
  min-width:320px;
  min-height:58px;
  margin-top:16px;
  opacity:0;
  transform:translateY(14px);
}

.sw-production .sw-filter-delivery.is-visible .sw-filter-delivery__cta {
  animation:sw-filter-delivery-fade-up .7s ease .72s forwards;
}

.sw-production .sw-filter-delivery .sw-filter-delivery__cta strong {
  color:#fff;
  font-size:16px;
  line-height:1.35;
}

.sw-production .sw-filter-delivery .sw-filter-delivery__cta small {
  color:#fff;
}

@media (max-width:1024px) {
  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    top:22px;
  }
}

@media (max-width:767px) {
  .sw-production .sw-filter-card__visual svg {
    translate:0 8px;
  }

  .sw-production .sw-filter-card__visual-row .sw-filter-card__cycle {
    top:22px;
  }

  .sw-production .sw-filter-delivery__cta {
    width:100%;
    min-width:0;
    margin-top:14px;
    padding:10px 48px 10px 12px;
    letter-spacing:.02em;
  }

  .sw-production .sw-filter-delivery .sw-filter-delivery__cta strong {
    font-size:14px;
    white-space:nowrap;
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-filter-delivery__cta,
  .sw-production .sw-filter-delivery.is-visible .sw-filter-delivery__cta {
    opacity:1;
    transform:none;
    animation:none !important;
  }
}

/* =========================================================
   2026-10-31 compact brush labels / FV alignment
   ========================================================= */
.sw-production .sw-hero-kicker {
  overflow:visible;
  padding:5px 8px 6px;
  border-radius:9px 3px 8px 5px;
  color:#0754ce;
  text-shadow:none;
}

@keyframes sw-hero-highlight-sweep-brush {
  to {
    clip-path:inset(0 0 0 0 round 9px 3px 8px 5px);
  }
}

.sw-production .sw-hero-kicker::before,
.sw-production .sw-hero-kicker::after {
  clip-path:inset(0 100% 0 0 round 9px 3px 8px 5px);
  animation-name:sw-hero-highlight-sweep-brush;
}

.sw-production .sw-hero-kicker::before {
  inset:0 -2px;
  border-radius:9px 3px 8px 5px;
  background:linear-gradient(90deg,#0b64df 0%,#2f8eea 48%,#b9e6ff 100%);
  box-shadow:4px 2px 0 -2px rgba(126,202,247,.42);
  transform:skewX(-6deg) rotate(-1.2deg);
}

.sw-production .sw-hero-kicker::after {
  inset:0;
  width:auto;
  height:auto;
  padding:5px 8px 6px;
  border-radius:9px 3px 8px 5px;
  background:none;
  transform:none;
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-hero-kicker::before,
  .sw-production .sw-hero-kicker::after {
    clip-path:inset(0 0 0 0 round 9px 3px 8px 5px);
  }
}

/* =========================================================
   2026-10-31 FV temperature / price information hierarchy
   ========================================================= */
.sw-production .sw-temp-strip strong {
  font-weight:600;
}

.sw-production #price .sw-price-panel--main {
  display:flex;
  flex-direction:column;
}

.sw-production #price .sw-price-num,
.sw-production #price .sw-price-num--option {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin:10px 0 14px;
}

.sw-production #price .sw-price-num > .sw-price-num__prefix {
  flex:0 0 auto;
  font-size:clamp(27px,3vw,36px);
  font-weight:900;
  line-height:1;
  letter-spacing:0;
}

.sw-production #price .sw-price-num__unit {
  display:grid;
  grid-template-columns:auto auto;
  align-items:end;
  align-self:center;
  gap:1px 3px;
  min-width:max-content;
  margin-top:8px;
  font-size:inherit;
  line-height:1;
  letter-spacing:0;
}

.sw-production #price .sw-price-num__unit > b {
  font-size:clamp(27px,3vw,36px);
  font-weight:900;
  line-height:1;
}

.sw-production #price .sw-price-num__unit > small {
  padding-bottom:2px;
  font-size:clamp(14px,1.45vw,17px);
  font-weight:800;
  line-height:1.15;
  white-space:nowrap;
}

.sw-production #price .sw-price-num__unit > .sw-tax-note {
  grid-column:1 / -1;
  justify-self:start;
  margin:3px 0 0 !important;
  color:#52657f;
  font-size:13px;
  font-style:normal;
  font-weight:800;
  line-height:1.25;
  letter-spacing:0;
  white-space:nowrap;
}

.sw-production .sw-price-reason {
  margin-top:16px;
  padding-top:15px;
  font-size:16px;
  font-weight:700;
  line-height:1.8;
}

.sw-production .sw-price-reason__label {
  display:flex;
  width:max-content;
  margin:0 0 8px;
  font-size:12px;
}

.sw-production .sw-price-panel--shared {
  display:grid;
  grid-template-columns:minmax(270px,.75fr) minmax(0,1.35fr);
  gap:32px;
  align-items:center;
  padding:30px 34px;
}

.sw-production .sw-price-option-summary {
  min-width:0;
  padding-right:30px;
  border-right:1px solid #d7e5f5;
  text-align:left;
}

.sw-production .sw-price-option-summary > h3 {
  margin:2px 0 10px;
  font-size:clamp(26px,2.8vw,36px);
  line-height:1.35;
}

.sw-production .sw-price-option-summary .sw-price-optional {
  display:flex;
  width:max-content;
  margin:8px 0 0;
}

.sw-production .sw-price-option-summary .sw-price-num {
  justify-content:flex-start !important;
  margin-bottom:0 !important;
}

.sw-production .sw-price-num--option > strong {
  font-size:clamp(54px,5.8vw,72px);
}

.sw-production .sw-price-panel--shared .sw-support-compare {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:0;
}

.sw-production .sw-price-panel--shared .sw-support-compare > div {
  display:flex;
  flex-direction:column;
  min-height:100%;
  padding:20px;
}

.sw-production .sw-price-panel--shared .sw-support-compare strong {
  font-size:18px;
  line-height:1.5;
}

.sw-production .sw-price-panel--shared .sw-support-compare p {
  font-size:14px;
  line-height:1.75;
}

.sw-production .sw-price-installation-fees {
  display:grid;
  grid-template-columns:minmax(155px,.62fr) repeat(2,minmax(220px,1fr));
  gap:0;
  align-items:center;
  margin-top:14px;
  padding:18px 22px;
  border:1px solid #d7e5f5;
  border-radius:16px;
  background:rgba(255,255,255,.88);
  box-shadow:0 4px 16px rgba(8,37,82,.05);
}

.sw-production .sw-price-installation-fees > h3 {
  margin:0;
  color:var(--sw-navy);
  font-size:20px;
  line-height:1.4;
}

.sw-production .sw-price-installation-fees > div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-width:0;
  padding:8px 22px;
  border:0;
  border-left:1px solid #d7e5f5;
  border-radius:0;
  background:transparent;
}

.sw-production .sw-price-installation-fees > div strong {
  font-size:14px;
}

.sw-production .sw-price-installation-fees > div span {
  font-size:20px;
}

.sw-production .sw-price-installation-fees > div small {
  margin-left:3px;
  font-size:11px;
}

@media (max-width:1024px) {
  .sw-production .sw-price-panel--shared {
    grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);
    gap:24px;
    padding:28px;
  }

  .sw-production .sw-price-option-summary {
    padding-right:24px;
  }

  .sw-production .sw-price-panel--shared .sw-support-compare {
    grid-template-columns:1fr;
  }

  .sw-production .sw-price-installation-fees {
    grid-template-columns:1fr 1fr;
  }

  .sw-production .sw-price-installation-fees > h3 {
    grid-column:1 / -1;
    margin-bottom:10px;
    text-align:center;
  }

  .sw-production .sw-price-installation-fees > div:first-of-type {
    border-left:0;
  }
}

@media (max-width:767px) {
  .sw-production #price .sw-price-num,
  .sw-production #price .sw-price-num--option {
    gap:4px;
  }

  .sw-production #price .sw-price-num > .sw-price-num__prefix,
  .sw-production #price .sw-price-num__unit > b {
    font-size:clamp(25px,8vw,32px);
  }

  .sw-production #price .sw-price-num__unit > small {
    font-size:clamp(12px,3.8vw,15px);
  }

  .sw-production #price .sw-price-num__unit > .sw-tax-note {
    font-size:11px;
  }

  .sw-production .sw-price-reason {
    font-size:14.5px;
  }

  .sw-production .sw-price-panel--shared {
    display:block;
    padding:24px 18px;
  }

  .sw-production .sw-price-option-summary {
    padding:0 0 22px;
    border-right:0;
    border-bottom:1px solid #d7e5f5;
    text-align:center;
  }

  .sw-production .sw-price-option-summary .sw-price-label,
  .sw-production .sw-price-option-summary .sw-price-optional {
    margin-right:auto;
    margin-left:auto;
  }

  .sw-production .sw-price-option-summary .sw-price-num {
    justify-content:center !important;
  }

  .sw-production .sw-price-panel--shared .sw-support-compare {
    margin-top:20px;
  }

  .sw-production .sw-price-installation-fees {
    grid-template-columns:1fr;
    padding:18px;
  }

  .sw-production .sw-price-installation-fees > h3 {
    grid-column:auto;
    margin-bottom:8px;
    font-size:19px;
    text-align:left;
  }

  .sw-production .sw-price-installation-fees > div {
    padding:12px 0;
    border-left:0;
    border-top:1px solid #d7e5f5;
  }
}

/* =========================================================
   2026-10-31 price reference A: PC/tablet + stacked SP
   ========================================================= */
.sw-production #price .sw-price-box--plans {
  align-items:stretch;
  gap:22px;
}

.sw-production #price .sw-price-panel--main {
  min-height:430px;
  padding:34px 38px 32px;
}

.sw-production #price .sw-price-panel--main > .sw-price-label {
  align-self:flex-start;
}

.sw-production #price .sw-price-panel--main > p:not(.sw-price-reason) {
  margin-bottom:26px;
  color:#1d1d1d;
  font-size:16px;
  line-height:1.75;
}

.sw-production #price .sw-price-panel--main .sw-price-reason,
.sw-production #price .sw-price-capacity {
  margin-top:auto;
  border:0;
  border-radius:14px;
}

.sw-production #price .sw-price-panel--main .sw-price-reason {
  padding:15px 18px 16px;
  background:#edf4ff;
}

.sw-production #price .sw-price-panel--large {
  border-color:#109abb;
}

.sw-production #price .sw-price-panel--large .sw-price-label {
  background:#109abb;
}

.sw-production #price .sw-price-panel--large .sw-price-num {
  color:#078eae;
}

.sw-production #price .sw-price-panel--large .sw-price-num__unit > .sw-tax-note {
  color:#52657f;
}

.sw-production #price .sw-price-capacity {
  display:grid;
  grid-template-columns:auto repeat(2,minmax(0,1fr));
  align-items:center;
  gap:12px 24px;
  padding:18px 20px;
  background:#eaf9fc;
  color:var(--sw-navy);
}

.sw-production #price .sw-price-capacity > strong {
  color:#078eae;
  font-size:13px;
  line-height:1.5;
}

.sw-production #price .sw-price-capacity > span {
  display:flex;
  align-items:baseline;
  gap:5px;
  min-width:0;
  color:var(--sw-navy);
  font-size:14px;
  font-weight:800;
  white-space:nowrap;
}

.sw-production #price .sw-price-capacity small {
  color:#6c7890;
  font-size:13px;
  font-weight:800;
}

.sw-production #price .sw-price-capacity i {
  color:#7b8da5;
  font-style:normal;
}

.sw-production #price .sw-price-capacity b {
  color:#078eae;
  font-size:18px;
  font-weight:900;
}

.sw-production #price .sw-price-panel--shared {
  grid-template-columns:minmax(285px,.72fr) minmax(0,1.5fr);
  padding:28px 34px;
  background:#fff;
}

.sw-production #price .sw-price-option-summary > h3 {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px 9px;
}

.sw-production #price .sw-price-option-summary .sw-price-optional {
  display:inline-flex;
  width:auto;
  min-height:0;
  margin:0;
  padding:0;
  border-radius:0;
  background:transparent;
  color:#64748b;
  font-size:11px;
}

.sw-production #price .sw-price-panel--shared .sw-support-compare > div:first-child {
  border-color:#85b9ff;
  background:#f0f6ff;
}

.sw-production #price .sw-price-panel--shared .sw-support-compare > div:first-child strong::before {
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  margin-right:8px;
  border-radius:50%;
  background:#0b64df;
  color:#fff;
  font-size:13px;
}

.sw-production #price .sw-price-installation-fees {
  margin-top:16px;
  background:#fff;
}

@media (min-width:768px) {
  .sw-production #price .sw-price-box--plans {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .sw-production #price .sw-price-panel--shared {
    grid-column:1 / -1;
  }

  .sw-production #price .sw-price-panel--shared .sw-support-compare {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .sw-production #price .sw-price-installation-fees {
    grid-template-columns:minmax(145px,.58fr) repeat(2,minmax(0,1fr));
  }

  .sw-production #price .sw-price-installation-fees > h3 {
    grid-column:auto;
    margin:0;
    text-align:left;
  }

  .sw-production #price .sw-price-installation-fees > div:first-of-type {
    border-left:1px solid #d7e5f5;
  }
}

@media (min-width:768px) and (max-width:1024px) {
  .sw-production #price .sw-price-content {
    width:94vw;
  }

  .sw-production #price .sw-price-box--plans {
    gap:14px;
  }

  .sw-production #price .sw-price-panel--main {
    min-height:410px;
    padding:26px 22px 24px;
  }

  .sw-production #price .sw-price-panel--main h3 {
    font-size:18px;
  }

  .sw-production #price .sw-price-num > strong {
    font-size:clamp(52px,7vw,66px);
  }

  .sw-production #price .sw-price-num > .sw-price-num__prefix,
  .sw-production #price .sw-price-num__unit > b {
    font-size:clamp(23px,3.2vw,29px);
  }

  .sw-production #price .sw-price-num__unit > small {
    font-size:12px;
  }

  .sw-production #price .sw-price-panel--main > p:not(.sw-price-reason) {
    font-size:14px;
  }

  .sw-production #price .sw-price-capacity {
    grid-template-columns:1fr 1fr;
    gap:8px 12px;
    padding:14px;
  }

  .sw-production #price .sw-price-capacity > strong {
    grid-column:1 / -1;
  }

  .sw-production #price .sw-price-panel--shared {
    grid-template-columns:minmax(210px,.65fr) minmax(0,1.35fr);
    gap:18px;
    padding:24px 22px;
  }

  .sw-production #price .sw-price-option-summary {
    padding-right:18px;
  }

  .sw-production #price .sw-price-panel--shared .sw-support-compare {
    gap:10px;
  }

  .sw-production #price .sw-price-panel--shared .sw-support-compare > div {
    padding:15px;
  }

  .sw-production #price .sw-price-installation-fees {
    grid-template-columns:130px repeat(2,minmax(0,1fr));
    padding:16px;
  }

  .sw-production #price .sw-price-installation-fees > div {
    padding-inline:14px;
  }
}

@media (max-width:767px) {
  .sw-production #price .sw-price-box--plans {
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
  }

  .sw-production #price .sw-price-panel--main {
    min-height:0;
    padding:24px 20px 22px;
  }

  .sw-production #price .sw-price-panel--main h3 {
    margin-bottom:10px;
    font-size:20px;
    line-height:1.55;
  }

  .sw-production #price .sw-price-panel--main > p:not(.sw-price-reason) {
    margin-bottom:22px;
    font-size:14.5px;
  }

  .sw-production #price .sw-price-panel--main .sw-price-reason,
  .sw-production #price .sw-price-capacity {
    margin-top:0;
  }

  .sw-production #price .sw-price-panel--main .sw-price-reason {
    padding:15px 16px;
  }

  .sw-production #price .sw-price-capacity {
    grid-template-columns:1fr 1fr;
    gap:9px 12px;
    padding:15px 16px;
  }

  .sw-production #price .sw-price-capacity > strong {
    grid-column:1 / -1;
  }

  .sw-production #price .sw-price-capacity > span {
    font-size:13px;
  }

  .sw-production #price .sw-price-panel--shared {
    padding:22px 18px;
    border:1px solid #d7e5f5;
    border-radius:18px;
  }

  .sw-production #price .sw-price-option-summary {
    padding-bottom:20px;
    text-align:left;
  }

  .sw-production #price .sw-price-option-summary .sw-price-label {
    margin-left:0;
  }

  .sw-production #price .sw-price-option-summary > h3 {
    justify-content:flex-start;
    font-size:27px;
  }

  .sw-production #price .sw-price-option-summary .sw-price-num {
    justify-content:flex-start !important;
  }

  .sw-production #price .sw-price-panel--shared .sw-support-compare > div {
    padding:18px;
  }

  .sw-production #price .sw-price-installation-fees {
    overflow:hidden;
    padding:0;
  }

  .sw-production #price .sw-price-installation-fees > h3 {
    margin:0;
    padding:16px 18px;
  }

  .sw-production #price .sw-price-installation-fees > div {
    padding:17px 18px;
  }
}

/* Price line: align 月額・amount・円（税抜） to the same bottom edge. */
.sw-production #price .sw-price-num,
.sw-production #price .sw-price-num--option {
  align-items:flex-end;
  padding-bottom:19px;
}

.sw-production #price .sw-price-num__unit {
  position:relative;
  display:inline-flex;
  align-items:flex-end;
  align-self:flex-end;
  gap:3px;
  margin-top:0;
}

.sw-production #price .sw-price-num__unit > small {
  padding-bottom:0;
}

.sw-production #price .sw-price-num__unit > .sw-tax-note {
  position:absolute;
  top:calc(100% + 4px);
  left:0;
  margin:0 !important;
}

/* Comma descends below the numerals; align labels with the numeral body. */
.sw-production #price .sw-price-panel--main .sw-price-num__prefix,
.sw-production #price .sw-price-panel--main .sw-price-num__unit {
  transform:translateY(-6px);
}

.sw-production #price .sw-price-panel--main .sw-price-num__unit > .sw-tax-note {
  top:calc(100% + 10px);
}

/* =========================================================
   2026-10-31 price typography + scene reference A + FAQ 8/7
   ========================================================= */
.sw-production #price .sw-price-reason__label {
  display:block;
  width:auto;
  margin:0 0 5px;
  padding:0;
  border-radius:0;
  background:transparent;
  color:#0b64df;
  font-size:16px;
  font-weight:800;
  line-height:1.8;
}

.sw-production #price .sw-price-capacity > strong,
.sw-production #price .sw-price-capacity > span,
.sw-production #price .sw-price-capacity small,
.sw-production #price .sw-price-capacity i,
.sw-production #price .sw-price-capacity b {
  font-size:16px;
}

.sw-production #price .sw-price-option-summary .sw-price-optional {
  font-size:13px;
  line-height:1.5;
}

.sw-production #price .sw-price-installation-fees > div strong {
  font-size:16px;
  line-height:1.5;
}

.sw-production #scene .sw-scene-anchor {
  margin-bottom:26px;
}

.sw-production #scene .sw-scene-anchor .sw-eyebrow {
  margin-inline:auto;
}

.sw-production #scene .sw-scene-intro {
  max-width:980px;
}

.sw-production #scene .sw-scene-intro .sw-title {
  margin:0;
  font-size:clamp(34px,4.2vw,56px);
  line-height:1.42;
  text-align:left;
}

.sw-production #scene .sw-scene-intro .sw-title span {
  color:#0b64df;
}

.sw-production #scene .sw-scene-carousel {
  margin-top:48px;
}

.sw-production #scene .sw-scene-carousel__track {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;
  gap:22px;
  overflow:visible;
  padding:0 0 36px;
  scroll-snap-type:none;
}

.sw-production #scene .sw-scene-card {
  position:relative;
  isolation:isolate;
  width:auto;
  min-width:0;
  margin:0;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:24px;
  background:#dce8f7;
  box-shadow:0 14px 34px rgba(8,37,82,.12);
  cursor:zoom-in;
}

.sw-production #scene .sw-scene-card:nth-child(even) {
  margin-top:42px;
}

.sw-production #scene .sw-scene-card::after {
  right:0;
  bottom:0;
  left:0;
  height:58%;
  border-radius:0;
  background:linear-gradient(180deg,transparent 0%,rgba(5,28,62,.30) 38%,rgba(5,28,62,.86) 100%);
}

.sw-production #scene .sw-scene-card img {
  display:block;
  width:100%;
  aspect-ratio:3 / 4;
  border-radius:0;
  object-fit:cover;
  object-position:center;
}

.sw-production #scene .sw-scene-card figcaption {
  position:absolute;
  z-index:2;
  right:22px;
  bottom:24px;
  left:22px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#fff;
  box-shadow:none;
  text-align:left;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}

.sw-production #scene .sw-scene-card figcaption small {
  margin-bottom:4px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.18em;
}

.sw-production #scene .sw-scene-card figcaption strong {
  margin-bottom:10px;
  font-size:clamp(22px,2vw,30px);
  font-weight:900;
  line-height:1.2;
}

.sw-production #scene .sw-scene-card figcaption span {
  display:inline-flex;
  padding:5px 11px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.4;
}

.sw-production #scene .sw-scene-categories {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 12px;
  margin-top:20px;
}

.sw-production #scene .sw-scene-categories span {
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:42px;
  padding:8px 18px;
  border-radius:999px;
  background:#f1f6fd;
  color:var(--sw-navy);
  font-size:15px;
  font-weight:800;
}

.sw-production #scene .sw-scene-categories span::before {
  content:"✓";
  color:#0b64df;
  font-weight:900;
}

.sw-production .sw-faq {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:14px 18px;
  max-width:1180px;
}

.sw-production .sw-faq__column {
  display:grid;
  gap:12px;
}

@media (hover:hover) and (pointer:fine) {
  .sw-production #scene .sw-scene-card:hover {
    transform:translateY(-3px);
    border-color:transparent;
    box-shadow:0 17px 36px rgba(8,37,82,.15);
  }

  .sw-production #scene .sw-scene-card:nth-child(even):hover {
    transform:translateY(-3px);
  }
}

@media (max-width:1024px) {
  .sw-production #scene .sw-scene-intro .sw-title {
    font-size:clamp(32px,5vw,46px);
  }

  .sw-production #scene .sw-scene-carousel__track {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }

  .sw-production #scene .sw-scene-card:nth-child(even) {
    margin-top:24px;
  }

  .sw-production .sw-faq {
    grid-template-columns:1fr;
    max-width:900px;
  }
}

@media (max-width:767px) {
  .sw-production #price .sw-price-reason__label,
  .sw-production #price .sw-price-capacity > strong,
  .sw-production #price .sw-price-capacity > span,
  .sw-production #price .sw-price-capacity small,
  .sw-production #price .sw-price-capacity i,
  .sw-production #price .sw-price-capacity b,
  .sw-production #price .sw-price-installation-fees > div strong {
    font-size:14.5px;
  }

  .sw-production #price .sw-price-option-summary .sw-price-optional {
    font-size:13px;
  }

  .sw-production #scene .sw-scene-anchor {
    margin-bottom:20px;
  }

  .sw-production #scene .sw-scene-intro .sw-title {
    font-size:clamp(27px,8vw,36px);
    line-height:1.48;
  }

  .sw-production #scene .sw-scene-carousel {
    margin-top:30px;
  }

  .sw-production #scene .sw-scene-carousel__track {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    padding-bottom:18px;
  }

  .sw-production #scene .sw-scene-card,
  .sw-production #scene .sw-scene-card:nth-child(even) {
    margin-top:0;
    border-radius:16px;
  }

  .sw-production #scene .sw-scene-card figcaption {
    right:12px;
    bottom:14px;
    left:12px;
  }

  .sw-production #scene .sw-scene-card figcaption small {
    font-size:8px;
  }

  .sw-production #scene .sw-scene-card figcaption strong {
    margin-bottom:7px;
    font-size:18px;
  }

  .sw-production #scene .sw-scene-card figcaption span {
    padding:4px 7px;
    font-size:9px;
  }

  .sw-production #scene .sw-scene-categories {
    gap:8px;
    margin-top:12px;
  }

  .sw-production #scene .sw-scene-categories span {
    min-height:36px;
    padding:6px 12px;
    font-size:12px;
  }
}

/* 2026-10-31: tablet/mobile scene cards use a horizontal slider. */
.sw-production #scene .sw-scene-carousel__controls {
  display:none;
}

@media (max-width:1024px) {
  .sw-production #scene .sw-scene-carousel__track {
    display:flex;
    align-items:stretch;
    gap:18px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:4px 2px 18px;
    scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }

  .sw-production #scene .sw-scene-carousel__track::-webkit-scrollbar {
    display:none;
  }

  .sw-production #scene .sw-scene-card,
  .sw-production #scene .sw-scene-card:nth-child(even) {
    flex:0 0 calc((100% - 18px) / 2);
    width:auto;
    min-width:0;
    margin-top:0;
    scroll-snap-align:start;
  }

  .sw-production #scene .sw-scene-carousel__controls {
    display:flex;
    justify-content:center;
    margin-top:4px;
  }
}

@media (max-width:767px) {
  .sw-production #scene .sw-scene-carousel__track {
    gap:12px;
    padding-right:10%;
  }

  .sw-production #scene .sw-scene-card,
  .sw-production #scene .sw-scene-card:nth-child(even) {
    flex-basis:82%;
  }
}

/* 2026-10-31: cap the desktop FV image and balance the wide header. */
@media (min-width:1381px) {
  .sw-production .sw-header__inner {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    column-gap:clamp(28px,2.6vw,50px);
    width:min(calc(100% - 48px),1600px);
  }

  .sw-production .sw-global-nav {
    justify-content:space-between;
    gap:clamp(15px,1.35vw,26px);
    min-width:0;
    margin-left:0;
  }

  .sw-production .sw-header__desktop-icon-group {
    gap:10px;
    margin-left:0;
  }

  .sw-production .sw-header-phone span {
    display:none;
  }

  .sw-production .sw-header__actions {
    justify-content:space-between;
    gap:clamp(12px,1.15vw,22px);
  }
}

@media (min-width:1700px) {
  .sw-production .sw-fv-group .sw-hero__media {
    right:auto;
    left:50%;
    width:1700px;
    max-width:1700px;
    transform:translateX(-50%);
  }

  .sw-production .sw-fv-group .sw-hero__image {
    width:1700px;
    max-width:1700px;
  }
}

/* =========================================================
   2026-11-01 compact five-card problem comparison / FV accent sweep
   ========================================================= */
/* Keep all five problem/solution pairs in one readable desktop row. */
@media (min-width:1025px) {
  .sw-production #problems .sw-container {
    width:min(calc(100% - 48px),1320px);
  }

  .sw-production #problems .sw-problem-card-grid {
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    margin-top:42px;
  }

  .sw-production #problems .sw-problem-integrated-card,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4),
  .sw-production #problems .sw-problem-integrated-card:nth-child(5) {
    grid-column:auto;
    width:auto;
    min-width:0;
    justify-self:stretch;
    border-radius:16px;
  }

  .sw-production #problems .sw-problem-integrated-card__before {
    min-height:148px;
    padding:22px 10px 24px;
  }

  .sw-production #problems .sw-problem-integrated-card__icon {
    width:48px;
    height:48px;
    margin-bottom:13px;
  }

  .sw-production #problems .sw-problem-integrated-card__icon svg {
    width:25px;
    height:25px;
  }

  .sw-production #problems .sw-problem-integrated-card__before h3 {
    font-size:clamp(13px,1.08vw,16px);
    line-height:1.42;
  }

  .sw-production #problems .sw-problem-integrated-card__after {
    min-height:82px;
    padding:14px 8px 12px;
  }

  .sw-production #problems .sw-problem-integrated-card__after span {
    font-size:12px;
  }

  .sw-production #problems .sw-problem-integrated-card__after strong,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4) .sw-problem-integrated-card__after strong {
    font-size:clamp(18px,1.5vw,23px);
    line-height:1.22;
  }
}

.sw-production #problems .sw-problem-resolution {
  gap:12px;
  margin:48px auto 18px;
}

.sw-production #problems .sw-problem-resolution .sw-problem-doctor {
  width:76px;
}

.sw-production #problems .sw-problem-resolution p {
  gap:5px;
}

.sw-production #problems .sw-problem-resolution span {
  padding:4px 11px;
  font-size:12px;
}

.sw-production #problems .sw-problem-resolution strong {
  font-size:clamp(22px,2.25vw,30px);
}

.sw-production #problems .sw-problem-resolution + .sw-center {
  margin-top:0;
}

/* Tablet and phone: preserve the one-row comparison as a swipeable rail. */
@media (max-width:1024px) {
  .sw-production #problems .sw-problem-card-grid {
    display:flex;
    gap:14px;
    margin-top:38px;
    padding:0 7% 10px 0;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }

  .sw-production #problems .sw-problem-card-grid::-webkit-scrollbar {
    display:none;
  }

  .sw-production #problems .sw-problem-integrated-card,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4),
  .sw-production #problems .sw-problem-integrated-card:nth-child(5) {
    flex:0 0 31%;
    width:auto;
    min-width:210px;
    border-radius:16px;
    scroll-snap-align:start;
  }

  .sw-production #problems .sw-problem-integrated-card__before {
    min-height:150px;
    padding:22px 12px 24px;
  }

  .sw-production #problems .sw-problem-integrated-card__icon {
    width:50px;
    height:50px;
    margin-bottom:13px;
  }

  .sw-production #problems .sw-problem-integrated-card__icon svg {
    width:26px;
    height:26px;
  }

  .sw-production #problems .sw-problem-integrated-card__before h3 {
    font-size:15px;
  }

  .sw-production #problems .sw-problem-integrated-card__after {
    min-height:84px;
    padding:15px 9px 13px;
  }

  .sw-production #problems .sw-problem-integrated-card__after span {
    font-size:12px;
  }

  .sw-production #problems .sw-problem-integrated-card__after strong,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4) .sw-problem-integrated-card__after strong {
    font-size:21px;
  }
}

@media (max-width:599px) {
  .sw-production #problems .sw-problem-card-grid {
    gap:12px;
    margin-top:30px;
    padding-right:16%;
  }

  .sw-production #problems .sw-problem-integrated-card,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4),
  .sw-production #problems .sw-problem-integrated-card:nth-child(5) {
    flex-basis:76%;
    min-width:224px;
  }

  .sw-production #problems .sw-problem-resolution {
    gap:9px;
    margin:25px auto 18px;
  }

  .sw-production #problems .sw-problem-resolution .sw-problem-doctor {
    width:66px;
  }

  .sw-production #problems .sw-problem-resolution span {
    font-size:11px;
  }

  .sw-production #problems .sw-problem-resolution strong {
    font-size:clamp(18px,5.2vw,23px);
  }
}

/* Reveal the "定額" background with the same sweep language as the FV label. */
.sw-production .sw-hero-title__accent {
  position:relative;
  isolation:isolate;
  background:transparent;
}

.sw-production .sw-hero-title__accent::before {
  content:"";
  position:absolute;
  inset:-.02em -.02em -.04em;
  z-index:-1;
  border-radius:.18em;
  background:linear-gradient(90deg,#eb4d4b 0%,#f06460 58%,#f7a4a0 100%);
  clip-path:inset(0 100% 0 0 round .18em);
  transform:skewX(-4deg) rotate(-.8deg);
  animation:sw-hero-accent-sweep .72s cubic-bezier(.22,.7,.2,1) 1.42s both;
}

@keyframes sw-hero-accent-sweep {
  to { clip-path:inset(0 0 0 0 round .18em); }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-hero-title__accent::before {
    clip-path:inset(0 0 0 0 round .18em);
    animation:none !important;
  }
}

/* =========================================================
   2026-11-01 desktop header alignment
   Logo stays left; navigation, two icons and two CTAs share
   one consistent interval on the right.
   ========================================================= */
@media (min-width:1201px) {
  .sw-production .sw-header__inner {
    --sw-header-item-gap:clamp(16px,1.25vw,22px);
    display:flex;
    align-items:center;
    width:min(calc(100% - 48px),1600px);
    column-gap:var(--sw-header-item-gap);
  }

  .sw-production .sw-logo {
    margin-right:auto;
  }

  .sw-production .sw-global-nav {
    justify-content:flex-end;
    gap:var(--sw-header-item-gap);
    min-width:0;
    margin-left:0;
  }

  .sw-production .sw-header__desktop-icon-group {
    gap:var(--sw-header-item-gap);
    margin-left:0;
  }

  .sw-production .sw-header-phone span {
    display:none;
  }

  .sw-production .sw-header__actions {
    justify-content:flex-end;
    gap:var(--sw-header-item-gap);
    margin-left:0;
  }
}

/* =========================================================
   2026-11-01 illustration balance refinements
   ========================================================= */
.sw-production #problems .sw-problem-resolution .sw-problem-doctor {
  width:92px;
}

@keyframes sw-mobile-mascot-diagonal-float {
  0%,100% { transform:translate3d(0,0,0) rotate(12deg); }
  50% { transform:translate3d(-3px,-9px,0) rotate(14deg); }
}

@media (max-width:768px) {
  .sw-production .sw-hero__mobile-mascot {
    top:-18px;
    right:-22px;
    z-index:1;
    width:clamp(215px,48vw,270px);
    max-width:56%;
    transform-origin:55% 58%;
    animation:sw-mobile-mascot-diagonal-float 6.4s ease-in-out infinite;
  }

  .sw-production #problems .sw-problem-resolution .sw-problem-doctor {
    width:82px;
  }
}

@media (max-width:420px) {
  .sw-production .sw-hero__mobile-mascot {
    top:-8px;
    right:-18px;
    width:220px;
    max-width:60%;
    opacity:.96;
  }

  .sw-production #problems .sw-problem-resolution .sw-problem-doctor {
    width:78px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-hero__mobile-mascot {
    transform:rotate(12deg);
  }
}

/* =========================================================
   2026-11-01 FV price label / responsive problem-card stack
   ========================================================= */
.sw-production .sw-temp-strip strong {
  font-weight:700;
}

.sw-production .sw-hero-price__label {
  min-width:68px;
  padding-inline:8px;
  font-size:17px;
}

@media (max-width:768px) {
  .sw-production .sw-fv-group .sw-hero-price__label {
    min-width:68px;
    min-height:76px;
    margin-right:14px;
    padding-inline:8px;
    font-size:16px;
  }
}

/* Tablet: two-column vertical flow; the fifth card sits centered below. */
@media (max-width:1024px) {
  .sw-production #problems .sw-problem-card-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin-top:38px;
    padding:0;
    overflow:visible;
    scroll-snap-type:none;
  }

  .sw-production #problems .sw-problem-integrated-card,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4) {
    grid-column:auto;
    width:100%;
    min-width:0;
  }

  .sw-production #problems .sw-problem-integrated-card:nth-child(5) {
    grid-column:1 / -1;
    width:calc(50% - 9px);
    min-width:0;
    justify-self:center;
  }
}

/* Phone: all five cards return to a single vertical stack. */
@media (max-width:599px) {
  .sw-production #problems .sw-problem-card-grid {
    grid-template-columns:1fr;
    gap:14px;
    margin-top:30px;
  }

  .sw-production #problems .sw-problem-integrated-card,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4),
  .sw-production #problems .sw-problem-integrated-card:nth-child(5) {
    grid-column:auto;
    width:100%;
    min-width:0;
    justify-self:stretch;
  }
}

/* Final responsive comparison-card override. Keep this after legacy variants. */
.sw-production #problems .sw-problem-integrated-card__description {
  display:none;
}

@media (max-width:1024px) {
  .sw-production #problems .sw-problem-card-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    width:min(100%,760px);
    margin:36px auto 0;
    padding:0;
    overflow:visible;
    scroll-snap-type:none;
  }

  .sw-production #problems .sw-problem-integrated-card,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4),
  .sw-production #problems .sw-problem-integrated-card:nth-child(5) {
    display:grid;
    grid-template-columns:minmax(0,1fr) clamp(132px,25vw,174px);
    grid-column:auto;
    width:100%;
    min-width:0;
    min-height:126px;
    justify-self:stretch;
    overflow:hidden;
    border-radius:18px;
  }

  .sw-production #problems .sw-problem-integrated-card__before {
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:14px;
    align-content:center;
    min-height:126px;
    padding:17px 18px;
    text-align:left;
  }

  .sw-production #problems .sw-problem-integrated-card__before::after {
    display:none;
  }

  .sw-production #problems .sw-problem-integrated-card__icon {
    grid-row:1 / 3;
    align-self:center;
    width:46px;
    height:46px;
    margin:0;
  }

  .sw-production #problems .sw-problem-integrated-card__icon svg {
    width:24px;
    height:24px;
  }

  .sw-production #problems .sw-problem-integrated-card__before h3 {
    align-self:end;
    margin:0;
    font-size:16px;
    line-height:1.45;
  }

  .sw-production #problems .sw-problem-integrated-card__description {
    display:block;
    align-self:start;
    margin:4px 0 0;
    color:#5b687a;
    font-size:12px;
    line-height:1.55;
  }

  .sw-production #problems .sw-problem-integrated-card__after {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:126px;
    padding:14px 10px;
    text-align:center;
  }

  .sw-production #problems .sw-problem-integrated-card__after::before {
    content:"";
    position:absolute;
    top:50%;
    left:-1px;
    width:18px;
    height:28px;
    background:#fff;
    clip-path:polygon(0 0,100% 50%,0 100%);
    transform:translateY(-50%);
  }

  .sw-production #problems .sw-problem-integrated-card__after span {
    display:none;
  }

  .sw-production #problems .sw-problem-integrated-card__after strong {
    margin:0;
    font-size:clamp(23px,3.2vw,28px);
    line-height:1.2;
  }

  .sw-production #problems .sw-problem-integrated-card:nth-child(4) .sw-problem-integrated-card__after strong {
    max-width:7em;
    font-size:clamp(17px,2.45vw,22px);
    line-height:1.35;
  }

  .sw-production #problems .sw-problem-resolution {
    margin:24px auto;
  }

  .sw-production #problems .sw-problem-resolution + .sw-center {
    margin-top:0;
  }
}

@media (max-width:599px) {
  .sw-production #problems .sw-problem-card-grid {
    gap:12px;
    width:100%;
    margin-top:30px;
  }

  .sw-production #problems .sw-problem-integrated-card,
  .sw-production #problems .sw-problem-integrated-card:nth-child(4),
  .sw-production #problems .sw-problem-integrated-card:nth-child(5) {
    grid-template-columns:minmax(0,1fr) 112px;
    min-height:112px;
  }

  .sw-production #problems .sw-problem-integrated-card__before {
    grid-template-columns:42px minmax(0,1fr);
    column-gap:11px;
    min-height:112px;
    padding:14px 12px;
  }

  .sw-production #problems .sw-problem-integrated-card__icon {
    width:42px;
    height:42px;
  }

  .sw-production #problems .sw-problem-integrated-card__before h3 {
    font-size:14px;
  }

  .sw-production #problems .sw-problem-integrated-card__description {
    margin-top:3px;
    font-size:10.5px;
    line-height:1.5;
  }

  .sw-production #problems .sw-problem-integrated-card__after {
    min-height:112px;
    padding:12px 6px;
  }

  .sw-production #problems .sw-problem-integrated-card__after strong {
    font-size:23px;
  }

  .sw-production #problems .sw-problem-integrated-card:nth-child(4) .sw-problem-integrated-card__after strong {
    font-size:16px;
  }

  .sw-production #problems .sw-problem-resolution {
    margin:22px auto;
  }
}

/* =========================================================
   2026-11-02 mobile readability / continuous water background
   ========================================================= */

/* 「こんなことで」から「導入実績」までを、一続きの水面として見せる。 */
.sw-production .sw-water-flow {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    linear-gradient(180deg,
      #fff 0%,
      #eef8ff 12%,
      #e4f3ff 28%,
      #f8fcff 47%,
      #e8f5ff 68%,
      #dff1ff 84%,
      #fff 100%);
}

.sw-production .sw-water-flow::before,
.sw-production .sw-water-flow::after {
  content:"";
  position:absolute;
  z-index:0;
  inset:-1.5% -9%;
  pointer-events:none;
  transform-origin:center;
}

.sw-production .sw-water-flow::before {
  background:
    radial-gradient(ellipse 42% 9% at 16% 8%,rgba(255,255,255,.92) 0%,rgba(255,255,255,0) 72%),
    radial-gradient(ellipse 48% 12% at 84% 24%,rgba(178,220,249,.42) 0%,rgba(178,220,249,0) 74%),
    radial-gradient(ellipse 55% 11% at 22% 45%,rgba(255,255,255,.86) 0%,rgba(255,255,255,0) 72%),
    radial-gradient(ellipse 46% 13% at 78% 64%,rgba(164,215,249,.36) 0%,rgba(164,215,249,0) 76%),
    radial-gradient(ellipse 58% 10% at 28% 88%,rgba(255,255,255,.84) 0%,rgba(255,255,255,0) 74%);
  opacity:.92;
  animation:sw-water-flow-drift 30s ease-in-out infinite alternate;
}

.sw-production .sw-water-flow::after {
  background:
    radial-gradient(ellipse 34% 8% at 68% 14%,rgba(116,193,241,.14) 0%,rgba(116,193,241,0) 78%),
    radial-gradient(ellipse 40% 10% at 34% 35%,rgba(255,255,255,.7) 0%,rgba(255,255,255,0) 76%),
    radial-gradient(ellipse 38% 9% at 70% 51%,rgba(125,199,244,.15) 0%,rgba(125,199,244,0) 78%),
    radial-gradient(ellipse 44% 12% at 30% 73%,rgba(255,255,255,.72) 0%,rgba(255,255,255,0) 76%),
    radial-gradient(ellipse 40% 9% at 72% 92%,rgba(116,193,241,.13) 0%,rgba(116,193,241,0) 78%);
  opacity:.8;
  animation:sw-water-flow-drift-reverse 38s ease-in-out infinite alternate;
}

.sw-production .sw-water-flow > .sw-section {
  position:relative;
  z-index:1;
  background:transparent !important;
}

/* 写真の気配だけ残し、上下端を透明にして共通背景へなじませる。 */
.sw-production .sw-water-flow #benefits::before {
  z-index:-1;
  opacity:.12;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 24%,#000 76%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0%,#000 24%,#000 76%,transparent 100%);
}

@keyframes sw-water-flow-drift {
  from { transform:translate3d(-1.2%,0,0) scale(1.01); }
  to { transform:translate3d(1.2%,-14px,0) scale(1.025); }
}

@keyframes sw-water-flow-drift-reverse {
  from { transform:translate3d(1%,8px,0) scale(1.018); }
  to { transform:translate3d(-1.1%,-8px,0) scale(1.005); }
}

@media (max-width:767px) {
  /* 問題カードの主要タイトルを、補足文との階層が分かる大きさへ。 */
  .sw-production #problems .sw-problem-integrated-card:nth-child(-n+2) .sw-problem-integrated-card__before h3 {
    font-size:16px;
    line-height:1.35;
    letter-spacing:-.01em;
  }

  /* モバイルはイラストを省き、無料配送の案内文とCTAに横幅を使う。 */
  .sw-production .sw-filter-delivery {
    display:block;
    width:100%;
    padding:16px 0;
    text-align:center;
  }

  .sw-production .sw-filter-delivery__content {
    width:100%;
    max-width:none;
    margin:0 auto;
  }

  .sw-production .sw-filter-delivery__character {
    display:none;
  }

  .sw-production .sw-filter-delivery strong {
    display:block;
    font-size:clamp(20px,5.8vw,24px);
    line-height:1.25;
    white-space:nowrap;
  }

  .sw-production .sw-filter-delivery p {
    width:100%;
    margin-top:8px;
    font-size:clamp(12px,3.45vw,14px);
    line-height:1.55;
    white-space:nowrap;
  }

  .sw-production .sw-filter-delivery__cta {
    width:min(100%,360px);
    margin:16px auto 0;
  }

  /* 会社情報とサイトメニューを2列にし、リンクの押しやすさを保つ。 */
  .sw-production .sw-site-footer__inner {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:26px 16px;
    align-items:start;
  }

  .sw-production .sw-site-footer__company,
  .sw-production .sw-site-footer__nav {
    min-width:0;
  }

  .sw-production .sw-site-footer__brand {
    margin-bottom:18px;
  }

  .sw-production .sw-site-footer__brand img {
    width:min(100%,168px);
    max-width:100%;
  }

  .sw-production .sw-site-footer__company,
  .sw-production .sw-site-footer__nav,
  .sw-production .sw-site-footer__company a,
  .sw-production .sw-site-footer__nav a {
    font-size:13px;
  }

  .sw-production .sw-site-footer__company address {
    line-height:1.65;
  }

  .sw-production .sw-site-footer__nav {
    padding-top:58px;
    gap:0;
  }

  .sw-production .sw-site-footer__nav > a {
    display:flex;
    align-items:center;
    min-height:42px;
    padding:6px 0;
  }

  .sw-production .sw-site-footer__legal a {
    display:flex;
    align-items:center;
    min-height:38px;
    line-height:1.45;
  }

  .sw-production .sw-site-footer__actions {
    grid-column:1 / -1;
  }
}

@media (max-width:359px) {
  .sw-production .sw-site-footer__inner {
    gap:24px 12px;
  }

  .sw-production .sw-site-footer__company,
  .sw-production .sw-site-footer__nav,
  .sw-production .sw-site-footer__company a,
  .sw-production .sw-site-footer__nav a {
    font-size:12px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .sw-production .sw-water-flow::before,
  .sw-production .sw-water-flow::after {
    animation:none !important;
  }
}

/* 2026-11-02: soft blue water forms on a continuous neutral background. */
.sw-production .sw-water-flow { background:#f0f0f0; }
.sw-production .sw-water-flow::before,
.sw-production .sw-water-flow::after,
.sw-production .sw-water-flow #filters::before { content:none; }
.sw-production .sw-water-flow > .sw-section { isolation:isolate; }
.sw-production .sw-water-shapes {
  position:absolute; inset:0; overflow:hidden; z-index:-1; pointer-events:none;
}
.sw-production .sw-water-shapes i {
  position:absolute; display:block; width:650px; height:620px;
  left:-350px; top:16%; background:#0652dd; opacity:.20;
  filter:blur(48px); border-radius:42% 58% 65% 35% / 48% 36% 64% 52%;
  animation:sw-blue-water-morph 24s ease-in-out infinite alternate;
}
.sw-production .sw-water-shapes i + i {
  left:auto; right:-340px; top:48%; width:600px; height:560px;
  opacity:.16; filter:blur(56px); animation-duration:29s; animation-delay:-13s;
}
.sw-production .sw-section:nth-child(even) > .sw-water-shapes i { animation-delay:-9s; top:25%; }
.sw-production .sw-section:nth-child(even) > .sw-water-shapes i + i { top:5%; animation-delay:-20s; }
@keyframes sw-blue-water-morph {
  0% { transform:translate3d(-20px,-35px,0) rotate(-12deg) scale(.94); border-radius:42% 58% 65% 35% / 48% 36% 64% 52%; }
  50% { border-radius:64% 36% 42% 58% / 35% 62% 38% 65%; }
  100% { transform:translate3d(65px,65px,0) rotate(16deg) scale(1.1); border-radius:36% 64% 53% 47% / 62% 42% 58% 38%; }
}
@media(max-width:767px) {
  .sw-production .sw-water-shapes i { width:420px; height:540px; left:-310px; opacity:.22; filter:blur(35px); }
  .sw-production .sw-water-shapes i + i { width:400px; height:510px; left:auto; right:-290px; opacity:.19; filter:blur(38px); }
}
@media(prefers-reduced-motion:reduce) {
  .sw-production .sw-water-shapes i { animation:none; }
}

/* Continuous water layer: clipping only at the entire content group's edges. */
.sw-production .sw-water-flow > .sw-water-shapes--continuous { z-index:0; }
.sw-production .sw-water-shapes--continuous i,
.sw-production .sw-water-shapes--continuous i + i {
  top:var(--water-y); left:-350px; right:auto;
  width:650px; height:700px; opacity:.20; filter:blur(48px);
  animation-delay:var(--water-delay);
}
.sw-production .sw-water-shapes--continuous i:nth-child(even) {
  left:auto; right:-340px; opacity:.16; animation-duration:29s;
}
.sw-production .sw-site-footer__inner { align-items:end; }
.sw-production .sw-site-footer__nav,
.sw-production .sw-site-footer__actions { align-self:end; justify-content:flex-end; }
.sw-production .sw-site-footer__nav { padding-top:0; }
@media(max-width:767px) {
  .sw-production .sw-water-shapes--continuous i,
  .sw-production .sw-water-shapes--continuous i + i {
    left:-310px; right:auto; width:420px; height:900px;
    opacity:.22; filter:blur(35px);
  }
  .sw-production .sw-water-shapes--continuous i:nth-child(even) { left:auto; right:-290px; opacity:.19; }
}



/* Standard water spread: a continuous decorative background behind the LP. */
.sw-production .sw-water-flow .sw-water-shapes--continuous i:nth-child(n) {
  left:var(--x); right:auto; top:var(--water-y); width:var(--size); height:auto; aspect-ratio:1;
  border-radius:44% 56% 62% 38% / 48% 43% 57% 52%;
  background:radial-gradient(ellipse,rgba(6,82,221,.34) 0%,rgba(6,82,221,.27) 30%,rgba(6,82,221,.16) 51%,rgba(6,82,221,.055) 65%,transparent 74%);
  filter:blur(18px); animation:sw-water-spread var(--duration) cubic-bezier(.22,.5,.35,1) var(--water-delay) infinite;
}
.sw-production .sw-water-shapes--continuous i::after {content:"";position:absolute;inset:14%;border-radius:inherit;background:radial-gradient(ellipse,rgba(85,175,244,.2),transparent 68%);}
.sw-water-shapes--continuous i:nth-child(4n+1){--x:12%;--size:760px;--duration:12s}
.sw-water-shapes--continuous i:nth-child(4n+2){--x:78%;--size:900px;--duration:15s}
.sw-water-shapes--continuous i:nth-child(4n+3){--x:48%;--size:820px;--duration:14s}
.sw-water-shapes--continuous i:nth-child(4n){--x:95%;--size:620px;--duration:11s}
@keyframes sw-water-spread{0%{opacity:0;transform:translate(-50%,-50%) scale(.32,.38) rotate(-12deg)}15%{opacity:.8}50%{opacity:1;transform:translate(calc(-50% + 35px),calc(-50% + 20px)) scale(1.12,.97) rotate(6deg)}85%{opacity:.32}100%{opacity:0;transform:translate(calc(-50% + 70px),calc(-50% + 40px)) scale(1.62,1.4) rotate(16deg)}}
@media(max-width:650px){.sw-production .sw-water-flow .sw-water-shapes--continuous i:nth-child(n){width:calc(var(--size) * .75)}}
@media(prefers-reduced-motion:reduce){.sw-production .sw-water-flow .sw-water-shapes--continuous i:nth-child(n){animation:none;transform:translate(-50%,-50%);opacity:.4}}

/* Mobile footer: align menu heading to the company heading, below the logo. */
@media(max-width:767px) {
  .sw-production .sw-site-footer__nav { align-self:start; padding-top:58px; gap:0; }
  .sw-production .sw-site-footer__nav > a { min-height:34px; padding:4px 0; }
  .sw-production .sw-site-footer__legal { margin-top:7px; padding-top:8px; gap:0; }
  .sw-production .sw-site-footer__legal a { min-height:30px; padding:3px 0; }
}

@media(max-width:767px) {
  .sw-production .sw-site-footer__company { align-self:start; }
  .sw-production .sw-site-footer__brand { display:block; height:40px; margin-bottom:18px; }
  .sw-production .sw-site-footer__brand img { height:40px; object-fit:contain; object-position:left center; }
}

/* Tighten the transition from the problems CTA to the benefits heading. */
.sw-production #problems { padding-bottom:clamp(40px, 5vw, 64px); }
.sw-production #problems + #benefits { padding-top:clamp(48px, 6vw, 72px); }

/* Compact spacing from benefits through the closing contact section. */
.sw-production :is(#benefits, #filters, #safety, #trust, #compare, #price, #scene, #faq, #contact) {
  padding-top:clamp(48px, 6vw, 72px);
  padding-bottom:clamp(40px, 5vw, 64px);
}

/* 2026-11-09: keep price cards inside their centered responsive grid. */
.sw-production #price .sw-price-box--plans > .sw-price-panel {
  min-width: 0;
  box-sizing: border-box;
}
@media (max-width: 767px) {
  .sw-production #price .sw-price-box--plans {
    grid-template-columns: minmax(0, 1fr);
  }
  .sw-production #price .sw-price-panel--main .sw-price-num > strong {
    font-size: clamp(42px, 12vw, 62px);
  }
  .sw-production #price .sw-price-panel--main .sw-price-num > .sw-price-num__prefix,
  .sw-production #price .sw-price-panel--main .sw-price-num__unit > b {
    font-size: clamp(20px, 5vw, 24px);
  }
  .sw-production #price .sw-price-panel--main .sw-price-num__unit > small {
    font-size: 12px;
  }
}
