@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap');

:root {
  --primary:#1A3C5E; --primary-dark:#122B45; --primary-light:#E8F0F8;
  --accent:#E8A020; --accent-light:#FFF8EC; --accent-dark:#C47E0A;
  --bg:#F6F8FC; --surface:#FFFFFF; --surface-2:#F0F4FA; --border:#DDE3EE;
  --text-primary:#1C1C2E; --text-secondary:#5A6075; --text-muted:#9AA3B5;
  --success:#2ECC71; --success-bg:#E8FAF0; --warning:#F39C12; --warning-bg:#FEF9EC;
  --danger:#E74C3C; --danger-bg:#FEF0EF;
  --shadow-sm:0 2px 8px rgba(26,60,94,0.08); --shadow-md:0 4px 20px rgba(26,60,94,0.12);
  --shadow-lg:0 8px 40px rgba(26,60,94,0.16); --shadow-hover:0 12px 48px rgba(26,60,94,0.20);
  --radius-sm:6px; --radius-md:12px; --radius-lg:20px; --radius-full:9999px;
  --transition:all 0.3s cubic-bezier(0.4,0,0.2,1); --transition-fast:all 0.15s ease;
  --font-heading:'Playfair Display',serif; --font-body:'DM Sans',sans-serif;
  --space-xs:4px; --space-sm:8px; --space-md:16px; --space-lg:24px;
  --space-xl:40px; --space-2xl:64px; --space-3xl:96px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--font-body);font-size:16px;color:var(--text-primary);background:var(--bg);line-height:1.6;overflow-x:hidden;}
img{display:block;max-width:100%;height:auto;}
a{text-decoration:none;color:inherit;}
ul,ol{list-style:none;}
button{font-family:var(--font-body);cursor:pointer;}
input,textarea,select{font-family:var(--font-body);}

h1,h2,h3,h4,h5{font-family:var(--font-heading);color:var(--primary);line-height:1.2;}
h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.12;}
h2{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.22;}
h3{font-size:clamp(1.05rem,2vw,1.4rem);}
h4{font-size:1rem;font-family:var(--font-body);}
p{line-height:1.75;color:var(--text-secondary);}

.container{max-width:1200px;margin:0 auto;padding:0 24px;}
.section{padding:var(--space-3xl) 0;}
.section-sm{padding:var(--space-2xl) 0;}
.section-header{text-align:center;margin-bottom:56px;}
.section-header h2{margin-bottom:14px;}
.section-header p{max-width:560px;margin:0 auto;font-size:1.05rem;}
.section-label{display:inline-block;font-size:0.72rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}

.toast{position:fixed;bottom:24px;right:24px;background:var(--primary);color:#fff;padding:14px 22px;border-radius:var(--radius-md);font-size:0.9rem;font-weight:500;box-shadow:var(--shadow-lg);z-index:9999;opacity:0;transform:translateY(12px);transition:opacity 0.3s ease,transform 0.3s ease;max-width:340px;}
.toast.show{opacity:1;transform:translateY(0);}
.toast.toast-success{background:#1A7A4A;}
.toast.toast-error{background:var(--danger);}
.toast.toast-warning{background:var(--warning);}

.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm);}
@keyframes shimmer{to{background-position:-200% 0;}}

.empty-state{text-align:center;padding:64px 24px;color:var(--text-muted);}
.empty-state .empty-icon{font-size:3rem;margin-bottom:16px;}
.empty-state p{font-size:1rem;}

.w-full{width:100%;}
.text-center{text-align:center;}
.mt-sm{margin-top:var(--space-sm);}
.mt-md{margin-top:var(--space-md);}
.mt-lg{margin-top:var(--space-lg);}
.mt-xl{margin-top:var(--space-xl);}
.flex{display:flex;}
.flex-center{display:flex;align-items:center;justify-content:center;}
.gap-sm{gap:var(--space-sm);}
.gap-md{gap:var(--space-md);}
