/* Owner-local composition. No shared defaults, homepage selectors or tokens. */
.dillon-interior .dillon-contact-conversion-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:64px; }
.dillon-interior .dillon-contact-conversion-details,.dillon-interior .dillon-contact-conversion-form { min-width:0; }
/* Include native saved-container/editor previews without requiring a page shell. */
.elementor .dillon-contact-conversion-form .dillon-interior-lead { background:#fff; }
/* contact-form-sizing:start */
/* Elementor's legacy widget-container reserves 100% height. The visible card,
   not that percentage wrapper or flex/grid stretching, owns Contact's height.
   Semantic ownership also covers existing saved/editor instances with new IDs.
   Native Contact section padding owns the single 48px interval to the footer. */
.elementor .elementor-element.dillon-contact-conversion-columns { height:auto; min-height:0; grid-template-rows:none; grid-auto-rows:auto; }
.elementor .elementor-element.dillon-contact-conversion-form,
.elementor .dillon-contact-conversion-form > .elementor-widget-sher-dillon-interior-lead,
.elementor .dillon-contact-conversion-form > .elementor-widget-sher-dillon-interior-lead > .elementor-widget-container,
.elementor .dillon-contact-conversion-form .sher-widget-dillon-interior-lead {
  height:auto; min-height:0; max-height:none; width:100%; min-width:0; max-width:100%;
  box-sizing:border-box; flex:0 0 auto; overflow:visible; margin:0; padding:0;
}
.elementor .elementor-element.dillon-contact-conversion-form {
  align-self:start; flex-wrap:nowrap; align-items:stretch; align-content:start;
  --container-widget-height:auto; --container-widget-width:100%; --container-widget-flex-grow:0;
}
/* Only the card's outer sizing changes; its surface and every internal rule stay. */
.elementor .dillon-contact-conversion-form .dillon-interior-lead {
  height:auto; min-height:0; max-height:none; width:100%; box-sizing:border-box; overflow:visible;
}
/* contact-form-sizing:end */
.dillon-interior .dillon-contact-conversion-contact .dillon-interior-heading h1 { font-size:clamp(2.5rem,4vw,4rem); }
.dillon-interior .dillon-contact-conversion-details .dillon-interior-heading h2 { font-size:clamp(1.75rem,2.5vw,2.25rem); }
/* Contact facts only. Inline-size queries follow the actual details column,
   not the viewport: stack before the device links become cramped. */
.dillon-interior .dillon-contact-conversion-details { container: dillon-contact-details / inline-size; }
.dillon-interior .dillon-contact-conversion-facts { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto; grid-auto-rows:auto; gap:16px; width:100%; min-width:0; }
.dillon-interior .dillon-contact-conversion-facts .dillon-contact-fact-card { min-width:0; max-width:100%; align-items:stretch; box-shadow:0 4px 16px rgba(13,36,64,.04); }
.dillon-interior .dillon-contact-conversion-facts .dillon-contact-fact-hours { grid-column:1 / -1; }
.dillon-interior .dillon-contact-conversion-facts .dillon-contact-fact-header { min-width:0; }
.dillon-interior .dillon-contact-conversion-facts .dillon-contact-fact-icon { flex:0 0 40px; width:40px; }
.dillon-interior .dillon-contact-conversion-facts .dillon-contact-fact-icon .elementor-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:8px; background:#fff; }
.dillon-interior .dillon-contact-conversion-facts .dillon-contact-fact-label { width:auto; min-width:0; }
.dillon-interior .dillon-contact-conversion-facts .dillon-contact-fact-label .elementor-heading-title { margin:0; }
.dillon-interior .dillon-contact-conversion-facts .dillon-native-action { min-width:0; max-width:100%; }
.dillon-interior .dillon-contact-conversion-facts .dillon-native-action .elementor-button { display:block; max-width:100%; padding:0; background:transparent; font-weight:500; text-transform:none; text-align:left; text-decoration:none; white-space:normal; overflow-wrap:anywhere; word-break:normal; }
.dillon-interior .dillon-contact-conversion-facts .dillon-native-action .elementor-button:is(:hover,:focus,:focus-visible) { text-decoration:none; }
.dillon-interior .dillon-contact-conversion-facts .elementor-button-content-wrapper { display:block; min-width:0; }
.dillon-interior .dillon-contact-conversion-facts .elementor-button-text { display:block; min-width:0; white-space:normal; overflow-wrap:anywhere; }
.dillon-interior .dillon-contact-conversion-facts .elementor-button:focus-visible { outline:3px solid #c43322; outline-offset:5px; border-radius:2px; }
/* Contact methods, not the non-interactive hours card. Keep all geometry fixed. */
.dillon-interior .dillon-contact-conversion-facts :is(.dillon-contact-fact-phone,.dillon-contact-fact-email) {
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.dillon-interior .dillon-contact-conversion-facts :is(.dillon-contact-fact-phone,.dillon-contact-fact-email):focus-within {
  background-color:#f1f4f8; border-color:#17396d; box-shadow:0 6px 20px rgba(13,36,64,.12);
}
.dillon-interior .dillon-contact-conversion-facts :is(.dillon-contact-fact-phone,.dillon-contact-fact-email):focus-within :is(.elementor-button,.elementor-button-text) {
  color:#b52b1b;
}
@media (hover:hover) and (pointer:fine) {
  .dillon-interior .dillon-contact-conversion-facts :is(.dillon-contact-fact-phone,.dillon-contact-fact-email):hover {
    background-color:#f1f4f8; border-color:#17396d; box-shadow:0 6px 20px rgba(13,36,64,.12);
  }
  .dillon-interior .dillon-contact-conversion-facts :is(.dillon-contact-fact-phone,.dillon-contact-fact-email):hover :is(.elementor-button,.elementor-button-text) {
    color:#b52b1b;
  }
}
@media (prefers-reduced-motion:reduce) {
  .dillon-interior .dillon-contact-conversion-facts :is(.dillon-contact-fact-phone,.dillon-contact-fact-email) { transition:none; }
}
.dillon-interior .dillon-contact-conversion-facts .dillon-contact-fact-hours-copy p:last-child { margin-bottom:0; }
@container dillon-contact-details (min-width:560px) {
  .dillon-interior .dillon-contact-conversion-facts { grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); }
}
/* The map remains a native, editable sibling of the facts inside the details
   column. Native min-height controls own its responsive height. No section insets. */
.dillon-interior .dillon-contact-inline-map { position:relative; isolation:isolate; overflow:hidden; width:100%; max-width:100%; flex-shrink:0; }
.dillon-contact-inline-map .elementor-element-69f4dc8 { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; }
.elementor-editor-active .dillon-contact-inline-map .elementor-element-69f4dc8 { position:static; width:auto; height:auto; margin:0; clip:auto; clip-path:none; white-space:normal; }
/* Align the Contact map with the form's bottom without changing the form.
   Its desktop height is the remaining column space; mobile keeps native sizing. */
@media(min-width:761px) {
  .dillon-interior .dillon-contact-conversion-columns { align-items:stretch; }
  .dillon-interior .dillon-contact-conversion-details { min-height:0; }
  .dillon-interior .dillon-contact-conversion-details > :not(.dillon-contact-inline-map) { flex-shrink:0; }
  .dillon-interior .dillon-contact-conversion-details > .dillon-contact-inline-map { flex:1 0 0; min-height:0!important; }
}
.dillon-interior .dillon-contact-conversion-booking-panel { background:#dbe6ec; text-align:center; justify-content:center; }
.dillon-interior .dillon-contact-conversion-booking-panel .dillon-interior-heading h1 { font-size:clamp(2rem,4vw,3.5rem); }
.dillon-interior .dillon-contact-conversion-booking-panel .dillon-interior-copy { max-width:64ch; }
.dillon-interior .dillon-contact-conversion-provider[aria-disabled="true"] .elementor-button { opacity:.6; cursor:not-allowed; }
.dillon-interior .dillon-contact-conversion-embed { width:100%; min-width:0; }
.dillon-interior .dillon-contact-conversion-embed iframe { display:block; width:100%; height:640px; border:0; background:#fff; }
.dillon-interior .dillon-contact-conversion-booking-status { min-height:1.5em; }
.dillon-interior .dillon-contact-conversion-confirmation { text-align:center; }
.dillon-interior .dillon-contact-conversion-confirmation .dillon-interior-copy { max-width:52ch; }
/* Paint the entire viewport, including the area beyond the intrinsic section.
   Keep the existing cream logo header and natural scrolling on short screens. */
body:has(.dillon-contact-conversion-confirmation) { background-color:#0d2440; min-height:100vh; min-height:100svh; }
.dillon-contact-conversion-confirmation .dillon-confirmation-dot { color:#c43322; }
.dillon-interior .dillon-contact-conversion-confirmation-panel { box-sizing:border-box; min-width:0; flex-shrink:0; }
.dillon-interior .dillon-contact-conversion-confirmation-panel > .elementor-widget { min-width:0; max-width:100%; }
.dillon-interior .dillon-contact-conversion-confirmation .dillon-interior-copy { text-wrap:pretty; overflow-wrap:break-word; }
.dillon-interior .dillon-contact-conversion-confirmation .dillon-interior-copy p { margin:0; }
.dillon-interior .dillon-contact-conversion-home .elementor-button { max-width:100%; white-space:normal; }
.dillon-interior .dillon-contact-conversion-home .elementor-button-text { text-wrap:balance; }
.dillon-interior .dillon-contact-conversion-home a:focus-visible { outline:3px solid #0d2440; outline-offset:4px; }
.dillon-interior .dillon-contact-conversion-config { display:none; }
/* Contact alone uses a white solid header in every scroll/disclosure state.
   Outrank captured scrolled CSS and the later shared open-disclosure support;
   leave dimensions, actions, divider and native interaction classes untouched. */
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9,
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9.sher-scrolled,
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(.dillon-nav-group.is-open) { background:#FFFFFF!important; }
body:has(.dillon-contact-conversion-contact) header.elementor-element-17c16a9 #main-navigation { background:#FFFFFF!important; }
body:has(.dillon-contact-conversion-contact) header.elementor-element-17c16a9 #main-navigation > .elementor-widget-button :is(.elementor-button,.elementor-button-content-wrapper,.elementor-button-text),
body:has(.dillon-contact-conversion-contact) header.elementor-element-17c16a9 #main-navigation > .dillon-nav-group > .elementor-widget-button :is(.elementor-button,.elementor-button-content-wrapper,.elementor-button-text) { color:#16263c!important; border-bottom-color:#16263c!important; }
body:has(.dillon-contact-conversion-contact) header.elementor-element-17c16a9 #main-navigation > .elementor-widget-button .elementor-button:is(:hover,:focus-visible) :is(.elementor-button-content-wrapper,.elementor-button-text),
body:has(.dillon-contact-conversion-contact) header.elementor-element-17c16a9 #main-navigation > .dillon-nav-group > .elementor-widget-button .elementor-button:is(:hover,:focus-visible) :is(.elementor-button-content-wrapper,.elementor-button-text) { color:#c43322!important; border-bottom-color:#c43322!important; }
body:has(.dillon-contact-conversion-contact) header.elementor-element-17c16a9 :is(.dillon-navigation-toggle,.elementor-element-a2d7aca) { color:#16263c; }
/* The native mobile control is a captured white SVG image, not an inline icon. */
body:has(.dillon-contact-conversion-contact) header.elementor-element-17c16a9 .elementor-element-a2d7aca img { filter:brightness(0); }
body:has(.dillon-contact-conversion-contact) header.elementor-element-17c16a9 :is(.dillon-header-phone,.dillon-header-login) .elementor-button { color:#16263c!important; border-color:#16263c!important; --dillon-login-fill:#16263c; --dillon-login-ink:#fdfdfb; }
/* Color the legacy clickable surface, never its successor utility-group wrapper.
   The real navigation ID outranks frozen #_ fills without editing approved CSS.
   Keep this Contact-only treatment independent of scroll, disclosure and width. */
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(#main-navigation) .elementor-element-c126309:not(.dillon-header-actions),
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(#main-navigation) .dillon-header-estimate .elementor-button { background:#c43322!important; border-color:#c43322!important; color:#FFFFFF!important; }
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(#main-navigation) .elementor-element-c126309:not(.dillon-header-actions):is(:hover,:focus,:focus-visible),
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(#main-navigation) .dillon-header-estimate .elementor-button:is(:hover,:focus,:focus-visible) { background:#8f2417!important; border-color:#8f2417!important; color:#FFFFFF!important; }
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(#main-navigation) .elementor-element-c126309:not(.dillon-header-actions) > .elementor-element-a3362c9 { background:transparent!important; color:#FFFFFF!important; }
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(#main-navigation) .elementor-element-c126309:not(.dillon-header-actions) > .elementor-element-6a4eb5b img { filter:brightness(0) invert(1); }
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(#main-navigation) .dillon-header-estimate .elementor-button :is(.elementor-button-content-wrapper,.elementor-button-text,.elementor-button-icon) { color:#FFFFFF!important; }
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(#main-navigation) .elementor-element-c126309:not(.dillon-header-actions):focus-visible,
body:has(.dillon-contact-conversion-contact) .elementor header.elementor-element.elementor-element-17c16a9:has(#main-navigation) .dillon-header-estimate .elementor-button:focus-visible { outline:2px solid #16263c!important; outline-offset:3px; }
body:has(.dillon-contact-conversion-contact) .elementor-element-639c1d6 a { overflow-wrap:anywhere; }
/* Keep native configuration fields visible when authoring in Elementor. */
.elementor-editor-active .dillon-interior .dillon-contact-conversion-config { display:block; opacity:.65; border:1px dashed #9fb4c4; padding:16px; }
/* Compact shell adjustments apply only in this batch; shared shell is unchanged. */
body:has(.dillon-contact-conversion-booking,.dillon-contact-conversion-confirmation) .dillon-interior-brand { align-items:center; padding:24px; }
body:has(.dillon-contact-conversion-booking,.dillon-contact-conversion-confirmation) .dillon-interior-brand .elementor-widget-image { width:auto; }
body:has(.dillon-contact-conversion-booking) .dillon-interior-legal { width:calc(100% - 96px); margin-inline:auto; padding:24px 0 40px; border-top:1px solid #9fb4c4; background:transparent; flex-direction:row; justify-content:space-between; gap:24px; text-align:left; }
body:has(.dillon-contact-conversion-booking) .dillon-interior-legal .elementor-widget-text-editor { width:auto; max-width:100%; }
body:has(.dillon-contact-conversion-booking,.dillon-contact-conversion-confirmation) :is(.dillon-interior-brand,.dillon-interior-legal) a:focus-visible { outline:3px solid #c43322; outline-offset:4px; }
@media(max-width:1024px) {
  .dillon-interior .dillon-contact-conversion-columns { gap:32px; }
  /* The approved shell has captured fixed tablet columns. Contain them only on
     this route, without editing its native document or shared/homepage CSS. */
  body:has(.dillon-contact-conversion-contact) .elementor-element-639c1d6 .elementor-element-6e32f47:not(#_) { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:32px; }
  body:has(.dillon-contact-conversion-booking) .dillon-interior-legal { width:calc(100% - 56px); flex-wrap:wrap; }
}
@media(max-width:760px) {
  .dillon-interior .dillon-contact-conversion-columns { grid-template-columns:minmax(0,1fr); gap:40px; }
  .dillon-interior .dillon-contact-conversion-columns > .dillon-contact-conversion-form { order:-1; }
  .dillon-interior .dillon-contact-conversion-booking-panel { padding:32px 20px; min-height:420px; }
  .dillon-interior .dillon-contact-conversion-booking-actions { flex-direction:column; align-items:center; }
  .dillon-interior .dillon-contact-conversion-embed iframe { height:680px; }
  body:has(.dillon-contact-conversion-contact) .elementor-element-639c1d6 .elementor-element-6e32f47:not(#_) { grid-template-columns:minmax(0,1fr)!important; }
  body:has(.dillon-contact-conversion-booking) .dillon-interior-legal { width:calc(100% - 36px); flex-direction:column; }
}
