/* ============================================================
   konkatsu-photo.css
   婚活写真・プロフィール写真ページ専用スタイル
   ============================================================ */

/* --- Custom Properties ---------------------------------------- */
:root {
    --k-primary:      #b5356b;
    --k-primary-dark: #8c2752;
    --k-primary-pale: #fce7f3;
    --k-warm:         #fdf5ef;
    --k-warm-border:  #f8d5c0;
    --k-gray-100:     #f3f4f6;
    --k-gray-200:     #e5e7eb;
    --k-gray-700:     #374151;
    --k-gray-900:     #111827;
    --k-radius:       12px;
    --k-shadow-sm:    0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
    --k-shadow:       0 4px 12px rgba(0,0,0,.10);
}

/* --- Page Wrapper ---------------------------------------------- */
.konkatsu-page {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1rem 4rem;
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", sans-serif;
    line-height: 1.75;
    color: var(--k-gray-700);
}
/* グローバル CSS の a { text-decoration-color: 赤 } をリセット */
.konkatsu-page a:not([class]) {
    text-decoration: none;
    color: var(--k-primary);
}
.konkatsu-page a:not([class]):hover {
    text-decoration: underline;
}

/* --- Breadcrumb ----------------------------------------------- */
.konkatsu-breadcrumb {
    font-size: .85rem;
    padding: .75rem 0;
    color: #888;
}
.konkatsu-breadcrumb ol {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0 .4rem;
}
.konkatsu-breadcrumb li + li::before {
    content: "›";
    margin-right: .4rem;
    color: #aaa;
}
.konkatsu-breadcrumb a {
    color: var(--k-primary);
    text-decoration: none;
}
.konkatsu-breadcrumb a:hover {
    text-decoration: underline;
}

/* --- Hero ------------------------------------------------------ */
/* specificity (0,2,0,0) > :is(.page-modern) section (0,1,0,1) → 上書き確実 */
.konkatsu-page .konkatsu-hero {
    background: linear-gradient(135deg, #6b1a3a 0%, #b5356b 55%, #d4728c 100%) !important;
    border-radius: var(--k-radius);
    padding: 40px 28px 36px !important;
    margin-bottom: 2.5rem;
    color: #fff;
    position: relative;
    overflow: hidden;
}

/* 左下の装飾円 */
.konkatsu-hero::before {
    content: "";
    position: absolute;
    bottom: -50px;
    left: -50px;
    width: 200px;
    height: 200px;
    background: rgba(255,255,255,.06);
    border-radius: 50%;
    pointer-events: none;
}

/* ---- 2カラムレイアウト ---------------------------------------- */
.konkatsu-hero__body {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    position: relative;
    z-index: 1;
}
.konkatsu-hero__text {
    flex: 1;
    min-width: 0;
}

/* ---- ポートレート画像（PC のみ表示） -------------------------- */
.konkatsu-hero__img {
    display: none;             /* スマホでは非表示 */
    flex-shrink: 0;
    width: 180px;
}
@media (min-width: 600px) {
    .konkatsu-hero__img {
        display: block;
    }
}
@media (min-width: 860px) {
    .konkatsu-hero__img {
        width: 220px;
    }
}
.konkatsu-hero__img img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 16px 16px 16px 4px;
    box-shadow: -4px 0 12px rgba(0,0,0,.15);
}

/* ---- テキスト要素 --------------------------------------------- */
.konkatsu-hero__badge {
    display: inline-block;
    background: rgba(255,255,255,.2);
    border-radius: 999px;
    padding: .3em 1em;
    font-size: .82rem;
    font-weight: 600;
    margin-bottom: 1rem;
    letter-spacing: .04em;
}
.konkatsu-hero h1 {
    font-size: clamp(1.25rem, 3.5vw, 1.65rem);
    font-weight: 800;
    line-height: 1.35;
    margin: 0 0 .75rem;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0,0,0,.15);
}
.konkatsu-hero__sub {
    font-size: 1rem;
    opacity: .92;
    margin: 0 0 1.5rem;
    line-height: 1.6;
}
.konkatsu-hero__cta {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

/* --- Buttons --------------------------------------------------- */
/* specificity (0,2,0,0): :is(.page-modern) a (0,1,0,1) の color/padding-bottom リセットを上書き */
.konkatsu-page .konkatsu-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .65em 1.5em;
    border-radius: 999px;
    font-size: .95rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform .15s, box-shadow .15s;
    cursor: pointer;
    border: none;
    line-height: 1.4;
    box-sizing: border-box;
}
.konkatsu-page .konkatsu-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,.2);
    text-decoration: none;
}
.konkatsu-page .konkatsu-btn--primary {
    background: #fff;
    color: var(--k-primary) !important;
}
.konkatsu-page .konkatsu-btn--line {
    background: #06c755;
    color: #fff !important;
}
.konkatsu-page .konkatsu-btn--reserve {
    background: var(--k-primary);
    color: #fff !important;
}
.konkatsu-page .konkatsu-btn--tel {
    background: rgba(255,255,255,.15);
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.4);
}
.konkatsu-page .konkatsu-btn--tel:hover {
    background: rgba(255,255,255,.25);
}
.konkatsu-page .konkatsu-btn--large {
    font-size: 1rem;
    padding: .8em 1.8em;
}

/* --- Section --------------------------------------------------- */
/* グローバル CSS の section border-bottom をリセット */
.konkatsu-page section {
    border-bottom: none !important;
    border-top: none !important;
}
/* ページ内すべての h2 の下線をリセット */
.konkatsu-page h2 {
    border-bottom: none !important;
    text-decoration: none !important;
}
.konkatsu-section {
    margin-bottom: 3rem;
}
.konkatsu-section h2 {
    font-size: 1.25rem;
    font-weight: 800;
    border-left: 4px solid var(--k-primary) !important;
    border-top: none !important;
    border-right: none !important;
    padding-left: 14px;
    margin: 0 0 1.2rem;
    color: var(--k-gray-900);
    line-height: 1.4;
}
.konkatsu-section h3 {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 .4rem;
    color: var(--k-gray-900);
}
.konkatsu-lead {
    font-size: 1.05rem;
    line-height: 1.85;
    margin-bottom: 1.2rem;
}

/* --- List ----------------------------------------------------- */
.konkatsu-list {
    padding-left: 1.3em;
    line-height: 2;
    margin: 1rem 0;
}
.konkatsu-list li {
    margin-bottom: .25rem;
}

/* --- Callouts ------------------------------------------------- */
.konkatsu-callout {
    display: flex;
    gap: 12px;
    padding: 1rem 1.2rem;
    border-radius: var(--k-radius);
    margin: 1.2rem 0;
    font-size: .9rem;
    line-height: 1.7;
    align-items: flex-start;
}
.konkatsu-callout--info {
    background: #eff6ff;
    border-left: 4px solid #bfdbfe;
    color: #1e40af;
}
.konkatsu-callout--warn {
    background: #fffbeb;
    border-left: 4px solid #fcd34d;
    color: #92400e;
}

/* --- Failure Cards -------------------------------------------- */
.konkatsu-failures {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 1.2rem;
}
@media (min-width: 600px) {
    .konkatsu-failures {
        grid-template-columns: 1fr 1fr;
    }
}
.konkatsu-failure-card {
    background: #fff;
    border: 1px solid var(--k-gray-200);
    border-radius: var(--k-radius);
    padding: 1.2rem;
    box-shadow: var(--k-shadow-sm);
    transition: box-shadow .2s;
}
.konkatsu-failure-card__img {
    display: block;
    width: calc(100% + 2.4rem);
    max-width: none;
    margin: -1.2rem -1.2rem .9rem;
    height: 160px;
    object-fit: cover;
    border-radius: var(--k-radius) var(--k-radius) 0 0;
}
.konkatsu-failure-card:hover {
    box-shadow: var(--k-shadow);
}
.konkatsu-failure-card p {
    margin: 0 0 .5rem;
    font-size: .9rem;
}
.konkatsu-failure-card__bad {
    color: #dc2626;
    font-weight: 700;
    font-size: .95rem;
    margin-bottom: .5rem;
}
.konkatsu-failure-card__improve {
    background: var(--k-primary-pale);
    border-radius: 8px;
    padding: .6rem .8rem;
    font-size: .86rem;
    margin-top: .75rem;
    color: var(--k-primary-dark);
    line-height: 1.6;
}
.konkatsu-failure-card__improve strong {
    display: block;
    font-weight: 700;
    margin-bottom: .2rem;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* --- Section Image (セクション内フル幅画像) --------------------- */
.konkatsu-section-img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--k-radius);
    margin: .8rem 0 1.2rem;
}

/* --- Gender Intro (男性/女性セクション 画像+テキスト) ---------- */
.konkatsu-gender-intro {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.5rem;
    align-items: flex-start;
}
@media (min-width: 640px) {
    .konkatsu-gender-intro {
        flex-direction: row;
        align-items: center;
    }
    .konkatsu-gender-intro p {
        flex: 1;
    }
}
.konkatsu-gender-intro__img {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
    object-position: center 10%;
    border-radius: var(--k-radius);
    flex-shrink: 0;
}
@media (min-width: 640px) {
    .konkatsu-gender-intro__img {
        width: 220px;
        height: 200px;
    }
}

/* --- Point Items (男性/女性) ---------------------------------- */
.konkatsu-point-item {
    background: #fff;
    border: 1px solid var(--k-gray-200);
    border-left: 3px solid var(--k-primary);
    border-radius: 0 var(--k-radius) var(--k-radius) 0;
    padding: 1.1rem 1.3rem;
    margin-bottom: .85rem;
    box-shadow: var(--k-shadow-sm);
    transition: box-shadow .2s;
}
.konkatsu-point-item:hover {
    box-shadow: var(--k-shadow);
}
.konkatsu-point-item h3 {
    color: var(--k-primary);
    margin-bottom: .35rem;
}
.konkatsu-point-item p {
    margin: 0;
    font-size: .9rem;
    color: #555;
}

/* --- App Badges ----------------------------------------------- */
.konkatsu-apps {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1.2rem;
}
.konkatsu-app-badge {
    background: var(--k-primary-pale);
    color: var(--k-primary-dark);
    border-radius: 999px;
    padding: .3em .9em;
    font-size: .84rem;
    font-weight: 600;
}

/* --- Reason Cards --------------------------------------------- */
.konkatsu-reasons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 600px) {
    .konkatsu-reasons {
        grid-template-columns: 1fr 1fr;
    }
}
@media (min-width: 860px) {
    .konkatsu-reasons {
        grid-template-columns: 1fr 1fr 1fr;
    }
}
.konkatsu-reason-card {
    background: #fff;
    border: 1px solid var(--k-gray-200);
    border-radius: var(--k-radius);
    padding: 1.2rem;
    box-shadow: var(--k-shadow-sm);
    transition: box-shadow .2s;
}
.konkatsu-reason-card:hover {
    box-shadow: var(--k-shadow);
}
.konkatsu-reason-card__icon {
    font-size: 1.8rem;
    margin-bottom: .5rem;
    display: block;
    line-height: 1;
}
.konkatsu-reason-card h3 {
    margin-bottom: .4rem;
    font-size: .95rem;
}
.konkatsu-reason-card p {
    margin: 0;
    font-size: .86rem;
    color: #555;
    line-height: 1.7;
}

/* --- Steps ---------------------------------------------------- */
.konkatsu-steps {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0;
    counter-reset: step-counter;
}
.konkatsu-steps > li {
    counter-increment: step-counter;
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1rem 0;
    border-bottom: 1px solid var(--k-gray-100);
}
.konkatsu-steps > li:last-child {
    border-bottom: none;
}
.konkatsu-steps > li::before {
    content: counter(step-counter);
    background: var(--k-primary);
    color: #fff;
    min-width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: .88rem;
    flex-shrink: 0;
    margin-top: .15rem;
}
.konkatsu-steps > li > div strong {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: .25rem;
    color: var(--k-gray-900);
}
.konkatsu-steps > li > div p {
    margin: 0;
    font-size: .88rem;
    color: #555;
    line-height: 1.7;
}

/* --- Price Table ---------------------------------------------- */
.konkatsu-price-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 1.2rem 0 .5rem;
    font-size: .9rem;
    border-radius: var(--k-radius);
    overflow: hidden;
    box-shadow: var(--k-shadow-sm);
}
.konkatsu-price-table th,
.konkatsu-price-table td {
    padding: .75rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--k-gray-200);
}
.konkatsu-price-table thead th {
    background: var(--k-primary);
    color: #fff;
    font-weight: 700;
}
.konkatsu-price-table tbody tr:last-child td {
    border-bottom: none;
}
.konkatsu-price-table tbody tr:nth-child(even) td {
    background: var(--k-warm);
}
.konkatsu-price-table tbody tr:nth-child(odd) td {
    background: #fff;
}
.konkatsu-price-note {
    font-size: .82rem;
    color: #888;
    margin-top: .5rem;
    line-height: 1.7;
}

/* --- FAQ ------------------------------------------------------ */
.konkatsu-faq {
    margin-top: 1rem;
}
.konkatsu-faq details {
    border: 1px solid var(--k-gray-200);
    border-radius: var(--k-radius);
    margin-bottom: .6rem;
    overflow: hidden;
    background: #fff;
}
.konkatsu-faq summary {
    /* page-modern: summary { background:none!important; display:list-item; padding:0 } を上書き */
    padding: 1rem 1.2rem !important;
    font-weight: 600;
    font-size: .93rem;
    cursor: pointer;
    list-style: none;
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    background: #fff !important;
    background-color: #fff !important;
    color: var(--k-gray-900);
    transition: background .15s;
    line-height: 1.5;
    gap: .5rem;
}
.konkatsu-faq summary::-webkit-details-marker {
    display: none;
}
.konkatsu-faq summary::after {
    content: "+";
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--k-primary);
    flex-shrink: 0;
    transition: transform .2s;
}
.konkatsu-faq details[open] > summary {
    background: var(--k-primary-pale) !important;
    background-color: var(--k-primary-pale) !important;
    color: var(--k-primary-dark);
}
.konkatsu-faq details[open] > summary::after {
    content: "−";
}
.konkatsu-faq summary:hover {
    background: var(--k-warm) !important;
    background-color: var(--k-warm) !important;
}
.konkatsu-faq__answer {
    padding: 1rem 1.2rem;
    font-size: .9rem;
    color: #444;
    background: #fefefe;
    border-top: 1px solid var(--k-gray-100);
    line-height: 1.8;
}

/* --- CTA Block ------------------------------------------------ */
.konkatsu-cta-block {
    background: linear-gradient(135deg, #5a0c24 0%, #8c2752 50%, #b5356b 100%);
    border-radius: var(--k-radius);
    padding: 2.2rem 1.5rem;
    text-align: center;
    margin: 2.5rem 0;
    color: #fff;
}
.konkatsu-cta-block h2 {
    font-size: clamp(1rem, 2.5vw, 1.2rem);
    font-weight: 800;
    margin: 0 0 .5rem;
    border: none !important;
    padding: 0 !important;
    color: #fff !important;
    line-height: 1.4;
}
.konkatsu-cta-block p {
    font-size: .9rem;
    opacity: .9;
    margin: 0 0 1.2rem;
}
.konkatsu-cta-block__buttons {
    display: flex;
    gap: .65rem;
    justify-content: center;
    flex-wrap: wrap;
}
.konkatsu-cta-pills {
    display: flex;
    gap: .45rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 1.2rem;
}
.konkatsu-cta-pill {
    background: rgba(255,255,255,.18);
    border-radius: 999px;
    padding: .25em .85em;
    font-size: .8rem;
    font-weight: 600;
}

/* --- Related Links ------------------------------------------- */
.konkatsu-related {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
    margin-top: 1rem;
}
@media (min-width: 600px) {
    .konkatsu-related {
        grid-template-columns: repeat(3, 1fr);
    }
}
.konkatsu-related a {
    display: block;
    background: #fff;
    border: 1px solid var(--k-gray-200);
    border-radius: var(--k-radius);
    padding: .85rem 1rem;
    text-decoration: none;
    color: var(--k-gray-900);
    font-size: .86rem;
    font-weight: 600;
    text-align: center;
    transition: box-shadow .15s, transform .15s, color .15s;
    box-shadow: var(--k-shadow-sm);
    line-height: 1.4;
}
.konkatsu-related a:hover {
    box-shadow: var(--k-shadow);
    transform: translateY(-2px);
    color: var(--k-primary);
}

/* --- Responsive adjustments ----------------------------------- */
@media (max-width: 480px) {
    .konkatsu-page .konkatsu-hero {
        padding: 28px 20px 28px !important;
    }
    .konkatsu-hero h1 {
        font-size: 1.2rem;
    }
    .konkatsu-price-table {
        font-size: .8rem;
    }
    .konkatsu-price-table th,
    .konkatsu-price-table td {
        padding: .6rem .7rem;
    }
}
