/* Country Cards */
.destination-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.card {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    aspect-ratio: 4/5;
    background: var(--light-gray);
    transition: var(--transition-smooth);
}

.card-large {
    grid-column: span 2;
    aspect-ratio: 16/9;
}

.card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition-smooth);
}

.card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10, 17, 40, 0.8) 0%, rgba(10, 17, 40, 0.2) 50%, transparent 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 32px;
    color: var(--white);
}

.card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-luxury);
}

.card:hover .card-img {
    transform: scale(1.05);
}

.card-tag {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 8px;
    color: var(--accent-orange);
}

.card-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 4px;
}

.card-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.875rem;
    opacity: 0.9;
}

.card-arrow {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition-smooth);
}

.card:hover .card-arrow {
    background: var(--white);
    color: var(--primary);
}

/* Floating Search Bar */
.search-container {
    max-width: 1000px;
    margin: -60px auto 0;
    position: relative;
    z-index: 10;
}

.search-bar {
    background: var(--white);
    padding: 24px 40px;
    border-radius: 100px;
    box-shadow: var(--shadow-xl);
    display: flex;
    align-items: center;
    gap: 32px;
}

.search-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.search-label {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--slate-400);
    text-transform: uppercase;
}

.search-input {
    border: none;
    outline: none;
    font-weight: 600;
    color: var(--slate-900);
    width: 100%;
}

.search-btn {
    width: 64px;
    height: 64px;
    background: var(--primary);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition-smooth);
}

.search-btn:hover {
    transform: scale(1.05);
    background: var(--accent-blue);
}

/* Category Cards */
.category-card {
    background: var(--white);
    padding: 40px;
    border-radius: 24px;
    border: 1px solid var(--light-gray);
    transition: var(--transition-smooth);
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.category-card:hover {
    border-color: var(--primary);
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}

.category-icon {
    width: 48px;
    height: 48px;
    color: var(--primary);
}

/* Timeline */
.timeline {
    display: flex;
    justify-content: space-between;
    position: relative;
    margin-top: 60px;
}

.timeline::before {
    content: '';
    position: absolute;
    top: 24px;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--light-gray);
    z-index: 1;
}

.timeline-step {
    position: relative;
    z-index: 2;
    text-align: center;
    width: 120px;
}

.timeline-dot {
    width: 48px;
    height: 48px;
    background: var(--white);
    border: 1px solid var(--light-gray);
    border-radius: 50%;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    transition: var(--transition-smooth);
}

.timeline-step:hover .timeline-dot {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

/* =========================================================
   COUNTRY PAGE COMPONENTS
=========================================================*/

.section-heading{
    max-width:780px;
    margin:0 auto 60px;
    text-align:center;
}

.section-label{
    display:inline-block;
    font-size:.8rem;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--accent-orange);
    margin-bottom:16px;
}

/* =========================================================
   QUICK SUMMARY
=========================================================*/

.summary-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}

.summary-card{
    background:#fff;
    border:1px solid var(--light-gray);
    border-radius:24px;
    padding:32px;
    transition:var(--transition-smooth);
}

.summary-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-lg);
}

.summary-title{
    font-size:.8rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--slate-400);
    margin-bottom:12px;
    font-weight:700;
}

.summary-value{
    font-size:1.3rem;
    font-weight:700;
    color:var(--primary);
}

/* =========================================================
   DOCUMENTS
=========================================================*/

.docs-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:32px;
}

.doc-card{
    background:#fff;
    border-radius:24px;
    padding:40px;
    border:1px solid var(--light-gray);
}

.doc-card h3{
    margin-bottom:24px;
}

.doc-card ul{
    list-style:disc;
    padding-left:22px;
}

.doc-card li{
    margin-bottom:14px;
    color:var(--slate-600);
    line-height:1.7;
}

/* =========================================================
   ELIGIBILITY
=========================================================*/

.eligibility-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}

.eligibility-card{
    background:#fff;
    border:1px solid var(--light-gray);
    border-radius:24px;
    padding:36px;
    transition:var(--transition-smooth);
}

.eligibility-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-lg);
}

.eligibility-icon{
    width:64px;
    height:64px;
    border-radius:18px;
    background:rgba(29,78,216,.08);
    color:var(--accent-blue);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:24px;
}

.eligibility-icon svg{
    width:28px;
    height:28px;
}

.eligibility-card h3{
    margin-bottom:14px;
}

.eligibility-card p{
    color:var(--slate-600);
    line-height:1.7;
}

/* =========================================================
   COMMON INFO CARDS
=========================================================*/

.info-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
}

.info-card{
    background:#fff;
    border:1px solid var(--light-gray);
    border-radius:24px;
    padding:32px;
    transition:var(--transition-smooth);
}

.info-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-lg);
}

.info-card h3{
    margin-bottom:16px;
    font-size:1.1rem;
}

.info-card p{
    color:var(--slate-600);
    line-height:1.7;
}

/* =========================================================
   TABLE
=========================================================*/

.visa-table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
    border-radius:24px;
    overflow:hidden;
    box-shadow:var(--shadow-md);
}

.visa-table th{
    background:var(--primary);
    color:#fff;
    padding:20px;
    text-align:left;
}

.visa-table td{
    padding:20px;
    border-bottom:1px solid var(--light-gray);
}

/*==================================================
FAQ
==================================================*/

.faq-section{

background:#fff;

}

.faq-wrapper{

max-width:900px;

margin:70px auto 0;

}

.faq-item{

background:#fff;

border:1px solid #e5e7eb;

border-radius:18px;

margin-bottom:18px;

overflow:hidden;

transition:.35s;

}

.faq-item:hover{

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

}

.faq-item summary{

padding:24px 30px;

cursor:pointer;

font-size:1.1rem;

font-weight:600;

list-style:none;

position:relative;

}

.faq-item summary::-webkit-details-marker{

display:none;

}

.faq-item summary::after{

content:"+";

position:absolute;

right:30px;

top:22px;

font-size:1.5rem;

font-weight:300;

}

.faq-item[open] summary::after{

content:"−";

}

.faq-item p{

padding:0 30px 28px;

line-height:1.8;

color:#64748b;

margin:0;

}

/* =========================================================
   APPLICATION FORM
=========================================================*/

.application-box{
    background:#fff;
    border-radius:32px;
    padding:60px;
    box-shadow:var(--shadow-luxury);
}

.application-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:24px;
}

.application-box input,
.application-box select,
.application-box textarea{
    width:100%;
    padding:18px 20px;
    border:1px solid var(--light-gray);
    border-radius:16px;
    outline:none;
}

.application-box textarea{
    min-height:150px;
    resize:vertical;
}

.application-box input:focus,
.application-box select:focus,
.application-box textarea:focus{
    border-color:var(--accent-blue);
}

/* =========================================================
   FILE UPLOAD
=========================================================*/

.upload-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
    margin-top:30px;
}

.upload-box{
    border:2px dashed #d9dee7;
    border-radius:20px;
    padding:32px;
    text-align:center;
    transition:var(--transition-smooth);
}

.upload-box:hover{
    border-color:var(--accent-blue);
}

/* =========================================================
   CONTACT CARDS
=========================================================*/

.contact-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
}

.contact-card{
    background:#fff;
    border:1px solid var(--light-gray);
    border-radius:24px;
    padding:36px;
    text-align:center;
    transition:var(--transition-smooth);
}

.contact-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-lg);
}

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

@media (max-width:991px){

.summary-grid,
.eligibility-grid,
.info-grid,
.contact-grid{
grid-template-columns:repeat(2,1fr);
}

.docs-grid,
.application-grid,
.upload-grid{
grid-template-columns:1fr;
}

.timeline{
overflow-x:auto;
gap:32px;
padding-bottom:20px;
}

}

@media (max-width:768px){

.summary-grid,
.eligibility-grid,
.info-grid,
.contact-grid{
grid-template-columns:1fr;
}

.application-box{
padding:32px 24px;
}

.doc-card{
padding:28px;
}

}

/*==================================================
COUNTRY HERO
==================================================*/

.country-hero{

position:relative;

height:90vh;

min-height:720px;

display:flex;

align-items:center;

overflow:hidden;

}

.hero-bg{

position:absolute;

inset:0;

}

.hero-bg img{

width:100%;

height:100%;

object-fit:cover;

}

.hero-overlay{

position:absolute;

inset:0;

background:linear-gradient(

90deg,

rgba(8,14,28,.88) 10%,

rgba(8,14,28,.55) 55%,

rgba(8,14,28,.25) 100%

);

}

.hero-content{

position:relative;

z-index:2;

max-width:680px;

color:#fff;

}

.hero-badge{

display:inline-flex;

align-items:center;

gap:12px;

padding:10px 18px;

border-radius:100px;

background:rgba(255,255,255,.12);

backdrop-filter:blur(16px);

margin-bottom:28px;

font-size:.85rem;

font-weight:600;

}

.hero-badge img{

width:24px;

height:18px;

object-fit:cover;

border-radius:2px;

}

.hero-title{

font-size:clamp(3rem,6vw,5.5rem);

font-weight:800;

line-height:1.05;

margin-bottom:24px;

}

.hero-description{

font-size:1.15rem;

line-height:1.8;

opacity:.92;

margin-bottom:40px;

max-width:620px;

}

.hero-meta{

display:flex;

gap:60px;

margin-bottom:50px;

flex-wrap:wrap;

}

.hero-meta small{

display:block;

font-size:.75rem;

letter-spacing:.12em;

text-transform:uppercase;

opacity:.7;

margin-bottom:8px;

}

.hero-meta strong{

font-size:1.2rem;

font-weight:700;

}

.hero-buttons{

display:flex;

gap:20px;

flex-wrap:wrap;

}

@media(max-width:768px){

.country-hero{

min-height:640px;

}

.hero-title{

font-size:3rem;

}

.hero-meta{

gap:30px;

}

}

/*==================================================
DOCUMENT CHECKLIST
==================================================*/

.documents-section{

background:#f8fafc;

}

.documents-wrapper{

display:grid;

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

gap:32px;

margin-top:70px;

}

.document-column{

background:#fff;

border-radius:28px;

padding:50px;

box-shadow:0 12px 35px rgba(0,0,0,.05);

border:1px solid #edf2f7;

}

.document-column h3{

margin-bottom:30px;

font-size:1.4rem;

}

.document-column ul{

list-style:none;

padding:0;

margin:0;

}

.document-column li{

position:relative;

padding-left:36px;

margin-bottom:22px;

line-height:1.7;

color:#475569;

}

.document-column li::before{

content:"✓";

position:absolute;

left:0;

top:0;

width:24px;

height:24px;

background:#16a34a;

color:#fff;

border-radius:50%;

display:flex;

align-items:center;

justify-content:center;

font-size:.8rem;

font-weight:700;

}

.document-alert{

margin-top:40px;

padding:24px 30px;

display:flex;

align-items:flex-start;

gap:18px;

background:#fff7ed;

border-left:4px solid #f97316;

border-radius:16px;

}

.document-alert svg{

color:#f97316;

width:22px;

flex-shrink:0;

margin-top:2px;

}

.document-alert p{

margin:0;

line-height:1.7;

color:#475569;

}

@media(max-width:991px){

.documents-wrapper{

grid-template-columns:1fr;

}

.document-column{

padding:36px;

}

}

/*==================================================
VISA OVERVIEW
==================================================*/

.country-overview{

margin-top:-90px;

position:relative;

z-index:20;

}

.overview-card{

display:grid;

grid-template-columns:420px 1fr;

background:#fff;

border-radius:30px;

overflow:hidden;

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

}

.overview-left{

padding:60px;

background:#0b1220;

color:#fff;

display:flex;

flex-direction:column;

justify-content:center;

}

.overview-left h2{

margin:18px 0;

font-size:2rem;

line-height:1.2;

}

.overview-left p{

opacity:.8;

line-height:1.8;

}

.overview-right{

display:grid;

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

}

.overview-item{

padding:40px;

border-left:1px solid #edf2f7;

border-bottom:1px solid #edf2f7;

}

.overview-item:nth-last-child(-n+3){

border-bottom:none;

}

.overview-item span{

display:block;

font-size:.75rem;

letter-spacing:.12em;

text-transform:uppercase;

color:#94a3b8;

margin-bottom:12px;

}

.overview-item strong{

font-size:1.15rem;

font-weight:700;

line-height:1.4;

color:#0b1220;

}

@media(max-width:991px){

.overview-card{

grid-template-columns:1fr;

}

.overview-right{

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

}

}

@media(max-width:768px){

.country-overview{

margin-top:-50px;

}

.overview-left{

padding:36px;

}

.overview-right{

grid-template-columns:1fr;

}

.overview-item{

border-left:none;

}

}

/*==================================================
VISA PROCESS
==================================================*/

.visa-process{

background:#fff;

}

.process-layout{

display:grid;

grid-template-columns:2fr 1fr;

gap:60px;

margin-top:70px;

align-items:start;

}

.process-left{

display:flex;

flex-direction:column;

gap:24px;

}

.process-step{

display:flex;

gap:28px;

padding:28px;

background:#fff;

border:1px solid #edf2f7;

border-radius:24px;

transition:.35s;

}

.process-step:hover{

transform:translateY(-4px);

box-shadow:0 15px 35px rgba(0,0,0,.08);

}

.process-step span{

width:60px;

height:60px;

border-radius:50%;

background:#f97316;

color:#fff;

display:flex;

align-items:center;

justify-content:center;

font-size:1.25rem;

font-weight:700;

flex-shrink:0;

}

.process-step h3{

margin-bottom:10px;

}

.process-step p{

margin:0;

color:#64748b;

line-height:1.7;

}

.process-info-card{

background:#0b1220;

color:#fff;

padding:40px;

border-radius:28px;

position:sticky;

top:120px;

}

.process-info-card h3{

margin-bottom:30px;

}

.process-info-card ul{

list-style:none;

padding:0;

margin:0;

}

.process-info-card li{

margin-bottom:18px;

line-height:1.8;

opacity:.9;

}

@media(max-width:991px){

.process-layout{

grid-template-columns:1fr;

}

.process-info-card{

position:static;

}

}

/*==================================================
EXPLORE COUNTRY
==================================================*/

.explore-country{

background:#f8fafc;

}

.explore-grid{

display:grid;

grid-template-columns:2fr 1fr;

gap:32px;

margin-top:70px;

}

.featured-destination{

position:relative;

border-radius:28px;

overflow:hidden;

height:650px;

}

.featured-destination img{

width:100%;

height:100%;

object-fit:cover;

transition:.5s;

}

.featured-destination:hover img{

transform:scale(1.05);

}

.featured-destination::before{

content:"";

position:absolute;

inset:0;

background:linear-gradient(to top,rgba(0,0,0,.75),transparent);

}

.featured-content{

position:absolute;

left:40px;

bottom:40px;

right:40px;

color:#fff;

z-index:2;

}

.featured-content span{

font-size:.8rem;

letter-spacing:.15em;

text-transform:uppercase;

opacity:.85;

}

.featured-content h3{

font-size:2rem;

margin:16px 0;

}

.featured-content p{

line-height:1.8;

opacity:.92;

}

.destination-list{

display:flex;

flex-direction:column;

gap:24px;

}

.destination-card{

display:flex;

gap:18px;

background:#fff;

padding:18px;

border-radius:22px;

align-items:center;

box-shadow:0 10px 25px rgba(0,0,0,.05);

transition:.35s;

}

.destination-card:hover{

transform:translateY(-5px);

}

.destination-card img{

width:120px;

height:120px;

border-radius:16px;

object-fit:cover;

flex-shrink:0;

}

.destination-card h4{

margin-bottom:10px;

}

.destination-card p{

color:#64748b;

line-height:1.6;

margin:0;

}

.travel-info{

margin-top:60px;

display:grid;

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

background:#fff;

border-radius:24px;

overflow:hidden;

box-shadow:0 12px 35px rgba(0,0,0,.05);

}

.travel-info div{

padding:34px;

border-right:1px solid #edf2f7;

text-align:center;

}

.travel-info div:last-child{

border-right:none;

}

.travel-info span{

display:block;

font-size:.75rem;

text-transform:uppercase;

letter-spacing:.12em;

color:#94a3b8;

margin-bottom:10px;

}

.travel-info strong{

font-size:1.15rem;

color:#0b1220;

}

@media(max-width:991px){

.explore-grid{

grid-template-columns:1fr;

}

.featured-destination{

height:500px;

}

.travel-info{

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

}

}

@media(max-width:768px){

.destination-card{

flex-direction:column;

align-items:flex-start;

}

.destination-card img{

width:100%;

height:220px;

}

.travel-info{

grid-template-columns:1fr;

}

}

/*==============================
VISA JOURNEY
==============================*/

.visa-journey{

background:#f8fafc;

}

.journey-line{

display:flex;

align-items:flex-start;

justify-content:space-between;

margin-top:80px;

gap:20px;

}

.journey-step{

flex:1;

text-align:center;

}

.journey-step span{

display:block;

font-size:4rem;

font-weight:800;

color:#f97316;

line-height:1;

margin-bottom:20px;

}

.journey-step h3{

margin-bottom:12px;

}

.journey-step p{

color:#64748b;

max-width:180px;

margin:auto;

}

.journey-divider{

height:2px;

background:#e5e7eb;

flex:.4;

margin-top:38px;

}

@media(max-width:991px){

.journey-line{

flex-direction:column;

}

.journey-divider{

width:2px;

height:60px;

margin:auto;

}

}

/*==================================================
FINAL CTA
==================================================*/

.visa-cta{

padding:100px 0;

background:#f8fafc;

}

.cta-card{

background:linear-gradient(135deg,#0b1220,#1e3a5f);

color:#fff;

padding:80px;

border-radius:32px;

text-align:center;

}

.cta-card h2{

font-size:2.5rem;

margin:20px 0;

}

.cta-card p{

max-width:700px;

margin:0 auto 40px;

line-height:1.8;

opacity:.9;

}

.cta-buttons{

display:flex;

justify-content:center;

gap:20px;

flex-wrap:wrap;

}

@media(max-width:768px){

.cta-card{

padding:50px 30px;

}

.cta-card h2{

font-size:2rem;

}

}