/* ==========================================================================
   WEFT — Design Tokens, Reset & Base Typography
   Mobile-first. All sizing scales up via min-width media queries elsewhere.
   ========================================================================== */

:root{
  /* -- Palette: warm neutral luxury, never bright -- */
  --ivory:#FBF8F3;
  --cream:#F4EFE6;
  --cream-2:#EEE7D9;
  --sand:#E2D3B8;
  --beige:#D9C9AE;
  --stone:#9A8F7C;
  --taupe:#766B5A;
  --charcoal:#1B1815;
  --charcoal-2:#242019;
  --charcoal-3:#2E2820;
  --ink:#121009;
  --white:#FFFFFF;
  --gold:#AD8A5C;
  --gold-light:#CBAD80;
  --gold-dim:rgba(173,138,92,.16);

  --line:rgba(18,16,9,.09);
  --line-soft:rgba(18,16,9,.05);
  --line-dark:rgba(251,248,243,.14);
  --line-dark-soft:rgba(251,248,243,.07);

  --text:#1E1B16;
  --text-soft:#5C5546;
  --text-on-dark:#F4EFE6;
  --text-on-dark-soft:#C7BEAC;

  /* -- Elevation -- */
  --shadow-sm:0 2px 10px rgba(18,16,9,.07);
  --shadow-md:0 24px 48px -18px rgba(18,16,9,.22);
  --shadow-lg:0 50px 90px -24px rgba(18,16,9,.32);
  --shadow-float:0 35px 70px -20px rgba(18,16,9,.4);
  --shadow-gold:0 20px 45px -12px rgba(173,138,92,.45);

  /* -- Radius -- */
  --r-xs:10px;
  --r-sm:16px;
  --r-md:26px;
  --r-lg:42px;
  --r-xl:72px;
  --r-pill:100px;

  /* -- Type -- */
  --font-display:'Fraunces',ui-serif,Georgia,serif;
  --font-sans:'Inter',ui-sans-serif,system-ui,sans-serif;

  /* -- Motion -- */
  --ease-luxe:cubic-bezier(.19,1,.22,1);
  --ease-soft:cubic-bezier(.25,.8,.25,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:.3s;
  --dur-med:.6s;
  --dur-slow:1s;

  /* -- Layout -- */
  --container:1360px;
  --gutter:24px;
  --header-h:78px;
}

@media(min-width:768px){
  :root{--gutter:40px;}
}
@media(min-width:1240px){
  :root{--header-h:94px;}
}

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

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}
html.no-scroll,body.no-scroll{overflow:hidden;height:100%;}

body{
  font-family:var(--font-sans);
  background:var(--cream);
  color:var(--text);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-size:15px;
  line-height:1.6;
}

img,video{display:block;max-width:100%;height:auto;}
svg{display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
a{text-decoration:none;color:inherit;}
ul,ol{list-style:none;}
button,input,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none;-webkit-appearance:none;appearance:none;}
button{cursor:pointer;}
strong{font-weight:600;}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.08;
  letter-spacing:-.01em;
  color:var(--text);
}

.eyebrow{
  font-family:var(--font-sans);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:'';
  width:26px;height:1px;
  background:var(--gold);
  display:inline-block;
}
.on-dark .eyebrow{color:var(--gold-light);}

.label{
  font-size:11px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}

/* -- Container / section rhythm -- */
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);}
.section{position:relative;padding:88px 0;}
.section-tight{padding:64px 0;}
@media(min-width:1000px){
  .section{padding:150px 0;}
  .section-tight{padding:100px 0;}
}

.section-head{max-width:640px;margin:0 0 44px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(30px,7vw,54px);margin-top:16px;}
.section-head p{margin-top:18px;color:var(--text-soft);font-size:15.5px;line-height:1.7;max-width:520px;}
.section-head.center p{margin-left:auto;margin-right:auto;}
.on-dark .section-head h2{color:var(--text-on-dark);}
.on-dark .section-head p{color:var(--text-on-dark-soft);}
@media(min-width:1000px){
  .section-head{margin-bottom:64px;}
  .section-head p{font-size:17px;}
}

.head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px;}

/* -- Curved stacking panels (each section overlaps prior with rounded lip) -- */
.panel-dark{background:var(--charcoal);color:var(--text-on-dark);}
.panel-light{background:var(--cream);}
.curve-up{
  border-radius:var(--r-lg) var(--r-lg) 0 0;
  margin-top:calc(var(--r-lg) * -1);
  position:relative;
  z-index:2;
}
@media(min-width:1000px){
  .curve-up{border-radius:var(--r-xl) var(--r-xl) 0 0;margin-top:calc(var(--r-xl) * -1);}
}

/* -- Visually-hidden but accessible -- */
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* -- Scrollbar (webkit) subtle luxe styling -- */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--cream);}
::-webkit-scrollbar-thumb{background:var(--beige);border-radius:10px;border:2px solid var(--cream);}
::-webkit-scrollbar-thumb:hover{background:var(--stone);}

::selection{background:var(--gold);color:var(--white);}

/* -- Focus states (keyboard only) -- */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
