﻿:root{
  --bg-main:#F3F6F9;
  --bg-surface:#FFFFFF;
  --bg-footer:#E9EEF3;

  --text-main:#1C1F24;
  --text-muted:rgba(28,31,36,0.66);

  --brand-blue:#173A5A;
  --brand-blue-70:rgba(23,58,90,0.7);

  --border-soft:rgba(0,0,0,0.06);
  --shadow-hairline:0 1px 0 rgba(0,0,0,0.04);

  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;

  --container:1100px;
  --text-width:760px;

  --px-desktop:120px;
  --px-mobile:22px;

  --header-h:72px;
}

*,*::before,*::after{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  background:var(--bg-main);
  color:var(--text-main);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  line-height:1.65;
  letter-spacing:-0.01em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button, input, select, textarea{ font: inherit; }

:focus-visible{
  outline:3px solid rgba(23,58,90,0.28);
  outline-offset:3px;
  border-radius:10px;
}

.container{
  max-width:var(--container);
  margin:0 auto;
  padding-left:var(--px-desktop);
  padding-right:var(--px-desktop);
}
.text-wrap{
  max-width:var(--text-width);
  margin:0 auto;
}
@media (max-width:980px){
  .container{ padding-left:40px; padding-right:40px; }
}
@media (max-width:640px){
  .container{ padding-left:var(--px-mobile); padding-right:var(--px-mobile); }
}

section[id]{
  scroll-margin-top: calc(var(--header-h) + 16px);
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  height:var(--header-h);
  background:var(--bg-main);
  display:flex;
  align-items:center;
  transition:background 160ms ease, box-shadow 160ms ease;
  box-shadow:none;
}
.site-header.is-scrolled{
  background:rgba(243,246,249,0.92);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow-hairline);
}
.header-inner{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.brand-mark{
  font-family:ui-serif,Georgia,"Times New Roman",Times,serif;
  font-weight:500;
  letter-spacing:-0.02em;
  color:var(--brand-blue);
  font-size:30px;
  line-height:1;
  transform:translateY(1px);
  user-select:none;
  white-space:nowrap;
}
.nav{
  display:flex;
  align-items:center;
  gap:34px;
}
.nav a{
  color:var(--brand-blue-70);
  font-weight:400;
  font-size:14px;
  letter-spacing:-0.01em;
  padding:8px 0;
  position:relative;
}
.nav a::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:2px;
  height:1px;
  background:transparent;
  transition:background 160ms ease;
}
.nav a:hover::after{ background:rgba(23,58,90,0.25); }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:var(--radius-sm);
  padding:8px 18px;
  border:1px solid var(--brand-blue);
  color:var(--brand-blue);
  background:transparent;
  font-size:14px;
  font-weight:500;
  letter-spacing:-0.01em;
  cursor:pointer;
  transition:background 160ms ease, color 160ms ease, transform 160ms ease;
  user-select:none;
  white-space: nowrap;
}
.btn:hover{ background:var(--brand-blue); color:#fff; }
.btn:active{ transform:translateY(1px); }

/* Mobile hamburger */
.hamburger{
  display: none;
  border: 0;
  background: transparent;
  padding: 10px;
  border-radius: 10px;
  cursor: pointer;
  color: var(--brand-blue);
}
.hamburger svg{ width: 22px; height: 22px; display: block; }

@media (max-width: 860px){
  .nav{ display: none; }
  .hamburger{ display: inline-flex; }
  .brand{ min-width: unset; }
}

@media (max-width: 420px){
  .site-header .btn{
    padding: 6px 12px;
    font-size: 12px;
  }
}

/* Mobile menu (drawer) */
.drawer-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.28);
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease;
  z-index: 60;
}
.drawer{
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: min(360px, 92vw);
  background: var(--bg-surface);
  transform: translateX(100%);
  transition: transform 200ms ease;
  z-index: 70;
  box-shadow: -12px 0 40px rgba(0,0,0,0.10);
  display: flex;
  flex-direction: column;
  padding: 22px;
  gap: 18px;
}
.drawer.is-open{ transform: translateX(0); }
.drawer-overlay.is-open{
  opacity: 1;
  pointer-events: auto;
}
.drawer-top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-soft);
}
.drawer-close{
  border: 0;
  background: transparent;
  padding: 8px;
  border-radius: 10px;
  cursor: pointer;
  color: var(--brand-blue);
}
.drawer-links{
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 6px;
}
.drawer-links a{
  font-size: 16px;
  color: var(--text-main);
  padding: 10px 8px;
  border-radius: 10px;
}
.drawer-links a:hover{ background: rgba(23,58,90,0.06); }
.drawer-cta{
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--border-soft);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.drawer-cta .btn{ width: 100%; justify-content: center; padding: 12px 16px; }

footer{
  background:var(--bg-footer);
  padding:96px 0 84px;
  text-align:center;
  box-shadow: inset 0 1px 0 rgba(0,0,0,0.04);
}
.footer-brand{
  display:inline-block;
  margin-bottom:18px;
  color:var(--brand-blue);
  font-family:ui-serif,Georgia,"Times New Roman",Times,serif;
  font-size:36px;
  letter-spacing:-0.02em;
  line-height:1;
  user-select:none;
}
.footer-grid{
  display:grid;
  gap:16px;
  justify-content:center;
  margin:0 auto 18px;
  max-width:920px;
}
.footer-links{
  display:flex;
  gap:10px 14px;
  justify-content:center;
  flex-wrap:wrap;
  color: rgba(23,58,90,0.74);
  font-size:13px;
}
.footer-links a{ padding:6px 8px; border-radius:10px; }
.footer-links a:hover{ background: rgba(23,58,90,0.06); }
.footer-legal{
  display:flex;
  gap:10px 14px;
  justify-content:center;
  flex-wrap:wrap;
  color: rgba(28,31,36,0.62);
  font-size:13px;
}
.footer-legal a{ padding:6px 8px; border-radius:10px; }
.footer-legal a:hover{ background: rgba(0,0,0,0.04); }
.footer-meta{
  color: rgba(28,31,36,0.60);
  font-size:12px;
  line-height:1.6;
  max-width:820px;
  margin:0 auto;
  padding:0 18px;
}

.reveal{
  opacity:0;
  transform:translateY(10px);
  transition:opacity 520ms ease, transform 520ms ease;
  will-change:opacity, transform;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
  *{ transition: none !important; scroll-behavior: auto !important; }
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}
