/*
 * Mary's Make up - estilos propios
 * css/styles.css はテーマ本体(自動生成)なので触らない。
 * 独自の変更はすべてこのファイルに書く。
 */

/* --- Texto en japonés / 日本語テキスト(従) --- */
/* Raleway・Lora には日本語グリフが無いため明示指定する。
   日本語は OS 標準フォントを使う(Web フォント化すると数MB必要になるため)。
   Mac/iOS は Hiragino Sans、Windows は Yu Gothic が当たる。 */
[lang="ja"] {
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN",
        "Yu Gothic Medium", "Yu Gothic", "Meiryo", sans-serif;
    font-feature-settings: "palt" 1;
}

p[lang="ja"] {
    margin-top: 0.5rem;
    font-size: 0.9rem;
    line-height: 1.9;
    opacity: 0.85;
}

.section-heading-ja {
    display: block;
    margin-top: 0.6rem;
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 1.6;
    text-transform: none;
}

/* --- Encabezado / ヘッダー --- */
/* テンプレートは上下 5rem。2行構成が前提の値なので、1行になった分を詰める */
.site-heading {
    margin-top: 2rem;
    margin-bottom: 1rem;
}

/* 見出し下の空きは .page-section の margin-top 5rem が支配していた。
   隣接マージンは相殺され大きい方が勝つため、こちらを詰めないと縮まらない。 */
header + .page-section {
    margin-top: 2.5rem;
}

/* --- Fondo de página / ページ背景 --- */
/* bg.jpg は縦長で顔が上寄りにある。center だとPC幅で顔の上半分が切れるので上端基準にする */
body {
    background-position: center top;
}

/* --- Foto de portada (Inicio) --- */
/* 元画像が縦長なので、テンプレート本来の横長スロットに合わせて表示範囲を指定 */
/* 顔と FACE CHART の両方が入る範囲。4:3 では下のチャートが切れる */
.intro-img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: 50% 36%;
}

/* --- Compromiso / ご本人の約束 --- */
.pledge {
    margin: 1.75rem 0 0;
    padding-left: 1.1rem;
    border-left: 3px solid #e6a756;
    font-style: italic;
    font-size: 1.05rem;
}

.pledge[lang="ja"] {
    margin-top: 0.75rem;
    font-style: normal;
    font-size: 0.9rem;
    line-height: 1.9;
    opacity: 0.85;
}

/* --- Perfil / プロフィール(写真 + 本文の2カラム) --- */
.profile-grid {
    display: grid;
    gap: 2rem;
    align-items: start;
}

@media (min-width: 992px) {
    .profile-grid {
        grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
        gap: 3rem;
    }
}

.profile-photo {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 0.5rem;
    box-shadow: 0 1.25rem 2.5rem rgba(47, 23, 15, 0.35);
}

/* --- Galería / ギャラリー --- */
.gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

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

.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 0.5rem;
    background-color: rgba(47, 23, 15, 0.1);
}

.gallery-item > img,
.gallery-item > video {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
}

.gallery-item > img {
    transition: transform 0.4s ease;
}

/* 動画は被写体が中央より右寄りなので表示位置をずらす */
.gallery-item > video {
    object-position: 60% center;
    background-color: #2f170f;
}

@media (hover: hover) {
    .gallery-item:hover > img {
        transform: scale(1.05);
    }
}

/* --- Servicios: スマホでの見出しはみ出し対策 --- */
/* 見出しボックスは flex アイテムで、既定では中身より小さくならない(min-width:auto)。
   "Maquillaje" が 48px だと横 328px あり、コンテナ 375px から溢れて左右にズレていた。 */
@media (max-width: 991.98px) {
    .product-item .product-item-title > div,
    .product-item .product-item-description > div {
        width: 100%;
        min-width: 0;
    }

    .product-item .section-heading-lower {
        font-size: 2.25rem;
        overflow-wrap: break-word;
    }
}

/* --- Redes sociales (footer) --- */
.social-links {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.social-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid rgba(246, 225, 197, 0.4);
    border-radius: 50%;
    color: #f6e1c5;
    transition: color 0.15s ease-in-out, border-color 0.15s ease-in-out, background-color 0.15s ease-in-out;
}

.social-links a:hover,
.social-links a:focus-visible {
    color: #2f170f;
    background-color: #e6a756;
    border-color: #e6a756;
}

.social-links svg {
    width: 1.35rem;
    height: 1.35rem;
}
