:root {
   --navy: #003252;
   --navy-mid: #04426b;
   --navy-light: #0a5a8a;
   --accent: #B4D6DD;
   --accent-dark: #7ab8c4;
   --gold: #c9a84c;
   --white: #ffffff;
   --off-white: #F8F6F1;
   --gray-50: #fafafa;
   --gray-100: #f0f4f7;
   --gray-200: #e2e8f0;
   --gray-400: #a0aec0;
   --gray-500: #718096;
   --gray-700: #2d3748;
   --text: #1a202c;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
   font-family: 'Montserrat', sans-serif;
   font-weight: 300;
   font-size: 16px;
   color: var(--text);
   background: var(--white);
   overflow-x: hidden;
}

input, select, textarea { font-size: 16px !important; }

h1, h2, h3 {
   font-family: 'Playfair Display', serif;
   font-weight: 700;
}
h4, h5, h6, strong, b { font-weight: 700; }

/* ── SECTION BASE ── */
.section-eyebrow {
   font-family: 'Montserrat', sans-serif;
   font-size: 11px;
   font-weight: 700;
   letter-spacing: 3px;
   text-transform: uppercase;
   color: var(--accent-dark);
   display: block;
   margin-bottom: 0.6rem;
}
.section-eyebrow.light { color: var(--accent); }
.section-heading {
   font-family: 'Playfair Display', serif;
   font-size: clamp(1.8rem, 3vw, 2.4rem);
   color: var(--navy);
   line-height: 1.2;
   margin-bottom: 1rem;
}
.section-heading.white { color: var(--white); }
.section-rule {
   width: 0;
   height: 2px;
   background: var(--accent);
   display: block;
   margin-bottom: 0.75rem;
   transition: width 0.7s cubic-bezier(0.22,1,0.36,1) 0.2s;
}
.section-rule.center { margin-left: auto; margin-right: auto; }
.animated.visible .section-rule,
.slide-left.visible .section-rule,
.slide-right.visible .section-rule { width: 40px; }

/* ── BUTTONS ── */
.btn-primary-custom {
   background: var(--accent);
   color: var(--navy);
   font-family: 'Montserrat', sans-serif;
   font-weight: 700;
   font-size: 13px;
   letter-spacing: 0.5px;
   padding: 0.85rem 2rem;
   border-radius: 4px;
   border: none;
   text-decoration: none;
   display: inline-block;
   transition: background 0.2s, transform 0.15s;
   position: relative; overflow: hidden;
}
.btn-primary-custom:hover { background: var(--accent-dark); transform: translateY(-2px); color: var(--navy); }
.btn-outline-custom {
   background: transparent;
   color: var(--white);
   font-family: 'Montserrat', sans-serif;
   font-weight: 600;
   font-size: 13px;
   letter-spacing: 0.5px;
   padding: 0.85rem 2rem;
   border-radius: 4px;
   border: 1.5px solid rgba(255,255,255,0.4);
   text-decoration: none;
   display: inline-block;
   transition: border-color 0.2s, background 0.2s;
}
.btn-outline-custom:hover { border-color: var(--white); background: rgba(255,255,255,0.08); color: var(--white); }

/* ── SCROLL REVEAL ── */
.animated {
   opacity: 0; transform: translateY(30px);
   transition: opacity 0.65s cubic-bezier(0.22,1,0.36,1), transform 0.65s cubic-bezier(0.22,1,0.36,1);
}
.animated.visible { opacity: 1; transform: translateY(0); }

.slide-left {
   opacity: 0; transform: translateX(-32px);
   transition: opacity 0.65s cubic-bezier(0.22,1,0.36,1), transform 0.65s cubic-bezier(0.22,1,0.36,1);
}
.slide-left.visible { opacity: 1; transform: translateX(0); }

.slide-right {
   opacity: 0; transform: translateX(32px);
   transition: opacity 0.65s cubic-bezier(0.22,1,0.36,1), transform 0.65s cubic-bezier(0.22,1,0.36,1);
}
.slide-right.visible { opacity: 1; transform: translateX(0); }

.stagger > * {
   opacity: 0; transform: translateY(24px);
   transition: opacity 0.55s cubic-bezier(0.22,1,0.36,1), transform 0.55s cubic-bezier(0.22,1,0.36,1);
}
.stagger.visible > *:nth-child(1) { opacity:1; transform:none; transition-delay:0.05s; }
.stagger.visible > *:nth-child(2) { opacity:1; transform:none; transition-delay:0.15s; }
.stagger.visible > *:nth-child(3) { opacity:1; transform:none; transition-delay:0.25s; }
.stagger.visible > *:nth-child(4) { opacity:1; transform:none; transition-delay:0.35s; }
.stagger.visible > *:nth-child(5) { opacity:1; transform:none; transition-delay:0.45s; }
