/* 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; }



/* Public phone actions: scoped to the header and homepage hero. */
.header .nav .header-phone,.hero--home-photo .hero-phone{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;min-height:44px}
.header .nav .header-phone{color:#063c33;font-weight:700;flex-shrink:0}
.header-phone svg,.hero-phone svg{flex:0 0 18px;width:18px;height:18px}
.header-phone:focus-visible,.hero-phone:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(min-width:981px) and (max-width:1280px){.header.wrap,.header.shell{flex-wrap:wrap;height:auto;padding-block:12px;gap:12px}.header .nav{order:3;flex-basis:100%;justify-content:center;flex-wrap:wrap}.header .header-actions{margin-left:auto}}
@media(max-width:980px){.header.menu-open .nav .header-phone{justify-content:flex-start;white-space:nowrap}.hero--home-photo .hero-phone{max-width:100%;min-width:0}}

/* The public desktop contact action; mobile retains its existing menu link. */
.header .header-actions .header-phone-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--deep,#063c33);border-radius:10px;background:var(--deep,#063c33);color:#fff;font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;white-space:nowrap;text-decoration:none;flex-shrink:0;transition:background .15s,border-color .15s}
.header .header-phone-cta svg{width:18px;height:18px;flex:0 0 18px}
.header .header-actions .header-phone-cta:hover{background:var(--ink,#092f28);border-color:var(--ink,#092f28)}
.header .header-actions .header-phone-cta:focus-visible{outline:3px solid var(--green,#168268);outline-offset:3px}
.header .header-actions .header-phone-cta:active{background:var(--deepest,#042720);border-color:var(--deepest,#042720)}
@media(min-width:981px){.header .nav .header-phone{display:none!important}}

/* Public disclosure navigation: scoped independently of portal and calculator UI. */
.header.public-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;height:84px;min-height:84px!important;width:100%;max-width:none;margin:0;padding:0 max(24px,calc((100% - 1200px)/2));gap:20px;background:#fff!important;backdrop-filter:none;border-bottom:1px solid var(--line,#d7e4de)}
.header.public-header .brand{flex:0 1 auto;min-width:0;display:flex;align-items:center;height:100%}
.header.public-header .brand img{width:200px;height:68px;max-width:100%;object-fit:contain}
.header.public-header .header-actions{display:flex!important;align-items:center;gap:12px;margin-left:auto;flex:none}
.public-header .gc-menu-trigger{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 16px;border:1px solid var(--line,#d7e4de);border-radius:10px;background:#fff;color:var(--ink,#092f28);font:600 14px/1.4 Montserrat,sans-serif;cursor:pointer;white-space:nowrap}
.public-header .gc-menu-trigger svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;flex:none}
.public-header .gc-menu-trigger .gc-close-icon{display:none}
.public-header.gc-menu-open .gc-menu-trigger .gc-open-icon{display:none}
.public-header.gc-menu-open .gc-menu-trigger .gc-close-icon{display:block}
.public-header .gc-menu-trigger:hover,.public-header .gc-menu-trigger:active{background:var(--mint,#e9f4ed);border-color:var(--green,#168268)}
.public-header :is(a,button):focus-visible{outline:3px solid var(--green,#168268);outline-offset:3px}
.public-header .gc-mega-menu[hidden]{display:none!important}
.public-header .gc-mega-menu{position:fixed;inset:var(--gc-menu-top,84px) 0 auto;max-height:calc(100dvh - var(--gc-menu-top,84px));overflow-y:auto;overscroll-behavior:contain;background:#fff;border-bottom:1px solid var(--line,#d7e4de);box-shadow:0 12px 24px rgba(7,47,40,.1);animation:gc-menu-reveal .16s ease-out}
.public-header .gc-menu-inner{max-width:1200px;padding:30px 24px;margin:auto}
.public-header .gc-menu-grid{display:grid;grid-template-columns:1fr 1.2fr 2fr;gap:40px}
.public-header .gc-menu-section{display:block;min-width:0;margin:0;padding:0}
.public-header .gc-menu-label{margin:0 0 12px;color:var(--muted,#59736b);font-size:11px;font-weight:700;line-height:1.5;letter-spacing:.12em;text-transform:uppercase}
.public-header .gc-menu-section a{display:block;padding:9px 10px;margin-left:-10px;border-radius:7px;color:var(--ink,#092f28);font-size:14px;font-weight:600;line-height:1.5;text-decoration:none;overflow-wrap:break-word}
.public-header .gc-menu-section a:hover,.public-header .gc-menu-section a[aria-current=page]{background:var(--mint,#e9f4ed);color:var(--deep,#063c33)}
.public-header .gc-menu-destinations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}
.public-header .gc-menu-section .gc-all-destinations{margin-top:12px;color:var(--green,#168268)}
.public-header .gc-menu-description{font-size:13px;line-height:1.65;color:var(--muted,#59736b);margin:16px 0}
.public-header .gc-menu-access{border-top:1px solid var(--line,#d7e4de);margin-top:12px;padding-top:12px}
.public-header .gc-menu-access>span{color:var(--muted,#59736b);font-size:11px;font-weight:600}
.public-header .gc-menu-access a{font-size:12px;padding-block:6px}
.public-header .gc-menu-actions{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-top:24px;padding:24px;border-radius:12px;background:var(--mint,#e9f4ed)}
.public-header .gc-menu-phone{display:inline-flex;gap:10px;align-items:center;font-size:22px;font-weight:700;white-space:nowrap;color:var(--deep,#063c33)}
.public-header .gc-menu-phone svg{width:18px;height:18px;flex:none}
.public-header .gc-menu-contact>p:not(.gc-menu-label),.public-header .gc-menu-booking>p:not(.gc-menu-label):not(.gc-starting-price){font-size:13px;line-height:1.6;margin:8px 0;color:var(--muted,#59736b)}
.public-header .gc-starting-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;color:var(--ink,#092f28);font-size:14px;margin:0;line-height:1.4}
.public-header .gc-starting-price strong{font-size:32px;letter-spacing:-.04em;font-weight:800}
.public-header .gc-menu-calculate{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:46px;margin:8px 0;padding:11px 16px;border-radius:10px;background:var(--green,#168268);color:#fff;font-size:14px;font-weight:700;line-height:1.5}
.public-header .gc-menu-calculate:hover{background:var(--deep,#063c33)}
.public-header .gc-menu-booking>p.gc-price-note{max-width:560px;font-size:12px!important}
@keyframes gc-menu-reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:980px){
 .header.public-header{height:76px;min-height:76px!important;padding:0 20px;gap:12px}
 .header.public-header .brand img{width:174px;height:62px}
 .header.public-header .header-actions .header-phone-cta{display:none}
 .public-header .gc-menu-inner{display:flex;flex-direction:column;padding:20px;gap:24px}
 .public-header .gc-menu-grid{order:2;grid-template-columns:1fr;gap:24px}
 .public-header .gc-menu-section{border-top:1px solid var(--line,#d7e4de);padding-top:20px}
 .public-header .gc-menu-section a{min-height:44px;display:flex;align-items:center}
 .public-header .gc-menu-actions{display:contents}
 .public-header .gc-menu-contact{order:1}
 .public-header .gc-menu-phone{min-height:44px}
 .public-header .gc-menu-booking{order:3;background:var(--mint,#e9f4ed);padding:20px;border-radius:12px}
 .public-header .gc-menu-calculate{width:100%;text-align:center}
 .public-header .gc-menu-destinations{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
}
@media(max-width:480px){.public-header .gc-menu-destinations{grid-template-columns:1fr}.public-header .gc-starting-price span{flex-basis:100%}.public-header .gc-menu-trigger{padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.public-header .gc-mega-menu{animation:none}.public-header .header-phone-cta{transition:none}}

/* Homepage transparency section and photographic commercial service cards. */
.gc-budget{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;padding-block:40px;border-bottom:1px solid var(--line,#d7e4de)}
.gc-budget h2{font-size:clamp(26px,3vw,38px);line-height:1.15;max-width:21ch;margin:8px 0 16px}.gc-budget p{line-height:1.65}.gc-budget .btn{margin-top:12px;white-space:normal;gap:10px}.gc-budget .btn svg{width:18px;height:18px;flex:none}
.gc-budget-rate{min-width:0;border:1px solid var(--line,#d7e4de);border-radius:16px;padding:24px;background:#f3f8f5;color:#153f35}.gc-budget-rate p{margin:8px 0}.gc-budget-amount{display:flex;flex-direction:column;gap:4px;font-size:16px}.gc-budget-amount strong{font-size:44px;line-height:1.1;white-space:nowrap}.gc-budget-rate .gc-budget-note{font-size:12px;line-height:1.6}
.gc-service-section .gc-service-intro{max-width:760px;line-height:1.65}.gc-service-section .gc-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:28px 0}.gc-service-section .gc-service-card{min-width:0;overflow:hidden;border:1px solid var(--line,#d7e4de);border-radius:16px;background:#fff;display:flex;flex-direction:column;box-shadow:0 3px 12px #163c3008;transition:transform .2s,border-color .2s,box-shadow .2s}.gc-service-section .gc-service-card--priority{border-color:#87b59c}.gc-service-section .gc-service-media{margin:0;position:relative;aspect-ratio:16/9;background:#edf4ef}.gc-service-section .gc-service-media img{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover}.gc-service-section .gc-service-media figcaption{position:absolute;bottom:10px;left:12px;right:12px;width:fit-content;padding:4px 8px;background:#fff;color:#244a3d;font-size:11px;line-height:1.4;border-radius:4px}.gc-service-section .gc-service-body{padding:24px;display:flex;flex:1;flex-direction:column;align-items:flex-start}.gc-service-section .gc-service-body .gc-service-kicker{font-size:10px;font-weight:700;letter-spacing:.09em;line-height:1.5;color:#37694f;margin:0 0 9px}.gc-service-section .gc-service-card h3{font-size:22px!important;line-height:1.25!important;margin:0 0 12px;overflow-wrap:anywhere}.gc-service-section .gc-service-copy{font-size:15px;line-height:1.6;margin:0 0 22px}.gc-service-link{display:inline-flex;align-items:center;gap:8px;color:#126951;font-size:14px;font-weight:700;line-height:1.5;text-decoration:none;min-height:44px}.gc-service-card .gc-service-link{margin-top:auto}.gc-service-link svg{width:18px;height:18px;flex:none;transition:transform .2s}.gc-service-link:focus-visible{outline:3px solid #147b59;outline-offset:4px;border-radius:3px}.gc-service-link:hover{text-decoration:underline;text-underline-offset:4px}.gc-service-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.gc-service-details article{position:relative;scroll-margin-top:110px;border-top:1px solid #d7e4de;padding-top:24px;min-width:0}.gc-service-details h3{font-size:22px!important;line-height:1.3!important;margin:0 0 12px}.gc-service-details p{font-size:16px;line-height:1.7}.gc-service-alias{position:absolute;top:0;scroll-margin-top:110px}.gc-destination-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}.gc-destination-grid article{min-width:0;padding:24px;border:1px solid #d7e4de;border-radius:14px;display:flex;flex-direction:column}.gc-destination-grid h3{font-size:21px!important;line-height:1.3!important;margin:0 0 12px}.gc-destination-grid p{line-height:1.6;margin:0 0 16px}.gc-destination-grid .gc-service-link{margin-top:auto}.country-calculator .gc-budget{display:none}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.gc-service-section .gc-service-card:hover{transform:translateY(-3px);border-color:#88b49c;box-shadow:0 7px 20px #163c3010}.gc-service-link:hover svg{transform:translateX(3px)}}
@media(prefers-reduced-motion:reduce){.gc-service-section .gc-service-card,.gc-service-link svg{transition:none}}
@media(max-width:1000px){.gc-service-section .gc-service-grid,.gc-destination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gc-budget{gap:24px}}
@media(max-width:600px){.gc-budget{grid-template-columns:1fr;padding-block:28px}.gc-budget-rate{padding:20px}.gc-service-section .gc-service-grid,.gc-service-detail-grid,.gc-destination-grid{grid-template-columns:1fr}.gc-service-section .gc-service-body{padding:22px}.gc-service-section .gc-service-card h3{font-size:21px!important}.gc-service-section .gc-service-media{aspect-ratio:16/9}}

/* Scoped presentation corrections and branded not-found page. */
.gc-budget-amount strong{font-size:clamp(34px,4vw,44px)}
.gc-service-section .gc-service-card{position:relative;scroll-margin-top:110px}
.gc-not-found{padding-block:clamp(48px,8vw,100px);max-width:1200px;min-height:48vh}.gc-not-found h1{max-width:22ch;font-size:clamp(30px,3.2vw,44px)!important;line-height:1.15!important;letter-spacing:-.025em;margin:16px 0 22px}.gc-not-found>p{max-width:620px;font-size:18px;line-height:1.65}.gc-not-found-actions{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0 16px}.gc-not-found-actions .btn{white-space:normal;text-align:center}.gc-not-found-actions .secondary{background:#fff;color:#123f35;border:1px solid #a6c5b2}.gc-not-found a:focus-visible{outline:3px solid #147b59;outline-offset:4px}
@media(max-width:600px){.gc-not-found-actions{flex-direction:column}.gc-not-found-actions .btn{width:100%}.gc-not-found>p{font-size:16px}}

/* Copy-specific layout: keep explanatory trust text readable. */
.gc-home-points>div{align-items:center;padding-top:18px;padding-bottom:18px}.gc-home-points p{margin:0}.gc-home-points .strip-icon svg{width:24px;height:24px}.country-service-grid .country-service-choice{grid-column:1/-1;line-height:1.65;margin:12px 0 0}

/* Keep page scrolling available without showing a scrollbar on the calculator and destination landing pages. */
html.page-scrollbar-hidden{scrollbar-width:none;-ms-overflow-style:none}
html.page-scrollbar-hidden::-webkit-scrollbar{display:none;width:0;height:0}
html.page-scrollbar-visible{overflow-y:scroll;scrollbar-width:thin;scrollbar-color:#8b9a94 #eef2f0}
html.page-scrollbar-visible::-webkit-scrollbar{display:block;width:12px;height:12px}
html.page-scrollbar-visible::-webkit-scrollbar-track{background:#eef2f0}
html.page-scrollbar-visible::-webkit-scrollbar-thumb{border:3px solid #eef2f0;border-radius:8px;background:#8b9a94}


.gc-budget #gc-budget-title{max-width:34ch;font-size:clamp(24px,2.5vw,32px)}

