/* ========================================
   Reset & Base Styles
   ======================================== */
   * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  html {
    font-size: 16px;
    scroll-behavior: smooth;
  }

  body {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    line-height: 1.8;
    color: #000;
    background: #fff;
  }
  
  .page-container img {
    max-width: 100%;
    height: auto;
    display: block;
  }
  
  /* BRAVIA text - font */
  .bravia-text {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
  }
  .en-text {
    font-family: "Noto Sans JP", sans-serif;
  }
  
  /* ========================================
     Page Container (Centering)
     ======================================== */
  .page-container {
    max-width: 1440px;
    margin: 0 auto;
    position: relative;
  }
  
  /* ========================================
     FV Section
     ======================================== */
  .fv {
    position: relative;
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    height: 561px;
    overflow: hidden;
    background: #000;
  }
  
  /* FV Background */
  .fv__bg {
    position: absolute;
    height: 561px;
    left: 50%;
    top: 0;
    width: 100%;
    max-width: 1480px;
    transform: translateX(-50%);
    pointer-events: none;
  }
  
  .fv__bg-inner {
    position: absolute;
    inset: 0;
    overflow: hidden;
  }
  
  .page-container .fv__bg-image {
    position: absolute;
    height: 100.74%;
    left: -0.07%;
    max-width: none;
    top: -0.46%;
    width: 100%;
    object-fit: cover;
  }
  
  .fv__bg-overlay {
    position: absolute;
    background: rgba(0, 0, 0, 0.25);
    inset: 0;
  }
  
  /* Frame 1: Logo + Main Text */
  .fv__frame-1 {
    position: absolute;
    display: flex;
    flex-direction: column;
    gap: 37px;
    align-items: flex-start;
    left: max(55.5px, calc(50% - 666px));
    top: 258px;
    width: 623.637px;
  }
  
  .fv__logo-minnna {
    height: 108.5px;
    width: 93px;
    flex-shrink: 0;
    position: relative;
  }
  
  .fv__logo-minnna-img {
    position: absolute;
    inset: 0;
    max-width: none;
    object-fit: cover;
    pointer-events: none;
    width: 100%;
    height: 100%;
  }
  
  /* Frame 2 */
  .fv__frame-2 {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
    flex-shrink: 0;
    width: 100%;
  }
  
  .fv__main-text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 20.447px;
    line-height: 1.8;
    letter-spacing: 1.0224px;
    color: #fff;
    min-width: 100%;
    flex-shrink: 0;
    width: min-content;
    white-space: normal;
    margin: 0;
  }

  /* Frame 3: Note with small BRAVIA logo */
  .fv__frame-3 {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-shrink: 0;
  }
  
  .fv__note-text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 12px;
    line-height: 1.8;
    letter-spacing: 0.6px;
    color: #fff;
    flex-shrink: 0;
    margin: 0;
  }
  
  .fv__bravia-logo-small {
    height: 10.5px;
    width: 62px;
    flex-shrink: 0;
    position: relative;
  }
  
  .fv__bravia-logo-small-img {
    position: absolute;
    inset: 0;
    max-width: none;
    object-fit: cover;
    pointer-events: none;
    width: 100%;
    height: 100%;
  }
  
  /* Frame 4: BRAVIA Logo + Subscription */
  .fv__frame-4 {
    position: absolute;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: flex-start;
    left: max(54.5px, calc(50% - 667px));
    top: 67px;
    width: 397px;
  }
  
  .fv__bravia-logo {
    height: 51px;
    width: 314px;
    flex-shrink: 0;
    position: relative;
  }
  
  .fv__bravia-logo-img {
    position: absolute;
    inset: 0;
    max-width: none;
    object-fit: cover;
    pointer-events: none;
    width: 100%;
    height: 100%;
  }
  
  .fv__subscription-text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 30px;
    line-height: 1.8;
    letter-spacing: 6px;
    color: #fff;
    height: 58px;
    flex-shrink: 0;
    width: 100%;
    white-space: pre-wrap;
    margin: 0;
  }
  
  /* ========================================
     G_nav: Navigation Bar
     ======================================== */
  .g-nav {
    position: relative;
    background: #000;
    display: flex;
    flex-direction: column;
    height: 80px;
    align-items: center;
    justify-content: center;
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
  }
  
  .g-nav__frame {
    display: flex;
    gap: 56px;
    align-items: flex-start;
    justify-content: center;
    flex-shrink: 0;
  }
  
  .g-nav__item {
    height: 29px;
    width: 151px;
    flex-shrink: 0;
    position: relative;
  }
  
  .g-nav__item-inner {
    position: absolute;
    display: flex;
    flex-direction: column;
    inset: 0;
    justify-content: center;
    line-height: 0;
    text-decoration: none;
  }
  
  .g-nav__item-inner:hover {
    opacity: 0.7;
  }
  
  .g-nav__text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.8px;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    margin: 0;
  }
  
  /* ========================================
     Merit Section
     ======================================== */
  .merit {
    background: #f2f3f2;
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    padding: 88px 223px;
    display: flex;
    flex-direction: column;
    gap: 64px;
  }
  
  .merit__inner {
    display: flex;
    flex-direction: column;
    gap: 64px;
    align-items: center;
  }
  
  /* Merit Header */
  .merit__header {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
    text-align: center;
  }
  
  .merit__title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #b3a061;
    width: 994px;
    margin: 0;
  }
  
  .merit__description {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.8px;
    color: #000;
    width: 1028px;
  }
  
  .merit__description p {
    margin: 0;
  }
  
  /* Merit Cards */
  .merit__cards {
    display: flex;
    gap: 40px;
    align-items: flex-start;
  }
  
  .merit-card {
    background: #fff;
    border-radius: 30px;
    box-shadow: 0px 0px 40px 0px rgba(48, 49, 51, 0.05);
    width: 304px;
    height: 385px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
    justify-content: flex-end;
  }
  
  .merit-card__image {
    width: 240px;
    height: 137px;
    position: relative;
    flex-shrink: 0;
  }
  
  .merit-card__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    pointer-events: none;
  }
  
  .merit-card__title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 26px;
    line-height: 35px;
    letter-spacing: 2.6px;
    color: #000;
    text-align: center;
    width: 100%;
    margin: 0;
  }
  
  .merit-card__text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 1.4px;
    color: #000;
    width: 241px;
    margin: 0;
  }
  
  /* ========================================
     Partner Section
     ======================================== */
  .partner {
    background: #eaece9;
    width: 100%;
    padding: 64px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  
  .partner__inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: center;
    width: 100%;
    max-width: 1440px;
  }
  
  /* Partner Logo */
  .partner__logo {
    width: 151px;
    height: 139px;
    position: relative;
  }
  
  .partner__logo-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    pointer-events: none;
  }
  
  /* Presented By */
  .partner__presented {
    position: relative;
    width: 847.42px;
    height: 84px;
  }
  
  .partner__presented-text {
    position: absolute;
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.8;
    letter-spacing: 6.4px;
    color: #000;
    margin: 0;
    left: 60px;
    top: 22px;
    white-space: nowrap;
  }
  
  .partner__logo-full {
    position: absolute;
    width: 548px;
    height: 84px;
    left: 300px;
    top: 0;
  }
  
  .partner__logo-full-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    pointer-events: none;
  }
  
  /* Partner Message */
  .partner__message {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #000;
    text-align: center;
  }
  
  .partner__message p {
    margin: 0;
  }
  
  /* Partner Cards */
  .partner__cards {
    display: flex;
    gap: 10px;
    align-items: stretch;
    width: 900px;
  }
  
  .partner-card {
    flex: 1;
    border-radius: 20px;
    border: 1px solid #3d5b51;
    box-shadow: 0px 0px 40px 0px rgba(48, 49, 51, 0.05);
    padding: 16px;
    position: relative;
    background: linear-gradient(180deg, #edf6f0 81.25%, #c5d9cc 100%);
    overflow: hidden;
    display: flex;
  }
  
  .partner-card__bg {
    position: absolute;
    inset: 0;
    opacity: 1;
    pointer-events: none;
    overflow: hidden;
    border-radius: 20px;
  }
  
  .partner-card__bg-img {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    object-fit: cover;  /* カード内に画像をフィット */
  }
  
  .partner-card__content {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
    position: relative;
    z-index: 1;
  }
  
  .partner-card__number {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-style: italic;
    font-size: 42px;
    line-height: 35px;
    letter-spacing: 4.2px;
    color: #3d5b51;
    border-bottom: 1px solid #3d5b51;
    padding-bottom: 14px;
    margin-bottom: 0;
    width: 100%;
  }
  
  .partner-card__text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #000;
  }
  
  /* ========================================
     Responsive (Mobile)
     ======================================== */
  @media (max-width: 768px) {
    .page-container {
      display: flex;
      flex-direction: column;
    }
    
    .fv {
      height: auto;
      min-height: 500px;
    }
    
    .fv__bg {
      width: 100%;
    }
    
    .fv__frame-1 {
      left: 20px;
      top: 200px;
      width: calc(100% - 40px);
    }
    
    .fv__frame-4 {
      left: 20px;
      top: 40px;
      width: calc(100% - 40px);
    }
    
    .g-nav {
      height: auto;
      padding: 16px 24px;
    }
    
    .g-nav__frame {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      grid-template-rows: repeat(2, fit-content);
      gap: 16px;
      width: 100%;
      justify-items: start;
    }
    
    .g-nav__item {
      width: auto;
      height: auto;
    }
    
    .g-nav__item-inner {
      position: relative;
      line-height: 0;
    }
    
    .g-nav__text {
      font-size: 14px;
      line-height: 1.8;
      letter-spacing: 0.7px;
      text-align: left;
      white-space: nowrap;
    }
    
    .merit {
      padding: 40px 20px;
      gap: 40px;
    }
    
    .merit__inner {
      gap: 40px;
    }
    
    .merit__header {
      width: 100%;
    }
    
    .merit__title {
      width: 100%;
      font-size: 28px;
    }
    
    .merit__description {
      width: 100%;
      font-size: 14px;
    }
    
    .merit__cards {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      width: 100%;
      gap: 16px;
      align-items: stretch;
    }
    
    .merit-card {
      width: 100%;
      height: auto;
      padding: 24px;
      gap: 16px;
      display: flex;
    }
    
    .merit-card__image {
      width: 100%;
      height: auto;
      aspect-ratio: 240 / 137;
    }
    
    .merit-card__title {
      font-size: 20px;
      line-height: 1.4;
      letter-spacing: 2px;
    }
    
    .merit-card__text {
      width: 100%;
      font-size: 12px;
      letter-spacing: 1.2px;
    }
    
    .partner {
      padding: 40px 20px;
    }
    
    .partner__inner {
      gap: 32px;
    }
    
    .partner__logo {
      width: 120px;
      height: 110px;
    }
    
    .partner__presented {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0;
      width: auto;
      height: auto;
    }
    
    .partner__presented-text {
      position: relative;
      left: auto;
      top: auto;
      width: auto;
      height: auto;
      font-size: 24px;
      padding-bottom: 10px;
    }
    
    .partner__logo-full {
      position: relative;
      left: auto;
      top: auto;
      width: 400px;
      height: 61px;
    }
    
    .partner__message {
      font-size: 14px;
    }
    
    .partner__cards {
      flex-direction: column;
      width: 100%;
      gap: 16px;
    }
    
    .partner-card__number {
      font-size: 36px;
    }
    
    .partner-card__text {
      font-size: 14px;
    }
  }
  
  @media (max-width: 480px) {
    .fv {
      min-height: 330px;
    }

    .fv__bg-overlay {
      background: rgba(0, 0, 0, 0.1);
    }

    .page-container .fv__bg-inner img {
      height: 330px;
      max-width: none;
    }

    .fv__bravia-logo {
      width: 190px;
      flex-shrink: 0;
      position: relative;
    }

    .fv__frame-4 {
      gap: 0px;
    }

    .fv__subscription-text {
      font-size: 18px;
    }

    .fv__logo-minnna {
      height: 60px;
      width: 50px;
      flex-shrink: 0;
      position: relative;
    }

    .fv__frame-1 {
      left: 20px;
      top: 150px;
      gap: 16px;
      width: calc(100% - 40px);
    }

    .fv__main-text {
      font-size: 10px;
    }

    .fv__note-text {
      font-size: 8px;
    }

    .fv__bravia-logo-small {
      height: 7.5px;
      width: 40px;
      flex-shrink: 0;
      position: relative;
    }

    .g-nav {
      padding: 16px 20px;
    }
    
    .g-nav__frame {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-template-rows: auto;
      gap: 12px;
    }
    
    .g-nav__text {
      font-size: 13px;
      letter-spacing: 0.65px;
    }
    
    .merit {
      padding: 32px 16px;
    }
    
    .merit__title {
      font-size: 20px;
    }

    .merit__description {
      font-size: 13px;
    }
    
    .merit-card__title {
      font-size: 18px;
    }
    
    .merit-card__text {
      font-size: 11px;
    }
    
    .partner__presented-text {
      font-size: 20px;
    }
    
    .partner__logo-full {
      width: 300px;
      height: 66px;
    }
  }
  
  /* ========================================
     Lineup Section
     ======================================== */
  .lineup {
    background: #333;
    width: 100%;
    padding: 64px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  
  .lineup__inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: center;
    width: 100%;
    max-width: 1200px;
    padding: 0;
  }
  
  /* Lineup Header */
  .lineup__header {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
    text-align: center;
    width: 994px;
    max-width: 100%;
  }
  
  .lineup__title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #b3a061;
    width: 994px;
    margin: 0;
  }
  
  .lineup__subtitle {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    line-height: 0;
    width: 994px;
    margin: 0;
  }
  
  .lineup__subtitle p {
    margin: 0;
    line-height: 1.8;
    color: #fff;
  }
  
  .lineup__subtitle-en {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-size: 36px;
    font-weight: 500;
    font-style: normal;
  }
  
  .lineup__subtitle-jp {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-size: 32px;
    font-weight: 500;
  }
  
  .lineup__description {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.8px;
    color: #fff;
    width: 994px;
  }
  
  .lineup__description p {
    margin: 0;
  }
  
  /* Main Product Image */
  .lineup__main-image {
    width: 100%;
    max-width: 1200px;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    aspect-ratio: 1200 / 633;
    background: #2a2a2a;
  }
  
  .lineup__main-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
  }
  
  /* Features Wrapper */
  .lineup__features-wrapper {
    width: 100%;
    max-width: 1200px;
  }
  
  /* Features */
  .lineup__features {
    background: #fff;
    border-radius: 10px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
    width: 100%;
  }
  
  .lineup__badges {
    display: flex;
    gap: 16px;
    width: 100%;
    justify-content: center;
  }
  
  .lineup-feature {
    display: flex;
    gap: 4px;
    align-items: center;
    padding: 4px 8px;
    border: 1px solid #bab07c;
    border-radius: 0 10px 0 10px;
    flex-shrink: 0;
  }
  
  .lineup-feature__icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
  }
  
  .lineup-feature__text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.9px;
    color: #998866;
    margin: 0;
    white-space: nowrap;
  }
  
  /* Logo Banner (inside white features box) */
  .lineup__logo-banner {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  
  .lineup__logo-banner-img {
    max-width: 80%;
  }
  
  .lineup__logo-banner-img--mobile {
    display: none;
  }
  
  .lineup__logo-banner-img--desktop {
    display: block;
  }
  
  /* Product Cards */
  .lineup__products {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    max-width: 1200px;
  }
  
  .lineup-product {
    border-radius: 10px;
    width: 580px;
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 0;
    overflow: hidden;
  }
  
  .lineup-product__image {
    width: 300px;
    height: 240px;
    flex-shrink: 0;
    position: relative;
    background: #4a4a4a;
    border-radius: 10px;
    overflow: hidden;
  }
  
  .lineup-product__image-link {
    display: block;
    text-decoration: none;
    flex-shrink: 0;
    transition: opacity 0.3s;
    width: 100%;
    height: 100%;
  }
  
  .lineup-product__image-link:hover {
    opacity: 0.8;
  }
  
  .lineup-product__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
  }
  
  .lineup-product__content {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
    flex: 1;
    padding: 16px 16px 16px 0;
  }
  
  .lineup-product__model {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 24px;
    line-height: 35px;
    letter-spacing: 2.4px;
    color: #fff;
    margin: 0;
    font-style: normal;
    margin-bottom: 8px;
  }
  
  .lineup-product__size {
    background: #d9d9d9;
    padding: 10px;
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 12px;
    line-height: 12px;
    letter-spacing: 1.2px;
    color: #000;
    display: inline-block;
  }
  
  .lineup-product__btn {
    background: linear-gradient(90deg, #d3b567 2.73%, #a38a4e 40.051%);
    border-radius: 20px;
    padding: 8px 16px;
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 1.4px;
    color: #fff !important;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    width: 100%;
    transition: opacity 0.3s;
  }

  .lineup-product__btn:hover {
    opacity: 0.8;
  }
  
  /* ========================================
     Lineup Section Responsive
     ======================================== */
  @media (max-width: 768px) {
    .lineup__inner {
      padding: 0 20px;
    }
    
    .lineup__header {
      width: 100%;
    }
    
    .lineup__title {
      width: 100%;
      font-size: 28px;
    }
    
    .lineup__subtitle {
      width: 100%;
    }
    
    .lineup__subtitle-en {
      font-size: 28px;
    }
    
    .lineup__subtitle-jp {
      font-size: 24px;
    }
    
    .lineup__description {
      width: 100%;
      font-size: 14px;
    }
    
    .lineup__features {
      flex-direction: column;
      align-items: flex-start;
      gap: 8px;
    }
    
    .lineup__badges {
      flex-wrap: wrap;
      gap: 8px;
    }
    
    .lineup__badges .lineup-feature:first-child {
      width: 100%;
      flex-shrink: 1;
    }
    
    .lineup__badges .lineup-feature:not(:first-child) {
      flex: 1 0 0;
      min-width: 0;
      flex-shrink: 1;
    }
    
    .lineup-feature {
      flex-shrink: 1;
    }
    
    .lineup-feature__text {
      font-size: 16px;
      letter-spacing: 0.8px;
      white-space: normal;
    }
    
    .lineup__logo-banner-img--desktop {
      display: none;
    }
    
    .lineup__logo-banner-img--mobile {
      display: block;
    }
    
    .lineup__products {
      flex-direction: column;
      gap: 24px;
      width: 100%;
    }
    
    .lineup-product {
      width: 100%;
      flex-direction: column;
      align-items: flex-start;
    }
    
    .lineup-product__image {
      width: 100%;
      height: auto;
      aspect-ratio: 300 / 240;
    }
    
    .lineup-product__content {
      width: 100%;
      padding: 16px;
    }
    
    .lineup__logo-banner-img {
      max-width: 400px;
    }
  }
  
  @media (max-width: 480px) {
    .lineup {
      padding: 40px 0;
    }
    
    .lineup__inner {
      padding: 0 16px;
      gap: 32px;
    }
    
    .lineup__title {
      font-size: 20px;
    }

    .lineup__subtitle-en {
      font-size: 18px;
    }

    .lineup__subtitle-jp {
      font-size: 18px;
    }
    
    .lineup__description {
      font-size: 13px;
    }
    
    .lineup-feature__text {
      font-size: 12px;
    }
    
    .lineup-product__model {
      font-size: 20px;
    }
    
    .lineup__logo-banner-img {
      max-width: 300px;
    }
  }
  
  /* ===================================
     X90L Section
     =================================== */
  .x90l-section {
    width: 100%;
    background: #2d3849;
    display: flex;
    justify-content: center;
  }
  
  .x90l-section__inner {
    max-width: 1440px;
    width: 100%;
    padding: 88px 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 55px;
  }
  
  .x90l-section__title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #ffffff;
    text-align: center;
    margin: 0;
    width: 100%;
    max-width: 994px;
  }
  
  /* Focus Point Box */
  .focus-point {
    width: 100%;
    background: #ffffff;
    border-radius: 30px;
    box-shadow: 0px 0px 40px 0px rgba(48, 49, 51, 0.05);
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
  }
  
  .focus-point__label {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 32px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #b3a061;
    text-align: center;
    margin: 0;
  }
  
  .focus-point__main-title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #000000;
    text-align: center;
    margin: 0;
  }
  
  .focus-point__description {
    width: 100%;
    text-align: center;
  }
  
  .focus-point__description p {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.8px;
    color: #000000;
    margin: 0;
  }
  
  /* Focus Cards */
  .focus-point__cards {
    width: 100%;
    display: flex;
    gap: 24px;
    justify-content: space-between;
  }
  
  .focus-card {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
  }
  
  .focus-card__image {
    width: 100%;
    aspect-ratio: 584 / 397;
    position: relative;
  }
  
  .focus-card__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  
  .focus-card__title {
    font-family: futura-pt, arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "YakuHanJP", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-weight: 500;
    font-size: 24px;
    line-height: 35px;
    letter-spacing: 2.4px;
    color: #000000;
    text-align: center;
    margin: 0;

    max-width: 1200px;
  }
  
  .focus-card__text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 1.4px;
    color: #000000;
    margin: 0;
    width: 100%;
    max-width: 478px;
    text-align: left;
  }
  
  .focus-card__text sup {
    font-size: 11px;
  }
  
  /* Function List */
  .function-list {
    width: 100%;
    max-width: 994px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }
  
  .function-list__title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 26px;
    line-height: 1.8;
    letter-spacing: 1.3px;
    color: #ffffff;
    text-align: center;
    margin: 0;
  }
  
  .function-list__tables {
    width: 100%;
    display: flex;
    gap: 16px;
    justify-content: center;
  }
  
  .function-list__table {
    flex: 1;
    max-width: 375px;
  }
  
  .function-list__table-img {
    width: 100%;
    height: auto;
    display: block;
  }
  
  /* Notes */
  .x90l-section__notes {
    width: 100%;
    max-width: 766px;
  }
  
  .x90l-section__notes p {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 10px;
    line-height: 1.8;
    letter-spacing: 0.5px;
    color: #ffffff;
    margin: 0;
  }
  
  /* ===================================
     X90L Section Responsive
     =================================== */
  @media (max-width: 768px) {
    .x90l-section__inner {
      padding: 64px 20px;
      gap: 40px;
    }
    
    .x90l-section__title {
      font-size: 26px;
      letter-spacing: 1.3px;
    }
    
    .focus-point {
      padding: 24px;
      gap: 20px;
    }
    
    .focus-point__label {
      font-size: 24px;
      letter-spacing: 1.2px;
    }
    
    .focus-point__main-title {
      font-size: 24px;
      letter-spacing: 1.2px;
    }
    
    .focus-point__description p {
      font-size: 14px;
    }
    
    .focus-point__cards {
      flex-direction: column;
      gap: 32px;
    }
    
    .focus-card__title {
      font-size: 20px;
      line-height: 1.4;
      letter-spacing: 2px;
    }
    
    .focus-card__text {
      font-size: 13px;
      max-width: 100%;
    }
    
    .function-list__title {
      font-size: 22px;
      letter-spacing: 1.1px;
    }
    
    .function-list__tables {
      flex-direction: column;
      gap: 16px;
    }
    
    .function-list__table {
      max-width: 100%;
    }
    
    .x90l-section__notes {
      max-width: 100%;
    }
  }
  
  @media (max-width: 480px) {
    .x90l-section__inner {
      padding: 48px 16px;
      gap: 32px;
    }
    
    .x90l-section__title {
      font-size: 20px;
    }
    
    .focus-point {
      padding: 20px;
      gap: 16px;
    }
    
    .focus-point__label {
      font-size: 20px;
    }
    
    .focus-point__main-title {
      font-size: 20px;
    }
    
    .focus-point__description p {
      font-size: 13px;
    }
    
    .focus-card__title {
      font-size: 18px;
    }
    
    .focus-card__text {
      font-size: 12px;
    }
    
    .function-list__title {
      font-size: 20px;
    }
  }
  
  /* ===================================
     Usage Section
     =================================== */
  .usage-section {
    width: 100%;
    background: #f2f3f2;
    display: flex;
    justify-content: center;
  }
  
  .usage-section__inner {
    max-width: 1440px;
    width: 100%;
    padding: 88px 223px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
  }
  
  /* Usage Header */
  .usage-header {
    width: 100%;
    max-width: 994px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }
  
  .usage-header__title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #b7a56a;
    text-align: center;
    margin: 0;
    width: 100%;
  }
  
  .usage-header__description {
    width: 100%;
    text-align: center;
  }
  
  .usage-header__description p {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.8px;
    color: #000000;
    margin: 0;
  }
  
  .usage-header__btn {
    background: linear-gradient(90deg, #d3b567 2.73%, #a38a4e 40.051%);
    border-radius: 20px;
    padding: 8px 16px;
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 1.4px;
    color: #ffffff !important;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.3s;
  }

  .usage-header__btn:hover {
    opacity: 0.8;
  }
  
  /* Usage Steps */
  .usage-steps {
    width: 100%;
    max-width: 994px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }
  
  .step-card {
    width: 100%;
    background: #ffffff;
    border-radius: 30px;
    box-shadow: 0px 0px 40px 0px rgba(48, 49, 51, 0.05);
    overflow: hidden;
  }
  
  /* PC版: デスクトップで表示 */
  .step-card--pc {
    display: flex;
    gap: 32px;
    align-items: center;
    padding: 32px;
  }
  
  /* スマホ版: デスクトップで非表示 */
  .step-card--mobile {
    display: none;
  }
  
  .step-card__image {
    width: 166px;
    height: 166px;
    flex-shrink: 0;
    position: relative;
  }
  
  .step-card__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    pointer-events: none;
  }
  
  .step-card__label {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 32px;
    line-height: 35px;
    letter-spacing: 3.2px;
    color: #b3a061;
    margin: 0;
    flex-shrink: 0;
  }
  
  .step-card__content {
    display: flex;
    flex-direction: column;
    gap: 0;
    flex: 1;
  }
  
  .step-card__title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 24px;
    line-height: 35px;
    letter-spacing: 2.4px;
    color: #000000;
    margin: 0;
  }
  
  .step-card__text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #000000;
    margin: 0;
  }
  
  /* Step Arrow */
  .step-arrow {
    width: 20px;
    height: 27px;
    transform: rotate(90deg);
    flex-shrink: 0;
  }
  
  .step-arrow svg {
    width: 100%;
    height: 100%;
  }
  
  /* Mobile step card top/header (used in mobile view) */
  .step-card__top {
    display: flex;
    gap: 32px;
    align-items: center;
  }
  
  .step-card__header {
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: flex-start;
  }
  
  /* ===================================
     Usage Section Responsive
     =================================== */
  @media (max-width: 768px) {
    .usage-section__inner {
      padding: 64px 20px;
      gap: 32px;
    }
    
    .usage-header__title {
      font-size: 26px;
      letter-spacing: 1.3px;
    }
    
    .usage-header__description p {
      font-size: 14px;
    }
    
    /* PC版を非表示、スマホ版を表示 */
    .step-card--pc {
      display: none;
    }
    
    .step-card--mobile {
      display: flex;
      flex-direction: column;
      gap: 32px;
      padding: 32px 16px;
    }
    
    .step-card__top {
      display: flex;
      gap: 32px;
      align-items: center;
    }
    
    .step-card__image {
      width: 166px;
      height: 166px;
    }
    
    .step-card__header {
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 32px;
      align-items: flex-start;
    }
    
    .step-card__label {
      font-size: 32px;
      line-height: 35px;
    }
    
    .step-card__title {
      font-size: 24px;
      line-height: 35px;
      letter-spacing: 2.4px;
    }
    
    .step-card__text {
      font-size: 16px;
      line-height: 1.8;
      letter-spacing: 1.6px;
      text-align: left;
      width: 100%;
    }
  }
  
  @media (max-width: 480px) {
    .usage-section__inner {
      padding: 48px 16px;
      gap: 24px;
    }
    
    .usage-header__title {
      font-size: 20px;
    }
    
    .usage-header__description p {
      font-size: 13px;
    }
    
    .step-card--mobile {
      padding: 20px 16px;
      gap: 24px;
    }
    
    .step-card__top {
      gap: 16px;
    }
    
    .step-card__image {
      width: 120px;
      height: 120px;
    }
    
    .step-card__header {
      gap: 16px;
    }
    
    .step-card__label {
      font-size: 24px;
    }
    
    .step-card__title {
      font-size: 18px;
    }
    
    .step-card__text {
      font-size: 13px;
    }
  }
  
  /* ===================================
     Refurbish Section (メーカー認定リファービッシュ品)
     =================================== */
  .refurbish-section {
    width: 100%;
    background: #2d3849;
    display: flex;
    justify-content: center;
  }
  
  .refurbish-section__inner {
    max-width: 1440px;
    width: 100%;
    padding: 88px 223px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
  }
  
  .refurbish-section__title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #ffffff;
    text-align: center;
    margin: 0;
    width: 100%;
    max-width: 994px;
  }
  
  .refurbish-card {
    width: 100%;
    max-width: 810px;
    background: #ffffff;
    border-radius: 30px;
    box-shadow: 0px 0px 40px 0px rgba(48, 49, 51, 0.05);
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
  }
  
  .refurbish-card__image {
    width: 584px;
    height: 190px;
    position: relative;
    overflow: hidden;
  }
  
  .refurbish-card__img {
    width: 100%;
    height: auto;
    display: block;
  }
  
  .refurbish-card__text {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 1.4px;
    color: #000000;
    margin: 0;
    width: 546px;
    text-align: left;
  }
  
  /* ===================================
     Refurbish Section Responsive
     =================================== */
  @media (max-width: 768px) {
    .refurbish-section__inner {
      padding: 64px 20px;
      gap: 40px;
    }
    
    .refurbish-section__title {
      font-size: 26px;
      letter-spacing: 1.3px;
    }
    
    .refurbish-card {
      padding: 24px;
      gap: 20px;
    }
    
    .refurbish-card__image {
      width: 100%;
      height: auto;
    }
    
    .refurbish-card__text {
      width: 100%;
      font-size: 13px;
    }
  }
  
  @media (max-width: 480px) {
    .refurbish-section__inner {
      padding: 48px 16px;
      gap: 32px;
    }
    
    .refurbish-section__title {
      font-size: 20px;
    }
    
    .refurbish-card {
      padding: 20px;
      gap: 16px;
    }
    
    .refurbish-card__text {
      font-size: 12px;
    }
  }
  
  /* ===================================
     FAQ Section (よくあるご質問)
     =================================== */
  .faq-section {
    width: 100%;
    background: #f2f3f2;
    display: flex;
    justify-content: center;
  }
  
  .faq-section__inner {
    max-width: 1440px;
    width: 100%;
    padding: 88px 223px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
  }
  
  .faq-section__title {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #b7a56a;
    text-align: center;
    margin: 0;
    width: 100%;
    max-width: 994px;
  }
  
  .faq-cards {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
    width: 100%;
  }
  
  .faq-card {
    width: 100%;
    max-width: 1000px;
    background: #ffffff;
    border-radius: 30px;
    box-shadow: 0px 0px 40px 0px rgba(48, 49, 51, 0.05);
    padding: 32px 64px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
  }
  
  .faq-card__question {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 24px;
    line-height: 35px;
    letter-spacing: 2.4px;
    color: #b3a061;
    margin: 0;
  }
  
  .faq-card__answer {
    font-family: futura-pt, "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 1.6px;
    color: #000000;
  }
  
  .faq-card__answer p {
    margin: 0;
  }
  
  /* ===================================
     FAQ Section Responsive
     =================================== */
  @media (max-width: 768px) {
    .faq-section__inner {
      padding: 64px 20px;
      gap: 40px;
    }
    
    .faq-section__title {
      font-size: 26px;
      letter-spacing: 1.3px;
    }
    
    .faq-card {
      padding: 24px 32px;
      gap: 8px;
    }
    
    .faq-card__question {
      font-size: 20px;
      line-height: 1.5;
      letter-spacing: 2px;
    }
    
    .faq-card__answer {
      font-size: 14px;
      letter-spacing: 1.4px;
    }
  }
  
  @media (max-width: 480px) {
    .faq-section__inner {
      padding: 48px 16px;
      gap: 32px;
    }
    
    .faq-section__title {
      font-size: 20px;
    }
    
    .faq-card {
      padding: 20px 24px;
    }
    
    .faq-card__question {
      font-size: 18px;
      line-height: 1.4;
      letter-spacing: 1.8px;
    }
    
    .faq-card__answer {
      font-size: 13px;
      letter-spacing: 1.3px;
    }
  }

  body footer.Footer {
    margin-top: 0 !important;
  }