:root{
--surface-primary:#f8f6f1;
--surface-elevated:#ffffff;
--surface-accent:#f1e8e4;
--brand-primary:#b91c4b;
--brand-deep:#7f1d3a;
--text-primary:#211b20;
--text-secondary:#706a6d;
--border-muted:rgba(33,27,32,0.16);

--font-heading:'Literata',Georgia,'Times New Roman',Times,serif;
--font-body:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif;

--fs-1:clamp(2.25rem,4vw,3.5rem);
--fs-2:clamp(1.9rem,3vw,2.5rem);
--fs-3:clamp(1.6rem,2.5vw,2rem);
--fs-4:1.5rem;
--fs-5:1.125rem;
--fs-6:1rem;
--fs-7:0.875rem;

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

--container-max:1200px;
--container-pad:clamp(1.5rem,4vw,3rem);

--radius-sm:6px;
--radius-md:12px;
--radius-lg:20px;

--shadow-soft:0 2px 4px rgba(33,27,32,0.04);

--transition-fast:0.2s ease;
}

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

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

@media (prefers-reduced-motion:reduce){
html{
scroll-behavior:auto;
}
*{
animation:none !important;
transition:none !important;
}
}

body{
font-family:var(--font-body);
font-size:var(--fs-6);
line-height:1.5;
color:var(--text-primary);
background:var(--surface-primary);
text-rendering:optimizeLegibility;
-webkit-font-smoothing:antialiased;
overflow-wrap:anywhere;
}

main{overflow:hidden}

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

img{
border-radius:var(--radius-md);
}

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

a:hover{
color:var(--brand-deep);
}

a:focus-visible{
outline:2px solid var(--brand-primary);
outline-offset:2px;
}

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

button{
cursor:pointer;
}

button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
outline:2px solid var(--brand-primary);
outline-offset:2px;
}

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

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-2);
color:var(--text-primary);
}

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

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

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

hr{
border:none;
border-top:1px solid var(--border-muted);
margin-block:var(--space-4);
}

:where(section,article,div)>:last-child{
margin-bottom:0;
}

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

.section{
padding-block:clamp(3rem,6vw,6rem);
}

.surface{
background:var(--surface-elevated);
border:1px solid var(--border-muted);
border-radius:var(--radius-md);
}

.surface-accent{
background:var(--surface-accent);
border-radius:var(--radius-md);
}

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

.card:hover{
border-color:var(--brand-primary);
box-shadow:0 4px 10px rgba(33,27,32,0.06);
transform:translateY(-2px);
}

.panel{
background:var(--surface-elevated);
border-radius:var(--radius-lg);
padding:clamp(2rem,4vw,3rem);
}

.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:0.5rem;
min-height:44px;
padding:0.75rem 1.5rem;
font-weight:600;
font-size:var(--fs-6);
border-radius:var(--radius-md);
border:2px solid transparent;
transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);
text-align:center;
}

.btn-primary{
background:var(--brand-primary);
color:#ffffff;
border-color:var(--brand-primary);
}

.btn-primary:hover{
background:var(--brand-deep);
border-color:var(--brand-deep);
}

.btn-secondary{
background:transparent;
color:var(--brand-primary);
border-color:var(--brand-primary);
}

.btn-secondary:hover{
background:var(--brand-primary);
color:#ffffff;
}

.btn:focus-visible{
outline:2px solid var(--brand-primary);
outline-offset:2px;
}

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

.input:focus,
textarea:focus,
select:focus{
border-color:var(--brand-primary);
box-shadow:0 0 0 2px rgba(185,28,75,0.15);
outline:none;
}

.label{
display:block;
margin-bottom:0.25rem;
font-size:var(--fs-7);
color:var(--text-secondary);
}

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

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

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

.items-center{
align-items:center;
}

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

.grid-auto{
display:grid;
gap:var(--space-3);
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}

.text-secondary{
color:var(--text-secondary);
}

.text-center{
text-align:center;
}

@media (max-width:600px){
:root{
--container-pad:1rem;
--fs-1:clamp(2rem,10vw,2.65rem);
--fs-2:clamp(1.65rem,8vw,2.1rem);
--fs-3:clamp(1.35rem,6vw,1.7rem);
}
.section{padding-block:2.75rem}
.panel,.card{padding:var(--space-2)}
.btn{width:100%;padding-inline:1rem}
}

.hidden{
display:none !important;
}

ul { list-style: none !important; } .nav-toggle { flex-direction: column; }
