/* ============================================
   玩味海南 · 亲子游官网 Stylesheet
   品牌色: 珊瑚橙 #f27a7d · 薄荷绿 #6bbfa4 · 金色 #d4a06a · 深海蓝 #2c3e6b
   字体: Nunito (标题) + 系统字体 (正文)
   ============================================ */

/* --- CSS Variables --- */
:root {
  --coral: #f27a7d;
  --coral-light: #fde8e8;
  --coral-dark: #d45a5d;
  --teal: #6bbfa4;
  --teal-light: #e8f5f0;
  --teal-dark: #4a9a80;
  --gold: #d4a06a;
  --gold-light: #f5ede2;
  --navy: #2c3e6b;
  --navy-light: #3d5a99;
  --white: #ffffff;
  --bg: #faf8f6;
  --bg-pale: #f5f2ef;
  --text: #3d3d3d;
  --text-light: #8c8c8c;
  --text-white: rgba(255,255,255,0.9);
  --border: #e8e4e0;
  --shadow: 0 8px 30px rgba(44,62,107,0.08);
  --shadow-hover: 0 12px 40px rgba(44,62,107,0.15);
  --shadow-sm: 0 4px 12px rgba(0,0,0,0.06);
  --radius: 16px;
  --radius-sm: 10px;
  --radius-xs: 6px;
  --gap-xs: 4px;
  --gap-sm: 8px;
  --gap-md: 16px;
  --gap-lg: 24px;
  --gap-xl: 32px;
  --gap-2xl: 48px;
  --gap-3xl: 64px;
  --max-width: 1200px;
  --nav-height: 72px;
  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* --- Reset & Base --- */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.7;
  overflow-x: hidden;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; display:block; }
ul { list-style:none; }
.container { max-width:var(--max-width); margin:0 auto; padding:0 var(--gap-lg); }

/* --- Typography --- */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Nunito', -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-weight: 700;
  line-height: 1.3;
}
h1 { font-size:2.5rem; }
h2 { font-size:2rem; }
h3 { font-size:1.3rem; }
h4 { font-size:1.1rem; }
p { margin-bottom:var(--gap-md); line-height:1.8; }

.section-title {
  text-align:center;
  font-size:2rem;
  font-weight:800;
  color:var(--navy);
  margin-bottom:var(--gap-sm);
}
.section-subtitle {
  text-align:center;
  color:var(--text-light);
  font-size:1.05rem;
  max-width:600px;
  margin:0 auto;
}
.highlight-text { color:var(--coral); }
.highlight-gold { color:var(--gold); }

.section { padding:var(--gap-3xl) 0; }
.section-pale { background:var(--bg-pale); }

/* --- Buttons --- */
.btn {
  display:inline-flex; align-items:center; gap:var(--gap-sm);
  padding:12px 28px; border-radius:50px; font-weight:600; font-size:0.95rem;
  cursor:pointer; transition:var(--transition); border:2px solid transparent;
  line-height:1; white-space:nowrap;
}
.btn-primary { background:var(--coral); color:var(--white); border-color:var(--coral); }
.btn-primary:hover { background:var(--coral-dark); border-color:var(--coral-dark); transform:translateY(-2px); box-shadow:0 6px 20px rgba(242,122,125,0.3); }
.btn-outline { background:transparent; color:var(--white); border-color:var(--white); }
.btn-outline:hover { background:var(--white); color:var(--coral); transform:translateY(-2px); }
.btn-gold { background:var(--gold); color:var(--white); border-color:var(--gold); }
.btn-gold:hover { background:var(--gold); opacity:0.9; transform:translateY(-2px); }
.btn-navy { background:var(--navy); color:var(--white); border-color:var(--navy); }
.btn-navy:hover { background:var(--navy-light); transform:translateY(-2px); }
.btn-lg { padding:16px 36px; font-size:1.05rem; }
.btn-sm { padding:8px 20px; font-size:0.85rem; }
.btn-block { width:100%; justify-content:center; }
.btn:disabled { opacity:0.5; cursor:not-allowed; transform:none !important; }

/* --- Navbar --- */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background:rgba(255,255,255,0.95);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;
  transition:var(--transition); height:var(--nav-height);
}
.navbar.scrolled { box-shadow:0 2px 20px rgba(0,0,0,0.06); border-bottom-color:var(--border); }
.nav-container {
  display:flex; align-items:center; justify-content:space-between;
  height:var(--nav-height);
}
.nav-brand {
  display:flex; align-items:center; gap:var(--gap-sm);
  font-family:'Nunito',sans-serif; font-weight:800;
}
.brand-icon { font-size:1.6rem; }
.brand-text { font-size:1.3rem; color:var(--navy); }
.brand-highlight { color:var(--coral); }
.brand-tagline {
  font-size:0.75rem; color:var(--text-light);
  background:var(--coral-light); padding:2px 10px;
  border-radius:20px; font-weight:600;
}
.nav-links { display:flex; gap:var(--gap-xs); align-items:center; }
.nav-links a {
  padding:8px 18px; border-radius:var(--radius-sm);
  font-size:0.9rem; font-weight:500; color:var(--text);
  transition:var(--transition);
}
.nav-links a:hover { color:var(--coral); background:var(--coral-light); }
.nav-links a.active { color:var(--white); background:var(--coral); font-weight:600; }
.nav-toggle { display:none; background:none; border:none; font-size:1.5rem; cursor:pointer; color:var(--navy); }

/* --- Hero Carousel --- */
.hero-carousel {
  position:relative; height:85vh; min-height:550px; max-height:750px;
  margin-top:var(--nav-height); overflow:hidden;
}
.carousel-track { position:relative; height:100%; }
.carousel-slide {
  position:absolute; inset:0; opacity:0; transition:opacity 0.8s ease-in-out;
  display:flex; align-items:center; justify-content:center;
}
.carousel-slide.active { opacity:1; z-index:1; }
.carousel-bg {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.carousel-overlay {
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(44,62,107,0.7) 0%, rgba(44,62,107,0.3) 100%);
}
.carousel-content {
  position:relative; z-index:2; text-align:center; color:var(--white);
  max-width:800px; padding:0 var(--gap-lg);
}
.carousel-title { font-size:3rem; font-weight:900; margin-bottom:var(--gap-md); }
.title-highlight { color:var(--gold); }
.carousel-desc { font-size:1.15rem; color:var(--text-white); margin-bottom:var(--gap-xl); line-height:1.8; }
.carousel-actions { display:flex; gap:var(--gap-md); justify-content:center; flex-wrap:wrap; }
.carousel-dots {
  position:absolute; bottom:40px; left:50%; transform:translateX(-50%);
  display:flex; gap:var(--gap-sm); z-index:3;
}
.dot {
  width:12px; height:12px; border-radius:50%; background:rgba(255,255,255,0.4);
  cursor:pointer; transition:var(--transition);
}
.dot.active { background:var(--white); width:32px; border-radius:6px; }
.carousel-arrow {
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:48px; height:48px; border-radius:50%; border:none;
  background:rgba(255,255,255,0.15); backdrop-filter:blur(4px);
  color:var(--white); font-size:1.2rem; cursor:pointer;
  transition:var(--transition); display:flex; align-items:center; justify-content:center;
}
.carousel-arrow:hover { background:rgba(255,255,255,0.3); }
.carousel-prev { left:var(--gap-lg); }
.carousel-next { right:var(--gap-lg); }

/* --- Stats Section --- */
.stats-section {
  background:var(--navy); padding:var(--gap-2xl) 0;
}
.stats-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap-xl);
  text-align:center;
}
.stat-item { padding:var(--gap-md); }
.stat-number {
  font-family:'Nunito',sans-serif; font-size:2.8rem; font-weight:900;
  color:var(--gold); margin-bottom:var(--gap-xs);
}
.stat-label { color:var(--text-white); font-size:1rem; }

/* --- Grids --- */
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--gap-xl); }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap-xl); }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap-xl); }

/* --- Advantage Cards --- */
.advantage-card {
  text-align:center; padding:var(--gap-xl);
  background:var(--white); border-radius:var(--radius);
  box-shadow:var(--shadow); transition:var(--transition);
}
.advantage-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-hover); }
.advantage-icon {
  width:72px; height:72px; border-radius:50%;
  background:linear-gradient(135deg,var(--coral-light),var(--teal-light));
  display:flex; align-items:center; justify-content:center;
  margin:0 auto var(--gap-md); font-size:2rem; color:var(--coral);
}
.advantage-card h3 { margin-bottom:var(--gap-sm); color:var(--navy); }
.advantage-card p { font-size:0.9rem; color:var(--text-light); line-height:1.7; }

/* --- Route Cards --- */
.route-card {
  display:block; background:var(--white); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow); transition:var(--transition);
}
.route-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-hover); }
.route-img-wrap { position:relative; height:220px; overflow:hidden; }
.route-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s; }
.route-card:hover .route-img-wrap img { transform:scale(1.08); }
.route-badge {
  position:absolute; top:var(--gap-md); left:var(--gap-md);
  background:var(--coral); color:var(--white); padding:4px 14px;
  border-radius:20px; font-size:0.75rem; font-weight:700;
}
.route-badge-green { background:var(--teal); }
.route-badge-gold { background:var(--gold); }
.route-badge-navy { background:var(--navy); }
.route-badge-purple { background:#8b5cf6; }
.route-days {
  position:absolute; bottom:var(--gap-md); right:var(--gap-md);
  background:rgba(0,0,0,0.6); backdrop-filter:blur(4px);
  color:var(--white); padding:3px 12px; border-radius:20px;
  font-size:0.75rem;
}
.route-body { padding:var(--gap-lg); }
.route-body h3 { font-size:1.15rem; color:var(--navy); margin-bottom:var(--gap-sm); }
.route-body p { font-size:0.85rem; color:var(--text-light); line-height:1.7; margin-bottom:var(--gap-md); }
.route-meta { display:flex; gap:var(--gap-md); font-size:0.8rem; color:var(--text-light); margin-bottom:var(--gap-sm); }
.route-footer {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:var(--gap-md); border-top:1px solid var(--border);
}
.route-price { font-family:'Nunito',sans-serif; font-size:1.3rem; font-weight:800; color:var(--coral); }
.route-price small { font-size:0.7rem; font-weight:400; color:var(--text-light); }

/* --- Tags --- */
.tag {
  display:inline-block; padding:3px 12px; border-radius:20px;
  background:var(--teal-light); color:var(--teal-dark); font-size:0.75rem; font-weight:600;
  margin:0 var(--gap-xs) var(--gap-xs) 0;
}

/* --- Steps Section --- */
.steps-section {
  background:linear-gradient(135deg, var(--navy) 0%, #1a2745 100%);
}
.steps-grid {
  display:flex; align-items:center; justify-content:center;
  gap:var(--gap-md); margin-top:var(--gap-2xl);
}
.step-item { text-align:center; flex:1; max-width:220px; }
.step-number {
  font-family:'Nunito',sans-serif; font-size:1.8rem; font-weight:900;
  color:var(--gold); opacity:0.3; margin-bottom:var(--gap-sm);
}
.step-icon {
  width:64px; height:64px; border-radius:50%;
  background:rgba(255,255,255,0.1); border:2px solid rgba(255,255,255,0.2);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto var(--gap-md); font-size:1.5rem; color:var(--gold);
  transition:var(--transition);
}
.step-item:hover .step-icon { background:rgba(212,160,106,0.2); border-color:var(--gold); transform:scale(1.1); }
.step-item h3 { color:var(--white); margin-bottom:var(--gap-sm); font-size:1rem; }
.step-item p { font-size:0.82rem; color:rgba(255,255,255,0.6); line-height:1.6; }
.step-connector { color:rgba(255,255,255,0.15); font-size:1.5rem; flex-shrink:0; }

/* --- Strategy Cards --- */
.strategy-card { overflow:hidden; }
.strategy-card .card-img { height:200px; object-fit:cover; }
.strategy-card .card-body { padding:var(--gap-lg); }
.strategy-card h3 {
  font-size:1rem; margin:var(--gap-sm) 0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.strategy-card p {
  font-size:0.82rem; color:var(--text-light);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.card-meta { display:flex; gap:var(--gap-lg); font-size:0.75rem; color:var(--text-light); margin-top:var(--gap-sm); }

/* --- Testimonials --- */
.testimonials-section { background:var(--white); }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap-xl); }
.testimonial-card {
  background:var(--bg); padding:var(--gap-xl); border-radius:var(--radius);
  position:relative;
}
.testimonial-card::before {
  content:'"'; position:absolute; top:var(--gap-md); left:var(--gap-lg);
  font-size:4rem; color:var(--coral-light); font-family:Georgia,serif; line-height:1; opacity:0.5;
}
.testimonial-stars { color:var(--gold); margin-bottom:var(--gap-md); letter-spacing:2px; }
.testimonial-text {
  font-size:0.9rem; line-height:1.8; color:var(--text);
  margin-bottom:var(--gap-lg);
}
.testimonial-author { display:flex; align-items:center; gap:var(--gap-md); }
.author-avatar {
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--white); font-weight:700; font-size:1.1rem; flex-shrink:0;
}
.author-name { font-weight:600; color:var(--navy); font-size:0.9rem; }
.author-detail { font-size:0.75rem; color:var(--text-light); }

/* --- FAQ --- */
.faq-item { border-bottom:1px solid var(--border); }
.faq-question {
  display:flex; align-items:center; justify-content:space-between;
  padding:var(--gap-md) 0; cursor:pointer; font-weight:600; font-size:0.95rem;
  color:var(--navy); transition:var(--transition);
}
.faq-question:hover { color:var(--coral); }
.faq-question i { transition:var(--transition); font-size:0.8rem; color:var(--text-light); }
.faq-item.open .faq-question i { transform:rotate(180deg); }
.faq-answer {
  max-height:0; overflow:hidden; transition:max-height 0.4s ease, padding 0.3s;
  padding:0 0; color:var(--text-light); font-size:0.9rem; line-height:1.8;
}
.faq-item.open .faq-answer { max-height:500px; padding:0 0 var(--gap-md) 0; }

/* --- CTA Section --- */
.cta-section {
  background:linear-gradient(135deg, var(--coral) 0%, var(--coral-dark) 100%);
  padding:var(--gap-3xl) 0; text-align:center;
}
.cta-title { color:var(--white); font-size:2rem; margin-bottom:var(--gap-sm); }
.cta-desc { color:rgba(255,255,255,0.85); font-size:1.05rem; margin-bottom:var(--gap-xl); }
.cta-actions { display:flex; gap:var(--gap-md); justify-content:center; flex-wrap:wrap; }

/* --- Footer --- */
.footer {
  background:var(--navy); color:var(--text-white); padding:var(--gap-3xl) 0 0;
}
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:var(--gap-2xl); margin-bottom:var(--gap-2xl); }
.footer-brand h3 { font-size:1.3rem; margin-bottom:var(--gap-md); }
.footer-brand p { font-size:0.88rem; opacity:0.7; line-height:1.8; }
.footer-social { display:flex; gap:var(--gap-sm); margin-top:var(--gap-md); }
.footer-social a {
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center;
  color:var(--white); font-size:1.1rem; transition:var(--transition);
}
.footer-social a:hover { background:var(--coral); }
.footer-col h4 { color:var(--white); margin-bottom:var(--gap-md); font-size:1rem; }
.footer-col ul li { margin-bottom:var(--gap-xs); }
.footer-col ul li a { font-size:0.9rem; opacity:0.7; transition:var(--transition); }
.footer-col ul li a:hover { opacity:1; color:var(--gold); padding-left:4px; }
.footer-contact li { display:flex; align-items:center; gap:var(--gap-sm); font-size:0.88rem; opacity:0.8; }
.footer-contact li i { width:16px; color:var(--gold); }
.footer-bottom {
  border-top:1px solid rgba(255,255,255,0.1);
  padding:var(--gap-lg) 0; text-align:center; font-size:0.8rem; opacity:0.6;
}
.footer-bottom a { color:var(--gold); }

/* --- Page Banner (inner pages) --- */
.page-banner {
  margin-top:var(--nav-height); padding:var(--gap-3xl) 0 var(--gap-2xl);
  background:linear-gradient(135deg, var(--navy) 0%, #1a2745 100%);
  text-align:center; color:var(--white);
}
.page-banner h1 { font-size:2.2rem; margin-bottom:var(--gap-sm); }
.page-banner p { color:rgba(255,255,255,0.7); font-size:1rem; max-width:600px; margin:0 auto; }
.breadcrumb {
  padding:var(--gap-md) 0; font-size:0.82rem; color:var(--text-light);
}
.breadcrumb a { color:var(--text-light); transition:var(--transition); }
.breadcrumb a:hover { color:var(--coral); }
.breadcrumb span { color:var(--text); }

/* --- Filter Bar --- */
.filter-bar {
  display:flex; align-items:center; gap:var(--gap-sm);
  padding:var(--gap-md); background:var(--white); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-sm); margin-bottom:var(--gap-xl); flex-wrap:wrap;
}
.filter-btn {
  padding:8px 18px; border-radius:20px; border:none;
  background:var(--bg); color:var(--text); font-size:0.85rem;
  cursor:pointer; transition:var(--transition); font-weight:500;
}
.filter-btn.active { background:var(--coral); color:var(--white); }
.filter-btn:hover:not(.active) { background:var(--coral-light); color:var(--coral); }

/* --- Form Elements --- */
.form-group { margin-bottom:var(--gap-lg); }
.form-group label { display:block; font-weight:600; margin-bottom:var(--gap-xs); font-size:0.9rem; color:var(--navy); }
.form-group .required { color:var(--coral); }
.form-control {
  width:100%; padding:12px 16px; border:2px solid var(--border);
  border-radius:var(--radius-sm); font-size:0.9rem; transition:var(--transition);
  background:var(--white); color:var(--text);
}
.form-control:focus { outline:none; border-color:var(--coral); box-shadow:0 0 0 3px rgba(242,122,125,0.15); }
textarea.form-control { min-height:120px; resize:vertical; }
select.form-control { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238c8c8c' stroke-width='2' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; }

/* --- Checkbox --- */
.checkbox-group { display:flex; align-items:center; gap:var(--gap-sm); }
.checkbox-group input[type="checkbox"] { width:18px; height:18px; accent-color:var(--coral); }
.checkbox-group label { font-weight:400; font-size:0.88rem; color:var(--text-light); }

/* --- Modal --- */
.modal-overlay {
  display:none; position:fixed; inset:0; z-index:9999;
  background:rgba(0,0,0,0.5); backdrop-filter:blur(4px);
  align-items:center; justify-content:center;
}
.modal-overlay.show { display:flex; }
.modal-content {
  background:var(--white); border-radius:var(--radius);
  padding:var(--gap-xl); max-width:500px; width:90%; position:relative;
  box-shadow:0 20px 60px rgba(0,0,0,0.2);
}
.modal-close {
  position:absolute; top:var(--gap-md); right:var(--gap-md);
  background:none; border:none; font-size:1.5rem; cursor:pointer; color:var(--text-light);
  transition:var(--transition);
}
.modal-close:hover { color:var(--coral); transform:rotate(90deg); }
.modal-icon { font-size:3rem; text-align:center; margin-bottom:var(--gap-md); }
.modal-title { font-size:1.3rem; text-align:center; margin-bottom:var(--gap-sm); color:var(--navy); }
.modal-text { text-align:center; color:var(--text-light); margin-bottom:var(--gap-lg); font-size:0.9rem; }

/* --- Responsive --- */
@media (max-width:1024px) {
  .grid-4 { grid-template-columns:repeat(2,1fr); }
  .testimonial-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:768px) {
  h1 { font-size:1.8rem; }
  h2 { font-size:1.5rem; }
  .nav-toggle { display:block; }
  .nav-links {
    display:none; position:absolute; top:var(--nav-height); left:0; right:0;
    flex-direction:column; background:rgba(255,255,255,0.98);
    backdrop-filter:blur(12px); padding:var(--gap-md); box-shadow:0 10px 30px rgba(0,0,0,0.08);
    gap:var(--gap-xs);
  }
  .nav-links.open { display:flex; }
  .hero-carousel { height:70vh; min-height:450px; }
  .carousel-title { font-size:2rem; }
  .carousel-desc { font-size:0.95rem; }
  .grid-3, .testimonial-grid { grid-template-columns:1fr; }
  .grid-4 { grid-template-columns:1fr 1fr; }
  .grid-2 { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:repeat(2,1fr); gap:var(--gap-md); }
  .stat-number { font-size:2rem; }
  .steps-grid { flex-direction:column; gap:var(--gap-lg); }
  .step-connector { transform:rotate(90deg); }
  .footer-grid { grid-template-columns:1fr; gap:var(--gap-xl); }
  .page-banner { padding:var(--gap-2xl) 0; }
  .page-banner h1 { font-size:1.6rem; }
  .carousel-actions { flex-direction:column; align-items:center; }
  .cta-actions { flex-direction:column; align-items:center; }
  .section { padding:var(--gap-2xl) 0; }
}

@media (max-width:480px) {
  .hero-carousel { height:60vh; min-height:400px; }
  .carousel-title { font-size:1.6rem; }
  .brand-tagline { display:none; }
  .grid-4 { grid-template-columns:1fr; }
}

/* === INNER PAGES SPECIFIC === */

/* --- Routes Page --- */
.filter-section { padding-bottom:0; }

/* --- Hotel Cards --- */
.hotel-card { display:block; background:var(--white); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:var(--transition); }
.hotel-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-hover); }
.hotel-img-wrap { height:200px; overflow:hidden; }
.hotel-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s; }
.hotel-card:hover .hotel-img-wrap img { transform:scale(1.08); }
.hotel-body { padding:var(--gap-lg); }
.hotel-body h3 { font-size:1.1rem; margin-bottom:var(--gap-xs); }
.hotel-stars { color:var(--gold); font-size:0.85rem; margin-bottom:var(--gap-sm); }
.hotel-body p { font-size:0.85rem; color:var(--text-light); margin-bottom:var(--gap-sm); }
.hotel-features { display:flex; flex-wrap:wrap; gap:var(--gap-sm); margin-bottom:var(--gap-md); }
.hotel-features span { font-size:0.78rem; color:var(--text-light); background:var(--bg-pale); padding:4px 12px; border-radius:15px; }

/* --- Custom Page --- */
.custom-page { padding:var(--gap-2xl) 0; }
.custom-grid { display:grid; grid-template-columns:1.2fr 0.8fr; gap:var(--gap-2xl); align-items:start; }
.case-card {
  background:var(--white); border-radius:var(--radius); padding:var(--gap-lg);
  box-shadow:var(--shadow); margin-bottom:var(--gap-lg);
}
.case-card .card-header { display:flex; align-items:center; gap:var(--gap-md); margin-bottom:var(--gap-md); }
.case-card .case-icon { font-size:2rem; }
.case-card h4 { color:var(--navy); margin-bottom:var(--gap-xs); }
.case-card p { font-size:0.85rem; color:var(--text-light); }
.case-stars { color:var(--gold); font-size:0.85rem; margin-top:var(--gap-sm); }

/* --- Success Page --- */
.success-page { text-align:center; padding:var(--gap-3xl) var(--gap-lg); max-width:600px; margin:0 auto; }
.success-icon {
  width:80px; height:80px; border-radius:50%;
  background:var(--teal-light); color:var(--teal);
  display:flex; align-items:center; justify-content:center;
  font-size:2.5rem; margin:0 auto var(--gap-lg); font-weight:700;
}
.success-detail { margin:var(--gap-xl) 0; }
.success-detail dt { font-weight:600; color:var(--text-light); font-size:0.8rem; margin-top:var(--gap-md); }
.success-detail dd { font-size:1.05rem; color:var(--navy); margin-top:var(--gap-xs); }
.success-actions { display:flex; gap:var(--gap-md); justify-content:center; flex-wrap:wrap; }
