/* 650 KGL responsive system: parent-safe Blog geometry lives in Blog V2. */

:root {
  --kgl-responsive-footer-copy: rgba(255, 255, 255, .84);
  --kgl-responsive-footer-line: rgba(255, 255, 255, .28);
  --kgl-responsive-shell: 36px;
  --kgl-responsive-shell-gap: 8px;
  --kgl-responsive-shell-glyph: 20px;
}

/* Footer: one outlined shell treatment for social and utility contact icons. */
.kgl-footer-social-row-v11 {
  gap: var(--kgl-responsive-shell-gap) !important;
  margin: 8px 0 5px !important;
}

.kgl-footer-social-row-v11 .kgl-social-icon-link,
.kgl-footer-contact-line-v11 .kgl-v11-icon-bubble,
.kgl-v12-contact-icon {
  box-sizing: border-box !important;
  flex: 0 0 var(--kgl-responsive-shell) !important;
  width: var(--kgl-responsive-shell) !important;
  height: var(--kgl-responsive-shell) !important;
  min-width: var(--kgl-responsive-shell) !important;
  min-height: var(--kgl-responsive-shell) !important;
  padding: 8px !important;
  border: 1px solid var(--kgl-responsive-footer-line) !important;
  border-radius: 50% !important;
  color: var(--kgl-responsive-footer-copy) !important;
  background: transparent !important;
}

.kgl-footer-social-row-v11 .kgl-social-icon-link:focus-visible,
a.kgl-footer-contact-line-v11:focus-visible,
a.kgl-v12-contact-line:focus-visible {
  outline: 2px solid #fff !important;
  outline-offset: 3px;
}

.kgl-footer-contact-line-v11 {
  gap: var(--kgl-responsive-shell-gap) !important;
  margin-top: 3px !important;
  color: var(--kgl-responsive-footer-copy) !important;
  font-size: 12.5px !important;
  line-height: 1.35 !important;
}

/* Contact hero: reuse its channel grid; the two social routes form a quiet second row. */
.kgl-contact-methods > a {
  display: flex;
  align-items: center;
  gap: 9px;
}

.kgl-hero-phosphor-icon {
  box-sizing: border-box;
  display: inline-flex;
  flex: 0 0 30px;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 6px;
  border: 1px solid rgba(72, 169, 184, .42);
  border-radius: 50%;
  color: #294a7b !important;
  background: rgba(72, 169, 184, .08);
}

.kgl-hero-phosphor-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.kgl-hero-aline { color: #48a9b8 !important; }
.kgl-v11-contact-method-card .kgl-v11-contact-method-icon {
  box-sizing: border-box !important;
  flex: 0 0 44px !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 9px !important;
  border-radius: 10px !important;
  color: #294a7b !important;
  border: 1px solid rgba(72, 169, 184, .42) !important;
  background: rgba(72, 169, 184, .08) !important;
}

.kgl-v11-contact-method-card.kgl-v11-instagram .kgl-v11-contact-method-icon,
.kgl-v11-contact-method-card.kgl-v11-tiktok .kgl-v11-contact-method-icon {
  flex-basis: 44px !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 9px !important;
  border-radius: 10px !important;
  color: #294a7b !important;
  border-color: rgba(72, 169, 184, .42) !important;
  background: rgba(72, 169, 184, .08) !important;
}

/* Lower Contact cards retain their existing layout while sharing one icon family. */
.kgl-contact-card .kgl-responsive-contact-icon {
  box-sizing: border-box !important;
  display: inline-flex !important;
  flex: 0 0 44px !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  padding: 9px !important;
  border: 1px solid rgba(72, 169, 184, .42) !important;
  border-radius: 10px !important;
  color: #294a7b !important;
  background: rgba(72, 169, 184, .08) !important;
}

.kgl-contact-card .kgl-responsive-contact-icon--whatsapp { color: #3c9560 !important; }

.kgl-contact-card .kgl-responsive-contact-icon svg {
  display: block !important;
  width: 26px !important;
  height: 26px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.kgl-contact-methods > a.kgl-responsive-hero-social:focus-visible {
  outline: 2px solid #294a7b;
  outline-offset: 3px;
}

/* Existing WordPress responsive Navigation markup, controlled only below its breakpoint. */
@media (max-width: 1199px) {
  html:has(.wp-block-navigation__responsive-container[aria-hidden="false"]),
  body:has(.wp-block-navigation__responsive-container[aria-hidden="false"]) {
    overflow: hidden !important;
  }

  /* Repeated fallback-open class deliberately outranks core's 0,3 inherit rule. */
  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open {
    position: fixed !important;
    z-index: 100000 !important;
    inset: 0 !important;
    display: flex !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    background: #173b63 !important;
    color: #fff !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open .wp-block-navigation__responsive-dialog {
    box-sizing: border-box;
    width: min(100%, 720px) !important;
    min-height: 100%;
    margin: 0 auto;
    padding: 24px 24px 32px !important;
    background: #173b63 !important;
    color: #fff !important;
  }

  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open .wp-block-navigation__responsive-container-content {
    padding-top: 44px;
  }

  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open .wp-block-navigation__container {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open .wp-block-navigation-item {
    width: 100%;
  }

  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open .wp-block-navigation-item__content {
    box-sizing: border-box;
    display: flex !important;
    align-items: center;
    width: 100% !important;
    height: 50px !important;
    min-height: 50px;
    padding: 12px 16px !important;
    border: 1px solid rgba(255, 255, 255, .24) !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: #fff !important;
    font-family: Helvetica, Arial, sans-serif !important;
    font-size: 16px !important;
    line-height: 24px !important;
    text-decoration: none !important;
  }

  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open .wp-block-navigation-item__content:hover,
  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open .wp-block-navigation-item__content:focus-visible {
    background: rgba(255, 255, 255, .14) !important;
    outline: 2px solid #fff !important;
    outline-offset: 2px;
  }

  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open a[href*="/aline/"] {
    justify-content: center;
    border-color: #1f7685 !important;
    background: #1f7685 !important;
    color: #fff !important;
  }

  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open a[href*="search-availability"] {
    justify-content: center;
    border-color: #a65a2a !important;
    background: #a65a2a !important;
    color: #fff !important;
  }

  .wp-block-navigation__responsive-container.kgl-mobile-nav-open.kgl-mobile-nav-open.kgl-mobile-nav-open .wp-block-navigation__responsive-container-close {
    box-sizing: border-box;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 10px;
    position: absolute;
    top: 24px;
    right: 24px;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 50%;
    background: #fff;
    color: #173b63;
  }
}

@media (max-width: 680px) {
  :root { --kgl-responsive-shell: 34px; --kgl-responsive-shell-glyph: 20px; }

  .kgl-footer-social-row-v11 .kgl-social-icon-link,
  .kgl-footer-contact-line-v11 .kgl-v11-icon-bubble,
  .kgl-v12-contact-icon { padding: 7px !important; }

  .kgl-footer-social-row-v11 { margin: 7px 0 4px !important; }
  .kgl-footer-contact-line-v11 { font-size: 12px !important; }
}

/* Contact hero: approved three-channel IA and unified stacked tablet flow. */
@media (min-width: 640px) {
  body.page-id-264 .kgl-contact-hero .kgl-contact-methods {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.page-id-264 .kgl-contact-hero .kgl-contact-methods > a {
    min-width: 0;
    min-height: 88px;
    padding: 0 8px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    text-align: center;
  }

  body.page-id-264 .kgl-contact-hero .kgl-contact-methods > a strong {
    font-size: .8rem;
    line-height: 1.25;
    white-space: nowrap;
  }
}

@media (min-width: 1024px) {
  body.page-id-264 .kgl-contact-hero .kgl-contact-methods {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  body.page-id-264 .kgl-contact-hero .kgl-contact-methods > a {
    min-height: 0;
    padding: 0;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    gap: 9px;
    text-align: left;
  }

  body.page-id-264 .kgl-contact-hero .kgl-contact-methods > a strong {
    font-size: .9rem;
    white-space: nowrap;
  }

  body.page-id-264 .kgl-contact-hero .kgl-contact-methods > * + *::before {
    display: none;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  body.page-id-264 .kgl-contact-hero > .wp-block-columns {
    height: auto !important;
    flex-wrap: nowrap !important;
  }

  body.page-id-264 .kgl-contact-hero > .wp-block-columns > .wp-block-column {
    height: auto !important;
    flex-basis: auto !important;
  }

  body.page-id-264 .kgl-contact-hero > .wp-block-columns > .wp-block-column:first-child {
    flex: 0 0 clamp(20rem, 42vw, 21rem) !important;
    height: clamp(20rem, 42vw, 21rem) !important;
  }
}

/* Final Blog + mobile-admin-header release.
 * WordPress makes the admin bar absolute below 600px while the marketing
 * header remains offset by its height. Keep that toolbar fixed for logged-in
 * mobile users so the existing header offset never becomes an exposed gap.
 * Public visitors do not match .admin-bar and retain the normal top:0 header.
 */
@media (max-width: 600px) {
  body.admin-bar #wpadminbar {
    position: fixed !important;
  }
}

/* The mobile feature query is a flex item in the Blog stage. Explicitly give
 * it the available column width so its image and story-card cannot collapse.
 */
@media (max-width: 680px) {
  .kgl-v2-feature-query {
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 100% !important;
    margin: 0 !important;
  }

  .kgl-v2-feature-query .wp-block-post-template,
  .kgl-v2-feature-query .wp-block-post {
    width: 100% !important;
    max-width: none !important;
  }
}

/* Preserve the approved tablet/desktop hero composition without the V4
 * large-desktop negative page offset. The panel remains stage-relative.
 */
@media (min-width: 981px) {
  .kgl-v2-intro-panel {
    left: 0 !important;
    transform: none !important;
  }
}

/* Owner-approved centered related-stories breakout. It remains wider than
 * article copy, while its center is aligned to the article divider marker.
 */
.kgl-v4-related {
  left: auto !important;
  width: min(1180px, calc(100vw - 36px)) !important;
  max-width: calc(100vw - 36px) !important;
  margin-left: 50% !important;
  margin-right: 0 !important;
  transform: translateX(-50%) !important;
}

/* Public WhatsApp contact action: native, keyboard-accessible, and beneath
 * the responsive navigation overlay's z-index. */
.kgl-whatsapp-widget {
  box-sizing: border-box;
  position: fixed;
  right: clamp(16px, 2vw, 24px);
  bottom: clamp(16px, 2vw, 24px);
  z-index: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 50%;
  color: #fff;
  background: #3c9560;
  box-shadow: 0 8px 22px rgba(23, 59, 99, .28);
  transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.kgl-whatsapp-widget svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.kgl-whatsapp-widget:hover {
  background: #327f51;
  box-shadow: 0 10px 26px rgba(23, 59, 99, .34);
  transform: translateY(-2px);
}

.kgl-whatsapp-widget:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

/* Footer typography follows the established first-column references. */
.site-footer .kgl-v44-footer-sitemap {
  row-gap: 0 !important;
  margin-top: 3px !important;
}

.site-footer h3.wp-block-heading:has(+ .kgl-v44-footer-sitemap) {
  font-size: 14px !important;
  line-height: 21px !important;
  font-weight: 700 !important;
  letter-spacing: 2.24px !important;
}

.site-footer .kgl-v44-footer-sitemap a,
.site-footer .kgl-v12-contact-line,
.site-footer .kgl-v12-contact-copy {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 430 !important;
  line-height: 23.8px !important;
}

/* === 650 KGL THREE RENDERER CONTRACT START ===
   Canonical viewport contract:
   MOBILE  : 0-767px
   TABLET  : 768-1199px
   DESKTOP : 1200px+
   Contact page is the validated pilot.
   === */

@media (min-width: 768px) and (max-width: 1199px) {

  /* -------------------------------------------------
     TABLET HEADER
     Force the same compact navigation state across
     the entire tablet renderer. The existing
     responsive-system.js controller owns open/close.
     ------------------------------------------------- */

  html.kgl-renderer-tablet
  .kgl-marketing-header
  .wp-block-navigation__responsive-container:not(.kgl-mobile-nav-open) {
    display: none !important;
  }

  html.kgl-renderer-tablet
  .kgl-marketing-header
  .wp-block-navigation__responsive-container-open {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    pointer-events: auto !important;
  }


  /* -------------------------------------------------
     CONTACT TABLET VISUAL CONTRACT
     Structural hero geometry is owned by JS because
     older high-specificity Contact rules hard-lock
     heights above 1024px.
     ------------------------------------------------- */

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-hero
  > .wp-block-columns
  > .wp-block-column:last-child {
    padding: 52px 48px 56px !important;
    box-sizing: border-box !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-panel {
    width: 100% !important;
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-heading-cluster {
    width: 100% !important;
    max-width: none !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-heading-cluster
  .kgl-contact-title {
    width: auto !important;
    max-width: 560px !important;
    margin-top: 16px !important;
    white-space: normal !important;
    font-size: 48px !important;
    line-height: .98 !important;
    letter-spacing: -.045em !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-panel
  > p.has-medium-font-size {
    width: 100% !important;
    max-width: 720px !important;
    margin-top: 20px !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-hero
  .kgl-contact-methods {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: 12px !important;
    margin-top: 28px !important;
    padding: 0 !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-hero
  .kgl-contact-methods > a,
  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-hero
  .kgl-contact-methods > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 96px !important;
    padding: 16px !important;
    gap: 7px !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(37, 66, 115, .14) !important;
    border-radius: 12px !important;
    background: rgba(255, 255, 255, .44) !important;
    text-align: left !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-hero
  .kgl-contact-methods > * + * {
    border-left: 1px solid rgba(37, 66, 115, .14) !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-hero
  .kgl-contact-methods strong {
    white-space: normal !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-hero
  .kgl-contact-methods a {
    overflow-wrap: anywhere !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-actions,
  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-panel
  > .wp-block-buttons {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-top: 24px !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-main {
    position: relative !important;
    clear: both !important;
    width: 100% !important;
    margin-top: 32px !important;
    padding: 88px 48px 96px !important;
    box-sizing: border-box !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-shell {
    width: 100% !important;
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-intro {
    width: 100% !important;
    max-width: 720px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    gap: 30px !important;
    margin-top: 42px !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-info,
  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-form,
  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-map {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-info
  .kgl-contact-card,
  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-info
  .kgl-v11-contact-method-card {
    width: 100% !important;
    max-width: 740px !important;
    min-height: 78px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 16px 18px !important;
    box-sizing: border-box !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-map,
  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-map iframe {
    width: 100% !important;
    min-height: 360px !important;
    box-sizing: border-box !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-form {
    padding: 36px 36px 40px !important;
    box-sizing: border-box !important;
  }

  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-form form.forminator-ui,
  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-form .forminator-row,
  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-form .forminator-col,
  html.kgl-renderer-tablet body.page-id-264
  .kgl-contact-form .forminator-field {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }


  /* -------------------------------------------------
     TABLET FOOTER
     Same composition throughout 768-1199:
     brand full row, Navigate + Get in touch below.
     ------------------------------------------------- */

  html.kgl-renderer-tablet
  footer.site-footer
  .kgl-three-renderer-footer-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    width: calc(100% - 96px) !important;
    max-width: 980px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: 34px 48px !important;
    align-items: start !important;
  }

  html.kgl-renderer-tablet
  footer.site-footer
  .kgl-three-renderer-footer-grid
  > .wp-block-column {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    flex-basis: auto !important;
  }

  html.kgl-renderer-tablet
  footer.site-footer
  .kgl-three-renderer-footer-grid
  > .wp-block-column:first-child {
    grid-column: 1 / -1 !important;
  }

  html.kgl-renderer-tablet
  footer.site-footer
  .kgl-three-renderer-footer-grid
  > .wp-block-column:first-child
  > p {
    max-width: 620px;
  }

  html.kgl-renderer-tablet
  footer.site-footer
  .kgl-three-renderer-footer-grid
  .kgl-v12-contact-copy {
    overflow-wrap: anywhere;
  }

  html.kgl-renderer-tablet
  footer.site-footer
  .kgl-three-renderer-footer-separator,
  html.kgl-renderer-tablet
  footer.site-footer
  .kgl-three-renderer-footer-legal {
    width: calc(100% - 96px) !important;
    max-width: 980px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  html.kgl-renderer-tablet
  footer.site-footer
  .kgl-three-renderer-footer-legal {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 16px 24px !important;
    flex-wrap: wrap !important;
  }
}

/* === 650 KGL THREE RENDERER CONTRACT END === */