/* ============================================================
   KAYLAR EXPERTS — Design system
   Institutional / rassurant. Petrol-teal + charcoal.
   ============================================================ */

:root{
  /* Neutrals */
  --ink:        #1C2026;
  --ink-2:      #353B43;
  --muted:      #5E6873;
  --muted-2:    #8A939C;
  --line:       #E5E9E8;
  --line-2:     #EEF2F1;
  --paper:      #FFFFFF;
  --paper-2:    #F4F7F6;
  --paper-3:    #ECF1F0;

  /* Brand */
  --brand:      #0E6E70;   /* deep petrol teal — primary */
  --brand-600:  #0B595B;
  --brand-700:  #094B4D;
  --brand-deep: #0A3B40;   /* dark sections / footer */
  --brand-night:#072E33;
  --mint:       #43C6B8;   /* charter accent */
  --mint-soft:  #DCF0EC;
  --cyan:       #1AC4E7;   /* international accent */

  /* Type */
  --sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --serif: 'Spectral', Georgia, 'Times New Roman', serif;
  --head: var(--sans);

  /* Geometry */
  --r-sm: 4px;
  --r:    8px;
  --r-lg: 14px;
  --maxw: 1180px;
  --gutter: clamp(20px, 5vw, 64px);
  --shadow-sm: 0 1px 2px rgba(16,40,42,.04), 0 2px 8px rgba(16,40,42,.05);
  --shadow:    0 6px 24px rgba(12,40,42,.08), 0 2px 6px rgba(12,40,42,.05);
  --shadow-lg: 0 24px 60px rgba(10,40,42,.14), 0 8px 22px rgba(10,40,42,.08);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:17px;
  line-height:1.72;
  color:var(--ink-2);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }
::selection{ background:var(--mint); color:#063134; }

/* ---------- Layout ---------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }
.section{ padding:clamp(64px,9vw,128px) 0; }
.section--tight{ padding:clamp(48px,6vw,84px) 0; }
.section--paper2{ background:var(--paper-2); }
.section--mint{ background:var(--mint-soft); }

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:12.5px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--brand);
}
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--mint); display:inline-block; }
.eyebrow--center::after{ content:""; width:22px; height:2px; background:var(--mint); display:inline-block; }
.eyebrow--ondark{ color:var(--mint); }

/* ---------- Type ---------- */
h1,h2,h3,h4{ font-family:var(--head); color:var(--ink); margin:0; line-height:1.12; font-weight:700; letter-spacing:-.015em; }
.display{
  font-family:var(--head);
  font-size:clamp(38px, 5.1vw, 66px);
  line-height:1.05; letter-spacing:-.022em; font-weight:700; color:var(--ink);
  text-wrap:balance;
}
.h2{ font-size:clamp(28px, 3.5vw, 44px); line-height:1.1; letter-spacing:-.018em; text-wrap:balance; }
.h3{ font-size:clamp(19px,1.5vw,22px); line-height:1.28; letter-spacing:-.01em; font-weight:600; }
.lead{ font-size:clamp(18px,1.5vw,21px); line-height:1.6; color:var(--ink-2); font-weight:400; }
.muted{ color:var(--muted); }
.measure{ max-width:62ch; }
.measure-sm{ max-width:48ch; }
p{ margin:0 0 1.05em; }
p:last-child{ margin-bottom:0; }
strong{ color:var(--ink); font-weight:600; }

/* serif heading variant (tweakable) */
body.heads-serif .display,
body.heads-serif .h2,
body.heads-serif h1,
body.heads-serif h2{ font-family:var(--serif); font-weight:600; letter-spacing:-.01em; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--sans); font-weight:600; font-size:15.5px; letter-spacing:.005em;
  padding:14px 26px; border-radius:var(--btn-r, var(--r));
  border:1.5px solid transparent; cursor:pointer; transition:.22s ease;
  white-space:nowrap; line-height:1;
}
.btn svg{ width:17px; height:17px; transition:transform .25s ease; }
.btn:hover svg.arr{ transform:translateX(3px); }
.btn--primary{ background:var(--brand); color:#fff; border-color:var(--brand); box-shadow:var(--shadow-sm); }
.btn--primary:hover{ background:var(--brand-700); border-color:var(--brand-700); transform:translateY(-1px); box-shadow:var(--shadow); }
.btn--ghost{ background:transparent; color:var(--brand); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--brand); background:var(--paper-2); }
.btn--light{ background:#fff; color:var(--brand-deep); border-color:#fff; }
.btn--light:hover{ background:var(--mint-soft); border-color:var(--mint-soft); transform:translateY(-1px); }
.btn--onmint{ background:var(--brand-deep); color:#fff; border-color:var(--brand-deep); }
.btn--onmint:hover{ background:var(--brand-night); border-color:var(--brand-night); transform:translateY(-1px); }
.btn--lg{ padding:17px 32px; font-size:16.5px; }
.link-arrow{ display:inline-flex; align-items:center; gap:7px; color:var(--brand); font-weight:600; font-size:15px; }
.link-arrow svg{ width:15px; height:15px; transition:transform .25s ease; }
.link-arrow:hover svg{ transform:translateX(3px); }

/* ---------- Logo lockup ---------- */
.logo{ display:inline-flex; align-items:center; gap:12px; }
.logo__mark{ width:var(--logo-mark, 38px); height:auto; color:var(--brand); flex:none; }
.logo__type{ display:flex; flex-direction:column; line-height:.96; }
.logo__type b{ font-family:var(--sans); font-weight:700; letter-spacing:.14em; font-size:16px; color:var(--ink); }
.logo__type span{ font-family:var(--sans); font-weight:500; letter-spacing:.28em; font-size:11px; color:var(--brand); margin-top:2px; }
.logo--light .logo__mark{ color:#fff; }
.logo--light .logo__type b{ color:#fff; }
.logo--light .logo__type span{ color:var(--mint); }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; }
.reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }
.reveal.d5{ transition-delay:.40s; }
@media (prefers-reduced-motion:reduce){ .reveal{ transition:none; opacity:1; transform:none; } }

/* ---------- Cards / grids ---------- */
.grid{ display:grid; gap:24px; }
.card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:30px; transition:.28s ease; }
.card:hover{ border-color:#cfe0dd; box-shadow:var(--shadow); transform:translateY(-3px); }

/* placeholder image */
.ph{
  position:relative; overflow:hidden; border-radius:var(--r-lg);
  background:
    linear-gradient(135deg, var(--paper-3), var(--paper-2));
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  color:var(--muted-2);
}
.ph__mark{ width:42px; height:auto; color:#C2D2CF; }
.ph__label{ position:absolute; left:14px; bottom:12px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); font-weight:600; }
.ph--ratio-43{ aspect-ratio:4/3; }
.ph--ratio-11{ aspect-ratio:1/1; }
.ph--ratio-32{ aspect-ratio:3/2; }
.ph--ratio-169{ aspect-ratio:16/9; }

/* utility */
.center{ text-align:center; }
.stack-6{ display:flex; flex-direction:column; gap:6px; }
.stack-10{ display:flex; flex-direction:column; gap:10px; }
.stack-16{ display:flex; flex-direction:column; gap:16px; }
.stack-24{ display:flex; flex-direction:column; gap:24px; }
.row{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.divider{ height:1px; background:var(--line); border:0; margin:0; }

/* keep page from jumping under fixed header */
#app{ min-height:100vh; }
