
/* THERVIQ horizontal logo polish v29 */
:root{
  --thv27-dark:#07131d;
  --thv27-dark-2:#0c2230;
  --thv27-green:#12c578;
  --thv27-green-2:#0f9b60;
  --thv27-line:#dfe8ee;
  --thv27-text:#102536;
  --thv27-muted:#687d8d;
}
*{box-sizing:border-box}
body{overflow-x:hidden}
img{display:block;max-width:100%}

/* Header shell */
.thv27-header{
  position:sticky;
  top:0;
  z-index:1400;
  background:rgba(7,19,29,.95);
  border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(16px);
}
.thv27-header-inner{
  width:min(1240px,calc(100% - 32px));
  min-height:98px;
  margin-inline:auto;
  display:grid;
  grid-template-columns:220px minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
}
.thv27-brand{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:72px;
}
.thv27-brand-shell{
  width:190px;
  height:72px;
  padding:12px 18px;
  border-radius:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(244,248,250,.96));
  box-shadow:
    0 18px 40px rgba(0,0,0,.22),
    0 0 0 1px rgba(255,255,255,.85) inset;
  position:relative;
  overflow:hidden;
}
.thv27-brand-shell::before{
  content:"";
  position:absolute;
  inset:-40% auto auto -10%;
  width:70%;
  height:180%;
  transform:rotate(24deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);
  pointer-events:none;
}
.thv27-brand-shell img{
  width:100%;
  max-width:158px;
  max-height:46px;
  object-fit:contain;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.08));
  position:relative;
  z-index:1;
}

/* Menu styles (compatible with v26 JS) */
.thv26-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:0;
}
.thv26-nav>a,
.thv26-services-toggle{
  min-height:44px;
  padding:11px 14px;
  border:0;
  border-radius:13px;
  background:transparent;
  color:#e8f1f5;
  font:inherit;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
  transition:background .18s ease,color .18s ease;
}
.thv26-nav>a:hover,
.thv26-services-toggle:hover{
  background:rgba(255,255,255,.055);
  color:#c4f7de;
}
.thv26-nav-group{position:relative}
.thv26-services-toggle{
  display:flex;
  align-items:center;
  gap:8px;
}
.thv26-services-toggle>span{
  width:8px;
  height:8px;
  border-left:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(-45deg);
  transition:transform .2s ease;
}
.thv26-nav-group.open .thv26-services-toggle>span{transform:rotate(135deg)}
.thv26-services-menu{
  position:absolute;
  top:calc(100% + 14px);
  right:0;
  width:430px;
  padding:12px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  border-radius:25px;
  background:rgba(255,255,255,.99);
  border:1px solid rgba(16,37,54,.08);
  box-shadow:0 30px 80px rgba(0,0,0,.24);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px) scale(.97);
  transform-origin:top right;
  transition:opacity .2s ease, visibility .2s ease, transform .2s ease;
}
.thv26-services-menu::before{
  content:"";
  position:absolute;
  top:-7px;
  right:28px;
  width:14px;
  height:14px;
  background:#fff;
  border-top:1px solid rgba(16,37,54,.08);
  border-right:1px solid rgba(16,37,54,.08);
  transform:rotate(-45deg);
}
.thv26-nav-group.open .thv26-services-menu{
  opacity:1;
  visibility:visible;
  transform:none;
}
.thv26-services-menu a{
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:14px;
  border-radius:17px;
  background:#f6fafc;
  border:1px solid #e5edf2;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.thv26-services-menu a:hover{
  background:#edf9f3;
  border-color:#c7ead7;
  box-shadow:0 12px 26px rgba(11,150,88,.08);
  transform:translateY(-2px);
}
.thv26-menu-number{
  width:44px;
  height:44px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--thv27-green),var(--thv27-green-2));
  color:#03150c;
  font-size:12px;
  font-weight:900;
}
.thv26-services-menu b{
  display:block;
  color:#163347;
  font-size:14px;
}
.thv26-services-menu small{
  display:block;
  margin-top:4px;
  color:var(--thv27-muted);
  font-size:11px;
  line-height:1.55;
}
.thv27-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.thv27-booking-button{
  min-height:46px;
  padding:11px 19px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--thv27-green),var(--thv27-green-2));
  color:#03150c;
  font-weight:900;
  box-shadow:0 13px 30px rgba(20,199,122,.2);
}
.thv26-menu-button{
  display:none;
  width:48px;
  height:48px;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(255,255,255,.055);
}
.thv26-menu-button span{
  display:block;
  height:2px;
  margin:5px 0;
  border-radius:99px;
  background:#fff;
  transition:.2s ease;
}
.thv26-menu-button.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.thv26-menu-button.active span:nth-child(2){opacity:0}
.thv26-menu-button.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.thv26-menu-backdrop{
  position:fixed;
  inset:0;
  z-index:1320;
  background:rgba(0,0,0,.55);
  opacity:0;
  visibility:hidden;
  transition:.2s ease;
}
.thv26-menu-backdrop.active{
  opacity:1;
  visibility:visible;
}

/* Hero logo card using horizontal logo */
.thv27-hero-brand-card{
  position:relative!important;
  min-height:470px;
  padding:24px!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden;
  border-radius:34px!important;
  background:
    radial-gradient(circle at 48% 45%,rgba(18,197,120,.14),transparent 42%),
    linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.04))!important;
  border:1px solid rgba(255,255,255,.13)!important;
  box-shadow:0 36px 95px rgba(0,0,0,.32)!important;
}
.thv27-hero-brand-glow{
  position:absolute;
  width:420px;
  height:420px;
  border-radius:50%;
  background:rgba(18,197,120,.13);
  filter:blur(74px);
}
.thv27-hero-brand-box{
  position:relative;
  z-index:2;
  width:min(500px,100%);
  min-height:280px;
  padding:30px 28px;
  display:grid;
  place-items:center;
  border-radius:30px;
  background:linear-gradient(180deg,#ffffff,#f7fbfd);
  box-shadow:
    0 26px 70px rgba(0,0,0,.25),
    0 0 0 1px rgba(255,255,255,.95) inset;
}
.thv27-hero-brand-box img{
  width:100%;
  max-width:390px;
  max-height:120px;
  object-fit:contain;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.08));
}

/* Hide floating home contact if present */
.tvf-home ~ .thv20-floating-contact,
.thv25-home-page .thv20-floating-contact{
  display:none!important;
}

@media(max-width:1050px){
  .thv27-header-inner{
    width:calc(100% - 22px);
    min-height:88px;
    grid-template-columns:150px minmax(0,1fr) auto;
    gap:10px;
  }
  .thv27-brand-shell{
    width:138px;
    height:60px;
    padding:10px 14px;
    border-radius:18px;
  }
  .thv27-brand-shell img{
    max-width:118px;
    max-height:36px;
  }
  .thv27-booking-button{display:none}
  .thv26-menu-button{display:block}

  .thv26-nav{
    position:fixed;
    top:0;
    right:0;
    width:min(350px,90vw);
    height:100dvh;
    padding:110px 17px 25px;
    display:block;
    background:#07131d;
    transform:translateX(105%);
    transition:transform .24s ease;
    overflow-y:auto;
    box-shadow:-32px 0 75px rgba(0,0,0,.3);
  }
  .thv26-nav.open{transform:none}
  .thv26-nav>a,
  .thv26-services-toggle{
    width:100%;
    min-height:50px;
    margin-bottom:7px;
    padding:13px 14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.055);
    text-align:right;
  }
  .thv26-services-menu{
    position:static;
    width:100%;
    max-height:0;
    overflow:hidden;
    padding:0 5px;
    grid-template-columns:1fr;
    gap:6px;
    border:0;
    background:transparent;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    transition:max-height .28s ease,padding .28s ease;
  }
  .thv26-services-menu::before{display:none}
  .thv26-nav-group.open .thv26-services-menu{
    max-height:540px;
    padding:5px 5px 12px;
  }
  .thv26-services-menu a{
    background:rgba(255,255,255,.04);
    border-color:rgba(255,255,255,.055);
  }
  .thv26-services-menu a:hover{
    transform:none;
    background:rgba(20,199,122,.08);
  }
  .thv26-services-menu b{color:#edf5f8}
  .thv26-services-menu small{color:#9db0bb}

  .thv27-hero-brand-card{
    min-height:360px;
    border-radius:24px!important;
  }
  .thv27-hero-brand-box{
    min-height:220px;
    padding:24px 20px;
    border-radius:22px;
  }
  .thv27-hero-brand-box img{
    max-width:290px;
    max-height:94px;
  }
}

@media(max-width:620px){
  .thv27-header-inner{
    width:calc(100% - 16px);
    min-height:84px;
    grid-template-columns:auto 1fr auto;
    gap:10px;
  }
  .thv27-brand{
    justify-content:flex-start;
  }
  .thv27-brand-shell{
    width:126px;
    height:56px;
    padding:9px 12px;
    border-radius:16px;
  }
  .thv27-brand-shell img{
    max-width:110px;
    max-height:33px;
  }
  .thv27-hero-brand-card{
    min-height:310px;
    padding:18px!important;
  }
  .thv27-hero-brand-box{
    width:min(100%,320px);
    min-height:190px;
    padding:20px 16px;
  }
  .thv27-hero-brand-box img{
    max-width:255px;
    max-height:82px;
  }
}

@media(prefers-reduced-motion:reduce){
  *{transition:none!important}
}


/* ===== Mobile white full-logo header overrides v28 ===== */
@media(max-width:1050px){
  .thv27-header{
    background:rgba(7,19,29,.92);
  }

  .thv26-nav{
    background:#ffffff;
    box-shadow:-26px 0 80px rgba(0,0,0,.18);
  }
  .thv26-nav>a,
  .thv26-services-toggle{
    color:#112636;
    background:#f6f8fa;
    border:1px solid #e2e8ee;
  }
  .thv26-nav>a:hover,
  .thv26-services-toggle:hover{
    color:#0d9e61;
    background:#edf9f2;
  }
  .thv26-services-menu a{
    background:#f7fafc;
    border-color:#e2e8ee;
  }
  .thv26-services-menu a:hover{
    background:#edf9f2;
    border-color:#cde9d8;
  }
  .thv26-services-menu b{color:#173246}
  .thv26-services-menu small{color:#6a7d8c}
}

@media(max-width:768px){
  .thv27-header-inner{
    position:relative;
    width:calc(100% - 18px);
    min-height:92px;
    grid-template-columns:1fr;
    gap:0;
    padding:10px 0;
  }
  .thv27-brand{
    width:100%;
    min-height:auto;
    justify-content:stretch;
  }
  .thv27-brand-shell{
    width:100%;
    height:74px;
    padding:12px 76px 12px 18px;
    border-radius:22px;
    justify-content:center;
    background:linear-gradient(180deg,#ffffff,#f7fbfd);
    box-shadow:0 14px 34px rgba(0,0,0,.16),0 0 0 1px rgba(235,241,245,.95) inset;
  }
  .thv27-brand-shell::before{
    inset:-38% auto auto -8%;
    width:56%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
  }
  .thv27-brand-shell img{
    max-width:min(100%,230px);
    max-height:44px;
  }

  .thv27-header-actions{
    position:absolute;
    left:12px;
    top:50%;
    transform:translateY(-50%);
    z-index:6;
    margin:0;
    gap:0;
  }
  .thv26-menu-button{
    display:flex;
    align-items:center;
    justify-content:center;
    width:46px;
    height:46px;
    padding:11px;
    border:1px solid #dfe6eb;
    border-radius:16px;
    background:#ffffff;
    box-shadow:0 10px 26px rgba(0,0,0,.10);
  }
  .thv26-menu-button span{
    background:#162b3b;
    height:2.2px;
    margin:4.5px 0;
  }

  .thv26-nav{
    top:0;
    right:0;
    width:min(360px,92vw);
    padding:102px 16px 24px;
    border-left:1px solid #e3eaef;
  }
  .thv26-nav>a,
  .thv26-services-toggle{
    border-radius:16px;
    min-height:52px;
    padding:14px 15px;
    font-size:15px;
    font-weight:800;
  }
  .thv26-services-menu{
    padding:0 2px;
  }
  .thv26-nav-group.open .thv26-services-menu{
    padding:6px 2px 12px;
  }
  .thv26-services-menu a{
    border-radius:16px;
  }
}

@media(max-width:480px){
  .thv27-header-inner{
    width:calc(100% - 14px);
    min-height:88px;
    padding:8px 0;
  }
  .thv27-brand-shell{
    height:70px;
    padding:10px 72px 10px 14px;
    border-radius:20px;
  }
  .thv27-brand-shell img{
    max-width:min(100%,210px);
    max-height:40px;
  }
  .thv27-header-actions{
    left:10px;
  }
  .thv26-menu-button{
    width:44px;
    height:44px;
    border-radius:15px;
  }
}


/* ===== Strong full-width white mobile logo bar v29 ===== */
@media(max-width:768px){
  .thv27-header{
    background:transparent !important;
    border-bottom:0 !important;
    backdrop-filter:none !important;
    box-shadow:none !important;
    padding:10px 0 0;
  }

  .thv27-header-inner{
    width:calc(100% - 18px) !important;
    min-height:88px !important;
    grid-template-columns:1fr !important;
    gap:0 !important;
    padding:0 !important;
    background:#ffffff !important;
    border-radius:0 0 18px 18px;
    border:1px solid #e7edf2;
    box-shadow:0 14px 34px rgba(0,0,0,.12);
    overflow:hidden;
  }

  .thv27-brand{
    width:100%;
    min-height:88px;
    padding:0;
    align-items:stretch;
    justify-content:stretch;
  }

  .thv27-brand-shell{
    width:100% !important;
    height:88px !important;
    padding:14px 20px 14px 82px !important;
    border-radius:0 !important;
    justify-content:center !important;
    background:#ffffff !important;
    box-shadow:none !important;
  }
  .thv27-brand-shell::before{display:none !important;}
  .thv27-brand-shell img{
    width:100%;
    max-width:none !important;
    max-height:56px !important;
    object-fit:contain;
    filter:none !important;
  }

  .thv27-header-actions{
    position:absolute !important;
    left:14px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    z-index:10;
  }
  .thv26-menu-button{
    display:flex !important;
    align-items:center;
    justify-content:center;
    width:48px !important;
    height:48px !important;
    padding:11px !important;
    border:1px solid #d7e0e7 !important;
    border-radius:15px !important;
    background:#ffffff !important;
    box-shadow:0 8px 20px rgba(0,0,0,.08) !important;
  }
  .thv26-menu-button span{
    background:#111111 !important;
    height:2.4px !important;
    margin:4.5px 0 !important;
  }

  .thv26-nav{
    top:0;
    right:0;
    width:min(360px,92vw);
    padding:102px 16px 24px;
    background:#ffffff !important;
    border-left:1px solid #e4ebf0;
    box-shadow:-26px 0 80px rgba(0,0,0,.18);
  }
  .thv26-nav>a,
  .thv26-services-toggle{
    color:#112636 !important;
    background:#f6f8fa !important;
    border:1px solid #e2e8ee !important;
  }
}

@media(max-width:480px){
  .thv27-header{
    padding-top:8px;
  }
  .thv27-header-inner{
    width:calc(100% - 12px) !important;
    border-radius:0 0 16px 16px;
  }
  .thv27-brand{
    min-height:82px;
  }
  .thv27-brand-shell{
    height:82px !important;
    padding:12px 14px 12px 76px !important;
  }
  .thv27-brand-shell img{
    max-height:52px !important;
  }
  .thv27-header-actions{
    left:10px !important;
  }
  .thv26-menu-button{
    width:46px !important;
    height:46px !important;
  }
}


/* =====================================================
   THERVIQ HEADER v30 — FULL WHITE / NO GAPS
   ===================================================== */

/* Computer */
.thv27-header{
  background:#ffffff !important;
  border-bottom:1px solid #e4ebf0 !important;
  backdrop-filter:none !important;
  box-shadow:0 8px 28px rgba(7,19,29,.08) !important;
  padding:0 !important;
}
.thv27-header-inner{
  width:min(1240px,100%) !important;
  min-height:92px !important;
  padding:0 18px !important;
  background:#ffffff !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
}
.thv27-brand-shell{
  background:#ffffff !important;
  box-shadow:none !important;
  border-radius:0 !important;
}
.thv27-brand-shell::before{display:none !important}
.thv26-nav>a,
.thv26-services-toggle{
  color:#142b3a !important;
}
.thv26-nav>a:hover,
.thv26-services-toggle:hover{
  color:#0b9658 !important;
  background:#eef8f3 !important;
}

/* Mobile and tablet */
@media(max-width:1050px){
  .thv27-header{
    width:100% !important;
    background:#ffffff !important;
    padding:0 !important;
    margin:0 !important;
    border-bottom:1px solid #e4ebf0 !important;
  }

  .thv27-header-inner{
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    min-height:90px !important;
    grid-template-columns:1fr !important;
    gap:0 !important;
    padding:0 !important;
    margin:0 !important;
    background:#ffffff !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
  }

  .thv27-brand{
    width:100% !important;
    min-height:90px !important;
    padding:0 !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }

  .thv27-brand-shell{
    width:100% !important;
    height:90px !important;
    min-height:90px !important;
    padding:12px 78px 12px 20px !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:#ffffff !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    overflow:hidden !important;
  }

  .thv27-brand-shell img{
    width:100% !important;
    height:auto !important;
    max-width:330px !important;
    max-height:60px !important;
    object-fit:contain !important;
    filter:none !important;
  }

  .thv27-header-actions{
    position:absolute !important;
    left:16px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    z-index:20 !important;
    margin:0 !important;
  }

  .thv26-menu-button{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:5px !important;
    width:48px !important;
    height:48px !important;
    padding:10px !important;
    margin:0 !important;
    border:1px solid #d7e0e7 !important;
    border-radius:14px !important;
    background:#ffffff !important;
    box-shadow:0 7px 18px rgba(7,19,29,.10) !important;
  }

  .thv26-menu-button span{
    display:block !important;
    flex:0 0 auto !important;
    width:24px !important;
    height:2.5px !important;
    margin:0 !important;
    border-radius:99px !important;
    background:#111111 !important;
    opacity:1 !important;
  }

  .thv26-menu-button.active span:nth-child(1){
    transform:translateY(7.5px) rotate(45deg) !important;
  }
  .thv26-menu-button.active span:nth-child(2){
    opacity:0 !important;
  }
  .thv26-menu-button.active span:nth-child(3){
    transform:translateY(-7.5px) rotate(-45deg) !important;
  }

  .thv26-nav{
    top:0 !important;
    right:0 !important;
    left:auto !important;
    width:min(360px,92vw) !important;
    height:100dvh !important;
    padding:104px 16px 24px !important;
    background:#ffffff !important;
    border-left:1px solid #e2e9ee !important;
    box-shadow:-28px 0 80px rgba(7,19,29,.18) !important;
  }

  .thv26-nav>a,
  .thv26-services-toggle{
    color:#142b3a !important;
    background:#f5f8fa !important;
    border:1px solid #e1e8ed !important;
  }

  .thv26-services-menu a{
    background:#f7fafc !important;
    border-color:#e1e8ed !important;
  }
  .thv26-services-menu b{color:#173246 !important}
  .thv26-services-menu small{color:#6a7d8c !important}
}

@media(max-width:480px){
  .thv27-header-inner,
  .thv27-brand,
  .thv27-brand-shell{
    min-height:84px !important;
    height:84px !important;
  }
  .thv27-brand-shell{
    padding:10px 72px 10px 14px !important;
  }
  .thv27-brand-shell img{
    max-width:275px !important;
    max-height:54px !important;
  }
  .thv27-header-actions{
    left:12px !important;
  }
  .thv26-menu-button{
    width:46px !important;
    height:46px !important;
  }
}


/* =====================================================
   THERVIQ HEADER v31 — BIGGER MOBILE LOGO AREA
   ===================================================== */
@media(max-width:1050px){
  .thv27-header-inner{
    min-height:104px !important;
  }
  .thv27-brand{
    min-height:104px !important;
  }
  .thv27-brand-shell{
    height:104px !important;
    min-height:104px !important;
    padding:10px 18px 10px 78px !important;
  }
  .thv27-brand-shell img{
    width:100% !important;
    max-width:420px !important;
    max-height:72px !important;
    object-fit:contain !important;
  }
  .thv27-header-actions{
    left:10px !important;
  }
  .thv26-menu-button{
    width:50px !important;
    height:50px !important;
    border-radius:15px !important;
    background:#fff !important;
    border:1px solid #d8e1e7 !important;
  }
  .thv26-menu-button span{
    width:24px !important;
    height:2.6px !important;
    background:#111 !important;
  }
}

@media(max-width:640px){
  .thv27-header{
    border-bottom:1px solid #e9eef2 !important;
  }
  .thv27-header-inner{
    min-height:108px !important;
  }
  .thv27-brand{
    min-height:108px !important;
  }
  .thv27-brand-shell{
    height:108px !important;
    min-height:108px !important;
    padding:10px 14px 10px 76px !important;
  }
  .thv27-brand-shell img{
    max-width:100% !important;
    max-height:74px !important;
  }
}

@media(max-width:480px){
  .thv27-header-inner,
  .thv27-brand,
  .thv27-brand-shell{
    min-height:112px !important;
    height:112px !important;
  }
  .thv27-brand-shell{
    padding:10px 10px 10px 74px !important;
  }
  .thv27-brand-shell img{
    width:100% !important;
    max-width:none !important;
    max-height:78px !important;
  }
  .thv27-header-actions{
    left:8px !important;
  }
  .thv26-menu-button{
    width:48px !important;
    height:48px !important;
  }
}
