/* ==========================================================================
   shared-components.css
   Shared navbar + footer styles for pages that mount the components via
   #sharedNavbar / #sharedFooter and components/shared-components.js
   (Contact, Destinations, Programs, and the Destination-*.html pages).

   This is the same navbar/footer design used inline on the pages that embed
   their own header and footer directly (About, Careers, Login, etc.) — kept
   here as one shared file so it isn't duplicated across every page that
   injects the components at runtime instead.
   ========================================================================== */

/* ---------------------------------------------------------------------- */
/* Navbar (header + mobile drawer)                                        */
/* ---------------------------------------------------------------------- */
  /* Scoped to these two IDs, not a body/wrapper class, since this markup
     is injected at runtime by shared-components.js into #sharedNavbar. */
  #caHeader, #caDrawer{ font-family:'Inter',sans-serif; }
  #caHeader a, #caDrawer a{ text-decoration:none !important; color:inherit; }
  #caHeader ul, #caDrawer ul{ list-style:none !important; margin:0 !important; padding:0 !important; }
  #caHeader button, #caDrawer button{
    font:inherit !important; background:none !important; background-color:transparent !important;
    border:none !important; box-shadow:none !important; outline:none !important;
    margin:0 !important; border-radius:0 !important;
    appearance:none !important; -webkit-appearance:none !important; -moz-appearance:none !important;
    cursor:pointer !important; color:inherit !important; text-align:left !important;
  }
  #caHeader svg, #caDrawer svg{ display:block; }
  body.ca-lock{ overflow:hidden; height:100%; }

  /* ---------- Header bar (single row, all breakpoints) ---------- */
  .ca-header{ position:sticky; top:0; z-index:200; }
  .ca-bar{
    height:64px;
    background:#EAF4FC;
    border-bottom:1px solid #C9E1F5;
    display:flex; align-items:center; justify-content:space-between;
    padding:0 16px; gap:16px;
  }

  .ca-logo{ display:flex; align-items:center; gap:9px; flex-shrink:0; }
  .ca-mark{
    width:30px; height:30px; flex-shrink:0; position:relative;
    background:#12203D; border-radius:8px;
    display:flex; align-items:center; justify-content:center;
  }
  .ca-mark::after{
    content:""; position:absolute; top:4px; right:4px;
    width:5px; height:5px; background:#E0A72E; border-radius:50%;
  }
  .ca-wordmark{ font-size:19px; font-weight:600; color:#12203D; white-space:nowrap; }
  .ca-wordmark em{ font-style:normal; color:#2E90D6; }

  /* Desktop inline nav */
  .ca-desktop-nav{ display:none; align-items:center; gap:28px; font-size:15px; font-weight:500; }
  .ca-nitem{ position:relative; }
  .ca-nitem > button, .ca-nitem > a{
    display:flex !important; align-items:center; gap:5px; padding:10px 0 !important;
    color:#12203D; white-space:nowrap; transition:color .15s ease;
  }
  .ca-nitem > button:hover, .ca-nitem > a:hover{ color:#2E90D6; }
  .ca-chev{ transition:transform .18s ease; }
  .ca-nitem:hover .ca-chev{ transform:rotate(180deg); }

  .ca-drop{
    position:absolute; left:0; top:100%; padding-top:10px; width:216px;
    opacity:0; visibility:hidden; transform:translateY(6px);
    transition:opacity .15s ease, transform .15s ease, visibility .15s;
  }
  .ca-drop.ca-drop-r{ left:auto; right:0; }
  .ca-nitem:hover .ca-drop{ opacity:1; visibility:visible; transform:translateY(0); }
  .ca-drop-inner{
    background:#fff; border:1px solid #C9E1F5; border-radius:10px;
    border-top:2px solid #E0A72E;
    box-shadow:0 14px 30px -10px rgba(18,32,61,0.2);
    padding:6px;
  }
  .ca-drop-inner a{
    display:block; padding:9px 12px; border-radius:7px;
    font-size:14px; font-weight:400; color:#12203D; transition:background .15s ease;
  }
  .ca-drop-inner a:hover{ background:#EAF4FC; }

  /* Right cluster */
  .ca-right{ display:flex; align-items:center; gap:18px; flex-shrink:0; }
  .ca-utility{ display:none; align-items:center; gap:10px; font-size:13px; color:#5B7291; }
  .ca-utility a{ display:flex; align-items:center; gap:5px; transition:color .15s ease; }
  .ca-utility a:hover{ color:#12203D; }
  .ca-usep{ color:#C9E1F5; }

  .ca-cta{
    display:none; align-items:center !important; gap:8px !important;
    background:#12203D !important; background-color:#12203D !important;
    color:#fff !important; border-radius:999px !important;
    padding:8px 8px 8px 18px !important; font-family:'Space Grotesk',sans-serif !important;
    font-weight:600 !important; font-size:14px !important; border:none !important;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .ca-cta:hover{ background:#0E1930 !important; transform:translateY(-1px); box-shadow:0 8px 18px -6px rgba(18,32,61,.35); }
  .ca-cta-arrow{
    width:23px !important; height:23px !important; flex-shrink:0;
    background:#E0A72E !important; color:#0E1930 !important;
    border-radius:50% !important; display:flex !important; align-items:center; justify-content:center;
  }

  /* Menu trigger — visible below 1024px */
  .ca-menubtn{
    display:flex !important; align-items:center; gap:8px;
    width:44px !important; height:44px !important; justify-content:center;
    color:#12203D; flex-shrink:0; opacity:1 !important; visibility:visible !important;
    touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  }
  .ca-menubtn svg{ width:20px; height:20px; display:block !important; }
  .ca-menubtn{ position:relative; z-index:9999; }
  .ca-drawer, #caBackdrop{ pointer-events:auto; }

  @media (min-width:1024px){
    .ca-desktop-nav{ display:flex; }
    .ca-utility{ display:flex; }
    .ca-cta{ display:inline-flex; }
    .ca-menubtn{ display:none !important; }
  }
  @media (min-width:640px){
    .ca-bar{ padding:0 24px; }
  }

  /* ---------- Slide-in mobile drawer ---------- */
  #caBackdrop{
    position:fixed; inset:0; z-index:290;
    background:rgba(14,25,48,0.45);
    opacity:0; visibility:hidden;
    transition:opacity .25s ease, visibility .25s;
  }
  #caBackdrop.ca-open{ opacity:1; visibility:visible; }

  .ca-drawer{
    position:fixed; top:0; right:0; z-index:300;
    height:100vh; height:100dvh;
    width:min(88vw, 340px);
    background:#EAF4FC;
    box-shadow:-18px 0 44px -14px rgba(18,32,61,0.4);
    display:flex; flex-direction:column;
    transform:translateX(100%);
    transition:transform .28s ease;
  }
  .ca-drawer.ca-open{ transform:translateX(0); }

  .ca-otop{
    height:64px; flex-shrink:0;
    display:flex; align-items:center; justify-content:space-between;
    padding:0 14px 0 18px; border-bottom:1px solid #C9E1F5;
  }
  .ca-oclose{
    display:flex !important; align-items:center; justify-content:center;
    width:44px !important; height:44px !important; color:#12203D;
    touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  }
  .ca-oclose svg{ width:20px; height:20px; }

  .ca-obody{ flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:8px 18px 24px; }

  .ca-olist{ padding-top:4px; }
  .ca-oitem{ border-bottom:1px solid #C9E1F5; }
  .ca-otoggle{
    width:100% !important; display:flex !important; align-items:center; justify-content:space-between;
    padding:15px 2px !important; min-height:48px;
    font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:600; color:#12203D;
    touch-action:manipulation;
  }
  .ca-osym{ position:relative; width:15px; height:15px; flex-shrink:0; }
  .ca-osym::before, .ca-osym::after{
    content:""; position:absolute; background:#12203D; border-radius:1px;
    transition:transform .2s ease, opacity .2s ease;
  }
  .ca-osym::before{ left:0; top:6.5px; width:15px; height:2px; }
  .ca-osym::after{ left:6.5px; top:0; width:2px; height:15px; }
  .ca-oitem.ca-open .ca-osym::after{ transform:rotate(90deg); opacity:0; }

  .ca-osub{ display:none; padding:0 2px 12px 2px; }
  .ca-oitem.ca-open .ca-osub{ display:block; }
  .ca-osub a{
    display:flex; align-items:center; min-height:42px;
    font-size:14px; font-weight:400; color:#5B7291;
  }
  .ca-osub a:hover{ color:#2E90D6; }

  .ca-oplain > a{
    display:flex; align-items:center; width:100%;
    padding:15px 2px; min-height:48px;
    font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:600; color:#12203D;
  }

  .ca-ofooter{ margin-top:18px; }
  .ca-octa{
    display:flex !important; align-items:center !important; justify-content:center; gap:8px !important;
    padding:15px !important; border-radius:999px !important;
    background:#12203D !important; background-color:#12203D !important; color:#fff !important;
    font-family:'Space Grotesk',sans-serif !important; font-weight:600 !important; font-size:15px !important;
    border:none !important; text-decoration:none !important;
  }
  .ca-outil{
    display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
    margin-top:16px; font-size:13px; color:#5B7291;
  }
  .ca-outil a{ display:flex; align-items:center; gap:6px; }
  .ca-outil-sep{ color:#C9E1F5; }

  /* Mobile interaction hardening */
  @media (max-width:1023px){
    #caHeader{position:sticky;top:0;z-index:400;}
    #caHeader .ca-bar{position:relative;z-index:401;}
    #caMenuBtn{position:relative;z-index:402;pointer-events:auto;touch-action:manipulation;}
    #caBackdrop{z-index:490;}
    #caDrawer{z-index:500;}
    #caDrawer a,#caDrawer button{pointer-events:auto;touch-action:manipulation;}
  }

  @media (min-width:1024px){
    .ca-drawer, #caBackdrop{ display:none !important; }
  }

/* ---------------------------------------------------------------------- */
/* Footer                                                                  */
/* ---------------------------------------------------------------------- */
  footer#clearapply-footer{ background:#EAF4FC; color:#123A5E; }

  .font-display{ font-family:'Space Grotesk',sans-serif; }

  /* CTA strip */
  #clearapply-footer .cta-strip{
    border-top:1px solid #C9E1F5; border-bottom:1px solid #C9E1F5;
    padding:38px 0;
    display:flex; align-items:center; justify-content:space-between; gap:32px;
    flex-wrap:wrap;
  }
  #clearapply-footer .cta-strip h3{ font-size:26px; font-weight:600; }
  #clearapply-footer .cta-strip p{ color:#5E82A3; font-size:15px; margin-top:6px; }
  #clearapply-footer .cta-buttons{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
  #clearapply-footer .cta-btn, #clearapply-footer .cta-btn-outline{
    font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:14px;
    padding:11px 20px; border-radius:8px; white-space:nowrap;
  }
  #clearapply-footer .cta-btn{ background:#E0A72E; color:#241C05; transition:transform .15s ease, box-shadow .15s ease; }
  #clearapply-footer .cta-btn:hover{ transform:translateY(-1px); box-shadow:0 8px 18px -6px rgba(224,167,46,0.4); }
  #clearapply-footer .cta-btn-outline{ border:1px solid #C9E1F5; color:#123A5E; transition:border-color .15s ease, background .15s ease; }
  #clearapply-footer .cta-btn-outline:hover{ border-color:#2E90D6; background:rgba(46,144,214,0.08); }

  /* Main grid */
  #clearapply-footer .foot-grid{
    display:grid; width:100%;
    grid-template-columns:minmax(300px,1.7fr) repeat(4, minmax(140px,1fr));
    align-items:start; gap:42px;
    padding:52px 0;
  }
  #clearapply-footer .foot-brand{ grid-column:auto; }

  #clearapply-footer .mark{
    width:34px; height:34px; flex-shrink:0;
    background:#123A5E; border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    position:relative;
  }
  #clearapply-footer .mark::after{
    content:""; position:absolute; top:5px; right:5px;
    width:5px; height:5px; background:#E0A72E; border-radius:50%;
  }
  #clearapply-footer .brand-row{ display:flex; align-items:center; gap:10px; width:max-content; }
  #clearapply-footer .brand-name{ font-size:18px; font-weight:600; }
  #clearapply-footer .brand-name span{ color:#2E90D6; }
  #clearapply-footer .foot-brand p.desc{ color:#5E82A3; font-size:14px; margin-top:16px; max-width:390px; line-height:1.6; }

  #clearapply-footer .newsletter{ display:flex; margin-top:24px; max-width:390px; }
  #clearapply-footer .newsletter input{
    flex:1; background:#fff; border:1px solid #B8D8F0; border-right:none;
    color:#123A5E; font-size:14px; padding:10px 14px; border-radius:8px 0 0 8px; min-width:0;
  }
  #clearapply-footer .newsletter input::placeholder{ color:#7FA5C2; }
  #clearapply-footer .newsletter input:focus{ outline:none; border-color:#2E90D6; }
  #clearapply-footer .newsletter button{
    background:#2E90D6; color:#FFFFFF; border:none; cursor:pointer;
    font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:14px;
    padding:0 18px; border-radius:0 8px 8px 0; flex-shrink:0;
  }
  #clearapply-footer .newsletter-note{ font-size:11px; color:#5E82A3; margin-top:8px; }

  #clearapply-footer .socials{ display:flex; align-items:center; gap:10px; margin-top:24px; }
  #clearapply-footer .social-btn{
    width:36px; height:36px; border-radius:50%;
    background:#EAF4FC; border:1px solid #9FC9E8; color:#2E90D6;
    display:flex; align-items:center; justify-content:center;
    transition:color .15s ease, border-color .15s ease, background .15s ease;
  }
  #clearapply-footer .social-btn:hover{ color:#FFFFFF; background:#2E90D6; border-color:#2E90D6; }

  #clearapply-footer .foot-col h4{ font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:600; margin-bottom:16px; }
  #clearapply-footer .foot-col ul{ list-style:none; margin:0; padding:0; }
  #clearapply-footer .foot-col ul li{ margin-bottom:10px; }
  #clearapply-footer .foot-link{ color:#5E82A3; font-size:14px; text-decoration:none; transition:color .15s ease; }
  #clearapply-footer .foot-link:hover{ color:#2E90D6; }

  /* Bottom bar */
  #clearapply-footer .bottom-bar{
    border-top:1px solid #C9E1F5; padding:20px 0;
    display:flex; align-items:center; justify-content:space-between;
    font-size:13px; color:#5E82A3; gap:20px; flex-wrap:wrap;
  }
  #clearapply-footer .bottom-links{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; justify-content:center; }
  #clearapply-footer .locale{ display:flex; align-items:center; gap:8px; }
  #clearapply-footer .flag-dot{ width:16px; height:11px; border-radius:2px; overflow:hidden; }

  @media (max-width:900px){
    #clearapply-footer .foot-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:32px 24px; }
    #clearapply-footer .foot-brand{ grid-column:1/-1; }
  }
  @media (max-width:640px){
    #clearapply-footer .cta-strip, #clearapply-footer .bottom-bar{ flex-direction:column; align-items:flex-start; }
    #clearapply-footer .cta-buttons{ justify-content:flex-start; width:100%; }
    #clearapply-footer .foot-grid{ grid-template-columns:1fr 1fr; gap:28px 18px; }
    #clearapply-footer .foot-brand{ grid-column:1/-1; }
  }
