/* Fukutsu outcall-only customization */
:root {
  --df-cta-background: url('../source/img/cta-bg-original.png');
  --df-cta-operator-image: url('../source/img/cta-operator-original.png');
}
.mv::after { display: none; }
.mv__top-area { z-index: 1; }
.mv__top-area::after { aspect-ratio: 156 / 202; background-image: var(--df-hero-image, url('../source/img/hero-kimono-senior-v2.png')); background-repeat: no-repeat; background-size: contain; bottom: 0; content: ""; display: block; left: 0; position: absolute; width: 14.2rem; z-index: 0; }
.mv__top-area > * { position: relative; z-index: 1; }
.mv__bottom-area { position: relative; z-index: 3; }
.mv__link--static { cursor: default; }
.fukutsu-branch, .visit-focus { padding: 5.5rem 1.6rem; }
.fukutsu-branch { background: linear-gradient(180deg, #f7f4e9 0%, #fff 100%); }
.visit-focus { background: #080f5a; color: #fff; position: relative; overflow: hidden; }
.visit-focus::before { content: ""; position: absolute; inset: 0; opacity: .12; background-image: radial-gradient(circle at 20% 20%, #e5c46b 0 2px, transparent 3px), radial-gradient(circle at 75% 70%, #e5c46b 0 2px, transparent 3px); background-size: 80px 80px, 110px 110px; pointer-events: none; }
.fukutsu-branch__inner, .visit-focus__inner { position: relative; z-index: 1; }
.fukutsu-branch, .visit-focus { font-family: "Noto Sans JP", sans-serif; }
.fukutsu-kicker { color: #c49a37; font-family: "Noto Sans JP", sans-serif; font-size: 1.4rem; font-weight: 800; letter-spacing: .08em; text-align: center; }
.fukutsu-title { color: #080f5a; font-family: "Noto Serif JP", serif; font-size: clamp(2.8rem, 7vw, 4.8rem); font-weight: 700; letter-spacing: .06em; line-height: 1.35; margin-top: .8rem; text-align: center; }
.fukutsu-title span { color: #e6003d; }
.visit-focus .fukutsu-title { color: #fff; }
.visit-focus .fukutsu-title span { color: #f8d654; }
.fukutsu-lead { font-family: "Noto Sans JP", sans-serif; font-size: 1.6rem; font-weight: 600; line-height: 1.9; margin: 1.8rem auto 0; max-width: 76rem; text-align: center; }
.fukutsu-branch__grid { display: grid; gap: 2.4rem; margin: 3.2rem auto 0; max-width: 104rem; }
.fukutsu-staff-card, .fukutsu-store-card { background: #fff; border: 1px solid #e6dcc0; border-radius: 1.6rem; box-shadow: 0 1.2rem 3rem rgba(8,15,90,.12); overflow: hidden; }
.fukutsu-staff-card img { aspect-ratio: 4 / 3; object-fit: cover; object-position: center 18%; width: 100%; }
.fukutsu-store-card > img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.fukutsu-staff-card__body, .fukutsu-store-card__body { padding: 2.4rem; }
.fukutsu-staff-card__role { color: #e6003d; font-size: 1.3rem; font-weight: 800; letter-spacing: .08em; }
.fukutsu-staff-card__name, .fukutsu-store-card__body h3 { color: #080f5a; font-size: 2.4rem; font-weight: 900; margin-top: .4rem; }
.fukutsu-staff-card__body p:last-child { font-size: 1.5rem; line-height: 1.9; margin-top: 1.2rem; }
.fukutsu-store-card__body dl { border-top: 1px solid #e4e4e4; margin-top: 1.6rem; }
.fukutsu-store-card__body dl div { display: grid; font-size: 1.4rem; grid-template-columns: 7rem 1fr; line-height: 1.7; padding: 1rem 0; border-bottom: 1px solid #e4e4e4; }
.fukutsu-store-card__body dt { color: #080f5a; font-weight: 900; }
.fukutsu-tel { align-items: center; background: linear-gradient(180deg, #ff4b60, #d90026); border: .3rem solid #fff; border-radius: 1.2rem; box-shadow: 0 .5rem 0 #8f001a, 0 1rem 2rem rgba(0,0,0,.18); color: #fff; display: flex; flex-direction: column; margin-top: 2.4rem; padding: 1.4rem; text-decoration: none; }
.fukutsu-tel span { font-size: 1.3rem; font-weight: 800; }
.fukutsu-tel strong { font-family: "Roboto", sans-serif; font-size: clamp(2.7rem, 7vw, 4rem); line-height: 1.1; }
.fukutsu-tel em { font-size: 1.2rem; font-style: normal; font-weight: 800; margin-top: .6rem; }
.visit-focus__hero { border: .4rem solid #e5c46b; border-radius: 1.6rem; margin: 3rem auto 0; max-width: 100rem; overflow: hidden; }
.visit-focus__hero img { aspect-ratio: 5 / 2; object-fit: cover; width: 100%; }
.visit-steps { display: grid; gap: 1.6rem; margin: 2.4rem auto 0; max-width: 100rem; }
.visit-steps li { background: #fff; border-radius: 1.4rem; color: #222; padding: 2.4rem; position: relative; }
.visit-steps__number { color: #e6003d; display: block; font-family: "Roboto", sans-serif; font-size: 1.5rem; font-weight: 900; letter-spacing: .08em; }
.visit-steps h3 { color: #080f5a; font-size: 2.2rem; font-weight: 900; margin-top: .4rem; }
.visit-steps p { font-size: 1.45rem; line-height: 1.8; margin-top: .8rem; }
.visit-reasons { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.28); border-radius: 1.4rem; margin: 2.4rem auto 0; max-width: 100rem; padding: 2.4rem; }
.visit-reasons h3 { color: #f8d654; font-size: 2.2rem; font-weight: 900; text-align: center; }
.visit-reasons ul { display: grid; gap: 1rem; margin-top: 1.6rem; }
.visit-reasons li { background: #fff; border-radius: .8rem; color: #080f5a; font-size: 1.45rem; font-weight: 800; padding: 1.2rem 1.4rem; }
.fukutsu-tel--wide { margin-inline: auto; max-width: 64rem; }
.fukutsu-footer { background: #080f5a; color: #fff; }
.fukutsu-footer .footer__heading { color: #fff; }
.fukutsu-footer__info { margin-top: 2rem; text-align: center; }
.fukutsu-footer__info a { color: #f8d654; display: inline-block; font-family: "Roboto", sans-serif; font-size: 3.2rem; font-weight: 900; margin: .4rem 0; text-decoration: none; }
.fukutsu-footer__info p { font-size: 1.35rem; line-height: 1.8; }
a[data-disabled-link="true"] { cursor: default; }

/* Original 30% home-visit campaign banner */
.fukutsu-shutcho-page .cp-tel { background: #fff; padding: 1.2rem 0 2.4rem; }
.fukutsu-shutcho-page .cp-tel__toggle { font-size: 1.2rem; line-height: 1.4; padding: 1rem 1.2rem; white-space: nowrap; }
.campaign30 { background: #fff; overflow: hidden; position: relative; }
.campaign30 picture { display: block; }
.campaign30 picture img { display: block; height: auto !important; width: 100% !important; }
.campaign30__content { align-items: center; color: #080f5a; display: flex; flex-direction: column; inset: 0; justify-content: center; padding: 2.4rem 4.2rem; position: absolute; text-align: center; z-index: 1; }
.campaign30__badge { background: #a91828; border-radius: 100vmax; color: #fff; font-size: 1.25rem; font-weight: 800; letter-spacing: .08em; padding: .45rem 1.5rem; }
.campaign30__lead { font-size: 1.35rem; font-weight: 800; margin-top: .8rem; }
.campaign30__offer { align-items: baseline; display: flex; font-family: "Noto Sans JP", sans-serif; font-weight: 900; justify-content: center; line-height: .95; margin-top: .35rem; white-space: nowrap; }
.campaign30__offer span { background: #080f5a; border-radius: .35rem; color: #fff; font-size: 1.45rem; letter-spacing: .04em; margin-right: .65rem; padding: .45rem .7rem; }
.campaign30__offer strong { color: #c91f32; font-size: 6.8rem; letter-spacing: -.06em; }
.campaign30__offer em { color: #c91f32; font-size: 2.7rem; font-style: normal; margin-left: .2rem; }
.campaign30__sub { border-top: .1rem solid rgba(8,15,90,.24); font-size: 1.05rem; font-weight: 700; margin-top: .7rem; padding-top: .65rem; }

/* Contact Form 7: free home-visit appraisal */
.visit-contact { background: #f7f3e8; color: #071c4c; padding: 5rem 1.6rem 6rem; position: relative; }
.visit-contact::before { background: linear-gradient(90deg, #b88b27, #f1d98b, #b88b27); content: ""; height: .4rem; inset: 0 0 auto; position: absolute; }
.visit-contact__inner { max-width: 75rem; }
.visit-contact__kicker { color: #a91828; font-size: 1.4rem; font-weight: 800; letter-spacing: .15em; text-align: center; }
.visit-contact__title { font-family: "Noto Serif JP", serif; font-size: 2.8rem; font-weight: 800; letter-spacing: .04em; line-height: 1.35; margin-top: .8rem; text-align: center; }
.visit-contact__lead { color: #333; font-size: 1.4rem; font-weight: 600; line-height: 1.8; margin-top: 1.4rem; text-align: center; }
.visit-contact__form { background: #fff; border: .1rem solid #d8c58e; border-radius: 1.2rem; box-shadow: 0 1.2rem 3rem rgba(7,28,76,.12); margin-top: 2.8rem; padding: 2.4rem 1.8rem; }
.visit-contact__fields { display: grid; gap: 2rem; }
.visit-contact__field { display: block; }
.visit-contact__label { align-items: center; display: flex; font-size: 1.5rem; font-weight: 800; gap: .8rem; margin-bottom: .8rem; }
.visit-contact__required, .visit-contact__optional { border-radius: .3rem; color: #fff; font-size: 1.1rem; font-weight: 800; line-height: 1; padding: .45rem .65rem; }
.visit-contact__required { background: #b51d31; }
.visit-contact__optional { background: #6f7684; }
.visit-contact__form input[type="text"], .visit-contact__form input[type="tel"], .visit-contact__form input[type="date"] { appearance: none; background: #fbfbfb; border: .1rem solid #aeb3bd; border-radius: .6rem; box-sizing: border-box; color: #222; font-family: "Noto Sans JP", sans-serif; font-size: 1.6rem; min-height: 5.2rem; padding: 1.2rem 1.4rem; width: 100%; }
.visit-contact__form input:focus { border-color: #071c4c; box-shadow: 0 0 0 .3rem rgba(7,28,76,.13); outline: none; }
.visit-contact__form .wpcf7-not-valid { border-color: #b51d31 !important; }
.visit-contact__form .wpcf7-not-valid-tip { color: #b51d31; font-size: 1.2rem; margin-top: .5rem; }
.visit-contact__privacy { color: #5d616b; font-size: 1.2rem; line-height: 1.7; margin-top: 2rem; text-align: center; }
.visit-contact__submit-wrap { margin-top: 2rem; text-align: center; }
.visit-contact__submit, .visit-contact__form input[type="submit"] { appearance: none; background: linear-gradient(180deg, #c9253b, #9e1025); border: .2rem solid #d8b85a; border-radius: .8rem; box-shadow: 0 .5rem 0 #700819, 0 1rem 2rem rgba(112,8,25,.18); color: #fff; cursor: pointer; font-family: "Noto Sans JP", sans-serif; font-size: 1.8rem; font-weight: 900; letter-spacing: .05em; min-height: 5.8rem; padding: 1.3rem 2rem; width: 100%; }
.visit-contact__submit:hover, .visit-contact__form input[type="submit"]:hover { filter: brightness(1.08); transform: translateY(-.1rem); }
.visit-contact__form .wpcf7-spinner { display: block; margin: 1.5rem auto 0; }
.visit-contact__form .wpcf7-response-output { border-radius: .6rem; font-size: 1.3rem; line-height: 1.7; margin: 2rem 0 0 !important; padding: 1.2rem !important; }
.visit-contact__admin-note { background: #fff7d7; border: .1rem solid #d5a72f; border-radius: .6rem; color: #333; font-size: 1.3rem; line-height: 1.7; padding: 1.5rem; }

/* Original CTA system */
.cta { color: #fff; font-family: "Noto Sans JP", sans-serif; isolation: isolate; overflow: hidden; padding: 2.4rem 1rem 2rem; }
.cta::before { background-image: var(--df-cta-background); background-position: center; background-size: cover; }
.cta__top-content { min-height: 13.5rem; padding: 0 10.2rem 0 0; position: relative; }
.cta__top-content::after { background-image: var(--df-cta-operator-image); background-position: 76% 12%; background-repeat: no-repeat; background-size: auto 14.5rem; border: .2rem solid #d8bd6a; border-bottom: 0; border-radius: 7rem 7rem 0 0; bottom: -1.1rem; content: ""; height: 13.5rem; position: absolute; right: 0; width: 9.6rem; }
.cta__bubble-text { background: #fffaf0; border: .1rem solid #d8bd6a; color: #252525; font-size: 1.2rem; line-height: 1.5; padding: .65rem 1.2rem; }
.cta__bubble-text::after { background-color: #fffaf0; }
.cta__bubble-text .pink { color: #a91828; }
.cta__heading { color: #fff; font-family: "Noto Serif JP", serif; font-size: 2rem; letter-spacing: .03em; line-height: 1.35; margin-top: 1.1rem; text-shadow: 0 .2rem .5rem rgba(0,0,0,.35); }
.cta__heading .gradation { background: none; color: #fff; font-size: 2.45rem; margin: 0 .25rem 0 0; padding: 0 .45rem; }
.cta__heading .gradation::before { background: #a91828; border: .1rem solid #d8bd6a; bottom: .05rem; top: .15rem; }
.cta__heading .yellow { color: #f3d37a; font-size: 2.35rem; }
.cta__heading .small { font-size: 1.65rem; }
.cta__button-content { background: rgba(255,250,240,.97); border: .2rem solid #d8bd6a; border-radius: 1.2rem; display: grid; gap: 1.2rem; margin-top: 1.2rem; padding: 2rem 1.2rem 1.2rem; }
.cta__button-content::before { display: none; }
.button01, .button02 { box-shadow: none; font-family: "Noto Sans JP", sans-serif; }
.button01__link { background: #bd1e32; border: .2rem solid #f3d37a; border-bottom: .45rem solid #780b18; border-radius: 1rem; box-shadow: 0 .55rem 1.2rem rgba(60,0,12,.2), inset 0 .1rem 0 rgba(255,255,255,.28); min-height: 8.6rem; padding: 1.9rem .75rem .7rem; }
.button01__top-text { background: #fff4c8; border: .1rem solid #8d701e; color: #151515; font-size: .95rem; max-width: calc(100% - 1.2rem); overflow: hidden; padding: .2rem .6rem; text-overflow: ellipsis; white-space: nowrap; }
.button01__top-text .number { font-size: 1.25rem; }
.button01__title { font-family: "Noto Sans JP", sans-serif; font-size: 1.3rem; font-weight: 800; letter-spacing: 0; line-height: 1.25; white-space: nowrap; }
.button01__title .large { font-size: 1.9rem; }
.button01__bottom-text { font-size: 1rem; line-height: 1.45; text-align: center; }
.button02__link { background: #102a68; border: .2rem solid #d8bd6a; border-bottom: .45rem solid #06143d; border-radius: 1rem; box-shadow: 0 .55rem 1.2rem rgba(0,12,55,.2), inset 0 .1rem 0 rgba(255,255,255,.22); min-height: 7.4rem; padding: 1rem .75rem .65rem; }
.button02__title { font-family: "Noto Sans JP", sans-serif; font-size: 1.75rem; font-weight: 800; }
.button02__bottom-text { font-size: 1rem; line-height: 1.4; text-align: center; }
.button02__bottom-text .yellow { color: #f3d37a; }

/* Fixed CTA: compact, readable and never wider than the viewport */
.cta-fixed { background: rgba(4,12,45,.94); }
.cta-fixed__content { box-sizing: border-box; padding: 1.25rem 7.2rem 1rem .8rem; width: 100%; }
.cta-fixed__button { box-shadow: none; min-width: 0; }
.cta-fixed__link { background: #bd1e32; border: .2rem solid #f3d37a; border-bottom: .4rem solid #780b18; border-radius: .9rem; box-shadow: 0 .4rem 1.2rem rgba(0,0,0,.25); min-height: 6.8rem; padding: 1.45rem .45rem .55rem; }
.cta-fixed__tag-text { background: #fff4c8; border-color: #8d701e; box-sizing: border-box; font-size: .88rem; left: 50%; letter-spacing: 0; max-width: calc(100% - .8rem); overflow: hidden; padding: .2rem .55rem; text-overflow: ellipsis; top: .2rem; translate: -50% -1rem; white-space: nowrap; width: auto; }
.cta-fixed__tag-text .number { font-size: 1.15rem; }
.cta-fixed__text { color: #fff; font-family: "Noto Sans JP", sans-serif; font-size: 1.05rem; font-weight: 800; letter-spacing: 0; line-height: 1.25; white-space: nowrap; }
.cta-fixed__text .large01 { font-size: 1.35rem; }
.cta-fixed__text .large02 { color: #fff4c8; font-size: 1.7rem; }
.cta-fixed__image { background: #fff; border: .2rem solid #d8bd6a; border-bottom: 0; border-radius: 4rem 4rem 0 0; bottom: 0; height: 8.8rem; overflow: hidden; right: .6rem; width: 6.4rem; }
.cta-fixed__image img { height: 100%; object-fit: cover; object-position: 76% 10%; width: 100%; }

.fukutsu-staff-card h3, .fukutsu-store-card h3, .visit-steps h3, .visit-reasons h3 { font-family: "Noto Serif JP", serif; font-weight: 700; letter-spacing: .04em; }

@media (min-width: 768px) {
  .mv__top-area::after { width: 18.8rem; }
  .fukutsu-branch, .visit-focus { padding: 8rem 2.4rem; }
  .fukutsu-branch__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .visit-steps { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .visit-reasons ul { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .fukutsu-staff-card__body, .fukutsu-store-card__body { padding: 3rem; }

  .campaign30 { min-height: 0; }
  .campaign30__content { padding: 2.4rem 10rem; }
  .campaign30__badge { font-size: 1.6rem; padding: .45rem 2.2rem; }
  .campaign30__lead { font-size: 1.65rem; }
  .campaign30__offer span { font-size: 1.8rem; }
  .campaign30__offer strong { font-size: 8.2rem; }
  .campaign30__offer em { font-size: 3.4rem; }
  .campaign30__sub { font-size: 1.25rem; }

  .visit-contact { padding: 7rem 3rem 8rem; }
  .visit-contact__title { font-size: 4rem; }
  .visit-contact__lead { font-size: 1.6rem; }
  .visit-contact__form { padding: 4rem; }
  .visit-contact__fields { gap: 2.4rem 3rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visit-contact__field--wide { grid-column: 1 / -1; }
  .visit-contact__submit, .visit-contact__form input[type="submit"] { max-width: 48rem; }

  .cta { border-radius: 1.6rem; padding: 3.2rem 3rem 2.6rem; }
  .cta__top-content { margin-inline: auto; min-height: 12rem; padding-right: 17rem; width: min(100%, 78rem); }
  .cta__top-content::after { background-size: auto 18rem; border-radius: 9rem 9rem 0 0; bottom: -2rem; height: 15rem; right: 0; width: 15rem; }
  .cta__bubble-text { font-size: 1.55rem; margin-inline: 0; translate: 0; }
  .cta__heading { font-size: 3.3rem; margin-top: 1rem; text-align: left; }
  .cta__heading .gradation { font-size: 3.8rem; }
  .cta__heading .yellow { font-size: 3.8rem; }
  .cta__heading .small { font-size: 2.4rem; }
  .cta__button-content { grid-template-columns: minmax(0,1fr) 31rem; margin-top: 1.4rem; padding: 1.8rem; }
  .cta__tel { background: #fff; border: .2rem solid #d8bd6a; border-radius: 1rem; gap: 1.5rem; padding: 1rem 1.4rem; }
  .cta__tel-left { font-family: "Noto Sans JP", sans-serif; font-size: 1.6rem; }
  .cta__tel-left .large { color: #a91828; font-size: 2.6rem; }
  .cta__tel-right { padding-right: 0; }
  .cta__tel-top-text { background: #fff4c8; border-color: #8d701e; font-size: 1.1rem; padding: .2rem .8rem; }
  .cta__tel-number { color: #a91828; font-size: 4rem; margin-top: .7rem; }
  .cta__tel-bottom-text { font-size: 1.05rem; }
  .cta__travel-button { margin-left: 0; width: auto; }
  .cta-wrapper .cta__button-content { grid-template-columns: minmax(0,1fr) 29rem; }

  .cta-fixed__content { align-items: end; display: grid; grid-template-columns: minmax(0,65rem) 8.6rem; margin-inline: auto; padding: 1.2rem 0 0; width: 75rem; }
  .cta-fixed__button { width: auto; }
  .cta-fixed__link { background: #fffaf0; border-color: #d8bd6a; border-radius: 1.2rem 1.2rem 0 0; gap: 1.8rem; min-height: 8rem; padding: 1.5rem 2rem 1rem; }
  .cta-fixed__tag-text { font-size: 1.15rem; max-width: 38rem; translate: -50% -1.5rem; }
  .cta-fixed__text { color: #080f5a; font-size: 1.5rem; }
  .cta-fixed__text .large01 { font-size: 1.7rem; }
  .cta-fixed__text .large02 { color: #a91828; font-size: 2.5rem; }
  .cta-fixed__tel-text { color: #a91828; font-size: 3.8rem; }
  .cta-fixed__image { border-radius: 5rem 5rem 0 0; height: 11rem; position: relative; right: auto; width: 8.6rem; }
}
.tab__menu-item[hidden],
.tab__panel-box[hidden] {
  display: none !important;
}

.tab__price-text--compact {
  font-size: 1.8rem;
  letter-spacing: -0.08em;
  white-space: nowrap;
}

@media (min-width: 768px) {
  .tab__price-text--compact {
    font-size: 3rem;
  }
}
