    /* CSS variables and body styles are inherited from common.css */

    /* Scroll Reveal System - Removed as requested */
    .reveal {
      opacity: 1;
      transform: none;
    }

    .img-wrap {
      overflow: hidden;
      position: relative;
    }

    .img-wrap img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: var(--transition);
    }

    .img-wrap:hover img {
      transform: scale(1.05);
    }

    .img-wrap.no-hover:hover img {
      transform: none !important;
    }

    /* Header styles from index.html */



    .nav-cta.accent {
      background: var(--color-accent) !important;
      color: #ffffff !important;
      border: 1px solid var(--color-accent) !important;
    }


    .nav-cta.accent:hover {
      background: transparent !important;
      color: var(--color-accent) !important;
      border: 1px solid var(--color-accent) !important;
    }

    /* Site-wide Button Hover Enhancements */
    /* Specific overrides for color themes */





    /* Hero */
    .hero {
      height: 80vh;
      position: relative;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      margin-top: 80px;
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: brightness(1);
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0.1);
    }

    .hero-content {
      position: relative;
      z-index: 1;
      text-align: left;
      color: #fff;
      max-width: 1400px;
      margin: 0 auto;
      width: 100%;
      padding: 0 80px;
    }

    .hero-pre {
      font-size: 24px;
      font-weight: 700;
      margin-bottom: 24px;
      letter-spacing: 0.05em;
      text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    }

    .hero-content h1 {
      font-size: 64px;
      font-weight: 700;
      line-height: 1.2;
      font-family: 'Noto Sans JP', sans-serif;
      letter-spacing: 0.05em;
      margin: 0;
      text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
    }

    /* Anchor Nav */
    .anchor-nav-section {
      background: #fff;
      border-bottom: 1px solid var(--color-border);
      position: relative;
      z-index: 90;
    }

    .anchor-nav-inner {
      max-width: var(--container-max);
      margin: 0 auto;
      display: flex;
    }

    .anchor-btn {
      flex: 1;
      padding: 24px;
      text-decoration: none;
      color: var(--color-text-primary);
      font-size: 16px;
      font-weight: 500;
      text-align: center;
      border-right: 1px solid var(--color-border);
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      transition: background 0.3s ease;
    }

    .anchor-btn:last-child {
      border-right: none;
    }

    .anchor-btn:hover {
      background: #f9f9f9;
    }

    .anchor-btn .icon {
      font-size: 12px;
      opacity: 0.5;
      transition: transform 0.3s ease;
    }

    .anchor-btn:hover .icon {
      transform: translateY(3px);
    }

    /* Sections */
    .section {
      padding: 80px 0;
      position: relative;
    }

    /* Sync footer spacing with index.html */
    #section11 {
      padding: var(--space-5xl) var(--space-xl) !important;
    }

    .section-inner {
      max-width: var(--container-max);
      margin: 0 auto;
      padding: 0 var(--container-padding);
    }

    .section-title {
      font-size: 40px;
      font-weight: 300;
      margin-bottom: 40px;
      font-family: 'Shippori Mincho', serif;
      color: var(--color-text-primary);
      letter-spacing: 0.05em;
    }

    .section-title strong {
      font-weight: 700;
      color: var(--color-accent);
    }

    /* Sticky Sidebar Layout */
    .sticky-wrapper {
      display: flex;
      gap: 60px;
      align-items: stretch;
      position: relative;
    }

    .sticky-sidebar {
      flex: 0 0 120px;
      position: sticky;
      top: 80px;
      height: fit-content;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding-top: 10px;
    }

    .sticky-num {
      font-size: 110px;
      font-weight: 500;
      color: var(--color-accent);
      line-height: 1;
      margin-bottom: 24px;
      font-family: 'Shippori Mincho', serif;
      letter-spacing: -0.05em;
      position: relative;
      padding-top: 0;
    }

    .sticky-title {
      writing-mode: vertical-rl;
      font-size: 20px;
      font-weight: 700;
      color: #363636;
      letter-spacing: 0.15em;
      line-height: 1.6;
      text-align: start;
      white-space: nowrap;
    }

    .v-accent {
      font-family: 'Shippori Mincho', serif;
      font-size: 1.55em;
      /* 1行目より大きく */
      font-weight: 700;
      color: var(--color-accent);
      display: inline-block;
      margin-top: 0.2em;
      writing-mode: vertical-rl;
    }

    .sticky-content {
      flex: 1;
    }

    h1,
    h2,
    h3 {
      font-family: 'Shippori Mincho', serif;
    }

    /* Heading Box */
    .heading-box {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 24px;
      font-weight: 700;
      color: #363636;
      border-left: 8px solid var(--color-accent);
      padding: 4px 0 4px 24px;
      margin-bottom: 40px;
      display: block;
      line-height: 1.4;
      letter-spacing: 0.05em;
    }

    /* Grid */
    .grid-2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 60px;
      align-items: center;
    }

    .grid-3 {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 40px;
    }

    .scroll-img-wrapper img {
      max-width: 100%;
      height: auto;
      display: block;
      margin: 0 auto;
    }

    .grid-2-cv {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px 40px;
    }

    .cv-header {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      margin-bottom: 80px;
    }

    .cv-header-text h2 {
      font-size: 32px;
      font-weight: 500;
      margin-bottom: 16px;
      letter-spacing: 0.05em;
    }

    .cv-header-text p {
      font-size: 16px;
      color: var(--color-text-secondary);
    }

    /* Comparison Table */
    .comp-table {
      width: 100%;
      border-collapse: collapse;
    }

    .comp-table th,
    .comp-table td {
      border: 1px solid var(--color-border);
      padding: 32px;
      text-align: left;
    }

    .comp-table th {
      background: #f9f9f9;
      font-weight: 700;
      font-size: 18px;
    }

    .comp-table td {
      font-size: 16px;
      line-height: 1.8;
      vertical-align: top;
    }

    /* Tabs */
    .tabs-container {
      margin-top: 60px;
    }

    .tabs-buttons {
      display: flex;
      gap: 8px;
      margin-bottom: 2px;
    }

    .tab-btn {
      flex: 1;
      padding: 16px;
      border: 1px solid var(--color-border);
      background: #fff;
      cursor: pointer;
      font-weight: 700;
      font-size: 18px;
      letter-spacing: 0.1em;
      transition: all 0.3s;
      color: #999;
    }

    .tab-btn.active {
      background: #f9f9f9;
      border-bottom: 2px solid var(--color-accent);
      color: #363636;
    }

    .tab-btn[data-tab="before"].active {
      border-bottom-color: #999;
    }

    .tab-content {
      background: #fff;
      border: 1px solid var(--color-border);
      position: relative;
    }

    .tab-pane {
      display: none;
    }

    .tab-pane.active {
      display: block;
    }

    .tab-pane img {
      width: 100%;
      display: block;
    }

    /* Accordion */
    .accordion-item {
      border-bottom: 1px solid var(--color-border);
      margin-bottom: 40px;
    }

    .accordion-header {
      padding: 24px 0;
      cursor: pointer;
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .accordion-header h3 {
      font-size: 24px;
      font-weight: 700;
      margin: 0;
      color: #363636;
    }

    .accordion-toggle-icon {
      font-size: 24px;
      font-weight: 300;
      transition: transform 0.3s;
      font-family: initial;
    }

    .accordion-body {
      padding: 0 0 40px 0;
      display: none;
    }

    .accordion-item.is-open .accordion-body {
      display: block;
    }

    .accordion-item.is-open .accordion-toggle-icon {
      transform: rotate(45deg);
    }

    /* Footer styles from index.html */


    /* Quake Stats Block */
    .quake-stats-container {
      background-color: #fff;
      padding: 60px;
      margin-top: 60px;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 40px;
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
      border-radius: 4px;
    }

    .quake-stats-content {
      flex: 1.2;
      min-width: 300px;
    }

    .quake-stats-pre {
      font-size: var(--fs-min);
      font-weight: 700;
      margin-bottom: 12px;
      color: #333;
      letter-spacing: 0.05em;
    }

    .quake-stats-title {
      font-size: 32px;
      font-weight: 700;
      margin: 0 0 48px 0;
      letter-spacing: 0.1em;
      color: #333;
      line-height: 1.3;
    }

    .quake-stats-hero {
      margin-bottom: 48px;
      display: flex;
      align-items: flex-end;
      gap: 20px;
    }

    .quake-stats-hero-label {
      font-size: var(--fs-min);
      font-weight: 500;
      margin-bottom: 6px;
      line-height: 1.5;
      color: #333;
    }

    .quake-stats-hero-number {
      display: inline-flex;
      align-items: baseline;
      position: relative;
    }

    .quake-stats-hero-number .num {
      font-size: 84px;
      font-weight: 700;
      line-height: 1;
      font-family: var(--font-sans);
      color: #333;
      position: relative;
      z-index: 2;
    }

    .quake-stats-hero-number .unit {
      font-size: 20px;
      font-weight: 700;
      margin-left: 8px;
      color: #333;
      position: relative;
      z-index: 2;
    }

    .quake-stats-hero-number .num-bg {
      position: absolute;
      bottom: 6px;
      left: -4px;
      right: -4px;
      height: 20px;
      background-color: #f5f4ef;
      z-index: 1;
    }

    .quake-stats-list {
      list-style: none;
      padding: 0;
      margin: 0 0 32px 0;
      max-width: 320px;
    }

    .quake-stats-list li {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 12px;
      font-size: var(--fs-min);
      color: #333;
      border-bottom: 1px solid #f0f0f0;
      padding-bottom: 8px;
    }

    .quake-stats-list .label {
      letter-spacing: 0.05em;
    }

    .quake-stats-list .val {
      font-family: var(--font-sans);
      font-weight: 500;
    }

    .quake-stats-note {
      font-size: var(--fs-min);
      line-height: 1.6;
      color: #666;
      margin: 0;
    }

    .quake-stats-visual {
      flex: 1;
      min-width: 300px;
      text-align: right;
      position: relative;
    }

    .quake-map {
      width: 100%;
      height: auto;
      max-width: 480px;
    }

    /* Utility */
    .btn-outline-arrow {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      border: 1px solid var(--color-text-primary);
      padding: 16px 24px;
      text-decoration: none;
      color: var(--color-text-primary);
      font-weight: 500;
      font-size: 16px;
      transition: var(--transition);
      position: relative;
    }

    .btn-outline-arrow:hover {
      background: var(--color-text-primary);
      color: #fff;
    }

    .btn-outline-arrow .arrow {
      transition: transform 0.4s;
    }

    .btn-outline-arrow:hover .arrow {
      transform: translateX(8px);
    }

    /* Loading Overlay */
    #loading {
      position: fixed;
      inset: 0;
      background: #fff;
      z-index: 3000;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: opacity 0.8s ease;
    }

    #loading.is-hidden {
      opacity: 0;
      pointer-events: none;
    }

    /* SP Menu Button */



    .menu-btn.is-active span:nth-child(1) {
      transform: translateY(9px) rotate(45deg);
    }

    .menu-btn.is-active span:nth-child(2) {
      opacity: 0;
    }

    .menu-btn.is-active span:nth-child(3) {
      transform: translateY(-9px) rotate(-45deg);
    }

    /* SP Nav Overlay */


    .sp-nav-overlay.is-active {
      opacity: 1;
      visibility: visible;
    }

    .sp-nav-overlay .nav {
      display: flex !important;
      flex-direction: column;
      gap: 32px;
      text-align: center;
    }

    .sp-nav-overlay .nav a {
      font-size: 18px;
    }

    .sp-nav-overlay .nav-cta {
      min-width: 200px !important;
    }

    /* SP-only: hidden on PC */
    .sp-only {
      display: none;
    }

    .swipe-hint-feat {
      display: none;
    }

    @media (max-width: 768px) {
      body {
        font-size: 15px;
        --fs-min: 14px;
      }

      /* Header */


      /* Hero */
      .hero {
        height: 55vh;
        margin-top: 64px;
        align-items: flex-end;
        padding-bottom: 40px;
      }

      .hero-pre {
        font-size: 16px;
        margin-bottom: 12px;
      }

      .hero-content h1 {
        font-size: clamp(22px, 6vw, 36px);
      }

      .hero-content {
        padding: 0 var(--container-padding);
      }

      /* Anchor Nav */
      .anchor-btn {
        font-size: 13px;
        padding: 16px 12px;
        gap: 8px;
      }

      /* Sections */
      .section {
        padding: 40px 20px 60px !important;
        overflow-x: hidden;
      }

      .section-title {
        font-size: 21px;
        letter-spacing: 0.15em;
        margin-top: 0 !important;
        margin-bottom: 30px !important;
        line-height: 1.6;
        text-align: center;
      }

      .section-title::after {
        content: '';
        display: block;
        width: 30px;
        height: 1px;
        background: var(--color-accent);
        margin: 12px auto 0 !important;
      }

      /* Fix comparison table overflow */
      .comp-table-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin: 0 -20px;
        padding: 0 20px;
      }

      .comp-table {
        min-width: 600px !important;
      }

      /* Sticky layout: stack vertically */
      .sticky-wrapper {
        flex-direction: column;
        gap: 30px !important;
      }

      .sticky-sidebar {
        position: static;
        flex-direction: row;
        align-items: flex-end;
        gap: 16px;
        padding: 0 0 4px 0 !important;
        border-bottom: 1px solid #ddd;
        margin-top: 0 !important;
        margin-bottom: 30px !important;
      }

      .sticky-num {
        font-size: 40px;
        line-height: 1;
        margin-bottom: 0;
        color: #ddd;
      }

      .sticky-title {
        writing-mode: horizontal-tb;
        font-size: 18px;
        letter-spacing: 0.1em;
        font-weight: 700;
        line-height: 1.4 !important;
        margin-bottom: 0 !important;
        white-space: normal !important;
        word-wrap: break-word !important;
      }

      .v-accent {
        writing-mode: horizontal-tb;
        font-size: 21px !important;
        color: var(--color-accent);
        margin-top: 4px !important;
        display: inline-block;
        font-weight: 700;
        line-height: 1.3 !important;
      }

      /* Heading Box */
      .heading-box {
        font-size: 20px;
        margin-top: 0 !important;
        margin-bottom: 30px !important;
        padding: 8px 0 8px 16px;
        border-left: 4px solid var(--color-accent);
        background: #f9f9f7;
      }

      /* Unified block spacing within content */
      .sticky-content>*,
      .section-inner>* {
        margin-bottom: 30px !important;
      }

      .sticky-content>*:last-child,
      .section-inner>*:last-child {
        margin-bottom: 0 !important;
      }

      .accordion-item {
        margin-bottom: 30px !important;
      }

      .scroll-img-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin: 0 -24px 30px;
        padding: 0 24px;
        text-align: left;
      }

      .scroll-img-wrapper img.structural-table-img {
        min-width: 720px !important;
        width: 720px !important;
        max-width: none !important;
        display: block;
      }

      /* Grid */
      .grid-2,
      .grid-3,
      .grid-2-cv {
        grid-template-columns: 1fr;
        gap: 48px;
      }

      /* directjoint-2 full width on mobile */
      .dj2-wrap {
        max-width: 100% !important;
      }

      /* Stats 2-column on mobile */
      .stats-row {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
      }

      .stats-row>div {
        flex-direction: column !important;
        gap: 16px !important;
        padding: 16px 0 !important;
      }

      .stats-row>div>div:first-child {
        width: 60px !important;
      }

      .stats-row span[style*="font-size: 80px"] {
        font-size: 36px !important;
      }

      .stats-row span[style*="font-size: 56px"] {
        font-size: 28px !important;
      }

      .stats-row span[style*="font-size: 24px"] {
        font-size: var(--fs-min) !important;
      }

      /* SP-only utility */
      .sp-only {
        display: block;
      }

      /* Quake Stats mobile */
      .quake-stats-container {
        padding: 40px 24px;
        gap: 32px;
        margin-top: 30px !important;
      }

      .quake-stats-content {
        min-width: 100%;
      }

      .quake-stats-pre {
        margin-top: 0 !important;
      }

      .quake-stats-title {
        font-size: 24px;
        margin-bottom: 40px;
      }

      .quake-stats-hero {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        margin-bottom: 40px;
      }

      .quake-stats-hero-number .num {
        font-size: 64px;
      }

      /* Reorder family space section */
      #fam-space-grid {
        margin-top: 30px !important;
      }

      #fam-space-grid>div:first-child {
        order: 2 !important;
      }

      #fam-space-grid>div:last-child {
        order: 1 !important;
      }

      #calc-type-box {
        padding: 40px 24px !important;
        margin-top: 30px !important;
      }

      .quake-stats-list {
        max-width: 100%;
        margin-bottom: 40px;
      }

      .quake-stats-list li {
        font-size: var(--fs-min);
      }

      .quake-stats-visual {
        min-width: 100%;
        text-align: center;
      }

      .quake-map {
        max-width: 100%;
        width: 100%;
      }

      .dj-calc-img-wrap img {
        width: 100% !important;
      }

      .tab-content-full-sp {
        margin-left: -35px !important;
        margin-right: -35px !important;
        width: calc(100% + 70px) !important;
      }

      .fam-space-box {
        padding: 32px 20px !important;
      }

      .cv-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 24px !important;
        margin-bottom: 48px !important;
      }

      .cv-header h2 {
        font-size: 22px !important;
        line-height: 1.6 !important;
      }

      .method-comparison-flex {
        flex-direction: column !important;
      }

      .comp-img-wrap {
        margin-bottom: 0px !important;
      }

      .comparison-arrow {
        width: 100% !important;
        height: 60px !important;
        margin: 16px 0 !important;
      }

      .comparison-arrow svg {
        transform: rotate(90deg) scale(1.6);
      }

      /* Reduce margin on the DJ block title part to center the arrow between images */
      .method-comparison-flex>div:last-child {
        margin-top: -20px !important;
      }

      .method-comparison-flex>div>div:first-child {
        border-radius: 4px 4px 0 0 !important;
      }

      /* Swipe Hint for Features table */
      .swipe-hint-feat {
        display: flex !important;
        position: absolute;
        inset: 0;
        z-index: 10;
        align-items: center;
        justify-content: center;
        background: rgba(0, 0, 0, 0.45);
        border-radius: 4px;
        pointer-events: none;
        opacity: 0;
        transition: opacity 0.5s ease;
      }

      .swipe-hint-feat.is-visible {
        opacity: 1 !important;
      }

      .swipe-hint-inner-feat {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        color: #fff;
        font-size: 12px;
        letter-spacing: 0.1em;
        animation: swipeAnimFeat 1.2s ease-in-out infinite;
      }

      @keyframes swipeAnimFeat {
        0% {
          transform: translateX(30px);
          opacity: 1;
        }

        5% {
          transform: translateX(30px);
          opacity: 1;
        }

        45% {
          transform: translateX(-30px);
          opacity: 0.5;
        }

        55% {
          transform: translateX(-30px);
          opacity: 0.5;
        }

        95% {
          transform: translateX(30px);
          opacity: 1;
        }

        100% {
          transform: translateX(30px);
          opacity: 1;
        }
      }

      /* Tabs & Accordions */
      .tabs-nav {
        gap: 12px;
        overflow-x: auto;
        padding-bottom: 12px;
        margin: 0 -20px 32px;
        padding: 0 20px 12px;
      }

      .tabs-buttons {
        justify-content: center;
        gap: 8px;
        margin-bottom: 12px;
      }

      .tab-btn {
        flex: 0 0 auto;
        padding: 10px 24px;
        font-size: var(--fs-min);
        border-radius: 4px;
      }

      .accordion-header {
        padding: 24px 16px;
      }

      .accordion-header h3 {
        font-size: 20px;
        line-height: 1.4;
      }

      /* Hero adjustment */
      .hero {
        height: 50vh !important;
        margin-top: 64px;
        padding-bottom: 40px;
      }

      /* Removed Footer Premium */
      /* Sync footer spacing with index.html */
      #section11 {
        padding: 80px 20px !important;
      }

      /* Remove side padding for synced CTA section to match index.html */
      #section11 .section-inner {
        padding-left: 0 !important;
        padding-right: 0 !important;
      }
    }

    /* ============================================
       iPad専用: 地震表のスクロール案内を非表示
    ============================================ */
    @media (min-width: 768px) and (max-width: 1200px) {

      /* スワイプヒントオーバーレイを非表示 */
      .swipe-hint-feat {
        display: none !important;
      }

      /* 「横にスクロールしてください→」テキストを非表示 */
      .feat-table-wrapper-sp+p.sp-only {
        display: none !important;
      }
    }

/* Extracted CSS */

.totate-logo-link::after { display: none !important; }

/* Extracted CSS */

.totate-logo-link::after { display: none !important; }