/* Accessible shared corrections; original published layout remains source content. */
:root { color-scheme: light; --focus: #155eef; --ink: #202124; --surface: #fff; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
body { margin: 0; color: var(--ink); background: var(--surface); font: 1rem/1.7 system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; overflow-wrap: anywhere; }
img, video, iframe, svg { max-width: 100%; }
img { height: auto; }
iframe { border: 0; }
main, article, .site-main, .entry-content { min-width: 0; }
a { text-underline-offset: .15em; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
button, input, textarea, select { font: inherit; }
button, [role="button"], a { touch-action: manipulation; }
button { min-height: 2.75rem; cursor: pointer; }
.static-submenu-toggle { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 1.5rem !important; min-width: 1.5rem !important; max-width: 1.5rem !important; height: 1.5rem !important; min-height: 1.5rem !important; max-height: 1.5rem !important; margin-inline-start: .25rem !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; color: #285c8f !important; vertical-align: middle; }
.static-submenu-toggle::after { display: block; width: .42rem; height: .42rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; content: ""; transform: translateY(-.1rem) rotate(45deg); transition: transform .15s ease; }
.static-submenu-toggle[aria-expanded="true"]::after { transform: translateY(.1rem) rotate(225deg); }
.static-submenu-toggle:focus-visible { outline: 3px solid #172d55 !important; outline-offset: 2px; }
.static-submenu-parent { position: relative !important; }
.static-submenu-toggle[aria-expanded="true"] + ul[data-static-submenu] { display: block !important; position: absolute !important; inset-block-start: 100% !important; inset-inline-start: 0 !important; z-index: 1001 !important; width: max-content !important; min-width: 12rem !important; max-width: min(22rem, 90vw) !important; height: auto !important; max-height: none !important; margin: 0 !important; padding: .35rem 0 !important; overflow: visible !important; visibility: visible !important; opacity: 1 !important; background: #fff !important; box-shadow: 0 4px 12px rgb(0 0 0 / .16); }
.static-submenu-toggle[aria-expanded="true"] + ul[data-static-submenu] > li,
.static-submenu-toggle[aria-expanded="true"] + ul[data-static-submenu] > li > a { display: block !important; visibility: visible !important; opacity: 1 !important; }
table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
pre, code { white-space: pre-wrap; overflow-wrap: anywhere; }
.contact-field { margin: 1rem 0; }
.contact-field > label, .contact-field legend { display: block; font-weight: 700; }
.contact-field input:not([type=checkbox]), .contact-field textarea, .contact-challenge input { display: block; width: min(100%, 42rem); padding: .65rem; border: 1px solid #687078; border-radius: .2rem; }
.contact-field fieldset { border: 1px solid #aab0b6; padding: 1rem; }
.contact-field .choice { display: inline-flex; gap: .35rem; align-items: center; margin: .35rem .8rem .35rem 0; }
.contact-consent { display: flex; gap: .6rem; align-items: center; }
.contact-challenge { display: grid; gap: .5rem; justify-items: start; margin: 1.2rem 0; }
.contact-challenge img { min-height: 2rem; }
.contact-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-status { min-height: 1.7em; }
[hidden] { display: none !important; }
/* Some captured themes use Bootstrap's .collapse display:none rule, which
   does not consult the browser's native hidden state. */
.collapse[data-static-menu].show { display: block !important; height: auto !important; visibility: visible !important; }
.elementor-nav-menu--dropdown[data-static-menu].show { display: block !important; position: static !important; inset: auto !important; width: 100% !important; max-width: 100% !important; height: auto !important; overflow: visible !important; visibility: visible !important; opacity: 1 !important; transform: none !important; }
.elementor-nav-menu--dropdown[data-static-menu] ul { display: block; width: 100%; max-width: 100%; }
.static-native-menu-root .static-menu-toggle { color: #4d4025 !important; }
.static-native-menu-root .static-menu-toggle .static-menu-icon { position: relative; display: block; width: 1.5rem; height: 2px; margin: auto; border-radius: 2px; background: #4d4025; }
.static-native-menu-root .static-menu-toggle .static-menu-icon::before, .static-native-menu-root .static-menu-toggle .static-menu-icon::after { position: absolute; left: 0; display: block; width: 1.5rem; height: 2px; border-radius: 2px; background: #4d4025; content: ""; transition: transform .16s ease, top .16s ease; }
.static-native-menu-root .static-menu-toggle .static-menu-icon::before { top: -.45rem; }
.static-native-menu-root .static-menu-toggle .static-menu-icon::after { top: .45rem; }
.static-native-menu-root .static-menu-toggle[aria-expanded="true"] .static-menu-icon { background: transparent; }
.static-native-menu-root .static-menu-toggle[aria-expanded="true"] .static-menu-icon::before { top: 0; transform: rotate(45deg); }
.static-native-menu-root .static-menu-toggle[aria-expanded="true"] .static-menu-icon::after { top: 0; transform: rotate(-45deg); }
.oot-mobile-menu-toggle { background: #fff !important; }
.static-mobile-menu-panel[hidden] { display: none !important; }
.elementor-tab-content.static-expanded { display: block !important; }
.static-embed-wrapper { width: 100%; max-width: 100%; margin-inline: auto; }
.static-embed-wrapper iframe { display: block; width: 100%; max-width: 100%; }
.static-embed-youtube { aspect-ratio: 16 / 9; }
.static-embed-youtube iframe { height: 100%; min-height: 15rem; }
.static-embed-facebook iframe { min-height: 30rem; }
.static-facebook-single { width: 100%; max-width: 500px; margin-inline: auto; overflow: hidden; }
.static-facebook-single iframe { display: block; width: 100% !important; max-width: 500px !important; height: 620px !important; min-height: 30rem; margin-inline: auto; border: 0 !important; }
.static-embed-maps iframe { min-height: 20rem; }
.static-avatar-placeholder { display: inline-block; flex: none; min-width: 2rem; min-height: 2rem; border-radius: 50%; background: #e8eaed; }
.static-gallery-dialog { width: min(96vw, 72rem); max-width: 96vw; max-height: 94vh; padding: 1rem; border: 0; color: #202124; background: #fff; }
.static-gallery-dialog::backdrop { background: rgb(0 0 0 / .82); }
.static-gallery-dialog figure { margin: .5rem 0; text-align: center; }
.static-gallery-dialog img { display: block; max-width: 100%; max-height: 76vh; width: auto; margin: auto; object-fit: contain; }
.static-gallery-dialog button { margin: .25rem; }
.static-native-sticky[data-static-sticky="top"] { top: 0 !important; z-index: 1000; }
@media (min-width: 1025px) { .static-native-sticky.static-sticky-desktop[data-static-sticky="top"] { position: sticky !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .static-native-sticky.static-sticky-tablet[data-static-sticky="top"] { position: sticky !important; } }
@media (max-width: 767px) { .static-native-sticky.static-sticky-mobile[data-static-sticky="top"] { position: sticky !important; } }
.static-native-slideshow { position: relative; isolation: isolate; }
.static-native-slideshow::before, .static-native-slideshow::after { position: absolute; z-index: 0; inset: 0; display: block; background-position: center; background-size: cover; background-repeat: no-repeat; content: ""; pointer-events: none; transition: opacity var(--static-slide-transition, 2000ms) ease; }
.static-native-slideshow::before { background-image: var(--static-slide-a); opacity: var(--static-slide-a-opacity, 1); }
.static-native-slideshow::after { background-image: var(--static-slide-b); opacity: var(--static-slide-b-opacity, 0); }
.static-native-slideshow > * { position: relative; z-index: 1; }
.static-native-slideshow > .static-slideshow-toggle { position: absolute; z-index: 2; inset-inline-end: 1rem; inset-block-end: 1rem; max-width: calc(100% - 2rem); padding: .55rem .8rem; border: 1px solid #342c20; border-radius: .2rem; background: #fff; color: #342c20; font: inherit; cursor: pointer; }
.static-native-slideshow > .static-slideshow-toggle:focus-visible { outline: 3px solid #172d55; outline-offset: 3px; }
html[data-site-domain="miraico.com"] .static-native-slideshow > button.static-slideshow-toggle,
html[data-site-domain="miraico.com"] .static-native-slideshow > button.static-slideshow-toggle:hover,
html[data-site-domain="miraico.com"] .static-native-slideshow > button.static-slideshow-toggle:focus,
html[data-site-domain="miraico.com"] .static-native-slideshow > button.static-slideshow-toggle:focus-visible { background: #fff !important; color: #342c20 !important; }
@media (max-width: 48rem) {
  body { font-size: 1rem; }
  html[data-site-domain="katoko.jp"] .header__read { position: static !important; inset: auto !important; transform: none !important; float: none !important; clear: both !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; box-sizing: border-box !important; text-align: left !important; }
  .static-native-menu-root { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  .static-native-menu-root > .elementor-widget-container { display: flex !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; justify-content: flex-end; }
  .static-native-menu-root.elementor-widget-soft-template-nav-menu { width: 2.75rem !important; max-width: 2.75rem !important; min-width: 2.75rem !important; --container-widget-width: 2.75rem !important; }
  .static-native-menu-root .static-menu-toggle { display: inline-grid !important; place-items: center !important; flex: 0 1 2.75rem !important; width: 2.75rem !important; min-width: 2.75rem !important; max-width: 100% !important; height: 2.75rem !important; min-height: 2.75rem !important; padding: 0 !important; background: #fff !important; border: 1px solid #d4cbbd !important; border-radius: .2rem !important; }
  .oot-mobile-menu-toggle { border: 1px solid #d4cbbd !important; border-radius: .2rem !important; }
  .elementor-118 .elementor-element.elementor-element-596ebd7 { width: 100% !important; max-width: 100% !important; min-width: 0 !important; --container-widget-width: 100% !important; }
  .elementor-118 .elementor-element.elementor-element-596ebd7 > .elementor-widget-container { width: 100% !important; max-width: 100% !important; min-width: 0 !important; margin: 0 !important; padding-inline: 0 !important; }
  .static-mobile-menu-panel:not([hidden]) { position: fixed !important; z-index: 2147483000 !important; inset-block: var(--static-menu-top, 4rem) 0 !important; inset-inline: 0 !important; display: block !important; width: auto !important; min-width: 0 !important; max-width: none !important; height: auto !important; max-height: none !important; margin: 0 !important; padding: .75rem 1rem max(1rem, env(safe-area-inset-bottom)) !important; overflow-x: hidden !important; overflow-y: auto !important; visibility: visible !important; opacity: 1 !important; transform: none !important; border-top: 1px solid #eee8dc; background: #fff !important; color: #342c20 !important; box-shadow: 0 8px 18px rgb(0 0 0 / .16); }
  .static-mobile-menu-panel > ul { display: block !important; width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; list-style: none !important; }
  .static-mobile-menu-panel > ul > li { display: block !important; width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; }
  html[data-site-domain="miraico.com"] .static-mobile-menu-panel .current-menu-item > a,
  html[data-site-domain="miraico.com"] .static-mobile-menu-panel .current_page_item > a { color: #fff !important; }
  .static-mobile-menu-panel li.static-submenu-parent { position: static !important; }
  .static-mobile-menu-panel .static-submenu-toggle[aria-expanded="true"] + ul[data-static-submenu] { position: static !important; inset: auto !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; margin: 0 !important; padding: .25rem 0 .25rem 1rem !important; box-shadow: none !important; }
  .static-mobile-menu-panel a { display: block !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; padding: .8rem .35rem !important; overflow-wrap: anywhere !important; color: #342c20 !important; font-size: 1rem !important; line-height: 1.5 !important; text-decoration: none !important; border-bottom: 1px solid #eee8dc; }
  .static-mobile-menu-panel[data-static-desktop-nav="true"]:not([hidden]) * { visibility: visible !important; opacity: 1 !important; transform: none !important; }
  .elementor-container, .elementor-column-wrap, .elementor-widget-wrap, .panel-grid, .site-content, .content-area { max-width: 100%; min-width: 0; }
  .elementor-column, .panel-grid-cell { min-width: 0; width: 100%; }
  .elementor-widget-wrap { padding-inline: min(4vw, 1rem) !important; }
  nav ul { flex-wrap: wrap; }
}
@media (min-width: 48.001rem) {
  .static-mobile-menu-panel[data-static-desktop-nav="true"]:not([hidden]) { position: static !important; z-index: auto !important; inset: auto !important; display: flex !important; width: auto !important; min-width: 0 !important; max-width: none !important; height: auto !important; max-height: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; visibility: visible !important; opacity: 1 !important; transform: none !important; border: 0 !important; background: transparent !important; color: inherit !important; box-shadow: none !important; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* Retained theme rules sometimes suppress focus outlines on the rebuilt form. */
body form.static-contact-form input:focus-visible,
body form.static-contact-form textarea:focus-visible,
body form.static-contact-form select:focus-visible,
body form.static-contact-form button:focus-visible {
  outline: 3px solid #155eef !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 2px #fff !important;
}
.static-card-title-link { color: inherit; text-decoration: inherit; }
.static-article-title { font-size: 1.5em; line-height: 1.3; }
