/* Keep page edges fixed while allowing the existing horizontal content rails. */
html, body { overflow-x: clip; }
html { overscroll-behavior-x: none; }
@supports not (overflow: clip) { html { overflow-x: hidden; } }
body, body main, body .con-kit-site { min-width: 0; max-width: 100%; }
body :is(.sf-nav-inner,.sf-hero-inner,.sf-dialog-grid,#sf-form,#sf-form label,.sf-form-row,.styles_op_1wpdvnk_inner,.styles_op_1wpdvnk_headText,.styles_op_ip3jcq_container,.styles_op_ip3jcq_col,.styles_op_6i310n_inner) { min-width: 0; }
body main :is(h1,h2,h3,p,a,li), body .sf-dialog-grid :is(label,p,a) { overflow-wrap: anywhere; }
body .styles_op_folz8x_pill { max-width: 100%; }
body .styles_op_folz8x_label { min-width: 0; overflow-wrap: anywhere; }
body .styles_op_ip3jcq_notesList { grid-template-columns: repeat(auto-fit,minmax(min(240px,100%),1fr)); }
body .styles_op_ip3jcq_colHead { flex-wrap: wrap; }
body :is(.styles_op_1wpdvnk_scroller,.styles_op_6i310n_rail) { min-width: 0; overscroll-behavior-x: contain; }
body .sf-footer nav { min-width: 0; align-items: center; }
.sf-cookie-settings-link { border: 0; padding: 0; color: inherit; background: none; font: inherit; text-align: left; cursor: pointer; }
.sf-cookie-settings-link:hover { text-decoration: underline; }

/* The map has no external src until an explicit choice enables it. */
.sf-map-slot { position: absolute; inset: 0; min-width: 0; }
body .sf-map-consent { min-height: 0; height: 100%; gap: 12px; padding: 24px 24px 230px; }
body .sf-map-consent strong { font-size: 20px; }
body .sf-map-consent p { max-width: 420px; }
body .sf-map-consent button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
body [data-map-blocked="true"] :is(.styles_op_1wpdvnr_marker,.styles_op_16i6c5g_marker) { display: none; }

/* A compact, scrollable panel fits small screens without covering the whole page. */
.sf-cookie-banner { position: fixed; z-index: 1000; bottom: 16px; right: 16px; width: min(680px,calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #c4dce3; border-top: 4px solid #12b5de; border-radius: 20px; padding: 24px; background: #fff; color: #06222b; box-shadow: 0 12px 60px #06222b40; }
.sf-cookie-banner h2,.sf-cookie-dialog h2 { font: 700 23px/1.25 'Manrope',sans-serif; margin: 0 0 12px; letter-spacing: -.02em; }
.sf-cookie-banner p,.sf-cookie-dialog p { font-size: 15px; line-height: 1.6; margin: 0 0 16px; }
.sf-cookie-banner a,.sf-cookie-dialog a { color: #075e77; text-decoration: underline; text-underline-offset: 3px; }
.sf-cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.sf-cookie-actions button { flex: 1 1 160px; min-width: 0; min-height: 46px; padding: 12px 14px; border: 1px solid #0b4e63; border-radius: 10px; background: #0b4e63; color: #fff; font-weight: 700; font-size: 14px; line-height: 1.3; cursor: pointer; overflow-wrap: anywhere; }
.sf-cookie-actions .sf-cookie-customize { background: #fff; color: #0b4e63; }
.sf-cookie-actions button:hover { filter: brightness(.94); }
.sf-cookie-dialog { width: min(600px,calc(100% - 32px)); padding: 28px; max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
.sf-cookie-dialog form { margin: 0; }
.sf-cookie-category { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 18px; padding: 18px 0; border-top: 1px solid #d8e9ee; }
.sf-cookie-category > p { grid-column: 1 / -1; margin: 0; color: #38535e; font-size: 14px; }
.sf-cookie-category input { width: 22px; height: 22px; margin: 0; accent-color: #0b4e63; }
.sf-cookie-dialog small { display: block; margin: 0 0 20px; color: #38535e; line-height: 1.5; }
.sf-cookie-dialog .sf-cookie-actions { margin-top: 8px; }
.sf-cookie-storage-note { margin-top: 14px !important; margin-bottom: 0 !important; font-size: 12px !important; }

/* Switch before the desktop navigation runs out of space on phones in landscape. */
@media (max-width: 980px) {
  body .sf-nav-inner { padding: 15px 22px; justify-content: space-between; }
  body .sf-logo { width: 90px; height: 103px; }
  body .sf-solid .sf-logo { height: 90px; }
  body .sf-menu-toggle { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; flex: 0 0 45px; width: 45px; height: 45px; border: 1px solid #ffffff66; border-radius: 9px; background: #06222b44; cursor: pointer; }
  body .sf-menu-toggle span { width: 20px; height: 2px; background: #fff; }
  body .sf-header nav { display: none; position: absolute; top: calc(100% - 4px); left: 16px; right: 16px; background: #fff; color: #06222b; box-shadow: 0 20px 60px #0004; border-radius: 15px; padding: 16px; max-height: calc(100dvh - 155px); overflow: auto; }
  body .sf-header nav.sf-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  body .sf-header nav > a,body .sf-more summary { padding: 14px; }
  body .sf-more > div { position: static; box-shadow: none; background: #f2fbfe; display: grid; margin-top: 0; }
  body .sf-header .sf-more:not([open]) > div { display: none; }
}
@media (max-width: 768px) {
  body .sf-form-row { grid-template-columns: minmax(0,1fr); }
  body .sf-content-grid { grid-template-columns: minmax(0,1fr); }
  body .styles_op_1wpdvnk_scroller { margin-inline: 0; padding-inline: 0; max-width: 100%; }
  body .styles_op_6i310n_rail { margin-inline: 0; max-width: 100%; }
  body .styles_op_6i310n_railItem { max-width: 100%; }
  body :is(.styles_op_1wpdvnr_mapStage,.styles_op_16i6c5g_mapStage) { height: auto; aspect-ratio: auto; display: grid; grid-template-columns: minmax(0,1fr); }
  body .sf-map-slot { position: relative; inset: auto; height: 340px; }
  body .sf-map-consent { padding: 24px 18px; }
  body :is(.styles_op_1wpdvnr_locCard,.styles_op_16i6c5g_locCard) { position: relative; inset: auto; max-width: none; margin: 0 14px 14px; }
  body :is(.styles_op_1wpdvnr_locCard,.styles_op_16i6c5g_locCard) > a { width: 100%; }
  .sf-cookie-banner { bottom: max(10px,env(safe-area-inset-bottom)); right: 10px; width: calc(100% - 20px); padding: 18px; border-radius: 16px; }
  .sf-cookie-banner h2,.sf-cookie-dialog h2 { font-size: 21px; }
  .sf-cookie-dialog { padding: 22px; }
}
@media (max-width: 420px) {
  .sf-cookie-banner .sf-cookie-actions { display: grid; grid-template-columns: minmax(0,1fr); }
}
