    /* ========================================
       RESET & BASE
    ======================================== */
    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Noto Sans JP', sans-serif;
      color: #4F4F4F;
      line-height: 1.7;
      background: #fff;
      font-size: 17px;
    }
    img { display: block; max-width: 100%; }
    a { color: inherit; text-decoration: none; }
    h2 { line-height: 1.3; }

    /* ========================================
       LAYOUT UTILITIES
    ======================================== */
    .container {
      width: 100%;
      max-width: 1180px;
      margin: 0 auto;
      padding: 0 24px;
    }
    .section-header {
      text-align: center;
      margin-bottom: 48px;
    }
    .section-label {
      display: inline-block;
      background: #EBF5FF;
      color: #1B8BF0;
      font-size: 14px;
      font-weight: 700;
      padding: 4px 16px;
      border-radius: 20px;
      margin-bottom: 12px;
      letter-spacing: .05em;
    }
    .section-title {
      font-size: clamp(24px, 3vw, 32px);
      font-weight: 900;
      color: #4F4F4F;
      margin-bottom: 14px;
      line-height: 1.35;
    }
    .section-divider {
      width: 44px;
      height: 3px;
      background: #1B8BF0;
      margin: 30px auto;
      border-radius: 2px;
    }

    /* IMAGE PLACEHOLDER */
    .img-placeholder {
      background: #d6e8f8;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #6a9bbf;
      font-size: 15px;
      font-weight: 500;
      letter-spacing: .02em;
      text-align: center;
      line-height: 1.5;
    }

    /* ========================================
       HEADER
    ======================================== */
    .site-header {
      position: sticky;
      top: 0;
      z-index: 100;
      background: #fff;
      box-shadow: 0 2px 8px rgba(0,0,0,.10);
    }
    .header-inner {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 72px;
      gap: 28px;
    }

    /* Logo */
    .logo {
      display: flex;
      flex-shrink: 0;
      gap: 10px;
      align-items: flex-end;
    }
    .logo-img {
      height: 44px;
      width: auto;
      display: block;
    }
    .logo-tagline {
      font-size: 13px;
      color: #4F4F4F;
      font-weight: 500;
      line-height: 1.4;
      padding-bottom: 2px;
    }

    /* Desktop nav */
    .header-nav {
      flex-shrink: 0;
    }
    .header-nav ul {
      list-style: none;
      display: flex;
      gap: 26px;
    }
    .header-nav a {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 6px 4px;
      font-size: 15px;
      color: #4F4F4F;
      border-radius: 4px;
      white-space: nowrap;
      transition: background .15s, color .15s;
    }
    .header-nav a:hover { background: #F0F7FF; color: #1B8BF0; }
    .header-nav .caret {
      display: inline-flex;
      flex-shrink: 0;
    }
    .header-nav .caret svg { display: block; }

    /* Header phone */
    .header-phone {
      display: flex;
      flex-direction: column;
      align-items: center;
      flex-shrink: 0;
      line-height: 1.3;
    }
    .header-phone-hours {
      font-size: 12px;
      color: #888;
      white-space: nowrap;
    }
    .header-phone-number {
      font-size: 20px;
      font-weight: 300;
      color: #4F4F4F;
      letter-spacing: .04em;
      white-space: nowrap;
      text-decoration: none;
    }

    /* Header CTA */
    .btn-header-cta {
      position: relative;
      top: 5px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      width: 200px;
      background: #FF8F00;
      color: #fff;
      font-size: 15.5px;
      font-weight: 700;
      padding: 11px 16px;
      border-radius: 50px;
      white-space: nowrap;
      flex-shrink: 0;
      transition: opacity .2s, transform .15s;
    }
    .btn-header-cta:hover { opacity: .88; transform: translateY(-1px); }
    .btn-header-cta .cta-badge {
      position: absolute;
      top: -10px;
      left: 50%;
      transform: translateX(-50%);
      background: #fff;
      color: #4F4F4F;
      font-size: 11.5px;
      font-weight: 700;
      padding: 1px 10px;
      border-radius: 4px;
      white-space: nowrap;
      border: 1px solid #FF8F00;
    }
    .btn-header-cta .cta-arrow {
      font-size: 14px;
      opacity: .8;
    }

    /* Hamburger */
    .hamburger {
      display: none;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 2px;
      width: 45px;
      height: auto;
      cursor: pointer;
      margin-left: auto;
      background: none;
      border: none;
      padding: 0;
    }
    .hamburger svg { display: block; }
    .hamburger.is-hidden { display: none !important; }
    .hamburger-label {
      font-size: 9px;
      color: #333;
      line-height: 1;
      white-space: nowrap;
    }
    .header-sp-banner {
      display: none;
      width: 100%;
    }

    /* Mobile nav drawer */
    .mobile-nav {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 130;
    }
    .mobile-nav.open { display: block; }
    .mobile-nav-overlay {
      position: absolute;
      inset: 0;
      background: rgba(0,0,0,.45);
      opacity: 0;
    }
    .mobile-nav-panel {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      width: 100%;
      background: #FAFAFA;
      overflow-y: auto;
      display: flex;
      flex-direction: column;
      transform: translateX(100%);
    }
    .mobile-nav-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 22px 20px 18px 29px;
      flex-shrink: 0;
    }
    .mobile-nav-home {
      font-size: 20px;
      font-weight: 400;
      color: #4F4F4F;
      letter-spacing: .03em;
    }
    .mobile-nav-close {
      background: none;
      border: none;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 3px;
      padding: 4px;
      cursor: pointer;
    }
    .mobile-nav-close span {
      font-size: 9px;
      color: #000;
      line-height: 1;
    }
    .mobile-nav-list {
      display: flex;
      flex-direction: column;
      flex-shrink: 0;
    }
    .mobile-nav-link {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 29px;
      font-size: 20px;
      font-weight: 400;
      color: #4F4F4F;
      letter-spacing: .03em;
      text-decoration: none;
      border-bottom: 1px solid #E0E0E0;
    }
    .mobile-nav-link:hover { background: #F0F7FF; color: #1B8BF0; }
    .mobile-nav-arrow {
      font-size: 22px;
      color: #B0B0B0;
      font-weight: 400;
    }
    .mobile-nav-cta {
      margin-top: auto;
      background: linear-gradient(to right, #07AFF8, #006FD7);
      padding: 24px 20px 32px;
      text-align: center;
    }
    .mobile-nav-cta-heading {
      font-size: 20px;
      font-weight: 700;
      color: #fff;
      letter-spacing: .06em;
      margin-bottom: 20px;
    }
    .mobile-nav-cta-heading .mobile-nav-cta-yellow { color: #FFFB7E; }
    .mobile-nav-cta-buttons {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
    }
    .mobile-nav-cta .cta-btn-wrap {
      width: 100%;
      max-width: 340px;
    }
    .mobile-nav-cta .cta-primary-wrap {
      width: 100%;
    }
    .mobile-nav-cta .cta-btn-primary {
      width: 100%;
      box-sizing: border-box;
      padding: 16px 90px 16px 24px;
      align-items: flex-start;
      text-align: left;
    }
    .mobile-nav-cta .cta-btn-phone {
      width: 100%;
      box-sizing: border-box;
    }
    .mobile-nav-cta .cta-btn-main { font-size: 16px; }

    /* Fixed footer CTA (SP) */
    .fixed-footer-cta {
      display: none;
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 90;
      height: 55px;
    }
    .fixed-footer-cta-mail {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      background: #FF8F00;
      color: #fff;
      text-decoration: none;
    }
    .fixed-footer-cta-mail svg { flex-shrink: 0; }
    .fixed-footer-cta-mail span {
      font-size: 18px;
      font-weight: 700;
      letter-spacing: .04em;
    }
    .fixed-footer-cta-tel {
      width: 128px;
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 2px;
      background: #B0B0B0;
      color: #fff;
      text-decoration: none;
    }
    .fixed-footer-cta-tel-num {
      font-size: 14px;
      font-weight: 700;
      letter-spacing: .04em;
    }
    .fixed-footer-cta-tel-hours {
      font-size: 10px;
      font-weight: 500;
      letter-spacing: .04em;
    }

    /* Back-to-header button (SP) */
    #headerSentinel { height: 1px; }
    .back-to-header-btn {
      display: flex;
      position: fixed;
      right: 16px;
      bottom: 24px;
      width: 50px;
      height: 50px;
      padding: 0;
      border: none;
      border-radius: 50%;
      background: #B0B0B0;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      z-index: 89;
      opacity: 0;
      pointer-events: none;
      transition: opacity .25s ease;
    }
    .back-to-header-btn.show { opacity: 1; pointer-events: auto; }

    /* ========================================
       HERO
    ======================================== */
    .hero {
      background: linear-gradient(135deg, #6EC6F8 0%, #1B8BF0 45%, #0C54BE 100%);
      overflow: hidden;
    }
    .hero-inner {
      position: relative;
      display: flex;
      align-items: flex-end;
      gap: 40px;
      min-height: 580px;
    }

    /* Left text column */
    .hero-text {
      flex: 1;
      padding: 48px 0 52px;
      position: relative;
      z-index: 2;
    }
    .hero-kicker {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0;
      margin-bottom: 16px;
    }
    .hero-kicker-bubble {
      display: inline-block;
      background: #fff;
      color: #4F4F4F;
      font-size: 15px;
      font-weight: 700;
      padding: 6px 14px;
      border-radius: 6px;
      line-height: 1.4;
      position: relative;
    }
    .hero-kicker-bubble.has-tail {
      margin-left: 50px;
    }
    .hero-kicker-bubble.has-tail::after {
      content: '';
      position: absolute;
      bottom: -8px;
      left: 20px;
      border-width: 8px 7px 0;
      border-style: solid;
      border-color: #fff transparent transparent;
    }
    .hero-kicker-bubble-wrap {
      position: relative;
      display: inline-block;
    }
    .hero-drop-img {
      position: absolute;
      top: -31px;
      right: -50px;
      width: 80px;
      pointer-events: none;
    }
    .hero-tag {
      display: inline-flex;
      justify-content: center;
      align-items: center;
      gap: 10px;
      background: transparent;
      color: #fff;
      font-size: 20px;
      font-weight: 700;
      padding: 0;
      margin-bottom: 14px;
      letter-spacing: .02em;
    }
    .hero-tag::before,
    .hero-tag::after {
      content: '';
      background: #fff;
      height: 22px;
      width: 8px;
      clip-path: polygon(0 0, 100% 0, 50% 100%);
      flex-shrink: 0;
    }
    .hero-tag::before {
      transform: rotate(-30deg);
    }
    .hero-tag::after {
      transform: rotate(30deg);
    }
    .hero-title {
      font-size: 58px;
      font-weight: 500;
      color: #fff;
      line-height: 1.25;
      margin-bottom: 20px;
      letter-spacing: -.5px;
    }
    .hero-bullets {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 6px;
      position: relative;
    }
    .hero-bullets::before {
      content: '';
      position: absolute;
      left: 0;
      bottom: 0;
      width: 340px;
      height: 340px;
      transform: translate(-50%, 50%);
      background: url('images/Container.png') no-repeat center / contain;
      pointer-events: none;
      z-index: 0;
    }
    .hero-bullets li {
      position: relative;
      z-index: 1;
      font-size: 19px;
      color: #fff;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .hero-bullets li::before {
      content: '✓';
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      width: 20px;
      height: 20px;
      border: 2px solid #fff;
      border-radius: 4px;
      color: #FFEC3D;
      font-size: 13px;
      font-weight: 900;
      line-height: 1;
    }
    @media (min-width: 961px) {
      .hero-title {
        margin-bottom: 40px;
      }
      .hero-bullets li {
        font-size: 17px;
      }
      .hero-bullets::before {
        left: -80px;
        bottom: -100px;
      }
    }
    .btn-hero-cta {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: #F58220;
      color: #fff;
      font-size: 19px;
      font-weight: 700;
      padding: 15px 36px;
      border-radius: 50px;
      box-shadow: 0 4px 20px rgba(0,0,0,.25);
      transition: transform .15s, box-shadow .15s;
    }
    .btn-hero-cta:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.3); }
    .btn-hero-cta .badge-above {
      position: absolute;
      top: -11px;
      left: 50%;
      transform: translateX(-50%);
      background: #fff;
      color: #F58220;
      font-size: 12px;
      font-weight: 700;
      padding: 2px 12px;
      border-radius: 10px;
      white-space: nowrap;
    }

    /* Right visual column */
    .hero-visual {
      position: absolute;
      top: -90px;
      right: -300px;
      width: 1000px;
      display: flex;
      flex-direction: column;
      z-index: 1;
      gap: 0;
    }
    .hero-photo-placeholder {
      flex: 1;
      min-height: 0;
      border-radius: 0;
      background: none;
      border: none;
      object-fit: contain;
      object-position: center bottom;
    }

    /* Price overlay area */
    .hero-price-area {
      position: absolute;
      bottom: 65px;
      left: 50%;
      transform: translateX(-50%);
      width: max-content;
      padding: 0 16px 0;
    }

    /* Price card */
    .hero-price-card {
      display: flex;
      align-items: center;
      gap: 20px;
      background: transparent;
      padding: 0;
      position: relative;
    }

    .hero-img-note {
      font-size: 11px;
      color: #000000;
      text-align: left;
      margin-top: 8px;
    }

    /* 丸バッジ */
    .pc-badge-circle {
      position: absolute;
      top: -40px;
      left: -80px;
      transform: rotate(-20deg);
      width: 100px;
      height: 100px;
      border-radius: 50%;
      background: linear-gradient(135deg, #FFF3CE, #EEC65E);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      line-height: 1.3;
      padding: 8px;
      z-index: 1;
    }
    .pc-badge-circle .pc-badge-main {
      font-size: 14px;
      font-weight: 900;
      color: #1565C0;
    }
    .pc-badge-circle .pc-badge-sub {
      font-size: 11px;
      font-weight: 700;
      color: #5a3000;
      margin-top: 2px;
    }

    /* 右コンテンツ */
    .pc-content {
      flex: none;
      background: #fff;
      border-radius: 12px;
      padding: 16px 20px;
    }
    .hero-price-card .pc-desc {
      font-size: 13px;
      color: #1565C0;
      margin-bottom: 6px;
      line-height: 1.5;
    }
    .hero-price-area .pc-desc {
      font-weight: 500;
      font-size: 16px;
    }
    .hero-price-area .pc-desc .pc-desc-small {
      font-size: 12px;
    }
    .hero-price-card .pc-desc .pc-desc-small {
      font-size: 11px;
    }
    .hero-price-card .pc-total-row {
      display: flex;
      align-items: baseline;
      gap: 8px;
      margin-bottom: 12px;
    }
    .hero-price-card .pc-total-label {
      font-size: 17px;
      font-weight: 700;
      color: #1565C0;
    }
    .hero-price-card .pc-amount {
      font-size: 40px;
      font-weight: 900;
      color: #1565C0;
      line-height: 1;
      letter-spacing: -.5px;
    }
    .hero-price-card .pc-amount .pc-tax {
      font-size: 16px;
      font-weight: 500;
      color: #1565C0;
    }
    .hero-price-card .pc-pills {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
    }
    .hero-price-card .pc-pill {
      font-size: 13px;
      font-weight: 700;
      color: #fff;
      background: #1565C0;
      padding: 4px 14px;
      border-radius: 20px;
      white-space: nowrap;
    }

    /* ========================================
       SP HERO (mobile only)
    ======================================== */
    .sp-hero-section {
      display: none;
      overflow: hidden;
    }
    .sp-hero-blue-bg {
      background: linear-gradient(to right, #00A0E5 22%, #0079CF 100%);
      padding: 20px 20px 24px;
    }
    .sp-hero-price {
      padding: 0 10px 28px;
    }
    .sp-hero-bubbles {
      position: relative;
      z-index: 0;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0;
      margin-bottom: 14px;
    }
    .sp-hero-bubble {
      display: inline-block;
      background: #fff;
      color: #4F4F4F;
      font-size: 13.5px;
      font-weight: 700;
      padding: 6px 14px;
      border-radius: 8px;
      line-height: 1.4;
      position: relative;
      z-index: 0;
    }
    .sp-hero-bubble--tail {
      margin-left: 46px;
    }
    .sp-hero-bubble--tail::after {
      content: '';
      position: absolute;
      bottom: -7px;
      left: 18px;
      border-width: 7px 6px 0;
      border-style: solid;
      border-color: #fff transparent transparent;
    }
    .sp-hero-tag {
      display: inline-flex;
      justify-content: center;
      align-items: center;
      gap: 8px;
      color: #fff;
      font-size: 16px;
      font-weight: 500;
      margin-bottom: 8px;
      letter-spacing: .02em;
      white-space: nowrap;
      max-width: 100%;
    }
    .sp-hero-tag::before,
    .sp-hero-tag::after {
      content: '';
      background: #fff;
      height: 17px;
      width: 6px;
      clip-path: polygon(0 0, 100% 0, 50% 100%);
      flex-shrink: 0;
    }
    .sp-hero-tag::before { transform: rotate(-30deg); }
    .sp-hero-tag::after { transform: rotate(30deg); }
    .sp-hero-title {
      font-size: 30px;
      font-weight: 500;
      color: #fff;
      line-height: 1.3;
      letter-spacing: -.3px;
      margin-bottom: 0;
    }
    .sp-hero-title-big {
      font-size: clamp(30px, 11vw, 44px);
      white-space: nowrap;
    }

    .sp-hero-photo-wrap {
      position: relative;
      margin: 0 -20px -70px;
    }
    .sp-hero-photo {
      width: 100%;
      display: block;
      object-fit: contain;
    }
    .sp-hero-accent-top {
      position: absolute;
      top: -12px;
      right: 10px;
      width: 53px;
      z-index: -1;
      pointer-events: none;
    }
    .sp-hero-accent-drop {
      position: absolute;
      top: -1px;
      right: 47px;
      width: 20px;
      transform: translate(-50%, -50%);
      z-index: -1;
      pointer-events: none;
    }
    .sp-hero-fish {
      position: absolute;
      z-index: 2;
      right: 10px;
      bottom: -10px;
      width: 58px;
      transform: rotate(-13deg);
      pointer-events: none;
    }
    .sp-hero-label {
      position: absolute;
      z-index: 2;
      left: 0;
      bottom: 28px;
      width: 100px;
      height: 100px;
      border-radius: 50%;
      background: linear-gradient(135deg, #FFF3CE, #EEC65E);
      transform: rotate(-11deg);
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
    }
    .sp-hero-label-text {
      font-size: 13px;
      font-weight: 700;
      color: #1565C0;
      line-height: 1.4;
    }

    .sp-hero-checklist {
      position: relative;
      z-index: 1;
      background: #fff;
      border-radius: 5px;
      padding: 16px 16px 16px 40px;
      margin-top: 30px;
      margin-bottom: 20px;
    }
    .sp-hero-checklist ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .sp-hero-checklist li {
      position: relative;
      font-size: 14px;
      color: #4F4F4F;
      line-height: 1.5;
    }
    .sp-hero-checklist li::before {
      content: '';
      position: absolute;
      left: -24px;
      top: 1px;
      width: 17px;
      height: 17px;
      background: url('images/sp_hero_check.svg') no-repeat center / contain;
    }

    .sp-hero-badges { margin-bottom: 24px; }
    .sp-hero-badges img { width: 100%; display: block; }
    .sp-hero-badges-note {
      font-size: 11px;
      color: rgba(255,255,255,.85);
      text-align: left;
      margin-top: 0;
    }

    .sp-hero-price .hero-price-card {
      flex-direction: column;
      align-items: stretch;
      gap: 0;
      padding: 0;
    }
    .sp-hero-price .pc-desc {
      font-size: 16px;
    }
    .sp-hero-price .pc-desc .pc-desc-small {
      font-size: 16px;
    }
    .sp-hero-price .sp-hero-amount-num {
      font-size: 48px;
    }
    .sp-hero-price .pc-pills {
      flex-wrap: nowrap;
      gap: 8px;
      justify-content: center;
    }
    .sp-hero-price .pc-pill {
      font-size: 13px;
      padding: 4px 12px;
      white-space: nowrap;
    }
    .sp-hero-price .pc-badge-circle {
      position: absolute;
      top: -30px;
      right: 0;
      left: auto;
      transform: rotate(-15deg);
      margin-bottom: 0;
      width: 120px;
      height: 120px;
      z-index: 1;
      background: linear-gradient(135deg, #FFF3CE, #EEC65E);
    }
    .sp-hero-price .pc-badge-main {
      font-size: 18px;
    }
    .sp-hero-price .pc-badge-sub {
      font-size: 14px;
    }
    .sp-hero-price .pc-content {
      background: transparent;
      border-radius: 0;
      padding: 12px 4px 0;
    }

    @media (max-width: 600px) {
      .hero { display: none; }
      .sp-hero-section { display: block; }
      .hero-bottom-banner--first { display: none; }
    }

    /* ========================================
       TRUST SECTION
    ======================================== */
    .trust {
      padding: 80px 0;
      background: #fff;
    }
    .trust-inner {
      display: flex;
      align-items: center;
      gap: 60px;
    }
    .trust-text { flex: 1.2; }
    .trust-headline {
      font-size: clamp(22px, 2.5vw, 30px);
      font-weight: 700;
      color: #222;
      line-height: 1.5;
      margin-bottom: 18px;
    }
    .trust-headline .num {
      font-size: clamp(38px, 5vw, 50px);
      color: #F35F0E;
      display: inline-block;
      line-height: 1;
    }
    .trust-headline .emph { color: #F35F0E; }
    .trust-headline br.sp-br { display: none; }
    .trust-body {
      font-size: 16px;
      color: #4F4F4F;
      line-height: 1.95;
      margin-bottom: 12px;
    }
    .trust-note { font-size: 13px; color: #aaa; }

    /* Gold octagon badges */
    .trust-badges {
      display: flex;
      flex-direction: column;
      gap: 8px;
      flex-shrink: 0;
    }
    .trust-badges .trust-note {
      margin: 0;
      text-align: right;
    }
    @media (min-width: 961px) {
      .trust-badges img {
        transform: scale(0.9);
      }
    }
    .badge-octagon {
      position: relative;
      width: 116px;
      height: 116px;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
    }
    .badge-octagon::before {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(145deg, #f7df80, #c9910a, #f0d060, #a07008, #f7df80);
      clip-path: polygon(29% 0%, 71% 0%, 100% 29%, 100% 71%, 71% 100%, 29% 100%, 0% 71%, 0% 29%);
    }
    .badge-octagon-content {
      position: relative;
      z-index: 1;
      color: #5a3000;
      line-height: 1.2;
      padding: 8px;
    }
    .badge-octagon-content .b-label-top {
      font-size: 11px;
      font-weight: 700;
      display: block;
      margin-bottom: 2px;
    }
    .badge-octagon-content .b-num {
      font-size: 30px;
      font-weight: 900;
      display: block;
      line-height: 1;
    }
    .badge-octagon-content .b-unit { font-size: 15px; font-weight: 700; }
    .badge-octagon-content .b-label-bottom {
      font-size: 11px;
      font-weight: 500;
      display: block;
      margin-top: 2px;
    }

    /* ========================================
       WARNING BOX
    ======================================== */
    .warning-section {
      padding: 80px 0;
      background: #fff;
    }
    .warning-box {
      position: relative;
      border-radius: 14px;
      padding: 56px 48px 40px;
      max-width: 750px;
      margin: 0 auto;
    }
    .warning-box::before {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: 14px;
      padding: 7px;
      background: repeating-linear-gradient(
        -45deg,
        #9DB8CC 0px,
        #9DB8CC 7px,
        #00477C 7px,
        #00477C 14px
      );
      -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
    }
    .warning-title-wrap {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      position: absolute;
      top: -28px;
      left: 50%;
      transform: translateX(-50%);
      width: max-content;
      max-width: calc(100% - 48px);
    }
    .warning-deco {
      flex: 1;
      height: 2px;
      background: repeating-linear-gradient(
        90deg,
        #1B8BF0 0, #1B8BF0 6px,
        transparent 6px, transparent 12px
      );
      max-width: 80px;
    }
    .warning-title {
      font-size: 30px;
      font-weight: 900;
      color: #1a3a6b;
      background: #fff url(images/exclamation01.png) 6px / 70px auto no-repeat;
      padding: 12px 12px 25px 75px;
      display: flex;
      align-items: center;
    }
    .warning-title span {
      border-bottom: 5px solid #00477C;
    }
    .warning-title br.sp-br { display: none; }
    .warning-body {
      text-align: center;
      font-size: 16.5px;
      color: #4F4F4F;
      margin-bottom: 22px;
      line-height: 1.85;
    }
    .warning-body .red { color: #d00; font-weight: 700; }
    .warning-highlight {
      background: #E6F8FF;
      border-radius: 0 0 8px 8px;
      padding: 18px 48px;
      margin: 0 -48px -40px;
      text-align: center;
      font-size: 17px;
      color: #1a3a6b;
      font-weight: 700;
      line-height: 1.85;
    }
    .warning-highlight .blue { color: #1B8BF0; }
    .warning-highlight-logo { width: 140px; }

    /* ========================================
       CTA SECTION
    ======================================== */
    .cta-section {
      background: linear-gradient(to right, #07AFF8, #006FD7);
      height: 390px;
      display: flex;
      align-items: center;
    }
    .cta-inner {
      max-width: 768px;
      margin: 0 auto;
      text-align: center;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 24px;
      padding: 0 24px;
    }
    .cta-heading {
      font-size: 34px;
      font-weight: 700;
      color: #fff;
      letter-spacing: 1.7px;
    }
    .cta-heading .cta-yellow { color: #FFFB7E; }
    .cta-heading br.sp-br { display: none; }
    .cta-body {
      font-size: 16px;
      font-weight: 500;
      color: #fff;
      line-height: 1.8;
      letter-spacing: 0.8px;
    }
    .cta-buttons {
      display: flex;
      gap: 16px;
      align-items: flex-start;
      justify-content: center;
      flex-wrap: wrap;
    }
    .cta-btn-wrap {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
    }
    .cta-primary-wrap {
      position: relative;
      margin-top: 14px;
    }
    .cta-badge {
      position: absolute;
      top: -14px;
      left: 50%;
      transform: translateX(-50%);
      background: #fff;
      border: 1px solid #FF8F00;
      border-radius: 4px;
      padding: 1px 12px;
      font-size: 12px;
      font-weight: 700;
      color: #0D47A1;
      white-space: nowrap;
      z-index: 1;
    }
    .cta-badge--phone {
      border: none;
    }
    .cta-phone-wrap {
      position: relative;
      margin-top: 14px;
    }
    .cta-btn-primary {
      position: relative;
      background: #FF8F00;
      border: 2px solid #fff;
      border-radius: 100px;
      padding: 18px 90px 18px 40px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 4px;
      text-decoration: none;
    }
    .cta-btn-phone {
      border: 1px solid #fff;
      border-radius: 100px;
      padding: 18px 30px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      min-width: 230px;
      text-decoration: none;
    }
    .cta-btn-main {
      font-size: 17px;
      font-weight: 700;
      color: #fff;
      letter-spacing: 0.8px;
    }
    .cta-btn-phone .cta-btn-main { font-size: 16px; }
    .cta-btn-sub {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 18px;
      font-size: 12px;
      font-weight: normal;
      color: #fff;
    }
    .cta-primary-wrap + .cta-btn-sub {
      font-size: 15px;
      font-weight: 700;
    }
    .cta-photo {
      position: absolute;
      right: 0;
      bottom: 0;
      height: 130%;
      width: auto;
    }

    /* ========================================
       STAFF / PRO TEAM
    ======================================== */
    .pro-team {
      padding: 40px 0 0;
      background: #fff;
    }
    .pro-intro {
      text-align: center;
      margin-bottom: 0;
    }
    .pro-intro h2 {
      font-size: clamp(24px, 4vw, 34px);
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .7px;
      margin-bottom: 4px;
    }
    .pro-intro .sub {
      font-size: clamp(17px, 2.5vw, 27px);
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .7px;
      line-height: 1.7;
    }
    .pro-intro .sub strong {
      color: #1565C0;
      font-weight: 700;
    }
    .pro-intro .sub br.sp-br { display: none; }
    .pro-intro .pro-divider {
      width: 44px;
      height: 4px;
      margin: 14px auto 0;
      border-radius: 2px;
      background: linear-gradient(to right, #1565C0, #1E88E5);
    }
    .staff-card {
      background: none;
      border-radius: 0;
      padding: 48px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 36px;
      text-align: center;
    }
    .staff-lead {
      font-size: 17px;
      color: #4F4F4F;
      font-weight: 500;
      line-height: 1.95;
      letter-spacing: .04em;
      max-width: 720px;
    }
    .staff-lead br.sp-br { display: none; }
    .staff-stats {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      gap: 10px;
      width: 540px;
      max-width: 100%;
    }
    .staff-stat-img {
      height: 68px;
      width: auto;
      flex-shrink: 0;
    }

    /* ========================================
       COMPARISON TABLE
    ======================================== */
    .comparison-section {
      padding: 80px 0;
      background: #fff;
    }
    .table-scroll {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      border-radius: 14px;
      border: 1px solid #BBDEFB;
    }
    .comp-table {
      width: 100%;
      min-width: 1082px;
      border-collapse: collapse;
      font-size: 14px;
    }
    .comp-table th {
      background: #546E7A;
      color: #fff;
      padding: 12px;
      text-align: center;
      font-weight: 700;
      letter-spacing: .035em;
      white-space: nowrap;
    }
    .comp-table th:first-child { background: #0D47A1; text-align: left; }
    .comp-table th.ours { background: #1565C0; }
    .comp-table td {
      padding: 10px;
      text-align: left;
      color: #4F4F4F;
      vertical-align: middle;
      line-height: 1.4;
    }
    .comp-table tbody tr:nth-child(even) td { background: #F0F6FF; }
    .comp-table td:first-child {
      font-weight: 700;
      color: #4F4F4F;
      white-space: nowrap;
    }
    .comp-table td.ours {
      color: #1565C0;
      font-weight: 700;
    }
    .comp-table .cell-row {
      display: flex;
      align-items: center;
      gap: 11px;
    }
    .comp-table .cell-row .ico-great,
    .comp-table .cell-row .ico-ok,
    .comp-table .cell-row .ico-warn,
    .comp-table .cell-row .ico-bad {
      flex-shrink: 0;
      width: 16px;
    }
    .comp-table .cell-label { flex: 1; }
    .ico-great, .ico-ok, .ico-warn, .ico-bad {
      font-size: 20px;
      font-weight: 900;
    }
    .ico-great, .ico-ok { color: #4CAF50; }
    .ico-warn  { color: #D97A00; }
    .ico-bad   { color: #f44336; }
    .comp-table-note {
      font-size: 13px;
      color: #4F4F4F;
      margin-top: 12px;
    }
    .comparison-section .section-title { color: #4F4F4F; }
    .price-compare-header { margin-top: 64px; }
    .price-compare-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 24px;
    }
    .price-compare-card {
      border: 1px solid #BBDEFB;
      border-radius: 14px;
      overflow: hidden;
    }
    .price-compare-title {
      background: #1565C0;
      color: #fff;
      font-weight: 700;
      font-size: 17px;
      letter-spacing: .04em;
      text-align: center;
      padding: 16px;
      line-height: 1.5;
    }
    .price-compare-title br.sp-br { display: none; }
    .price-compare-lead br.sp-br { display: none; }
    .price-compare-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 12px 16px;
      background: #fff;
    }
    .price-compare-row.ours,
    .price-compare-row.alt {
      background: #F0F6FF;
    }
    .price-compare-row.alt .price-compare-label,
    .price-compare-row.alt .price-compare-amount .num,
    .price-compare-row.alt .price-compare-amount .yen {
      font-weight: 700;
    }
    .price-compare-label {
      font-size: 14px;
      color: #4F4F4F;
      font-weight: 700;
    }
    .price-compare-row.ours .price-compare-label {
      font-size: 19px;
      color: #1565C0;
    }
    .price-compare-amount {
      font-size: 14px;
      color: #4F4F4F;
      white-space: nowrap;
    }
    .price-compare-amount .num {
      font-size: 20px;
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .02em;
    }
    .price-compare-row.ours .price-compare-amount .num,
    .price-compare-row.ours .price-compare-amount .yen {
      color: #F35F0E;
    }
    .price-compare-amount .yen {
      font-size: 14px;
      font-weight: 700;
      color: #4F4F4F;
    }
    .price-compare-amount .tax {
      font-size: 13px;
      color: #828282;
      margin-left: 2px;
    }
    @media (max-width: 700px) {
      .price-compare-grid { grid-template-columns: 1fr; }
      .price-compare-title { font-size: 17px; }
      .price-compare-title br.sp-br { display: block; }
      .price-compare-row.ours .price-compare-label { font-size: 16px; }
      .price-compare-amount .num { font-size: 20px; }
      .price-compare-lead br.sp-br { display: block; }
    }
    .price-compare-lead {
      margin-top: 100px;
      text-align: center;
      font-weight: 700;
      font-size: 20px;
      color: #4F4F4F;
      letter-spacing: .05em;
      line-height: 2.1;
    }
    .price-compare-lead .hl { color: #F35F0E; }
    @media (max-width: 700px) {
      .price-compare-lead { font-size: 15px; line-height: 1.9; margin-top: 36px; }
    }
    .compare-arrow-down {
      width: 0;
      height: 0;
      margin: 28px auto 0;
      border-left: 20px solid transparent;
      border-right: 20px solid transparent;
      border-top: 18px solid #4F4F4F;
    }
    .conclusion-block {
      display: grid;
      grid-template-columns: 128px 0.9fr 128px;
      align-items: center;
      gap: 30px;
      justify-content: center;
      margin: 40px auto 0;
      max-width: 780px;
      text-align: center;
    }
    .conclusion-badge {
      grid-column: 1;
      width: 128px;
      height: 128px;
      border-radius: 50%;
      background: #F35F0E;
      transform: rotate(-9deg);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-weight: 700;
      font-size: 17px;
      text-align: center;
      line-height: 1.5;
      letter-spacing: .05em;
    }
    .conclusion-text {
      grid-column: 2;
      justify-self: center;
      max-width: 460px;
      text-align: center;
    }
    .conclusion-label {
      font-size: 30px;
      font-weight: 700;
      color: #4F4F4F;
      margin-bottom: 8px;
    }
    .conclusion-heading {
      font-size: 20px;
      font-weight: 700;
      color: #4F4F4F;
      line-height: 1.6;
    }
    .conclusion-heading .hl {
      display: block;
      font-size: 26px;
      color: #F35F0E;
      margin-top: 6px;
    }
    .conclusion-heading .hl br.sp-br { display: none; }
    @media (max-width: 700px) {
      .conclusion-block { display: block; position: relative; }
      .conclusion-badge {
        position: absolute;
        top: -50px;
        left: 0px;
        width: 96px;
        height: 96px;
        font-size: 14px;
        z-index: 1;
      }
      .conclusion-text { width: 100%; }
      .conclusion-label { font-size: 30px; letter-spacing: .3em; }
      .conclusion-heading { font-size: 20px; }
      .conclusion-heading .hl { font-size: 29px; }
      .conclusion-heading .hl br.sp-br { display: block; }
    }

    /* ========================================
       PRODUCT LINEUP (SET PRICE)
    ======================================== */
    .lineup-section {
      padding: 80px 0;
      background: #FFFFFF;
    }
    .lineup-section .section-title { color: #4F4F4F; }
    .lineup-carousel {
      position: relative;
    }
    .lineup-scroll {
      width: 100%;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      padding-bottom: 16px;
      scroll-behavior: smooth;
      scrollbar-width: none;
    }
    .lineup-scroll::-webkit-scrollbar { display: none; }
    .lineup-track {
      display: flex;
      gap: 16px;
      padding: 4px 24px 12px;
      width: max-content;
      max-width: 100%;
      margin: 0 auto;
    }
    .lineup-arrow {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 5;
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: #4F4F4F;
      border: 3px solid #FFFFFF;
      color: #FFFFFF;
      font-size: 0;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      box-shadow: 0 2px 12px rgba(0,0,0,.15);
      transition: background .2s, transform .15s;
    }
    .lineup-arrow::before {
      content: '';
      width: 12px;
      height: 12px;
      border-top: 3px solid #FFFFFF;
      border-right: 3px solid #FFFFFF;
    }
    .lineup-arrow-prev::before { transform: rotate(-135deg); margin-right: -3px; }
    .lineup-arrow-next::before { transform: rotate(45deg); margin-left: -3px; }
    @media (hover: hover) {
      .lineup-arrow:hover { background: #F0F7FF; }
    }
    .lineup-arrow:active { transform: translateY(-50%) scale(.94); }
    .lineup-arrow[disabled] { opacity: .35; cursor: default; pointer-events: none; }
    .lineup-arrow-prev { left: 12px; }
    .lineup-arrow-next { right: 12px; }
    @media (max-width: 600px) {
      .lineup-arrow { width: 40px; height: 40px; }
      .lineup-arrow-prev { left: 4px; }
      .lineup-arrow-next { right: 4px; }
    }
    .product-card {
      position: relative;
      display: flex;
      flex-direction: column;
      width: 260px;
      flex-shrink: 0;
      background: #fff;
      border: 1px solid #d8d8d8;
      border-radius: 13px;
      overflow: hidden;
      box-shadow: 0 2px 10px rgba(0,0,0,.05);
    }
    .product-card-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      padding: 13px 13px 0;
    }
    .product-brand-logo {
      height: 25px;
      width: auto;
      object-fit: contain;
      flex-shrink: 0;
    }

    .product-warranty-badge {
      position: absolute;
      top: 13px;
      right: 13px;
      width: 80px;
      height: 80px;
      z-index: 2;
      object-fit: contain;
    }

    .product-photo {
      width: 260px;
      height: 210px;
      margin: 8px auto 0;
      object-fit: contain;
    }
    @media (min-width: 961px) {
      .product-photo {
        width: 234px;
        height: 189px;
      }
    }
    .product-info {
      padding: 12px 15px 0;
      text-align: center;
    }
    .product-model {
      font-size: 19px;
      font-weight: 700;
      color: #111;
      line-height: 120%;
    }
    .product-remote {
      font-size: 12.5px;
      color: #4f4f4f;
    }
    .product-tags {
      display: flex;
      justify-content: center;
      flex-wrap: nowrap;
      gap: 6px;
      margin-top: 9px;
    }
    .product-tags span {
      background: #FFE2E2;
      color: #4f4f4f;
      font-size: 13px;
      font-weight: 700;
      padding: 3px 9px;
      border-radius: 3px;
      white-space: nowrap;
    }
    .product-price-box {
      margin-top: 13px;
      border-bottom: 2px solid #D90000;
    }
    .product-price-label {
      background: #D90000;
      color: #fff;
      text-align: center;
      font-size: 12.5px;
      font-weight: 700;
      padding: 5px;
    }
    .product-price-amount {
      text-align: center;
      color: #D90000;
      font-weight: 700;
      padding: 9px 0;
    }
    .product-price-amount .num { font-size: 32px; }
    .product-price-amount .unit { font-size: 15px; }
    .product-compare {
      padding: 7px 15px 0;
    }
    .product-compare-row {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 7px;
      padding: 7px 0;
      border-bottom: 1px solid #e5e5e5;
      font-size: 13.5px;
      color: #555;
    }
    .product-compare-row .val {
      font-size: 16px;
      font-weight: 700;
      color: #4f4f4f;
      white-space: nowrap;
    }
    .product-compare-row.msrp {
      background: #fafafa;
      margin: 0 -15px;
      padding: 7px 15px;
    }
    .product-compare-row.msrp .val {
      font-weight: 400;
      text-decoration: line-through;
    }
    .product-off-badge {
      margin: 12px 15px 0;
      background: #D90000;
      color: #fff;
      text-align: center;
      font-size: 19px;
      font-weight: 900;
      padding: 7px 7px;
      border-radius: 3px;
    }
    .product-feature {
      padding: 12px 15px 19px;
      font-size: 13px;
      color: #4f4f4f;
      line-height: 1.6;
    }
    .product-feature strong { font-weight: 700; }

    .lineup-cta {
      display: flex;
      flex-direction: column;
      align-items: center;
      margin-top: 40px;
    }
    .lineup-cta-btn {
      position: relative;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      width: 520px;
      max-width: 100%;
      background: #fff;
      border: 2px solid #1565C0;
      border-radius: 100px;
      padding: 16px 0;
      font-size: 19px;
      font-weight: 700;
      color: #1565C0;
      letter-spacing: 0.8px;
      text-decoration: none;
      transition: background .2s, box-shadow .2s;
    }
    .lineup-cta-btn:hover { background: #F0F7FF; }
    .lineup-cta-arrow {
      flex-shrink: 0;
    }
    .lineup-cta-buttons-sp {
      display: none;
      flex-direction: column;
      align-items: center;
      gap: 16px;
      margin-top: 40px;
    }
    .lineup-cta-btn-sp {
      width: 95%;
      max-width: 100%;
      padding: 16px 0;
      margin-bottom: 20px;
      font-size: 17px;
    }

    @media (max-width: 600px) {
      .lineup-section { padding: 56px 0; }
      .lineup-scroll { scroll-snap-type: x mandatory; }
      .lineup-track { padding: 4px 40px 12px; gap: 16px; }
      .product-card {
        width: calc(100vw - 96px);
        scroll-snap-align: center;
        margin-right: 0;
      }
      .product-photo { width: 220px; height: 178px; }
      .lineup-cta { display: none; }
      .lineup-cta-buttons-sp { display: flex; }
    }

    /* ========================================
       REVIEWS
    ======================================== */
    .reviews-section {
      padding: 80px 0;
      background: #E4F3FF;
      position: relative;
      z-index: 0;
    }
    .reviews-dot-decor-wrap {
      position: absolute;
      inset: 0;
      overflow: hidden;
      z-index: -1;
      pointer-events: none;
    }
    .reviews-dot-decor {
      position: absolute;
      width: 300px;
      height: auto;
    }
    .reviews-dot-decor--tr { top: -80px; right: -70px; }
    .reviews-dot-decor--bl { bottom: -80px; left: -70px; }
    .reviews-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }
    .review-block {}
    .review-bubble {
      background: #07AFF8;
      color: #fff;
      font-size: 16.5px;
      font-weight: 700;
      padding: 12px 20px;
      border-radius: 10px;
      text-align: center;
      position: relative;
      margin-bottom: 14px;
    }
    .review-bubble::after {
      content: '';
      position: absolute;
      bottom: -9px;
      left: 50%;
      transform: translateX(-50%);
      border-width: 10px 8px 0;
      border-style: solid;
      border-color: #07AFF8 transparent transparent;
    }
    @media (min-width: 961px) {
      .review-bubble {
        padding: 7px 20px;
        font-weight: 500;
      }
    }
    .review-card {
      background: #fff;
      border-radius: 12px;
      padding: 20px;
      box-shadow: none;
      margin-top: 4px;
    }
    .review-top {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 12px;
    }
    .review-avatar {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      flex-shrink: 0;
    }
    .review-meta .reviewer-name {
      font-size: 15px;
      font-weight: 700;
      color: #333;
    }
    .review-meta .reviewer-detail {
      font-size: 13px;
      color: #aaa;
    }
    .review-stars {
      color: #F5A623;
      font-size: 15px;
      margin-bottom: 8px;
    }
    .review-text {
      font-size: 15px;
      color: #4F4F4F;
      line-height: 1.75;
    }
    .reviews-title {
      font-size: clamp(24px, 4vw, 34px);
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .7px;
      margin-bottom: 4px;
    }
    .reviews-divider {
      width: 44px;
      height: 4px;
      margin: 14px auto 20px;
      border-radius: 2px;
      background: linear-gradient(to right, #1565C0, #1E88E5);
    }
    .reviews-section .section-header {
      margin-bottom: 24px;
    }
    .reviews-row {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 48px;
      flex-wrap: wrap;
    }
    .review-tags {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 24px 34px;
    }
    @media (min-width: 961px) {
      .review-tags {
        margin-top: 50px;
      }
    }
    .review-tags .review-bubble {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: auto;
      white-space: nowrap;
      margin-bottom: 0;
    }
    .reviews-badge {
      width: 130px;
      height: auto;
      flex-shrink: 0;
    }
    .review-reply-card {
      background: #fff;
      border: 2px solid #90CAF9;
      border-radius: 12px;
      padding: 20px;
    }
    .review-reply-top {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 10px;
    }
    .review-reply-avatar {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: #1B8BF0;
      color: #fff;
      font-size: 16px;
      font-weight: 900;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .review-reply-name {
      font-size: 15px;
      font-weight: 700;
      color: #4F4F4F;
    }
    .review-reply-text {
      font-size: 12px;
      color: #4f4f4f;
      line-height: 1.65;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 5;
      overflow: hidden;
    }
    .review-carousel {
      position: relative;
      margin-top: 40px;
    }
    .review-scroll {
      width: 100%;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      padding-bottom: 16px;
      scroll-behavior: smooth;
      scrollbar-width: none;
    }
    .review-scroll::-webkit-scrollbar { display: none; }
    .review-track {
      display: flex;
      gap: 20px;
      padding: 4px 24px 12px;
      width: max-content;
      max-width: 100%;
      margin: 0 auto;
    }
    .review-col {
      display: flex;
      flex-direction: column;
      gap: 14px;
      width: 300px;
      flex-shrink: 0;
    }
    .review-col .review-card { margin-top: 0; }
    .review-arrow {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 5;
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: #4F4F4F;
      border: 3px solid #FFFFFF;
      color: #FFFFFF;
      font-size: 0;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      box-shadow: 0 2px 12px rgba(0,0,0,.15);
      transition: background .2s, transform .15s;
    }
    .review-arrow::before {
      content: '';
      width: 12px;
      height: 12px;
      border-top: 3px solid #FFFFFF;
      border-right: 3px solid #FFFFFF;
    }
    .review-arrow-prev::before { transform: rotate(-135deg); margin-right: -3px; }
    .review-arrow-next::before { transform: rotate(45deg); margin-left: -3px; }
    @media (hover: hover) {
      .review-arrow:hover { background: #F0F7FF; }
    }
    .review-arrow:active { transform: translateY(-50%) scale(.94); }
    .review-arrow[disabled] { opacity: .35; cursor: default; pointer-events: none; }
    .review-arrow-prev { left: 12px; }
    .review-arrow-next { right: 12px; }
    @media (max-width: 600px) {
      .reviews-section { padding: 80px 0 56px; }
      .reviews-row { gap: 28px; }
      .review-tags { gap: 16px 20px; }
      .review-tags .review-bubble { font-size: 14.5px; padding: 10px 16px; white-space: normal; }
      .reviews-badge { width: 100px; }
      .review-col { width: calc(100vw - 32px); }
      .review-track { padding: 4px 16px 12px; }
      .review-arrow { width: 40px; height: 40px; }
      .review-arrow-prev { left: 4px; }
      .review-arrow-next { right: 4px; }
    }

    /* ========================================
       CONCERNS
    ======================================== */
    .concerns-section {
      padding: 80px 0;
      background: #F3F3F3;
      position: relative;
      overflow: hidden;
    }
    .concerns-header {
      position: relative;
      text-align: center;
      margin-bottom: 0;
    }
    .concerns-title {
      font-size: clamp(24px, 3vw, 34px);
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .05em;
      margin-bottom: 10px;
    }
    .concerns-subtitle {
      font-size: clamp(16px, 2vw, 20px);
      font-weight: 700;
      color: #4F4F4F;
      margin-bottom: 18px;
    }
    .concerns-title br.sp-br,
    .concerns-subtitle br.sp-br { display: none; }
    .concerns-illust3-sp { display: none; }
    .concerns-illust {
      position: absolute;
      width: 130px;
      pointer-events: none;
    }
    .concerns-illust.left { left: 14%; }
    .concerns-illust.right { right: 14%; }
    .concerns-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }
    .concern-card {
      background: #fff;
      border: 1px solid #828282;
      border-radius: 14px;
      overflow: hidden;
    }
    .concern-card-q {
      background: #828282;
      color: #fff;
      font-size: 15.5px;
      font-weight: 700;
      letter-spacing: .04em;
      padding: 14px 16px;
    }
    .concern-card-a {
      padding: 20px 16px;
    }
    .concern-heading {
      color: #F35F0E;
      font-size: 19px;
      font-weight: 700;
      margin-bottom: 10px;
    }
    .concern-text {
      color: #4F4F4F;
      font-size: 15px;
      line-height: 1.7;
    }

    /* ========================================
       WHY CHOSEN
    ======================================== */
    .why-section {
      padding: 80px 0 0;
      background: linear-gradient(180deg, #fff 0%, #E6F8FF 62%);
      overflow-x: hidden;
    }
    .why-content {
      max-width: 900px;
      margin: 0 auto;
    }
    .why-title-accent { color: #1565C0; }
    .why-point { margin-bottom: 56px; }
    .why-point:last-child { margin-bottom: 0; }
    .why-point-head {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 16px;
    }
    .why-num {
      font-family: 'Oswald', 'Noto Sans JP', sans-serif;
      font-size: 48px;
      font-weight: 700;
      color: #1565C0;
      line-height: 1;
      min-width: 48px;
    }
    .why-point-title {
      font-size: clamp(20px, 2.5vw, 26px);
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .03em;
    }
    .why-point-text {
      font-size: 16px;
      color: #4F4F4F;
      line-height: 1.85;
    }
    .why-point-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
      margin-top: 32px;
    }
    .why-card {
      background: #fff;
      border: 1px solid #BBDEFB;
      border-radius: 14px;
      padding: 24px;
      display: flex;
      align-items: flex-start;
      gap: 19px;
    }
    .why-card-img {
      width: 125px;
      height: 136px;
      flex-shrink: 0;
      border-radius: 10px;
      overflow: hidden;
    }
    .why-card-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .why-card-body {
      min-width: 0;
    }
    .why-card-label {
      font-size: 15px;
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .05em;
      margin-bottom: 8px;
    }
    .why-card-text {
      font-size: 16px;
      color: #4F4F4F;
      line-height: 1.675;
    }
    .why-card-text strong {
      color: #1565C0;
      font-weight: 700;
    }
    @media (min-width: 961px) {
      .why-card {
        flex-direction: column;
        gap: 24px;
      }
      .why-card-img {
        width: 100%;
        height: 136px;
      }
      .why-card-img img {
        object-position: center 20%;
      }
      .why-graph-img-pc {
        transform: scale(1.2);
        transform-origin: top center;
      }
    }
    .why-point-flex {
      display: flex;
      align-items: flex-start;
      gap: 40px;
      flex-wrap: wrap;
    }
    .why-point-body {
      flex: 1 1 480px;
    }
    .why-subpoint + .why-subpoint {
      margin-top: 32px;
    }
    .why-point-intro {
      display: flex;
      align-items: flex-start;
      gap: 40px;
      flex-wrap: wrap;
    }
    .why-point-badge {
      flex: 0 0 160px;
      max-width: 160px;
    }
    .why-point-badge img {
      width: 100%;
      height: auto;
      display: block;
    }
    .why-title-badge-sp { display: none; }
    .why-point-graph {
      flex: 0 0 260px;
      max-width: 260px;
      margin-right: -80px;
    }
    .why-point-graph img {
      width: 100%;
      height: auto;
      border-radius: 12px;
    }
    .why-graph-img-sp { display: none; }
    .why-caption {
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 20px;
      gap: 14px;
      transform: translateX(50px);
    }
    .why-caption-line {
      flex: 0 0 auto;
      width: 2px;
      height: 76px;
      background: #4F4F4F;
    }
    .why-caption-line.left {
      transform: rotate(-20deg);
      transform-origin: bottom center;
    }
    .why-caption-line.right {
      transform: rotate(20deg);
      transform-origin: bottom center;
    }
    .why-caption-text {
      font-size: 14px;
      font-weight: 700;
      color: #4F4F4F;
      text-align: center;
      line-height: 1.6;
    }
    .why-caption-text strong {
      color: #1565C0;
    }
    .why-point-footer {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: center;
      column-gap: 24px;
      margin-top: 48px;
    }
    .why-point-footer-img {
      grid-column: 1;
      grid-row: 1;
      justify-self: end;
      align-self: end;
      max-width: 340px;
      height: auto;
    }
    .why-point-footer-text {
      grid-column: 2;
      grid-row: 1;
      font-size: 36px;
      font-weight: 700;
      color: #4F4F4F;
      text-align: left;
      white-space: nowrap;
    }
    .why-point-footer-text br.sp-br { display: none; }

    /* Decorative dot circles */
    .why-section {
      position: relative;
      z-index: 0;
      overflow: hidden;
    }
    .why-dot-decor {
      position: absolute;
      z-index: -1;
      pointer-events: none;
    }
    .why-point-cards {
      position: relative;
      z-index: 0;
    }
    .why-dot-decor--cards {
      top: 50%;
      right: -420px;
      transform: translateY(-50%);
    }
    .why-content > .why-point:last-child {
      position: relative;
      z-index: 0;
    }
    .why-dot-decor--point2 {
      top: -20px;
      left: -420px;
    }
    .why-dot-decor--bottom {
      right: -130px;
      bottom: -197px;
    }

    /* ========================================
       RECOMMEND SET
    ======================================== */
    .recommend-section {
      padding: 80px 0;
      background: #fff;
    }
    .recommend-pill {
      width: 230px;
      height: 40px;
      background: #07AFF8;
      border-radius: 31px;
      margin: 0 auto 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-size: 15px;
      font-weight: 700;
      letter-spacing: .03em;
    }
    .recommend-subtitle {
      font-size: clamp(18px, 2.2vw, 27px);
      font-weight: 700;
      color: #4F4F4F;
      text-align: center;
      letter-spacing: .03em;
      margin-bottom: 8px;
    }
    .recommend-subtitle br.sp-br { display: none; }
    .recommend-title {
      font-size: clamp(24px, 3vw, 34px);
      font-weight: 700;
      color: #4F4F4F;
      text-align: center;
      letter-spacing: .03em;
      margin-bottom: 10px;
    }
    .recommend-title br.sp-br { display: none; }
    .recommend-logos {
      display: block;
      max-width: 420px;
      width: 100%;
      height: auto;
      margin: 32px auto 0;
    }
    .recommend-note {
      font-size: 16px;
      color: #4F4F4F;
      text-align: center;
      margin-top: 16px;
      margin-bottom: 50px;
    }
    .pack-included {
      margin-top: 56px;
      scroll-margin-top: 100px;
    }
    .pack-included-title {
      font-size: clamp(15px, 2vw, 19px);
      font-weight: 500;
      color: #4F4F4F;
      text-align: center;
      margin-bottom: 28px;
    }
    .pack-included-title br.sp-br { display: none; }
    .pack-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 6px;
      max-width: 808px;
      margin: 0 auto;
    }
    .pack-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
    }
    .pack-icon-box {
      width: 100%;
      height: 72px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .pack-icon-box img {
      max-width: 100%;
      max-height: 100%;
    }
    .pack-item-label {
      font-size: 13px;
      color: #4F4F4F;
      text-align: center;
      line-height: 1.4;
    }
    .pack-warranty {
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .pack-warranty-label {
      font-size: 13px;
      font-weight: 700;
      color: #4F4F4F;
      margin-bottom: 2px;
    }
    .pack-warranty-num {
      font-size: 40px;
      font-weight: 800;
      color: #4F4F4F;
      line-height: 1;
    }
    .pack-warranty-num small {
      font-size: 20px;
      font-weight: 700;
      margin-left: 2px;
    }
    .warranty-card {
      max-width: 900px;
      margin: 40px auto 0;
      border: 2px solid #B9B9B9;
      border-radius: 11px;
      overflow: hidden;
      background: #fff;
    }
    .warranty-banner {
      display: block;
      width: 100%;
      height: 70px;
      object-fit: cover;
      object-position: top;
    }
    .warranty-banner-sp { display: none; }
    .warranty-banner-pc {
      border-radius: 11px;
      box-sizing: border-box;
      position: relative;
      z-index: 1;
    }
    .warranty-body {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 32px;
      padding: 50px 32px 28px;
    }
    .warranty-heading {
      font-size: 21px;
      font-weight: 700;
      color: #1565C0;
      line-height: 1.5;
      margin-bottom: 10px;
    }
    .warranty-text {
      font-size: 15px;
      color: #4F4F4F;
      line-height: 1.8;
    }
    .recommend-cta {
      margin-top: 48px;
      display: flex;
      justify-content: center;
    }
    .recommend-cta .cta-btn-primary { width: 500px; box-sizing: border-box; align-items: center; text-align: center; padding: 18px 40px; }
    .recommend-cta .cta-badge { font-size: 16px; }
    .recommend-cta .cta-btn-main { font-size: 19px; }

    /* ========================================
       CONSTRUCTION FLOW
    ======================================== */
    .flow-section {
      padding: 80px 0;
      background: #F4F6F7;
    }
    .flow-header {
      text-align: center;
      margin-bottom: 48px;
    }
    .flow-title {
      font-size: clamp(24px, 3vw, 34px);
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .05em;
    }
    .flow-subtitle {
      font-size: clamp(15px, 2vw, 19px);
      font-weight: 500;
      color: #4F4F4F;
      margin-top: 12px;
    }
    .flow-subtitle br.sp-br { display: none; }
    .flow-grid {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 16px;
    }
    .flow-step {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
    }
    .flow-step-img {
      width: 100%;
      aspect-ratio: 161 / 140;
      border-radius: 14px;
      overflow: hidden;
      background: #fff;
      margin-bottom: 10px;
    }
    .flow-step-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: top;
      display: block;
    }
    .flow-step-img img.flow-step-img-zoom {
      object-position: 0% 30%;
      transform: scale(1.5);
      transform-origin: 8% 35%;
    }
    .flow-step-img img.flow-step-img-contain {
      object-fit: contain;
      object-position: center;
    }
    .flow-step-num {
      font-size: 28px;
      font-weight: 400;
      color: #828282;
      margin-bottom: 8px;
    }
    .flow-step-title {
      font-size: 16px;
      font-weight: 700;
      color: #1565C0;
      line-height: 1.4;
      margin-bottom: 8px;
    }
    .flow-step-note {
      font-size: 13px;
      color: #4F4F4F;
      line-height: 1.5;
    }

    /* ========================================
       PAYMENT METHODS
    ======================================== */
    .payment-section {
      padding: 80px 0;
      background: #fff;
    }
    .payment-header {
      text-align: center;
      margin-bottom: 48px;
    }
    .payment-title {
      font-size: clamp(24px, 3vw, 34px);
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .05em;
    }
    .payment-subtitle {
      font-size: 19px;
      font-weight: 500;
      color: #4F4F4F;
      margin-top: 12px;
    }
    .payment-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 30px;
    }
    .payment-card-title {
      background: #1565C0;
      color: #fff;
      font-weight: 700;
      font-size: 16px;
      letter-spacing: .04em;
      text-align: center;
      padding: 6px 8px;
      white-space: nowrap;
    }
    .payment-card-title small {
      font-size: 10px;
      font-weight: 700;
      margin-left: 2px;
    }
    .payment-card-text {
      font-size: 15px;
      color: #4F4F4F;
      line-height: 1.67;
      margin-top: 16px;
      min-height: 65px;
    }
    .payment-card-img {
      height: 110px;
      border-radius: 14px;
      overflow: hidden;
      margin-top: 16px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .payment-card-img img {
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
    }
    @media (min-width: 961px) {
      .payment-card-img img {
        transform: scale(0.9);
      }
    }
    @media (max-width: 960px) {
      .payment-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
    }
    @media (max-width: 600px) {
      .payment-section { padding: 56px 0; }
      .payment-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 20px; }
      .payment-card-img img { max-width: 90%; max-height: 90%; }
    }

    /* ========================================
       SERVICE AREA
    ======================================== */
    .area-section {
      padding: 80px 0;
      background: #fff;
      text-align: center;
    }
    .area-title {
      font-size: clamp(24px, 3vw, 34px);
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .05em;
    }
    .area-desc {
      font-size: 17.5px;
      font-weight: 500;
      color: #4F4F4F;
      line-height: 1.85;
      margin-top: 20px;
    }
    .area-cta {
      margin-top: 48px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 14px;
    }
    .area-btn {
      position: relative;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background: #fff;
      border: 2px solid #1565C0;
      border-radius: 100px;
      padding: 16px 44px;
      font-size: 16px;
      font-weight: 700;
      color: #1565C0;
      letter-spacing: .04em;
      text-decoration: none;
      transition: background .2s;
    }
    .area-btn:hover { background: #F0F7FF; }
    .area-btn-icon {
      position: relative;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: #1565C0;
      flex-shrink: 0;
    }
    .area-btn-icon::before,
    .area-btn-icon::after {
      content: '';
      position: absolute;
      background: #fff;
      top: 50%;
      left: 50%;
    }
    .area-btn-icon::before { width: 10px; height: 2px; transform: translate(-50%, -50%); }
    .area-btn-icon::after { width: 2px; height: 10px; transform: translate(-50%, -50%); }
    .area-note {
      font-size: 13px;
      color: #4F4F4F;
      font-weight: 350;
    }
    .area-table-footnote {
      margin-top: 16px;
      text-align: center;
    }
    .area-table-panel {
      margin-top: 32px;
      text-align: left;
    }
    .area-table-wrap {
      margin: 0 auto;
      max-width: 900px;
      position: relative;
      z-index: 1;
    }
    .area-service-table {
      background-color: #fff;
      border: 2px solid #1e69b1;
      border-collapse: collapse;
      width: 100%;
    }
    .area-service-table caption {
      caption-side: top;
      color: inherit;
      padding-bottom: 1rem;
      text-align: center;
      font-weight: 500;
      font-size: 1.25rem;
    }
    .area-service-table thead th {
      background-color: #1e69b1;
      border: 1px solid #1e69b1;
      color: #fff;
      font-size: 1rem;
      font-weight: 700;
      padding: .875rem 1rem;
      text-align: center;
    }
    .area-service-table tbody td,
    .area-service-table tbody th {
      border: 1px solid #dee2e6;
      font-size: 1rem;
      padding: 1rem;
      vertical-align: top;
    }
    .area-service-table tbody th {
      background-color: #eff6fd;
      font-weight: 700;
      text-align: center;
      white-space: nowrap;
      width: 7rem;
    }
    .area-service-table tbody td {
      line-height: 1.8;
      text-align: left;
    }
    @media screen and (max-width: 768px) {
      .area-service-table thead { display: none; }
      .area-service-table tbody tr { border-bottom: 2px solid #1e69b1; display: block; }
      .area-service-table tbody tr:last-child { border-bottom: none; }
      .area-service-table tbody td,
      .area-service-table tbody th { box-sizing: border-box; display: block; width: 100%; }
      .area-service-table tbody th { background-color: #1e69b1; border: none; color: #fff; padding: .75rem 1rem; text-align: center; }
      .area-service-table tbody td { border: none; border-top: 1px solid #dee2e6; }
    }
    @media (max-width: 600px) {
      .area-section { padding: 56px 0; }
      .area-desc { font-size: 15px; }
      .area-btn { padding: 15px 32px; font-size: 15px; }
    }

    /* ========================================
       STAFF INTRO
    ======================================== */
    .staff-section {
      padding: 80px 0;
      background: #fff;
    }
    .staff-content {
      display: flex;
      align-items: flex-start;
      gap: 60px;
    }
    .staff-text { flex: 1 1 480px; min-width: 0; text-align: center; }
    .staff-badge {
      display: inline-block;
      background: linear-gradient(172deg, #1565C0 0%, #1E88E5 100%);
      color: #fff;
      font-size: 14px;
      font-weight: 700;
      letter-spacing: .05em;
      padding: 8px 24px;
      border-radius: 50px;
      margin-bottom: 20px;
    }
    .staff-title {
      font-size: clamp(24px, 3vw, 34px);
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .05em;
      margin-bottom: 20px;
    }
    .staff-desc {
      font-size: 17.5px;
      color: #4F4F4F;
      line-height: 1.8;
      margin-bottom: 28px;
    }
    .staff-desc strong {
      color: #1565C0;
      font-weight: 700;
    }
    .staff-desc br.sp-br { display: none; }
    .staff-tags {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 12px;
    }
    .staff-tag-break {
      display: none;
      width: 0;
      flex-basis: 0;
    }
    .staff-tag {
      background: #F0F6FF;
      border: 1px solid #90CAF9;
      border-radius: 50px;
      padding: 9px 21px;
      font-size: 14px;
      font-weight: 700;
      color: #4F4F4F;
      white-space: nowrap;
    }
    .staff-photo {
      flex: 0 0 399px;
      max-width: 399px;
    }
    .staff-photo-caption {
      font-size: 13px;
      color: #4F4F4F;
      margin-bottom: 10px;
    }
    .staff-photo img {
      width: 100%;
      height: auto;
      display: block;
      border-radius: 8px;
    }
    @media (max-width: 960px) {
      .staff-content { flex-direction: column; }
      .staff-photo { max-width: 100%; flex-basis: auto; align-self: center; }
    }
    @media (max-width: 600px) {
      .staff-section { padding: 56px 0; }
      .staff-desc { font-size: 17px; }
      .staff-desc br.sp-br { display: block; }
      .staff-text { flex: none; }
      .staff-tags { gap: 5px 10px; }
      .staff-tag { font-size: 13px; padding: 8px 16px; }
      .staff-tag-break { display: block; width: 100%; flex-basis: 100%; height: 0; margin-top: -5px; }
    }
    .staff-cards-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 24px;
      margin-top: 56px;
    }
    .staff-member-card {
      background: #fff;
      text-align: left;
      border: 1px solid #BBDEFB;
      border-radius: 14px;
      padding: 30px;
    }
    .staff-card-photo {
      width: 180px;
      aspect-ratio: 173 / 177;
      border-radius: 8px;
      overflow: hidden;
      margin: 0 auto 16px;
    }
    .staff-card-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    @media (min-width: 961px) {
      .staff-member-card {
        padding: 35px;
      }
      .staff-card-photo {
        width: auto;
        border-radius: 0;
      }
    }
    .staff-card-head {
      display: flex;
      align-items: baseline;
      gap: 8px;
      margin-bottom: 12px;
    }
    .staff-card-name {
      font-size: 17px;
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .05em;
    }
    .staff-card-years {
      font-size: 13px;
      font-weight: 700;
      color: #1565C0;
      white-space: nowrap;
      margin-left: auto;
    }
    .staff-card-text {
      font-size: 15px;
      color: #4F4F4F;
      line-height: 1.7;
    }
    @media (max-width: 960px) {
      .staff-cards-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 20px; }
    }
    @media (max-width: 600px) {
      .staff-cards-grid { grid-template-columns: 1fr; margin-top: 40px; }
    }
    .advisor-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 24px;
      margin-top: 70px;
    }
    .advisor-card {
      background: #fff;
      border: 1px solid #BBDEFB;
      border-radius: 14px;
      padding: 40px 32px;
    }
    .advisor-role {
      font-size: 17px;
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .05em;
      margin-bottom: 16px;
    }
    .advisor-intro {
      font-size: 15px;
      color: #4F4F4F;
      line-height: 1.7;
      margin-bottom: 32px;
    }
    .advisor-person {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }
    .advisor-person-text { flex: 1; min-width: 0; }
    .advisor-person-name {
      font-size: 17px;
      font-weight: 700;
      color: #4F4F4F;
      margin-bottom: 10px;
    }
    .advisor-person-bio {
      font-size: 15px;
      color: #4F4F4F;
      line-height: 1.7;
    }
    .advisor-person-photo {
      flex-shrink: 0;
      width: 173px;
      height: 133px;
      border-radius: 8px;
      overflow: hidden;
    }
    .advisor-person-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    @media (max-width: 960px) {
      .advisor-grid { grid-template-columns: 1fr; }
      .advisor-person { flex-direction: column; align-items: flex-start; }
      .advisor-person-photo { width: 100%; height: auto; aspect-ratio: 173/133; }
    }
    @media (max-width: 600px) {
      .advisor-grid { margin-top: 40px; }
      .advisor-card { padding: 28px 20px; }
      .advisor-person-photo { width: 200px; align-self: center; }
    }
    .qualifications-block {
      margin-top: 70px;
    }
    .qual-group {
      margin-bottom: 40px;
    }
    .qual-group:last-child { margin-bottom: 0; }
    .qual-heading {
      font-size: 18px;
      font-weight: 700;
      color: #4F4F4F;
      letter-spacing: .04em;
      padding-bottom: 9px;
      border-bottom: 1px solid #BBDEFB;
      margin-bottom: 20px;
    }
    .qual-grid {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 14px 16px;
    }
    .qual-item {
      font-size: 13px;
      color: #4F4F4F;
      padding-left: 13px;
      position: relative;
      line-height: 1.4;
    }
    .qual-item::before {
      content: '';
      position: absolute;
      left: 0;
      top: 7px;
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: #1565C0;
    }
    .qual-columns {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 16px 60px;
    }
    .qual-license-item { margin-bottom: 12px; }
    .qual-license-title {
      font-size: 13px;
      font-weight: 700;
      color: #4F4F4F;
      line-height: 1.6;
    }
    .qual-license-sub {
      font-size: 13px;
      color: #4F4F4F;
      line-height: 1.5;
      margin-top: 2px;
    }
    .qual-license-line {
      font-size: 13px;
      color: #4F4F4F;
      line-height: 2;
    }
    @media (max-width: 960px) {
      .qual-grid { grid-template-columns: repeat(3, 1fr); }
      .qual-columns { grid-template-columns: 1fr; gap: 24px; }
    }
    @media (max-width: 600px) {
      .qualifications-block { margin-top: 48px; }
      .qual-grid { grid-template-columns: repeat(2, 1fr); }
    }

    /* ========================================
       COMPANY INFO CARD
    ======================================== */
    .company-info-section {
      padding: 80px 0;
      background: #E6F8FF;
    }
    .company-info-card {
      position: relative;
      background: #fff;
      border: 1px solid #BBDEFB;
      border-radius: 24px;
      padding: 56px 48px;
      overflow: visible;
      width: 100%;
      max-width: 770px;
      margin: 0 auto;
    }
    .company-info-content { max-width: 670px; overflow-wrap: break-word; word-break: break-word; }
    .company-info-logo {
      width: 250px;
      height: auto;
      display: block;
      margin-bottom: 24px;
    }
    .company-info-tagline {
      font-size: 24px;
      font-weight: 400;
      color: #4F4F4F;
      letter-spacing: .06em;
      margin-bottom: 24px;
    }
    .company-info-desc {
      font-size: 16px;
      color: #4F4F4F;
      line-height: 1.8;
      margin-bottom: 40px;
    }
    .company-info-history {
      list-style: none;
      margin-bottom: 16px;
    }
    .company-info-history li {
      display: flex;
      gap: 12px;
      font-size: 16px;
      color: #4F4F4F;
      padding: 6px 0;
    }
    .company-info-history .year { flex: 0 0 110px; white-space: nowrap; }
    .company-info-history li > span:last-child { min-width: 0; }
    .company-info-url {
      font-size: 16px;
      color: #4F4F4F;
    }
    .company-info-url-link {
      color: inherit;
      text-decoration: none;
    }
    .company-info-url-link:hover {
      color: #1565C0;
    }
    .company-info-photo {
      display: block;
      width: 100%;
      max-width: 307px;
      height: auto;
      margin: 0 auto 32px;
    }
    @media (min-width: 961px) {
      .company-info-photo {
        position: absolute;
        top: -40px;
        right: 0;
        width: 307px;
        height: 183px;
        object-fit: cover;
        margin: 0;
        z-index: 1;
      }
    }
    @media (max-width: 600px) {
      .company-info-section { padding: 150px 0 56px; }
      .company-info-card { padding: 40px 24px; }
      .company-info-tagline { font-size: 24px; }
      .company-info-history li { font-size: 14px; }
      .company-info-history .year { flex-basis: 90px; }
      .company-info-desc { font-size: 16px; }
      .company-info-url { font-size: 14px; }
      .company-info-photo {
        position: absolute;
        top: -150px;
        left: 50%;
        transform: translateX(-50%);
        width: 250px;
        height: auto;
        margin: 0;
        z-index: 1;
      }
    }

    /* ========================================
       CONTACT FORM
    ======================================== */
    .contact-form-section {
      padding: 80px 0;
      background: #fff;
    }
    .contact-form-hp {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }
    .contact-form-card {
      max-width: 770px;
      margin: 0 auto;
      background: #fff;
      border-radius: 24px;
      padding: 0;
    }
    .contact-form-title {
      font-size: 28px;
      font-weight: 700;
      color: #4F4F4F;
      text-align: center;
      letter-spacing: .05em;
    }
    .contact-form-title-bar {
      width: 44px;
      height: 4px;
      background: #1565C0;
      border-radius: 2px;
      margin: 16px auto 24px;
    }
    .contact-form-badges {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 8px;
      margin-bottom: 24px;
    }
    .contact-form-badge {
      display: inline-flex;
      align-items: center;
      background: #E3F2FD;
      color: #1565C0;
      font-size: 13px;
      font-weight: 700;
      padding: 6px 16px;
      border-radius: 999px;
    }
    .contact-form-note {
      font-size: 13px;
      color: #4F4F4F;
      text-align: center;
      line-height: 1.7;
      margin-bottom: 40px;
    }
    .contact-form-server-error {
      background: #FFF0F0;
      border: 1px solid #D90000;
      border-radius: 8px;
      color: #D90000;
      font-size: 14px;
      font-weight: 700;
      text-align: center;
      padding: 14px 16px;
      margin-bottom: 24px;
    }
    .contact-form-restore-banner {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      background: #E3F2FD;
      border: 1px solid #BBDEFB;
      border-radius: 8px;
      padding: 14px 16px;
      margin-bottom: 24px;
    }
    .contact-form-restore-text {
      font-size: 14px;
      font-weight: 700;
      color: #1565C0;
      margin: 0;
    }
    .contact-form-restore-actions {
      display: flex;
      gap: 8px;
      flex-shrink: 0;
    }
    .contact-form-restore-btn {
      font-size: 13px;
      font-weight: 700;
      padding: 8px 18px;
      border-radius: 999px;
      border: none;
      cursor: pointer;
      background: #1565C0;
      color: #fff;
      font-family: inherit;
    }
    .contact-form-restore-btn-secondary {
      background: #fff;
      color: #1565C0;
      border: 1px solid #1565C0;
    }
    .contact-form-group {
      margin-bottom: 24px;
    }
    .contact-form-label {
      font-size: 16px;
      font-weight: 700;
      color: #4F4F4F;
      margin-bottom: 12px;
    }
    .contact-form-badge-required,
    .contact-form-badge-optional,
    .contact-form-badge-either {
      display: inline-block;
      font-size: 11px;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 4px;
      margin-left: 8px;
      vertical-align: middle;
    }
    .contact-form-badge-required { background: #FF8F00; color: #fff; }
    .contact-form-badge-optional { background: #E0E0E0; color: #666; }
    .contact-form-badge-either { background: #FF8F00; color: #fff; }
    .contact-form-sublabel {
      font-size: 13px;
      color: #828282;
      margin-bottom: 12px;
    }
    .contact-form-hint {
      font-size: 12px;
      color: #828282;
      margin-top: 8px;
    }
    .contact-form-upload-note {
      color: #4F4F4F;
      font-size: 12px;
    }
    .contact-form-hint-blue {
      font-size: 12px;
      color: #1565C0;
      margin: -12px 0 24px;
    }

    /* Radio list (ガス種) */
    .contact-form-radio-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .contact-form-radio-row {
      display: flex;
      align-items: center;
      gap: 12px;
      border: 2px solid #BBDEFB;
      border-radius: 10px;
      padding: 16px 18px;
      cursor: pointer;
      transition: border-color .15s, background .15s;
    }
    .contact-form-radio-row:hover { border-color: #1565C0; background: #F5FAFF; }
    .contact-form-radio-row input[type="radio"] { display: none; }
    .contact-form-radio-dot {
      flex-shrink: 0;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      border: 2px solid #BBDEFB;
      position: relative;
    }
    .contact-form-radio-row input:checked ~ .contact-form-radio-dot {
      border-color: #1565C0;
    }
    .contact-form-radio-row input:checked ~ .contact-form-radio-dot::after {
      content: '';
      position: absolute;
      inset: 3px;
      border-radius: 50%;
      background: #1565C0;
    }
    .contact-form-radio-row input:checked ~ .contact-form-radio-text {
      color: #1565C0;
      font-weight: 700;
    }
    .contact-form-radio-text { font-size: 16px; color: #4F4F4F; }
    .contact-form-radio-list.error-group .contact-form-radio-row { border-color: #D90000; }

    /* Toggle group (建物タイプ) */
    .contact-form-toggle-group {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }
    .contact-form-toggle { flex: 1 1 200px; }
    .contact-form-toggle input[type="radio"] { display: none; }
    .contact-form-toggle-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      height: 56px;
      border: 2px solid #BBDEFB;
      border-radius: 10px;
      font-size: 15px;
      font-weight: 500;
      color: #4F4F4F;
      cursor: pointer;
      transition: border-color .15s, background .15s, color .15s;
    }
    .contact-form-toggle-btn br.sp-br { display: none; }
    .contact-form-toggle-btn:hover { border-color: #1565C0; background: #F5FAFF; }
    .contact-form-toggle input:checked + .contact-form-toggle-btn {
      border-color: #1565C0;
      background: #1565C0;
      color: #fff;
      font-weight: 700;
    }
    .contact-form-toggle-group.error-group .contact-form-toggle-btn { border-color: #D90000; }

    /* File upload */
    .contact-form-upload-group {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }
    @media (min-width: 961px) {
      .contact-form-upload.contact-form-upload-camera {
        display: none;
      }
    }
    .contact-form-upload {
      display: flex;
      flex: 1 1 200px;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 6px;
      border: 2px dashed #BBDEFB;
      border-radius: 10px;
      padding: 28px 16px;
      cursor: pointer;
      text-align: center;
      transition: border-color .15s, background .15s;
    }
    .contact-form-upload:hover { border-color: #1565C0; background: #F5FAFF; }
    .contact-form-upload input[type="file"] { display: none; }
    .contact-form-upload-title { font-size: 15px; font-weight: 700; color: #4F4F4F; }
    .contact-form-upload-hint { font-size: 12px; color: #828282; }
    .contact-form-filename { font-size: 13px; color: #1565C0; margin-top: 8px; word-break: break-all; }
    .contact-form-filelist {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 8px;
    }
    .contact-form-filechip {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      max-width: 100%;
      background: #E3F2FD;
      color: #1565C0;
      font-size: 12px;
      font-weight: 700;
      padding: 6px 8px 6px 12px;
      border-radius: 999px;
    }
    .contact-form-filechip-name {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      max-width: 160px;
    }
    .contact-form-filechip-remove {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 18px;
      height: 18px;
      border: none;
      border-radius: 50%;
      background: #1565C0;
      color: #fff;
      font-size: 12px;
      line-height: 1;
      cursor: pointer;
      flex-shrink: 0;
      padding: 0;
      font-family: inherit;
    }

    /* Model number helper */
    .contact-form-model-box {
      display: flex;
      align-items: center;
      gap: 4px;
      flex-wrap: wrap;
      padding: 20px 0;
      margin-bottom: 16px;
    }
    .contact-form-model-hint { flex: 0 1 auto; min-width: 160px; }
    .contact-form-model-hint-title {
      color: #DB0707;
      font-size: 16px;
      font-weight: 700;
      line-height: 1.5;
      margin-bottom: 12px;
    }
    .contact-form-model-hint-text {
      color: #4F4F4F;
      font-size: 13px;
      line-height: 1.6;
      margin-bottom: 10px;
    }
    .contact-form-model-hint-sub {
      color: #828282;
      font-size: 13px;
      line-height: 1.6;
    }
    .contact-form-model-photo {
      width: 220px;
      max-width: 100%;
      height: auto;
      border-radius: 4px;
      flex-shrink: 0;
    }
    .contact-form-checkbox-row {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 12px;
      font-size: 15px;
      color: #4F4F4F;
      cursor: pointer;
    }
    .contact-form-checkbox-row input[type="checkbox"] {
      width: 16px;
      height: 16px;
      accent-color: #1565C0;
      cursor: pointer;
    }
    @media (max-width: 600px) {
      .contact-form-badge { width: 150px; justify-content: center; }
      .contact-form-note { text-align: left; }
      .contact-form-model-box { flex-wrap: nowrap; gap: 12px; }
      .contact-form-model-hint { min-width: 0; }
      .contact-form-model-photo { width: 190px; }
      .contact-form-toggle { flex: 1 1 0; }
      .contact-form-toggle-btn { font-size: 13px; padding: 0 4px; line-height: 1.3; }
      .contact-form-toggle-btn br.sp-br { display: block; }
    }

    /* Sample photos grid */
    .contact-form-sample-heading {
      font-size: 15px;
      font-weight: 700;
      color: #4F4F4F;
      margin: 16px 0 12px;
    }
    .contact-form-sample-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
      margin-bottom: 20px;
    }
    .contact-form-sample-item {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .contact-form-sample-photo {
      position: relative;
      border-radius: 8px;
      overflow: hidden;
      background: #F5F5F5;
      aspect-ratio: 4 / 3;
      cursor: zoom-in;
    }
    .contact-form-sample-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .contact-form-sample-zoom {
      position: absolute;
      bottom: 6px;
      right: 6px;
      background: rgba(79,79,79,.85);
      color: #fff;
      font-size: 11px;
      font-weight: 500;
      padding: 2px 8px;
      border-radius: 2px;
    }
    .contact-form-sample-caption {
      font-size: 13px;
      color: #4F4F4F;
      text-align: center;
      line-height: 1.4;
    }
    @media (max-width: 600px) {
      .contact-form-sample-grid { grid-template-columns: repeat(2, 1fr); }
    }

    /* Lightbox */
    .contact-form-lightbox {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.85);
      z-index: 9999;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: 12px;
      padding: 24px;
    }
    .contact-form-lightbox.show { display: flex; }
    .contact-form-lightbox img {
      max-width: 90vw;
      max-height: 78vh;
      border-radius: 10px;
      display: block;
    }
    .contact-form-lightbox-caption {
      color: #fff;
      font-size: 14px;
      font-weight: 700;
      text-align: center;
    }
    .contact-form-lightbox-close {
      position: absolute;
      top: 20px;
      right: 24px;
      color: #fff;
      font-size: 36px;
      cursor: pointer;
      line-height: 1;
      font-weight: 300;
    }

    /* Text inputs */
    .contact-form-input,
    .contact-form-textarea,
    .contact-form-select {
      width: 100%;
      padding: 14px 16px;
      border: 2px solid #BBDEFB;
      border-radius: 10px;
      font-size: 15px;
      font-family: inherit;
      color: #4F4F4F;
      background: #fff;
      transition: border-color .15s, box-shadow .15s;
    }
    .contact-form-input::placeholder,
    .contact-form-textarea::placeholder { color: rgba(79,79,79,.5); }
    .contact-form-input:focus,
    .contact-form-textarea:focus,
    .contact-form-select:focus {
      outline: none;
      border-color: #1565C0;
      box-shadow: 0 0 0 3px rgba(21,101,192,.12);
    }
    .contact-form-input.error,
    .contact-form-textarea.error,
    .contact-form-select.error {
      border-color: #D90000;
      box-shadow: 0 0 0 3px rgba(217,0,0,.08);
    }
    .contact-form-textarea { resize: vertical; min-height: 120px; }
    .contact-form-select {
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234F4F4F' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 16px center;
      padding-right: 40px;
      margin-bottom: 12px;
      cursor: pointer;
    }

    .contact-form-subheading {
      font-size: 19px;
      font-weight: 700;
      color: #4F4F4F;
      padding-bottom: 16px;
      margin-bottom: 24px;
      border-bottom: 1px solid #BBDEFB;
    }

    .contact-form-error {
      display: none;
      margin-top: 8px;
      font-size: 12px;
      font-weight: 700;
      color: #D90000;
    }
    .contact-form-error.show { display: block; }

    .contact-form-agree {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      background: #F0F6FF;
      border-radius: 10px;
      padding: 16px;
      margin-bottom: 16px;
      border: 1px solid transparent;
    }
    .contact-form-agree.error-group {
      border-color: #D90000;
      background: #FFF0F0;
    }
    .contact-form-agree input[type="checkbox"] {
      width: 18px;
      height: 18px;
      margin-top: 2px;
      flex-shrink: 0;
      accent-color: #1565C0;
      cursor: pointer;
    }
    .contact-form-agree-text {
      font-size: 14px;
      color: #4F4F4F;
      line-height: 1.6;
    }
    .contact-form-agree-text a { color: #1565C0; }

    .contact-form-submit {
      display: block;
      width: 100%;
      background: #FF8F00;
      color: #fff;
      font-size: 18px;
      font-weight: 700;
      letter-spacing: .05em;
      padding: 18px;
      border: none;
      border-radius: 999px;
      cursor: pointer;
      box-shadow: none;
      transition: transform .15s, box-shadow .15s, opacity .15s;
      margin-top: 16px;
    }
    .contact-form-submit:hover {
      transform: translateY(-2px);
    }
    .contact-form-submit:active { transform: translateY(0); }

    @media (max-width: 600px) {
      .contact-form-section { padding: 56px 0; }
      .contact-form-card { padding: 0; }
      .contact-form-title { font-size: 34px; }
      .contact-form-toggle-group { flex-direction: column; }
      .contact-form-toggle { flex: none; }
    }

    /* ========================================
       SERVICE LIST
    ======================================== */
    .services-section {
      padding: 80px 0;
      background: #F5F7FA;
    }
    .service-grid {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      row-gap: 28px;
      column-gap: 16px;
    }
    .service-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
    }
    .service-icon-img {
      width: 48px;
      height: 48px;
      border-radius: 10px;
      object-fit: cover;
    }
    .service-name {
      font-size: 14px;
      color: #4F4F4F;
      font-weight: 500;
      text-align: center;
      line-height: 1.4;
      letter-spacing: .02em;
    }

    /* ========================================
       RELATED ARTICLES
    ======================================== */
    .related-section {
      padding: 80px 0;
      background: #F5F7FA;
    }
    .related-title {
      font-size: clamp(24px, 4vw, 34px);
      font-weight: 700;
      color: #4F4F4F;
      text-align: center;
      letter-spacing: .7px;
    }
    .related-divider {
      width: 44px;
      height: 4px;
      margin: 14px auto 40px;
      border-radius: 2px;
      background: linear-gradient(to right, #1565C0, #1E88E5);
    }
    .related-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
    }
    .related-card {
      display: flex;
      align-items: stretch;
      background: #fff;
      border: 1px solid #b0b0b0;
      border-radius: 10px;
      overflow: hidden;
      position: relative;
      transition: border-color .2s;
    }
    .related-card:hover { border-color: #1565C0; }
    .related-card::after {
      content: '';
      position: absolute;
      left: 0;
      bottom: 0;
      height: 2px;
      width: 0;
      background: linear-gradient(to right, #1565C0, #1E88E5);
      transition: width .25s;
    }
    .related-card:hover::after { width: 100%; }
    .related-thumb {
      width: 100px;
      height: 100px;
      flex-shrink: 0;
      object-fit: cover;
    }
    .related-info {
      flex: 1;
      min-width: 0;
      padding: 12px 8px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }
    .related-heading {
      font-size: 14px;
      font-weight: 700;
      color: #4F4F4F;
      line-height: 1.4;
      letter-spacing: .05em;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      overflow: hidden;
    }
    @media (max-width: 900px) {
      .related-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 600px) {
      .related-section { padding: 56px 0; }
      .related-grid { grid-template-columns: 1fr; gap: 12px; }
    }

    /* ========================================
       FOOTER
    ======================================== */
    .site-footer {
      background: #111;
      color: #aaa;
      padding: 44px 24px 28px;
    }
    .footer-nav {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0;
      margin-bottom: 24px;
    }
    .footer-nav a {
      font-size: 14px;
      color: #aaa;
      padding: 4px 12px;
      white-space: nowrap;
      transition: color .2s;
    }
    .footer-nav a:first-child { padding-left: 0; }
    .footer-nav a:last-child { padding-right: 0; }
    .footer-nav a:not(:last-child)::after {
      content: '｜';
      margin-left: 12px;
      color: #555;
    }
    .footer-nav a:hover { color: #fff; }
    .footer-logo-wrap {
      text-align: center;
      margin-bottom: 16px;
    }
    .footer-logo {
      font-size: 22px;
      font-weight: 900;
      color: #fff;
    }
    .footer-socials {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 14px;
      margin-bottom: 20px;
    }
    .footer-socials a {
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      transition: opacity .2s;
    }
    .footer-socials a:hover { opacity: .75; }
    .footer-copy {
      text-align: center;
      font-size: 13px;
      color: #4F4F4F;
    }

    /* ========================================
       RESPONSIVE — TABLET  (≤ 960px)
    ======================================== */
    @media (max-width: 960px) {
      /* Header */
      .header-inner {
        justify-content: space-between;
        height: 54px;
        padding-left: 20px;
        padding-right: 16px;
      }
      .pack-included { scroll-margin-top: 84px; }
      .header-nav,
      .header-phone,
      .btn-header-cta { display: none; }
      .hamburger { display: flex; }
      .logo-tagline { display: none; }
      .header-sp-banner { display: block; }

      /* Hero */
      .hero-inner {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        min-height: unset;
      }
      .hero-text {
        padding: 48px 24px 32px;
      }
      .hero-visual {
        position: static;
        width: 100%;
        margin-right: 0;
      }
      .hero-photo-placeholder {
        height: 280px;
      }
      .hero-price-card {
        border-radius: 0;
      }

      /* Trust */
      .trust-inner {
        flex-direction: column;
        gap: 40px;
      }
      .trust-badges {
        justify-content: center;
      }

      /* Staff */
      .staff-card {
        padding: 32px;
      }

      /* Service grid */
      .service-grid { grid-template-columns: repeat(4, 1fr); }

      /* Pack included */
      .pack-grid { grid-template-columns: repeat(4, 1fr); }

      /* Construction flow */
      .flow-grid { grid-template-columns: repeat(3, 1fr); gap: 24px 16px; }

      /* Reviews */
      .reviews-grid {
        grid-template-columns: repeat(2, 1fr);
      }
      .concerns-grid {
        grid-template-columns: repeat(2, 1fr);
      }
      .concerns-illust { display: none; }

      /* Why chosen */
      .why-point-cards { grid-template-columns: repeat(2, 1fr); }
    }

    /* ========================================
       RESPONSIVE — MOBILE  (≤ 600px)
    ======================================== */
    @media (max-width: 600px) {
      /* Base */
      .container { padding: 0 16px; }
      .section-header { margin-bottom: 32px; }
      .section-title { font-size: 34px; font-weight: 600; }
      body { padding-bottom: 55px; }
      .fixed-footer-cta { display: flex; }
      .back-to-header-btn {
        bottom: 71px;
      }

      /* Header: ヘッダー自体は固定しない。ヘッダーが見えている間はメニューボタンも
         ヘッダー内に通常表示。ヘッダーが画面外に出たらメニューボタンだけ固定表示に切替 */
      .site-header { position: static; }
      .hamburger.is-floating {
        position: fixed;
        top: 10px;
        right: 16px;
        z-index: 120;
        width: auto;
        background: #fff;
        border-radius: 8px;
        padding: 6px;
        box-shadow: 0 2px 8px rgba(0,0,0,.15);
      }

      /* Hero */
      .hero-title { font-size: 28px; }
      .btn-hero-cta { font-size: 17px; padding: 13px 28px; }
      .hero-photo-placeholder { height: 220px; }
      .hero-price-card .pc-amount { font-size: 28px; }
      .hero-price-card { padding: 12px 16px 14px; }

      /* Trust */
      .trust { padding: 56px 0; }
      .trust-badges { display: none; }
      .badge-octagon { width: 100px; height: 100px; }
      .badge-octagon-content .b-num { font-size: 24px; }
      .trust-headline { font-size: 34px; color: #4F4F4F; }
      .trust-headline .num { font-size: 54px; }
      .trust-headline br.sp-br { display: block; }

      /* Warning */
      .warning-section { padding: 0 0 56px; }
      .warning-box { padding: 90px 20px 24px; }
      .warning-title {
        font-size: 26px;
        white-space: normal;
        text-align: center;
        background: #fff;
        display: block;
        padding: 8px 4px 16px;
      }
      .warning-title span { border-bottom: none; }
      .warning-title br.sp-br { display: block; }
      .warning-title::after {
        content: '';
        display: block;
        width: 100%;
        height: 4px;
        background: #00477C;
        margin: 6px auto 0;
      }
      .warning-deco { display: none; }
      .warning-body { font-size: 19px; }
      .warning-highlight {
        margin: 0 -20px -24px;
        padding: 16px 20px;
        font-size: 19px;
        color: #4F4F4F;
      }
      .warning-highlight-accent {
        color: #1a3a6b;
      }

      /* Pro team */
      .pro-team { padding: 56px 0 0; }
      .pro-intro h2 { font-size: 34px; }
      .pro-intro .sub { font-size: 19px; }
      .pro-intro .sub .pro-sub-title,
      .pro-intro .sub strong { font-size: 25px; }
      .pro-intro .sub .pro-sub-small { font-size: 19px; }
      .pro-intro .sub br.sp-br { display: block; }
      .staff-card {
        padding: 24px 20px;
        gap: 24px;
        background: none;
        border-radius: 0;
      }
      .staff-lead { font-size: 19px; }
      .staff-lead br.sp-br { display: block; }

      /* Recommend CTA button */
      .recommend-cta .cta-btn-primary {
        width: 340px;
        padding: 15px;
        align-items: center;
        text-align: center;
      }
      .recommend-cta .cta-btn-main { font-size: 16px; }
      .staff-stats { gap: 16px; }
      .staff-stat-img { height: 68px; }

      /* Comparison */
      .comparison-section { padding: 56px 0; }

      /* CTA */
      .cta-section { height: auto; padding: 49px 16px 40px; }
      .cta-inner { padding: 0; }
      .cta-buttons { flex-direction: column; align-items: center; gap: 10px; margin-top: 24px; }
      .cta-heading br.sp-br { display: block; }
      .cta-section .cta-btn-wrap {
        width: 100%;
        max-width: 340px;
      }
      .cta-section .cta-primary-wrap {
        width: 100%;
      }
      .cta-section .cta-btn-primary {
        width: 100%;
        box-sizing: border-box;
        padding: 16px 90px 16px 24px;
        align-items: flex-start;
        text-align: left;
      }
      .cta-section .cta-phone-wrap {
        width: 100%;
      }
      .cta-section .cta-btn-phone {
        width: 100%;
        box-sizing: border-box;
      }
      .cta-section .cta-btn-main { font-size: 16px; }

      /* Reviews */
      .reviews-section { padding: 80px 0 56px; }
      .reviews-title { font-size: 34px; }
      .reviews-grid { grid-template-columns: 1fr; }
      .reviews-badge {
        position: absolute;
        top: -20px;
        right: 0px;
        width: 120px;
        height: auto;
        z-index: 10;
      }

      /* Concerns */
      .concerns-section { padding: 56px 0; }
      .concerns-grid { grid-template-columns: 1fr; }
      .concerns-title { font-size: 34px; }
      .concerns-title br.sp-br,
      .concerns-subtitle br.sp-br { display: block; }
      .concerns-subtitle { font-size: 23px; }
      .concerns-illust3-sp {
        display: block;
        width: 278px;
        height: auto;
        margin: 0 auto 6px;
      }

      /* Why chosen */
      .why-section { padding: 56px 0 0; }
      .why-title-main { font-size: 32px; }
      .why-title-accent { font-size: 34px; }
      .why-title-badge-sp { display: block; width: 170px; height: auto; margin: 16px auto 0; }
      .why-point-cards { grid-template-columns: 1fr; margin-top: 16px; }
      .why-point-flex { flex-direction: column; }
      .why-point-graph { max-width: 340px; flex-basis: auto; margin: 0 auto; order: -1; }
      .why-graph-img-pc { display: none; }
      .why-graph-img-sp { display: block; }
      .why-point-footer { display: flex; flex-direction: column; text-align: center; }
      .why-point-footer-img { align-self: center; justify-self: center; margin-bottom: 0; max-width: 220px; }
      .why-point-footer-text { white-space: normal; font-size: 34px; text-align: left; align-self: center; }
      .why-point-footer-text br.sp-br { display: block; }
      .why-point-intro { flex-direction: column; }
      .why-point-body { flex: none; }
      .why-point-badge { display: none; }
      .why-dot-decor { display: none; }

      /* Services */
      .services-section { padding: 56px 0; }
      .service-grid { grid-template-columns: repeat(3, 1fr); gap: 20px 8px; }
      .service-icon-img { width: 44px; height: 44px; }
      .service-name { font-size: 12.5px; }

      /* Comparison table */
      .table-scroll {
        border-right: none;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
      }

      /* Recommend set */
      .recommend-subtitle { font-size: 24px; }
      .recommend-subtitle br.sp-br { display: block; }
      .recommend-title { font-size: 34px; }
      .recommend-title br.sp-br { display: block; }
      .pack-included-title { font-size: 19px; font-weight: 400; }
      .pack-included-title br.sp-br { display: block; }
      .pack-included { scroll-margin-top: 20px; }
      .warranty-banner-pc { display: none; }
      .warranty-banner-sp { display: block; height: auto; object-fit: initial; }

      /* Pack included */
      .pack-grid { grid-template-columns: repeat(3, 1fr); gap: 20px 6px; }
      .warranty-body { grid-template-columns: 1fr; padding: 24px 20px; }
      .warranty-col:first-child { order: 2; }
      .warranty-col:last-child { order: 1; }
      .warranty-text { font-size: 16px; }

      /* Construction flow */
      .flow-section { padding: 56px 0; }
      .flow-title { font-size: 34px; }
      .flow-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
      .flow-subtitle { font-size: 18px; }
      .flow-subtitle br.sp-br { display: block; }

      /* Payment */
      .payment-title { font-size: 34px; }

      /* Area */
      .area-title { font-size: 34px; }

      /* Staff */
      .staff-title { font-size: 34px; }

      /* Related */
      .related-title { font-size: 34px; }

      /* Footer */
      .footer-nav { gap: 4px 0; }
      .footer-nav a {
        padding: 6px 10px;
      }
      .footer-nav a::after { display: none; }
    }
    .hero-bottom-banner {
      background-color: #FFFB9D;
      width: 100%;
      height: 45px;
      overflow: hidden;
    }
    .hero-bottom-banner img {
      display: block;
      width: 100%;
      height: 45px;
      object-fit: cover;
    }
    .hero-bottom-banner .banner-sp { display: none; }
    .hero-bottom-banner .banner-pc {
      display: block;
      max-width: 1484px;
      margin: 0 auto;
    }
    @media (max-width: 600px) {
      .hero-bottom-banner .banner-pc { display: none; }
      .hero-bottom-banner .banner-sp { display: block; }
      .hero-bottom-banner { height: auto; }
      .hero-bottom-banner img { height: auto; }
    }
