/*
Theme Name: 金城塗装店
Theme URI:
Description: 金城塗装店 公式サイト カスタムテーマ
Version: 1.0.0
*/


/* ------------------------------------------
   t00090-theme custom: SVGサイズ制限（崩れ修正）
   ------------------------------------------ */
.cta-tel svg, a.cta-tel > svg { width: 1em; height: 1em; vertical-align: -2px; flex-shrink: 0; }
.cta-tel { display: inline-flex; align-items: center; gap: 8px; }
.contact-card > svg { width: 48px; height: 48px; margin-bottom: 16px; }


/* ------------------------------------------
   base-theme 互換用エイリアス変数 + 追加スタイル
   ------------------------------------------ */
:root {
  --primary: #0a7fa8;
  --bg: #f0fafd;
  --text-muted: #4a6a78;
}

/* ブログカード・お問い合わせカード スタイル */
.blog-cards, .blog-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
@media (max-width: 768px) { .blog-cards, .blog-list { grid-template-columns: 1fr; } }
.blog-cards article, .blog-list article {
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  overflow: hidden; transition: all .35s ease;
}
.blog-cards article:hover { transform: translateY(-4px); box-shadow: 0 8px 32px rgba(10,127,168,.18); }
.blog-cards article > a { display: block; color: inherit; text-decoration: none; }
.blog-cards article > a > div { display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.5); }
.blog-cards article > div { padding: 18px 18px 22px; }

/* セクション背景 */
.sec-bg { background: var(--sand); }
.sec-sm { padding: 48px 0; }

/* カテゴリタブ */
.blog-cat-tabs { display: flex; gap: 10px; flex-wrap: wrap; }
.blog-cat-tabs a { padding: 8px 20px; border-radius: 50px; font-size: .85rem; border: 1.5px solid var(--border); color: var(--gray); transition: all .25s; }
.blog-cat-tabs a:hover, .blog-cat-tabs a.active { background: var(--navy); color: #fff; border-color: var(--navy); }

/* お問い合わせカード */
.contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 40px; }
@media (max-width: 768px) { .contact-cards { grid-template-columns: 1fr; } }
.contact-card { padding: 40px 28px; border-radius: 12px; text-align: center; }
.contact-card--dark { background: var(--navy); color: #fff; }
.contact-card--light { background: var(--sand); color: var(--dark); border: 1px solid var(--border); }
.contact-card-en { font-family: var(--font-disp); font-size: .7rem; letter-spacing: .2em; opacity: .7; margin-top: 8px; }
.contact-card-title { font-size: 1.05rem; font-weight: 700; margin: 6px 0 16px; }
.contact-card-phone { font-family: var(--font-disp); font-size: 1.8rem; color: var(--gold-lt); display: block; margin-bottom: 4px; }
.contact-card-note { font-size: .78rem; opacity: .6; }

/* プロセスステップ（1入力 → 2確認 → 3完了） */
.contact-process { display: flex; gap: 16px; justify-content: center; margin: 32px 0; flex-wrap: wrap; }
.contact-process li { list-style: none; font-size: .9rem; color: var(--gray); padding: 8px 16px; background: var(--sand); border-radius: 50px; }
.contact-process li.active { background: var(--navy); color: #fff; }


/* ------------------------------------------
   お問い合わせページ プレビュー準拠（2カラム）
   ------------------------------------------ */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; margin-top: 60px; }
@media (max-width: 768px) { .contact-grid { grid-template-columns: 1fr; gap: 32px; } }
.contact-info-block { background: var(--navy); border-radius: 8px; padding: 40px 36px; color: #fff; }
.ci-title { font-family: var(--font-disp); font-size: 1.3rem; font-weight: 600; margin-bottom: 28px; color: var(--gold-lt); }
.ci-item { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 24px; }
.ci-icon { font-size: 1.4rem; flex-shrink: 0; margin-top: 2px; color: var(--gold-lt); }
.ci-icon .material-symbols-outlined { font-size: 1.4rem; }
.ci-label { font-size: .72rem; color: rgba(255,255,255,.5); margin-bottom: 4px; letter-spacing: .1em; }
.ci-value { font-size: .95rem; color: #fff; font-weight: 400; }
.ci-tel { font-family: var(--font-disp); font-size: 1.8rem; color: var(--gold-lt); }
.contact-form-block {}
.contact-form-block .form-group,
.contact-form-block p { margin-bottom: 20px; }
.contact-form-block label,
.contact-form-block .form-label { display: block; font-size: .82rem; font-weight: 500; color: var(--navy); margin-bottom: 6px; }
.contact-form-block .required {
  display: inline-block; background: #e8604a; color: #fff;
  font-size: .65rem; padding: 1px 6px; border-radius: 2px; margin-left: 6px; vertical-align: middle;
}
.contact-form-block input[type="text"],
.contact-form-block input[type="tel"],
.contact-form-block input[type="email"],
.contact-form-block select,
.contact-form-block textarea,
.contact-form-block .form-input,
.contact-form-block .form-select,
.contact-form-block .form-textarea {
  width: 100%; padding: 12px 16px; border: 1.5px solid var(--border);
  border-radius: 4px; font-family: var(--font-body); font-size: .88rem;
  background: #fff; color: var(--dark); transition: border-color .25s;
  appearance: none; -webkit-appearance: none;
}
.contact-form-block textarea,
.contact-form-block .form-textarea { resize: vertical; min-height: 140px; }
.contact-form-block input:focus,
.contact-form-block select:focus,
.contact-form-block textarea:focus {
  outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(10,127,168,.12);
}
.contact-form-block input[type="checkbox"] { accent-color: var(--gold); margin-right: 8px; }
.contact-form-block input[type="submit"],
.contact-form-block button[type="submit"],
.contact-form-block .form-submit {
  width: 100%; padding: 16px; background: var(--gold); color: #fff;
  border-radius: 4px; font-size: .95rem; font-weight: 700;
  letter-spacing: .08em; cursor: pointer; transition: all .3s ease; border: none;
  font-family: var(--font-body); margin-top: 8px;
}
.contact-form-block input[type="submit"]:hover,
.contact-form-block button[type="submit"]:hover,
.contact-form-block .form-submit:hover { background: var(--gold-lt); transform: translateY(-2px); box-shadow: 0 8px 32px rgba(10,127,168,.18); }
.contact-form-block .error { color: #e8604a; font-size: .8rem; margin-top: 4px; display: block; }


/* ===== Blog archive - card border ===== */
body.blog .container > div > article,
body.archive .container > div > article {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease;
}
body.blog .container > div > article:hover,
body.archive .container > div > article:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 18px rgba(0,0,0,.08);
}
body.blog .container > div > article > a img,
body.archive .container > div > article > a img {
    width: 100%;
    display: block;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
body.blog .container > div > article > div,
body.archive .container > div > article > div {
    padding: 18px 20px 22px;
}


/* ===== Contact form - field spacing (match reference form-group) ===== */
.page-id-contact form dl dt,
body.page-template-page-contact form dl dt,
form.mw_wp_form dl dt {
    display: block;
    margin-top: 20px;
    margin-bottom: 6px;
    font-size: .82rem;
    font-weight: 500;
}
.page-id-contact form dl dt:first-of-type,
body.page-template-page-contact form dl dt:first-of-type,
form.mw_wp_form dl dt:first-of-type {
    margin-top: 0;
}
.page-id-contact form dl dd,
body.page-template-page-contact form dl dd,
form.mw_wp_form dl dd {
    margin: 0 0 4px 0;
}


/* ===== Recruit - hero wave color matches next section ===== */
body.page-template-page-recruit .page-hero::before {
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 60' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0 Q360 60 720 30 Q1080 0 1440 40 L1440 60 L0 60 Z' fill='%230a7fa8'/%3E%3C/svg%3E");
}


/* ===== Single post layout ===== */
body.single .sec {
    padding: 64px 0 32px;
}
body.single .single-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 48px;
    align-items: start;
}
body.single .single-grid > article {
    min-width: 0;
}
body.single .single-grid > article > div:first-child {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 16px;
    margin-bottom: 24px;
    border-bottom: 1px solid #e5e7eb;
}
body.single .single-grid > article > div:first-child > span {
    display: inline-block;
    background: #fff7e6;
    color: #c9891f;
    font-size: .72rem;
    font-weight: 600;
    padding: 3px 12px;
    border-radius: 2px;
}
body.single .single-grid > article > div:first-child time {
    font-size: .82rem;
    color: #8a949a;
}
body.single .entry-content {
    font-size: 1rem;
    line-height: 1.95;
    color: #2c3a42;
}
body.single .entry-content p {
    margin: 0 0 1.4em 0;
}
body.single .entry-content img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    margin: 1.4em 0;
}
body.single .entry-content h2,
body.single .entry-content h3 {
    margin: 2em 0 .8em;
    line-height: 1.5;
    font-weight: 700;
    color: #0d2a36;
}
body.single .entry-content h2 {
    font-size: 1.4rem;
    padding-left: 14px;
    border-left: 4px solid #0a7fa8;
}
body.single .entry-content h3 { font-size: 1.15rem; }
body.single .entry-content ul,
body.single .entry-content ol { margin: 0 0 1.4em 1.5em; }
body.single .entry-content a {
    color: #0a7fa8;
    text-decoration: underline;
}

/* Author box */
body.single .author-box {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 18px;
    align-items: start;
    margin-top: 48px;
    padding: 24px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #f9fbfc;
}
body.single .author-box .avatar {
    width: 80px; height: 80px;
    border-radius: 50%;
    object-fit: cover;
}
body.single .author-box p { margin: 0 0 6px; }
body.single .author-box-company { font-size: .78rem; color: #8a949a; }
body.single .author-box-name { font-size: 1rem; font-weight: 700; color: #0d2a36; }
body.single .author-box-bio { font-size: .86rem; line-height: 1.7; color: #4a5863; }
body.single .author-box-link { font-size: .82rem; color: #0a7fa8; text-decoration: none; }
body.single .author-box-link:hover { text-decoration: underline; }

/* Aside sidebar */
body.single .single-grid > aside {
    position: sticky;
    top: 80px;
    width: 100%;
}
body.single .single-grid > aside > div {
    padding: 24px;
    border-radius: 8px;
    margin-bottom: 20px;
    background: #fff;
    border: 1px solid #e5e7eb;
}
body.single .single-grid > aside > div:first-child {
    background: linear-gradient(135deg, #0d2a36, #0a7fa8);
    color: #fff;
    border: none;
    text-align: center;
}
body.single .single-grid > aside > div:first-child p { color: #fff; margin: 0 0 8px; }
body.single .single-grid > aside > div:first-child p:first-child { font-size: .72rem; letter-spacing: .1em; opacity: .8; }
body.single .single-grid > aside > div:first-child p:nth-child(2) { font-size: 1.15rem; font-weight: 700; line-height: 1.5; margin: 6px 0 18px; }
body.single .single-grid > aside > div:first-child a { color: #fff; text-decoration: none; }
body.single .single-grid > aside > div:first-child a.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: #f59e0b; padding: 12px 18px; border-radius: 4px;
    margin-top: 12px; width: 100%; box-sizing: border-box;
    font-size: .88rem; font-weight: 600;
}
body.single .single-grid > aside p:first-child { font-size: .72rem; letter-spacing: .1em; color: #8a949a; font-weight: 600; margin-bottom: 16px; }

/* back-to-list button container */
body.single .sec + div {
    text-align: center;
    padding: 32px 24px 80px;
}
body.single .sec + div a {
    display: inline-block;
    padding: 12px 28px;
    border: 1px solid #0a7fa8;
    color: #0a7fa8;
    border-radius: 4px;
    text-decoration: none;
    font-size: .9rem;
}
body.single .sec + div a:hover { background: #0a7fa8; color: #fff; }

@media (max-width: 900px) {
    body.single .single-grid {
        grid-template-columns: 1fr;
    }
    body.single .single-grid > aside {
        position: static;
    }
}


/* ===== Single post - sidebar SVG size fix ===== */
body.single .single-grid > aside svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
body.single .single-grid > aside a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}
body.single .single-grid > aside > div:first-child a[href^="tel:"] {
    font-family: 'Cinzel', serif;
    font-size: 1.6rem;
    font-weight: 600;
    letter-spacing: .03em;
    color: #fff;
    display: inline-flex;
    justify-content: center;
    width: 100%;
    padding: 6px 0;
}
body.single .single-grid > aside > div:first-child a.btn {
    font-size: .88rem;
    padding: 12px 14px;
}


/* ===== Privacy policy - ordered list decoration ===== */
body.privacy-policy .sec ol {
    list-style: none;
    counter-reset: pp-item;
    margin: 12px 0 20px;
    padding-left: 0;
}
body.privacy-policy .sec ol > li {
    counter-increment: pp-item;
    position: relative;
    padding: 4px 0 4px 36px;
    margin-bottom: 8px;
    line-height: 1.8;
    color: #2c3a42;
    font-size: .95rem;
}
body.privacy-policy .sec ol > li::before {
    content: "(" counter(pp-item) ")";
    position: absolute;
    left: 0;
    top: 4px;
    color: #0a7fa8;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    min-width: 32px;
}
body.privacy-policy .sec h2 {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0d2a36;
    margin: 2em 0 .6em;
    padding-left: 12px;
    border-left: 4px solid #0a7fa8;
    line-height: 1.5;
}
body.privacy-policy .sec p {
    line-height: 1.9;
    margin: 0 0 1em;
    color: #2c3a42;
}


/* ===== Section spacing unification (PC/SP) ===== */
section.section,
section.sec,
section.cta-sec,
body.home section { padding-top: 96px; padding-bottom: 96px; }
section.section .container > * + *,
section.sec .container > * + * { margin-top: 40px; }
@media (max-width: 768px) {
    section.section,
    section.sec,
    section.cta-sec,
    body.home section { padding-top: 56px; padding-bottom: 56px; }
    section.section .container > * + *,
    section.sec .container > * + * { margin-top: 24px; }
    /* Single post section override */
    body.single .sec { padding-top: 40px; padding-bottom: 24px; }
}

/* Top page strengths-bar should stay compact */
body.home section:has(.strengths-bar) { padding-top: 40px; padding-bottom: 40px; }

/* ===== SP: strengths-bar 1 column ===== */
@media (max-width: 768px) {
    .strengths-bar {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
    }
    .strengths-bar .str-item {
        width: 100%;
        justify-content: flex-start;
    }
}

/* ===== Blog single - aside CTA styled like contact-info-block ===== */
body.single .single-grid > aside > div:first-child {
    background: #0a7fa8;
    background-image: none;
    color: #fb923c;
    border: none;
    border-radius: 8px;
    padding: 40px 28px;
    text-align: left;
}
body.single .single-grid > aside > div:first-child p:first-child {
    color: rgba(255,255,255,.6);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .1em;
    margin-bottom: 14px;
}
body.single .single-grid > aside > div:first-child p:nth-child(2) {
    color: #fb923c;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.5;
    margin: 0 0 22px;
}
body.single .single-grid > aside > div:first-child a[href^="tel:"] {
    font-family: 'Oswald', 'Cinzel', sans-serif;
    font-size: 1.7rem;
    font-weight: 400;
    letter-spacing: .02em;
    color: #fb923c;
    justify-content: flex-start;
    padding: 0;
    width: auto;
    margin-bottom: 4px;
}
body.single .single-grid > aside > div:first-child a[href^="tel:"] svg path {
    stroke: #fb923c;
    fill: #fb923c;
}
body.single .single-grid > aside > div:first-child p:nth-of-type(3) {
    color: rgba(255,255,255,.7);
    font-size: .78rem;
    margin-bottom: 20px;
}
body.single .single-grid > aside > div:first-child a.btn,
body.single .single-grid > aside > div:first-child a.btn-primary {
    background: #fb923c;
    color: #fff;
    padding: 14px 16px;
    border-radius: 6px;
    font-size: .9rem;
    font-weight: 600;
    margin-top: 8px;
    justify-content: center;
}
body.single .single-grid > aside > div:first-child a.btn:hover {
    background: #f97316;
}


/* ===== Disable hover on linkless cards ===== */
.kd-detail-card,
.trouble-card,
.benefit-card,
.svc-detail,
.str-item,
.commit-card,
.hero-card,
.blog-card,
.kd-item,
.rp-item,
.flow-step,
.req-step {
    transition: none !important;
}
.kd-detail-card:hover,
.trouble-card:hover,
.benefit-card:hover,
.svc-detail:hover,
.str-item:hover,
.commit-card:hover,
.hero-card:hover,
.blog-card:hover,
.kd-item:hover,
.rp-item:hover,
.flow-step:hover,
.req-step:hover {
    transform: none !important;
    box-shadow: none !important;
}


/* ===== Contact form states: error / confirm / complete ===== */

/* Error alert at top */
.contact-error-alert {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #fff4f4;
    border: 1px solid #f3c5c5;
    border-left: 4px solid #dc3545;
    border-radius: 8px;
    padding: 20px 24px;
    margin-bottom: 32px;
}
.contact-error-icon {
    flex-shrink: 0;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: #dc3545;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 700;
}
.contact-error-title {
    color: #c23040;
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 4px;
}
.contact-error-text {
    color: #5a4747;
    font-size: .85rem;
    margin: 0;
    line-height: 1.7;
}

/* Inline field errors */
form dl dd .error,
span.error {
    display: block;
    color: #dc3545;
    font-size: .82rem;
    margin-top: 6px;
    padding-left: 2px;
}
form dl dd.has-error .mwform-input,
form dl dd .mwform-input.error,
form dl dd input.error,
form dl dd textarea.error {
    border-color: #dc3545 !important;
    background: #fff8f8;
}

/* Confirm page */
.contact-confirm-wrap {
    max-width: 720px;
    margin: 0 auto;
}
.mw_wp_form_confirm form dl {
    border-top: 1px solid #e5e7eb;
}
.mw_wp_form_confirm form dl dt,
.mw_wp_form_confirm form dl dd {
    padding: 16px 8px;
    margin: 0 !important;
    border-bottom: 1px solid #e5e7eb;
}
.mw_wp_form_confirm form dl dt {
    font-size: .82rem;
    font-weight: 600;
    color: #4a5863;
    padding-bottom: 4px;
    border-bottom: none;
}
.mw_wp_form_confirm form dl dd {
    font-size: 1rem;
    color: #0d2a36;
    padding-top: 4px;
    line-height: 1.8;
    word-break: break-word;
}
.mw_wp_form_confirm form > p {
    display: flex;
    gap: 16px;
    justify-content: center;
    margin-top: 36px;
    flex-wrap: wrap;
}
.mw_wp_form_confirm form > p input[name="submitBack"] {
    background: #fff;
    color: #0a7fa8;
    border: 1px solid #0a7fa8;
    padding: 14px 32px;
    border-radius: 6px;
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all .2s ease;
}
.mw_wp_form_confirm form > p input[name="submitBack"]:hover {
    background: #eef7fb;
}
.mw_wp_form_confirm form > p input[name="submit"],
.mw_wp_form_confirm form > p input[type="submit"]:not([name="submitBack"]) {
    background: #fb923c;
    color: #fff;
    border: none;
    padding: 14px 40px;
    border-radius: 6px;
    font-size: .95rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease;
}
.mw_wp_form_confirm form > p input[name="submit"]:hover,
.mw_wp_form_confirm form > p input[type="submit"]:not([name="submitBack"]):hover {
    background: #f97316;
}

/* Complete page */
.contact-complete-box {
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
    padding: 56px 32px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(10, 127, 168, .06);
}
.contact-complete-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px; height: 72px;
    border-radius: 50%;
    background: #0a7fa8;
    color: #fff;
    font-size: 2rem;
    margin-bottom: 24px;
}
.contact-complete-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #0d2a36;
    margin: 0 0 16px;
    line-height: 1.5;
}
.contact-complete-text {
    font-size: .95rem;
    color: #4a5863;
    line-height: 1.9;
    margin: 0 0 28px;
}
.contact-complete-box a {
    display: inline-block;
    padding: 12px 32px;
    background: #0a7fa8;
    color: #fff;
    text-decoration: none;
    border-radius: 6px;
    font-size: .9rem;
    font-weight: 600;
    transition: background .2s ease;
}
.contact-complete-box a:hover {
    background: #095d7d;
}

@media (max-width: 768px) {
    .contact-error-alert { padding: 16px; gap: 12px; }
    .contact-complete-box { padding: 40px 20px; }
    .contact-complete-title { font-size: 1.2rem; }
    .mw_wp_form_confirm form > p input[name="submitBack"],
    .mw_wp_form_confirm form > p input[name="submit"] { width: 100%; }
}


/* ===== Contact error/confirm page adjustments ===== */

/* Centered sec-head for error/confirm/complete pages */
body.page-id-16 .sec-head,
body.page-id-17 .sec-head,
body.page-id-18 .sec-head {
    text-align: center;
    margin-bottom: 48px;
}
body.page-id-16 .sec-head .sec-en,
body.page-id-17 .sec-head .sec-en,
body.page-id-18 .sec-head .sec-en {
    display: block;
    color: #fb923c;
    font-size: .78rem;
    letter-spacing: .12em;
    font-weight: 600;
    margin-bottom: 8px;
}
body.page-id-16 .sec-head .sec-title,
body.page-id-17 .sec-head .sec-title,
body.page-id-18 .sec-head .sec-title {
    font-size: 1.7rem;
    font-weight: 700;
    color: #0d2a36;
    margin: 0 0 12px;
    line-height: 1.4;
}
body.page-id-16 .sec-head .sec-sub,
body.page-id-17 .sec-head .sec-sub,
body.page-id-18 .sec-head .sec-sub {
    font-size: .92rem;
    color: #4a5863;
    line-height: 1.8;
    margin: 0;
}

/* Error page - wrap the form in visible container */
body.page-id-18 .mw_wp_form_input {
    max-width: 720px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 40px 36px;
}
body.page-id-18 .contact-error-alert {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* dt label: ensure space between text and required span */
form dl dt .required {
    display: inline-block;
    margin-left: 8px;
    background: #fb923c;
    color: #fff;
    font-size: .68rem;
    padding: 2px 8px;
    border-radius: 3px;
    font-weight: 600;
    vertical-align: middle;
}
form dl dt {
    display: flex;
    align-items: center;
    gap: 0;
}

/* Confirm page - space between sec-head and confirm list */
body.page-id-16 .contact-confirm-wrap {
    margin-top: 16px;
}
body.page-id-16 .mw_wp_form_confirm form {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 32px 36px;
}

/* Confirm page - form action buttons */

@media (max-width: 768px) {
    body.page-id-18 .mw_wp_form_input { padding: 24px 18px; }
    body.page-id-16 .mw_wp_form_confirm form { padding: 24px 18px; }
    body.page-id-16 .sec-head .sec-title,
    body.page-id-17 .sec-head .sec-title,
    body.page-id-18 .sec-head .sec-title { font-size: 1.3rem; }
}


/* ===== Font-size 16px baseline ===== */
html { font-size: 16px; }
body {
    font-size: 16px;
    line-height: 1.8;
}
body p,
body li,
body dd,
body .entry-content,
body .entry-content p,
body .entry-content li,
body article p,
body .author-box p,
body .author-box-bio,
body .cta-desc,
body .svc-desc,
body .svc-desc-lg,
body .benefit-desc,
body .kd-detail-desc,
body .trouble-text {
    font-size: 16px;
}

/* Commit items - remove hover */
.commit-item {
    transition: none !important;
}
.commit-item:hover {
    background: inherit !important;
    transform: none !important;
    box-shadow: none !important;
}


/* ===== Force 16px for body paragraph text ===== */
body p,
body li:not(.sec-en):not([class*="label"]):not([class*="num"]):not([class*="tag"]):not([class*="-en"]),
body dt,
body dd,
body .entry-content,
body .entry-content *,
body .kd-detail-desc,
body .svc-desc,
body .svc-desc-lg,
body .svc-point,
body .benefit-desc,
body .trouble-text,
body .cta-desc,
body .author-box-bio {
    font-size: 16px !important;
}
/* Keep small labels / eyebrows / required tags / meta small */
body .sec-en,
body .page-hero-en,
body .eyebrow,
body .ci-label,
body .commit-eyebrow,
body .required,
body .contact-step-label,
body .contact-error-text,
body time,
body .blog-date,
body .blog-cat,
body .category-chip,
body .blog-tag,
body .author-box-company { font-size: 13px !important; }


/* ===== Disable hover border-color and cursor on linkless cards ===== */
.kd-detail-card,
.trouble-card,
.benefit-card,
.svc-detail,
.str-item,
.commit-card,
.commit-item,
.hero-card,
.blog-card,
.kd-item,
.rp-item,
.flow-step,
.req-step {
    cursor: default !important;
}
.kd-detail-card:hover,
.trouble-card:hover,
.benefit-card:hover,
.svc-detail:hover,
.str-item:hover,
.commit-card:hover,
.commit-item:hover,
.hero-card:hover,
.blog-card:hover,
.kd-item:hover,
.rp-item:hover,
.flow-step:hover,
.req-step:hover {
    border-color: var(--border) !important;
}


/* ===== Form inputs full width (unify sizing across contact states) ===== */
.mw_wp_form form dl dd input[type="text"],
.mw_wp_form form dl dd input[type="tel"],
.mw_wp_form form dl dd input[type="email"],
.mw_wp_form form dl dd input[type="number"],
.mw_wp_form form dl dd select,
.mw_wp_form form dl dd textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 14px;
    border: 1px solid #d1d9de;
    border-radius: 6px;
    font-size: 16px;
    font-family: inherit;
    background: #fff;
    line-height: 1.6;
}
.mw_wp_form form dl dd textarea {
    min-height: 140px;
    resize: vertical;
}
.mw_wp_form form dl dd input:focus,
.mw_wp_form form dl dd select:focus,
.mw_wp_form form dl dd textarea:focus {
    outline: none;
    border-color: #0a7fa8;
    box-shadow: 0 0 0 3px rgba(10, 127, 168, .12);
}


/* ===== Blog post content typography (entry-content) ===== */

/* Headings */
body.single .entry-content h1 {
    font-size: 1.7rem;
    font-weight: 700;
    color: #0d2a36;
    margin: 2.4em 0 .8em;
    line-height: 1.4;
    padding-bottom: 12px;
    border-bottom: 2px solid #0a7fa8;
}
body.single .entry-content h2 {
    font-size: 1.4rem;
    font-weight: 700;
    color: #0d2a36;
    margin: 2.2em 0 .8em;
    padding: 8px 14px;
    background: #eef7fb;
    border-left: 4px solid #0a7fa8;
    line-height: 1.5;
}
body.single .entry-content h3 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #0d2a36;
    margin: 1.8em 0 .6em;
    padding-left: 12px;
    border-left: 3px solid #0a7fa8;
    line-height: 1.5;
}
body.single .entry-content h4 {
    font-size: 1.08rem;
    font-weight: 700;
    color: #0d2a36;
    margin: 1.6em 0 .5em;
    line-height: 1.5;
}
body.single .entry-content h5 {
    font-size: 1rem;
    font-weight: 700;
    color: #0a7fa8;
    margin: 1.4em 0 .4em;
}
body.single .entry-content h6 {
    font-size: .95rem;
    font-weight: 700;
    color: #4a5863;
    margin: 1.2em 0 .4em;
    letter-spacing: .05em;
}

/* Paragraphs / text elements */
body.single .entry-content p { margin: 0 0 1.4em; }
body.single .entry-content strong,
body.single .entry-content b { font-weight: 700; color: #0d2a36; }
body.single .entry-content em,
body.single .entry-content i { font-style: italic; }
body.single .entry-content mark {
    background: #fff4bf;
    padding: 0 4px;
    border-radius: 2px;
}
body.single .entry-content small { font-size: .85rem; color: #6b7880; }
body.single .entry-content sub,
body.single .entry-content sup { font-size: .75em; }

/* Links */
body.single .entry-content a {
    color: #0a7fa8;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}
body.single .entry-content a:hover { color: #095d7d; }

/* Lists */
body.single .entry-content ul,
body.single .entry-content ol {
    margin: 0 0 1.4em;
    padding-left: 1.6em;
}
body.single .entry-content ul > li,
body.single .entry-content ol > li {
    margin-bottom: .5em;
    line-height: 1.85;
}
body.single .entry-content ul > li::marker { color: #0a7fa8; }
body.single .entry-content ol > li::marker { color: #0a7fa8; font-weight: 700; }
body.single .entry-content li > ul,
body.single .entry-content li > ol {
    margin: .4em 0 .4em;
}

/* Blockquote */
body.single .entry-content blockquote {
    position: relative;
    margin: 1.6em 0;
    padding: 20px 24px 20px 48px;
    background: #f5fafc;
    border-left: 4px solid #0a7fa8;
    border-radius: 4px;
    color: #39505c;
    font-style: normal;
    line-height: 1.9;
}
body.single .entry-content blockquote::before {
    content: "\201C";
    position: absolute;
    left: 14px;
    top: 4px;
    font-size: 2.6rem;
    line-height: 1;
    color: #0a7fa8;
    font-family: Georgia, serif;
}
body.single .entry-content blockquote p:last-child { margin-bottom: 0; }
body.single .entry-content blockquote cite {
    display: block;
    margin-top: 8px;
    font-size: .85rem;
    color: #6b7880;
    font-style: normal;
}

/* Tables */
body.single .entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.6em 0;
    font-size: 16px;
    background: #fff;
    border: 1px solid #e0e6e9;
    border-radius: 6px;
    overflow: hidden;
}
body.single .entry-content table thead th {
    background: #0a7fa8;
    color: #fff;
    font-weight: 600;
    text-align: left;
    padding: 12px 16px;
    border-bottom: 1px solid #0a7fa8;
}
body.single .entry-content table tbody th {
    background: #f5fafc;
    color: #0d2a36;
    font-weight: 600;
    text-align: left;
    padding: 12px 16px;
    border-bottom: 1px solid #e0e6e9;
    border-right: 1px solid #e0e6e9;
    width: 30%;
}
body.single .entry-content table td {
    padding: 12px 16px;
    border-bottom: 1px solid #e0e6e9;
    line-height: 1.75;
    vertical-align: top;
}
body.single .entry-content table tbody tr:last-child th,
body.single .entry-content table tbody tr:last-child td {
    border-bottom: none;
}
body.single .entry-content table tbody tr:nth-child(even) td { background: #fafcfd; }

/* Horizontal rule */
body.single .entry-content hr {
    border: none;
    border-top: 1px solid #e0e6e9;
    margin: 2.4em 0;
}

/* Images / figures */
body.single .entry-content img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    margin: 1.4em 0;
}
body.single .entry-content figure {
    margin: 1.6em 0;
}
body.single .entry-content figure img { margin: 0; }
body.single .entry-content figure figcaption,
body.single .entry-content .wp-caption-text {
    text-align: center;
    font-size: .85rem;
    color: #6b7880;
    margin-top: 8px;
    line-height: 1.6;
}
body.single .entry-content .alignleft {
    float: left;
    margin: 0 1.2em 1em 0;
    max-width: 50%;
}
body.single .entry-content .alignright {
    float: right;
    margin: 0 0 1em 1.2em;
    max-width: 50%;
}
body.single .entry-content .aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}
body.single .entry-content .wp-block-image { margin: 1.6em 0; }

/* Code */
body.single .entry-content code,
body.single .entry-content kbd,
body.single .entry-content samp {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: .92em;
    background: #f3f5f7;
    color: #c23040;
    padding: 2px 6px;
    border-radius: 3px;
}
body.single .entry-content pre {
    background: #0d2a36;
    color: #e6edf1;
    padding: 18px 20px;
    border-radius: 6px;
    overflow-x: auto;
    line-height: 1.7;
    margin: 1.6em 0;
    font-size: .92rem;
}
body.single .entry-content pre code {
    background: transparent;
    color: inherit;
    padding: 0;
    font-size: 1em;
}

/* Buttons (Gutenberg wp-block-button) */
body.single .entry-content .wp-block-button__link {
    display: inline-block;
    padding: 12px 28px;
    background: #0a7fa8;
    color: #fff;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    transition: background .2s ease;
}
body.single .entry-content .wp-block-button__link:hover {
    background: #095d7d;
}

/* Definition list */
body.single .entry-content dl {
    margin: 1.4em 0;
}
body.single .entry-content dl dt {
    font-weight: 700;
    color: #0d2a36;
    margin-top: 1em;
}
body.single .entry-content dl dd {
    margin: 4px 0 .6em 1.4em;
    color: #39505c;
}

/* Responsive */
@media (max-width: 768px) {
    body.single .entry-content h1 { font-size: 1.4rem; }
    body.single .entry-content h2 { font-size: 1.2rem; padding: 6px 10px; }
    body.single .entry-content h3 { font-size: 1.08rem; }
    body.single .entry-content table { font-size: 14px; display: block; overflow-x: auto; }
    body.single .entry-content table thead th,
    body.single .entry-content table tbody th,
    body.single .entry-content table td { padding: 8px 10px; }
    body.single .entry-content blockquote { padding: 16px 16px 16px 38px; }
}


/* ===== Input / error page submit button ===== */
.mw_wp_form_input input[name="submitConfirm"],
.mw_wp_form_input input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    padding: 14px 40px;
    background: #fb923c;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 700;
    font-family: inherit;
    letter-spacing: .05em;
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
    -webkit-appearance: none;
    appearance: none;
}
.mw_wp_form_input input[name="submitConfirm"]:hover,
.mw_wp_form_input input[type="submit"]:hover {
    background: #f97316;
}
.mw_wp_form_input input[name="submitConfirm"]:active,
.mw_wp_form_input input[type="submit"]:active {
    transform: translateY(1px);
}
/* Center the submit button area */
.mw_wp_form_input form > p:last-child,
.mw_wp_form_input form > div:last-child {
    text-align: center;
    margin-top: 32px;
}
@media (max-width: 768px) {
    .mw_wp_form_input input[name="submitConfirm"],
    .mw_wp_form_input input[type="submit"] {
        width: 100%;
        min-width: 0;
    }
}

/* Disable commit-item pseudo hover */
.commit-item::before {
    display: none !important;
}


/* ===== Fix: svc-card CTA card (お気軽にご相談) keep bg on hover ===== */

.svc-card[style*="--navy"]:hover,
.svc-card.d4:hover {
    background-color: var(--navy) !important;
    border-color: var(--navy) !important;
    cursor: default !important;
}


/* ===== svc-card clickable hover ===== */
.svc-card {
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease !important;
    cursor: pointer !important;
}
.svc-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.1) !important;
    border-color: var(--gold) !important;
}
.svc-card.d4:hover {
    background-color: var(--navy) !important;
    border-color: var(--navy) !important;
}
.svc-card-link {
    color: var(--gold);
    text-decoration: none;
}
a.svc-card-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}


/* ===== Blog card thumbnail image (TOP + blog list) ===== */
.blog-card .blog-thumb-img,
.blog-card a > img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
    border-radius: 8px 8px 0 0;
}
.blog-card a {
    display: block;
    text-decoration: none;
    color: inherit;
}


/* ===== Tablet: hamburger menu breakpoint (768px→1024px) ===== */
@media (max-width: 1024px) {
    .gnav { display: none !important; }
    .hamburger { display: flex !important; }
    .sp-cta { display: block !important; }
}


/* ===== Related posts in sidebar - vertical list ===== */
body.single .single-grid > aside > div:last-child p:first-child {
    font-size: .82rem;
    font-weight: 700;
    color: #0a7fa8;
    letter-spacing: .08em;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid #0a7fa8;
}
body.single .single-grid > aside .related-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
body.single .single-grid > aside .related-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 0;
    border-bottom: 1px solid #e5e7eb;
    text-decoration: none;
    color: inherit;
    transition: background .2s ease;
}
body.single .single-grid > aside .related-item:last-child {
    border-bottom: none;
}
body.single .single-grid > aside .related-item:hover {
    background: #f5fafc;
}
body.single .single-grid > aside .related-item img {
    width: 72px;
    height: 52px;
    object-fit: cover;
    border-radius: 4px;
    flex-shrink: 0;
}
body.single .single-grid > aside .related-item-body {
    flex: 1;
    min-width: 0;
}
body.single .single-grid > aside .related-item-title {
    font-size: .85rem;
    font-weight: 600;
    color: #0d2a36;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
body.single .single-grid > aside .related-item-date {
    font-size: .72rem;
    color: #8a949a;
    margin-top: 4px;
}


/* ===== Equal width button pairs ===== */
.hero-btns,
.cta-btns {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.hero-btns .btn,
.cta-btns .btn {
    justify-content: center;
    text-align: center;
    white-space: nowrap;
}
.mw_wp_form_confirm form > p {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.mw_wp_form_confirm form > p input[type="submit"] {
    width: 100%;
    text-align: center;
}
@media (max-width: 768px) {
    .hero-btns,
    .cta-btns {
        grid-template-columns: 1fr;
    }
    .mw_wp_form_confirm form > p {
        grid-template-columns: 1fr;
    }
}


/* ===== Headings: palt (proportional alternates) ===== */
h1, h2, h3, h4, h5, h6,
.section-title,
.sec-title,
.page-title,
.page-hero-en,
.eyebrow,
.cta-title,
.commit-title,
.svc-card-title,
.kd-detail-title,
.benefit-title,
.trouble-title,
.blog-title,
.recruit-hero h2,
.contact-complete-title,
.contact-error-title {
    font-feature-settings: "palt";
}


/* ===== Global letter-spacing ===== */
body {
    letter-spacing: 0.01em;
}

/* トップページ 横スクロール防止 */
html { overflow-x: hidden; }

/* ===== 320px以下 ヒーロー白余白・横スクロール修正 ===== */
@media (max-width: 375px) {
    #hero { min-height: auto; padding-bottom: 80px; }
    .hero-inner { padding: 90px 0 40px; }
    .hero-badge { white-space: normal; text-align: center; justify-content: center; }
    .hero-catch { font-size: clamp(1.4rem, 7vw, 1.6rem); }
    .hero-stats { flex-direction: column; }
    .stat-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.10); flex: none; width: 100%; }
    .stat-item:last-child { border-bottom: none; }
}

/* ===== strengths-bar スマホ1列 ===== */
@media (max-width: 767px) {
    .strengths-bar {
        display: flex;
        flex-direction: column;
        gap: 0;
    }
    .str-item {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,.15);
    }
    .str-item:last-child {
        border-bottom: none;
    }
}
/* str-item-single-col */