﻿/* ========== 新疆视界国际旅行社 · 全疆起止定制小包团官网样式 ========== */
:root {
  --ink: #0f2744;
  --ink-dark: #091a2e;
  --sand: #c9a86c;
  --sand-light: #e8d5b0;
  --terracotta: #a0522d;
  --terracotta-dark: #7a3d22;
  --paper: #faf9f6;
  --paper-alt: #f2f0eb;
  --text: #3a4852;
  --text-light: #6d7c87;
  --text-muted: #9aa8b1;
  --line: #e6e2d8;
  --radius: 12px;
  --radius-sm: 8px;
  --shadow-sm: 0 1px 3px rgba(15,39,68,.05);
  --shadow: 0 6px 24px rgba(15,39,68,.09);
  --shadow-lg: 0 16px 48px rgba(15,39,68,.13);
  --max-w: 1200px;
  --ease: cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  color: var(--text); line-height: 1.75; background: var(--paper); -webkit-font-smoothing: antialiased;
}
img { max-width:100%; display:block; }
.container { width:100%; max-width:var(--max-w); margin:0 auto; padding:0 24px; }
a { color: var(--ink); text-decoration:none; transition:color .2s var(--ease); }
a:hover { color: var(--terracotta); }

/* Buttons */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding: 13px 30px; border-radius: 999px; font-weight:600; font-size:.95rem;
  border: 2px solid transparent; cursor:pointer; transition: all .25s var(--ease);
}
.btn-primary { background: var(--terracotta); color:#fff; border-color:var(--terracotta); box-shadow: 0 4px 16px rgba(160,82,45,.28); }
.btn-primary:hover { background: var(--terracotta-dark); border-color:var(--terracotta-dark); color:#fff; transform:translateY(-2px); box-shadow:0 6px 22px rgba(160,82,45,.34); }
.btn-secondary { background: transparent; color:#fff; border-color: rgba(255,255,255,.45); }
.btn-secondary:hover { background: rgba(255,255,255,.1); color:#fff; transform:translateY(-2px); }
.btn-large { padding: 17px 40px; font-size:1.05rem; }

/* Header */
.header {
  position: fixed; inset:0 0 auto 0; z-index:1000;
  background: rgba(255,255,255,.96); backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}
.header-inner { display:flex; align-items:center; justify-content:space-between; height:76px; }
.brand { display:flex; align-items:baseline; gap:.5rem; }
.brand-name { font-size:1.35rem; font-weight:800; color:var(--ink); letter-spacing:.3px; }
.brand-name span { color:var(--terracotta); }
.brand-tagline { font-size:.72rem; color:var(--text-muted); letter-spacing:.8px; text-transform:uppercase; }
.nav { display:flex; align-items:center; gap:2rem; }
.nav a { font-size:.9rem; font-weight:500; color:var(--text); padding:6px 0; border-bottom:2px solid transparent; }
.nav a:hover, .nav a.active { color:var(--terracotta); border-bottom-color:var(--terracotta); }
.nav-cta { display:flex; align-items:center; gap:1.25rem; }
.phone-link { display:flex; align-items:center; gap:.4rem; font-weight:700; color:var(--ink); font-size:1rem; }
.phone-link:hover { color:var(--terracotta); }
.nav-toggle { display:none; background:none; border:none; font-size:1.6rem; color:var(--ink); cursor:pointer; }

/* Hero */
.hero {
  position:relative; padding: 210px 0 150px; color:#fff; overflow:hidden;
  min-height: 92vh;
  display: flex; align-items: center;
}
.hero-bg-img {
  position:absolute; inset:0; z-index:0;
}
.hero-bg-img img {
  width:100%; height:100%; object-fit:cover; object-position:center 55%;
}
.hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(to bottom, rgba(6,15,26,.55) 0%, rgba(6,15,26,.35) 50%, rgba(6,15,26,.75) 100%),
    radial-gradient(ellipse 70% 50% at 75% 25%, rgba(201,168,108,.14), transparent 60%);
  pointer-events:none;
}
.hero-mountains {
  position:absolute; bottom:0; left:0; right:0; height:90px; color:var(--paper);
  opacity:.07; pointer-events:none;
}
.hero-inner { position:relative; z-index:2; max-width:920px; padding-top: 40px; }
.hero-eyebrow {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:6px 16px; border:1px solid rgba(201,168,108,.45);
  border-radius:999px; color:var(--sand-light); font-size:.78rem; letter-spacing:1px; margin-bottom:1.25rem;
}
.hero-title { font-size:4.2rem; font-weight:800; line-height:1.05; margin-bottom:1.35rem; letter-spacing:-0.02em; }
.hero-title-brand,
.hero-title-promise { display:block; }
.hero-title-brand { font-size:.48em; letter-spacing:.12em; color:#fff; margin-bottom:.65rem; }
.hero-title-promise { color:var(--sand); }
.hero-subtitle { font-size:1.25rem; opacity:.92; max-width:680px; margin-bottom:2.25rem; line-height:1.9; text-shadow:0 1px 8px rgba(0,0,0,.25); }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.hero-badges { display:flex; gap:1.25rem; margin-top:2.5rem; flex-wrap:wrap; }
.hero-badge { display:flex; align-items:center; gap:.5rem; font-size:.85rem; opacity:.8; }
.hero-badge svg { width:18px; height:18px; color:var(--sand); }

/* Trust bar */
.trust-bar { background:#fff; border-bottom:1px solid var(--line); padding: 30px 0; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.trust-item { display:flex; align-items:center; gap:.75rem; }
.trust-icon {
  width:46px; height:46px; border-radius:50%; background:var(--paper-alt);
  display:flex; align-items:center; justify-content:center; color:var(--terracotta); font-size:1.25rem; flex-shrink:0;
}
.trust-text strong { display:block; font-size:.9rem; color:var(--ink); }
.trust-text span { font-size:.78rem; color:var(--text-light); }

/* Sections */
.section { padding: 95px 0; }
.section-alt { background: var(--paper-alt); }
.section-header { text-align:center; max-width:720px; margin:0 auto 3.5rem; }
.section-eyebrow { font-size:.75rem; color:var(--terracotta); letter-spacing:1.5px; text-transform:uppercase; font-weight:700; }
.section-title { font-size:2.4rem; font-weight:800; color:var(--ink); margin:.6rem 0 .8rem; }
.section-subtitle { color:var(--text-light); font-size:1.05rem; }

/* Practical guide links */
.guide-links-section { background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.guide-links-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; }
.guide-link-item {
  min-width:0; padding:1.4rem 1.15rem; border:1px solid var(--line); border-radius:8px;
  background:var(--paper); color:var(--text); transition:transform .25s var(--ease),border-color .25s,box-shadow .25s;
}
.guide-link-item:hover { transform:translateY(-4px); border-color:var(--sand); box-shadow:var(--shadow); }
.guide-link-item>span { display:block; color:var(--terracotta); font-size:.72rem; font-weight:800; letter-spacing:.08em; }
.guide-link-item h3 { margin:.45rem 0 .55rem; color:var(--ink); font-size:1.05rem; line-height:1.35; }
.guide-link-item p { margin:0 0 .85rem; color:var(--text-light); font-size:.82rem; line-height:1.65; }
.guide-link-item b { color:var(--ink); font-size:.78rem; }

/* Mountain divider */
.mountain-divider {
  height: 52px; margin: 0 auto 3rem; max-width: 220px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 48' fill='none'%3E%3Cpath d='M0 48 L60 12 L90 32 L130 4 L170 36 L200 20 L200 48 Z' fill='%23c9a86c' opacity='0.18'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center;
}

/* Route cards */
.routes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; }
.route-card {
  background:#fff; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
  transition: all .3s var(--ease); display:flex; flex-direction:column;
}
.route-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--sand-light); }
.route-image {
  height:240px;
  position:relative; overflow:hidden;
  background: var(--ink);
}
.route-image img {
  width:100%; height:100%; object-fit:cover; object-position:center center;
  transition: transform .6s var(--ease);
}
.route-card:hover .route-image img { transform: scale(1.08); }
.route-image::after {
  content:""; position:absolute; bottom:0; left:0; right:0; height:70%;
  background: linear-gradient(to top, rgba(9,26,46,.72), transparent);
}
.route-tag {
  position:absolute; top:14px; left:14px; z-index:2;
  background:#fff; color:var(--ink); padding:4px 12px; border-radius:999px;
  font-size:.72rem; font-weight:700; letter-spacing:.5px; box-shadow:var(--shadow-sm);
}
.route-body { padding:1.6rem; display:flex; flex-direction:column; flex:1; }
.route-name { font-size:1.15rem; font-weight:700; color:var(--ink); margin-bottom:.35rem; }
.route-meta { display:flex; gap:1rem; font-size:.85rem; color:var(--text-light); margin-bottom:.75rem; }
.route-meta span { display:flex; align-items:center; gap:.3rem; }
.route-desc { font-size:.9rem; color:var(--text-light); margin-bottom:1.1rem; flex:1; line-height:1.7; }
.route-price { font-size:1.05rem; font-weight:700; color:var(--terracotta); margin-bottom:1.1rem; }
.route-link { font-weight:600; color:var(--ink); display:inline-flex; align-items:center; gap:.4rem; }
.route-link:hover { color:var(--terracotta); gap:.6rem; }

/* Filters */
.route-filters { display:flex; gap:.6rem; justify-content:center; margin-bottom:2.5rem; flex-wrap:wrap; }
.filter-btn {
  padding:8px 22px; border:1px solid var(--line); border-radius:999px;
  background:#fff; color:var(--text-light); font-size:.85rem; cursor:pointer; transition:all .2s;
}
.filter-btn:hover { border-color:var(--ink); color:var(--ink); }
.filter-btn.active { background:var(--ink); color:#fff; border-color:var(--ink); }

/* Feature grid */
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.feature-card {
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:2.25rem 1.5rem; text-align:center; transition:all .25s;
}
.feature-card:hover { box-shadow:var(--shadow); border-color:var(--sand-light); transform:translateY(-4px); }
.feature-icon { width:60px; height:60px; margin:0 auto 1.1rem; border-radius:50%; background:var(--paper-alt); display:flex; align-items:center; justify-content:center; color:var(--terracotta); font-size:1.6rem; }
.feature-card h3 { font-size:1.08rem; color:var(--ink); margin-bottom:.5rem; }
.feature-card p { font-size:.87rem; color:var(--text-light); line-height:1.75; }

/* Testimonials */
.testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.testimonial {
  background:#fff; border-radius:var(--radius); padding:1.75rem;
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
}
.testimonial-stars { color:var(--sand); font-size:1rem; margin-bottom:.75rem; letter-spacing:2px; }
.testimonial-text { font-size:.95rem; color:var(--text); line-height:1.8; margin-bottom:1rem; }
.testimonial-author { font-size:.85rem; color:var(--text-muted); }
.testimonial-author strong { color:var(--ink); }

/* CTA section */
.cta-section {
  background: linear-gradient(135deg, var(--ink) 0%, var(--ink-dark) 100%);
  color:#fff; padding: 85px 0; text-align:center; position:relative; overflow:hidden;
}
.cta-section::before {
  content:""; position:absolute; inset:0;
  background: radial-gradient(ellipse 60% 60% at 50% 50%, rgba(201,168,108,.14), transparent 70%);
}
.cta-section .container { position:relative; z-index:2; }
.cta-section h2 { font-size:2.1rem; font-weight:800; margin-bottom:.75rem; }
.cta-section p { opacity:.86; max-width:620px; margin:0 auto 1.75rem; font-size:1.05rem; }

/* Contact section */
.contact-section { background:#fff; }
.contact-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:3rem; align-items:start; }
.contact-card { background:var(--paper-alt); border-radius:var(--radius); padding:2rem; border:1px solid var(--line); }
.contact-method { display:flex; gap:1rem; margin-bottom:1.25rem; }
.contact-method:last-child { margin-bottom:0; }
.contact-icon { width:50px; height:50px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; color:var(--terracotta); font-size:1.25rem; flex-shrink:0; box-shadow:var(--shadow-sm); }
.contact-method h4 { font-size:1rem; color:var(--ink); margin-bottom:.2rem; }
.contact-method p { font-size:.9rem; color:var(--text-light); }
.contact-map {
  min-height:280px; border-radius:var(--radius); background: linear-gradient(135deg, #e8e4db, #d9d4c9);
  display:flex; align-items:center; justify-content:center; color:var(--text-muted); font-size:.9rem;
}

/* Page hero */
.page-hero {
  position:relative; color:#fff; padding: 170px 0 95px; text-align:center;
  overflow:hidden;
}
.page-hero-bg {
  position:absolute; inset:0; z-index:0;
}
.page-hero-bg img {
  width:100%; height:100%; object-fit:cover; object-position:center 45%;
}
.page-hero-overlay {
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(to bottom, rgba(9,26,46,.72) 0%, rgba(9,26,46,.55) 60%, rgba(9,26,46,.78) 100%);
}
.page-hero .container { position:relative; z-index:2; }
.page-hero h1 { font-size:2.8rem; font-weight:800; margin-bottom:.9rem; text-shadow:0 2px 12px rgba(0,0,0,.25); }
.page-hero p { opacity:.92; font-size:1.05rem; max-width:680px; margin:0 auto; text-shadow:0 1px 6px rgba(0,0,0,.25); }
.page-hero-breadcrumb { font-size:.8rem; opacity:.7; margin-bottom:.75rem; }
.page-hero h1 { font-size:2.5rem; font-weight:800; margin-bottom:.75rem; }
.page-hero p { opacity:.85; font-size:1rem; max-width:640px; margin:0 auto; }

.page-body { padding: 65px 0; }
.page-body h2 {
  font-size:1.5rem; color:var(--ink); margin: 2.5rem 0 1rem;
  display:flex; align-items:center; gap:.75rem;
}
.page-body h2::before {
  content:""; display:inline-block; width:6px; height:24px; border-radius:3px; background:var(--terracotta);
}
.page-body h2:first-child { margin-top:0; }
.page-body p { margin-bottom:1rem; color:var(--text); line-height:1.85; }
.page-body ul { margin: 0 0 1rem 1.25rem; color:var(--text); }
.page-body li { margin-bottom:.5rem; }

/* Route detail */
.route-meta { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:2rem; }
.route-meta-item { background:var(--paper-alt); border-radius:var(--radius); padding:1.25rem; text-align:center; border:1px solid var(--line); }
.route-meta-item strong { display:block; font-size:.72rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.5px; margin-bottom:.25rem; }
.route-meta-item span { font-size:1.05rem; font-weight:700; color:var(--ink); }

.schedule { display:flex; flex-direction:column; gap:.75rem; margin:1rem 0 1.5rem; }
.schedule-day {
  display:flex; gap:1rem; padding:1.1rem 1.35rem; background:#fff;
  border:1px solid var(--line); border-radius:var(--radius);
  border-left: 4px solid var(--terracotta);
}
.day-num { font-weight:800; color:var(--ink); min-width:70px; }
.day-desc { color:var(--text); }

.geo-tags { display:flex; gap:.5rem; flex-wrap:wrap; margin:1rem 0; }
.geo-tag { padding:6px 14px; background:var(--paper-alt); color:var(--ink); border-radius:999px; font-size:.82rem; font-weight:500; border:1px solid var(--line); }

.highlight-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; margin:1rem 0 1.5rem; }
.highlight-item { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.25rem; }
.highlight-item h3 { font-size:1rem; color:var(--ink); margin-bottom:.4rem; }
.highlight-item p { font-size:.88rem; color:var(--text-light); margin:0; line-height:1.7; }

.tips-box {
  background:#fff9f2; border:1px solid #f0e0d0; border-radius:var(--radius);
  padding:1.25rem 1.5rem; margin:1rem 0 1.5rem;
}
.tips-box h3 { font-size:1rem; color:var(--terracotta); margin-bottom:.5rem; }
.tips-box p { font-size:.9rem; color:var(--text); margin:0; line-height:1.8; }

.route-cta-bar { margin-bottom:1.5rem; }

/* FAQ */
.faq-container { max-width:860px; margin:0 auto; }
.faq-list { display:flex; flex-direction:column; gap:.75rem; }
.faq-item { background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.faq-q { display:flex; justify-content:space-between; align-items:center; padding:1.15rem 1.35rem; cursor:pointer; font-weight:600; color:var(--ink); }
.faq-q:hover { background:var(--paper-alt); }
.faq-icon { color:var(--terracotta); font-size:1.3rem; transition:transform .3s; flex-shrink:0; margin-left:1rem; }
.faq-item.open .faq-icon { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s var(--ease), padding .35s; padding:0 1.35rem; color:var(--text-light); font-size:.9rem; line-height:1.8; }
.faq-item.open .faq-a { max-height:320px; padding:0 1.35rem 1.15rem; }

/* Footer */
.footer { background:var(--ink-dark); color:rgba(255,255,255,.75); padding:65px 0 0; }
.footer-inner { display:grid; grid-template-columns:1.8fr 1fr 1fr 1.2fr; gap:2.5rem; }
.footer-brand .brand-name { color:#fff; font-size:1.5rem; }
.footer-brand p { margin:.75rem 0 1rem; font-size:.88rem; opacity:.8; line-height:1.7; }
.footer-cert { display:flex; gap:.75rem; flex-wrap:wrap; }
.cert-badge { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-sm); padding:.45rem .85rem; font-size:.75rem; color:rgba(255,255,255,.8); }
.footer-col h4 { color:#fff; font-size:.95rem; margin-bottom:1rem; font-weight:600; }
.footer-col ul { list-style:none; }
.footer-col li { margin-bottom:.5rem; }
.footer-col a { color:rgba(255,255,255,.7); font-size:.85rem; }
.footer-col a:hover { color:var(--sand-light); }
.footer-contact p { font-size:.85rem; margin-bottom:.4rem; display:flex; align-items:center; gap:.5rem; }
.footer-bottom {
  margin-top:55px; padding:22px 0; border-top:1px solid rgba(255,255,255,.08);
  text-align:center; font-size:.78rem; opacity:.55;
}

/* Responsive */
@media (max-width: 1024px) {
  .routes-grid, .feature-grid, .testimonial-grid { grid-template-columns:repeat(2,1fr); }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .contact-grid { grid-template-columns:1fr; }
}

@media (max-width: 768px) {
  .header-inner { height:66px; }
  .nav { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; flex-direction:column; align-items:stretch; padding:1rem; gap:0; border-bottom:1px solid var(--line); box-shadow:var(--shadow); }
  .nav.open { display:flex; }
  .nav a { padding:.9rem 0; border-bottom:1px solid var(--line); border-bottom-width:0; }
  .nav a:last-child { border-bottom:none; }
  .nav-cta { display:none; }
  .nav-toggle { display:block; }
  .hero { padding:140px 0 100px; min-height:auto; }
  .hero-title { font-size:2.6rem; }
  .hero-subtitle { font-size:1.05rem; }
  .trust-grid { grid-template-columns:repeat(2,1fr); }
  .routes-grid, .feature-grid, .testimonial-grid, .highlight-grid, .route-meta { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr; gap:2rem; text-align:center; }
  .footer-cert { justify-content:center; }
  .page-hero { padding:130px 0 65px; }
  .page-hero h1 { font-size:1.9rem; }
  .hero-badges { gap:.75rem; }
  .route-image { height:200px; }
  .guide-links-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 480px) {
  .hero-title { font-size:1.65rem; }
  .hero-actions { flex-direction:column; }
  .btn { width:100%; }
  .trust-grid { grid-template-columns:1fr; }
  .section { padding:65px 0; }
  .guide-links-grid { grid-template-columns:1fr; }
}

/* License images */
.license-img-wrap { text-align:center; margin:2rem 0; }
.license-img { width:100%; max-width:600px; aspect-ratio:4/3; object-fit:contain; background:var(--paper-alt); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); }
.license-label { text-align:center; margin-top:.5rem; color:var(--text-muted); font-size:.85rem; }


/* ========== 设计增强 v2 ========== */
/* Scroll animations */
.animate-on-scroll { opacity:0; transform:translateY(40px); transition: all .75s cubic-bezier(.16,1,.3,1); }
.animate-on-scroll.visible { opacity:1; transform:translateY(0); }
.animate-on-scroll.fade-in { transform:translateY(0); }
.animate-on-scroll.fade-in.visible { opacity:1; }
.animate-on-scroll.scale-in { transform:scale(.92); }
.animate-on-scroll.scale-in.visible { opacity:1; transform:scale(1); }

/* Navigation enhancement */
.header { transition: background .35s cubic-bezier(.16,1,.3,1), box-shadow .35s cubic-bezier(.16,1,.3,1), border-color .35s; }
.header.scrolled { background: rgba(250,249,246,.92); backdrop-filter: blur(18px) saturate(1.2); -webkit-backdrop-filter: blur(18px) saturate(1.2); border-bottom-color: rgba(201,168,108,.2); box-shadow: 0 2px 40px rgba(15,39,68,.06); }
.header.scrolled .brand-name { background: linear-gradient(135deg, var(--ink) 0%, var(--terracotta) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* Hero enhancement */
.hero-bg-img img { transition: transform 1.5s cubic-bezier(.16,1,.3,1); }
.hero.loaded .hero-bg-img img { animation: heroZoomIn 8s cubic-bezier(.16,1,.3,1) forwards; }
@keyframes heroZoomIn { 0% { transform: scale(1.08); } 100% { transform: scale(1); } }
.hero-overlay { background: linear-gradient(135deg, rgba(6,15,26,.65) 0%, rgba(6,15,26,.3) 45%, rgba(6,15,26,.2) 60%, rgba(6,15,26,.75) 100%), radial-gradient(ellipse 70% 50% at 75% 25%, rgba(201,168,108,.18), transparent 65%); }
.hero-title { animation: heroTextIn 1s cubic-bezier(.16,1,.3,1) both; }
.hero-subtitle { animation: heroTextIn 1s cubic-bezier(.16,1,.3,1) .15s both; }
.hero-actions { animation: heroTextIn 1s cubic-bezier(.16,1,.3,1) .3s both; }
.hero-badges { animation: heroTextIn 1s cubic-bezier(.16,1,.3,1) .45s both; }
@keyframes heroTextIn { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }

/* Card 3D hover enhancement */
.route-card { perspective: 1200px; transform-style: preserve-3d; }
.route-card:hover { transform: translateY(-8px) rotateX(2deg); box-shadow: 0 20px 60px rgba(15,39,68,.14), 0 8px 20px rgba(15,39,68,.06); }
.route-card .route-image { transition: transform .5s cubic-bezier(.16,1,.3,1); }
.route-card:hover .route-image img { transform: scale(1.1); }

/* Feature card enhancement */
.feature-card { transition: all .4s cubic-bezier(.16,1,.3,1); position:relative; overflow:hidden; }
.feature-card::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background: linear-gradient(90deg, var(--sand), var(--terracotta)); opacity:0; transition: opacity .4s; }
.feature-card:hover::before { opacity:1; }
.feature-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.feature-icon { transition: transform .4s cubic-bezier(.16,1,.3,1), background .4s; }
.feature-card:hover .feature-icon { transform: scale(1.12) rotate(-3deg); background: var(--sand-light); }

/* Testimonial enhancement */
.testimonial { transition: all .35s cubic-bezier(.16,1,.3,1); position:relative; }
.testimonial::before { content:"\201C"; position:absolute; top:14px; left:18px; font-size:3rem; color:var(--sand); opacity:.15; font-family: Georgia, serif; line-height:1; }
.testimonial:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--sand-light); }

/* CTA section enhancement */
.cta-section::after { content:""; position:absolute; bottom:0; left:0; right:0; height:1px; background: linear-gradient(90deg, transparent, rgba(201,168,108,.3), transparent); }
.cta-section .btn { animation: ctaPulse 2.5s cubic-bezier(.4,0,.2,1) infinite; }
@keyframes ctaPulse { 0%, 100% { box-shadow: 0 4px 16px rgba(160,82,45,.28); } 50% { box-shadow: 0 4px 32px rgba(160,82,45,.45), 0 0 0 6px rgba(160,82,45,.1); } }

/* Trust bar enhancement */
.trust-item { transition: all .3s; }
.trust-item:hover .trust-icon { background: var(--sand-light); transform: scale(1.1); }
.trust-icon { transition: all .35s cubic-bezier(.16,1,.3,1); }

/* Page hero parallax */
.page-hero-bg img { transition: transform 1.2s cubic-bezier(.16,1,.3,1); }
.page-hero.loaded .page-hero-bg img { animation: heroZoomIn 7s cubic-bezier(.16,1,.3,1) forwards; }
.theme-hero .page-hero-overlay { background:linear-gradient(90deg,rgba(7,20,35,.78),rgba(7,20,35,.5) 58%,rgba(7,20,35,.35)); }
.theme-hero-red .page-hero-bg img { object-position:center 44%; }
.theme-hero-study .page-hero-bg img { object-position:center 48%; }
.about-hero .page-hero-bg img { object-position:center 52%; }
.about-hero h1 { max-width:720px; margin-left:auto; margin-right:auto; text-wrap:balance; }
.seo-landing-hero .page-hero-bg img { object-position:center 48%; }
.seo-landing-hero .container { max-width:900px; }
.seo-landing-hero h1 { text-wrap:balance; }
.seo-landing-hero .btn { margin-top:1.5rem; }

/* Section divider */
.mountain-divider { opacity:.3; transition: opacity .5s; }
.mountain-divider.visible { opacity:.5; }

/* Smooth scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--paper-alt); }
::-webkit-scrollbar-thumb { background: var(--line); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--sand); }

/* Loading shimmer for images */
.route-image::before { content:""; position:absolute; inset:0; z-index:1; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.08) 50%, transparent 100%); transform: translateX(-100%); animation: shimmer 2s infinite; pointer-events:none; }
@keyframes shimmer { to { transform: translateX(100%); } }

/* Smooth image loading */
img[loading="lazy"] { opacity:0; transition: opacity .5s; }
img[loading="lazy"].loaded, img[loading="lazy"][complete] { opacity:1; }

/* Footer link hover */
.footer-col a { position:relative; transition: all .25s; }
.footer-col a::after { content:""; position:absolute; bottom:0; left:0; right:0; height:1px; background: var(--sand); transform: scaleX(0); transition: transform .3s cubic-bezier(.16,1,.3,1); transform-origin: left; }
.footer-col a:hover::after { transform: scaleX(1); }

/* Responsive touch-ups */
@media (max-width: 768px) { .hero { background-attachment: scroll; } .page-hero-bg img { animation: none !important; } }

/* Print styles */
@media print { .header { position:static; } .hero { padding:60px 0; min-height:auto; } .hero-bg-img, .hero-overlay { display:none; } .cta-section { break-inside:avoid; } .route-card:hover img { transform:none; } }

/* Certificate gallery */
.certificate-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin:2rem 0 3rem; }
.certificate-card { margin:0; padding:1rem; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); }
.certificate-image { display:block; width:100%; height:420px; object-fit:contain; background:var(--paper-alt); border-radius:var(--radius-sm); }
.certificate-card figcaption { margin-top:.75rem; text-align:center; color:var(--ink); font-weight:700; }
@media (max-width:768px) {
  .certificate-grid { grid-template-columns:1fr; }
  .certificate-image { height:auto; max-height:520px; }
}
