/**
 * pages/top.css
 * トップページ専用スタイル。
 * 接頭辞: .p-top
 * 装飾は追加しない（写真主役の徹底。着物レンタルポータルのような差し色・
 * 和柄のあしらいはこのサイトの仕様書で明示的に禁止されている）。
 */

/* -----------------------------------------------------------------
 * メインビジュアル
 * ----------------------------------------------------------------- */
.p-top__hero {
    position: relative;
}

.p-top__hero-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-lg);
}

@media (min-width: 1024px) {
    .p-top__hero-image {
        aspect-ratio: 21 / 9;
    }
}

.p-top__hero-body {
    padding: var(--space-6) var(--gutter-sp) var(--space-4);
    text-align: center;
}

.p-top__hero-catchcopy {
    font-family: var(--font-accent);
    font-size: var(--fs-display);
    line-height: var(--lh-display);
    letter-spacing: var(--ls-heading);
    margin-bottom: var(--space-3);
}

.p-top__hero-lead {
    font-size: var(--fs-body);
    color: var(--color-text-sub);
}

@media (min-width: 1024px) {
    .p-top__hero-body {
        padding-block: var(--space-8) var(--space-5);
    }
}

/* -----------------------------------------------------------------
 * 検索ボックス
 * ----------------------------------------------------------------- */
.p-top__search {
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: var(--space-5);
    max-width: var(--container-narrow);
    margin-inline: auto;
}

.p-top__search-group {
    margin-bottom: var(--space-5);
}

.p-top__search-legend {
    font-size: var(--fs-h3);
    font-weight: var(--fw-bold);
    margin-bottom: var(--space-3);
}

.p-top__search-options {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.p-top__search-checkbox {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.p-top__search-label {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-inline: var(--space-3);
    border-radius: var(--radius-full);
    font-size: var(--fs-small);
    background-color: var(--color-surface-alt);
    color: var(--color-text-sub);
    border: 1px solid var(--color-border);
    cursor: pointer;
    transition: background-color var(--duration-fast) var(--easing);
}

.p-top__search-checkbox:checked + .p-top__search-label {
    background-color: var(--color-primary-light);
    color: var(--color-primary);
    border-color: var(--color-primary);
}

.p-top__search-checkbox:focus-visible + .p-top__search-label {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
}

/* -----------------------------------------------------------------
 * セクション見出し（共通）
 * ----------------------------------------------------------------- */
.p-top__section-head {
    text-align: center;
    margin-bottom: var(--space-6);
}

.p-top__section-title {
    font-size: var(--fs-h1);
    line-height: var(--lh-h1);
}

.p-top__section-lead {
    font-size: var(--fs-small);
    color: var(--color-text-sub);
    margin-top: var(--space-2);
}

.p-top__section-more {
    margin-top: var(--space-6);
    text-align: center;
}

/* -----------------------------------------------------------------
 * PR枠。通常カードとの差は枠線とラベルのみとし、サイズや影で
 * 過度に目立たせない（仕様書 1-9⑤ 準拠）。
 * ----------------------------------------------------------------- */
.p-top__pr-section {
    background-color: var(--color-surface-alt);
}

/* -----------------------------------------------------------------
 * 作例ギャラリーフィード
 * ----------------------------------------------------------------- */
.p-top__feed-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2);
}

@media (min-width: 768px) {
    .p-top__feed-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (min-width: 1024px) {
    .p-top__feed-grid {
        grid-template-columns: repeat(6, 1fr);
    }
}

.p-top__feed-item {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-sm);
}

.p-top__feed-item::before {
    content: "";
    display: block;
    padding-top: 100%; /* 1:1 */
}

.p-top__feed-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--duration-base) var(--easing);
}

.p-top__feed-item:hover .p-top__feed-image {
    transform: scale(1.05);
}
