:root{
--color-surface-primary:#121315;
--color-surface-secondary:#1F2329;
--color-surface-tertiary:#2C3139;
--color-text-primary:#F6F3EE;
--color-text-secondary:#C7CBD2;
--color-accent-gold:#C79A47;
--color-accent-wine:#7C3048;
--color-accent-green:#2F695A;
--color-border-muted:#414751;

--font-heading:"Playfair Display",serif;
--font-body:Inter,"Helvetica Neue",Arial,sans-serif;

--text-xs:1.125rem;
--text-sm:1.4rem;
--text-md:1.8rem;
--text-lg:2.4rem;
--text-xl:3.2rem;

--space-1:0.5rem;
--space-2:1rem;
--space-3:2rem;
--space-4:3rem;
--space-5:5rem;

--container-max:1120px;
--container-pad:2rem;

--radius-sm:8px;
--radius-md:12px;
--radius-lg:16px;

--shadow-soft:0 2px 16px rgba(18,19,21,0.32);

--transition-fast:0.2s ease;
--transition-smooth:0.35s ease;
}

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

html{
font-size:100%;
scroll-behavior:smooth;
}

body{
min-height:100vh;
font-family:var(--font-body);
font-size:var(--text-xs);
line-height:1.6;
background:var(--color-surface-primary);
color:var(--color-text-primary);
text-rendering:optimizeLegibility;
-webkit-font-smoothing:antialiased;
}

img,
picture,
video,
canvas,
svg{
display:block;
max-width:100%;
height:auto;
}

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

button{
cursor:pointer;
}

ul{
list-style:none !important;
padding:0;
margin:0;
}

a{
color:inherit;
text-decoration:none;
transition:color var(--transition-fast);
}

a:hover,
a:focus-visible{
color:var(--color-accent-gold);
}

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

h1,h2,h3,h4,h5,h6{
font-family:var(--font-heading);
line-height:1.2;
letter-spacing:-0.01em;
margin-bottom:var(--space-2);
}

h1{
font-size:clamp(2.2rem,4vw,3.2rem);
}

h2{
font-size:clamp(1.8rem,3vw,2.4rem);
}

h3{
font-size:clamp(1.5rem,2.5vw,1.8rem);
}

h4{
font-size:1.4rem;
}

h5,h6{
font-size:1.125rem;
}

p{
margin-bottom:var(--space-2);
color:var(--color-text-secondary);
}

p:last-child,
h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
h5:last-child,
h6:last-child{
margin-bottom:0;
}

ol,ul{
margin-bottom:var(--space-2);
}

li:last-child{
margin-bottom:0;
}

blockquote{
margin-bottom:var(--space-3);
padding-left:var(--space-2);
border-left:2px solid var(--color-accent-gold);
color:var(--color-text-secondary);
}

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

@media (max-width:768px){
.container{
padding-inline:1rem;
}
}

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

.surface-secondary{
background:var(--color-surface-secondary);
}

.surface-tertiary{
background:var(--color-surface-tertiary);
}

.card{
background:var(--color-surface-secondary);
border:1px solid var(--color-border-muted);
border-radius:var(--radius-md);
padding:var(--space-3);
box-shadow:var(--shadow-soft);
transition:transform var(--transition-smooth),box-shadow var(--transition-smooth);
}

.card:hover{
transform:translateY(-4px);
box-shadow:0 6px 24px rgba(18,19,21,0.4);
}

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

.button{
display:inline-flex;
align-items:center;
justify-content:center;
gap:0.5rem;
padding:0.75rem 1.5rem;
border-radius:var(--radius-sm);
background:transparent;
border:1px solid var(--color-accent-gold);
color:var(--color-text-primary);
transition:all var(--transition-fast);
white-space:nowrap;
}

.button:hover,
.button:focus-visible{
background:var(--color-accent-gold);
color:#121315;
}

.button-accent{
background:var(--color-accent-gold);
color:#121315;
border-color:var(--color-accent-gold);
}

.button-accent:hover,
.button-accent:focus-visible{
background:var(--color-accent-wine);
border-color:var(--color-accent-wine);
color:#fff;
}

.input,
textarea,
select{
width:100%;
padding:0.75rem 1rem;
border:1px solid var(--color-border-muted);
border-radius:var(--radius-sm);
background:var(--color-surface-primary);
color:var(--color-text-primary);
transition:border var(--transition-fast),box-shadow var(--transition-fast);
}

.input:focus,
textarea:focus,
select:focus{
border-color:var(--color-accent-gold);
box-shadow:0 0 0 2px rgba(199,154,71,0.25);
}

label{
display:block;
margin-bottom:var(--space-1);
font-size:0.95rem;
color:var(--color-text-secondary);
}

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

.flex-col{
flex-direction:column;
}

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

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

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

.nav-toggle{
display:flex;
flex-direction:column;
gap:4px;
}

.divider{
height:1px;
width:100%;
background:var(--color-border-muted);
margin-block:var(--space-3);
}

img.rounded{
border-radius:var(--radius-lg);
}

.no-overflow{
overflow:hidden;
}

html,body{
max-width:100%;
overflow-x:hidden;
}