@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; font-family:inherit; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
    font-family:var(--font-body); font-size:var(--fs-base); font-weight:var(--fw-regular);
    line-height:var(--lh-normal); color:var(--color-secondary); background-color:var(--color-sandlewood);
    overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6 { font-family:var(--font-heading); font-weight:var(--fw-bold); line-height:var(--lh-tight); color:var(--color-charcoal); }
h1{font-size:var(--fs-4xl);} h2{font-size:var(--fs-3xl);} h3{font-size:var(--fs-2xl);}
h4{font-size:var(--fs-xl);} h5{font-size:var(--fs-lg);} h6{font-size:var(--fs-md);}
p { line-height:var(--lh-relaxed); color:var(--color-charcoal); }
a { color:var(--color-primary); text-decoration:none; transition:color var(--transition-fast); }
a:hover { color:var(--color-primary-dark); }
img { max-width:100%; height:auto; display:block; }
ul,ol { list-style:none; }
button { cursor:pointer; font-family:var(--font-body); border:none; outline:none; background:none; }
input,textarea,select { font-family:var(--font-body); font-size:var(--fs-base); outline:none; }

.container { width:100%; max-width:var(--container-max); margin:0 auto; padding:0 var(--container-padding); }
.section { padding:var(--space-10) 0; }
.section-header { text-align:center; margin-bottom:var(--space-12); }
.section-header h2 { margin-bottom:var(--space-4); position:relative; display:inline-block; }
.section-header h2::after {
    content:''; position:absolute; bottom:-8px; left:50%; transform:translateX(-50%);
    width:60px; height:3px; background:var(--gradient-warm); border-radius:var(--radius-full);
}
.section-header p { color:var(--color-warm-gray); font-size:var(--fs-md); max-width:600px; margin:var(--space-4) auto 0; }

.reveal { opacity:0; transform:translateY(30px); transition:opacity 0.6s ease,transform 0.6s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
::selection { background-color:var(--color-primary-100); color:var(--color-primary-dark); }
::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background:var(--color-cream); }
::-webkit-scrollbar-thumb { background:var(--color-primary); border-radius:var(--radius-full); }
:focus-visible { outline:2px solid var(--color-primary); outline-offset:2px; }

@media(max-width:768px){
    h1{font-size:var(--fs-3xl);} h2{font-size:var(--fs-2xl);} h3{font-size:var(--fs-xl);}
    .section{padding:var(--space-8) 0;}
}
@media(max-width:480px){ h1{font-size:var(--fs-2xl);} h2{font-size:var(--fs-xl);} }
