/* ===================================================================
   Sapanca Business Group - Stylesheet
=================================================================== */

:root{
  --navy: #142138;
  --navy-2: #1c2c4a;
  --gold: #c4903a;
  --gold-light: #e0b876;
  --sand: #f5efe4;
  --white: #fdfaf5;

  --bg: var(--white);
  --bg-alt: var(--sand);
  --surface: #ffffff;
  --text: #142138;
  --text-muted: #5c6579;
  --border: rgba(20,33,56,.10);
  --header-bg: rgba(253,250,245,.82);
  --shadow: 0 10px 30px rgba(20,33,56,.08);
  --shadow-lg: 0 24px 60px rgba(20,33,56,.16);

  --radius: 20px;
  --radius-sm: 12px;
  --ease: cubic-bezier(.16,1,.3,1);
}

:root[data-theme="dark"]{
  --bg: #0c1220;
  --bg-alt: #090e1a;
  --surface: #141d33;
  --text: #f3efe6;
  --text-muted: #a7b0c4;
  --border: rgba(245,239,228,.10);
  --header-bg: rgba(12,18,32,.82);
  --shadow: 0 10px 30px rgba(0,0,0,.4);
  --shadow-lg: 0 26px 70px rgba(0,0,0,.55);
  --gold: #dcae63;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family:'Plus Jakarta Sans', system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  transition: background-color .35s var(--ease), color .35s var(--ease);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4{
  font-family:'Bricolage Grotesque', 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  color: var(--text);
  line-height: 1.15;
  letter-spacing: -.01em;
  margin: 0 0 .6em;
}
p{ color: var(--text-muted); line-height: 1.75; margin: 0 0 1.1em; }
a{ color: inherit; text-decoration: none; }
img{ max-width:100%; display:block; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family: inherit; cursor:pointer; }

html[data-current-lang="am"] body{ font-family:'Noto Sans Ethiopic','Plus Jakarta Sans',sans-serif; }
html[data-current-lang="am"] h1,
html[data-current-lang="am"] h2,
html[data-current-lang="am"] h3,
html[data-current-lang="am"] h4{ font-family:'Noto Sans Ethiopic','Bricolage Grotesque',sans-serif; }

.container{
  width: min(1200px, 92%);
  margin-inline: auto;
}

.eyebrow{
  display:inline-block;
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:600;
  font-size:.82rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--gold);
  margin-bottom: .9em;
}
.eyebrow-light{ color: var(--gold-light); }

.section{ padding: 7.5rem 0; }
.section-alt{ background: var(--bg-alt); }
.section-dark{
  background: linear-gradient(165deg, var(--navy) 0%, #0d1526 100%);
  color: var(--sand);
  padding-bottom: 5rem;
}
.section-dark h2, .section-dark h3{ color: var(--white); }
.section-dark p{ color: rgba(245,239,228,.78); }

.section-head{ max-width: 720px; margin: 0 auto 3.5rem; text-align:center; }
.section-head h2{ font-size: clamp(1.9rem, 3vw, 2.7rem); }
.section-intro{ font-size: 1.08rem; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  padding: .95em 1.9em;
  border-radius: 999px;
  font-weight:600;
  font-size:.98rem;
  border: 2px solid transparent;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  white-space: nowrap;
}
.btn:hover{ transform: translateY(-3px); }
.btn-gold{
  background: linear-gradient(135deg, var(--gold-light), var(--gold));
  color: var(--navy);
  box-shadow: 0 14px 30px rgba(196,144,58,.35);
}
.btn-gold:hover{ box-shadow: 0 18px 38px rgba(196,144,58,.48); }
.btn-outline-light{
  color: #fff;
  border-color: rgba(255,255,255,.55);
}
.btn-outline-light:hover{ background: rgba(255,255,255,.1); border-color:#fff; }
.btn-whatsapp{
  background:#25D366;
  color:#fff;
  box-shadow: 0 14px 28px rgba(37,211,102,.35);
}
.btn-telegram{
  background:#229ED9;
  color:#fff;
  box-shadow: 0 14px 28px rgba(34,158,217,.35);
}
.btn-icon{ width:1.15em; height:1.15em; fill:currentColor; }
.contact-cta-row{ display:flex; gap:1rem; flex-wrap:wrap; }

/* ---------- Header ---------- */
.site-header{
  position: fixed; inset: 0 0 auto 0; z-index: 500;
  backdrop-filter: blur(16px);
  background: var(--header-bg);
  border-bottom: 1px solid transparent;
  transition: border-color .3s var(--ease), background-color .3s var(--ease);
}
.site-header.scrolled{ border-color: var(--border); box-shadow: 0 4px 24px rgba(0,0,0,.05); }
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height: 80px;
  gap: 1.5rem;
}
.brand{ display:flex; align-items:center; gap:.6rem; min-width:0; flex-shrink:1; }
.brand-logo{
  width:46px; height:46px; object-fit:contain; flex-shrink:0;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.22)) drop-shadow(0 0 7px rgba(255,255,255,.45));
}
.brand-text{ display:flex; flex-direction:column; line-height:1.15; min-width:0; overflow:hidden; }
.brand-name{
  font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:1.02rem; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.brand-tag{ font-size:.7rem; color: var(--gold); letter-spacing:.03em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.main-nav{ display:flex; align-items:center; gap:1.6rem; margin-inline:auto; }
.main-nav a{
  font-size:.92rem; font-weight:500; color: var(--text-muted);
  position:relative; padding: .3rem 0; white-space:nowrap;
  transition: color .25s var(--ease);
}
.main-nav a::after{
  content:''; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
  background: var(--gold); transition: right .3s var(--ease);
}
.main-nav a:hover{ color: var(--text); }
.main-nav a:hover::after{ right:0; }

.nav-apply-link{
  display:inline-flex; align-items:center; gap:.45rem;
  color: var(--gold) !important; font-weight:700;
}
.nav-apply-link i{
  width:7px; height:7px; border-radius:50%; background: var(--gold); flex-shrink:0;
  animation: urgencyPulse 1.6s infinite;
}
@keyframes urgencyPulse{
  0%,100%{ box-shadow: 0 0 0 0 rgba(196,144,58,.5); }
  50%{ box-shadow: 0 0 0 5px rgba(196,144,58,0); }
}

.header-actions{ display:flex; align-items:center; gap: .9rem; flex-shrink:0; }

.lang-switch{ position:relative; }
.lang-current{
  display:flex; align-items:center; gap:.4rem;
  background: transparent; border:1px solid var(--border);
  color: var(--text); padding:.5rem .8rem; border-radius: 999px;
  font-size:.85rem; font-weight:600;
  transition: border-color .25s var(--ease);
}
.lang-current:hover{ border-color: var(--gold); }
.icon-globe{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.6; }
.lang-menu{
  position:absolute; top: calc(100% + 10px); right:0;
  background: var(--surface); border:1px solid var(--border);
  border-radius: var(--radius-sm); box-shadow: var(--shadow-lg);
  min-width:150px; overflow:hidden;
  opacity:0; visibility:hidden; transform: translateY(-8px);
  transition: all .25s var(--ease);
}
.lang-switch.open .lang-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.lang-menu li{
  padding:.75rem 1rem; font-size:.9rem; font-weight:500;
  cursor:pointer; transition: background-color .2s;
  color: var(--text);
}
.lang-menu li:hover{ background: var(--bg-alt); }
.lang-menu li.active{ color: var(--gold); font-weight:700; }

.theme-toggle{
  width:40px; height:40px; border-radius:50%;
  border:1px solid var(--border); background: transparent;
  display:flex; align-items:center; justify-content:center;
  color: var(--text);
  transition: border-color .25s var(--ease);
}
.theme-toggle:hover{ border-color: var(--gold); }
.theme-toggle svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; }
.icon-moon{ display:none; }
:root[data-theme="dark"] .icon-sun{ display:none; }
:root[data-theme="dark"] .icon-moon{ display:block; }

.header-cta{ padding:.7em 1.5em; font-size:.88rem; }

.hamburger{
  display:none; width:40px; height:40px; border:none; background:transparent;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.hamburger span{
  width:22px; height:2px; background: var(--text); border-radius:2px;
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.hamburger.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* ---------- Hero (photo-backed) ---------- */
.hero{
  position: relative;
  min-height: 100vh;
  display:flex; align-items:flex-end;
  padding: 9rem 0 6rem;
  overflow:hidden;
  isolation: isolate;
}
.hero-media{ position:absolute; inset:0; z-index:-1; }
.hero-media picture{ display:block; width:100%; height:100%; }
.hero-img{
  width:100%; height:100%; object-fit:cover; object-position: center 50%;
  transform: scale(1.06);
  animation: heroZoom 22s ease-out forwards;
}
@keyframes heroZoom{ to{ transform: scale(1); } }
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,15,26,.55) 0%, rgba(10,15,26,.35) 35%, rgba(8,12,22,.88) 100%),
    linear-gradient(90deg, rgba(8,12,22,.55) 0%, rgba(8,12,22,.05) 55%);
}
.hero-inner{ position:relative; z-index:1; max-width: 760px; }
.hero-headline{
  font-size: clamp(2.5rem, 5.6vw, 4.4rem);
  font-weight:700;
  letter-spacing:-.02em;
  color: #fff;
}
.hero-subheadline{ font-size: clamp(1.1rem, 1.8vw, 1.4rem); color: var(--gold-light); font-weight:600; margin-bottom:1em; }
.hero-body{ max-width: 600px; font-size:1.05rem; color: rgba(245,239,228,.86); }
.hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; margin-top: 1.6rem; }

.scroll-cue{
  position:absolute; bottom: 1.6rem; left:50%; transform: translateX(-50%);
  width:26px; height:42px; border:2px solid rgba(255,255,255,.55); border-radius:20px;
  z-index:1;
}
.scroll-cue span{
  position:absolute; top:7px; left:50%; width:4px; height:8px; border-radius:2px;
  background: var(--gold-light); transform: translateX(-50%);
  animation: scrollcue 1.8s infinite;
}
@keyframes scrollcue{
  0%{ opacity:1; top:7px; } 70%{opacity:0;} 100%{ opacity:0; top:20px; }
}

/* ---------- Marquee ---------- */
.marquee{
  background: var(--navy); overflow:hidden; white-space:nowrap;
  border-bottom: 1px solid rgba(245,239,228,.08);
}
.marquee-track{
  display:inline-flex; align-items:center; gap: 2.5rem;
  padding: .85rem 0;
  animation: marqueeScroll 32s linear infinite;
  width: max-content;
}
.marquee-track span{
  font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:.95rem;
  letter-spacing:.08em; text-transform:uppercase; color: rgba(245,239,228,.75);
}
.marquee-track i{ width:5px; height:5px; border-radius:50%; background: var(--gold); display:inline-block; }
@keyframes marqueeScroll{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

/* ---------- Stats strip ---------- */
.stats-strip{ background: var(--bg); padding: 3.5rem 0; }
.stats-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 1.25rem; }
.stat-card{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius);
  padding: 1.8rem 1.4rem; box-shadow: var(--shadow); text-align:center;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.stat-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.stat-num, .stat-num-plain{
  font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:2rem; color: var(--navy);
  display:inline;
}
.stat-plus{ font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:2rem; color: var(--gold); }
:root[data-theme="dark"] .stat-num, :root[data-theme="dark"] .stat-num-plain{ color: var(--gold-light); }
.stat-label{ font-size:.82rem; color: var(--text-muted); display:block; margin-top:.4rem; }

/* ---------- About ---------- */
.about-grid{ display:grid; grid-template-columns: .95fr 1.05fr; gap: 4.5rem; align-items:center; }
.about-media{ position:relative; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-lg); aspect-ratio: 4/5; }
.about-media img{ width:100%; height:100%; object-fit:cover; }
.about-media-caption{
  position:absolute; left:1.2rem; bottom:1.2rem;
  display:flex; align-items:center; gap:.5rem;
  background: rgba(12,18,32,.65); backdrop-filter: blur(8px);
  color:#fff; font-size:.85rem; font-weight:600;
  padding:.55rem 1rem; border-radius:999px;
}
.pin-icon{ width:15px; height:15px; fill:none; stroke: var(--gold-light); stroke-width:1.8; }
.about-copy h2{ font-size: clamp(1.9rem,3vw,2.6rem); }

.value-list{ margin-top: 2rem; display:grid; gap: 1.4rem; }
.value-row{ display:flex; gap:1.1rem; align-items:flex-start; }
.value-icon{ width:40px; height:40px; flex-shrink:0; fill:none; stroke: var(--gold); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.value-row h3{ font-size:1.02rem; margin-bottom:.25rem; }
.value-row p{ font-size:.9rem; margin:0; }

/* ---------- Services ---------- */
.service-block{
  display:grid; grid-template-columns: .9fr 1.1fr; gap:3.5rem; align-items:center;
  margin-bottom: 5.5rem;
}
.service-block:last-child{ margin-bottom:0; }
.service-block.reverse{ direction: rtl; }
.service-block.reverse > *{ direction: ltr; }
.service-media{
  position:relative; aspect-ratio: 4/3.2; border-radius: var(--radius);
  overflow:hidden; box-shadow: var(--shadow-lg);
}
.service-media img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.service-block:hover .service-media img{ transform: scale(1.06); }
.service-media::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(10,15,26,.05) 40%, rgba(10,15,26,.75) 100%);
}
.service-number{
  position:absolute; top:1.2rem; left:1.4rem; z-index:2;
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:1.6rem; font-weight:800; color: rgba(255,255,255,.9);
}
.service-badge{
  position:absolute; top:1.1rem; right:1.2rem; z-index:2;
  width:48px; height:48px; border-radius:50%;
  background: linear-gradient(135deg, var(--gold-light), var(--gold));
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 22px rgba(0,0,0,.25);
}
.service-badge svg{ width:26px; height:26px; fill:none; stroke: var(--navy); stroke-width:1.7; stroke-linejoin:round; stroke-linecap:round; }
.service-caption{
  position:absolute; left:1.4rem; bottom:1.2rem; z-index:2;
  color:#fff; font-weight:600; font-size:.95rem;
}
.service-copy h3{ font-size: clamp(1.5rem,2.2vw,1.9rem); }
.service-tagline{ font-weight:600; color: var(--gold); font-size:1.02rem; margin-bottom:1em; }
.service-list{ display:grid; grid-template-columns: 1fr 1fr; gap:.6rem .8rem; margin-top:1.3rem; }
.service-list li{
  font-size:.92rem; color: var(--text); display:flex; gap:.55rem; align-items:flex-start;
}
.service-list li::before{
  content:''; flex-shrink:0; width:7px; height:7px; margin-top:.5em; border-radius:50%;
  background: var(--gold);
}

/* ---------- Additional services ---------- */
.additional-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1.75rem; }
.additional-card{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius);
  padding: 2.2rem; box-shadow: var(--shadow);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.additional-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.additional-icon{ width:38px; height:38px; fill:none; stroke: var(--gold); stroke-width:1.8; stroke-linejoin:round; stroke-linecap:round; margin-bottom:1.1rem; }
.additional-card h3{ font-size:1.15rem; }
.additional-card p{ font-size:.92rem; }

/* ---------- Corridor ---------- */
.corridor-grid{ display:grid; grid-template-columns: 1.05fr .95fr; gap:4rem; align-items:center; margin-bottom: 4rem; }
.corridor-grid h2{ font-size: clamp(1.9rem,3vw,2.5rem); }
.corridor-statement{ font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:1.3rem; color: var(--gold-light); margin-top:1.4em; }

.corridor-photos{ position:relative; height: 420px; }
.corridor-photo{
  position:absolute; object-fit:cover; border-radius: var(--radius);
  box-shadow: 0 20px 50px rgba(0,0,0,.4); border: 3px solid rgba(245,239,228,.08);
}
.photo-a{ width:62%; height:75%; top:0; left:0; z-index:1; }
.photo-b{ width:52%; height:55%; bottom:0; right:0; z-index:2; }
.photo-c{ width:34%; height:34%; top:8%; right:4%; z-index:3; }

.corridor-facts{ display:grid; grid-template-columns: repeat(4,1fr); gap:1.1rem; }
.fact{
  background: rgba(245,239,228,.05); border:1px solid rgba(245,239,228,.12);
  border-radius: var(--radius-sm); padding:1.3rem 1.4rem;
}
.fact-num{ display:block; font-family:'Bricolage Grotesque',sans-serif; font-weight:800; color: var(--gold-light); font-size:1.5rem; margin-bottom:.4rem; }
.fact span:last-child{ color: rgba(245,239,228,.78); font-size:.88rem; }

/* ---------- Travel band ---------- */
.travel-band{ position:relative; height: 40vh; min-height:280px; overflow:hidden; }
.travel-band img{ width:100%; height:100%; object-fit:cover; }
.travel-band-scrim{ position:absolute; inset:0; background: linear-gradient(90deg, rgba(10,15,26,.75), rgba(10,15,26,.15)); }
.travel-band p{
  position:absolute; left: 6%; bottom: 2.2rem; max-width: 32rem;
  font-family:'Bricolage Grotesque',sans-serif; font-weight:700;
  font-size: clamp(1.2rem, 2.4vw, 1.7rem); color:#fff; margin:0;
}

/* ---------- Process ---------- */
.process-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:1.75rem; }
.process-step{
  position:relative; padding: 2.4rem 1.6rem 1.8rem; border-radius: var(--radius);
  background: var(--surface); border:1px solid var(--border); box-shadow: var(--shadow);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.process-step:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.process-num{
  display:block; font-family:'Bricolage Grotesque',sans-serif; font-weight:800;
  font-size:2.2rem; color: var(--gold); opacity:.85;
  margin-bottom:1rem;
}
.process-step h3{ font-size:1.08rem; }
.process-step p{ font-size:.9rem; margin:0; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns: .95fr 1.05fr; gap:4rem; align-items:start; }
.contact-list{ margin: 2rem 0; display:grid; gap:1.3rem; }
.contact-list li{ display:flex; gap:1rem; align-items:flex-start; }
.contact-icon{ width:22px; height:22px; fill:none; stroke: var(--gold); stroke-width:1.6; flex-shrink:0; margin-top:.2rem; }
.contact-label{ display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color: var(--text-muted); margin-bottom:.15rem; }
.contact-list strong{ font-size:1.02rem; font-weight:600; }
.contact-list a:hover strong{ color: var(--gold); }

.contact-form{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius);
  padding: 2.4rem; box-shadow: var(--shadow-lg);
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.form-field{ margin-bottom:1.1rem; }
.form-field label{
  display:block; font-size:.82rem; font-weight:600; color: var(--text); margin-bottom:.45rem;
}
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding:.85em 1em; border-radius: var(--radius-sm);
  border:1px solid var(--border); background: var(--bg);
  color: var(--text); font-family:inherit; font-size:.95rem;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(196,144,58,.18);
}
.form-field textarea{ resize: vertical; min-height:100px; }
.form-submit{ width:100%; justify-content:center; margin-top:.4rem; }
.form-note{ text-align:center; margin: .9rem 0 0; font-size:.88rem; color: var(--gold); min-height:1.2em; }
.form-note-error{ color: #c0503a; }

/* ---------- Footer ---------- */
.site-footer{ background: var(--navy); color: rgba(245,239,228,.8); padding-top: 4.5rem; }
:root[data-theme="dark"] .site-footer{ background:#080d18; }
.footer-inner{
  display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:2.5rem;
  padding-bottom: 3rem; border-bottom:1px solid rgba(245,239,228,.12);
}
.footer-brand{ display:flex; align-items:center; gap:1rem; }
.footer-logo{
  width:58px; height:58px; object-fit:contain; flex-shrink:0;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.3)) drop-shadow(0 0 8px rgba(255,255,255,.35));
}
.footer-brand-text{ display:flex; flex-direction:column; gap:.3rem; }
.footer-brand-name{
  font-family:'Bricolage Grotesque','Noto Sans Ethiopic',sans-serif; font-weight:700;
  color: var(--white); font-size:1.25rem; margin:0;
}
.footer-brand p{ color: rgba(245,239,228,.6); font-size:.9rem; margin:0; }
.footer-col h4{ color: var(--white); font-size:.92rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:1.1rem; font-family:'Bricolage Grotesque',sans-serif; }
.footer-col{ display:flex; flex-direction:column; gap:.7rem; font-size:.9rem; }
.footer-col a, .footer-col span{ color: rgba(245,239,228,.65); transition: color .2s; }
.footer-col a:hover{ color: var(--gold-light); }
.footer-langs{ display:flex; gap:.6rem; }
.footer-langs button{
  border:1px solid rgba(245,239,228,.25); background:transparent; color: rgba(245,239,228,.7);
  padding:.4rem .8rem; border-radius:999px; font-size:.8rem; font-weight:600;
  transition: all .2s;
}
.footer-langs button:hover, .footer-langs button.active{ border-color: var(--gold); color: var(--gold-light); }
.footer-bottom{ text-align:center; padding: 1.6rem 0; font-size:.82rem; color: rgba(245,239,228,.5); }

/* ---------- Floating elements ---------- */
.whatsapp-float{
  position: fixed; right: 1.6rem; bottom: 1.6rem; z-index:400;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow: 0 10px 30px rgba(37,211,102,.45);
  animation: floatPulse 2.6s infinite;
}
.whatsapp-float svg{ width:28px; height:28px; fill:#fff; }
@keyframes floatPulse{
  0%,100%{ box-shadow: 0 10px 30px rgba(37,211,102,.45); }
  50%{ box-shadow: 0 10px 30px rgba(37,211,102,.75), 0 0 0 8px rgba(37,211,102,.12); }
}

.telegram-float{
  position: fixed; right: 1.9rem; bottom: 6.5rem; z-index:400;
  width:48px; height:48px; border-radius:50%;
  background:#229ED9; display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 24px rgba(34,158,217,.4);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.telegram-float:hover{ transform: translateY(-3px); box-shadow: 0 12px 28px rgba(34,158,217,.5); }
.telegram-float svg{ width:24px; height:24px; fill:#fff; }

.back-to-top{
  position: fixed; right: 1.6rem; bottom: 10.6rem; z-index:400;
  width:44px; height:44px; border-radius:50%; border:1px solid var(--border);
  background: var(--surface); color: var(--text); box-shadow: var(--shadow);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform: translateY(10px);
  transition: all .3s var(--ease);
}
.back-to-top.visible{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- Preloader ---------- */
#preloader{
  position:fixed; inset:0; z-index:9999; background: var(--sand);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.3rem;
  transition: opacity .6s var(--ease), visibility .6s var(--ease);
}
#preloader.done{ opacity:0; visibility:hidden; }
.preloader-badge{
  width: min(280px, 56vw); height: min(280px, 56vw);
  border-radius:50%; overflow:hidden;
  box-shadow: 0 12px 40px rgba(20,33,56,.2);
  background: var(--sand);
}
.preloader-video{
  width:100%; height:100%; object-fit:cover; display:block;
  transform: scale(1.24);
  mix-blend-mode: multiply;
}
.preloader-text{
  display:flex; flex-direction:column; align-items:center; gap:.55rem;
  font-family:'Bricolage Grotesque',sans-serif; font-weight:700;
  color: var(--navy); text-transform:uppercase; letter-spacing:.16em;
  font-size: clamp(.78rem, 2vw, .98rem); margin:0;
  opacity:0; transform: translateY(10px);
  animation: preloaderTextIn .5s cubic-bezier(.16,1,.3,1) .15s forwards;
}
.preloader-text::after{
  content:''; width:0; height:2px; background: var(--gold); border-radius:2px;
  animation: preloaderLineIn .4s cubic-bezier(.16,1,.3,1) .5s forwards;
}
@keyframes preloaderTextIn{ to{ opacity:1; transform: translateY(0); } }
@keyframes preloaderLineIn{ to{ width:46px; } }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform: translateY(28px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform: translateY(0); }

/* ===================================================================
   Responsive
=================================================================== */
@media (max-width: 1024px){
  .about-grid, .corridor-grid, .contact-grid{ grid-template-columns: 1fr; gap:3rem; }
  .about-media{ aspect-ratio: 16/9; }
  .corridor-photos{ height: 320px; }
  .service-block, .service-block.reverse{ direction: ltr; grid-template-columns: 1fr; }
  .service-media{ max-width: 480px; }
  .process-grid{ grid-template-columns: 1fr 1fr; }
  .additional-grid{ grid-template-columns: 1fr 1fr; }
  .footer-inner{ grid-template-columns: 1fr 1fr; }
  .stats-grid{ grid-template-columns: 1fr 1fr; }
  .corridor-facts{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1040px){
  .main-nav{ display:none; }
  .hamburger{ display:flex; }
  .header-cta{ display:none; }

  .main-nav.open{
    display:flex; flex-direction:column; align-items:flex-start; gap:0;
    position:fixed; top:80px; left:0; right:0; height: calc(100vh - 80px);
    background: var(--bg); padding: 1rem 6% 2rem; z-index:400;
    overflow-y:auto; margin:0;
  }
  .main-nav.open a{
    width:100%; padding: 1.1rem 0; border-bottom:1px solid var(--border); font-size:1.05rem;
  }
}

@media (max-width: 640px){
  html{ font-size: 14.5px; }

  .container{ width: 90%; }
  .section{ padding: 3.5rem 0; }
  .section-head{ margin-bottom: 2.4rem; }
  .section-head h2, .about-copy h2, .corridor-grid h2{ font-size: 1.7rem; }
  .eyebrow{ font-size:.72rem; margin-bottom:.7em; }

  .hero{ padding-top:6.5rem; padding-bottom:3.5rem; min-height: 72vh; text-align:left; align-items:flex-end; }
  .hero-img{ object-position: center 46%; transform: scale(1.01); }
  .hero-headline{ font-size: 1.9rem; line-height:1.2; }
  .hero-subheadline{ font-size: .98rem; }
  .hero-body{ font-size: .88rem; }
  .hero-cta{ margin-top: 1.2rem; gap:.7rem; }
  .hero-cta .btn{ padding:.8em 1.4em; font-size:.85rem; }

  .btn{ padding:.85em 1.6em; font-size:.9rem; }

  .stats-grid{ grid-template-columns: 1fr 1fr; gap:.85rem; }
  .stat-card{ padding: 1.2rem 1rem; }
  .stat-num, .stat-num-plain, .stat-plus{ font-size:1.4rem; }
  .stat-label{ font-size:.72rem; }

  .about-media{ aspect-ratio: 16/10; }
  .value-icon{ width:32px; height:32px; }
  .value-row h3{ font-size:.92rem; }
  .value-row p{ font-size:.82rem; }

  .service-copy h3{ font-size:1.25rem; }
  .service-tagline{ font-size:.92rem; }
  .service-badge{ width:38px; height:38px; }
  .service-badge svg{ width:20px; height:20px; }
  .service-number{ font-size:1.2rem; }

  .additional-card{ padding: 1.6rem; }

  .process-grid{ grid-template-columns: 1fr; }
  .process-step{ padding: 1.8rem 1.3rem 1.4rem; }
  .process-num{ font-size:1.6rem; }

  .additional-grid{ grid-template-columns: 1fr; }
  .service-list{ grid-template-columns: 1fr; }
  .form-row{ grid-template-columns: 1fr; }
  .footer-inner{ grid-template-columns: 1fr; text-align:left; }
  .contact-form{ padding: 1.6rem; }
  .brand-tag{ display:none; }
  .brand-logo{ width:36px; height:36px; }
  .brand-name{ font-size:.92rem; }

  .corridor-facts{ grid-template-columns: 1fr; gap:.8rem; }
  .fact{ padding:1rem 1.1rem; }
  .fact-num{ font-size:1.2rem; }
  .fact span:last-child{ font-size:.82rem; }
  .corridor-photos{ height: 240px; }
  .corridor-statement{ font-size:1.05rem; }

  .travel-band{ height:30vh; min-height:200px; }
  .travel-band p{ left: 5%; right:5%; font-size:1.1rem; }
}
