:root{
  --navy-900:#16324f;
  --navy-700:#1f4e79;
  --blue-600:#2f6fa8;
  --sand-50:#fbf7f1;
  --sand-100:#f5efe4;
  --sand-200:#ece3d3;
  --ink-900:#1b2430;
  --ink-600:#4d5a6b;
  --ink-400:#7c8798;
  --amber-400:#e7a648;
  --amber-600:#c6822a;
  --green-100:#dcf0e2;
  --green-700:#276b46;
  --red-600:#b3402c;
  --radius-md:8px;
  --radius-lg:12px;
  --radius-xl:14px;
  --font-head:'Playfair Display Fallback',Georgia,'Times New Roman',serif;
  --font-body:'Inter Fallback','Segoe UI',Arial,sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--sand-50);
  color:var(--ink-900);
  font-family:var(--font-body);
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
main{flex:1;}
a{color:var(--blue-600);text-decoration:none;}
a:hover{color:var(--navy-700);}
img{max-width:100%;display:block;}
::selection{background:rgba(231,166,72,0.3);}
button{font-family:var(--font-body);}
.container{max-width:1200px;margin:0 auto;padding:0 24px;}
.container-narrow{max-width:1000px;margin:0 auto;padding:0 24px;}
.container-text{max-width:760px;margin:0 auto;padding:0 24px;}

/* Top bar */
.topbar{background:var(--navy-700);color:#fff;font-size:13px;text-align:center;padding:7px 12px;}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,0.97);backdrop-filter:blur(6px);border-bottom:1px solid var(--sand-200);}
.site-header .inner{max-width:1200px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.logo{display:flex;align-items:baseline;gap:6px;}
.logo .brand{font-family:var(--font-head);font-weight:800;font-size:26px;color:var(--navy-700);}
.logo .tag{font-size:11px;letter-spacing:0.06em;color:var(--ink-400);text-transform:uppercase;}
.main-nav{display:flex;gap:22px;align-items:center;flex-wrap:wrap;}
.main-nav a{font-size:14px;font-weight:600;color:var(--ink-900);}
.main-nav a.active{color:var(--blue-600);}
.header-actions{display:flex;align-items:center;gap:14px;}
.btn-shop{display:flex;align-items:center;gap:8px;background:var(--sand-100);border:1px solid var(--sand-200);padding:8px 14px;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink-900);}
.btn-cart{position:relative;background:var(--amber-400);border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.btn-cart .bag{width:16px;height:12px;border:2px solid #4a2e05;border-top:none;border-radius:0 0 3px 3px;}
.cart-badge{position:absolute;top:-6px;right:-6px;background:var(--navy-700);color:#fff;font-size:11px;font-weight:700;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.mobile-toggle{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:8px;}
.mobile-toggle span{width:22px;height:2px;background:var(--ink-900);}
.mobile-nav{display:none;border-top:1px solid var(--sand-200);padding:12px 24px 20px;flex-direction:column;gap:14px;}
.mobile-nav a{font-size:15px;font-weight:600;color:var(--ink-900);}
.mobile-nav.open{display:flex;}

@media (max-width:900px){
  .main-nav{display:none;}
  .btn-shop{display:none;}
  .mobile-toggle{display:flex;}
}

/* Cookie banner */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--ink-900);color:var(--sand-50);padding:18px 24px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;box-shadow:0 -4px 24px rgba(0,0,0,0.2);}
.cookie-banner p{max-width:640px;font-size:14px;line-height:1.5;margin:0;}
.cookie-banner a{color:var(--amber-400);text-decoration:underline;}
.cookie-actions{display:flex;gap:10px;flex-shrink:0;}
.btn-cookie-reject{background:transparent;border:1px solid #7c8798;color:var(--sand-50);padding:10px 18px;border-radius:6px;font-size:14px;cursor:pointer;}
.btn-cookie-accept{background:var(--amber-400);border:none;color:#4a2e05;padding:10px 18px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;}

/* Hero */
.hero{position:relative;padding:100px 24px 90px;background:linear-gradient(135deg,rgba(22,50,79,0.88),rgba(47,111,168,0.85)),url('../img/hero-beach.jpg') center/cover no-repeat;color:#fff;text-align:center;}
.hero-inner{max-width:760px;margin:0 auto;position:relative;z-index:2;}
.eyebrow{font-size:14px;letter-spacing:0.1em;text-transform:uppercase;color:#f2cf9e;margin-bottom:16px;font-weight:600;}
.hero h1{font-family:var(--font-head);font-size:52px;line-height:1.1;margin:0 0 20px;font-weight:800;}
.hero p{font-size:18px;line-height:1.6;color:#e4eef7;margin:0 0 36px;}
.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.btn-amber{background:var(--amber-400);color:#4a2e05;border:none;padding:15px 30px;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;}
.btn-outline-white{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,0.6);padding:15px 30px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;}

@media (max-width:640px){
  .hero h1{font-size:34px;}
}

/* Stats */
.stats{max-width:1200px;margin:0 auto;padding:56px 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.stat{text-align:center;padding:24px 12px;}
.stat .num{font-family:var(--font-head);font-size:32px;font-weight:800;color:var(--navy-700);}
.stat .label{font-size:14px;color:var(--ink-600);margin-top:6px;}

/* Section titles */
.section-title-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:36px;flex-wrap:wrap;gap:12px;}
h2.section-title{font-family:var(--font-head);font-size:34px;margin:0;font-weight:700;}
.section-title-center{text-align:center;}
.link-more{font-weight:600;font-size:14px;}

.section-white{background:#fff;padding:70px 24px;border-top:1px solid var(--sand-200);border-bottom:1px solid var(--sand-200);}
.section{max-width:1200px;margin:0 auto;padding:70px 24px;}
.section-tinted{background:var(--sand-100);padding:70px 24px;}

/* Cards grid */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
@media (max-width:900px){
  .grid-3, .grid-4{grid-template-columns:repeat(2,1fr);}
  .stats{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .grid-3, .grid-4{grid-template-columns:1fr;}
  .stats{grid-template-columns:1fr;}
}

.card{cursor:pointer;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--sand-200);background:#fff;text-decoration:none;color:inherit;display:block;}
.card .thumb{height:170px;background-size:cover;background-position:center;}
.card .body{padding:16px 18px;}
.card .title{font-weight:700;font-size:17px;}
.card .meta{font-size:13px;color:var(--ink-600);margin-top:4px;}

/* Why us */
.feature{}
.feature-icon{width:52px;height:52px;border-radius:50%;background:#e4eef7;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.feature h3{font-weight:700;font-size:16px;margin:0 0 6px;}
.feature p{font-size:14px;color:var(--ink-600);line-height:1.6;margin:0;}

/* Testimonials */
.testimonial{background:#fff;border-radius:var(--radius-lg);padding:24px;border:1px solid var(--sand-200);}
.testimonial .stars{color:var(--amber-400);font-size:15px;margin-bottom:10px;}
.testimonial .text{font-size:14px;line-height:1.6;color:#2a3442;margin-bottom:14px;}
.testimonial .name{font-size:13px;font-weight:700;}
.testimonial .trip{font-size:12px;color:var(--ink-600);}

/* Articles */
.article-card{border:1px solid var(--sand-200);border-radius:var(--radius-lg);overflow:hidden;background:#fff;}
.article-card .thumb{height:150px;background-size:cover;background-position:center;}
.article-card .body{padding:18px;}
.article-card .title{font-weight:700;font-size:15px;margin-bottom:8px;}
.article-card .desc{font-size:13px;color:var(--ink-600);line-height:1.5;}

/* CTA */
.cta-band{background:linear-gradient(135deg,var(--amber-400),#f2c883);padding:60px 24px;text-align:center;}
.cta-band h2{font-family:var(--font-head);font-size:30px;margin:0 0 14px;font-weight:700;color:#4a2e05;}
.cta-band p{font-size:16px;margin:0 0 26px;color:#5c3a12;}
.btn-dark{background:#4a2e05;color:#fff;border:none;padding:14px 30px;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;}

/* Page header */
.page-head{text-align:center;margin-bottom:40px;}
.page-head .eyebrow{color:var(--blue-600);font-weight:700;letter-spacing:0.05em;text-transform:uppercase;font-size:13px;margin-bottom:0;}
.page-head h1{font-family:var(--font-head);font-size:40px;margin:8px 0 12px;font-weight:800;}
.page-head p{max-width:640px;margin:0 auto;color:var(--ink-600);font-size:15px;line-height:1.6;}

/* Filters */
.filters{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:32px 0 40px;}
.filter-btn{padding:9px 18px;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--sand-200);background:#fff;color:var(--ink-600);}
.filter-btn.active{border-color:var(--blue-600);background:var(--blue-600);color:#fff;}

/* Tour card */
.tour-card{border:1px solid var(--sand-200);border-radius:var(--radius-lg);overflow:hidden;background:#fff;display:flex;flex-direction:column;}
.tour-card .thumb{height:170px;background-size:cover;background-position:center;}
.tour-card .body{padding:18px;display:flex;flex-direction:column;flex:1;}
.tour-card .country{font-size:12px;color:var(--blue-600);font-weight:700;text-transform:uppercase;letter-spacing:0.04em;margin-bottom:6px;}
.tour-card .title{font-weight:700;font-size:17px;margin-bottom:6px;}
.tour-card .desc{font-size:13px;color:var(--ink-600);margin-bottom:12px;line-height:1.5;flex:1;}
.tour-card .row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink-600);margin-bottom:14px;}
.tour-card .price{font-size:19px;font-weight:800;color:var(--ink-900);}
.btn-block-blue{background:var(--blue-600);color:#fff;border:none;padding:11px;border-radius:7px;font-size:14px;font-weight:700;cursor:pointer;width:100%;text-align:center;display:block;}

/* Hotel category */
.hotel-cat{border:1px solid var(--sand-200);border-radius:var(--radius-lg);padding:24px 18px;text-align:center;background:#fff;}
.hotel-cat .stars{font-size:22px;margin-bottom:10px;color:var(--amber-400);letter-spacing:2px;}
.hotel-cat .title{font-weight:700;font-size:15px;margin-bottom:6px;}
.hotel-cat .desc{font-size:13px;color:var(--ink-600);line-height:1.5;}

.split-panel{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius-xl);padding:36px;display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:center;}
.split-panel img{border-radius:10px;width:100%;height:180px;object-fit:cover;}
@media (max-width:800px){ .split-panel{grid-template-columns:1fr;} }

/* Flights search */
.flight-search{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius-xl);padding:28px;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:14px;align-items:end;margin-bottom:56px;}
@media (max-width:800px){ .flight-search{grid-template-columns:1fr;} }
.flight-search label{font-size:12px;color:var(--ink-600);margin-bottom:6px;font-weight:600;display:block;}
.flight-search .field, .flight-search input{border:1px solid var(--sand-200);border-radius:7px;padding:11px;font-size:14px;width:100%;font-family:var(--font-body);}
.flight-routes{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media (max-width:640px){ .flight-routes{grid-template-columns:1fr;} }
.flight-route{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--sand-200);border-radius:10px;padding:16px 20px;}
.flight-route .cities{font-weight:600;font-size:14px;}
.flight-route .price{font-weight:800;font-size:16px;color:var(--navy-700);}

/* Insurance plans */
.plan-card{border-radius:var(--radius-xl);padding:28px;position:relative;border:1px solid var(--sand-200);background:#fff;}
.plan-card.popular{border-color:var(--amber-400);background:#fffaf1;}
.plan-badge{position:absolute;top:-12px;right:20px;background:var(--amber-400);color:#4a2e05;font-size:11px;font-weight:700;padding:5px 12px;border-radius:20px;}
.plan-name{font-weight:700;font-size:18px;margin-bottom:8px;}
.plan-price{font-size:28px;font-weight:800;margin-bottom:16px;}
.plan-price span{font-size:13px;font-weight:500;color:var(--ink-600);}
.plan-features{display:flex;flex-direction:column;gap:9px;font-size:13px;color:#2a3442;}
.notice-box{background:var(--sand-100);border-radius:var(--radius-xl);padding:32px;font-size:14px;color:var(--ink-600);line-height:1.7;}

/* Process steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:56px;}
@media (max-width:700px){ .steps{grid-template-columns:1fr 1fr;} }
.step{text-align:center;padding:20px 10px;}
.step .n{width:44px;height:44px;border-radius:50%;background:var(--blue-600);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;margin:0 auto 12px;}
.step .title{font-weight:700;font-size:14px;margin-bottom:6px;}
.step .desc{font-size:13px;color:var(--ink-600);line-height:1.5;}

/* Forms */
.form-panel{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius-xl);padding:36px;}
.form-panel h2{font-family:var(--font-head);font-size:24px;margin:0 0 20px;font-weight:700;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-grid.single{display:flex;flex-direction:column;gap:14px;}
@media (max-width:600px){ .form-grid{grid-template-columns:1fr;} }
.span-2{grid-column:span 2;}
@media (max-width:600px){ .span-2{grid-column:span 1;} }
input[type=text], input[type=email], input[type=tel], textarea, select{
  padding:12px;border:1px solid var(--sand-200);border-radius:7px;font-size:14px;font-family:var(--font-body);width:100%;
}
textarea{min-height:100px;resize:vertical;}
.checkbox-row{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--ink-600);}
.checkbox-row input{margin-top:3px;}
.btn-submit{background:var(--blue-600);color:#fff;border:none;padding:14px;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;}
.form-success{background:var(--green-100);color:var(--green-700);padding:18px;border-radius:8px;font-size:14px;}
.form-error{background:#fbe3de;color:var(--red-600);padding:18px;border-radius:8px;font-size:14px;margin-bottom:16px;}

/* About */
.about-hero-img{width:100%;height:280px;object-fit:cover;border-radius:var(--radius-xl);margin-bottom:36px;}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:56px;}
@media (max-width:700px){ .team-grid{grid-template-columns:1fr 1fr;} }
.team-member{text-align:center;}
.team-member img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;margin-bottom:12px;}
.team-member .name{font-weight:700;font-size:14px;}
.team-member .role{font-size:12px;color:var(--ink-600);}

/* Contacts */
.contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:40px;}
@media (max-width:800px){ .contact-grid{grid-template-columns:1fr;} }
.contact-card{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius-xl);padding:28px;margin-bottom:20px;}
.contact-card .name{font-weight:700;font-size:16px;margin-bottom:16px;}
.contact-card .details{font-size:14px;color:#2a3442;line-height:2;}
.map-embed{border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--sand-200);}
.map-embed iframe{width:100%;height:220px;border:0;display:block;}

/* Shop */
.product-card{border:1px solid var(--sand-200);border-radius:var(--radius-lg);overflow:hidden;background:#fff;display:flex;flex-direction:column;}
.product-card .thumb{height:150px;background-size:cover;background-position:center;}
.product-card .body{padding:18px;display:flex;flex-direction:column;flex:1;}
.product-card .title{font-weight:700;font-size:15px;margin-bottom:6px;}
.product-card .desc{font-size:13px;color:var(--ink-600);margin-bottom:14px;line-height:1.5;flex:1;}
.product-card .row{display:flex;justify-content:space-between;align-items:center;}
.product-card .price{font-size:18px;font-weight:800;}
.btn-amber-sm{background:var(--amber-400);color:#4a2e05;border:none;padding:9px 16px;border-radius:7px;font-size:13px;font-weight:700;cursor:pointer;}

/* Cart */
.cart-item{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--sand-200);border-radius:10px;padding:14px 18px;flex-wrap:wrap;}
.cart-item .thumb{width:64px;height:64px;border-radius:8px;object-fit:cover;flex-shrink:0;}
.cart-item .info{flex:1;min-width:120px;}
.cart-item .info .name{font-weight:700;font-size:14px;}
.cart-item .info .unit{font-size:13px;color:var(--ink-600);}
.qty-controls{display:flex;align-items:center;gap:10px;}
.qty-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--sand-200);background:#fff;cursor:pointer;font-size:16px;}
.line-total{width:90px;text-align:right;font-weight:700;}
.btn-remove{background:none;border:none;color:var(--red-600);cursor:pointer;font-size:13px;}
.cart-total-row{display:flex;justify-content:space-between;align-items:center;border-top:2px solid var(--sand-200);padding-top:20px;margin:24px 0;}
.cart-total-row .label{font-size:16px;font-weight:600;}
.cart-total-row .amount{font-size:26px;font-weight:800;}
.cart-empty{text-align:center;padding:60px 20px;color:var(--ink-600);}
.btn-block-blue-lg{width:100%;background:var(--blue-600);color:#fff;border:none;padding:16px;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;}
.secure-note{text-align:center;font-size:12px;color:var(--ink-400);margin-top:12px;}

/* Legal pages */
.legal-body{font-size:14px;line-height:1.8;color:#2a3442;display:flex;flex-direction:column;gap:18px;}
.legal-body-tight{font-size:14px;line-height:2;color:#2a3442;}

/* Footer */
.site-footer{background:var(--ink-900);color:#c7cdd6;padding:56px 24px 24px;}
.footer-inner{max-width:1200px;margin:0 auto;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:36px;margin-bottom:36px;}
@media (max-width:800px){ .footer-grid{grid-template-columns:1fr 1fr;} }
.footer-brand{font-family:var(--font-head);font-weight:800;font-size:22px;color:#fff;margin-bottom:12px;}
.footer-col h4{font-weight:700;color:#fff;font-size:14px;margin:0 0 14px;}
.footer-links{display:flex;flex-direction:column;gap:9px;font-size:13px;}
.footer-links a{color:#c7cdd6;}
.footer-badges{display:flex;gap:20px;flex-wrap:wrap;border-top:1px solid #333d4c;padding-top:20px;font-size:12px;color:#8f99a8;}
.footer-copy{text-align:center;font-size:12px;color:#7c8798;margin-top:20px;}

.skip-link{position:absolute;left:-999px;top:auto;}
.skip-link:focus{position:fixed;left:12px;top:12px;background:#fff;color:#000;padding:10px 16px;z-index:999;border-radius:6px;}
