/* ==========================================================================
   基本リセット & 共通設定
   ========================================================================== */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans JP", sans-serif;
    color: #333333;
    background-color: #ffffff;
    line-height: 1.7;
}

a {
    color: #333333;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

.icon {
      width: 120px;
      height: 120px;
      margin: 20px auto;
    }

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.app-header {
    background-color: #ffffff;
    padding: 20px 0 0 0;
}

.header-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.site-logo {
    font-size: 24px;
    font-weight: bold;
    letter-spacing: 1px;
}


/* PC・タブレット */
.site-logo-svg {
    width: 100%;
    max-width: 200px;   /* 大きめ */
    height: auto;
}

/* スマホ */
@media (max-width: 600px) {
    .app-grid {
        flex-direction: column; /* ← 縦並びにする */
        gap: 40px;              /* ← カード間の余白を少し広げる（任意） */
    }

    .app-card {
        width: 100%;            /* ← 横幅いっぱいに */
        padding: 10px 0;   /* 上下に余白 */
    }

    .site-logo-svg {
        max-width: 180px;   /* スマホでは少し小さく */
    }
}


.site-navigation ul {
    list-style: none;
    display: flex;
    gap: 20px;
}

.site-navigation a {
    font-size: 15px;
    font-weight: 500;
}

/* ==========================================================================
   メインヒーローセクション（上部の白いエリア）
   ========================================================================== */
.hero-section {
    background-color: #ffffff;
    padding: 20px 20px;
    text-align: center;
}

.hero-inner {
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.5px;
}

.hero-inner p {
    margin-bottom: 8px;
}

.hero-illustration {
    display: block;
    width: 50%;          /* 親要素いっぱいに広げる */
    height: auto;         /* 縦横比を維持して自動調整 */
    max-width: none;      /* 以前の制限を解除 */
    margin: 0px auto 0; 
    object-fit: contain;  /* 見切れ防止 */
    object-position: center;
}


/* ==========================================================================
   アプリ紹介セクション（中央の薄グレー/ベージュ背景エリア）
   ========================================================================== */
.portfolio-section {
    background-color: #e8e5e0; /* スクショの背景色を再現 */
    padding: 60px 20px;
}

.portfolio-inner {
    max-width: 1000px;
    margin: 0 auto;
}

.portfolio-intro {
    text-align: center;
    margin-bottom: 50px;
}

.portfolio-intro h2 {
    font-size: 18px;
    font-weight: normal;
    margin-top: 10px;
}

/* アプリの並び（横並び・スマホ時は自動で縦に落ちる設定） */
.app-grid {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap; /* 画面が狭くなったら折り返す */
}

.app-card {
    flex: 1;
    min-width: 50px; /* 崩れ防止の最小幅 */
    text-align: left;
}


/* ============================
   アプリアイコン（レスポンシブ対応）
   ============================ */
/* アプリアイコン（レスポンシブ & 見切れ完全防止） */
.app-icon {
    width: 60%;            /* ← 今の 3 分の 2 に縮小 */
    max-width: 140px;      /* ← PC での最大サイズ */
    margin: 0 auto 15px;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* a タグの固定サイズを上書きして親にフィットさせる */
.app-icon a {
    width: 100% !important;
    height: 100% !important;
    display: block;
    position: relative;
    background-color: transparent !important;
    overflow: hidden;
}

/* 画像のマスク設定 */
.app-icon img {
    width: 100%;
    /* height: 100%; */
    height: auto;
    object-fit: contain;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
}

/* スマホ時はさらに小さく */
@media (max-width: 600px) {
    .app-icon {
        width: 50%;
        max-width: 110px;
    }
}



.app-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 8px;
    text-align: center;
}

.app-description {
    font-size: 13px;
    color: #666666;
    word-break: break-all;
}


.os-links {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-bottom: 10px;
}

.os-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-size: 14px;
  border-radius: 8px;
  border: 1px solid #c7c7cc; /* iOS薄グレー */
  background-color: #f2f2f7;
  color: #333333;
  text-decoration: none;
}

.os-badge:hover {
  background-color: #f2f2f7; /* iOSのセカンダリ背景 */
}

.os-icon {
  width: 16px;
  height: 16px;
  /* filter: grayscale(100%) brightness(60%); */  /* Apple公式グレーに近づける */
}

.divider {
  color: #c7c7cc; /* iOSの薄いグレー */
}




/* ==========================================================================
   フッター
   ========================================================================== */
/* 帯 */
.color-bar {
    height: 30px;
    background-color: #63d6cb;
}

.app-footer {
    background-color: #ffffff;
    padding: 20px 0;
    font-size: 13px;
}

.footer-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.copyright {
    color: #666666;
}
