/* ========================================
   Services Page - Specific Styles
   ======================================== */

/* ─── Override style.css conflicts ─── */
/* style.css also defines .services-grid and .service-card for the home page.
   These overrides ensure services.html renders correctly. */

/* ─── Container幅をReact版(max-w-5xl=1024px)に合わせる ─── */
.page-main .page-container {
    max-width: 1024px;
}

/* ─── Section header: mb-14(56px) + section-divider mt-4(16px) ─── */
.page-section-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 56px;
}

.page-section-header .section-divider {
    margin-top: 16px;
}

/* ─── Section label: React版はfont-size 11px ─── */
.page-section-label {
    font-size: 11px;
    letter-spacing: 0.22em;
    color: #c9a84c;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
}

/* ─── Section title: mt-3(12px) ─── */
.page-section-title {
    margin-top: 12px;
    font-size: clamp(20px, 3vw, 28px);
    font-family: 'Noto Serif JP', serif;
    font-weight: 600;
    color: #1a3152;
    letter-spacing: 0.05em;
}

/* ─── Services grid: gap-7(28px), mb-20(80px) ─── */
.services-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
    margin-bottom: 80px;
}

/* ─── Service card ─── */
.service-card {
    display: block;
    padding: 0;
    border-radius: 16px;
    overflow: hidden;
    background-color: white;
    box-shadow: 0 4px 24px rgba(26,49,82,0.07);
    border: 1px solid rgba(26,49,82,0.06);
    text-decoration: none;
    cursor: pointer;
    transition: box-shadow 0.25s, transform 0.25s;
    flex-direction: unset;
}

.service-card:hover {
    box-shadow: 0 12px 40px rgba(26,49,82,0.14);
    transform: translateY(-3px);
}

/* ─── Card header (青エリア): px-8(32px) py-7(28px) gap-5(20px) ─── */
.service-card-header {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 28px 32px;
    background: linear-gradient(135deg, #203a62, #2d5090);
    border-bottom: 3px solid #c9a84c;
}

/* ─── Icon box: w-12 h-12(48px) rounded-xl(12px) ─── */
.service-icon-box {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255,255,255,0.1);
    flex-shrink: 0;
}

.service-header-text {
    flex: 1;
}

/* ─── Number: 10px, letter-spacing 0.15em ─── */
.service-number {
    display: block;
    font-size: 10px;
    font-family: 'Noto Sans JP', sans-serif;
    color: rgba(255,255,255,0.4);
    letter-spacing: 0.15em;
}

/* ─── Title: mt-0.5(2px), 19px ─── */
.service-title {
    margin-top: 2px;
    font-size: 19px;
    font-family: 'Noto Serif JP', serif;
    font-weight: 600;
    color: white;
    letter-spacing: 0.06em;
    line-height: 1.3;
}

/* ─── Subtitle: mt-1(4px), 11px ─── */
.service-subtitle {
    margin-top: 4px;
    font-size: 11px;
    font-family: 'Noto Sans JP', sans-serif;
    color: rgba(255,255,255,0.55);
    font-weight: 300;
    letter-spacing: 0.06em;
}

/* ─── Card body (白エリア): px-8(32px) py-6(24px) ─── */
.service-card-body {
    padding: 24px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ─── Tags: gap-2(8px) ─── */
.service-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ─── Tag: px-3(12px) py-1(4px) ─── */
.service-tag {
    padding: 4px 12px;
    border-radius: 50px;
    font-size: 11px;
    font-family: 'Noto Sans JP', sans-serif;
    background-color: rgba(26,49,82,0.06);
    color: #1a3152;
    font-weight: 400;
}

/* ─── Arrow: ml-3(12px) ─── */
.service-arrow {
    flex-shrink: 0;
    margin-left: 12px;
    color: #c9a84c;
}

/* ─── CTA box: React版はp-12(48px全方向) ─── */
.page-main .page-cta-box {
    padding: 48px;
    border-radius: 16px;
    text-align: center;
    background: linear-gradient(135deg, #1e3a6e, #2d5090);
    box-shadow: 0 8px 40px rgba(26,49,82,0.2);
}

/* ─── CTA title: mb-2(8px), 18px ─── */
.page-cta-title {
    margin-bottom: 8px;
    font-size: 18px;
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    color: white;
    letter-spacing: 0.05em;
}

/* ─── CTA subtitle: mb-10(40px), 13px ─── */
.page-cta-subtitle {
    margin-bottom: 40px;
    font-size: 13px;
    font-family: 'Noto Sans JP', sans-serif;
    color: rgba(255,255,255,0.55);
    font-weight: 300;
}

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

/* Keep 2-column layout at large screens (override style.css 4-column) */
@media (min-width: 1024px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}