* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    background-color: #ffffff;
    scroll-behavior: smooth;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    overflow-x: hidden;
    background: transparent;
}

/* ============================================================
   Design Page Section  (mihon.png 忠実再現)
   main_bg_design.png(1072×1271, 透過)を右端アタッチ背景として使用
   ============================================================ */

.dp {
    position: relative;
    width: 100%;
    /* セクションの縦横比は元デザイン(1920:1411)を維持 */
    aspect-ratio: 1920 / 1411;
    max-width: 1920px;
    margin: 0 auto;
    background: #ffffff;
    overflow: hidden;
}

/* ---- main_bg_design.png を右端に常時アタッチ表示 ----
   画像サイズ: 1072×1271(透過PNG)。.dp幅に対する原寸比率は約55.83%。
   background-size は % 指定にすることで「.dp(=ブラウザ幅いっぱい)」を基準に
   常にコンテナ右端＝ブラウザ右端へぴったりくっつくスケーリングになる。
   clamp() で極小幅(SP)での縮小しすぎ／極大幅での原寸超え拡大を防止。 */
.dp-bg {
    position: absolute;
    inset: 0;
    background-image: url('./img/main_bg_design.png');
    background-size: clamp(220px, 55.83%, 1072px) auto;
    background-position: right 80px;
    background-repeat: no-repeat;
    z-index: 0;
}

/* ---- 左上タイトルブロック ---- */
.dp-header {
    position: absolute;
    top: 8%;
    left: 9%;
    z-index: 4;
}

/* "impression & images" */
.dp-title-en {
    font-family: 'M PLUS 1', sans-serif;
    font-weight: 300;
    font-size: clamp(13px, 2.0vw, 36px);
    letter-spacing: 0.16em;
    color: #9fa0a0;
    line-height: 1.25;
    margin-bottom: 0.8em;
}
.dp-bold {
    font-weight: 500;
    font-size: 1.12em;
    color: #9fa0a0;
}
.dp-amp {
    font-size: 0.75em;
}

/* "印 象 を ゆ さ ぶ る イ メ ー ジ を" */
.dp-title-jp {
    font-family: 'M PLUS 1', sans-serif;
    font-weight: 300;
    font-size: clamp(13px, 2.2vw, 20px);
    letter-spacing: 0.4em;
    color: #1b1464;
}

/* ---- images ロゴ：タイトルブロック内・中央 ---- */
/* mihon.png: タイトル下・中央寄り（上約22%） */
.dp-logo {
    margin-top: clamp(80px, 1.8vw, 80px);
    margin-bottom: clamp(80px, 1.8vw, 80px);
    text-align: center;
    z-index: 4;
}
.dp-logo img {
    width: clamp(50px, 5.5vw, 90px);
    height: auto;
    display: inline-block;
}

/* ---- 本文テキスト ---- */
.dp-body {
    position: absolute;
    top: 36%;
    left: 9%;
    width: 38%;
    z-index: 4;
    font-family: 'BIZ UDGothic', 'Noto Sans JP', sans-serif;
    font-size: clamp(11px, 2vw, 15px);
    color: #3c3c3c;
    line-height: 1;
    letter-spacing: 0.04em;
}

/* ---- 3 Feature Cards (koumoku SVG img) ---- */
.dp-cards-svg {
    position: absolute;
    top: 60%;
    left: 50%;
    transform: translateX(-50%);
    /* 3枚 × 206.57px(70%) + gap → 約36%でフィット（1.2倍サイズに拡大） */
    width: 43.2%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: clamp(6px, 1.2vw, 22px);
    z-index: 5;
}
.dp-koumoku-img {
    /* コンテナを3等分 */
    width: calc(33.333% - 0.8vw);
    height: auto;
    display: block;
    flex-shrink: 0;
}

/* ============================================================
   PC + Tablet  768〜  (dp-content 統合レイアウト)
   ============================================================ */
@media (min-width: 768px) {
    /* ---- .dp を flexbox column にして「テキスト→余白→カード」の順に配置 ----
       ・ワイド時: min-height が大きいため余白(margin-top:auto)がカードを底に押す
       ・ナロー時: テキストが伸びると余白が0になりカードはテキストの直後に配置
       → どの幅でもテキストとカードは絶対に重ならない */
    .dp {
        display: flex;
        flex-direction: column;
        aspect-ratio: auto;
        min-height: min(calc(100vw * 1411 / 1920), 1411px);
        overflow: visible;
        padding-top: clamp(80px, 12%, 148px);
    }

    /* ---- 見出し〜本文を .dp-content で一塊にまとめる ---- */
    .dp-content {
        position: relative;
        margin-left: clamp(5%, 7vw, 9%);
        width: clamp(320px, 38vw, 550px);
        z-index: 4;
    }
    .dp-header {
        position: static;
        top: auto;
        left: auto;
    }
    .dp-body {
        position: static;
        top: auto;
        left: auto;
        width: auto;
    }
    /* ロゴの上下は100pxずつ固定。幅は本文(dp-body)と同じcalc(100% - 20px)に揃えて中央を一致させる */
    .dp-logo {
        margin-top: 100px;
        margin-bottom: 100px;
        width: calc(100% - 20px);
    }
    /* サイズをほんの少し拡大 */
    .dp-logo img {
        width: clamp(55px, 6vw, 100px);
    }

    /* キャッチコピー */
    .dp-title-en { font-size: clamp(16px, 2.8vw, 54px); white-space: nowrap; }
    .dp-title-jp { font-size: clamp(14px, 1.8vw, 30px); }
    /* 800pxで15px、960px以上で17pxにスケール。行間は2倍 */
    .dp-body {
        font-size: clamp(15px, 1.875vw, 17px);
        line-height: clamp(30px, 3.75vw, 36px);
        max-width: calc(100% - 20px);
    }

    /* ---- koumoku カード: 通常フロー + 底部配置 + works に 1/3 重ねる ----
       margin-top:auto で flex の余白を全て上に吸収 → カードを底に押す
       translateY(33%) で自身の1/3だけ .dp の下にはみ出し、works に重なる */
    .dp-cards-svg {
        position: relative;
        top: auto;
        bottom: auto;
        left: auto;
        margin: auto auto 0;
        width: clamp(50%, 56vw, 43.2%);
        transform: translateY(33%);
        z-index: 5;
    }
    .works { position: relative; z-index: 1; }
}

/* ============================================================
   Mobile 〜767
   ============================================================ */
@media (max-width: 767px) {
    .dp {
        aspect-ratio: auto;
        min-height: 100svh;
        padding: 60px 0 40px;
    }
    .dp-bg {
        /* SPでも右端アタッチを維持。coverにすると透過画像が引き伸びるためcontain系の指定に留める */
        /* 右上を基準点(background-position)に据えたまま拡大することで、左・下方向へ80px分広がる */
        background-size: clamp(220px, calc(62% + 80px), 480px) auto;
        background-position: right 130px;
    }
    .dp-header {
        position: relative;
        top: auto; left: auto;
        padding: 20px 20px 0;
        z-index: 4;
    }
    /* SPではこのキャッチコピーをメインタイトル格として扱い、
       PC/タブレット用clampの下限(13px)だと小さすぎるため専用サイズに */
    .dp-title-en { font-size: clamp(26px, 7vw, 34px); }
    /* SP: 「impression / & images」に改行 */
    .dp-title-en-break { display: block; }
    /* 「&」を現状(0.75em)より1px小さく */
    .dp-amp { font-size: calc(0.75em - 1px); }
    /* SP: 「印象をゆさぶる / イメージを」に改行 */
    .dp-title-jp-break { display: block; }
    /* imagesロゴもSPでの下限(50px固定)だと小さいため引き上げ */
    .dp-logo img { width: clamp(70px, 18vw, 100px); }
    /* ロゴを本文テキストの直上に配置：下との間隔を詰める。左寄せ配置。
       さらに下の要素(六角形カード等)のレイアウトに影響しないよう transform で50px下へ移動 */
    .dp-logo { margin-top: 200px; margin-bottom: 20px; text-align: left; padding-left: 0; transform: translateY(50px); }
    .dp-body {
        position: relative;
        top: auto; left: auto;
        width: 90%;
        margin: 40px auto 0;
        /* 本文を上へ10px移動 + 50px下へ移動 = 正味40px下 */
        transform: translateY(40px);
        /* 本文サイズ14px・行間14px */
        font-size: 14px;
        line-height: 28px;
    }
    .dp-cards-svg {
        position: relative;
        top: auto; left: auto;
        transform: none;
        display: block;
        /* 両サイドmarginなしでブラウザ幅いっぱいに拡大 */
        width: 100%;
        /* 3枚の重なり分を含めた高さを確保 */
        aspect-ratio: 1 / 1.06;
        /* 本文テキスト(transformで下に移動済み)との実測間隔が50pxになるよう調整 */
        margin: 90px 0 0;
    }
    /* SP: 3枚を斜めに重ねて配置（画像参照） */
    .dp-koumoku-img {
        position: absolute;
        width: 52%;
        height: auto;
    }
    .dp-koumoku-img:nth-of-type(1) { top: 2%; left: 2%; z-index: 1; }
    .dp-koumoku-img:nth-of-type(2) { top: 20%; left: 44%; z-index: 2; }
    .dp-koumoku-img:nth-of-type(3) { top: 46%; left: 4%; z-index: 3; }
    .dp-card { width: clamp(90px, 28vw, 130px); }
}

/* =====================
   Works Section
   ===================== */
.works {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    line-height: 0;
}

.works-img {
    width: 100%;
    height: auto;
    display: block;
}

/* SP時のみ：ph01.jpg(img)の代わりにph_bg_sp.jpgをセクション背景として表示。
   koumokuカードをworksの上に重ねるため position:relative + z-index で下地にする */
@media (max-width: 767px) {
    .works {
        position: relative;
        z-index: 1;
        aspect-ratio: 750 / 1316;
        background-image: url('./img/ph_bg_sp.jpg');
        /* 縦横比がコンテナと一致し隙間がないため、30px上へ動かす分の余白を確保 */
        background-size: 100% calc(100% + 30px);
        background-position: center -30px;
        /* koumokuカード(z-index:5)がph_bg_sp.jpgの上1/3に重なるよう引き上げる */
        margin-top: -69.18vw;
    }
    .works-img {
        display: none;
    }
}

/* =====================
   Footer Nav Section (Buttons)
   ===================== */
.fnav {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    background: #ffffff;
    padding: 60px 20px;
}

.fnav__buttons {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 50px;
}

.fnav__btn {
    display: block;
    line-height: 0;
    transition: filter 0.2s ease;
}

/* マウスオーバー時に明るく */
.fnav__btn:hover {
    filter: brightness(1.3);
}

.fnav__btn img {
    display: block;
    width: 200px;
    height: auto;
}

/* PC時のみ：ボタンサイズを拡大し、下側の余白を100pxに */
@media (min-width: 768px) {
    .fnav {
        padding-bottom: 100px;
    }
    .fnav__btn img {
        width: 280px;
    }
}

/* SP時のみ：ボタン間の縦スペースを30pxに */
@media (max-width: 767px) {
    .fnav__buttons {
        gap: 30px;
    }
}
