/* Small accessibility and text-layout corrections; original visual design retained. */
img { height: auto; }
.mail-button-label { display: none; }
body.line-disabled .li_flex > a[href^="mailto:"] .mail-button-label { display: inline; }
body.line-disabled .li_flex:has(> .openModal_line) > a[href^="mailto:"]::after { content: none; }
.links_des .listdes .listtxt { overflow-wrap: anywhere; }
.links_des .listdes .listtxt .travel-time { white-space: nowrap; }
a:focus-visible, [role="button"]:focus-visible { outline: 3px solid #d28c00; outline-offset: 3px; }
.store-intro { padding: 16px 20px; background: white; font-size: 15px; line-height: 1.8; }
.terao-visit { padding: 36px 0; color: #100169; background: #fff9ec; }
.terao-visit-heading { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.terao-visit h2 { flex: 1; min-width: 0; margin: 0; font-size: 28px; font-weight: 700; line-height: 1.5; text-align: left; }
.terao-anniversary-badge { display: block; flex: 0 0 128px; width: 128px; height: auto; }
.terao-visit p { margin: 12px 0; font-size: 16px; line-height: 1.8; }
.terao-visit .terao-visit-location { margin-top: 24px; font-weight: 700; }
.terao-map-button { display: block; margin-top: 20px; padding: 16px 12px; border-radius: 6px; color: #fff; background: #100169; font-size: 16px; font-weight: 700; line-height: 1.6; text-align: center; }
.main_link ul li a span { padding-left: 48px; font-size: 23px; }
.main_link ul li:nth-child(4) a:before { width: 32px; height: 32px; background-image: url('../images/icon/ico_phone_wh.svg'); }
.company_box dd a { overflow-wrap: anywhere; }
.contact-sidebar { position: fixed; top: 90px; left: 1010px; z-index: 99; width: 400px; max-height: calc(100vh - 110px); overflow-y: auto; border-radius: 8px; background: #fff; }
.contact-sidebar .links_des { padding: 0; background: #fff; }
.contact-sidebar .links_des ul { padding: 32px 20px 24px; }
.contact-sidebar .estimateBox { padding: 24px 12px 16px; margin-top: 18px; }
.contact-sidebar .estimateBox .tit { font-size: 13px; letter-spacing: -.5px; height: 36px; padding: 0 12px; margin-top: -42px; }
.contact-sidebar .estimateBox dl { width: 100%; }
.contact-sidebar .estimateBox dl dt { width: 70px; margin-right: 12px; font-size: 14px; }
.contact-sidebar .estimateBox dl dd .txt01 .fsBig { font-size: 27px; }
.contact-sidebar .estimateBox dl dd .txt02 { font-size: 14px; }
.contact-sidebar .links_des .listbox { height: 90px; padding: 0 12px; }
.contact-sidebar .links_des .listico { width: 14px; flex: 0 0 14px; }
.contact-sidebar .links_des .listimg { width: 55px; flex: 0 0 55px; }
.contact-sidebar .links_des .listtit { display: block; font-size: 23px; font-weight: 700; }
.contact-sidebar .links_des .listtxt { display: block; margin-top: 4px; font-size: 13px; }
.contact-sidebar .links_des .listtxt span { font-size: 12px; }
.contact-sidebar .links_des .last04 .listtit { font-size: 21px; }
.contact-sidebar .links_des .pos01 { width: 58px; right: 9px; }
.mobile-contact-bar { display: none; }
@media (max-width: 767px) {
    .contact-sidebar { display: none; }
    .mobile-contact-bar { display: block; }
    #contents { padding-bottom: 92px; }
    .terao-visit-heading { gap: 12px; }
    .terao-visit h2 { font-size: clamp(18px, 5.6vw, 28px); }
    .terao-anniversary-badge { flex-basis: clamp(80px, 22.56vw, 128px); width: clamp(80px, 22.56vw, 128px); }
    .terao-map-button { font-size: 14px; }
    .main_link { top: auto; bottom: 0; left: 0; width: 100%; margin: 0; padding: 8px 8px max(8px, env(safe-area-inset-bottom)); border-top: 1px solid #ddd; border-radius: 0; }
    .main_link_tit { display: none; }
    .main_link ul { display: flex; gap: 6px; }
    .main_link ul li { flex: 1; min-width: 0; }
    .main_link ul li+li { margin-top: 0; }
    .main_link ul li a { border-bottom-width: 3px; }
    .main_link ul li a span { display: flex; align-items: center; justify-content: center; min-height: 64px; padding: 31px 2px 7px; font-size: clamp(10px, 3.05vw, 12px); line-height: 1.4; white-space: nowrap; }
    #wrapper .main_link ul li a:before { top: 9px; left: 50%; width: 20px; height: 20px; transform: translateX(-50%); background-size: contain; }
    #wrapper .pagetop { right: 10px; bottom: calc(100px + env(safe-area-inset-bottom)); }
}
@media (max-width: 359px) {
    .terao-visit-heading { gap: 8px; }
    body.line-disabled .li_flex:has(> .openModal_line) > a[href^="mailto:"] {
        font-size: 17px;
        gap: 6px;
    }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
