/*==================================================
GOOGLE FONT
==================================================*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

/*==================================================
ROOT
==================================================*/

:root{

--primary:#0f62fe;
--primary-hover:#0043ce;
--background:#f5f7fb;
--white:#ffffff;
--text:#1f2937;
--text-light:#6b7280;
--border:#e5e7eb;
--success:#16a34a;
--danger:#dc2626;

--radius:14px;

--shadow:0 10px 30px rgba(0,0,0,.08);

}

/*==================================================
RESET
==================================================*/

*{

margin:0;
padding:0;
box-sizing:border-box;

}

html{

scroll-behavior:smooth;

}

body{

font-family:'Inter',sans-serif;
background:var(--background);
color:var(--text);
line-height:1.6;
font-size:16px;

}

a{

text-decoration:none;
color:inherit;

}

img{

display:block;
max-width:100%;

}

button{

font-family:inherit;
cursor:pointer;
border:none;

}

input,
textarea,
select{

font-family:inherit;
outline:none;

}

/*==================================================
CONTAINER
==================================================*/

.container{

width:min(1180px,92%);
margin:auto;

}

/*==================================================
HEADER
==================================================*/

.header{

position:sticky;
top:0;
left:0;
width:100%;
background:#fff;
z-index:999;
box-shadow:0 3px 18px rgba(0,0,0,.06);
border-bottom:1px solid #edf1f5;

}

.header .container{

display:flex;
justify-content:space-between;
align-items:center;
padding:18px 0;

}

.logo img{

height:58px;
width:auto;

}

/*==================================================
NAVIGATION
==================================================*/

nav{

display:flex;
align-items:center;
gap:14px;

}

nav a{

padding:11px 18px;
border-radius:10px;
font-weight:600;
font-size:15px;
transition:.30s;

}

nav a:hover{

background:#eef4ff;
color:var(--primary);

}

nav a.active{

background:var(--primary);
color:#fff;

}

/*==================================================
MENU BUTTON
==================================================*/

.menu-toggle{

display:none;
width:48px;
height:48px;
background:var(--primary);
color:#fff;
font-size:22px;
border-radius:10px;
align-items:center;
justify-content:center;

}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:900px){

.logo img{

height:50px;

}

nav{

gap:8px;

}

nav a{

padding:10px 14px;
font-size:14px;

}

}

@media(max-width:768px){

.header .container{

padding:15px 0;
flex-wrap:wrap;

}

.menu-toggle{

display:flex;

}

nav{

display:none;
width:100%;
margin-top:15px;
flex-direction:column;
gap:10px;

}

nav.active{

display:flex;

}

nav a{

width:100%;
text-align:center;
padding:14px;

}

}

@media(max-width:480px){

.logo img{

height:44px;

}

}
/*==================================================
MAIN
==================================================*/

main{

padding:45px 0 70px;

}

#letterForm{

background:#fff;

padding:40px;

border-radius:18px;

box-shadow:var(--shadow);

border:1px solid var(--border);

overflow:hidden;

}

/*==================================================
STEP CONTENT
==================================================*/

.step-content{

display:none;
animation:fade .35s ease;

}

.step-content.active{

display:block;

}

@keyframes fade{

from{

opacity:0;
transform:translateY(15px);

}

to{

opacity:1;
transform:translateY(0);

}

}

/*==================================================
PROGRESS BAR
==================================================*/

.steps{

display:flex;
justify-content:space-between;
align-items:flex-start;
gap:20px;
margin-bottom:45px;
position:relative;

}

.steps::before{

content:"";
position:absolute;
top:24px;
left:6%;
width:88%;
height:4px;
background:#e5e7eb;
z-index:1;

}

.step{

flex:1;
text-align:center;
position:relative;
z-index:2;

}

.circle{

width:50px;
height:50px;
border-radius:50%;
background:#d1d5db;
display:flex;
justify-content:center;
align-items:center;
margin:0 auto;
font-weight:700;
font-size:18px;
color:#6b7280;
border:4px solid #fff;
transition:.3s;

}

.step.active .circle{

background:var(--primary);
color:#fff;

}

.step.completed .circle{

background:var(--success);
color:#fff;

}

.step p{

margin-top:12px;
font-size:14px;
font-weight:600;
line-height:1.5;
color:#6b7280;

}

.step.active p{

color:var(--primary);

}

.step.completed p{

color:var(--success);

}

/*==================================================
TITLES
==================================================*/

h1{

font-size:34px;
margin-bottom:15px;
font-weight:800;
color:var(--text);

}

h2{

font-size:24px;
margin:30px 0 15px;
font-weight:700;

}

.required{

margin-top:12px;
font-size:14px;
font-weight:600;
color:var(--danger);

}

/*==================================================
SECTIONS
==================================================*/

.section{

margin-top:35px;
padding-top:30px;
border-top:1px solid var(--border);

}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:992px){

.steps{

gap:12px;

}

.step p{

font-size:13px;

}

}

@media(max-width:768px){

#letterForm{

padding:25px;

}

.steps{

flex-direction:column;
align-items:stretch;

}

.steps::before{

display:none;

}

.step{

display:flex;
align-items:center;
text-align:left;
gap:15px;

}

.step .circle{

margin:0;

}

.step p{

margin:0;

}

h1{

font-size:28px;

}

h2{

font-size:22px;

}

}

@media(max-width:480px){

main{

padding:25px 0 50px;

}

#letterForm{

padding:18px;

}

h1{

font-size:24px;

}

h2{

font-size:20px;

}

}
/*==================================================
FORM
==================================================*/

.form-group{

margin-bottom:22px;

}

.form-group label{

display:block;

font-size:15px;

font-weight:600;

margin-bottom:10px;

color:var(--text);

}

.form-group span{

color:var(--danger);

}

/*==================================================
INPUTS
==================================================*/

input,
textarea,
select{

width:100%;

padding:15px 18px;

border:1px solid var(--border);

border-radius:12px;

background:#fff;

font-size:15px;

color:var(--text);

transition:.30s;

}

input::placeholder,
textarea::placeholder{

color:#9ca3af;

}

textarea{

resize:vertical;

min-height:140px;

}

input:focus,
textarea:focus,
select:focus{

border-color:var(--primary);

box-shadow:0 0 0 4px rgba(15,98,254,.12);

}

/*==================================================
GRID
==================================================*/

.form-row{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:20px;

}

/*==================================================
RADIOS
==================================================*/

.radio-group{

display:flex;

flex-wrap:wrap;

gap:15px;

margin-top:15px;

}

.radio-group label{

display:flex;

align-items:center;

gap:10px;

padding:14px 18px;

border:1px solid var(--border);

border-radius:12px;

background:#fff;

cursor:pointer;

transition:.3s;

}

.radio-group label:hover{

border-color:var(--primary);

background:#f8fbff;

}

.radio-group input{

width:18px;

height:18px;

}

/*==================================================
STYLE CARDS
==================================================*/

.style-cards{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:20px;

margin-top:25px;

}

.style-card{

display:block;

padding:25px;

background:#fff;

border:1px solid var(--border);

border-radius:16px;

cursor:pointer;

transition:.3s;

}

.style-card:hover{

border-color:var(--primary);

transform:translateY(-4px);

box-shadow:0 12px 25px rgba(0,0,0,.08);

}

.style-card input{

margin-bottom:18px;

}

.style-content h3{

font-size:20px;

margin-bottom:10px;

color:var(--text);

}

.style-content p{

font-size:14px;

line-height:1.7;

color:var(--text-light);

}

/*==================================================
CHECKBOX
==================================================*/

.confirmation-box{

margin-top:30px;

padding:20px;

border:1px solid var(--border);

border-radius:14px;

background:#f8fafc;

}

.confirmation-box label{

display:flex;

align-items:flex-start;

gap:12px;

cursor:pointer;

line-height:1.7;

}

.confirmation-box input{

width:18px;

height:18px;

margin-top:3px;

}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:900px){

.style-cards{

grid-template-columns:1fr;

}

.form-row{

grid-template-columns:1fr;

}

.radio-group{

flex-direction:column;

}

.radio-group label{

width:100%;

}

}
/*==================================================
BUTTONS
==================================================*/

.buttons,
.actions{

display:flex;

justify-content:space-between;

align-items:center;

gap:15px;

margin-top:35px;

flex-wrap:wrap;

}

.btn-primary,
.btn-secondary{

padding:15px 28px;

border-radius:12px;

font-size:15px;

font-weight:700;

transition:.30s;

}

.btn-primary{

background:var(--primary);

color:#fff;

}

.btn-primary:hover{

background:var(--primary-hover);

transform:translateY(-2px);

box-shadow:0 12px 25px rgba(15,98,254,.25);

}

.btn-secondary{

background:#eef2f7;

color:var(--text);

border:1px solid var(--border);

}

.btn-secondary:hover{

background:#dde5ef;

}

.btn-primary:disabled{

opacity:.7;

cursor:not-allowed;

}

/*==================================================
SUBMIT INFO
==================================================*/

.submit-info{

margin-top:25px;

padding:18px 22px;

background:#eff6ff;

border-left:4px solid var(--primary);

border-radius:12px;

font-size:15px;

line-height:1.8;

}

/*==================================================
FOOTER
==================================================*/

.footer{

margin-top:70px;

background:#111827;

color:#d1d5db;

}

.footer .container{

padding:35px 0 25px;

text-align:center;

}

.footer-association{

max-width:900px;

margin:0 auto 20px;

font-size:13px;

line-height:1.8;

color:#9ca3af;

}

.footer-links{

display:flex;

justify-content:center;

align-items:center;

gap:22px;

flex-wrap:wrap;

margin-bottom:20px;

}

.footer-links a{

color:#e5e7eb;

font-size:15px;

font-weight:500;

transition:.30s;

}

.footer-links a:hover{

color:#ffffff;

}

.footer-bottom{

border-top:1px solid rgba(255,255,255,.08);

padding-top:18px;

font-size:13px;

color:#9ca3af;

}

/*==================================================
LOADING
==================================================*/

.loading{

pointer-events:none;

opacity:.75;

}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:768px){

.buttons,
.actions{

flex-direction:column-reverse;

}

.buttons button,
.actions button{

width:100%;

}

.footer-links{

flex-direction:column;

gap:14px;

}

.footer-links a{

width:100%;

padding:10px 0;

}

.footer-association{

font-size:12px;

padding:0 10px;

}

}

@media(max-width:480px){

.btn-primary,
.btn-secondary{

padding:14px;

font-size:14px;

}

.submit-info{

font-size:14px;

padding:15px;

}

.footer-bottom{

font-size:12px;

}

}
/*=========================
CONTACT
=========================*/

.contact-section{

margin-top:50px;

padding:45px 30px;

background:#ffffff;

border-radius:18px;

box-shadow:0 10px 30px rgba(0,0,0,.08);

text-align:center;

border:1px solid #e5e7eb;

}

.contact-section h2{

font-size:30px;

margin-bottom:15px;

color:#1f2937;

}

.contact-section p{

max-width:700px;

margin:0 auto 25px;

color:#6b7280;

line-height:1.8;

}

.contact-btn{

display:inline-flex;

align-items:center;

justify-content:center;

padding:15px 30px;

background:#0f62fe;

color:#fff;

border-radius:12px;

font-weight:700;

font-size:16px;

transition:.3s;

}

.contact-btn:hover{

background:#0043ce;

transform:translateY(-2px);

}

@media(max-width:768px){

.contact-section{

padding:30px 20px;

}

.contact-section h2{

font-size:24px;

}

.contact-btn{

width:100%;

}

}