/* ========================================
    A11Y FULL CSS
    全ページ完全対応版
======================================== */

:root {
    --a11y-bg: #ffffff;
    --a11y-text: #222222;
    --a11y-link: #007a5a;
    --a11y-border: #0a8f67;
    --a11y-font-scale: 1;
    --a11y-line-height: 1.8;
}

/* ========================================
    状態変数
======================================== */

body[data-font-size="normal"] {
    --a11y-font-scale: 1;
}

body[data-font-size="large"] {
    --a11y-font-scale: 1.125;
}

body[data-font-size="xlarge"] {
    --a11y-font-scale: 1.25;
}

body[data-line-height="normal"] {
    --a11y-line-height: 1.8;
}

body[data-line-height="wide"] {
    --a11y-line-height: 2.1;
}

body[data-line-height="xwide"] {
    --a11y-line-height: 2.5;
}

body[data-color-theme="theme-blue-yellow"] {
    --a11y-bg: #0b0a8f;
    --a11y-text: #ffff00;
    --a11y-link: #ffffff;
    --a11y-border: #ffff00;
}

body[data-color-theme="theme-purple-white"] {
    --a11y-bg: #5a2382;
    --a11y-text: #ffffff;
    --a11y-link: #ffffff;
    --a11y-border: #ffffff;
}

body[data-color-theme="theme-black-white"] {
    --a11y-bg: #000000;
    --a11y-text: #ffffff;
    --a11y-link: #ffffff;
    --a11y-border: #ffffff;
}

/* ========================================
    全ページ：文字サイズ
======================================== */

body[data-font-size] main.site-main,
body[data-font-size] .entry__content,
body[data-font-size] article.entry,
body[data-font-size] .post-page,
body[data-font-size] .cf7-contact-custom,
body[data-font-size] .privacy-box,
body[data-font-size] .a11y-tools {
    font-size: calc(1em * var(--a11y-font-scale));
}

/* ========================================
    全ページ：行間
======================================== */

body[data-line-height] main.site-main,
body[data-line-height] .entry__content,
body[data-line-height] article.entry,
body[data-line-height] .post-page,
body[data-line-height] .cf7-contact-custom,
body[data-line-height] .privacy-box,
body[data-line-height] .a11y-tools {
    line-height: var(--a11y-line-height);
}

body[data-line-height] main.site-main p,
body[data-line-height] main.site-main li,
body[data-line-height] main.site-main dt,
body[data-line-height] main.site-main dd,
body[data-line-height] main.site-main th,
body[data-line-height] main.site-main td,
body[data-line-height] main.site-main label,
body[data-line-height] main.site-main small,
body[data-line-height] main.site-main strong,
body[data-line-height] main.site-main em,
body[data-line-height] main.site-main figcaption,
body[data-line-height] main.site-main blockquote,
body[data-line-height] .cf7-contact-custom p,
body[data-line-height] .cf7-contact-custom li,
body[data-line-height] .cf7-contact-custom label,
body[data-line-height] .privacy-box p,
body[data-line-height] .privacy-box li,
body[data-line-height] .a11y-tools p {
    line-height: inherit;
}

/* ========================================
    全ページ：色合い
======================================== */

body[data-color-theme] {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
}

body[data-color-theme] .site,
body[data-color-theme] .site-content,
body[data-color-theme] .wp-site-blocks,
body[data-color-theme] .post-page,
body[data-color-theme] main.site-main,
body[data-color-theme] article.entry,
body[data-color-theme] .entry__content,
body[data-color-theme] .a11y-tools,
body[data-color-theme] .a11y-tools__inner,
body[data-color-theme] .a11y-tools__section {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
}

body[data-color-theme] main.site-main p,
body[data-color-theme] main.site-main li,
body[data-color-theme] main.site-main dt,
body[data-color-theme] main.site-main dd,
body[data-color-theme] main.site-main th,
body[data-color-theme] main.site-main td,
body[data-color-theme] main.site-main small,
body[data-color-theme] main.site-main strong,
body[data-color-theme] main.site-main em,
body[data-color-theme] main.site-main figcaption,
body[data-color-theme] main.site-main blockquote,
body[data-color-theme] .privacy-box,
body[data-color-theme] .privacy-box p,
body[data-color-theme] .privacy-box li {
    color: inherit;
}

body[data-color-theme] main.site-main h1,
body[data-color-theme] main.site-main h2,
body[data-color-theme] main.site-main h3,
body[data-color-theme] main.site-main h4,
body[data-color-theme] main.site-main h5,
body[data-color-theme] main.site-main h6 {
    color: inherit;
}

body[data-color-theme] main.site-main a,
body[data-color-theme] .privacy-box a {
    color: var(--a11y-link) !important;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

/* ========================================
    背景画像系
======================================== */

body[data-color-theme] .hero,
body[data-color-theme] .page-hero,
body[data-color-theme] .page-header,
body[data-color-theme] .hero-section,
body[data-color-theme] .main-visual,
body[data-color-theme] .mv,
body[data-color-theme] .kv {
    background-image: none !important;
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
}

body[data-color-theme] .hero h1,
body[data-color-theme] .page-header h1,
body[data-color-theme] .page-title,
body[data-color-theme] .hero-title {
    color: var(--a11y-text) !important;
}

/* ========================================
    ヘッダー
======================================== */

body[data-color-theme] .site-header,
body[data-color-theme] .header,
body[data-color-theme] header,
body[data-color-theme] .site-header__inner,
body[data-color-theme] .header__inner,
body[data-color-theme] .header__nav,
body[data-color-theme] .header__menu,
body[data-color-theme] .btn__wrapper {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border-color: currentColor !important;
}

body[data-color-theme] .site-header a,
body[data-color-theme] .header a,
body[data-color-theme] header a,
body[data-color-theme] .site-header p,
body[data-color-theme] .header p,
body[data-color-theme] header p,
body[data-color-theme] .site-header span,
body[data-color-theme] .header span,
body[data-color-theme] header span,
body[data-color-theme] .site-header li,
body[data-color-theme] .header li,
body[data-color-theme] header li {
    color: var(--a11y-text) !important;
}

body[data-color-theme] .site-logo,
body[data-color-theme] .custom-logo-link {
    background: transparent !important;
}

body[data-color-theme] .btn__wrapper .btn,
body[data-color-theme] .btn__wrapper a.btn,
body[data-color-theme] .btn__wrapper button.btn,
body[data-color-theme] .btn--change,
body[data-color-theme] .btn--contact {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border: 2px solid currentColor !important;
    box-shadow: none !important;
}

body[data-color-theme] .btn__wrapper .btn:hover,
body[data-color-theme] .btn__wrapper .btn:focus-visible,
body[data-color-theme] .btn--change:hover,
body[data-color-theme] .btn--change:focus-visible,
body[data-color-theme] .btn--contact:hover,
body[data-color-theme] .btn--contact:focus-visible {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border-color: currentColor !important;
    box-shadow: none !important;
    outline: none !important;
}

/* ========================================
    フッター
======================================== */

body[data-color-theme] .site-footer,
body[data-color-theme] .footer,
body[data-color-theme] footer,
body[data-color-theme] .site-footer__inner,
body[data-color-theme] .footer__inner,
body[data-color-theme] .footer_form,
body[data-color-theme] #footer_form,
body[data-color-theme] .site__footer {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border-color: currentColor !important;
}

body[data-color-theme] .site-footer a,
body[data-color-theme] .footer a,
body[data-color-theme] footer a {
    color: var(--a11y-link) !important;
}

body[data-color-theme] .site-footer p,
body[data-color-theme] .footer p,
body[data-color-theme] footer p,
body[data-color-theme] .site-footer span,
body[data-color-theme] .footer span,
body[data-color-theme] footer span,
body[data-color-theme] .site-footer li,
body[data-color-theme] .footer li,
body[data-color-theme] footer li,
body[data-color-theme] .site-footer dt,
body[data-color-theme] .footer dt,
body[data-color-theme] footer dt,
body[data-color-theme] .site-footer dd,
body[data-color-theme] .footer dd,
body[data-color-theme] footer dd {
    color: var(--a11y-text) !important;
}

body[data-color-theme] .footer-cta,
body[data-color-theme] a.footer-cta,
body[data-color-theme] .footer-col--cta a {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border: 2px solid currentColor !important;
}

body[data-color-theme] .footer-cta:hover,
body[data-color-theme] a.footer-cta:hover,
body[data-color-theme] .footer-col--cta a:hover {
    background: var(--a11y-text) !important;
    color: var(--a11y-bg) !important;
    border-color: var(--a11y-text) !important;
}

/* ========================================
    フォーム / privacy-box
======================================== */

body[data-color-theme] .cf7-contact-custom label,
body[data-color-theme] .cf7-contact-custom p,
body[data-color-theme] .cf7-contact-custom span,
body[data-color-theme] .cf7-contact-custom dt,
body[data-color-theme] .cf7-contact-custom dd,
body[data-color-theme] .cf7-contact-custom .form-label,
body[data-color-theme] .cf7-contact-custom .required,
body[data-color-theme] .cf7-contact-custom .any,
body[data-color-theme] .cf7-contact-custom .mwform-label,
body[data-color-theme] .cf7-contact-custom .mwform-radio-field-text,
body[data-color-theme] .cf7-contact-custom .mwform-checkbox-field-text,
body[data-color-theme] .cf7-contact-custom .wpcf7-list-item-label,
body[data-color-theme] .cf7-contact-custom .wpcf7-not-valid-tip,
body[data-color-theme] .cf7-contact-custom .wpcf7-response-output,
body[data-color-theme] .cf7-contact-custom .cf7-note,
body[data-color-theme] .cf7-contact-custom .contact-note,
body[data-color-theme] .cf7-contact-custom .privacy-text {
    color: var(--a11y-text) !important;
    background-color: transparent;
}

body[data-color-theme] .cf7-contact-custom .required,
body[data-color-theme] .cf7-contact-custom .required-mark {
    color: #ff3b30 !important;
}

body[data-color-theme] .cf7-contact-custom input[type="text"],
body[data-color-theme] .cf7-contact-custom input[type="email"],
body[data-color-theme] .cf7-contact-custom input[type="tel"],
body[data-color-theme] .cf7-contact-custom input[type="url"],
body[data-color-theme] .cf7-contact-custom input[type="number"],
body[data-color-theme] .cf7-contact-custom textarea,
body[data-color-theme] .cf7-contact-custom select,
body[data-color-theme] .privacy-box {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border: 2px solid currentColor !important;
    border-radius: 12px;
    box-shadow: none !important;
}

body[data-color-theme] .cf7-contact-custom input[type="text"],
body[data-color-theme] .cf7-contact-custom input[type="email"],
body[data-color-theme] .cf7-contact-custom input[type="tel"],
body[data-color-theme] .cf7-contact-custom input[type="url"],
body[data-color-theme] .cf7-contact-custom input[type="number"],
body[data-color-theme] .cf7-contact-custom select {
    padding: 10px 14px;
}

body[data-color-theme] .cf7-contact-custom textarea,
body[data-color-theme] .privacy-box {
    padding: 14px 16px;
}

body[data-color-theme] .cf7-contact-custom input::placeholder,
body[data-color-theme] .cf7-contact-custom textarea::placeholder {
    color: var(--a11y-text) !important;
    opacity: 0.75;
}

body[data-color-theme] .cf7-contact-custom input[type="radio"],
body[data-color-theme] .cf7-contact-custom input[type="checkbox"] {
    accent-color: var(--a11y-link);
}

body[data-color-theme] .cf7-contact-custom .wpcf7-list-item,
body[data-color-theme] .cf7-contact-custom .wpcf7-form-control-wrap,
body[data-color-theme] .cf7-contact-custom .mwform-radio-field,
body[data-color-theme] .cf7-contact-custom .mwform-checkbox-field,
body[data-color-theme] .cf7-contact-custom .radio-group,
body[data-color-theme] .cf7-contact-custom .checkbox-group {
    color: var(--a11y-text) !important;
}

body[data-color-theme] .cf7-contact-custom input[type="radio"] + span,
body[data-color-theme] .cf7-contact-custom input[type="checkbox"] + span,
body[data-color-theme] .cf7-contact-custom input[type="radio"] + label,
body[data-color-theme] .cf7-contact-custom input[type="checkbox"] + label,
body[data-color-theme] .cf7-contact-custom .wpcf7-list-item-label {
    color: var(--a11y-text) !important;
}

body[data-color-theme] .cf7-contact-custom button,
body[data-color-theme] .cf7-contact-custom input[type="submit"],
body[data-color-theme] .cf7-contact-custom input[type="button"],
body[data-color-theme] .cf7-contact-custom input[type="reset"],
body[data-color-theme] .cf7-contact-custom .wpcf7-submit,
body[data-color-theme] .cf7-contact-custom .button,
body[data-color-theme] .cf7-contact-custom .btn,
body[data-color-theme] .cf7-contact-custom .wp-block-button__link {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border: 2px solid currentColor !important;
    border-radius: 999px;
    box-shadow: none !important;
}

body[data-color-theme] .cf7-contact-custom button:hover,
body[data-color-theme] .cf7-contact-custom input[type="submit"]:hover,
body[data-color-theme] .cf7-contact-custom input[type="button"]:hover,
body[data-color-theme] .cf7-contact-custom input[type="reset"]:hover,
body[data-color-theme] .cf7-contact-custom .wpcf7-submit:hover,
body[data-color-theme] .cf7-contact-custom .button:hover,
body[data-color-theme] .cf7-contact-custom .btn:hover,
body[data-color-theme] .cf7-contact-custom .wp-block-button__link:hover {
    background: var(--a11y-text) !important;
    color: var(--a11y-bg) !important;
    border-color: var(--a11y-text) !important;
}

body[data-color-theme] .cf7-contact-custom input:focus,
body[data-color-theme] .cf7-contact-custom textarea:focus,
body[data-color-theme] .cf7-contact-custom select:focus,
body[data-color-theme] .cf7-contact-custom button:focus,
body[data-color-theme] .privacy-box:focus {
    outline: 3px solid var(--a11y-link) !important;
    outline-offset: 2px;
}

body[data-color-theme] .cf7-contact-custom select option {
    background: var(--a11y-bg);
    color: var(--a11y-text);
}

/* ========================================
    CF7確認画面
======================================== */

.wpcf7-response-output:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body[data-color-theme] .cf7-contact-custom.confirm {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
}

body[data-color-theme] .cf7-contact-custom.confirm .cf7-row,
body[data-color-theme] .cf7-contact-custom.confirm .cf7-row__field,
body[data-color-theme] .cf7-contact-custom.confirm .cf7-contact-custom_grid,
body[data-color-theme] .cf7-contact-custom.confirm .cf7-contact-custom_left {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
}

body[data-color-theme] .cf7-contact-custom.confirm input,
body[data-color-theme] .cf7-contact-custom.confirm textarea,
body[data-color-theme] .cf7-contact-custom.confirm select {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border: 1px solid var(--a11y-link) !important;
}

body[data-color-theme] .cf7-contact-custom.confirm hr,
body[data-color-theme] .cf7-contact-custom.confirm .cf7-row {
    border-color: var(--a11y-link) !important;
}

body[data-color-theme] .required span,
body[data-color-theme] .cf7-contact-custom .required,
body[data-color-theme] .cf7-contact-custom .required-mark,
body[data-color-theme] .cf7-contact-custom.confirm .required,
body[data-color-theme] .cf7-contact-custom.confirm .required-mark {
    color: var(--a11y-link) !important;
}

body[data-color-theme] .cf7-contact-custom.confirm label,
body[data-color-theme] .cf7-confirm-head,
body[data-color-theme] .cf7-confirm-note,
body[data-color-theme] .cf7-confirm-text {
    color: var(--a11y-text) !important;
}

body[data-color-theme] .cf7-submit-wrap input.wpcf7-previous,
body[data-color-theme] .cf7-submit-wrap input.wpcf7-submit,
body[data-color-theme] .cf7-submit-wrap input.cf7-submit-btn,
body[data-color-theme] .cf7-submit-wrap input.wpcf7-form-control.wpcf7-previous,
body[data-color-theme] .cf7-submit-wrap input.wpcf7-form-control.wpcf7-submit {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border: 2px solid currentColor !important;
    border-radius: 12px !important;
    box-shadow: none !important;
}

body[data-color-theme] .cf7-submit-wrap input.wpcf7-previous:hover,
body[data-color-theme] .cf7-submit-wrap input.wpcf7-submit:hover,
body[data-color-theme] .cf7-submit-wrap input.cf7-submit-btn:hover,
body[data-color-theme] .cf7-submit-wrap input.wpcf7-form-control.wpcf7-previous:hover,
body[data-color-theme] .cf7-submit-wrap input.wpcf7-form-control.wpcf7-submit:hover {
    background: var(--a11y-text) !important;
    color: var(--a11y-bg) !important;
    border-color: var(--a11y-text) !important;
}

body[data-font-size] .cf7-submit-wrap input.wpcf7-previous,
body[data-font-size] .cf7-submit-wrap input.wpcf7-submit,
body[data-font-size] .cf7-submit-wrap input.cf7-submit-btn,
body[data-font-size] .cf7-submit-wrap input.wpcf7-form-control.wpcf7-previous,
body[data-font-size] .cf7-submit-wrap input.wpcf7-form-control.wpcf7-submit {
    font-size: inherit !important;
}

/* ========================================
    a11yボタン / パネル
======================================== */

#a11yTools,
#a11ySettings {
    position: relative;
    z-index: 9999;
}

#a11yOpen {
    position: relative;
    z-index: 10000;
    pointer-events: auto !important;
    cursor: pointer;
}

#a11yOpen .btn__icon,
#a11yOpen .btn__text,
#a11yOpen ruby,
#a11yOpen rt,
#a11yOpen svg,
#a11yOpen path {
    pointer-events: none;
}

#a11yPanel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 10001;
    display: block;
}

#a11yPanel[hidden] {
    display: none !important;
    pointer-events: none !important;
}

#nav-overlay[hidden],
.nav-overlay[hidden] {
    display: none !important;
    pointer-events: none !important;
}

.site-header::before,
.site-header::after,
.site-header__inner::before,
.site-header__inner::after,
.btn__wrapper::before,
.btn__wrapper::after {
    pointer-events: none;
}

body[data-color-theme] #a11yPanel,
body[data-color-theme] .a11y-panel {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border: 2px solid var(--a11y-link) !important;
    box-shadow: none !important;
}

body[data-color-theme] .a11y-panel__head {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border-bottom: 1px solid var(--a11y-link) !important;
}

body[data-color-theme] .a11y-panel__inner {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
}

body[data-color-theme] .a11y-close {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border: 2px solid currentColor !important;
    box-shadow: none !important;
}

body[data-color-theme] .a11y-close:hover,
body[data-color-theme] .a11y-close:focus-visible {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border-color: currentColor !important;
    box-shadow: none !important;
    outline: none !important;
}

body[data-color-theme] .a11y-item {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border: 2px solid var(--a11y-link) !important;
    box-shadow: none !important;
}

body[data-color-theme] .a11y-item:hover,
body[data-color-theme] .a11y-item:focus-visible {
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
    border-color: var(--a11y-link) !important;
    box-shadow: none !important;
    outline: none !important;
}

body[data-color-theme] .a11y-item__icon,
body[data-color-theme] .a11y-close__icon {
    color: var(--a11y-link) !important;
    border-color: var(--a11y-link) !important;
}

body[data-color-theme] .a11y-item__text,
body[data-color-theme] .a11y-close__label {
    color: var(--a11y-text) !important;
}

/* ========================================
    設定ページ本体
======================================== */

.a11y-tools,
.a11y-tools__inner,
.a11y-tools__section,
.a11y-card {
    position: relative;
}

.a11y-tools {
    padding: 48px 20px;
}

.a11y-tools__inner {
    max-width: 1480px;
    margin: 0 auto;
}

.a11y-tools__section + .a11y-tools__section {
    margin-top: 56px;
}

.a11y-tools__title {
    margin: 0 0 24px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--a11y-border);
    font-size: 32px;
    line-height: 1.4;
    font-weight: 700;
}

.a11y-tools__title:last-of-type {
    margin-top: 50px;
}

body[data-color-theme] .a11y-tools__title,
body[data-color-theme] .a11y-card__label {
    color: var(--a11y-text) !important;
}

.a11y-tools__grid {
    display: grid;
    gap: 22px;
}

.a11y-tools__grid--size,
.a11y-tools__grid--line {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.a11y-tools__grid--color {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.a11y-card {
    z-index: 5;
    display: block;
    width: 100%;
    padding: 0 10px;
    border: 1px solid currentColor;
    background: transparent;
    text-align: left;
    cursor: pointer;
    appearance: none;
    color: inherit;
}

body[data-color-theme] .a11y-card {
    color: var(--a11y-text) !important;
    border-color: var(--a11y-text) !important;
}

.a11y-card:hover,
.a11y-card:focus-visible {
    border-color: currentColor;
    box-shadow: none;
    outline: none;
}

.a11y-card.is-active {
    border-color: currentColor;
    box-shadow: none;
}

.a11y-card__label {
    display: block;
    padding: 18px 18px 14px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
}

.a11y-card,
.a11y-card * {
    pointer-events: auto;
}

.a11y-card__sample a,
.a11y-card__sample span {
    pointer-events: none;
}

/* ========================================
    サンプル共通
======================================== */

body[data-line-height] .a11y-card__headline,
body[data-line-height] .a11y-card__box,
body[data-line-height] .a11y-card__label {
    line-height: var(--a11y-line-height);
}

body[data-font-size] .a11y-card__label {
    font-size: calc(18px * var(--a11y-font-scale)) !important;
    line-height: 1.5 !important;
}

/* ========================================
    文字サイズサンプル
======================================== */

body[data-font-size] .a11y-card__sample--size-normal {
    font-size: calc(18px * var(--a11y-font-scale));
    line-height: 1.8 !important;
}

body[data-font-size] .a11y-card__sample--size-large {
    font-size: calc(24px * var(--a11y-font-scale));
    line-height: 1.8 !important;
}

body[data-font-size] .a11y-card__sample--size-xlarge {
    font-size: calc(32px * var(--a11y-font-scale));
    line-height: 1.8 !important;
}

/* ========================================
    行間サンプル
======================================== */

body[data-font-size] .a11y-card__sample--line-normal,
body[data-font-size] .a11y-card__sample--line-wide,
body[data-font-size] .a11y-card__sample--line-xwide {
    font-size: calc(18px * var(--a11y-font-scale));
}

body[data-line-height] .a11y-card__sample--line-normal {
    line-height: 1.7 !important;
}

body[data-line-height] .a11y-card__sample--line-wide {
    line-height: 2.4 !important;
}

body[data-line-height] .a11y-card__sample--line-xwide {
    line-height: 3.4 !important;
}

.a11y-card__sample--line-normal,
.a11y-card__sample--line-wide,
.a11y-card__sample--line-xwide {
    min-height: 190px;
}

/* ========================================
    サンプル基本見た目
======================================== */

body[data-color-theme] .a11y-card__sample--size-normal,
body[data-color-theme] .a11y-card__sample--size-large,
body[data-color-theme] .a11y-card__sample--size-xlarge,
body[data-color-theme] .a11y-card__sample--line-normal,
body[data-color-theme] .a11y-card__sample--line-wide,
body[data-color-theme] .a11y-card__sample--line-xwide {
    display: block;
    margin: 0 20px 20px;
    padding: 26px 26px 24px;
    background: var(--a11y-bg);
    color: var(--a11y-text) !important;
    border: 5px solid var(--a11y-border);
    border-radius: 16px;
}

/* ========================================
    色合いサンプル
======================================== */

body[data-font-size] .a11y-card__headline {
    font-size: calc(20px * var(--a11y-font-scale));
}

body[data-font-size] .a11y-card__box {
    font-size: calc(18px * var(--a11y-font-scale));
}

.a11y-card__sample--theme-default,
.a11y-card__sample--theme-blue-yellow,
.a11y-card__sample--theme-purple-white,
.a11y-card__sample--theme-black-white {
    display: block;
    margin: 0 20px 20px;
    padding: 26px 26px 24px;
    border-radius: 16px;
}

.a11y-card__sample--theme-default {
    background: #ffffff !important;
    color: #222222 !important;
    border: 5px solid #ffffff !important;
}

.a11y-card__sample--theme-blue-yellow {
    background: #0b0a8f !important;
    color: #ffff00 !important;
    border: 5px solid #ffffff !important;
}

.a11y-card__sample--theme-purple-white {
    background: #5a2382 !important;
    color: #ffffff !important;
    border: 5px solid #ffffff !important;
}

.a11y-card__sample--theme-black-white {
    background: #000000 !important;
    color: #ffffff !important;
    border: 5px solid #ffffff !important;
}

.a11y-card__headline {
    display: block;
    margin: 0 0 22px;
    padding-bottom: 14px;
    border-bottom: 5px solid currentColor;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
}

.a11y-card__box {
    display: block;
    padding: 22px 24px;
    border: 5px solid currentColor;
    border-radius: 16px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.8;
}

/* theme-default 固定 */
body[data-color-theme] .a11y-card__sample--theme-default,
body[data-color-theme] .a11y-card__sample--theme-default * {
    color: #222222 !important;
}

body[data-color-theme] .a11y-card__sample--theme-default .a11y-card__headline,
body[data-color-theme] .a11y-card__sample--theme-default .a11y-card__box {
    color: #222222 !important;
    border-color: #222222 !important;
}

body[data-color-theme] .a11y-card__sample--theme-default a {
    color: #007a5a !important;
}

/* theme-default 以外はテーマ色継承 */
body[data-color-theme] .a11y-card[data-color-theme]:not([data-color-theme="theme-default"]) .a11y-card__headline,
body[data-color-theme] .a11y-card[data-color-theme]:not([data-color-theme="theme-default"]) .a11y-card__box {
    color: inherit !important;
}

/* ========================================
    actions
======================================== */

.a11y-tools__actions {
    margin-top: 38px;
    text-align: center;
}

.a11y-reset {
    min-width: 320px;
    padding: 18px 28px;
    border: 2px solid currentColor;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    appearance: none;
}

.a11y-reset:hover,
.a11y-reset:focus-visible {
    background: inherit;
    color: inherit;
    box-shadow: none;
    outline: none;
}

/* ========================================
    section title
======================================== */

body[data-color-theme] .section-title__en {
    color: var(--a11y-link) !important;
}

body[data-color-theme] h2.section-title__jp {
    color: var(--a11y-text) !important;
}

body[data-color-theme] h2.section-title__jp::before,
body[data-color-theme] h2.section-title__jp::after {
    background-color: var(--a11y-link) !important;
}

/* ========================================
    page top
======================================== */

.back-to-top-wrap {
    position: fixed;
    right: 24px;
    bottom: 100px;
    z-index: 9999;
    pointer-events: none;
}
.back-to-top {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 72px;
    text-decoration: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
    pointer-events: none;
}

.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.back-to-top__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.page-top-icon {
    width: 60px;
    height: 60px;
    display: block;
}

.page-top-icon circle {
    fill: var(--a11y-bg, #ffffff);
    stroke: var(--a11y-link, #007a5a);
    stroke-width: 2.5;
}

.page-top-icon path {
    fill: var(--a11y-link, #007a5a);
}

.back-to-top__text {
    font-size: 12px;
    line-height: 1.4;
    font-weight: 700;
    color: var(--a11y-text, #222222);
    text-align: center;
}

.back-to-top:hover .page-top-icon circle,
.back-to-top:focus-visible .page-top-icon circle {
    fill: var(--a11y-link, #007a5a);
}

.back-to-top:hover .page-top-icon path,
.back-to-top:focus-visible .page-top-icon path {
    fill: var(--a11y-bg, #ffffff);
}

.back-to-top:hover .back-to-top__text,
.back-to-top:focus-visible .back-to-top__text {
    color: var(--a11y-link, #007a5a);
}

.back-to-top:focus-visible {
    outline: 3px solid var(--a11y-link, #007a5a);
    outline-offset: 4px;
    border-radius: 12px;
}

/*
.back-to-top-wrap.is-above-footer {
    transform: translateY(-96px);
    transition: transform .2s ease;
}
*/
body[data-color-theme="theme-blue-yellow"] .back-to-top__text,
body[data-color-theme="theme-purple-white"] .back-to-top__text,
body[data-color-theme="theme-black-white"] .back-to-top__text {
    color: var(--a11y-text, #ffffff);
}

#back-to-top:not(.is-visible) {
    pointer-events: none;
}

/* ========================================
    reduced motion
======================================== */

@media (prefers-reduced-motion: reduce) {
    .back-to-top {
        transition: none;
    }

    .back-to-top-wrap.is-above-footer {
        transition: none;
    }

    html:focus-within {
        scroll-behavior: auto;
    }
}

/* ========================================
    responsive
======================================== */

@media (max-width: 991px) {
    .a11y-tools__grid--size,
    .a11y-tools__grid--line,
    .a11y-tools__grid--color {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    body[data-font-size="large"] {
        --a11y-font-scale: 1.1;
    }

    body[data-font-size="xlarge"] {
        --a11y-font-scale: 1.18;
    }

    body[data-line-height="wide"] {
        --a11y-line-height: 2;
    }

    body[data-line-height="xwide"] {
        --a11y-line-height: 2.3;
    }

    .a11y-tools__title {
        font-size: 24px;
    }

    .a11y-card__label {
        font-size: 16px;
    }

    body[data-font-size] .a11y-card__label {
        font-size: calc(16px * var(--a11y-font-scale)) !important;
    }

    .a11y-card__headline {
        font-size: 18px;
    }

    .a11y-card__box {
        font-size: 16px;
    }

    .back-to-top-wrap {
        right: 16px;
        bottom: 16px;
    }

    .page-top-icon {
        width: 52px;
        height: 52px;
    }

    .back-to-top__text {
        font-size: 11px;
    }
	/*
    .back-to-top-wrap.is-above-footer {
        transform: translateY(-72px);
    }
	*/
}

/* ========================================
  各ページ対応
/* ===================================== */

/* ========================================
    配色変更時：トップヒーロー画像を非表示
    高さもコンパクトにする
======================================== */

body[data-color-theme] section.hero {
    width: 100% !important;
    min-height: auto !important;
    height: auto !important;
    padding: 0 20px 80px !important;
    background: var(--a11y-bg) !important;
    color: var(--a11y-text) !important;
}

body[data-color-theme] section.hero .hero__brand {
    background: var(--a11y-bg) !important;
}
body[data-color-theme] section.hero .hero__media {
    display: none !important;
}

body[data-color-theme] section.hero .hero__inner {
    position: relative !important;
    z-index: 1;
    min-height: auto !important;
    padding: 0 !important;
}

body[data-color-theme] section.hero h1,
body[data-color-theme] section.hero h2,
body[data-color-theme] section.hero h3,
body[data-color-theme] section.hero p,
body[data-color-theme] section.hero .hero__title,
body[data-color-theme] section.hero .hero__copy,
body[data-color-theme] section.hero .hero__lead {
    color: var(--a11y-text) !important;
}

body[data-color-theme] section.hero a,
body[data-color-theme] section.hero .btn,
body[data-color-theme] section.hero .hero__btn {
    color: var(--a11y-text) !important;
    border-color: currentColor !important;
    background: transparent !important;
}

body[data-color-theme] section.hero,
body[data-color-theme] section.hero .hero__inner {
    max-height: none !important;
}

@media (max-width: 767px) {
    body[data-color-theme] section.hero {
        padding: 10px 16px 50px !important;
    }
}

body[data-color-theme] .global-nav__list > li.has-submenu > .sub-menu,
body[data-color-theme] section.top__content,
body[data-color-theme] section.top__content--introduction .wrapper,
body[data-color-theme] section.top__content--introduction,
body[data-color-theme] section.top__content--introduction .section-title,
body[data-color-theme] .office-card,
body[data-color-theme] .office-card__inner,
body[data-color-theme] .top-recruit,
body[data-color-theme] .top-recruit__inner,
body[data-color-theme] .recruit-archive-card,
body[data-color-theme] .top-recruit-slider .recruit-archive-card__image,
body[data-color-theme] .top-recruit-slider .recruit-archive-card__body,
body[data-color-theme] .recruit-archive-card__link,
body[data-color-theme] .recruit-archive-card__meta,
body[data-color-theme] .recruit-archive-card__office,
body[data-color-theme] .recruit-archive-card__status,
body[data-color-theme] .top-recruit__more,
body[data-color-theme] .news-tabs *,
body[data-color-theme] .news-category,
body[data-color-theme] .news-office,
body[data-color-theme] .section-block,
body[data-color-theme] .company__profile--inner,
body[data-color-theme] .support-section__body,
body[data-color-theme] .support-triple__card,
body[data-color-theme] .support-card,
body[data-color-theme] .section-block--benefits .benefits-card,
body[data-color-theme] .section-block--info .section-inner,
body[data-color-theme] .section-title__inner,
body[data-color-theme] .section-wrapper,
body[data-color-theme] .section-block--info .office__name,
body[data-color-theme] .post-card,
body[data-color-theme] .post-card__cat,
body[data-color-theme] .pagination__item .current,
body[data-color-theme] .pagination__item a,
body[data-color-theme] .pagination__item span,
body[data-color-theme] .entry__cats a {
    background: var(--a11y-bg) !important;
}
body[data-color-theme] .top-recruit__more,
body[data-color-theme] .office-card__info,
body[data-color-theme] .news-tabs *,
body[data-color-theme] .news-date,
body[data-color-theme] .news-office,
body[data-color-theme] .section-block--info .office__name,
body[data-color-theme] .recruit-archive-card__status *,
body[data-color-theme] .post-card__cat,
body[data-color-theme] .pagination__item .current,
body[data-color-theme] .pagination__item a,
body[data-color-theme] .pagination__item span,
body[data-color-theme] .entry__cats .entry__label,
body[data-color-theme] .entry__cats a {
    color: var(--a11y-text) !important;
}
body[data-color-theme] .global-nav__list > li.has-submenu > .sub-menu,
body[data-color-theme] .office-card__inner,
body[data-color-theme] .top-recruit__more,
body[data-color-theme] .recruit-archive-card__office,
body[data-color-theme] .recruit-archive-card__status,
body[data-color-theme] .news-tabs *,
body[data-color-theme] .news-category,
body[data-color-theme] .news-office,
body[data-color-theme] .section-block--info .office__name,
body[data-color-theme] .post-card__cat,
body[data-color-theme] .pagination__item .current,
body[data-color-theme] .pagination__item a,
body[data-color-theme] .entry__cats a {
    border: 2px solid var(--a11y-text) !important;
}
body[data-color-theme] .pagination__item span {
    border: none;
}

/* ========================================
    フォーム：文字色対応
======================================== */

body[data-color-theme] input,
body[data-color-theme] textarea,
body[data-color-theme] select {
    color: var(--a11y-text) !important;
    background-color: var(--a11y-bg) !important;
    border-color: currentColor !important;
}
body[data-color-theme] input::placeholder,
body[data-color-theme] textarea::placeholder {
    color: var(--a11y-text) !important;
    opacity: 0.6;
}
body[data-color-theme] input:focus,
body[data-color-theme] textarea:focus,
body[data-color-theme] select:focus {
    outline: none;
    border-color: var(--a11y-text) !important;
    box-shadow: 0 0 0 2px currentColor;
}
body[data-color-theme] .wpcf7 input,
body[data-color-theme] .wpcf7 textarea,
body[data-color-theme] .wpcf7 select {
    color: var(--a11y-text) !important;
    background-color: var(--a11y-bg) !important;
}

/* ========================================
    記事ナビ（.post-nav）色合い対応
======================================== */

body[data-color-theme] .entry__meta *,
body[data-color-theme] .post-nav,
body[data-color-theme] .post-nav__meta {
    color: var(--a11y-text) !important;
}

body[data-color-theme] .post-nav a {
    color: var(--a11y-text) !important;
    background: var(--a11y-bg) !important;
    border: 1px solid currentColor !important;
}

body[data-color-theme] .post-nav .post-nav__label {
    color: var(--a11y-text) !important;
    opacity: 0.7;
}

body[data-color-theme] .post-nav .post-nav__title {
    color: var(--a11y-text) !important;
}

body[data-color-theme] .post-nav .post-nav__arrow,
body[data-color-theme] .post-nav a::before,
body[data-color-theme] .post-nav a::after {
    color: var(--a11y-text) !important;
}

body[data-color-theme] .post-nav a:hover {
    background: transparent !important;
    color: var(--a11y-link) !important;
    border-color: var(--a11y-link) !important;
}


/* ========================================
    フォントサイズ（全ページ対応）
======================================== */

/* 基本文字 */
body[data-font-size] p,
body[data-font-size] li,
body[data-font-size] dt,
body[data-font-size] dd,
body[data-font-size] td,
body[data-font-size] th,
body[data-font-size] blockquote {
    font-size: calc(1em * var(--a11y-font-scale)) !important;
}

/* ナビ・カード内テキスト */
body[data-font-size] .recruit-archive-card,
body[data-font-size] .post-card,
body[data-font-size] .news-tabs,
body[data-font-size] .post-nav,
body[data-font-size] .entry__meta {
    font-size: calc(1em * var(--a11y-font-scale));
}


/* ========================================
    行間（全ページ対応）
======================================== */

/* 本文 */
body[data-line-height] p,
body[data-line-height] li,
body[data-line-height] dt,
body[data-line-height] dd,
body[data-line-height] td,
body[data-line-height] th {
    line-height: var(--a11y-line-height) !important;
}

/* カード系（崩れ防止） */
body[data-line-height] .recruit-archive-card,
body[data-line-height] .post-card,
body[data-line-height] .post-nav {
    line-height: var(--a11y-line-height);
}


/* ========================================
    フォームも連動
======================================== */

body[data-font-size] input,
body[data-font-size] textarea,
body[data-font-size] select {
    font-size: calc(1em * var(--a11y-font-scale)) !important;
}

body[data-line-height] input,
body[data-line-height] textarea {
    line-height: var(--a11y-line-height) !important;
}