.rt-block.totop a#gantry-totop {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 80px;
  height: 80px;
  padding: 12px;
  border-radius: 50%;
  line-height: 1;
  text-align: center;
}

:root {
  --site-text: #555;
  --site-link: #9b4316;
  --site-surface: #f8f8f8;
  --site-focus: #8c3e13;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { color: var(--site-text); }
::selection { background: #f8d6bd; color: #42200c; }
#body-wrapper :is(h1, h2, h3, h4, h5, h6) {
  color: var(--site-text);
  letter-spacing: normal;
  line-height: 1.35;
}
#body-wrapper :is(a, button, select):focus-visible {
  outline: 2px solid var(--site-focus) !important;
  outline-offset: 4px;
}
body a { color: var(--site-link); text-underline-offset: 3px; }
body a:hover { color: #6f2d0d; }
#body-wrapper a.phone-link { color: inherit; white-space: normal; overflow-wrap: normal; }
#topHeader .mainPhone .phone { display: block; max-width: 100%; }
#body-wrapper a.phone-link:hover { text-decoration: underline; }
#rt-mainbody, #rt-sidebar-a, #rt-sidebar-b, .flex-caption {
  color: var(--site-text);
  overflow-wrap: anywhere;
}
#body-wrapper .flex-caption h4 { color: var(--site-text); }
#body-wrapper .module-title h2.title { color: var(--site-text); line-height: 1.4; }
#rt-mainbody td { color: #444; }
#rt-footer .rt-container > span { color: var(--site-text); }
#body-wrapper a#gantry-totop { color: var(--site-link); }
a.moduleItemReadMore:hover, a.moduleCustomLink:hover, a.k2ReadMore:hover {
  color: #fff;
  background: var(--site-link);
}
.skip-link { position: fixed; top: 8px; left: 8px; transform: translateY(-200%); z-index: 10000; padding: 12px 18px; background: #fff; }
.skip-link:focus { transform: none; outline: 2px solid var(--site-focus); }
#rt-mainbody:focus { outline: none; }

/* Keep the original desktop navigation; use a full-width native selector below it. */
#rt-header .rt-grid-10 { width: 100% !important; }
ul.sf-menu > li > .nav-toggle {
  appearance: none;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  padding: 25px 17px 0;
  margin: 0;
  font: 16px/20px "Trebuchet MS", Arial, sans-serif;
  color: var(--site-link);
  text-transform: lowercase;
  cursor: pointer;
  min-height: 45px;
}
#body-wrapper ul.sf-menu > li > a { color: var(--site-link); }
html.nav-ready #body-wrapper ul.sf-menu > li > ul {
  display: block;
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  top: 100%;
  left: 0;
  min-width: 190px;
  z-index: 100;
  background: #fff;
  padding: 8px 0;
  box-shadow: 0 6px 16px rgb(0 0 0 / 15%);
}
html.nav-ready #body-wrapper ul.sf-menu > li[data-open="true"] > ul {
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
}
#body-wrapper ul.sf-menu ul > li > a {
  color: var(--site-link);
  padding: 10px 14px;
  margin: 0;
  line-height: 24px;
  border: 0;
}
#body-wrapper ul.sf-menu ul > li > a:hover { color: #fff; background: var(--site-link); }
#body-wrapper .select-menu {
  display: none;
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  font: 16px/1.4 Arial, sans-serif;
  color: var(--site-text);
  background: #fff;
  border: 1px solid #aaa;
  border-radius: 3px;
}

/* Ordinary links remain available until enhanced navigation is fully ready. */
html:not(.nav-ready) #body-wrapper .sf-menu { display: flex; flex-wrap: wrap; gap: 12px; float: none; }
html:not(.nav-ready) #body-wrapper .sf-menu > li { float: none; margin: 0; }
html:not(.nav-ready) #body-wrapper .sf-menu > li > ul { position: static; visibility: visible; opacity: 1; width: auto; }
html:not(.nav-ready) #body-wrapper .sf-menu .nav-toggle { cursor: default; }
html:not(.nav-ready) #body-wrapper .sf-menu :is(a, .nav-toggle) { padding: 10px 12px; }

/* Existing contact columns and image galleries may shrink with their container. */
.contact-column { width: 340px; max-width: 100%; float: left; }
.contact-column:nth-of-type(2), .contact-column:last-child { float: right; }
.contact-column p { overflow-wrap: normal; }
#rt-mainbody .gal { max-width: 100%; }
#rt-mainbody .sigProImg { object-fit: cover; }
#rt-mainbody .gal .sigProImg { width: 70px !important; height: 70px !important; }
#rt-mainbody .sigProLink > .sigProImg { width: 100% !important; height: 100% !important; }
#rt-mainbody .sigProContainer { max-width: 100%; }
.flex-control-nav { display: flex; gap: 4px; }
.flex-control-nav li { margin: 0; float: none; }
#body-wrapper .flex-control-nav li a {
  box-sizing: border-box; width: 44px; height: 44px; cursor: pointer;
  border: 0; border-radius: 0; background: none;
}
#body-wrapper .flex-control-nav li a::before {
  content: ''; position: absolute; width: 15px; height: 15px;
  border: 1px solid #888; border-radius: 50%; left: 13px; top: 13px;
}
#body-wrapper .flex-control-nav li a::after {
  width: 9px; height: 9px; left: 17px; top: 17px; background: transparent; transition: none;
}
#body-wrapper .flex-control-nav li a.active::after { background: var(--site-link); }

/* Accessible gallery: native modal focus containment, full-sized originals on demand. */
.gallery-viewer {
  box-sizing: border-box;
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(960px, calc(100% - 32px));
  height: min(800px, calc(100dvh - 32px));
  max-height: calc(100dvh - 32px);
  padding: 20px;
  border: 0;
  background: var(--site-surface);
  color: var(--site-text);
  box-shadow: 0 12px 40px rgb(0 0 0 / 25%);
  overflow: auto;
}
.gallery-viewer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 12px; }
.gallery-viewer::backdrop { background: rgb(0 0 0 / 78%); }
.gallery-viewer__media { position: relative; min-height: 0; }
.gallery-viewer img { display: block; margin: 0; width: 100%; height: 100% !important; max-height: 100%; object-fit: contain; }
.gallery-viewer__retry { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.gallery-viewer [hidden] { display: none !important; }
.gallery-viewer button { min-height: 44px; padding: 10px 16px; font: inherit; background: #fff; color: var(--site-link); border: 1px solid #aaa; cursor: pointer; }
.gallery-viewer button:focus-visible, .gallery-viewer a:focus-visible { outline: 2px solid var(--site-focus); outline-offset: 3px; }
.gallery-viewer button:disabled { opacity: .5; cursor: default; }
.gallery-viewer__top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.gallery-viewer__controls { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.gallery-viewer__status { margin: 0; text-align: center; }
.gallery-open { overflow: hidden; }

@media (max-width: 1023px) {
  #rt-header .rt-grid-10 { margin: 12px 0 20px; }
  html.nav-ready #body-wrapper .sf-menu { display: none !important; }
  html.nav-ready #body-wrapper .select-menu { display: block; margin: 0; }
  html:not(.nav-ready) #body-wrapper .sf-menu { flex-direction: column; }
  #topHeader .mainPhone { max-width: 100%; }
  #topHeader .mainPhone .adr { color: var(--site-text); }
}
@media (max-width: 767px) {
  #body-wrapper .flex-control-nav { left: auto; right: 12px; margin-left: 0 !important; }
  #rt-mainbody.home-content h2:first-child { font-size: 24px; line-height: 1.35; }
  #rt-mainbody .img404 { float: none; width: min(160px, 100%); margin: 0 auto 20px; }
  #rt-mainbody .text404 { clear: both; }
  #rt-mainbody, #rt-sidebar-a, #rt-sidebar-b { font-size: 16px; line-height: 1.6; }
  #rt-mainbody :is(p, td), #rt-sidebar-a p, #rt-sidebar-b p { font-size: inherit; line-height: inherit; }
  #body-wrapper .module-title h2.title { font-size: 22px; line-height: 1.35; margin-bottom: 20px; }
  .contact-column, .contact-column:nth-of-type(2), .contact-column:last-child { width: 100%; float: none; }
  .contact-column { margin-bottom: 24px; }
  #rt-mainbody table { width: 100%; }
  #rt-mainbody td { padding: 8px; }
  #rt-mainbody td.aligncenter { min-width: 5.5em; }
  #rt-footer .rt-container > span { display: block; float: none !important; font-size: 16px !important; line-height: 1.5 !important; text-align: left !important; }
  #rt-footer .rt-container > span:has(.phone-link) { margin-top: 12px; font-size: 24px !important; }
  #rt-mainbody .sigProContainer:not(.gal .sigProContainer) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  #rt-mainbody .sigProContainer:not(.gal .sigProContainer) .sigProThumb { margin: 0; float: none; }
  #rt-mainbody .sigProContainer:not(.gal .sigProContainer) :is(.sigProLinkOuterWrapper, .sigProLinkWrapper) { display: block; float: none; margin: 0; box-sizing: border-box; }
  #rt-mainbody .sigProContainer:not(.gal .sigProContainer) .sigProLinkOuterWrapper { padding: 0; background: none; }
  #rt-mainbody .sigProContainer:not(.gal .sigProContainer) .sigProClear { display: none; }
  #rt-mainbody .sigProContainer:not(.gal .sigProContainer) .sigProLink { width: 100% !important; height: auto !important; aspect-ratio: 1; }
  .gallery-viewer { padding: 12px; }
  .gallery-viewer__controls { flex-wrap: wrap; }
  .gallery-viewer__status { width: 100%; order: -1; }
}

/* Emil / animate: short feedback and spatial transitions, original layout intact. */
:root { --ease-out: cubic-bezier(.23, 1, .32, 1); }
/* Reserve the first slide before window.load; inline slider states take over. */
#flexslider .slides > li:first-child { display: block; }
/* Detail links inherit the existing section heading typography. */
#rt-mainbody .seo-detail-link { color: inherit; font: inherit; }
#rt-mainbody .seo-detail-link:hover { text-decoration: underline; }
.seo-related { clear: both; margin-top: 24px; }
.seo-related ul { padding-left: 20px; }
.seo-related li { margin: 8px 0; }
html.motion-ready.nav-ready #body-wrapper .sf-menu > li > ul {
  transform-origin: 18px 0;
  transform: translateY(-4px) scale(.97);
  transition: opacity 150ms var(--ease-out), transform 150ms var(--ease-out), visibility 0s 150ms;
}
html.motion-ready.nav-ready #body-wrapper .sf-menu > li[data-open="true"] > ul {
  transform: none;
  transition: opacity 180ms var(--ease-out), transform 180ms var(--ease-out), visibility 0s;
}

/* A stable link hit area; only its picture responds to hover. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html.motion-ready #rt-mainbody .sigProLink > .sigProImg { transition: transform 180ms var(--ease-out); }
  html.motion-ready:not([data-motion-input="keyboard"]) #rt-mainbody .sigProLink:hover > .sigProImg { transform: translateY(-3px); }
}
@media (prefers-reduced-motion: no-preference) {
html.motion-ready[data-motion-input="pointer"] :where(a.k2ReadMore, a.moduleItemReadMore, a.moduleCustomLink, #gantry-totop, .gallery-viewer button) {
  transition: transform 100ms var(--ease-out);
}
html.motion-ready[data-motion-input="pointer"] :where(a.k2ReadMore, a.moduleItemReadMore, a.moduleCustomLink, #gantry-totop, .gallery-viewer button):not(:disabled):active {
  transform: scale(.97);
  transition-duration: 140ms;
}
/* The retry button already uses a translate for centering: compose, don't overwrite. */
html.motion-ready[data-motion-input="pointer"] .gallery-viewer__retry:not(:disabled):active { transform: translate(-50%, -50%) scale(.97); }

}

/* Native dialog owns focus/closing. Discrete transitions keep only the rendering
   alive during exit; no timers, delayed close(), or replacement focus management. */
@supports (transition-behavior: allow-discrete) {
  html.motion-ready .gallery-viewer {
    opacity: 0;
    transform: scale(.96);
    transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out), overlay 200ms allow-discrete, display 200ms allow-discrete;
  }
  html.motion-ready .gallery-viewer[open] { opacity: 1; transform: none; }
  html.motion-ready .gallery-viewer::backdrop {
    opacity: 0;
    transition: opacity 200ms var(--ease-out), overlay 200ms allow-discrete, display 200ms allow-discrete;
  }
  html.motion-ready .gallery-viewer[open]::backdrop { opacity: 1; }
  @starting-style {
    html.motion-ready .gallery-viewer[open] { opacity: 0; transform: scale(.96); }
    html.motion-ready .gallery-viewer[open]::backdrop { opacity: 0; }
  }
}

/* Gentle fades for reduced motion, immediate state changes for keyboard actions. */
@media (prefers-reduced-motion: reduce) {
  html.motion-ready.nav-ready #body-wrapper .sf-menu > li > ul,
  html.motion-ready.nav-ready #body-wrapper .sf-menu > li[data-open="true"] > ul {
    transform: none;
    transition: opacity 100ms var(--ease-out), visibility 0s 100ms;
  }
  html.motion-ready.nav-ready #body-wrapper .sf-menu > li[data-open="true"] > ul { transition-delay: 0s; }
  html.motion-ready .gallery-viewer { transform: none; transition-duration: 100ms; }
  html.motion-ready .gallery-viewer::backdrop { transition-duration: 100ms; }
  @starting-style { html.motion-ready .gallery-viewer[open] { transform: none; } }
}
html.motion-ready[data-motion-input="keyboard"].nav-ready #body-wrapper .sf-menu > li > ul,
html.motion-ready[data-motion-input="keyboard"] #rt-mainbody .sigProLink > .sigProImg,
html.motion-ready[data-motion-input="keyboard"] .gallery-viewer {
  transition: none;
  transform: none;
}
html.motion-ready[data-motion-input="keyboard"] .gallery-viewer::backdrop { transition: none; }
@starting-style {
  html.motion-ready[data-motion-input="keyboard"] .gallery-viewer[open] { opacity: 1; transform: none; }
  html.motion-ready[data-motion-input="keyboard"] .gallery-viewer[open]::backdrop { opacity: 1; }
}
