/* ==========================================================================
   visa-detail.css — /en/visa-detail.html
   Design A "Editorial Trust"
   Page-unique styles only. Shared layout, tabs, detail-panel, gallery, etc.
   live in global.css.
   ========================================================================== */

/* ── Visa-detail hero ───────────────────────────────────────────────────── */
.visa-detail-hero {
  background: linear-gradient(135deg, #0A3D62 0%, var(--secondary) 100%);
  color: var(--on-navy);
  padding-block: var(--sp-10);
  position: relative;
  overflow: hidden;
}
.visa-detail-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23FFFFFF' fill-opacity='0.03'%3E%3Cpath d='M40 0l40 40-40 40L0 40z'/%3E%3C/g%3E%3C/svg%3E");
}
.visa-detail-hero-content { position: relative; }

.breadcrumb-on-dark { margin-block-end: var(--sp-4); }
.breadcrumb-on-dark .breadcrumb,
.breadcrumb-on-dark .breadcrumb a {
  color: rgba(255, 255, 255, 0.6);
}
.breadcrumb-on-dark .breadcrumb-sep {
  color: rgba(255, 255, 255, 0.4);
}
.breadcrumb-on-dark .breadcrumb li:last-child {
  color: #fff;
}

.visa-detail-h1 {
  font-size: var(--text-2xl);
  font-weight: var(--weight-bold);
  color: #fff;
  margin-block-end: var(--sp-3);
}
@media (min-width: 768px) {
  .visa-detail-h1 { font-size: var(--text-3xl); }
}
.visa-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-5);
}
.visa-detail-meta-item {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.visa-detail-meta-label {
  font-size: var(--text-xs);
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.visa-detail-meta-value {
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  color: #fff;
}

/* ── Visa-detail body grid ──────────────────────────────────────────────── */
.visa-detail-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-8);
  align-items: start;
  padding-block: var(--sp-8);
}
@media (min-width: 1024px) {
  .visa-detail-layout { grid-template-columns: 1fr 22rem; }
}

/* The shared .gallery-hero component (global.css) leads the content column on
   the car detail page. It carries no outer margin of its own — on the tour page
   it is a full-width band with the layout's own padding beneath it — so give it
   the gap the prose below needs when it sits inside the article. */
.visa-detail-layout .gallery-hero { margin-block-end: var(--sp-6); }

/* ── Section headings inside content panels ─────────────────────────────── */
.visa-section-title {
  font-size: var(--text-xl);
  font-weight: var(--weight-semibold);
  margin-block-end: var(--sp-3);
  color: var(--gray-900);
}
.visa-section-title.is-block {
  margin-block-end: var(--sp-5);
}
.visa-section-title.is-spaced {
  margin-block: var(--sp-6) var(--sp-5);
}

.visa-prose {
  font-size: var(--text-base);
  color: var(--gray-700);
  line-height: var(--leading-relaxed);
  margin-block-end: var(--sp-3);
}
.visa-prose.is-last { margin-block-end: var(--sp-6); }

/* ── Eligibility list reuses .highlight-item ────────────────────────────── */
.visa-elig-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  margin-block-end: var(--sp-6);
  font-size: var(--text-sm);
  color: var(--gray-700);
}
.highlight-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  font-size: var(--text-sm);
  color: var(--gray-700);
  line-height: var(--leading-relaxed);
}
.highlight-item svg {
  width: 16px;
  height: 16px;
  color: var(--success);
  flex-shrink: 0;
  margin-block-start: 3px;
}

/* ── Tips list ──────────────────────────────────────────────────────────── */
.tips-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.tip-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  font-size: var(--text-sm);
  color: var(--gray-700);
  line-height: var(--leading-relaxed);
  padding: var(--sp-3);
  background: var(--gray-50);
  border-radius: var(--radius-md);
}
.tip-item svg {
  width: 16px;
  height: 16px;
  color: var(--primary);
  flex-shrink: 0;
  margin-block-start: 2px;
}

/* ── Visa process steps ─────────────────────────────────────────────────── */
.visa-steps {
  display: flex;
  flex-direction: column;
  gap: var(--sp-6);
  position: relative;
}
.visa-steps::before {
  content: '';
  position: absolute;
  inset-block: 24px 24px;
  inset-inline-start: 23px;
  width: 2px;
  background: var(--gray-200);
}
.visa-step {
  display: flex;
  gap: var(--sp-5);
  position: relative;
}
.visa-step-num {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  background: var(--navy);
  color: var(--on-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-base);
  font-weight: var(--weight-bold);
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.visa-step-content {
  flex: 1;
  padding-block-start: var(--sp-2);
}
.visa-step-title {
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  color: var(--gray-900);
  margin-block-end: var(--sp-1);
}
.visa-step-desc {
  font-size: var(--text-sm);
  color: var(--gray-700);
  line-height: var(--leading-relaxed);
}

/* ── Documents required grid ────────────────────────────────────────────── */
.visa-docs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--sp-3);
}
.visa-doc-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-4);
  background: var(--gray-50);
  border-radius: var(--radius-md);
  border: 1px solid var(--gray-200);
}
.visa-doc-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  background: var(--navy-light);
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.visa-doc-icon svg { width: 18px; height: 18px; }
.visa-doc-name {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--gray-900);
  margin-block-end: var(--sp-1);
}
.visa-doc-desc {
  font-size: var(--text-xs);
  color: var(--gray-700);
}

/* ── Timeline indicator ─────────────────────────────────────────────────── */
.visa-timeline {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5);
  background: var(--primary-light);
  border-radius: var(--radius-lg);
  border: 1.5px solid var(--primary-border);
}
.visa-timeline.is-spaced {
  margin-block-end: var(--sp-6);
}
.visa-timeline-icon {
  width: 24px;
  height: 24px;
  color: var(--primary);
  flex-shrink: 0;
}
.visa-timeline-text {
  font-size: var(--text-sm);
  color: var(--gray-900);
}
.visa-timeline-days {
  font-weight: var(--weight-bold);
  color: var(--primary);
}

/* Smaller timeline (sidebar variant) */
.visa-timeline-sm .visa-timeline-icon {
  width: 18px;
  height: 18px;
}
.visa-timeline-sm .visa-timeline-text {
  font-size: 0.8125rem;
}

/* ── Process panel itinerary reuses tour-detail itinerary look ──────────── */
.itinerary {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  margin-block-end: var(--sp-6);
}
.itinerary::before {
  content: '';
  position: absolute;
  inset-block: 24px 24px;
  inset-inline-start: 19px;
  width: 2px;
  background: var(--gray-200);
}
.itinerary-step {
  display: flex;
  gap: var(--sp-5);
  position: relative;
}
.itinerary-step + .itinerary-step { margin-block-start: var(--sp-5); }
.itinerary-dot {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: var(--primary-light);
  border: 2px solid var(--primary);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.itinerary-content { flex: 1; padding-block-start: var(--sp-2); }
.itinerary-time {
  font-size: var(--text-xs);
  color: var(--primary);
  font-weight: var(--weight-semibold);
}
.itinerary-title {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--gray-900);
}
.itinerary-desc {
  font-size: var(--text-sm);
  color: var(--gray-700);
  margin-block-start: var(--sp-1);
}

/* ── Reviews ────────────────────────────────────────────────────────────── */
.rating-breakdown {
  display: flex;
  gap: var(--sp-6);
  flex-wrap: wrap;
  align-items: flex-start;
  margin-block-end: var(--sp-6);
  padding-block-end: var(--sp-6);
  border-block-end: 1px solid var(--gray-200);
}
.rating-big {
  font-size: 3.5rem;
  font-weight: var(--weight-bold);
  line-height: 1;
  color: var(--gray-900);
}
.rating-summary {
  margin-block-start: 0.5rem;
}
.review-bars {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: 1;
  min-width: 180px;
}
.review-bar-row {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  font-size: var(--text-xs);
  color: var(--gray-700);
}
.review-bar-label { width: 32px; text-align: end; }
.review-bar-track {
  flex: 1;
  height: 6px;
  background: var(--gray-200);
  border-radius: var(--radius-full);
  overflow: hidden;
}
.review-bar-fill {
  height: 100%;
  background: #F59E0B;
  border-radius: var(--radius-full);
}
.review-bar-fill[data-pct="72"] { width: 72%; }
.review-bar-fill[data-pct="18"] { width: 18%; }
.review-bar-fill[data-pct="6"]  { width: 6%; }
.review-bar-fill[data-pct="3"]  { width: 3%; }
.review-bar-fill[data-pct="1"]  { width: 1%; }
.review-bar-count { width: 24px; }

.visa-review-grid {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}
.review-card {
  padding: var(--sp-5);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg);
  background: var(--bg-white);
}
.review-card-header {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  margin-block-end: var(--sp-3);
}
.review-avatar {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: var(--secondary-light);
  color: var(--secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--weight-bold);
  font-size: var(--text-sm);
  flex-shrink: 0;
}
.review-author {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
}
.review-date {
  font-size: var(--text-xs);
  color: var(--gray-700);
}
.review-stars-tight {
  margin-block-start: 2px;
}
.review-text {
  font-size: var(--text-sm);
  color: var(--gray-700);
  line-height: var(--leading-relaxed);
}

/* ── Apply panel ────────────────────────────────────────────────────────── */
.apply-panel {
  background: var(--bg-white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  padding: var(--sp-6);
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}
@media (min-width: 1024px) {
  .apply-panel {
    position: sticky;
    top: calc(var(--header-h) + var(--sp-4));
  }
}
.apply-price-label {
  font-size: var(--text-xs);
  color: var(--gray-700);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.apply-price-row {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.apply-price-amount {
  font-size: var(--text-3xl);
  font-weight: var(--weight-bold);
  color: var(--gray-900);
}
.apply-divider {
  height: 1px;
  background: var(--gray-200);
  border: none;
  margin: 0;
}
.apply-form {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}
.apply-form-hint {
  font-size: 0.75rem;
  color: var(--gray-400);
}
.apply-total-row {
  display: flex;
  justify-content: space-between;
  font-size: var(--text-sm);
  color: var(--gray-700);
  padding: var(--sp-3);
  background: var(--gray-50);
  border-radius: var(--radius-md);
}
.apply-total-amount {
  color: var(--gray-900);
}
.apply-submit {
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: var(--weight-semibold);
}
.apply-trust {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.apply-trust-item {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  font-size: var(--text-sm);
  color: var(--gray-700);
}
.apply-trust-item svg {
  width: 16px;
  height: 16px;
  color: var(--success);
  flex-shrink: 0;
}

/* ── Similar visas grid ─────────────────────────────────────────────────── */
.similar-section {
  padding-block: var(--sp-12);
}
.similar-section-title {
  font-size: var(--text-2xl);
  font-weight: var(--weight-bold);
  margin-block-end: var(--sp-6);
}
.similar-visa-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-4);
}
@media (min-width: 640px) {
  .similar-visa-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ── Mobile CTA bar ─────────────────────────────────────────────────────── */
.mobile-cta-bar {
  position: fixed;
  inset-block-end: 0;
  inset-inline: 0;
  background: var(--bg-white);
  border-block-start: 1px solid var(--gray-200);
  padding: var(--sp-4) var(--sp-5);
  padding-block-end: max(var(--sp-4), env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  z-index: var(--z-sticky);
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
}
@media (min-width: 1024px) {
  .mobile-cta-bar { display: none; }
}
.mobile-cta-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mobile-cta-price {
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  color: var(--gray-900);
}
.mobile-cta-price-unit {
  font-size: var(--text-sm);
  font-weight: var(--weight-regular);
  color: var(--gray-700);
}
.mobile-cta-note {
  font-size: 0.75rem;
  color: var(--gray-700);
}
.mobile-cta-btn {
  height: 48px;
  padding-inline: 1.5rem;
  font-size: 0.9375rem;
  font-weight: var(--weight-semibold);
}

/* Footer offset for fixed mobile CTA bar */
.has-mobile-cta {
  margin-block-end: 88px;
}
@media (min-width: 1024px) {
  .has-mobile-cta { margin-block-end: 0; }
}

/* Scoped offset: the shared <body> can't take .has-mobile-cta, so the visa-detail
   page reserves space for the fixed mobile CTA bar via #main-content on mobile only. */
body:has(.mobile-cta-bar) #main-content { padding-block-end: 88px; }
@media (min-width: 1024px) {
  body:has(.mobile-cta-bar) #main-content { padding-block-end: 0; }
}

/* ── Provider mini-card in the apply panel (contact flow, not in base Design-A) ── */
.provider-mini {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  padding: var(--sp-4);
  background: var(--gray-50);
  border-radius: var(--radius-md);
}
.provider-mini-name {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  color: var(--gray-900);
}
.provider-mini-name svg { width: 18px; height: 18px; color: var(--success); flex-shrink: 0; }
.provider-mini-rating {
  display: flex;
  align-items: center;
  gap: var(--sp-1);
  font-size: var(--text-sm);
  color: var(--gray-700);
}
.provider-mini-rating svg { width: 14px; height: 14px; color: var(--primary); }
.provider-mini-link {
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  color: var(--primary);
}
.apply-panel .btn-whatsapp svg { width: 18px; height: 18px; }
