/*
 * Travora Shared Header / Navigation / Footer — v1.8.0
 * ------------------------------------------------------------
 * Global chrome must render identically on every template. No page-specific
 * stylesheet may own .site-header, .main-nav, .mobile-nav or .footer rules.
 */

.site-header{
  position:sticky;
  top:18px;
  z-index:100;
  width:100%;
  padding-inline:var(--site-gutter);
  overflow:visible;
}

.header-shell{
  width:100%;
  max-width:var(--site-container);
  min-height:82px;
  margin-inline:auto;
  padding:16px 18px 16px 24px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:28px;
  background:rgba(11,28,44,.72);
  border:1px solid rgba(230,247,255,.11);
  border-radius:20px;
  box-shadow:0 18px 60px rgba(0,10,30,.28);
  backdrop-filter:blur(20px);
  overflow:visible;
  isolation:isolate;
}
.site-header.is-scrolled .header-shell,
.site-header.scrolled .header-shell{border-color:rgba(0,191,255,.24);background:rgba(11,28,44,.88);}

.brand-logo{display:inline-flex;width:fit-content;align-items:center;}
.brand-logo img{display:block;width:188px;height:auto;}

.main-nav{display:flex;align-items:center;justify-content:center;gap:34px;color:rgba(230,247,255,.78);font-size:var(--fs-small);font-weight:600;}
.main-nav ul,.mobile-nav ul{display:contents;margin:0;padding:0;}
.main-nav li,.mobile-nav li{list-style:none;margin:0;padding:0;}
/* Isolation guard: page/body list rules can never mutate shared navigation geometry. */
body.travora-site .site-header :is(.main-nav,.mobile-nav) :is(ul,ol){margin:0;padding:0;list-style:none;}
body.travora-site .site-header :is(.main-nav,.mobile-nav) li{margin:0;padding:0;list-style:none;color:inherit;font-size:inherit;line-height:inherit;}
.main-nav a,.nav-dropdown{color:rgba(230,247,255,.78);transition:color .25s ease;}
.main-nav a:hover,.nav-dropdown:hover{color:var(--light);}
.nav-dropdown{display:inline-flex;align-items:center;gap:7px;}
.nav-dropdown span{color:var(--blue);font-size:14px;line-height:1;}

.header-cta{
  justify-self:end;
  display:inline-flex;
  min-height:46px;
  align-items:center;
  justify-content:center;
  padding:0 22px;
  border-radius:10px;
  border:1px solid rgba(0,191,255,.75);
  background:linear-gradient(180deg,rgba(0,191,255,.16),rgba(0,191,255,.04));
  color:var(--light);
  font-size:var(--fs-small);
  font-weight:700;
  box-shadow:0 0 0 3px rgba(0,191,255,.06),0 12px 30px rgba(0,191,255,.12);
  transition:.25s ease;
}
.header-cta:hover{transform:translateY(-2px);background:var(--blue);color:#051524;}
.header-cta:active{transform:translateY(0);}

.mobile-menu-btn{
  display:none;
  justify-self:end;
  width:46px;
  height:46px;
  border:1px solid rgba(0,191,255,.5);
  border-radius:12px;
  background:rgba(0,191,255,.08);
  cursor:pointer;
}
.mobile-menu-btn span{display:block;width:20px;height:2px;margin:5px auto;background:var(--light);transition:.25s ease;}
.mobile-menu-btn.active span:first-child{transform:translateY(3.5px) rotate(45deg);}
.mobile-menu-btn.active span:last-child{transform:translateY(-3.5px) rotate(-45deg);}
.header-cta:focus-visible,.mobile-menu-btn:focus-visible,.submenu-toggle:focus-visible,.footer-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px;box-shadow:var(--focus-ring);}

.mobile-nav{
  position:fixed;
  inset:112px var(--site-gutter) auto var(--site-gutter);
  z-index:99;
  display:none;
  flex-direction:column;
  padding:16px;
  background:rgba(11,28,44,.96);
  border:1px solid rgba(230,247,255,.12);
  border-radius:20px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(18px);
}
.mobile-nav a{padding:15px 10px;color:rgba(230,247,255,.78);font-weight:600;border-bottom:1px solid rgba(230,247,255,.08);}
.mobile-nav a:last-child{color:var(--blue);border-bottom:none;}

/* WordPress menu normalization + two-level navigation. */
.nav-menu,.nav-menu ul{margin:0;padding:0;list-style:none;}
.main-nav>.nav-menu{display:flex;align-items:center;justify-content:center;gap:clamp(18px,2vw,34px);}
.main-nav .menu-item{position:relative;}
.main-nav .menu-item>a{display:flex;align-items:center;gap:8px;padding:12px 0;white-space:nowrap;}
.nav-chevron,.main-nav .menu-item-has-children>a::after{width:7px;height:7px;border-right:1.5px solid var(--blue);border-bottom:1.5px solid var(--blue);transform:rotate(45deg) translateY(-2px);transition:transform .2s ease;content:"";}
.main-nav .menu-item-has-children:hover>a::after,.main-nav .menu-item-has-children:focus-within>a::after{transform:rotate(225deg) translate(-2px,-2px);}
.main-nav .sub-menu{
  display:block;
  position:absolute;
  top:calc(100% - 1px);
  left:50%;
  z-index:1000;
  min-width:260px;
  margin:0;
  padding:14px 10px 10px;
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,6px);
  border:1px solid var(--border);
  border-radius:16px;
  background:rgba(7,26,46,.98);
  box-shadow:var(--shadow);
  backdrop-filter:blur(20px);
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s;
}
.main-nav .sub-menu::before{position:absolute;right:0;bottom:100%;left:0;height:2px;content:"";}
.main-nav .menu-item-has-children:hover>.sub-menu,
.main-nav .menu-item-has-children:focus-within>.sub-menu,
.main-nav .menu-item-has-children.submenu-active>.sub-menu{opacity:1;visibility:visible;transform:translate(-50%,0);pointer-events:auto;transition-delay:0s;}
.main-nav .menu-item-has-children.submenu-active>a::after{transform:rotate(225deg) translate(-2px,-2px);}
.main-nav .sub-menu a{display:block;padding:11px 13px;border-radius:9px;color:rgba(230,247,255,.74);white-space:normal;}
.main-nav .sub-menu a:hover,.main-nav .sub-menu a:focus-visible{background:rgba(0,191,255,.09);color:var(--white);}
.main-nav .current-menu-item>a,.main-nav .current-menu-ancestor>a,.main-nav .current_page_item>a{color:var(--white);}
.main-nav .current-menu-item>a::before,.main-nav .current-menu-ancestor>a::before{position:absolute;right:0;bottom:5px;left:0;height:2px;border-radius:2px;background:var(--blue);content:"";}

/* Solutions submenu grouping belongs to navigation, not to a Solutions page asset. */
.main-nav .sub-menu .solution-group-start{margin-top:9px;padding-top:12px;border-top:1px solid rgba(168,195,214,.13);}
.main-nav .sub-menu .solution-group-booking:first-child::before,
.main-nav .sub-menu .solution-group-booking.solution-group-start::before,
.main-nav .sub-menu .solution-group-automation.solution-group-start::before{
  display:block;
  padding:2px 13px 6px;
  color:rgba(85,216,255,.72);
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.main-nav .sub-menu .solution-group-booking:first-child::before,
.main-nav .sub-menu .solution-group-booking.solution-group-start::before{content:"Booking systems";}
.main-nav .sub-menu .solution-group-automation.solution-group-start::before{content:"Automation systems";}

.mobile-nav[hidden]{display:none!important;}
.mobile-nav.active{display:flex;max-height:calc(100vh - 128px);max-height:calc(100dvh - 128px);overflow-y:auto;overscroll-behavior:contain;}
.mobile-nav>.nav-menu{width:100%;}
.mobile-nav .menu-item{position:relative;list-style:none;}
.mobile-nav .menu-item>a{display:block;padding:14px 46px 14px 10px;border-bottom:1px solid rgba(230,247,255,.08);}
.mobile-nav .sub-menu{display:none;padding:4px 0 8px 14px;}
.mobile-nav .menu-item.submenu-open>.sub-menu{display:block;}
.mobile-nav .sub-menu a{padding:11px 12px;color:var(--muted);font-size:14px;}
.mobile-nav .sub-menu .solution-group-start{margin-top:8px;padding-top:10px;border-top:1px solid rgba(168,195,214,.13);}
.submenu-toggle{position:absolute;top:4px;right:0;width:44px;height:44px;padding:0;border:0;border-radius:9px;background:rgba(0,191,255,.08);color:var(--white);}
.submenu-toggle::before{display:inline-block;width:8px;height:8px;border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(45deg) translate(-1px,-1px);transition:transform .2s ease;content:"";}
.submenu-open>.submenu-toggle::before{transform:rotate(225deg) translate(-1px,-1px);}
.mobile-nav-cta{margin-top:10px!important;border:1px solid rgba(0,191,255,.5)!important;border-radius:11px;text-align:center;color:var(--blue)!important;}
body.travora-menu-open{overflow:hidden;}

/* Footer */
.footer{position:relative;width:100%;padding:80px 0 90px;}
.footer-shell{
  width:min(var(--site-container),calc(100% - (var(--site-gutter) * 2)));
  max-width:var(--site-container);
  margin-inline:auto;
  padding:56px 48px 38px;
  border-radius:32px;
  border:1px solid rgba(230,247,255,.10);
  background:radial-gradient(circle at 80% 0%,rgba(0,191,255,.10),transparent 30%),rgba(16,42,67,.45);
  box-shadow:var(--shadow);
}
.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr 1.25fr;gap:48px;}
.footer-logo img{width:178px;}
.footer-tagline{margin-top:24px;color:var(--blue);font-weight:600;}
.footer-description{max-width:320px;margin-top:18px;color:var(--muted);font-size:var(--fs-small);line-height:var(--lh-small);}
.footer-contact{margin-top:22px;}
.footer-contact p{margin:8px 0;color:rgba(230,247,255,.78);font-size:var(--fs-small);font-weight:600;}
.footer-contact span{display:inline-block;width:22px;color:var(--blue);}
.footer-contact a{color:inherit;}
.footer-contact a:hover{color:var(--blue);}
.footer-col h3,.footer-cta-col h3{margin:0 0 18px;color:var(--light);font-family:var(--font-display);font-size:var(--fs-h6);line-height:var(--lh-heading);font-weight:600;}
.footer-col a{display:block;margin:10px 0;color:rgba(230,247,255,.66);font-size:var(--fs-small);font-weight:600;transition:color .25s ease;}
.footer-col a:hover{color:var(--blue);}
.footer-cta-col h3{max-width:270px;color:rgba(230,247,255,.88);}
.footer-btn{display:flex;width:fit-content;min-width:172px;min-height:44px;align-items:center;justify-content:center;margin-top:10px;padding:0 20px;border-radius:10px;font-size:var(--fs-small);font-weight:700;transition:transform .22s ease,border-color .22s ease,background-color .22s ease,color .22s ease;}
.footer-btn:hover{transform:translateY(-2px);}
.footer-btn:active{transform:translateY(0);}
.footer-btn-primary{background:var(--blue);color:#041527;}
.footer-btn-secondary{border:1px solid rgba(212,175,55,.55);background:rgba(212,175,55,.08);color:var(--light);}
.footer-bottom{margin-top:64px;padding-top:28px;border-top:1px solid rgba(230,247,255,.08);text-align:center;}
.footer-bottom p,.footer-bottom a{margin:0;color:rgba(230,247,255,.58);font-size:var(--fs-small);font-weight:500;}
.footer-bottom a{text-decoration:underline;text-decoration-color:rgba(0,191,255,.3);text-underline-offset:3px;}

body.travora-site.admin-bar .site-header{top:calc(18px + 32px);}
body.travora-site.admin-bar .mobile-nav{top:144px;}
body.travora-site.admin-bar .mobile-nav.active{max-height:calc(100vh - 160px);max-height:calc(100dvh - 160px);}

@media(max-width:1180px){
  .main-nav{gap:22px;}
  .brand-logo img{width:165px;}
  .footer-grid{grid-template-columns:1.2fr 1fr 1fr;}
  .footer-cta-col{grid-column:span 3;}
}
@media(max-width:1024px){
  .header-shell{grid-template-columns:1fr auto;}
  .main-nav,.header-cta{display:none;}
  .main-nav>.nav-menu{display:none;}
  .mobile-menu-btn{display:block;}
}
@media(max-width:782px){
  body.travora-site.admin-bar .site-header{top:calc(12px + 46px);}
  body.travora-site.admin-bar .mobile-nav{top:calc(96px + 46px);}
  body.travora-site.admin-bar .mobile-nav.active{max-height:calc(100vh - 158px);max-height:calc(100dvh - 158px);}
}
@media(max-width:720px){
  .site-header{top:12px;padding-inline:var(--site-gutter);}
  .header-shell{width:100%;min-height:76px;padding:14px;border-radius:16px;}
  .brand-logo img{width:145px;}
  .mobile-nav{inset:96px var(--site-gutter) auto var(--site-gutter);}
  .footer{padding:56px 0 70px;}
  .footer-shell{width:calc(100% - (var(--site-gutter) * 2));padding:38px 24px 30px;border-radius:24px;}
  .footer-grid{grid-template-columns:1fr;gap:34px;}
  .footer-cta-col{grid-column:auto;}
  .footer-bottom{margin-top:42px;text-align:left;}
  .footer-bottom p,.footer-bottom a{line-height:1.8;}
}

/* Skip link is global chrome and must never be page-owned. */
.skip-link:focus{
  position:fixed!important;
  top:12px;
  left:12px;
  z-index:1000000;
  width:auto;
  height:auto;
  padding:11px 15px;
  clip:auto!important;
  clip-path:none;
  border-radius:var(--radius-200);
  background:var(--color-accent-strong);
  color:#071521;
  box-shadow:var(--shadow-md);
}

body.travora-site.admin-bar .skip-link:focus{top:44px;}
@media(max-width:782px){body.travora-site.admin-bar .skip-link:focus{top:58px;}}
