/*
Theme Name: Vence Aviation Advisory
Theme URI: https://vence.lu/
Author: Vence Advisory Group
Description: Aviation-advisory microsite extending the Vence Advisory brand (vence.lu) — AOC, airports, start-ups, regulatory and financing.
Version: 2.0.0
License: GNU General Public License v2 or later
Text Domain: vence-aviation-advisory
*/

:root{
  --bg: #0a121c;
  --bg-alt: #0e1826;
  --panel: #121f2f;
  --panel-line: rgba(198,166,100,0.14);
  --line: rgba(233,237,242,0.08);
  --text: #e9edf2;
  --text-dim: #94a5b8;
  --text-dimmer: #5f7186;
  --brass: #c6a664;
  --brass-bright: #e0c384;
  --brass-dim: #7d6a45;
  --blue: #5c86ae;
  --radius: 2px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg); color:var(--text); font-family:'Inter',sans-serif; line-height:1.6; overflow-x:hidden;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}

h1,h2,h3,h4{font-family:'Fraunces',serif; font-weight:500; letter-spacing:-0.01em;}

.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:0.72rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--brass);
}

a{color:inherit; text-decoration:none;}
::selection{background:var(--brass); color:var(--bg);}
:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}

.wrap{max-width:1200px; margin:0 auto; padding:0 clamp(20px,5vw,64px);}

/* ---------- NAV ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:14px 0;
  transition:background .4s ease, padding .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
}
header.solid{
  background:rgba(10,18,28,0.92);
  backdrop-filter:blur(10px);
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
nav.wrap{display:flex; align-items:flex-end; justify-content:space-between;}

@font-face{
  font-family:'Lumios Marker';
  src:url('assets/fonts/Lumios-Marker.woff') format('woff');
  font-weight:normal; font-style:normal; font-display:swap;
}

.logo{display:flex; flex-direction:column; align-items:flex-start; gap:1px; transition:opacity .2s ease;}
.logo:hover{opacity:0.88;}
.logo-mark{
  font-family:'Lumios Marker', cursive;
  font-size:3.6rem;
  line-height:0.75;
  color:#6EC5FF;
  text-shadow:2px 3px 4px rgba(0,0,0,0.3);
}
.logo-tagline{
  font-family:'Lumios Marker', cursive;
  font-size:0.95rem;
  line-height:1.381;
  color:#9a9a9a; letter-spacing:0.01em;
}
.navlinks{display:flex; align-items:flex-end; gap:clamp(14px,2vw,30px); font-size:0.86rem; letter-spacing:0.02em; line-height:1;}
.navlinks a{color:var(--text-dim); position:relative; padding:4px 0; transition:color .25s ease;}
.navlinks a:hover{color:var(--text);}
.navlinks a::after{content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--brass); transition:width .25s ease;}
.navlinks a:hover::after{width:100%;}
.navlinks .nav-back{color:var(--brass-bright);}
.nav-cta{display:flex; align-items:flex-end; gap:22px; position:relative; bottom:2px;}
.burger{display:none; width:26px; height:18px; position:relative; cursor:pointer; background:none; border:none; padding:0; margin:0;}
.burger span{position:absolute; left:0; right:0; height:1px; background:var(--text); transition:.3s ease;}
.burger span:nth-child(1){top:0;}
.burger span:nth-child(2){top:8px;}
.burger span:nth-child(3){top:16px;}
.burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

/* ---------- MEDIA BACKGROUNDS ---------- */
.media-bg{position:absolute; inset:0; overflow:hidden; z-index:0;}
.media-bg img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.media-overlay{position:absolute; inset:0;}

/* ---------- HERO ---------- */
.hero{position:relative; min-height:88vh; display:flex; align-items:center; padding-top:120px; overflow:hidden;}
.hero .media-overlay{background:linear-gradient(100deg, rgba(8,13,20,0.93) 0%, rgba(8,13,20,0.78) 46%, rgba(8,13,20,0.55) 100%), linear-gradient(0deg, rgba(8,13,20,0.9), rgba(8,13,20,0) 30%);}
.hero-content{position:relative; z-index:2; max-width:640px;}
.hero-content .eyebrow{margin-bottom:22px; display:block;}
.hero-content h1{font-size:clamp(2.4rem, 5vw, 4.2rem); line-height:1.06; margin-bottom:26px; color:var(--text);}
.hero-content h1 em{font-style:italic; color:var(--brass-bright);}
.hero-content p{font-size:1.06rem; color:var(--text-dim); max-width:500px; margin-bottom:38px;}
.hero-actions{display:flex; gap:18px; flex-wrap:wrap; align-items:center;}
.btn{font-family:'JetBrains Mono',monospace; font-size:0.78rem; letter-spacing:0.06em; padding:15px 28px; border-radius:var(--radius); display:inline-flex; align-items:center; gap:10px; transition:all .25s ease; border:1px solid transparent; text-transform:uppercase;}
.btn-primary{background:var(--brass); color:var(--bg);}
.btn-primary:hover{background:var(--brass-bright); transform:translateY(-2px);}
.btn-ghost{border-color:rgba(233,237,242,0.3); color:var(--text);}
.btn-ghost:hover{border-color:var(--brass); color:var(--brass-bright);}

/* ---------- SECTION GENERIC ---------- */
section{position:relative;}
.section-pad{padding:110px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head .eyebrow{display:block; margin-bottom:16px;}
.section-head h2{font-size:clamp(1.8rem, 3.2vw, 2.6rem); color:var(--text);}
.section-head p{color:var(--text-dim); margin-top:18px; font-size:1.02rem; max-width:560px;}

/* ---------- INTRO STRIP ---------- */
.intro{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--bg-alt);}
.intro .wrap{padding:64px clamp(20px,5vw,64px); display:grid; grid-template-columns:1fr 1.6fr; gap:48px; align-items:start;}
.intro-num{font-family:'JetBrains Mono',monospace; color:var(--brass-dim); font-size:0.78rem; letter-spacing:0.1em;}
.intro-since{display:block; margin-top:8px;}
.intro p{font-size:1.2rem; font-family:'Fraunces',serif; font-weight:300; color:var(--text); line-height:1.5;}
.intro p .accent{color:var(--brass-bright); font-style:italic;}

/* ---------- AREA CARDS (advisory areas grid) ---------- */
.areas-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.area-card{position:relative; padding:44px; background:var(--bg); transition:background .3s ease; display:flex; flex-direction:column;}
.area-card:hover{background:var(--panel);}
.area-code{font-family:'JetBrains Mono',monospace; font-size:0.72rem; color:var(--brass); letter-spacing:0.1em; margin-bottom:16px; display:block;}
.area-card h3{font-size:1.4rem; margin-bottom:14px; color:var(--text);}
.area-card p{color:var(--text-dim); font-size:0.96rem; margin-bottom:20px;}
.tag-row{display:flex; flex-wrap:wrap; gap:8px;}
.tag{font-family:'JetBrains Mono',monospace; font-size:0.68rem; letter-spacing:0.04em; color:var(--text-dim); border:1px solid rgba(233,237,242,0.18); padding:5px 10px; border-radius:var(--radius); background:rgba(10,17,26,0.5);}
.area-link{display:inline-flex; align-items:center; gap:8px; margin-top:auto; padding-top:24px; font-family:'JetBrains Mono',monospace; font-size:0.74rem; color:var(--brass-bright); letter-spacing:0.05em;}
.area-link svg{width:12px; height:12px; transition:transform .25s ease;}
.area-card:hover .area-link svg{transform:translateX(4px);}

/* ---------- SCOPE PANEL (sub-page: For / Topics) ---------- */
.scope-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:start;}
.scope-panel{background:var(--panel); border:1px solid var(--panel-line); padding:38px;}
.scope-sub-label{font-family:'JetBrains Mono',monospace; font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--brass); margin:0 0 16px;}
.scope-sub-label:not(:first-child){margin-top:30px;}
.for-list{list-style:none; display:grid; gap:12px;}
.for-list li{position:relative; padding-left:20px; font-size:1rem; color:var(--text);}
.for-list li::before{content:""; position:absolute; left:0; top:11px; width:9px; height:1px; background:var(--brass);}

/* ---------- APPROACH ---------- */
.approach-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.approach-step{background:var(--bg); padding:36px;}
.approach-step .mono{font-family:'JetBrains Mono',monospace; font-size:0.68rem; color:var(--text-dimmer); letter-spacing:0.1em;}
.approach-step h4{color:var(--text); font-size:1.15rem; margin:12px 0 12px; font-weight:500; font-family:'Fraunces',serif;}
.approach-step p{color:var(--text-dim); font-size:0.95rem;}

/* ---------- CONTACT ---------- */
.contact{position:relative; border-top:1px solid var(--line); isolation:isolate; padding-bottom:0;}
.contact .media-bg{z-index:-2; opacity:0.5;}
.contact .media-overlay{z-index:-1; background:linear-gradient(180deg, var(--bg-alt), var(--bg-alt));}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
.contact-info h2{font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:20px;}
.contact-info p{color:var(--text-dim); margin-bottom:36px; max-width:420px;}
.contact-line{display:flex; align-items:center; gap:14px; padding:16px 0; border-top:1px solid var(--line); font-family:'JetBrains Mono',monospace; font-size:0.88rem;}
.contact-line:last-of-type{border-bottom:1px solid var(--line);}
.contact-line .lbl{color:var(--text-dimmer); width:90px; flex-shrink:0; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase;}
.contact-line a:hover{color:var(--brass-bright);}
.socials{display:flex; gap:16px; margin-top:32px;}
.social-btn{width:38px; height:38px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; border-radius:50%; transition:border-color .2s ease, color .2s ease; color:var(--text-dim);}
.social-btn:hover{border-color:var(--brass); color:var(--brass-bright);}
.social-btn svg{width:15px; height:15px;}

form{display:flex; flex-direction:column; gap:22px;}
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-family:'JetBrains Mono',monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-dimmer);}
.field input, .field textarea{background:transparent; border:none; border-bottom:1px solid var(--line); color:var(--text); font-family:'Inter',sans-serif; font-size:0.98rem; padding:10px 2px; transition:border-color .25s ease; resize:none;}
.field input:focus, .field textarea:focus{outline:none; border-color:var(--brass);}
.field textarea{min-height:90px;}
.form-note{font-size:0.78rem; color:var(--text-dimmer); margin-top:-6px;}
.submitted-msg{display:none; font-family:'JetBrains Mono',monospace; font-size:0.8rem; color:#7fd88f; padding-top:6px;}
.submitted-msg.visible{display:block;}

.cookie-settings-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-top:20px; padding-top:10px; padding-bottom:10px; border-top:1px solid var(--line);}

/* ---------- FOOTER ---------- */
footer{padding:44px 0; border-top:1px solid var(--line);}
footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:18px;}
.cookie-settings-btn{display:inline-flex; align-items:center; font-family:'JetBrains Mono',monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; text-decoration:none; color:var(--text-dimmer); background:none; border:1px solid var(--line); padding:10px 18px; border-radius:999px; cursor:pointer; touch-action:manipulation; transition:color .2s ease, border-color .2s ease;}
.cookie-settings-btn:hover{color:var(--brass-bright); border-color:var(--brass);}

/* ---------- COOKIE NOTICE ---------- */
.cookie-notice{
  position:fixed; left:20px; right:20px; bottom:20px; z-index:999999;
  max-width:560px; margin:0 auto;
  background:var(--panel);
  border:1px solid var(--panel-line);
  border-radius:4px;
  padding:26px 28px;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
  transform:translateY(140%);
  opacity:0;
  pointer-events:none;
  transition:transform .5s cubic-bezier(.2,.8,.2,1), opacity .5s ease;
}
.cookie-notice.visible{transform:translateY(0); opacity:1; pointer-events:auto;}
.cookie-notice p{font-size:0.86rem; color:var(--text-dim); margin-bottom:18px; line-height:1.6;}
.cookie-notice p a{color:var(--brass-bright); text-decoration:underline; text-underline-offset:3px;}
.cookie-actions{display:flex; gap:12px; flex-wrap:wrap; position:relative; z-index:1;}
.cookie-actions .btn{padding:13px 22px; font-size:0.72rem; touch-action:manipulation; cursor:pointer;}
.btn-decline{border:1px solid var(--line); color:var(--text-dim); background:transparent;}
.btn-decline:hover{border-color:rgba(233,237,242,0.4); color:var(--text);}
@media (max-width:640px){.cookie-notice{left:14px; right:14px; bottom:14px; padding:22px;}}
.footer-legal{font-family:'JetBrains Mono',monospace; font-size:0.72rem; color:var(--text-dimmer); letter-spacing:0.03em;}
.footer-legal a{color:var(--brass-dim);}
.footer-legal a:hover{color:var(--brass-bright);}
.footer-cities{font-family:'JetBrains Mono',monospace; font-size:0.72rem; color:var(--text-dimmer); display:flex; gap:6px; flex-wrap:wrap;}
.footer-cities .c{color:var(--brass-dim);}
.footer-langs{display:flex; gap:10px; font-family:'JetBrains Mono',monospace; font-size:0.72rem;}
.footer-langs a{color:var(--text-dimmer);}
.footer-langs a.active{color:var(--brass-bright);}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .navlinks{display:none;}
  .burger{display:block;}
  .intro .wrap{grid-template-columns:1fr; gap:24px;}
  .areas-grid{grid-template-columns:1fr;}
  .scope-grid{grid-template-columns:1fr; gap:32px;}
  .approach-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr; gap:40px;}
  .logo-mark{font-size:2.95rem;}
  .logo-tagline{font-size:0.75rem;}
}
@media (max-width:900px){
  .mobile-menu{position:fixed; inset:0; top:64px; background-color:var(--bg); z-index:99; flex-direction:column; padding:40px clamp(20px,5vw,64px); gap:6px; display:none;}
  .mobile-menu.open{display:flex;}
  .mobile-menu a{font-family:'Fraunces',serif; font-size:1.6rem; padding:16px 0; border-bottom:1px solid var(--line); color:var(--text-dim);}
  .mobile-menu a.nav-back{color:var(--brass-bright);}
}
@media (min-width:901px){.mobile-menu{display:none;}}
