:root{
--color-surface-primary:#FFFFFF;
--color-surface-secondary:#F4F5F7;
--color-surface-concrete:#E1E2E4;
--color-surface-wood:#F8E8D2;
--color-text-primary:#181818;
--color-text-secondary:#444B52;
--color-accent-primary:#FF6A23;
--color-accent-on-primary:#FFFFFF;
--color-border-default:#D1D2D4;
--color-shadow-soft:rgba(24,24,24,0.06);

--font-heading:Montserrat,'Inter',Arial,sans-serif;
--font-body:Inter,Arial,sans-serif;

--text-xs:0.875rem;
--text-sm:1rem;
--text-md:1.125rem;
--text-lg:clamp(1.25rem,2vw,1.5rem);
--text-xl:clamp(1.75rem,3vw,2.25rem);

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

--radius-sm:6px;

--container-max:1200px;

--shadow-soft:0 4px 12px var(--color-shadow-soft);

--transition-fast:150ms ease;
}

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

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

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

img,
picture,
video,
canvas,
svg{
display:block;
max-width:100%;
height:auto;
border-radius:var(--radius-sm);
}

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

button{
cursor:pointer;
}

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

ul,
ol{
list-style:none;
}

h1,
h2,
h3,
h4{
font-family:var(--font-heading);
line-height:1.2;
color:var(--color-text-primary);
}

h1{font-size:var(--text-xl);margin-bottom:var(--space-3);}
h2{font-size:var(--text-lg);margin-bottom:var(--space-3);}
h3{font-size:var(--text-md);margin-bottom:var(--space-2);}
h4{font-size:var(--text-sm);margin-bottom:var(--space-2);}

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

ul:not([role]),
ol:not([role]){
margin-bottom:var(--space-3);
padding-left:var(--space-3);
}



ol:not([role]) li{
list-style:decimal;
}

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

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

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

@media(min-width:768px){
.container{
padding-inline:var(--space-4);
}
}

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

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

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

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

.button{
display:inline-flex;
align-items:center;
justify-content:center;
gap:0.5em;
padding:0.75rem 1rem;
min-height:44px;
border-radius:var(--radius-sm);
font-weight:600;
text-align:center;
transition:background-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);
white-space:nowrap;
}

.button-primary{
background-color:var(--color-accent-primary);
color:var(--color-accent-on-primary);
}

.button-primary:hover{
box-shadow:var(--shadow-soft);
transform:translateY(-1px);
}

.button-primary:active{
transform:translateY(0);
filter:brightness(0.95);
}

.button-secondary{
background-color:var(--color-surface-primary);
color:var(--color-text-primary);
border:1px solid var(--color-border-default);
}

.button-secondary:hover{
box-shadow:var(--shadow-soft);
}

.button-full{
width:100%;
}

@media(min-width:768px){
.button-max{
max-width:320px;
}
}

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

input:focus,
textarea:focus,
select:focus{
border-color:var(--color-accent-primary);
box-shadow:0 0 0 2px rgba(255,106,35,0.15);
}

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

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

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

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

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

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

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

.hidden{
display:none;
}

@media(min-width:768px){
.hidden-md{
display:none;
}
}

@media(max-width:767px){
.hidden-sm{
display:none;
}
}