/* Shared navigation: the duplicate link belongs only inside the open mobile menu. */
.header .nav .mobile-login-link { display: none !important; }
.header .mobile-nav-toggle .close-icon { display: none; }
.header .mobile-nav-toggle svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.header.menu-open .mobile-nav-toggle .menu-icon { display: none; }
.header.menu-open .mobile-nav-toggle .close-icon { display: block; }

/* Both Google Places implementations must show full, readable address labels. */
.place-suggestions button { white-space: normal; overflow-wrap: anywhere; text-align: left; }
.pac-container { z-index: 200; max-width: calc(100vw - 32px); border-radius: 10px; }
.pac-container .pac-item {
  white-space: normal; overflow-wrap: anywhere; text-overflow: clip;
  padding: 12px 14px; color: #24483f; line-height: 1.5;
}
.pac-container .pac-item-query { color: #092f28; }

@media (max-width: 980px) {
  .header, .header.wrap, .header.shell {
    height: 76px; min-height: 76px !important; flex-wrap: nowrap;
    gap: 12px; padding-block: 4px; background: #fff !important;
    backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  .header .header-actions { display: none !important; }
  .header .brand { flex: 0 1 auto; min-width: 0; }
  .header .brand img { max-width: 100%; }
  .header .mobile-nav-toggle {
    display: grid; flex: 0 0 44px; width: 44px !important; height: 44px !important;
    place-items: center; place-content: center; padding: 0; margin-left: auto;
    border: 1px solid #d9e7e1; border-radius: 10px; background: #fff; color: #063c33;
  }
  .header .nav { display: none !important; }
  .header.menu-open .nav {
    position: fixed; inset: 76px 0 auto; z-index: 99;
    display: flex !important; flex-direction: column; align-items: stretch;
    width: auto; height: auto; max-height: calc(100dvh - 76px); min-height: 0; margin: 0;
    gap: 0; padding: 16px 20px calc(24px + env(safe-area-inset-bottom)) !important;
    overflow-x: hidden; overflow-y: auto; background: #f7faf8; box-shadow: 0 16px 24px rgba(7,47,40,.12);
    border-top: 1px solid #d9e7e1;
  }
  .header.menu-open .nav > a {
    display: flex !important; flex: 0 0 auto; align-items: center;
    min-height: 54px; width: 100%; padding: 12px 4px;
    color: #092f28; font-size: 1rem !important; line-height: 1.4;
    border-bottom: 1px solid #d9e7e1; white-space: normal;
  }
  .header.menu-open .nav .mobile-login-link {
    display: flex !important; position: static; justify-content: center; gap: 8px;
    margin-top: 16px; min-height: 48px; padding: 12px 16px; border: 0;
    border-radius: 10px; background: #168268; color: #fff !important;
  }
  .header .nav .mobile-login-link svg { width: 18px; height: 18px; stroke: currentColor; }
  .header .nav .mobile-login-link::after { display: none; }
}
@media (max-width: 720px) {
  .place-suggestions {
    position: relative !important; inset: auto; width: 100%; max-width: 100%;
    margin-top: 8px; max-height: min(320px, 45dvh); overflow-y: auto;
    overscroll-behavior: contain; background: #fff;
  }
  .place-suggestions button, .pac-container .pac-item, .pac-container .pac-item-query {
    font-size: 16px; line-height: 1.5;
  }
  .place-suggestions button { min-height: 52px; padding: 12px 14px; color: #24483f; }
  .address-input input { font-size: 16px; }
}

/* Full destination tiles are keyboard- and touch-accessible links. */
body a.destination-link { min-height:44px; font-weight:600!important; text-decoration:none; }
body a.destination-link:hover { background:var(--mint, #e8f4ef); border-color:var(--green, #168268); }
body a.destination-link:focus-visible { outline:3px solid var(--green, #168268); outline-offset:3px; }

/* Destination tiles in the contact page's existing split panel. */
.contact-destinations { min-width:0; }
.contact-country-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.contact-country-grid .destination-link { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid #d4e3dc; border-radius:9px; background:#fff; color:#31594e; font-size:.84rem; }
.contact-country-grid .flag { flex-shrink:0; }
.contact-country-note { margin:16px 0 0; color:var(--muted); font-size:.9rem; }


