:root{
--color-background:#FAF7F2;
--color-surface:#EEE9E2;
--color-text:#232124;
--color-text-muted:#6A676A;
--color-accent:#8B3743;
--color-accent-2:#234D36;
--color-border:#D6D0C7;
--color-focus:#8B3743;
--color-button-bg:#8B3743;
--color-button-text:#FAF7F2;
--color-link-hover:#A74C5A;
--color-error:#C03B2B;
--color-success:#2E7D4D;

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

--fs-1:clamp(2rem,3vw,2.5rem);
--fs-2:clamp(1.75rem,2.5vw,2rem);
--fs-3:clamp(1.35rem,2vw,1.5rem);
--fs-4:1.25rem;
--fs-5:1rem;
--fs-6:0.9375rem;
--fs-7:0.875rem;

--lh-heading:1.2;
--lh-body:1.5;

--space-1:0.25rem;
--space-2:0.5rem;
--space-3:1rem;
--space-4:1.5rem;
--space-5:2rem;
--space-6:3rem;
--space-7:4rem;

--container-max:1200px;
--container-pad:1.5rem;

--radius-sm:4px;
--radius-md:6px;

--border:1px solid var(--color-border);
--shadow-overlay:0 2px 4px rgba(35,33,36,0.04);

--transition:150ms ease;
}

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

html{font-size:100%;-webkit-text-size-adjust:100%}

body{
font-family:var(--font-body);
font-size:var(--fs-5);
line-height:var(--lh-body);
background:var(--color-background);
color:var(--color-text);
min-height:100vh;
text-rendering:optimizeLegibility;
}

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

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

button{cursor:pointer}

a{
color:var(--color-accent);
text-decoration:none;
transition:color var(--transition);
}
a:hover,a:focus{color:var(--color-link-hover)}

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

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

h1,h2,h3,h4,h5,h6{
font-family:var(--font-heading);
line-height:var(--lh-heading);
letter-spacing:-0.01em;
margin-block-end:var(--space-3);
}

h1{font-size:var(--fs-1)}
h2{font-size:var(--fs-2)}
h3{font-size:var(--fs-3)}
h4{font-size:var(--fs-4)}
h5{font-size:var(--fs-5)}
h6{font-size:var(--fs-6)}

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

small{font-size:var(--fs-7);color:var(--color-text-muted)}

em{font-style:italic}

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

ol{padding-left:1.25rem;margin-block-end:var(--space-3)}

li{}

blockquote{
margin-block-end:var(--space-4);
padding-left:var(--space-3);
border-left:2px solid var(--color-border);
font-style:italic;
color:var(--color-text-muted);
}

hr{
border:none;
border-top:var(--border);
margin-block:var(--space-5);
}

.card,.panel{
background:var(--color-surface);
border:var(--border);
border-radius:var(--radius-md);
padding:var(--space-4);
display:flex;
flex-direction:column;
gap:var(--space-3);
}

.card > *:last-child,
.panel > *:last-child{
margin-block-end:0;
}

.button{
display:inline-flex;
align-items:center;
justify-content:center;
background:var(--color-button-bg);
color:var(--color-button-text);
padding:0.75rem 1.5rem;
border-radius:var(--radius-sm);
border:var(--border);
transition:background var(--transition),color var(--transition);
text-align:center;
white-space:nowrap;
}

.button:hover,
.button:focus{
background:var(--color-link-hover);
color:#fff;
}

.input,
textarea,
select{
width:100%;
border:var(--border);
border-radius:var(--radius-sm);
padding:var(--space-3);
background:#fff;
}

.input:focus,
textarea:focus,
select:focus{
outline:2px solid var(--color-focus);
outline-offset:1px;
}

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

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

.flex-col{flex-direction:column}

.flex-wrap{flex-wrap:wrap}

.flex-between{justify-content:space-between}

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

.flex > *{min-width:0}

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

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

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

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

@media (max-width:900px){
.nav-toggle{flex-direction:column}
}

@media (max-width:600px){
body{font-size:var(--fs-6)}
h1{font-size:var(--fs-2)}
h2{font-size:var(--fs-3)}
h3{font-size:var(--fs-4)}
}

.consent-banner{
position:fixed;
bottom:0;
left:0;
width:100%;
background:var(--color-surface);
border-top:var(--border);
padding:var(--space-3);
display:flex;
flex-direction:column;
gap:var(--space-3);
z-index:1000;
}

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

.image-frame{
border:var(--border);
border-radius:var(--radius-md);
overflow:hidden;
background:var(--color-surface);
}

.text-muted{color:var(--color-text-muted)}

.text-center{text-align:center}

.w-full{width:100%}

.hidden{display:none}