/* ============================================================
   BASE.CSS — reset, typography, layout utilities, buttons
   ============================================================ */

/* ---------- RESET ---------- */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;
    animation-delay:0s !important; transition-delay:0s !important;}
}
body{
  margin:0;
  background:
    radial-gradient(ellipse 80% 60% at 20% -10%, rgba(217,140,60,.06), transparent 55%),
    radial-gradient(ellipse 70% 50% at 95% 110%, rgba(163,74,36,.05), transparent 55%),
    linear-gradient(180deg, #141210 0%, #1c1917 100%);
  background-attachment:fixed;
  color:var(--ink-soft);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:var(--font-serif);
  font-weight:700;
  margin:0;
  color:var(--head);
  letter-spacing:-0.01em;
}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}
:focus-visible{outline:2px solid var(--saffron); outline-offset:3px;}

/* ============================================================
   LAYOUT UTILITIES
   ============================================================ */
.wrap{max-width:1200px;margin:0 auto;padding:0 28px;}
.eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--font-body);
  font-weight:600;
  font-size:13px;
  color:var(--saffron);
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:16px;
}
.eyebrow::before{content:"";width:7px;height:7px;background:var(--saffron);transform:rotate(45deg);flex:none;}
.eyebrow::after{content:"";width:44px;height:1px;background:linear-gradient(90deg,var(--saffron),transparent);}

/* ---------- SECTION GENERIC ---------- */
section{padding:110px 0;}
section[id]{scroll-margin-top:92px;}
.section-head{max-width:700px;margin-bottom:56px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head.center .eyebrow::before{display:none;}
.section-head.center .eyebrow::after{display:none;}
.section-head h2{font-size:clamp(34px,4.4vw,52px);line-height:1.1;}
.section-head p.lede{color:var(--ink-soft);font-size:16.5px;margin-top:16px;max-width:52ch;}
.section-head.center p.lede{margin-left:auto;margin-right:auto;}

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease), transform .8s var(--ease);}
[data-reveal].revealed{opacity:1;transform:none;}
[data-reveal="left"]{transform:translateX(-40px);}
[data-reveal="right"]{transform:translateX(40px);}
[data-reveal="left"].revealed,[data-reveal="right"].revealed{transform:none;}
[data-reveal="zoom"]{transform:scale(.9);}
[data-reveal="zoom"].revealed{transform:none;}
.stagger > *{opacity:0;transform:translateY(26px);}
.stagger.revealed > *{opacity:1;transform:none;animation:staggerIn .7s var(--ease) backwards;}
.stagger.revealed > *:nth-child(1){animation-delay:.05s;}
.stagger.revealed > *:nth-child(2){animation-delay:.12s;}
.stagger.revealed > *:nth-child(3){animation-delay:.19s;}
.stagger.revealed > *:nth-child(4){animation-delay:.26s;}
.stagger.revealed > *:nth-child(5){animation-delay:.33s;}
.stagger.revealed > *:nth-child(6){animation-delay:.4s;}
.stagger.revealed > *:nth-child(7){animation-delay:.47s;}
.stagger.revealed > *:nth-child(8){animation-delay:.54s;}
.stagger.revealed > *:nth-child(9){animation-delay:.61s;}
.stagger.revealed > *:nth-child(10){animation-delay:.68s;}
@keyframes staggerIn{
  from{opacity:0;transform:translateY(26px);}
  to{opacity:1;transform:none;}
}

/* ============================================================
   SHARED KEYFRAMES
   ============================================================ */
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-2deg);}50%{transform:translateY(-16px) rotate(2deg);}}
@keyframes floatyX{0%,100%{transform:translate(0,0) rotate(0deg);}50%{transform:translate(14px,-18px) rotate(6deg);}}

/* ============================================================
   PAGE HEADER (dark cultural band)
   ============================================================ */
.page-hero{
  position:relative;
  background:
    radial-gradient(ellipse 55% 55% at 85% 10%, rgba(217,140,60,0.28), transparent 62%),
    radial-gradient(ellipse 45% 55% at 5% 95%, rgba(163,74,36,0.4), transparent 62%),
    linear-gradient(160deg,#241207 0%,#170E0A 55%,#1D0D08 100%);
  padding:190px 0 110px;
  color:#fff;
  text-align:center;
  overflow:hidden;
}
.page-hero .wrap{position:relative;z-index:3;}
.page-hero h1{color:#fff;font-size:clamp(38px,5.6vw,66px);line-height:1.08;max-width:20ch;margin:0 auto;}
.page-hero h1 em{font-style:italic;color:var(--gold-light);}
.page-hero .sub{color:rgba(255,255,255,0.72);font-size:17px;max-width:54ch;margin:18px auto 0;}
.page-hero .eyebrow{justify-content:center;color:var(--gold-light);}
.page-hero .eyebrow::after{background:linear-gradient(90deg,var(--gold-light),transparent);}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:10px;
  padding:16px 30px;font-size:14.5px;font-weight:600;letter-spacing:.02em;
  border-radius:40px;border:1px solid transparent;transition:all .25s var(--ease);
  overflow:hidden;
}
.btn::before{
  content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-20deg);transition:left .55s var(--ease);
}
.btn:hover::before{left:140%;}
.btn-solid{
  background:linear-gradient(120deg, var(--saffron), var(--saffron-deep));
  color:#fff;box-shadow:0 10px 24px rgba(217,140,60,0.35);
}
.btn-solid:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(217,140,60,0.45);}
.btn-gold{background:linear-gradient(120deg, var(--gold), #c98d2a);color:#2b1b10;box-shadow:0 10px 24px rgba(217,140,60,0.3);}
.btn-gold:hover{transform:translateY(-2px);}
.btn-outline{border-color:rgba(255,255,255,.45);color:#fff;}
.btn-outline:hover{border-color:var(--gold-light);color:var(--gold-light);background:rgba(217,140,60,.08);}
.btn-dark{background:var(--charcoal);color:#fff;}
.btn-dark:hover{background:#000;transform:translateY(-2px);}
.btn-maroon{background:linear-gradient(120deg, var(--maroon), var(--maroon-dark));color:#fff;box-shadow:0 10px 24px rgba(163,74,36,0.35);}
.btn-maroon:hover{transform:translateY(-2px);}
.btn-ghost{border-color:rgba(217,140,60,.4);color:var(--saffron);}
.btn-ghost:hover{background:rgba(217,140,60,.08);border-color:var(--saffron);}

/* ---------- OVERLAY & TOAST ---------- */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1100;opacity:0;pointer-events:none;transition:opacity .3s var(--ease);}
.overlay.show{opacity:1;pointer-events:auto;}
.toast{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--charcoal);color:#fff;padding:14px 26px;border-radius:40px;font-size:14px;
  border:1px solid rgba(217,140,60,.4);
  z-index:2000;opacity:0;pointer-events:none;transition:all .3s var(--ease);
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---------- BACK TO TOP (bottom-left, shows near page bottom) ---------- */
.to-top{
  position:fixed;left:24px;bottom:24px;z-index:1500;
  width:46px;height:46px;border-radius:50%;
  background:linear-gradient(120deg,var(--saffron),var(--saffron-deep));
  color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(217,140,60,.45);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
}
.to-top.show{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);}
.to-top:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(217,140,60,.6);}
@media (max-width:560px){
  .to-top{left:16px;bottom:16px;width:44px;height:44px;}
}

/* ---------- RESPONSIVE (global) ---------- */
@media (max-width:560px){
  section{padding:76px 0;}
  .page-hero{padding:160px 0 90px;}
  .wrap{padding:0 18px;}
}
