:root{
--color-surface-primary:#F7F3EC;
--color-surface-secondary:#EDE4D8;
--color-surface-elevated:#FFFFFF;
--color-text-primary:#23211F;
--color-text-secondary:#5E5953;
--color-accent-gold:#B88A3E;
--color-accent-burgundy:#7B3047;
--color-accent-emerald:#3E675A;
--color-border-subtle:#D8CEC2;
--color-text-on-dark:#FFFFFF;

--font-heading:'Playfair Display',serif;
--font-body:'Inter','Segoe UI','Arial',sans-serif;

--fs-xxl:clamp(2.4rem,4vw,3.2rem);
--fs-xl:clamp(2rem,3vw,2.4rem);
--fs-lg:clamp(1.6rem,2.2vw,1.8rem);
--fs-md:1.5rem;
--fs-sm:1.25rem;
--fs-base:1rem;
--fs-xs:0.875rem;

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

--container-max:1200px;
--container-pad:24px;
--container-pad-sm:16px;

--radius-sm:4px;
--radius-md:6px;
--radius-lg:8px;
--radius-xl:24px;

--shadow-soft:0 2px 12px rgba(36,33,31,0.06);
}

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

html{
font-size:16px;
scroll-behavior:smooth;
-webkit-text-size-adjust:100%;
}

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

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;
}

a{
color:inherit;
text-decoration:none;
}

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

h1,h2,h3,h4,h5,h6{
font-family:var(--font-heading);
font-weight:500;
line-height:1.2;
letter-spacing:0.02em;
margin-block-end:var(--space-4);
}

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:var(--fs-sm);}
h6{font-size:var(--fs-base);}

p{
margin-block-end:var(--space-4);
color:var(--color-text-primary);
}

small{
font-size:var(--fs-xs);
color:var(--color-text-secondary);
}

ul,ol{
margin-block-end:var(--space-4);
padding-left:1.2em;
}

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

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

@media (max-width:768px){
section{
padding-block:var(--space-6);
}
}

.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-sm);
}
}

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

.surface-elevated{
background:var(--color-surface-elevated);
border:1px solid var(--color-border-subtle);
box-shadow:var(--shadow-soft);
border-radius:var(--radius-sm);
}

.card{
background:var(--color-surface-elevated);
border:1px solid var(--color-border-subtle);
box-shadow:var(--shadow-soft);
border-radius:var(--radius-sm);
padding:var(--space-5);
}

@media (max-width:768px){
.card{
padding:var(--space-4);
}
}

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

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

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

.cluster{
display:flex;
flex-wrap:wrap;
gap:var(--space-3);
align-items:center;
}

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

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

.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:var(--space-2);
padding:0.6em 1.2em;
border-radius:var(--radius-md);
border:1px solid var(--color-accent-gold);
color:var(--color-accent-gold);
background:transparent;
transition:all 0.25s ease;
min-width:0;
}

.btn:hover,
.btn:focus-visible{
background:var(--color-accent-gold);
color:var(--color-text-on-dark);
}

.btn-primary{
background:var(--color-accent-gold);
color:var(--color-text-on-dark);
}

.btn-primary:hover,
.btn-primary:focus-visible{
background:var(--color-accent-burgundy);
border-color:var(--color-accent-burgundy);
}

input,
textarea{
width:100%;
border:1px solid var(--color-border-subtle);
padding:0.65em 0.75em;
border-radius:var(--radius-sm);
background:var(--color-surface-elevated);
}

input:focus,
textarea:focus{
border-color:var(--color-accent-gold);
}

label{
display:block;
margin-bottom:var(--space-2);
font-size:var(--fs-xs);
color:var(--color-text-secondary);
}

hr{
border:none;
border-top:1px solid var(--color-border-subtle);
margin-block:var(--space-6);
}

.media-overlay{
position:relative;
overflow:hidden;
border-radius:var(--radius-xl);
}

.media-overlay::after{
content:"";
position:absolute;
inset:0;
background:linear-gradient(180deg,rgba(35,33,31,0) 60%,rgba(35,33,31,0.08) 100%);
pointer-events:none;
}

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

.no-overflow{
overflow-x:hidden;
}