/*
 * Site-wide brand palette
 * Primary: #338751 / Soft green: #dfeed0 / Canvas: #f5f4ea
 * Accent: #ea7d3d / Warm neutral: #edecd7 / Text: #2e2e2e
 */
:root {
  --brand-primary: #338751;
  --brand-soft: #dfeed0;
  --brand-canvas: #f5f4ea;
  --brand-accent: #ea7d3d;
  --brand-neutral: #edecd7;
  --brand-ink: #2e2e2e;
  --brand-white: #fff;
  --brand-border: #dfeed0;
}

html { background: var(--brand-canvas); }
body, .wrapper, main { color: var(--brand-ink); background-color: var(--brand-canvas); }
body, button, input, select, textarea { color: var(--brand-ink); }
a { color: var(--brand-primary); }
a:hover { color: var(--brand-accent); }
::selection { color: var(--brand-white); background: var(--brand-primary); }

main .ttl_about_img,
main .ttl_merit_img,
main .ttl_reason_img,
main .ttl_reviews_img,
main .ttl_faq_img,
main .ttl_column_img,
main .ttl_flow_img,
main .ttl_en,
main .page_ttl_en {
  color: #FFEB36 !important;
}
main .page_ttl_en {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'LineSeedJP', sans-serif;
  font-weight: 700;
  font-size: 20.7px;
  line-height: 1;
  letter-spacing: .16em;
  text-indent: .16em;
  white-space: nowrap;
  height: 17.72px;
  margin: 0 auto 13.16px;
}

/* Header and global navigation */
.h_logo_area,
.h_logo_area_wrap { background-color: #338751 !important; }
.site_desc,
.f_logo_nav_item a { color: var(--brand-white) !important; }
.h_nav_area,
.h_nav,
.h_nav-list { background-color: var(--brand-white) !important; }
.h_nav_item a {
  color: #338751 !important;
  border-color: var(--brand-soft) !important;
}
.h_nav_item a:hover {
  background-color: transparent !important;
  color: #75ad89 !important;
}
.menu-btn { background-color: var(--brand-primary) !important; }
.menu-btn span, .menu-btn span::before, .menu-btn span::after { background-color: var(--brand-white) !important; }

/* Page titles, section headings and breadcrumbs */
.ttl_area, .under_ttl_area, .main_ttl_area { background-color: #338751 !important; }
.ttl_area::after { border-top-color: #338751 !important; }
.main_ttl, .common_ttl_l, .common_ttl_s,
.under_ttl, .single_ttl, .archive_ttl,
[class$="_ttl"], [class*="_ttl "] { color: var(--brand-white) !important; }
.reason_box_ttl,
.reviews_box_ttl,
.reviews_textarea_ttl,
.merit_box_ttl,
.flow_box_ttl,
.news_area_box_text,
.news_area_ttl,
.news_area_ttl * {
  color: #338751 !important;
}
.column_box .column_cate,
.column_box .column_cate span,
.column_box .column_date,
.column_box .column_ttl {
  color: #338751 !important;
}
.column_box .column_cate,
.column_box .column_cate span {
  color: var(--brand-white) !important;
}
.ranking_search_ttl,
.ranking_search_text {
  color: #338751 !important;
}
.average_area .common_ttl_l,
.average_area .common_ttl_s,
#choice .common_ttl_l,
#choice .common_ttl_s,
.unique_chart_area .common_ttl_l,
.unique_chart_area .common_ttl_s {
  color: #338751 !important;
}
.search_results_ttl,
.search_results_ttl_deco,
.search_results_ttl_num {
  color: #338751 !important;
}
body.tax-area #list > .common_ttl_l,
body.tax-area #list .common_ttl_l,
body.tax-area .category-section .common_ttl_l,
body.tax-area .category-section .common_ttl_s {
  color: #338751 !important;
}
body.taxonomy-area #list > .common_ttl_l,
body.taxonomy-area #list .common_ttl_l,
body.taxonomy-area .category-section .common_ttl_l,
body.taxonomy-area .category-section .common_ttl_s {
  color: #338751 !important;
}
main .category-section .common_ttl_l,
main .category-section .common_ttl_s {
  color: #338751 !important;
}
main #list > .common_ttl_l {
  color: #338751 !important;
}
body.tax-area .area_cta_btn_sub,
body.tax-area .area_cta_btn_sub *,
body.tax-area .area_cta_btn--list .area_cta_btn_sub,
body.tax-area .area_cta_btn--consult .area_cta_btn_sub {
  color: #fff !important;
}
body.taxonomy-area .area_cta_btn--list .area_cta_btn_sub,
body.taxonomy-area .area_cta_btn--list .area_cta_btn_sub * {
  color: #fff !important;
}
main .area_cta_btn--list .area_cta_btn_sub,
main .area_cta_btn--list .area_cta_btn_sub * {
  color: #fff !important;
}
body.tax-area .search_results_ttl,
body.tax-area .search_results_ttl_deco,
body.tax-area .search_results_ttl_num {
  color: #fff !important;
}
.post_voice_page .ttl_request_lead {
  color: #338751 !important;
}
.post_voice_page .request_content {
  margin-bottom: 80px;
}
.request .ttl_request_lead {
  color: #338751 !important;
}
.ttl_contact_data_res_ttl {
  color: #338751 !important;
}
.form_submit input[type=submit].back_btn,
.form_submit input[type=submit].back_btn:hover {
  background-color: #999999 !important;
  border-color: #999999 !important;
  color: #fff !important;
}
.form_submit input[type=submit].back_btn {
  box-shadow: 0 5px 0 #8D8D8D !important;
}
.form_submit input[type=submit].back_btn:hover {
  box-shadow: none !important;
}
.ranking_basis_page .ttl_area {
  margin-top: 24px !important;
  margin-bottom: 40px !important;
}
.ranking_basis_page .page_content {
  padding-top: 24px !important;
}
.ranking_basis_page .single_content h2,
.ranking_basis_page .single_content h3,
.ranking_basis_page .single_content h4,
.ranking_basis_page .single_content h5,
.ranking_basis_page .single_content h6,
.ranking_basis_page .page_section_title,
.ranking_basis_page .page_main_title {
  color: #338751 !important;
  border-color: #338751 !important;
}
.ranking_basis_page .single_content h2 {
  background: #338751 !important;
  color: #fff !important;
}
.ranking_basis_page .single_content h2::before {
  border-top-color: #338751 !important;
  border-bottom-color: #338751 !important;
}
.ranking_basis_page #toc_container,
.ranking_basis_page .toc_title,
.ranking_basis_page .toc_toggle,
.ranking_basis_page .toc_toggle_link,
.ranking_basis_page .toc_toggle a,
.ranking_basis_page .toc_title .toc_toggle a,
.ranking_basis_page .toc_brackets,
.ranking_basis_page .toc_list a {
  color: #338751 !important;
  border-color: #338751 !important;
}
.contens_policy_page #toc_container,
.contens_policy_page .toc_title,
.contens_policy_page .toc_toggle,
.contens_policy_page .toc_toggle_link,
.contens_policy_page .toc_toggle a,
.contens_policy_page .toc_title .toc_toggle a,
.contens_policy_page .toc_brackets,
.refund_policy_page #toc_container,
.refund_policy_page .toc_title,
.refund_policy_page .toc_toggle,
.refund_policy_page .toc_toggle_link,
.refund_policy_page .toc_toggle a,
.refund_policy_page .toc_title .toc_toggle a,
.refund_policy_page .toc_brackets,
.reference_page #toc_container,
.reference_page .toc_title,
.reference_page .toc_toggle,
.reference_page .toc_toggle_link,
.reference_page .toc_toggle a,
.reference_page .toc_title .toc_toggle a,
.reference_page .toc_brackets {
  color: #338751 !important;
  border-color: #338751 !important;
}
.toc_list a,
.toc_list > li > a,
.toc_list > li > ul > li > a {
  color: #338751 !important;
  border-color: #338751 !important;
}
.toc_list li::before {
  color: #2e2e2e !important;
}
.ranking_basis_page .li-check,
.ranking_basis_page .li-mainbdr ul,
.ranking_basis_page .li-mainbdr ol {
  border-color: #338751 !important;
}
.ranking_basis_page .li-check li::before {
  color: #338751 !important;
}
.ranking_basis_page .tab-switch:checked + .tab-label {
  background-color: #338751 !important;
}
.ranking_basis_page .tab-switch:checked + .tab-label::after {
  border-top-color: #338751 !important;
}
.ttl_about_img span,
.ttl_ranking_img span,
.ttl_list_img span,
.ttl_faq_img span,
.ttl_merit_img span,
.ttl_reason_img span,
.ttl_reviews_img span,
.ttl_column_img span,
.ttl_flow_img span {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFEB36 !important;
  font-family: 'LineSeedJP', sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .18em;
  /* ラベルは1行に収める。親が width:auto なので幅は文字数に追従する */
  white-space: nowrap;
}
.under_bread_area,
.breadcrumb,
.breadcrumbs {
  background-color: #338751 !important;
  color: var(--brand-white) !important;
}
.under_bread_area a,
.under_bread_area span,
.under_bread_area li,
.under_bread_area .bread_link,
.under_bread_area .bread_text,
.under_bread_area .bread_arrow,
.breadcrumb a,
.breadcrumb span,
.breadcrumb li,
.breadcrumbs a,
.breadcrumbs span,
.breadcrumbs li {
  color: var(--brand-white) !important;
}

/* Reusable surfaces */
.news_area, .about_area, .flow_area, .map_area, .ranking_area,
.price_area, .differende_area, .attention_area, .reason_area,
.reviews_area, .faq_area, .column_area, .area_about,
.single_contents, .page_contents, .archive_contents {
  background-color: var(--brand-canvas);
}
.news_area_box, .merit_box, .flow_box, .map_box, .reviews_box,
.faq_box, .column_box, .gyosha_results_box, .ranking_box,
.disposal_box, .article_box, .contact_box,
[class*="_card"], [class*="-card"] {
  border-color: var(--brand-border) !important;
}
.value_area, .merit_area, .reason_area, .faq_area,
.area_about, .gyosha_attr_grid .gyosha_attr_mark,
.conditions_table_check_area, .request_flow_area {
  background-color: var(--brand-soft) !important;
}
.map_contents {
  background: var(--brand-soft) !important;
  background-color: var(--brand-soft) !important;
}
.reason_box {
  background: var(--brand-white) !important;
}

/* Image-free labels shared by the home and FAQ/CTA sections. */
main .ttl_faq_img {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 18px;
  color: #FFEB36 !important;
  font-family: 'LineSeedJP', sans-serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.07em;
}
main .q_icon,
main .a_icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  height: 40px;
  border-radius: 5px;
  color: var(--brand-white) !important;
  font-family: 'LineSeedJP', sans-serif;
  font-weight: 700;
  line-height: 1;
}
main .q_icon { background: var(--brand-primary) !important; font-size: 21px; padding-top: 5px; }
main .a_icon { background: var(--brand-accent) !important; font-size: 20px; padding-top: 3px; }
main .mv_estimate_step_img {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 43px;
  margin: 0 auto 18px;
  padding-top: 4px;
  overflow: visible;
  border-radius: 6px;
  background: var(--brand-primary) !important;
}
main .mv_estimate_step_img::after {
  position: absolute;
  bottom: -8px;
  left: 50%;
  width: 0;
  height: 0;
  border-top: 8px solid var(--brand-primary);
  border-right: 8px solid transparent;
  border-left: 8px solid transparent;
  content: '';
  transform: translateX(-50%);
}
main .mv_estimate_step_img .step-label {
  color: var(--brand-white);
  font-family: 'LineSeedJP', sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .2em;
}
main .mv_estimate_step_img .step-no {
  color: #FFEB36;
  font-family: 'LineSeedJP', sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  main .mv_estimate_step_img {
    height: 50.25px !important;
    margin: 0 8px 8px 0 !important;
    border-radius: 5px !important;
    flex-direction: column !important;
    gap: 2px !important;
  }
  main .mv_estimate_step_img .step-label {
    font-size: 10.5px !important;
    letter-spacing: .18em !important;
  }
  main .mv_estimate_step_img .step-no {
    font-size: 21px !important;
  }
  main .mv_estimate_step_img::after {
    display: none !important;
  }
}

/* Tables and comparison components */
table { border-color: var(--brand-primary); }
table th, .ranking_table_ttl th, .price_table_ttl th,
.difference_table_ttl th, .reviews_table th,
.gyosha_results_table th, .conditions_table_text2,
.gyosha_attr_grid .gyosha_attr_label {
  background-color: var(--brand-primary) !important;
  color: var(--brand-white) !important;
  border-color: var(--brand-canvas) !important;
}
table td, .ranking_table td, .price_table td, .difference_table td,
.reviews_table td, .gyosha_results_table td {
  background-color: var(--brand-white) !important;
  color: var(--brand-ink) !important;
  border-color: var(--brand-soft) !important;
}
table tr:nth-child(even) td { background-color: var(--brand-neutral) !important; }

/* Buttons and calls to action */
.search_btn, .rank_btn, .mv_estimate_btn, .area_cta_btn--list,
.contact_btn, .submit_btn, .more_btn, .detail_btn,
button[type="submit"], input[type="submit"],
.wp-block-button__link {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  color: var(--brand-white) !important;
  box-shadow: 0 4px 0 #1f5432 !important;
  transition: transform .1s ease, box-shadow .1s ease !important;
}
.search_btn:hover, .rank_btn:hover, .mv_estimate_btn:hover,
.contact_btn:hover, .submit_btn:hover, .more_btn:hover,
button[type="submit"]:hover, input[type="submit"]:hover,
.wp-block-button__link:hover {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  color: var(--brand-white) !important;
  box-shadow: 0 0 0 transparent !important;
  transform: translateY(4px) !important;
}
.mv_estimate_btn:hover {
  top: 0 !important;
}

/* Button image wrappers do not animate independently. */
.mv_estimate_btn_img01,
.mv_estimate_btn_img02,
.mv_estimate_btn_img03 {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  transition: none !important;
}
.area_cta_btn--consult, .sfb-main-button,
.request_submit, .voice_submit, .required, .must,
[class*="accent"], [class*="attention"] [class*="_btn"] {
  background-color: var(--brand-accent) !important;
  border-color: var(--brand-accent) !important;
  color: var(--brand-white) !important;
}

/* Forms, filters and accordions */
input, select, textarea {
  background-color: var(--brand-white) !important;
  border-color: var(--brand-primary) !important;
}
input:focus, select:focus, textarea:focus {
  outline-color: var(--brand-accent);
  border-color: var(--brand-accent) !important;
}
.conditions_table, .search_conditions, .form_area,
.contact_form, .request_form { background-color: var(--brand-neutral) !important; }
.conditions_table_text2.l-js-question::before {
  background: var(--brand-soft) !important;
  border-color: var(--brand-primary) !important;
}
.conditions_table_text2.l-js-question::after { border-top-color: var(--brand-primary) !important; }
.conditions_table_text2.l-js-question.on::after { border-bottom-color: var(--brand-primary) !important; }

/* Inline legacy utility colors */
.blue, .text_blue, .link_text, .under-lines,
.choice_jump_text, .gyosha_results_star_text { color: var(--brand-primary) !important; }
.red, .text_red, .orange, .price, .emphasis { color: var(--brand-accent) !important; }
.q_icon { background-color: var(--brand-primary) !important; }
.a_icon { background-color: var(--brand-accent) !important; }
.num_icon, .point_icon { background-color: var(--brand-soft) !important; color: var(--brand-primary) !important; }
.mv_estimate_ttl,
.search_btn_text,
main .search_btn_text {
  color: var(--brand-white) !important;
}

/* Footer */
footer, .footer_area, .copy { background-color: #403F3F !important; color: var(--brand-white) !important; }
footer a, footer p, footer li, footer .list-company-title { color: var(--brand-white) !important; }
footer a:hover { color: var(--brand-neutral) !important; }
.copy { border-top-color: var(--brand-soft) !important; }

@media (max-width: 768px) {
  .h_nav { background-color: var(--brand-white) !important; }
  .h_nav_item { border-color: var(--brand-soft) !important; }
  .map_box_ttl.ac-parent {
    color: #338751 !important;
  }
  .map_contents {
    background: rgba(255, 255, 255, .8) !important;
    background-color: rgba(255, 255, 255, .8) !important;
  }
}
