:root{
  --bg-primary:#041713;
  --bg-secondary:#020504;
  --text-primary:#F6F1E7;
  --text-accent-emerald:#10b981;
  --text-accent-gold:#C9A86A;
  --border-separator:rgba(246,241,231,0.14);
  --container-bg:rgba(4,23,19,0.92);
  --button-bg-primary:#10b981;
  --button-bg-secondary:#C9A86A;

  --font-heading:Playfair Display, "Times New Roman", serif;
  --font-body:Inter, "Segoe UI", Arial, sans-serif;

  --fs-xxl:clamp(28px,4vw,44px);
  --fs-xl:clamp(24px,3.2vw,36px);
  --fs-lg:clamp(20px,2.4vw,28px);
  --fs-md:22px;
  --fs-base:16px;
  --fs-sm:14px;

  --lh-heading:1.2;
  --lh-body:1.6;

  --space-0:0px;
  --space-1:8px;
  --space-2:16px;
  --space-3:32px;
  --space-4:48px;
  --space-5:64px;

  --container-max:1240px;
  --container-pad:32px;
  --container-pad-mobile:16px;

  --radius:8px;

  --shadow-soft:0 2px 8px rgba(16,185,129,0.06);
}

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

html{
  scroll-behavior:smooth;
}

body{
  min-height:100vh;
  background:var(--bg-primary);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:var(--fs-base);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img,
picture,
video{
  max-width:100%;
  display:block;
  border-radius:var(--radius);
}

svg{
  display:block;
}

button,
input,
textarea,
select{
  font:inherit;
  color:inherit;
  background:none;
  border:none;
  outline:none;
}

button{
  cursor:pointer;
}

a{
  color:var(--text-accent-emerald);
  text-decoration:none;
  transition:color .2s ease, letter-spacing .2s ease;
}

a:hover{
  color:var(--text-accent-gold);
  letter-spacing:.02em;
}

:focus-visible{
  outline:2px solid var(--text-accent-emerald);
  outline-offset:2px;
}

ul{
  list-style:none !important;
}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-heading);
  line-height:var(--lh-heading);
  letter-spacing:.02em;
  color:var(--text-primary);
}

h1{font-size:var(--fs-xxl);}
h2{font-size:var(--fs-xl);}
h3{font-size:var(--fs-lg);}
h4{font-size:var(--fs-md);}
h5{font-size:18px;}
h6{font-size:16px;}

p{
  font-size:var(--fs-base);
}

h1:not(:last-child),
h2:not(:last-child),
h3:not(:last-child),
h4:not(:last-child),
h5:not(:last-child),
h6:not(:last-child){
  margin-bottom:var(--space-2);
}

p:not(:last-child){
  margin-bottom:var(--space-2);
}

ul:not(:last-child),
ol:not(:last-child),
blockquote:not(:last-child){
  margin-bottom:var(--space-3);
}

section{
  padding-block:var(--space-4);
}

.container{
  width:100%;
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:var(--container-pad);
}

@media (max-width:768px){
  .container{
    padding-inline:var(--container-pad-mobile);
  }
}

.surface{
  background:var(--container-bg);
  border:1px solid var(--border-separator);
  border-radius:var(--radius);
  padding:var(--space-3);
  box-shadow:var(--shadow-soft);
}

.surface > *:last-child{
  margin-bottom:0;
}

.separator{
  width:100%;
  height:1px;
  background:var(--border-separator);
}

.text-emerald{
  color:var(--text-accent-emerald);
}

.text-gold{
  color:var(--text-accent-gold);
}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 20px;
  border-radius:var(--radius);
  font-weight:600;
  line-height:1.2;
  transition:background .2s ease, color .2s ease;
}

.button-primary{
  background:var(--button-bg-primary);
  color:#041713;
}

.button-primary:hover{
  background:#0ea574;
}

.button-secondary{
  background:var(--button-bg-secondary);
  color:#041713;
}

.button-secondary:hover{
  background:#b8965e;
}

.input,
textarea,
select{
  width:100%;
  padding:12px 14px;
  border-radius:var(--radius);
  border:1px solid var(--border-separator);
  background:var(--bg-secondary);
}

.input:focus,
textarea:focus,
select:focus{
  outline:2px solid var(--text-accent-emerald);
  outline-offset:2px;
}

.nav-toggle{
  display:flex;
  flex-direction:column;
  gap:4px;
  width:32px;
  height:24px;
  justify-content:center;
}

.nav-toggle__bar{
  display:block;
  height:2px;
  width:100%;
  background:var(--text-primary);
}

.flex{
  display:flex;
  gap:var(--space-2);
}

.flex-wrap{
  flex-wrap:wrap;
}

.flex > *{
  min-width:0;
}

.center{
  display:flex;
  align-items:center;
  justify-content:center;
}

.stack > * + *{
  margin-top:var(--space-2);
}

.card{
  background:var(--container-bg);
  border:1px solid var(--border-separator);
  border-radius:var(--radius);
  padding:var(--space-3);
}

.card > *:last-child{
  margin-bottom:0;
}
html, body {
  overflow-x: clip;
  max-width: 100%;
}

img, video, svg {
  max-width: 100%;
  height: auto;
}
