/* Dillon's shared presentation policy. Radius ONLY; native content/controls,
   borders, crops, spacing, shadows and interactions remain owned by their
   components. The unreachable doubled ID raises specificity above captured
   #_ rules, post CSS and hover/mobile declarations, including !important
   navbar rules. No wildcard descendants or generic container/image resets. */
:root { --dillon-component-radius:16px; --dillon-button-radius:4px; }

/* Surface roles plus original homepage aliases retained by reusable copies. */
:is(body,#dillon-component-corners#dillon-component-corners) :is(
  .dillon-home-card,.dillon-interior-card,.dillon-interior-benefit,
  .dillon-location-overview-card,
  .dillon-feature-tile,.dillon-feature-glass,
  .dillon-maintenance-card,.dillon-testimonial-card,.dillon-team-card,
  .dillon-company-differentiation-tile,.dillon-contact-fact-card,
  .dillon-interior-form-section,.dillon-interior-lead,.dillon-contact-conversion-form,
  .dillon-contact-conversion-booking-panel,.dillon-contact-conversion-confirmation-panel,
  .dillon-contact-conversion-embed,.dillon-resources-card,.dillon-resources-contents,
  .dillon-resources-quote,.dillon-resources-service,.dillon-resources-media,
  .dillon-resources-media-pending,.dillon-resources-draft-notice,
  .dillon-specials-group-tile,.dillon-specials-photo-tile,
  .dillon-page-submenu,.dillon-modal,.dillon-interior-map,
  .elementor-element-d7018ff,.elementor-element-fd7c835,.elementor-element-25f2475,
  .elementor-element-b22771b,.elementor-element-211de12,
  .elementor-element-9c57883 > article,
  .elementor-element-ed42164 > .e-con,
  .elementor-element-d3fd756,.elementor-element-c964453,.elementor-element-df1cb0a,
  .elementor-element-a56b7be,
  .elementor-element-a56b7be > .elementor-widget-container,
  .sher-widget-dillon-faq-tabs .faq-answer,
  .dillon-live-map .dh-map-tooltip,.dillon-live-map .leaflet-popup-content-wrapper
) { border-radius:var(--dillon-component-radius)!important; }

/* Only the Services, Industries and About image-megamenu shells join the
   navbar with square tops. Keep the shared 16px bottoms and photo rules. */
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-page-submenu.dillon-image-megamenu:is(
  .dillon-services-megamenu,.dillon-industries-megamenu,.dillon-about-megamenu
) {
  border-top-left-radius:0!important;
  border-top-right-radius:0!important;
}

/* Rectangular controls, not artwork, circular indicators, phone/text links,
   nav/footer links or accordion rows. Native field variables are overridden
   only inside the lead widget; radios/checkboxes retain their native shape. */
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-interior-lead {
  --dillon-field-radius:var(--dillon-component-radius)!important;
}
:is(body,#dillon-component-corners#dillon-component-corners) :is(
  .shc-role-button:not(.elementor-widget-image),
  /* Linked captured CTAs may have no button-role marker. Cover their actual
     painted containers and the shared FAQ action, including saved aliases. */
  .dillon-button-control,.elementor-element-72e099f,.dillon-faq-contact,
  button:where(:not(.process-dot,.dh-map-pin,.leaflet-marker-icon,.faq-row,.faq-question)),
  input:is([type="button"],[type="submit"],[type="reset"]),
  .elementor-widget-button:where(:not(.dillon-interior-text-action,.dillon-header-route:not(.dillon-header-estimate,.dillon-header-login),.dillon-header-phone,.dillon-footer-link,.dillon-contact-conversion-facts *,.dillon-resources-contents *,.dillon-resources-card-link)),
  .elementor-button:where(:not(.dillon-interior-text-action *,.dillon-header-route:not(.dillon-header-estimate,.dillon-header-login) *,.dillon-header-phone *,.dillon-footer-link *,.dillon-contact-conversion-facts *,.dillon-resources-contents *,.dillon-resources-card-link)),
  /* Native hover/scrolled settings can paint the widget, not just its link.
     Both layers must use the same silhouette without changing their fills. */
  .dillon-native-action:where(:not(.dillon-interior-text-action,.dillon-contact-conversion-facts *,.dillon-resources-contents *,.dillon-resources-card-link)),
  .dillon-native-action:where(:not(.dillon-interior-text-action,.dillon-contact-conversion-facts *,.dillon-resources-contents *,.dillon-resources-card-link)) .elementor-button,
  .dillon-header-login,.dillon-header-estimate,.dillon-home-card-action,
  .dillon-header-login .elementor-button,.dillon-header-estimate .elementor-button,
  .dillon-home-card-action .elementor-button,
  .elementor-element-9c57883 > article .elementor-widget-button,
  .elementor-element-9c57883 > article .elementor-button,
  .dillon-resources-page-controls :is(.elementor-button,[aria-current="page"],[aria-disabled="true"]),
  .dillon-resources-categories .elementor-button,
  .dillon-interior-lead button,.dillon-zip-form button,
  .dillon-dialog-understood,.dillon-contact-fact-icon a.elementor-icon,
  .dillon-live-map .leaflet-control-zoom,
  .sher-widget-dillon-scroll-process .action
) { border-radius:var(--dillon-button-radius)!important; }

/* Image-megamenu highlights are navigation rows, not 4px action buttons.
   Cover the link and native painted widget/wrappers in every state/viewport.
   The named widget-container branch gives this exception precedence over the
   button policy; menu panels, photographs and ordinary dropdowns stay intact. */
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-image-megamenu :is(
  .elementor-widget-button,
  .elementor-widget-button > .elementor-widget-container,
  .elementor-button-wrapper,.elementor-button
) { border-radius:0!important; }

/* Field/panel geometry is independent of the button standard. */
:is(body,#dillon-component-corners#dillon-component-corners) :is(
  .dillon-resources-card > .elementor-widget-text-editor:nth-child(2) p,
  .dillon-interior-lead :is(input:not([type="radio"],[type="checkbox"],[type="hidden"],[type="button"],[type="submit"],[type="reset"]),textarea,select),
  .dillon-form-options label,.dillon-form-summary,.dillon-form-status:not(:empty),
  .dillon-zip-form input:not([type="button"],[type="submit"],[type="reset"]),
  .dillon-contact-fact-icon .elementor-icon
) { border-radius:var(--dillon-component-radius)!important; }

/* Standalone photographic frames. Hero/background/logo/icon widgets are
   deliberately not selected by a generic img or dillon-background-image rule. */
:is(body,#dillon-component-corners#dillon-component-corners) :is(
  .dillon-interior-split-media,.dillon-company-differentiation-media,
  .dillon-company-differentiation-photo,.dillon-megamenu-image,
  .elementor-element-0e34554,.elementor-element-985c6e7
) { border-radius:var(--dillon-component-radius)!important; }
:is(body,#dillon-component-corners#dillon-component-corners) :is(
  .dillon-interior-split-media .elementor-widget-image img,
  .dillon-company-differentiation-photo img,.dillon-megamenu-image img,
  .dillon-resources-media-image img,.dillon-specials-photo-tile .elementor-widget-image img,
  .elementor-element-0e34554 img,.elementor-element-985c6e7 img,
  .dillon-interior-card:not(.dillon-resources-card) > .dillon-interior-image img
) { border-radius:var(--dillon-component-radius)!important; }

/* Overlay photographs and gradients share the entire outer silhouette,
   without clipping the content, focus outlines, shadows or menus. */
:is(body,#dillon-component-corners#dillon-component-corners) :is(
  .dillon-home-card > .dillon-home-card-photo,
  .dillon-home-card > .dillon-home-card-photo > .elementor-widget-container,
  .dillon-home-card-photo img,.dillon-home-card::after,
  .dillon-team-media,.dillon-team-portrait,.dillon-team-portrait > .elementor-widget-container,
  .dillon-team-portrait img,
  .dillon-feature-1 > .dillon-feature-photo,
  .dillon-feature-1 > .dillon-feature-photo > .elementor-widget-container,
  .dillon-feature-1 > .dillon-feature-photo img,
  .elementor-element-9c57883 > article > .elementor-widget-image,
  .elementor-element-9c57883 > article > .elementor-widget-image > .elementor-widget-container,
  .elementor-element-9c57883 > article > .elementor-widget-image img,
  .elementor-element-9c57883 > article::before,
  .elementor-element-9c57883 > article::after
) { border-radius:var(--dillon-component-radius)!important; }
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-team-body {
  border-radius:0 0 var(--dillon-component-radius) var(--dillon-component-radius)!important;
}

/* Industries use square bottom corners above their 760px mobile breakpoint. */
:is(body,#dillon-component-corners#dillon-component-corners) :is(
  .dillon-industry,
  .dillon-industry > .dillon-industry-photo,
  .dillon-industry > .dillon-industry-photo > .elementor-widget-container,
  .dillon-industry-photo img
),
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-industry::before,
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-industry::after {
  border-radius:var(--dillon-component-radius) var(--dillon-component-radius) 0 0!important;
}

/* Phones share the same 16px silhouette on all card/photo/painted layers. */
@media(max-width:760px) {
  :is(body,#dillon-component-corners#dillon-component-corners) :is(
    .dillon-industry,
    .dillon-industry > .dillon-industry-photo,
    .dillon-industry > .dillon-industry-photo > .elementor-widget-container,
    .dillon-industry-photo img
  ),
  :is(body,#dillon-component-corners#dillon-component-corners) .dillon-industry::before,
  :is(body,#dillon-component-corners#dillon-component-corners) .dillon-industry::after {
    border-radius:var(--dillon-component-radius)!important;
  }
}

/* Joined horizontal feature photo/content: round only exposed outer corners.
   The native bento mobile breakpoint is 767px (not the kit's 760px). */
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-feature-2 > .dillon-feature-photo,
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-feature-2 > .dillon-feature-photo > .elementor-widget-container,
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-feature-2 > .dillon-feature-photo img {
  border-radius:var(--dillon-component-radius) 0 0 var(--dillon-component-radius)!important;
}
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-feature-2 > .dillon-feature-content {
  border-radius:0 var(--dillon-component-radius) var(--dillon-component-radius) 0!important;
}
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-resources-card > .elementor-widget-image,
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-resources-card > .elementor-widget-image img {
  border-radius:var(--dillon-component-radius) var(--dillon-component-radius) 0 0!important;
}

/* FAQ questions are a square list/divider exception, including active first
   and last rows, except the phone-only rounded top of the open question
   below. Detached desktop/editor answers keep the shared surface. Radius
   only: preserve fills, borders, focus outlines and tab behavior. */
:is(body,#dillon-component-corners#dillon-component-corners) .sher-widget-dillon-faq-tabs :is(.faq-questions,.faq-row) {
  border-radius:0!important;
}
/* Only an answer relocated beneath its mobile question has square top corners.
   Leave bottom corners/token overrides (including Specials), artwork and the
   761px+ tab layout untouched. The extra ownership/parent classes outrank the
   shared surface shorthand without resetting the rest of its silhouette. */
@media(max-width:760px) {
  :is(body,#dillon-component-corners#dillon-component-corners) .sher-widget-dillon-faq-tabs.dillon-faq-inline-mobile .faq-questions > .faq-answer {
    border-top-left-radius:0!important;
    border-top-right-radius:0!important;
  }
  /* Only the open question takes the shared surface radius on its top corners,
     so it forms one silhouette with the answer joined beneath it. Closed
     questions, the list, question bottoms and Specials (its section id is
     matched as an attribute to keep the policy's two-ID specificity ceiling)
     stay square. */
  :is(body,#dillon-component-corners#dillon-component-corners) .sher-widget-dillon-faq-tabs.dillon-faq-inline-mobile:not([id="dillon-financing-specials-specials-faq-faqs"] *) .faq-questions > .faq-row.active {
    border-top-left-radius:var(--dillon-component-radius)!important;
    border-top-right-radius:var(--dillon-component-radius)!important;
  }
}

/* Native accordions are square, except the pictured service-detail opening.
   Longhands on first/last rows also cover single-item accordions.
   No overflow change: Elementor's measured expansion and focus stay intact. */
:is(body,#dillon-component-corners#dillon-component-corners) .elementor-widget-n-accordion > .e-n-accordion {
  border-radius:0!important;
}
:is(body,#dillon-component-corners#dillon-component-corners) :is(
  .e-n-accordion > .e-n-accordion-item,
  .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title,
  .e-n-accordion > .e-n-accordion-item > .e-con,
  .dillon-live-map .leaflet-control-zoom a
) { border-radius:0!important; }
:is(body,#dillon-component-corners#dillon-component-corners) .e-n-accordion > .e-n-accordion-item:first-child > .e-n-accordion-item-title {
  border-top-left-radius:0!important;
  border-top-right-radius:0!important;
}
:is(body,#dillon-component-corners#dillon-component-corners) :is(
  .e-n-accordion > .e-n-accordion-item:last-child:not([open]) > .e-n-accordion-item-title,
  .e-n-accordion > .e-n-accordion-item:last-child[open] > .e-con
) {
  border-bottom-left-radius:0!important;
  border-bottom-right-radius:0!important;
}

/* Only the pictured service-detail opening has rounded outer corners:
   Service Overview, How Service Works and Other Services. The separate
   benefit accordion, industry openings, Specials and Financing stay square.
   Round exposed first/last edges only; internal joins stay straight. */
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-detail-accordion.dillon-detail-service > .e-n-accordion {
  border-radius:var(--dillon-component-radius)!important;
}
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-detail-accordion.dillon-detail-service .e-n-accordion > .e-n-accordion-item:first-child > .e-n-accordion-item-title {
  border-top-left-radius:var(--dillon-component-radius)!important;
  border-top-right-radius:var(--dillon-component-radius)!important;
}
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-detail-accordion.dillon-detail-service :is(
  .e-n-accordion > .e-n-accordion-item:last-child:not([open]) > .e-n-accordion-item-title,
  .e-n-accordion > .e-n-accordion-item:last-child[open] > .e-con
) {
  border-bottom-left-radius:var(--dillon-component-radius)!important;
  border-bottom-right-radius:var(--dillon-component-radius)!important;
}

/* Map buttons keep their internal join square, with 4px exposed corners. */
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-live-map .leaflet-control-zoom a:first-child {
  border-top-left-radius:var(--dillon-button-radius)!important;
  border-top-right-radius:var(--dillon-button-radius)!important;
}
:is(body,#dillon-component-corners#dillon-component-corners) .dillon-live-map .leaflet-control-zoom a:last-child {
  border-bottom-left-radius:var(--dillon-button-radius)!important;
  border-bottom-right-radius:var(--dillon-button-radius)!important;
}

/* The process stage/step's single left border is a straight divider, not a
   closed card frame. Keep its ends square without changing the border or clip. */
:is(body,#dillon-component-corners#dillon-component-corners) .sher-widget-dillon-scroll-process :is(.process-stage,.process-step) {
  border-radius:0!important;
}

/* Every process photograph rounds all four corners, independent of normal/snap
   placement or viewport. Its existing media overflow clip still contains zoom. */
:is(body,#dillon-component-corners#dillon-component-corners) .process-step-media {
  border-radius:var(--dillon-component-radius)!important;
}
@media(max-width:767px) {
  :is(body,#dillon-component-corners#dillon-component-corners) .dillon-feature-2 > .dillon-feature-photo,
  :is(body,#dillon-component-corners#dillon-component-corners) .dillon-feature-2 > .dillon-feature-photo > .elementor-widget-container,
  :is(body,#dillon-component-corners#dillon-component-corners) .dillon-feature-2 > .dillon-feature-photo img {
    border-radius:var(--dillon-component-radius) var(--dillon-component-radius) 0 0!important;
  }
  :is(body,#dillon-component-corners#dillon-component-corners) .dillon-feature-2 > .dillon-feature-content {
    border-radius:0 0 var(--dillon-component-radius) var(--dillon-component-radius)!important;
  }
}
