@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;1,300&family=DM+Mono:wght@400;500&display=swap');

:root {
  --color-primary:      #1a3a5c;
  --color-accent:       #c8102e;
  --color-accent-light: #e63950;
  --color-dark:         #0d1f33;
  --color-mid:          #4a6380;
  --color-light:        #8fa8c0;
  --color-bg:           #f7f8fa;
  --color-white:        #ffffff;
  --color-border:       #dce4ed;
  --color-text:         #1e2d3d;
  --color-text-light:   #5a7088;
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body:    'DM Sans', sans-serif;
  --font-mono:    'DM Mono', monospace;
  --max-width: 1160px;
  --header-height: 80px;
  --shadow-sm: 0 2px 8px rgba(26,58,92,0.08);
  --shadow-md: 0 6px 24px rgba(26,58,92,0.12);
  --shadow-lg: 0 16px 48px rgba(26,58,92,0.16);
  --radius-sm: 4px;
  --radius-md: 8px;
  --transition: 0.3s cubic-bezier(0.4,0,0.2,1);
}

html { font-size:16px; scroll-behavior:smooth; }
body { font-family:var(--font-body); color:var(--color-text); background:var(--color-white); padding-top:var(--header-height); -webkit-font-smoothing:antialiased; }
.container { max-width:var(--max-width); margin:0 auto; padding:0 24px; }

h1,h2,h3,h4 { font-family:var(--font-display); font-weight:500; line-height:1.2; }
.section-subtitle { font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--color-accent); margin-bottom:12px; display:block; }
.section-title { font-size:clamp(2rem,4vw,3rem); color:var(--color-primary); margin-bottom:16px; }
.section-desc { font-size:1rem; color:var(--color-text-light); line-height:1.85; }
.divider { width:44px; height:3px; background:var(--color-accent); margin:16px 0 28px; }
.section { padding:96px 0; }
.section-sm { padding:64px 0; }

.btn { display:inline-flex; align-items:center; gap:8px; padding:12px 28px; font-size:0.85rem; font-weight:500; letter-spacing:0.06em; border-radius:var(--radius-sm); transition:var(--transition); cursor:pointer; }
.btn-primary { background:var(--color-accent); color:#fff; border:2px solid var(--color-accent); }
.btn-primary:hover { background:var(--color-accent-light); border-color:var(--color-accent-light); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-outline { background:transparent; color:var(--color-primary); border:2px solid var(--color-primary); }
.btn-outline:hover { background:var(--color-primary); color:#fff; transform:translateY(-2px); }
.btn-white { background:#fff; color:var(--color-primary); border:2px solid #fff; }
.btn-white:hover { background:transparent; color:#fff; transform:translateY(-2px); }

.page-hero { background:var(--color-dark); padding:72px 0 52px; position:relative; overflow:hidden; }
.page-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg,var(--color-dark) 0%,var(--color-primary) 70%); opacity:0.92; }
.page-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.2; }
.page-hero-content { position:relative; z-index:1; }
.page-hero-label { font-family:var(--font-mono); font-size:0.7rem; letter-spacing:0.22em; color:var(--color-accent); text-transform:uppercase; display:block; margin-bottom:12px; }
.page-hero h1 { font-size:clamp(2rem,5vw,3.4rem); color:#fff; font-weight:300; }
.breadcrumb { display:flex; align-items:center; gap:8px; margin-top:14px; font-size:0.78rem; color:rgba(255,255,255,0.45); }
.breadcrumb a { color:rgba(255,255,255,0.65); transition:var(--transition); }
.breadcrumb a:hover { color:#fff; }

.contact-cta { background:var(--color-primary); padding:72px 0; text-align:center; position:relative; overflow:hidden; }
.contact-cta::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 30% 50%,rgba(200,16,46,0.18) 0%,transparent 60%); }
.contact-cta-inner { position:relative; z-index:1; }
.contact-cta h2 { font-size:clamp(1.6rem,3vw,2.4rem); color:#fff; margin-bottom:10px; }
.contact-cta p { color:rgba(255,255,255,0.65); margin-bottom:28px; }
.contact-cta-actions { display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; }
.contact-phone-block { text-align:left; }
.contact-phone-label { font-size:0.72rem; color:rgba(255,255,255,0.55); letter-spacing:0.08em; display:block; margin-bottom:2px; }
.contact-phone-num { font-family:var(--font-display); font-size:1.7rem; color:#fff; font-weight:500; }
.contact-hours { font-size:0.72rem; color:rgba(255,255,255,0.4); margin-top:12px; letter-spacing:0.05em; }

/* ---- TAG ---- */
.tag { display:inline-block; padding:2px 10px; font-size:0.68rem; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; border-radius:2px; }
.tag-news { background:var(--color-primary); color:#fff; }
.tag-topics { background:var(--color-accent); color:#fff; }
.tag-media { background:var(--color-mid); color:#fff; }

/* ============================================ HEADER */
.site-header { position:fixed; top:0; left:0; right:0; height:var(--header-height); background:#fff; z-index:1000; border-bottom:1px solid var(--color-border); transition:var(--transition); }
.site-header.scrolled { box-shadow:var(--shadow-md); }
.header-inner { max-width:var(--max-width); margin:0 auto; padding:0 24px; height:100%; display:flex; align-items:center; justify-content:space-between; }
.site-logo { display:flex; flex-direction:column; gap:2px; }
.site-logo-main { font-family:var(--font-display); font-size:1.1rem; font-weight:600; color:var(--color-primary); letter-spacing:0.02em; line-height:1; }
.site-logo-sub { font-family:var(--font-mono); font-size:0.58rem; letter-spacing:0.14em; color:var(--color-light); text-transform:uppercase; }
.main-nav { display:flex; align-items:center; gap:2px; }
.main-nav a { font-size:0.78rem; font-weight:500; letter-spacing:0.03em; color:var(--color-text); padding:6px 9px; border-radius:var(--radius-sm); transition:var(--transition); white-space:nowrap; }
.main-nav a:hover,.main-nav a.active { color:var(--color-accent); background:rgba(200,16,46,0.06); }
.header-contact-btn { display:flex; align-items:center; gap:6px; padding:8px 16px; background:var(--color-accent); color:#fff; border-radius:var(--radius-sm); font-size:0.76rem; font-weight:500; letter-spacing:0.05em; transition:var(--transition); white-space:nowrap; }
.header-contact-btn:hover { background:var(--color-accent-light); transform:translateY(-1px); }
.menu-toggle { display:none; flex-direction:column; justify-content:center; gap:5px; width:36px; height:36px; cursor:pointer; padding:4px; }
.menu-toggle span { display:block; height:2px; background:var(--color-primary); border-radius:2px; transition:var(--transition); }
.menu-toggle.active span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity:0; }
.menu-toggle.active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.mobile-nav { display:none; position:fixed; top:var(--header-height); left:0; right:0; background:#fff; border-top:1px solid var(--color-border); box-shadow:var(--shadow-lg); z-index:999; max-height:calc(100vh - var(--header-height)); overflow-y:auto; }
.mobile-nav.open { display:block; }
.mobile-nav a { display:block; padding:13px 24px; font-size:0.88rem; font-weight:500; color:var(--color-text); border-bottom:1px solid var(--color-border); transition:var(--transition); }
.mobile-nav a:hover { color:var(--color-accent); background:var(--color-bg); }
.mobile-nav-cta { padding:16px 24px; display:flex; flex-direction:column; gap:10px; }

/* ============================================ FOOTER */
.site-footer { background:var(--color-dark); color:rgba(255,255,255,0.6); padding:64px 0 0; }
.footer-top { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:48px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.08); }
.footer-logo-name { font-family:var(--font-display); font-size:1.15rem; color:#fff; font-weight:500; margin-bottom:4px; }
.footer-logo-sub { font-family:var(--font-mono); font-size:0.6rem; letter-spacing:0.14em; color:var(--color-light); text-transform:uppercase; margin-bottom:14px; }
.footer-tagline { font-size:0.8rem; line-height:1.7; color:rgba(255,255,255,0.45); margin-bottom:16px; }
.footer-address { font-size:0.76rem; line-height:1.75; color:rgba(255,255,255,0.35); }
.footer-col h4 { font-family:var(--font-mono); font-size:0.66rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--color-accent); margin-bottom:14px; }
.footer-col ul { display:flex; flex-direction:column; gap:8px; }
.footer-col a { font-size:0.8rem; color:rgba(255,255,255,0.5); transition:var(--transition); }
.footer-col a:hover { color:#fff; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; padding:18px 0; font-size:0.72rem; color:rgba(255,255,255,0.28); }
.footer-bottom a { color:rgba(255,255,255,0.38); transition:var(--transition); }
.footer-bottom a:hover { color:rgba(255,255,255,0.75); }

.scroll-top { position:fixed; bottom:28px; right:28px; width:42px; height:42px; background:var(--color-primary); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:var(--transition); z-index:900; box-shadow:var(--shadow-md); cursor:pointer; }
.scroll-top.visible { opacity:1; pointer-events:all; }
.scroll-top:hover { background:var(--color-accent); transform:translateY(-3px); }

.fade-up { opacity:0; transform:translateY(28px); transition:opacity 0.65s ease, transform 0.65s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }
.fade-up:nth-child(2) { transition-delay:0.1s; }
.fade-up:nth-child(3) { transition-delay:0.2s; }
.fade-up:nth-child(4) { transition-delay:0.3s; }
.fade-up:nth-child(5) { transition-delay:0.4s; }
.fade-up:nth-child(6) { transition-delay:0.5s; }

@media(max-width:1024px){ .main-nav a{font-size:0.73rem;padding:6px 7px;} }
@media(max-width:900px){ .main-nav{display:none;} .menu-toggle{display:flex;} .footer-top{grid-template-columns:1fr 1fr;gap:32px;} }
@media(max-width:600px){ :root{--header-height:64px;} .footer-top{grid-template-columns:1fr;} .footer-bottom{flex-direction:column;gap:8px;text-align:center;} .section{padding:64px 0;} .contact-cta-actions{flex-direction:column;} }
