/*
 * shared.css — Верный Курс
 * CSS-переменные и навигация — общий файл для всех страниц
 * Подключается через: <link rel="stylesheet" href="/css/shared.css">
 */

/* ══ CSS VARIABLES ══ */
:root {
  /* Palette */
  --navy:   #1A2634;
  --navy2:  #243444;
  --bg:     #f3e9d2;
  --bg2:    #ffffff;
  --bg3:    #fdf8f0;
  --text:   #403A3A;
  --text2:  #5e5252;
  --text3:  #9a8c8c;
  --red:    #8B0000;
  --red2:   #721422;
  --red3:   #9B2C2C;
  --red-bg: rgba(139,0,0,0.07);
  --green:  #2D5A27;
  --green2: #0B4232;
  --green-bg: rgba(45,90,39,0.07);
  --blue:   #1F3A93;
  --blue2:  #2C3E73;
  --blue-bg: rgba(31,58,147,0.07);
  --gold:   #b8860b;
  --border: rgba(64,58,58,0.12);
  /* Layout */
  --nav:    72px;
  --sat:    env(safe-area-inset-top,0px);
  --r:      12px;
  --max:    1100px;
  /* Shadows */
  --shadow:    0 2px 20px rgba(64,58,58,0.07);
  --shadow-lg: 0 8px 36px rgba(64,58,58,0.11);
  /* Font scale */
  --fs-xs:   0.68rem;
  --fs-sm:   0.78rem;
  --fs-base: 0.87rem;
}

/* ══ RESET ══ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}

/* ══ NAV ══ */
nav{
  position:fixed;top:0;left:0;right:0;z-index:999;
  height:calc(var(--nav) + var(--sat));
  padding-top:var(--sat);
  background:var(--navy);
  display:flex;align-items:center;justify-content:space-between;
  padding-left:5%;padding-right:5%;
  box-shadow:0 2px 24px rgba(0,0,0,0.2);
}
.logo{
  font-family:'Cormorant Garamond',serif;
  font-size:1.5rem;font-weight:700;color:#f3e9d2;
  letter-spacing:0.02em;cursor:pointer;
  display:flex;align-items:center;gap:8px;
  text-decoration:none;
}
.ldot{width:7px;height:7px;background:var(--red3);border-radius:50%;flex-shrink:0;animation:blink 2.5s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:0.4;}}

.navl{display:flex;align-items:center;gap:0.3rem;list-style:none;}
.navl>li{position:relative;}
.navl>li>a,.navl>li>span{
  display:flex;align-items:center;gap:4px;
  padding:0.5rem 0.9rem;
  color:rgba(243,233,210,0.72);text-decoration:none;
  font-size:0.73rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;
  cursor:pointer;border-radius:5px;
  transition:all 0.18s;white-space:nowrap;
}
.navl>li>a:hover,.navl>li>span:hover,.navl>li>a.on{
  color:#f3e9d2;background:rgba(255,255,255,0.07);
}
.narr{font-size:0.5rem;transition:transform 0.2s;opacity:0.6;}
.navl>li:hover .narr{transform:rotate(180deg);}
/* Стрелка поворачивается когда дропдаун открыт (мобиле) */
.has-drop:has(.ndrop.open)>span .narr{transform:rotate(180deg);}

.ndrop{
  position:absolute;top:100%;left:50%;
  transform:translateX(-50%);
  padding-top:6px;
  background:transparent;
  min-width:210px;
  opacity:0;pointer-events:none;
  transition:opacity 0.18s;
  z-index:200;
}
.ndrop.open{opacity:1;pointer-events:all;}
.ndrop-inner{
  background:var(--navy2);
  border:1px solid rgba(255,255,255,0.09);
  border-top:2px solid var(--red3);
  border-radius:0 0 8px 8px;
  box-shadow:0 8px 24px rgba(0,0,0,0.28);
  overflow:hidden;
}
/* На тачскрине :hover не должен открывать невидимые дропдауны */
@media(hover:hover){
  .navl>li:hover .ndrop{opacity:1;pointer-events:all;}
}
.ndrop a{
  display:block;padding:0.65rem 1.2rem;
  color:rgba(243,233,210,0.7);text-decoration:none;
  font-size:0.72rem;font-weight:400;letter-spacing:0.07em;text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,0.05);
  transition:all 0.15s;
}
.ndrop a:hover{background:rgba(139,0,0,0.2);color:#f3e9d2;padding-left:1.6rem;}
.ndrop a:last-child{border-bottom:none;}

/* Кнопка «Записаться» */
.ncta{
  background:var(--red2) !important;color:#f3e9d2 !important;
  padding:0.5rem 1.3rem !important;border-radius:6px !important;
  font-weight:600 !important;border:none !important;
  transition:background 0.18s !important;
}
.ncta:hover{background:var(--red3) !important;}

/* Кнопка «Территория успеха» / личный кабинет */
.ncab{
  background:rgba(31,58,147,0.25) !important;
  color:rgba(243,233,210,0.9) !important;
  padding:0.5rem 1.3rem !important;border-radius:6px !important;
  font-weight:600 !important;
  border:1px solid rgba(44,62,115,0.6) !important;
  transition:all 0.18s !important;
}
.ncab:hover{background:rgba(31,58,147,0.45) !important;border-color:var(--blue) !important;color:#f3e9d2 !important;}

/* ── Glassmorphism nav on scroll ── */
nav{transition:background 0.4s,backdrop-filter 0.4s,box-shadow 0.4s;}
nav.scrolled{
  background:rgba(26,38,52,0.78) !important;
  backdrop-filter:blur(22px) saturate(1.6);
  -webkit-backdrop-filter:blur(22px) saturate(1.6);
  box-shadow:0 2px 32px rgba(0,0,0,0.2),inset 0 -1px 0 rgba(255,255,255,0.06);
}

/* ══ BURGER ══ */
.burger{
  display:none;flex-direction:column;justify-content:center;align-items:center;
  gap:5px;cursor:pointer;padding:12px 10px;border:none;background:none;
  flex-shrink:0;border-radius:8px;transition:background .15s;
  min-width:44px;min-height:44px;
  -webkit-tap-highlight-color:transparent;
}
.burger:active{background:rgba(255,255,255,.08);}
.burger span{display:block;width:24px;height:2px;background:#f3e9d2;border-radius:2px;transition:all .28s;}
.burger.on span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.on span:nth-child(2){opacity:0;transform:scaleX(0);}
.burger.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ══ MOBILE NAV ══ */
@media(max-width:768px){
  :root{--nav:60px;}
  .burger{display:flex;}
  nav{padding:0 1rem;}
  .logo{font-size:1.3rem;}

  .navl{
    display:none;
    flex-direction:column;align-items:stretch;gap:0;
    position:fixed;
    top:calc(var(--nav) + var(--sat));left:0;right:0;bottom:0;
    background:var(--navy);
    overflow-y:auto;
    z-index:998;
    padding:.5rem 0 2rem;
  }
  .navl.open{display:flex;}
  body.nav-open{overflow:hidden;}

  .navl>li>a,.navl>li>span{
    font-size:.95rem;
    padding:1rem 1.5rem;
    border-radius:0;
    border-bottom:1px solid rgba(255,255,255,.07);
    justify-content:space-between;
    min-height:54px;
    white-space:normal;
  }

  .ndrop{
    position:static !important;
    transform:none !important;
    opacity:1 !important;
    pointer-events:none !important;
    max-height:0;
    overflow:hidden;
    transition:max-height .28s ease;
    background:rgba(0,0,0,.2);
    box-shadow:none;
    padding-top:0;
  }
  .ndrop.open{
    pointer-events:all !important;
    max-height:300px;
  }
  .ndrop-inner{
    background:transparent;
    border:none;border-radius:0;box-shadow:none;
  }
  .ndrop a{
    padding:.9rem 2rem;
    font-size:.88rem;
    min-height:50px;
    display:flex;align-items:center;
    border-bottom:1px solid rgba(255,255,255,.05);
  }
  .ndrop a:last-child{border-bottom:none;}
  .ndrop a:hover{padding-left:2.4rem;background:rgba(139,0,0,.15);}

  .navl>li:has(.ncta),.navl>li:has(.ncab){
    padding:.75rem 1.2rem;
    border-bottom:1px solid rgba(255,255,255,.07);
  }
  .ncta,.ncab{
    display:block !important;
    text-align:center;
    padding:.85rem !important;
    font-size:.9rem !important;
    border-radius:8px !important;
  }
}

/* ══ FOOTER ══ */
footer{background:#0f1820;padding:1.8rem 5%;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;}
.footer-brand .logo{margin-bottom:0.5rem;}
.fcol h4{font-size:0.65rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:rgba(249,245,238,0.4);margin-bottom:0.7rem;}
.fcol a{display:block;font-size:0.74rem;color:rgba(249,245,238,0.4);text-decoration:none;margin-bottom:0.4rem;transition:color 0.15s;cursor:pointer;}
.fcol a:hover{color:rgba(249,245,238,0.85);}
.fbot{background:#0a1018;padding:0.75rem 5%;display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,0.04);font-size:0.68rem;color:rgba(249,245,238,0.22);}
@media(max-width:960px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr;}.fbot{flex-direction:column;gap:0.3rem;text-align:center;}}
