:root{
--color-bg-cream:#FAF7F2;
--color-card-sand:#EAE3D2;
--color-text-sage:#2D3B2D;
--color-accent-terracotta:#C87D55;
--color-border-soft-brown:#D1BFA3;
--color-surface-linen:rgba(234,227,210,0.3);
--color-state-hover:#B86C46;

--font-heading:"Montserrat","Segoe UI",Arial,sans-serif;
--font-body:"Nunito","Segoe UI",Arial,sans-serif;

--text-xxl:2.5rem;
--text-xl:2rem;
--text-lg:1.5rem;
--text-md:1.125rem;
--text-base:1rem;
--text-sm:0.9375rem;

--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:1120px;
--container-pad:1.5rem;

--radius-card:1.25rem;
--radius-button:1.5rem;
--radius-input:1rem;
--radius-pill:999px;

--shadow-card:0 2px 8px rgba(45,59,45,0.07);
--shadow-button:0 1px 4px rgba(200,125,85,0.05);

--transition-fast:120ms ease;
}

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

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

body{
min-height:100vh;
background-color:var(--color-bg-cream);
color:var(--color-text-sage);
font-family:var(--font-body);
font-size:var(--text-base);
line-height:1.6;
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;
}

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

a:hover{
color:var(--color-accent-terracotta);
text-decoration:underline;
}

ul,
ol{
list-style-position:inside;
}

h1,h2,h3,h4,h5,h6{
font-family:var(--font-heading);
font-weight:700;
line-height:1.2;
margin-bottom:var(--space-3);
}

h1{font-size:var(--text-xxl);}
h2{font-size:var(--text-xl);}
h3{font-size:var(--text-lg);}
h4{font-size:var(--text-md);}
h5{font-size:var(--text-base);}
h6{font-size:var(--text-sm);}

p{
margin-bottom:var(--space-3);
}

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

blockquote{
margin-bottom:var(--space-4);
padding-left:var(--space-3);
border-left:1px solid var(--color-border-soft-brown);
}

hr{
border:none;
border-top:1px solid var(--color-border-soft-brown);
margin:var(--space-5) 0;
}

section{
padding-top:var(--space-6);
padding-bottom:var(--space-6);
}

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

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

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

.grid{
display:grid;
gap:var(--space-4);
}

.grid-2{
grid-template-columns:repeat(2,minmax(0,1fr));
}

.grid-3{
grid-template-columns:repeat(3,minmax(0,1fr));
}

@media (max-width:900px){
.grid-3{
grid-template-columns:repeat(2,minmax(0,1fr));
}
}

@media (max-width:640px){
.container{
padding-left:1rem;
padding-right:1rem;
}
section{
padding-top:var(--space-5);
padding-bottom:var(--space-5);
}
.grid-2,
.grid-3{
grid-template-columns:1fr;
}
}

.card{
background:var(--color-card-sand);
border:1px solid var(--color-border-soft-brown);
border-radius:var(--radius-card);
box-shadow:var(--shadow-card);
padding:var(--space-4);
position:relative;
overflow:hidden;
}

.card::before{
content:"";
position:absolute;
inset:0;
background:var(--color-surface-linen);
pointer-events:none;
}

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

.button{
display:inline-flex;
align-items:center;
justify-content:center;
gap:var(--space-2);
padding:0.75em 1.5em;
background:var(--color-accent-terracotta);
color:#fff;
font-family:var(--font-heading);
font-weight:600;
border-radius:var(--radius-button);
box-shadow:var(--shadow-button);
transition:background var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.button:hover{
background:var(--color-state-hover);
box-shadow:0 2px 6px rgba(200,125,85,0.1);
}

.button:active{
transform:translateY(1px);
}

.button-secondary{
background:transparent;
color:var(--color-text-sage);
border:1px solid var(--color-border-soft-brown);
}

.button-secondary:hover{
background:var(--color-card-sand);
}

.input,
textarea,
select{
width:100%;
padding:0.75em 1em;
background:var(--color-bg-cream);
border:1px solid var(--color-border-soft-brown);
border-radius:var(--radius-input);
transition:border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.input:focus,
textarea:focus,
select:focus{
border-color:var(--color-accent-terracotta);
box-shadow:0 0 0 2px rgba(200,125,85,0.15);
}

label{
display:block;
margin-bottom:var(--space-1);
font-size:var(--text-sm);
}

.form-group{
display:flex;
flex-direction:column;
gap:var(--space-1);
margin-bottom:var(--space-3);
}

.badge{
display:inline-block;
padding:0.35em 0.75em;
background:var(--color-card-sand);
color:var(--color-accent-terracotta);
border-radius:var(--radius-pill);
font-size:var(--text-sm);
font-family:var(--font-heading);
font-weight:600;
}

.image-frame{
border-radius:50%;
overflow:hidden;
position:relative;
}

.image-frame::after{
content:"";
position:absolute;
inset:0;
background:var(--color-surface-linen);
pointer-events:none;
}

.surface{
background:var(--color-card-sand);
border-radius:var(--radius-card);
border:1px solid var(--color-border-soft-brown);
position:relative;
}

.surface::before{
content:"";
position:absolute;
inset:0;
background:var(--color-surface-linen);
pointer-events:none;
}

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

.flex{
display:flex;
}

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

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

.w-full{
width:100%;
}

.max-w-full{
max-width:100%;
}

.hidden{
display:none;
}