/* =========================================================
   SNOWTAILORS · core.css
   Variables, reset, typography, layout primitives.
   ========================================================= */

:root{
  /* Brand palette — Midnight Alpine */
  --navy:        #0F1B3C;
  --navy-2:      #1A2748;
  --navy-deep:   #0A1428;
  --ice:         #CADCFC;
  --snow:        #F4F2EE;
  --paper:       #FBFAF7;
  --paper-2:     #F5F2EC;
  --gold:        #C9A961;
  --gold-light:  #E8B23C;
  --gold-dark:   #9A7F3F;
  --txt:         #1B2240;
  --txt-soft:    #3F4763;
  --grey:        #5D6B82;
  --grey-light:  #8A92A5;
  --line:        rgba(255,255,255,.18);
  --line-dark:   rgba(15,27,60,.10);

  /* Spacing scale */
  --gap-xs: 8px;
  --gap-sm: 16px;
  --gap-md: 32px;
  --gap-lg: 64px;
  --gap-xl: 120px;
  --gap-2xl: 160px;

  /* Type */
  --font-display: 'Cormorant Garamond', 'Times New Roman', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Motion */
  --ease-out-expo: cubic-bezier(.16,1,.3,1);
  --ease-in-out-expo: cubic-bezier(.87,0,.13,1);
  --ease-luxe: cubic-bezier(.25,.46,.45,.94);
  --duration-fast: .25s;
  --duration: .45s;
  --duration-slow: .85s;
}

/* ========== RESET ========== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  font-family:var(--font-body);
  font-weight:400;
  font-size:16px;
  line-height:1.55;
  color:var(--txt);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img,svg,video{max-width:100%;display:block;height:auto}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
a{color:inherit;text-decoration:none}
input,textarea,select{font:inherit;color:inherit}
ul,ol{list-style:none}

/* ========== TYPOGRAPHY ========== */
h1,h2,h3,h4,h5{
  font-family:var(--font-display);
  font-weight:400;
  letter-spacing:.005em;
  line-height:1.15;
  color:var(--navy);
}
h1{font-size:clamp(48px,7vw,96px);font-weight:300}
h2{font-size:clamp(34px,4.5vw,56px);font-weight:400}
h3{font-size:clamp(22px,2.4vw,30px)}
h4{font-size:clamp(18px,1.6vw,24px)}
h5{font-size:14px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;font-family:var(--font-body)}

p{font-weight:400;line-height:1.7}

em{font-style:italic;color:var(--gold)}
strong{font-weight:600}

.eyebrow{
  display:inline-block;
  font-family:var(--font-body);
  font-size:11px;
  font-weight:600;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--gold);
}
.eyebrow::before{
  content:"";display:inline-block;width:24px;height:1px;background:var(--gold);
  vertical-align:middle;margin-right:14px;
}

/* ========== LAYOUT PRIMITIVES ========== */
.container{
  width:100%;
  max-width:1320px;
  margin:0 auto;
  padding:0 32px;
}
.container--narrow{max-width:960px}
.container--wide{max-width:1440px}

.section{padding:var(--gap-xl) 0}
.section--lg{padding:var(--gap-2xl) 0}
.section--sm{padding:var(--gap-lg) 0}

.section--dark{background:var(--navy);color:#fff}
.section--dark h1,
.section--dark h2,
.section--dark h3,
.section--dark h4{color:#fff}

.section--paper{background:var(--paper)}
.section--snow{background:var(--snow)}

/* ========== UTILITIES ========== */
.text-center{text-align:center}
.text-gold{color:var(--gold)}
.italic{font-style:italic}
.lede{font-size:18px;font-weight:300;line-height:1.8;color:var(--grey)}
.section--dark .lede{color:rgba(255,255,255,.78)}

/* Sr-only for accessibility */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* Smooth font loading */
.fonts-loading body{opacity:0}
.fonts-loaded body{opacity:1;transition:opacity .3s}

/* ========== RESPONSIVE BREAKPOINTS ========== */
/* Mobile first. Breakpoints defined per-component. */
@media (max-width: 1024px){
  .container{padding:0 24px}
  .section{padding:80px 0}
  .section--lg{padding:100px 0}
}
@media (max-width: 640px){
  .container{padding:0 20px}
  h1{font-size:42px}
  h2{font-size:32px}
}

/* ========== PRINT ========== */
@media print{
  .topbar,.menu,.prefooter,footer,.scroll-cue{display:none !important}
  body{background:#fff;color:#000}
}

/* ========== REDUCED MOTION ========== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}
