/* Keep the reference page's colors, spacing, layout and responsive artwork. */
html { scroll-behavior: smooth; }
body { overflow-x: clip; }
.elementor-section[id] { scroll-margin-top: 24px; }
.elementor-invisible { visibility: visible; }
:focus-visible { outline: 3px solid #71c0b4; outline-offset: 4px; }
.text-grad { background-color: #b2828b; }
.text-vdl { font-family: "vdl-penletter", "Yu Mincho", "Hiragino Mincho ProN", serif; }
/* FV only: retain the original photograph and soft coral brand palette. */
.elementor-5098 .elementor-element.otr-fv--desktop { padding: 42px 24px; }
.elementor-5098 .elementor-element.otr-fv--desktop > .elementor-background-overlay { background-image: linear-gradient(90deg, #fff9f4 0%, rgb(255 249 244 / 97%) 28%, rgb(255 249 244 / 88%) 42%, rgb(255 249 244 / 8%) 78%); opacity: 1; }
.otr-fv-inner { position: relative; max-width: 1140px; min-height: 570px; margin: 0 auto; display: flex; align-items: center; }
.otr-fv .otr-hero-contact { position: relative; width: 100%; max-width: 560px; padding: 0; color: #5e4e4a; font-family: "Zen Kaku Gothic New", sans-serif; }
.otr-fv .otr-hero-service { display: inline-block; margin: 0 0 12px; padding: 4px 12px; border-left: 3px solid #d4797c; background: rgb(255 255 255 / 85%); font-size: 18px; font-weight: 700; line-height: 1.5; }
.otr-fv .otr-hero-title { margin: 0 0 14px; color: #5e4e4a; font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif; font-size: clamp(28px, 3vw, 36px); font-weight: 600; font-style: normal; line-height: 1.55; letter-spacing: .01em; }
.otr-hero-title-break { display: inline; }
.otr-fv .otr-hero-description { max-width: 510px; margin: 0 0 14px; font-size: 16px; line-height: 1.75; }
.otr-hero-facts { padding: 10px 0; border-top: 1px solid #e7cfca; border-bottom: 1px solid #e7cfca; }
.otr-fv .otr-hero-area { display: flex; align-items: center; gap: 8px; margin: 0 0 3px; font-size: 16px; font-weight: 700; line-height: 1.6; }
.otr-hero-area i { flex: 0 0 auto; color: #aa585d; }
.otr-fv .otr-hero-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px; margin: 0; font-size: 16px; line-height: 1.45; }
.otr-hero-price strong { color: #a95058; font-size: 30px; font-weight: 700; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.otr-hero-price strong span { margin-left: 2px; font-size: 19px; }
.otr-hero-tax { font-size: 14px; }
.otr-fv .otr-hero-price-note { margin: 2px 0 0; font-size: 14px; line-height: 1.5; }
.otr-hero-actions { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 14px; }
.otr-fv .otr-hero-cta { display: flex; align-items: center; justify-content: center; gap: 12px; min-width: 0; min-height: 72px; padding: 11px 14px; border: 1px solid transparent; border-radius: 14px; font-size: 18px; font-weight: 700; line-height: 1.5; text-align: center; text-decoration: none; }
.otr-hero-cta i { flex: 0 0 auto; font-size: 24px; }
.otr-hero-cta-label, .otr-hero-cta-hours { display: block; }
.otr-hero-cta-hours { margin-top: 2px; font-size: 14px; font-weight: 500; line-height: 1.5; }
.otr-fv .otr-hero-cta--tel { background: #f69696; border-color: #e58a8a; color: #442d2d; box-shadow: 0 4px 12px rgb(168 83 86 / 16%); }
.otr-fv .otr-hero-cta--tel:hover { background: #ee8589; color: #442d2d; }
.otr-fv .otr-hero-cta--line { min-height: 66px; background: #fff; border-color: #80b89c; color: #006b35; font-size: 17px; }
.otr-fv .otr-hero-cta--line:hover { background: #f1f8f4; color: #005b2d; }
.otr-fv .otr-hero-reply-note { margin: 6px 0 0; font-size: 14px; line-height: 1.5; text-align: center; }
.otr-hero-details { margin-top: 12px; font-size: 14px; line-height: 1.6; }
.otr-hero-details p { margin: 0; }
.otr-hero-detail-links { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 3px; }
.otr-hero-details a { display: inline-flex; align-items: center; min-height: 32px; color: #7d464b; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.otr-reassurance { position: relative; padding: 32px 24px; background: #fffaf8; color: #5e4e4a; font-family: "Zen Kaku Gothic New", sans-serif; border-bottom: 1px solid #f2e3df; }
.otr-reassurance-inner { max-width: 1140px; margin: 0 auto; }
.otr-reassurance h2 { margin: 0 0 22px; color: #5e4e4a; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 25px; line-height: 1.5; text-align: center; letter-spacing: .04em; }
.otr-reassurance .otr-reassurance-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; list-style: none; margin: 0; padding: 0; }
.otr-reassurance-list li { display: flex; align-items: flex-start; gap: 12px; min-width: 0; margin: 0; }
.otr-reassurance-list i { display: flex; align-items: center; justify-content: center; flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; background: #fce5e2; color: #af666c; font-size: 20px; }
.otr-reassurance h3 { margin: 2px 0 6px; color: #5e4e4a; font-size: 16px; font-weight: 700; line-height: 1.5; letter-spacing: 0; }
.otr-reassurance p { margin: 0; font-size: 14px; line-height: 1.7; }
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-5098 .elementor-element.otr-fv--desktop { padding: 32px 24px; background-position: 58% center; }
  .otr-fv .otr-hero-contact { max-width: 520px; }
  .otr-reassurance .otr-reassurance-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .elementor-5098 .elementor-element.otr-fv-photo:not(.elementor-motion-effects-element-type-background) { height: 140px; min-height: 0; padding: 0; background-position: 62% 41%; background-size: cover; }
  .elementor-5098 .elementor-element.otr-fv-photo > .elementor-background-overlay { background-image: linear-gradient(180deg, rgb(255 244 229 / 0%) 55%, #fff4e5 100%); opacity: 1; }
  .elementor-5098 .elementor-element.otr-fv--mobile { padding: 0 16px 24px; background-color: #fff4e5; }
  .otr-fv--mobile .otr-hero-contact { max-width: 520px; margin: -16px auto 0; }
  .otr-fv .otr-hero-service { margin-bottom: 8px; padding: 3px 9px; font-size: 16px; }
  .otr-fv .otr-hero-title { margin-bottom: 8px; font-size: clamp(18px, 5.2vw, 26px); line-height: 1.4; letter-spacing: 0; }
  .otr-hero-title-break { display: inline; }
  .otr-hero-title br { display: inline; }
  .otr-fv .otr-hero-description { margin-bottom: 8px; font-size: 16px; line-height: 1.55; }
  .otr-hero-facts { padding: 8px 0; }
  .otr-fv .otr-hero-area { gap: 6px; font-size: 16px; }
  .otr-hero-price strong { font-size: 28px; }
  .otr-hero-actions { margin-top: 10px; gap: 10px; }
  .otr-fv .otr-hero-cta { gap: 8px; padding: 10px 8px; min-height: 70px; font-size: 16px; }
  .otr-fv .otr-hero-cta--line { min-height: 64px; font-size: 16px; }
  .otr-hero-details { margin-top: 10px; }
  .otr-hero-detail-links { gap: 2px 12px; }
  .otr-reassurance { padding: 26px 20px; }
  .otr-reassurance h2 { margin-bottom: 18px; font-size: 22px; }
  .otr-reassurance .otr-reassurance-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
  .otr-reassurance-list li { flex-direction: column; gap: 7px; }
  .otr-reassurance-list i { flex-basis: 34px; width: 34px; height: 34px; font-size: 18px; }
  .otr-reassurance h3 { margin-top: 0; }
}
@media (max-width: 767px) and (max-height: 740px) {
  .elementor-5098 .elementor-element.otr-fv-photo:not(.elementor-motion-effects-element-type-background) { height: 85px; background-position: 62% 43%; }
}
@media (max-width: 360px) {
  .elementor-5098 .elementor-element.otr-fv--mobile { padding-right: 16px; padding-left: 16px; }
  .otr-fv .otr-hero-area { align-items: flex-start; }
  .otr-fv .otr-hero-cta { gap: 6px; }
  .otr-fv .otr-hero-cta i { font-size: 20px; }
  .otr-reassurance .otr-reassurance-list { grid-template-columns: 1fr; gap: 18px; }
  .otr-reassurance-list li { flex-direction: row; gap: 12px; }
}
#area .otr-service-map { display: block; width: 75%; height: auto; margin: 0 auto; }
#area .otr-area-legend { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 14px 0 0; color: #5e4e4a; font-family: "Zen Kaku Gothic New", sans-serif; font-size: 1.4rem; font-weight: 600; line-height: 1.8; text-align: left; }
.otr-area-legend-swatch { flex: 0 0 14px; width: 14px; height: 14px; border: 1px solid #7c7c7c; background: #a0a0a0; }
.contact-form-note { font-size: 16px; color: #5e4e4a; text-align: center; line-height: 1.8; }
.wpcf7-form input:disabled, .wpcf7-form textarea:disabled { opacity: 1; background: #fff; color: #5e4e4a; cursor: default; }
#formbtn { text-align: center; text-decoration: none; line-height: 1.7; }
.otr-line-contact { width: 100%; padding: 20px 10px 8px; text-align: center; font-family: "Zen Kaku Gothic New", sans-serif; }
.otr-line-contact .otr-line-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: min(100%, 460px); min-height: 60px; padding: 16px 20px; border-radius: 45px; background: #00873e; color: #fff; font-size: 1.6rem; font-weight: 700; line-height: 1.6; text-decoration: none; }
.otr-line-contact .otr-line-button:hover { background: #006d31; color: #fff; }
.otr-line-contact .otr-line-button i { flex-shrink: 0; font-size: 28px; }
.otr-line-contact p { margin: 12px 0 0; color: #5e4e4a; font-size: 1.6rem; line-height: 1.8; }
#sp-fixed-menu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
#sp-fixed-menu a { display: flex; flex-direction: column; align-items: center; justify-content: center; width: auto; min-width: 0; font-size: 1.4rem; line-height: 1.5; overflow-wrap: anywhere; }
#sp-fixed-menu .otr-line-fixed { background: #00873e; color: #fff; }
#sp-fixed-menu .otr-line-fixed:hover { background: #006d31; color: #fff; }
#sp-fixed-menu .otr-line-fixed:focus-visible { outline-color: #5e4e4a; outline-offset: -4px; }
#mobile-nav, #sidr-close { display: none; }
#scroll-top { opacity: 0; visibility: hidden; transition: opacity .2s; display: block; }
#scroll-top.is-visible { opacity: 1; visibility: visible; }
.menu-scrim { position: fixed; inset: 0; z-index: 10001; background: rgb(45 37 40 / 35%); }
body.mobile-menu-open { overflow: hidden; }
body.mobile-menu-open #mobile-nav { display: block; position: fixed; top: 60px; right: 0; bottom: 0; width: min(320px, 88vw); overflow-y: auto; padding: 12px 22px 90px; z-index: 10003; background: white; }
body.mobile-menu-open #sidr-close { display: block; position: fixed; top: 0; right: 0; width: min(320px, 88vw); height: 60px; z-index: 10004; background: #f2f2f2; }
#sidr-close .toggle-sidr-close { display: flex; align-items: center; justify-content: flex-end; height: 60px; gap: 10px; padding: 0 22px; color: #5e4e4a; }
#mobile-nav ul { list-style: none; margin: 0; }
#mobile-nav ul li { display: block; float: none; border-bottom: 1px solid #eee; }
#mobile-nav ul li a { display: block; padding: 17px 0; color: #5e4e4a; font-family: "Zen Kaku Gothic New", sans-serif; font-size: 16px; line-height: 1.7; }
.otr-lightbox { max-width: 94vw; max-height: 94dvh; padding: 45px 12px 12px; border: 0; background: white; border-radius: 6px; }
.otr-lightbox::backdrop { background: rgb(0 0 0 / 75%); }
.otr-lightbox img { display: block; max-height: 80dvh; max-width: 88vw; width: auto; object-fit: contain; }
.otr-lightbox .close-image { position: absolute; top: 0; right: 0; width: 44px; height: 44px; padding: 0; background: white; color: #5e4e4a; font-size: 28px; }
@media (max-width: 1100px) and (min-width: 768px) {
  #site-navigation-wrap { display: none; }
  .oceanwp-mobile-menu-icon { display: block; }
}
@media (max-width: 767px) {
  #area .otr-service-map { width: 100%; }
  #site-logo { max-width: calc(100% - 68px); }
  #site-logo #site-logo-inner a img { max-width: 100%; }
  .elementor-widget-text-editor { overflow-wrap: anywhere; }
}
@media (max-width: 767px) {
  #sp-fixed-menu { margin: 0; left: 0; bottom: 0; width: 100%; padding-bottom: env(safe-area-inset-bottom); background: #fff; }
  #sp-fixed-menu.otr-fixed-cta--at-top { visibility: hidden; opacity: 0; pointer-events: none; }
  #sp-fixed-menu a { min-height: 6.8rem; }
  body { padding-bottom: calc(7rem + env(safe-area-inset-bottom)); }
  .inquiry input, .inquiry textarea { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
