/* ==========================================================================
   KLab AI Creative - Responsive Styles
   ========================================================================== */

/* --------------------------------------------------------------------------
   Tablet (769px - 1024px)
   -------------------------------------------------------------------------- */

@media screen and (max-width: 1024px) {
  :root {
    --header-height: 70px;
  }

  .container {
    padding: 0 var(--spacing-lg);
  }

  .section {
    padding: var(--spacing-4xl) 0;
  }

  .section__title {
    font-size: var(--font-size-xl);
  }

  .hero__title-ja {
    font-size: var(--font-size-2xl);
  }

  /* Keep 3 columns on tablet */

  .problem__card {
    padding: var(--spacing-xl);
  }

  .solution__grid {
    gap: var(--spacing-lg);
  }

  .service__grid {
    gap: var(--spacing-lg);
  }

  .service__usage {
    gap: var(--spacing-lg);
  }

  .strength__grid {
    gap: var(--spacing-lg);
  }

  .strength__item:last-child {
    max-width: 60%;
  }
}

/* --------------------------------------------------------------------------
   Mobile (〜768px)
   -------------------------------------------------------------------------- */

@media screen and (max-width: 768px) {
  :root {
    --header-height: 60px;
  }

  html {
    font-size: 15px;
  }

  .container {
    padding: 0 var(--spacing-md);
  }

  .section {
    padding: var(--spacing-3xl) 0;
  }

  .section__header {
    margin-bottom: var(--spacing-2xl);
  }

  .section__title {
    font-size: var(--font-size-xl);
  }

  .section__subtitle {
    font-size: var(--font-size-sm);
  }

  /* Hero Video - SP版表示 */
  .hero__video-pc {
    display: none;
  }

  .hero__video-sp {
    display: block;
  }

  /* Header */
  .header__logo-img {
    height: 16px;
  }

  .header__logo-text {
    font-size: 16px;
  }

  .header__cta .btn {
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-size-xs);
  }

  /* Hero */
  .hero {
    min-height: 100vh;
    min-height: 100svh;
    padding: 0;
  }

  .hero__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: var(--spacing-md) var(--spacing-md) var(--spacing-3xl);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
  }

  .hero__bg-img {
    object-position: right center;
  }

  .hero__overlay {
    background: linear-gradient(
      180deg,
      rgba(15, 20, 26, 0.1) 0%,
      rgba(15, 20, 26, 0.25) 50%,
      rgba(15, 20, 26, 0.5) 100%
    );
  }

  .hero__label {
    font-size: var(--font-size-xs);
  }

  .hero__title {
    font-size: var(--font-size-lg);
    max-width: 100%;
    line-height: 1.5;
  }

  .hero__subtitle {
    font-size: var(--font-size-xs);
    margin-top: var(--spacing-sm);
  }

  .hero__cta {
    flex-direction: column;
  }

  .hero__cta .btn {
    width: 100%;
    text-align: center;
  }

  .hero__scroll {
    display: none;
  }

  /* Problem */
  .problem__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .problem__card {
    padding: var(--spacing-xl);
  }

  .problem__number {
    font-size: var(--font-size-2xl);
  }

  .problem__card-title {
    font-size: var(--font-size-lg);
  }

  /* Solution */
  .solution__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
  }

  .solution__item {
    padding: var(--spacing-lg);
  }

  .solution__icon {
    width: 64px;
    height: 64px;
  }

  /* Service */
  .service__category {
    margin-bottom: var(--spacing-3xl);
  }

  .service__category-title {
    font-size: var(--font-size-lg);
  }

  .service__category-desc {
    font-size: var(--font-size-sm);
  }

  .service__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .service__usage {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .service__usage-item {
    padding: var(--spacing-xl);
  }

  /* Service Feature */
  .service__feature {
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
  }

  .service__feature--reverse {
    grid-template-columns: 1fr;
  }

  .service__feature--reverse .service__feature-img,
  .service__feature--reverse .service__feature-content {
    order: unset;
  }

  .service__feature-num {
    font-size: var(--font-size-2xl);
  }

  .service__feature-title {
    font-size: var(--font-size-lg);
  }

  /* Strength */
  .strength__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .strength__item {
    padding: var(--spacing-xl);
  }

  .strength__item:last-child {
    max-width: 100%;
  }

  .strength__title {
    font-size: var(--font-size-base);
  }

  /* Contact */
  .contact__form {
    padding: var(--spacing-xl);
  }

  .form__input,
  .form__textarea {
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-size-sm);
  }

  /* Footer */
  /* Footer Mobile */
  .footer {
    padding: var(--spacing-2xl) 0;
  }

  .footer__inner {
    padding: 0 var(--spacing-md);
  }

  .footer__main {
    flex-direction: column;
    gap: var(--spacing-xl);
    text-align: center;
  }

  .footer__left {
    width: 100%;
  }

  .footer__logo {
    justify-content: center;
  }

  .footer__info {
    text-align: center;
  }

  .footer__links {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-sm);
    text-align: center;
    width: 100%;
  }

  .footer__links a {
    display: block;
    text-align: center;
  }

  .footer__copyright {
    text-align: center;
  }

  /* Fixed CTA - 非表示 */
  .fixed-cta {
    display: none;
  }

  /* Utilities */
  .pc-only {
    display: none;
  }

  .sp-only {
    display: inline;
  }
}

/* --------------------------------------------------------------------------
   Small Mobile (〜480px)
   -------------------------------------------------------------------------- */

@media screen and (max-width: 480px) {
  html {
    font-size: 14px;
  }

  .hero__title {
    font-size: var(--font-size-base);
  }

  .hero__subtitle {
    font-size: 10px;
  }

  .hero__title-ja {
    font-size: var(--font-size-lg);
  }

  .problem__card,
  .service__usage-item,
  .strength__item {
    padding: var(--spacing-lg);
  }

  .contact__form {
    padding: var(--spacing-lg);
  }
}

/* --------------------------------------------------------------------------
   Tablet Styles for New Components (769px - 1024px)
   -------------------------------------------------------------------------- */

@media screen and (max-width: 1024px) {
  /* Service Preview */
  .service-preview__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
  }

  /* Strength Preview */
  .strength-preview__list {
    gap: var(--spacing-sm);
  }

  .strength-preview__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
  }

  .strength-preview__card {
    grid-column: span 1;
  }

  .strength-preview__card:nth-child(4),
  .strength-preview__card:nth-child(5) {
    grid-column: span 1;
  }

  .strength-preview__card:nth-child(4) {
    grid-column: 1 / 2;
    margin-left: 50%;
  }

  .strength-preview__card:nth-child(5) {
    grid-column: 3 / 4;
    margin-right: 50%;
  }

  /* Service Variant */
  .service__variant {
    grid-template-columns: 160px 1fr;
    gap: var(--spacing-lg);
  }

  /* Use Cases */
  .use-cases__grid {
    gap: var(--spacing-lg);
  }

  /* Strength Detail */
  .strength__detail-content {
    padding-left: calc(var(--font-size-2xl) * 1.5 + var(--spacing-lg));
  }
}

/* --------------------------------------------------------------------------
   Mobile Styles for New Components (〜768px)
   -------------------------------------------------------------------------- */

@media screen and (max-width: 768px) {
  /* Header Navigation - Hide on mobile */
  .header__nav {
    display: none;
  }

  .header__cta {
    display: none;
  }

  .header__hamburger {
    display: flex;
  }

  .mobile-menu {
    display: block;
  }

  /* Page Header */
  .page-header {
    padding: calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);
  }

  .page-header__title {
    font-size: var(--font-size-xl);
  }

  /* Service Preview */
  .service-preview__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .service-preview__item {
    aspect-ratio: 16/10;
  }

  .service-preview__img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }

  /* AI Model: 上寄り */
  .service-preview__item:nth-child(1) .service-preview__img img {
    object-position: center 10%;
  }

  /* AI Caster: デフォルト（中央） */
  .service-preview__item:nth-child(2) .service-preview__img img {
    object-position: center center;
  }

  /* AI Artist: 上寄り */
  .service-preview__item:nth-child(3) .service-preview__img img {
    object-position: center 20%;
  }

  /* Strength Preview */
  .strength-preview__item {
    padding: var(--spacing-md) var(--spacing-lg);
  }

  .strength-preview__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .strength-preview__card {
    grid-column: span 1 !important;
    margin: 0 !important;
  }

  .strength-preview__img {
    aspect-ratio: 16 / 9;
  }

  .strength-preview__content {
    padding: var(--spacing-md) var(--spacing-lg);
    gap: var(--spacing-md);
  }

  .strength-preview__num {
    font-size: var(--font-size-lg);
    min-width: 36px;
  }

  .strength-preview__text {
    font-size: var(--font-size-sm);
  }

  /* Solution Visual mobile */
  .solution__visual {
    border-radius: var(--radius-md);
  }

  .solution__visual img {
    border-radius: var(--radius-md);
  }

  /* Strength Preview Visual mobile */
  .strength-preview__visual {
    border-radius: var(--radius-md);
  }

  .strength-preview__visual img {
    border-radius: var(--radius-md);
  }

  /* Solution icon mobile */
  .solution__icon {
    width: 100px;
    height: 100px;
  }

  /* Service Intro */
  .service-intro__title {
    font-size: var(--font-size-xl);
  }

  .service-intro__desc {
    font-size: var(--font-size-sm);
  }

  /* Service Variant */
  .service__variant {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
    text-align: center;
  }

  .service__variant-img {
    max-width: 200px;
    margin: 0 auto;
  }

  /* Use Cases */
  .use-cases__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .use-cases__item {
    padding: var(--spacing-xl);
  }

  /* CTA */
  .cta__title {
    font-size: var(--font-size-lg);
  }

  /* Strength Intro */
  .strength-intro__desc {
    font-size: var(--font-size-sm);
  }

  /* Strength Detail */
  .strength__detail {
    max-width: 100%;
  }

  .strength__detail--reverse {
    margin-left: 0;
  }

  .strength__detail-header {
    flex-direction: column;
    gap: var(--spacing-sm);
  }

  .strength__detail-num {
    font-size: var(--font-size-3xl);
  }

  .strength__detail-title {
    font-size: var(--font-size-lg);
    padding-top: 0;
  }

  .strength__detail-content {
    padding-left: 0;
  }

  .strength__detail-lead {
    font-size: var(--font-size-sm);
  }

  .strength__detail-list li {
    padding-left: var(--spacing-lg);
  }

  .strength__detail-list li strong {
    font-size: var(--font-size-sm);
  }

  .strength__detail-list li span {
    font-size: var(--font-size-xs);
  }

  /* Section subtitle */
  .section__subtitle {
    font-size: var(--font-size-sm);
  }

  /* Header Navigation */
  .header__nav-divider,
  .header__nav-sections {
    display: none;
  }

  /* About Page */
  .about__intro-title {
    font-size: var(--font-size-xl);
  }

  .about__intro-desc {
    font-size: var(--font-size-base);
  }

  .company-table__inner th,
  .company-table__inner td {
    display: block;
    width: 100%;
    padding: var(--spacing-md);
  }

  .company-table__inner th {
    background-color: var(--color-background-alt);
    border-bottom: none;
  }

  .about-strength__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
  }

  .mission__text {
    font-size: var(--font-size-xl);
  }

  .mission__desc {
    font-size: var(--font-size-base);
  }

  /* News List */
  .news-list__item {
    grid-template-columns: 1fr;
    gap: var(--spacing-sm);
    padding: var(--spacing-lg) 0;
  }

  .news-list__date {
    order: 1;
  }

  .news-list__category {
    order: 2;
    justify-self: start;
  }

  .news-list__title {
    order: 3;
  }

  /* Article */
  .article__title {
    font-size: var(--font-size-xl);
  }

  .article__body h2 {
    font-size: var(--font-size-lg);
  }

  .article__body h3 {
    font-size: var(--font-size-base);
  }
}
