/*
 * LaLa 多文化・多言語サポート（page-multilingual-support.php。フラグ multilingual）
 *
 * このページでだけ読み込む。クラス名はすべて lala-ml- で始める。
 * 配色はクライアント提供のデザイン案（2026-10-08）：サービスごとに赤・青・緑・オレンジ・紫、ボタンは赤（相談）と青（資料）。
 */

.lala-ml {
    --lala-ml-coral: #E8524A;
    --lala-ml-blue: #2F6FDB;
    --lala-ml-green: #23A26A;
    --lala-ml-orange: #E9822A;
    --lala-ml-purple: #8455D1;
    --lala-ml-ink: #1F2D3A;
    --lala-ml-muted: #56606B;
    background: #F7FAFC;
    color: var(--lala-ml-ink);
}

/* サイト共通の指定（見出しの中央寄せ・色、段落の余白）を、このページの中では打ち消す。:where() で優先度0 */
:where(.lala-ml) h1,
:where(.lala-ml) h2,
:where(.lala-ml) h3,
:where(.lala-ml) p,
:where(.lala-ml) ul,
:where(.lala-ml) ol,
:where(.lala-ml) li {
    margin: 0;
    color: inherit;
    text-align: inherit;
}

:where(.lala-ml) ul,
:where(.lala-ml) ol {
    padding: 0;
    list-style: none;
}

.lala-ml-icon {
    width: 1em;
    height: 1em;
    flex-shrink: 0;
}

/* ===== ヒーロー ===== */
.lala-ml-hero {
    padding: 44px 0 40px;
    background:
        radial-gradient(circle at 85% 20%, rgba(0, 160, 160, 0.12), transparent 45%),
        linear-gradient(180deg, #EAF4FB 0%, #F7FAFC 100%);
}

.lala-ml-hero-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 40px;
    align-items: center;
}

.lala-ml-eyebrow {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 50px;
    background: var(--lala-ml-ink);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.lala-ml-brand {
    margin-top: 14px;
    color: #007E8C;
    font-size: 1.05rem;
    font-weight: 800;
}

.lala-ml-brand span {
    display: block;
    margin-top: 2px;
    color: var(--lala-ml-muted);
    font-size: 0.82rem;
    font-weight: 600;
}

.lala-ml-brand span::before { content: "〜"; }
.lala-ml-brand span::after { content: "〜"; }

.lala-ml-title {
    margin-top: 14px;
    font-size: clamp(1.75rem, 3.6vw, 2.6rem);
    font-weight: 900;
    line-height: 1.35;
    letter-spacing: 0.01em;
}

.lala-ml-title span {
    display: inline-block; /* 文の切れ目でだけ折り返す */
}

.lala-ml-title em {
    color: var(--lala-ml-coral);
    font-style: normal;
    font-size: 1.25em;
}

.lala-ml-lead {
    margin-top: 16px;
    color: #34404B;
    font-size: 1rem;
    line-height: 1.9;
}

.lala-ml-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.lala-ml-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 52px;
    padding: 12px 24px;
    border-radius: 10px;
    color: #fff;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.4;
    text-decoration: none;
    box-shadow: 0 6px 16px rgba(31, 45, 58, 0.14);
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.lala-ml-button .lala-ml-icon {
    width: 1.3em;
    height: 1.3em;
}

.lala-ml-button:hover,
.lala-ml-button:focus-visible {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(31, 45, 58, 0.18);
    filter: brightness(1.05);
}

.lala-ml-button.is-primary { background: var(--lala-ml-coral); }
.lala-ml-button.is-secondary { background: var(--lala-ml-blue); }

/* ヒーローの右側：写真（無ければ地球のアイコン）、ひと言、3つの丸バッジ */
.lala-ml-hero-visual {
    position: relative;
    min-height: 340px;
    border-radius: 24px;
    overflow: hidden;
    background: linear-gradient(135deg, #00A0A0 0%, #2F6FDB 100%);
}

.lala-ml-hero-photo {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 340px;
    object-fit: cover;
}

.lala-ml-hero-art {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: rgba(255, 255, 255, 0.28);
    font-size: 220px;
}

.lala-ml-hero-quote {
    position: absolute;
    top: 18px;
    left: 18px;
    padding: 10px 16px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--lala-ml-ink);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.6;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.lala-ml-badges {
    position: absolute;
    right: 16px;
    bottom: 16px;
    display: flex;
    gap: 8px;
}

.lala-ml-badges li {
    display: grid;
    place-content: center;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    color: var(--lala-ml-ink);
    font-size: 0.74rem;
    font-weight: 800;
    line-height: 1.3;
    text-align: center;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14);
}

.lala-ml-badges strong {
    display: block;
    font-size: 1.05rem;
    line-height: 1.25;
}

.lala-ml-badges li:first-child strong { font-size: 1.7rem; }
.lala-ml-badges .is-small strong { font-size: 0.82rem; }
.lala-ml-badges .is-teal { background: #DDF2F7; }
.lala-ml-badges .is-green { background: #E3F4D8; }
.lala-ml-badges .is-pink { background: #F6E1F3; }

/* ===== セクション共通 ===== */
.lala-ml-section {
    padding: 56px 0;
}

.lala-ml-section.is-white {
    background: #fff;
}

.lala-ml-heading {
    font-size: clamp(1.4rem, 2.6vw, 1.8rem);
    font-weight: 900;
    line-height: 1.45;
    text-align: center;
    text-wrap: balance;
}

.lala-ml-heading-lead {
    margin-top: 8px;
    color: var(--lala-ml-muted);
    font-size: 0.95rem;
    text-align: center;
}

/* 色の割り当て（サービス・場面） */
.lala-ml .is-coral { --lala-ml-tone: var(--lala-ml-coral); --lala-ml-tint: #FDEDEC; }
.lala-ml .is-blue { --lala-ml-tone: var(--lala-ml-blue); --lala-ml-tint: #EAF1FC; }
.lala-ml .is-green { --lala-ml-tone: var(--lala-ml-green); --lala-ml-tint: #E7F6EF; }
.lala-ml .is-orange { --lala-ml-tone: var(--lala-ml-orange); --lala-ml-tint: #FDF1E5; }
.lala-ml .is-purple { --lala-ml-tone: var(--lala-ml-purple); --lala-ml-tint: #F1EBFB; }

/* 写真の枠（写真が無ければアイコンを大きく表示） */
.lala-ml-media {
    display: grid;
    place-items: center;
    aspect-ratio: 16 / 10;
    border-radius: 12px;
    overflow: hidden;
    background: var(--lala-ml-tint, #EEF2F5);
    color: var(--lala-ml-tone, #007E8C);
    font-size: 64px;
}

.lala-ml-media.has-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ===== サービス（5つ） ===== */
.lala-ml-services {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
}

.lala-ml-service {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px 14px 18px;
    border: 1px solid #E3E8EE;
    border-top: 4px solid var(--lala-ml-tone);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(31, 45, 58, 0.05);
}

.lala-ml-service-title {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-height: 3.1em;
    color: var(--lala-ml-tone);
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.45;
}

.lala-ml-service-name span {
    display: inline-block; /* 区切った位置でだけ折り返す */
}

.lala-ml-number {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--lala-ml-tone);
    color: #fff;
    font-size: 1.05rem;
    font-weight: 800;
}

.lala-ml-service p {
    color: #3A4652;
    font-size: 0.88rem;
    line-height: 1.8;
}

.lala-ml-more {
    margin-top: auto;
    color: var(--lala-ml-blue);
    font-size: 0.92rem;
    font-weight: 800;
    text-decoration: underline;
}

/* ===== 活用場面（4つ） ===== */
.lala-ml-scenes {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 28px;
}

.lala-ml-scene {
    overflow: hidden;
    border: 1px solid #E3E8EE;
    border-radius: 14px;
    background: var(--lala-ml-tint);
}

.lala-ml-scene .lala-ml-media {
    border-radius: 0;
    background: #fff;
}

.lala-ml-scene h3 {
    padding: 12px 16px 0;
    color: var(--lala-ml-tone);
    font-size: 1.12rem;
    font-weight: 900;
    text-align: center;
}

.lala-ml-scene ul {
    display: grid;
    gap: 6px;
    padding: 10px 16px 18px;
}

.lala-ml-scene li {
    position: relative;
    padding-left: 24px;
    font-size: 0.88rem;
    line-height: 1.6;
}

/* チェック付きの箇条書き */
.lala-ml-scene li::before {
    content: "";
    position: absolute;
    top: 0.2em;
    left: 0;
    width: 16px;
    height: 16px;
    border-radius: 4px;
    background: var(--lala-ml-tone) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat;
}

/* ===== 35言語 ===== */
.lala-ml-languages {
    padding: 8px 0 48px;
    background: #fff;
}

.lala-ml-languages-box {
    border-radius: 16px;
    background: #EEF4F8;
}

.lala-ml-languages-box summary {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 16px 22px;
    cursor: pointer;
    list-style: none;
}

.lala-ml-languages-box summary::-webkit-details-marker {
    display: none;
}

.lala-ml-languages-title {
    flex-shrink: 0;
    font-size: 1.15rem;
    font-weight: 900;
}

.lala-ml-languages-title strong {
    font-size: 1.6rem;
}

.lala-ml-flags {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    font-size: 1.35rem;
    letter-spacing: 0.08em;
    white-space: nowrap;
    -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent);
    mask-image: linear-gradient(90deg, #000 85%, transparent);
}

.lala-ml-languages-toggle {
    flex-shrink: 0;
    padding: 6px 14px;
    border-radius: 50px;
    background: #fff;
    color: var(--lala-ml-blue);
    font-size: 0.85rem;
    font-weight: 800;
}

.lala-ml-languages-toggle::after {
    content: " →";
}

.lala-ml-languages-box[open] .lala-ml-languages-toggle::after {
    content: " ↑";
}

.lala-ml-language-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 24px;
    padding: 4px 22px 22px;
}

.lala-ml-language-list h3 {
    color: #007E8C;
    font-size: 0.9rem;
    font-weight: 800;
}

.lala-ml-language-list p {
    margin-top: 4px;
    font-size: 0.88rem;
    line-height: 1.8;
}

/* ===== 相談 ===== */
.lala-ml-cta {
    padding: 44px 0;
    background: linear-gradient(180deg, #EAF4FB 0%, #DCEBF7 100%);
}

.lala-ml-cta-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 36px;
}

.lala-ml-cta-note {
    flex-shrink: 0;
    color: var(--lala-ml-ink);
    font-size: 1.15rem;
    font-weight: 900;
    line-height: 1.5;
    transform: rotate(-6deg);
}

.lala-ml-cta h2 {
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1.5;
}

.lala-ml-cta .lala-ml-actions {
    margin-top: 16px;
}

.lala-ml-cta .lala-ml-button {
    min-width: 300px;
    min-height: 60px;
    font-size: 1.08rem;
}

/* ===== 個人向けへの案内 ===== */
.lala-ml-personal {
    padding: 22px 0 28px;
    background: #fff;
    color: var(--lala-ml-muted);
    font-size: 0.92rem;
    text-align: center;
}

.lala-ml-personal a {
    color: #007E8C;
    font-weight: 700;
}

/* ===== タブレット ===== */
@media (max-width: 1100px) {
    .lala-ml-services {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lala-ml-scenes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .lala-ml-services {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lala-ml-hero-inner {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .lala-ml-hero-visual,
    .lala-ml-hero-photo {
        min-height: 280px;
    }

    .lala-ml-cta-inner {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }

    .lala-ml-cta-note {
        transform: none;
    }

    .lala-ml-cta .lala-ml-actions {
        justify-content: center;
    }
}

/* ===== スマホ ===== */
@media (max-width: 640px) {
    .lala-ml-hero {
        padding: 28px 0;
    }

    .lala-ml-actions {
        flex-direction: column;
    }

    .lala-ml-button,
    .lala-ml-cta .lala-ml-button {
        width: 100%;
        min-width: 0;
    }

    .lala-ml-hero-visual,
    .lala-ml-hero-photo {
        min-height: 240px;
    }

    .lala-ml-hero-art {
        font-size: 160px;
    }

    .lala-ml-hero-quote {
        top: 12px;
        left: 12px;
        font-size: 0.82rem;
    }

    .lala-ml-badges {
        right: 10px;
        bottom: 10px;
        gap: 6px;
    }

    .lala-ml-badges li {
        width: 78px;
        height: 78px;
        font-size: 0.64rem;
    }

    .lala-ml-badges strong {
        font-size: 0.9rem;
    }

    .lala-ml-badges li:first-child strong {
        font-size: 1.4rem;
    }

    .lala-ml-badges .is-small strong {
        font-size: 0.7rem;
    }

    .lala-ml-section {
        padding: 40px 0;
    }

    .lala-ml-services,
    .lala-ml-scenes {
        grid-template-columns: 1fr;
    }

    /* スマホのサービスカードは、写真（アイコン）を左に小さく置いて縦に詰める */
    .lala-ml-service {
        display: grid;
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 6px 14px;
    }

    .lala-ml-service-title {
        grid-column: 1 / -1;
        min-height: 0;
    }

    .lala-ml-service .lala-ml-media {
        aspect-ratio: 1;
        font-size: 44px;
    }

    .lala-ml-more {
        grid-column: 2;
    }

    /* 写真が無いあいだは、アイコンの枠を低くして縦に間延びさせない */
    .lala-ml-scene .lala-ml-media:not(.has-photo) {
        aspect-ratio: 3 / 1;
        font-size: 48px;
    }

    .lala-ml-languages-box summary {
        flex-wrap: wrap;
        gap: 8px 12px;
        padding: 14px 16px;
    }

    .lala-ml-flags {
        order: 3;
        flex-basis: 100%;
    }

    .lala-ml-language-list {
        grid-template-columns: 1fr;
        padding: 0 16px 18px;
    }
}
