/* Kofia detail-page upgrade: compact, route-led, mobile-safe. */
body.kofia-detail-v7-active { background:#f5f3ee; }
body.kofia-detail-v7-active .tour-main-section,
body.kofia-detail-v7-active .package-main-section,
body.kofia-detail-v7-active .safari-main-section { background:#f5f3ee!important; padding-top:34px!important; }
body.kofia-detail-v7-active .site-container { width:min(1240px,calc(100% - 36px)); }
body.kofia-detail-v7-active .content-layout { grid-template-columns:minmax(0,1fr) 340px!important; gap:28px!important; }
body.kofia-detail-v7-active .content-right { position:sticky; top:104px; }
body.kofia-detail-v7-active .premium-card,
body.kofia-detail-v7-active .side-card,
body.kofia-detail-v7-active .travel-plan,
body.kofia-detail-v7-active .map-card,
.kofia-v7-card { border:1px solid rgba(11,35,54,.11)!important; border-radius:18px!important; box-shadow:0 12px 32px rgba(11,35,54,.075)!important; }

.kofia-v7-shell { margin:0 0 26px; }
.kofia-v7-nav { position:sticky; top:82px; z-index:90; display:flex; gap:6px; overflow:auto; padding:8px; margin:0 0 18px; background:rgba(255,255,255,.96); border:1px solid rgba(11,35,54,.1); border-radius:15px; box-shadow:0 10px 28px rgba(11,35,54,.08); scrollbar-width:none; }
.kofia-v7-nav::-webkit-scrollbar { display:none; }
.kofia-v7-nav a { flex:0 0 auto; padding:10px 14px; color:#17344b; text-decoration:none; border-radius:10px; font-size:13px; font-weight:850; }
.kofia-v7-nav a:hover,.kofia-v7-nav a:focus { color:#fff; background:#0d63c9; }
.kofia-v7-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; overflow:hidden; background:#dce3e7; border:1px solid #dce3e7; border-radius:18px; box-shadow:0 12px 32px rgba(11,35,54,.07); }
.kofia-v7-summary>div { min-height:112px; padding:20px; background:#fff; }
.kofia-v7-summary span { display:block; margin-bottom:8px; color:#8b6a22; font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.kofia-v7-summary strong { display:block; color:#102f45; font-family:Georgia,'Times New Roman',serif; font-size:19px; line-height:1.32; }
.kofia-v7-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.kofia-v7-tags b { padding:6px 9px; border-radius:999px; background:#edf5ff; color:#0d63c9; font-size:11px; }

.kofia-v7-card { margin:0 0 22px; padding:28px; background:#fff; }
.kofia-v7-card__kicker { display:block; margin-bottom:8px; color:#b48935; font-size:11px; font-weight:950; letter-spacing:.18em; text-transform:uppercase; }
.kofia-v7-card h2 { margin:0 0 14px; color:#102f45; font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.65rem,3vw,2.25rem); line-height:1.08; }
.kofia-v7-card p,.kofia-v7-card li { color:#526373; font-size:15px; line-height:1.75; }
.kofia-v7-route { display:flex; align-items:center; gap:8px; overflow:auto; padding:7px 0 3px; scrollbar-width:none; }
.kofia-v7-route::-webkit-scrollbar { display:none; }
.kofia-v7-route span { flex:0 0 auto; display:inline-flex; align-items:center; min-height:42px; padding:9px 13px; border:1px solid rgba(13,99,201,.2); border-radius:999px; color:#17344b; background:#f5f9ff; font-weight:800; font-size:13px; }
.kofia-v7-route i { color:#b48935; font-style:normal; font-weight:900; }
.kofia-v7-activities { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; }
.kofia-v7-activities span { padding:9px 12px; border-radius:10px; color:#17344b; background:#f2f6f7; font-size:13px; font-weight:750; }
.kofia-v7-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:20px; }
.kofia-v7-actions a { min-height:50px; display:flex; align-items:center; justify-content:center; padding:12px 15px; border-radius:12px; text-align:center; text-decoration:none; font-weight:900; }
.kofia-v7-customize { color:#17344b; background:linear-gradient(135deg,#f6d97d,#dcb24e); }
.kofia-v7-quote { color:#fff; background:linear-gradient(135deg,#0d63c9,#173b8f); }
.kofia-v7-trust { border-left:4px solid #d5ae52!important; background:linear-gradient(135deg,#0c2d3d,#123d50)!important; }
.kofia-v7-trust h2,.kofia-v7-trust p,.kofia-v7-trust li { color:#fff!important; }
.kofia-v7-trust ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 22px; padding-left:20px; }

body.kofia-detail-v7-active .map-layout { grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr)!important; gap:18px!important; align-items:stretch; }
body.kofia-detail-v7-active .map-frame { min-height:360px; overflow:hidden; border-radius:14px!important; }
body.kofia-detail-v7-active .map-stops { position:relative; padding-left:14px; }
body.kofia-detail-v7-active .map-stops:before { content:""; position:absolute; top:18px; bottom:18px; left:24px; width:2px; background:linear-gradient(#0d63c9,#d5ae52); }
body.kofia-detail-v7-active .stop-item { position:relative; z-index:1; margin-bottom:9px; border-radius:12px!important; background:#f7fafc!important; }
body.kofia-detail-v7-active .step-box { border-radius:14px!important; overflow:hidden; }
body.kofia-detail-v7-active [id] { scroll-margin-top:160px; }

/* A translated catalogue must never lead with Angular's failed empty state. */
.kofia-language-recovery { display:block!important; position:relative; z-index:1; }
.kofia-language-recovery + .empty-box,
[data-kofia-language-recovery] + .empty-box { display:none!important; }
body:has(.kofia-language-recovery) .empty-box,
body:has([data-kofia-language-recovery]) .empty-box { display:none!important; }
body:has([data-kofia-detail-recovery]) .page-state { display:none!important; }

/* Final no-flash rule: all content is readable immediately on phone and desktop. */
.kofia-reveal,.kofia-reveal.is-visible { opacity:1!important; visibility:visible!important; transform:none!important; transition:none!important; }

/* Premium styling for the complete prerendered catalogue used while a localized
   Angular request is unavailable. It deliberately mirrors the live catalogue. */
.kofia-static-main.kofia-language-recovery { width:min(1180px,calc(100% - 36px)); margin:0 auto 76px; padding:38px 0 0; color:#102f45; background:transparent!important; }
.kofia-static-main.kofia-language-recovery>h1 { max-width:850px; margin:0 0 10px; color:#102f45; font-family:Georgia,'Times New Roman',serif; font-size:clamp(2rem,4.2vw,3.7rem); line-height:1.03; letter-spacing:-.035em; }
.kofia-static-main.kofia-language-recovery>p { max-width:760px; margin:0 0 28px; color:#5b6d79; font-size:16px; line-height:1.7; }
.kofia-static-main.kofia-language-recovery .kofia-static-grid { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.kofia-static-main.kofia-language-recovery .kofia-static-card { min-width:0; overflow:hidden; display:flex!important; flex-direction:column; margin:0; border:1px solid rgba(11,35,54,.1)!important; border-radius:18px!important; background:#fff!important; box-shadow:0 16px 42px rgba(11,35,54,.09)!important; }
.kofia-static-main.kofia-language-recovery .kofia-static-card>img { width:100%; height:238px; display:block; object-fit:cover; background:#e8eef1; }
.kofia-static-main.kofia-language-recovery .kofia-static-card>div { flex:1; display:flex; flex-direction:column; align-items:flex-start; padding:22px; }
.kofia-static-main.kofia-language-recovery .kofia-static-card h2 { margin:0 0 11px; color:#102f45; font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.25rem,2vw,1.6rem); line-height:1.18; letter-spacing:-.02em; }
.kofia-static-main.kofia-language-recovery .kofia-static-card h2 a { color:inherit; text-decoration:none; }
.kofia-static-main.kofia-language-recovery .kofia-static-card p { margin:0 0 13px; color:#5b6d79; font-size:14px; line-height:1.65; }
.kofia-static-main.kofia-language-recovery .kofia-static-card p:nth-of-type(2) { color:#8b6a22; font-size:12px; font-weight:850; }
.kofia-static-main.kofia-language-recovery .kofia-static-card>div>a:last-child { min-height:43px; display:inline-flex; align-items:center; justify-content:center; margin-top:auto; padding:10px 17px; border-radius:999px; color:#fff; background:linear-gradient(135deg,#0d63c9,#078f8f); text-decoration:none; font-size:13px; font-weight:900; box-shadow:0 10px 24px rgba(13,99,201,.18); }
.kofia-static-main.kofia-language-recovery .kofia-static-card:hover { transform:translateY(-5px); box-shadow:0 24px 58px rgba(11,35,54,.15)!important; }

.kofia-static-info .kofia-static-itinerary-list { display:grid; gap:13px; margin:18px 0 28px!important; padding:0!important; list-style:none!important; counter-reset:none; }
.kofia-static-info .kofia-static-itinerary-list>li { display:grid; grid-template-columns:40px minmax(0,1fr); gap:14px; align-items:start; padding:17px; border:1px solid #dfe6eb; border-left:4px solid #d5ae52; border-radius:15px; background:#fff; box-shadow:0 9px 24px rgba(11,35,54,.07); }
.kofia-static-info .kofia-static-step-number { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#0d63c9; font-size:12px; font-weight:950; }
.kofia-static-info .kofia-static-itinerary-list strong { display:block; color:#102f45; font-family:Georgia,'Times New Roman',serif; font-size:17px; line-height:1.4; }
.kofia-static-info .kofia-static-itinerary-list p { margin:7px 0 0!important; color:#526373; font-size:14px; line-height:1.7; }

/* Professional itinerary timeline: compact, readable and consistent with the page. */
body.kofia-detail-v7-active .kofia-v8-itinerary { padding:28px!important; background:#fff; }
body.kofia-detail-v7-active .kofia-v8-itinerary .travel-plan-header { text-align:left; margin:0 0 24px; padding-bottom:19px; border-bottom:1px solid #e5e9ed; }
body.kofia-detail-v7-active .kofia-v8-itinerary .map-big-icon { width:48px; height:48px; margin:0 0 12px; border-radius:14px; font-size:25px; color:#fff; background:linear-gradient(135deg,#0d63c9,#173b8f); }
body.kofia-detail-v7-active .kofia-v8-itinerary .accordion-list { position:relative; gap:13px; padding-left:48px; counter-reset:kofia-itinerary; }
body.kofia-detail-v7-active .kofia-v8-itinerary .accordion-list:before { content:""; position:absolute; top:23px; bottom:23px; left:20px; width:2px; background:linear-gradient(#0d63c9,#d5ae52); }
body.kofia-detail-v7-active .kofia-v8-itinerary .step-box { position:relative; overflow:visible!important; counter-increment:kofia-itinerary; border:1px solid #dfe6eb!important; border-radius:15px!important; box-shadow:0 9px 24px rgba(11,35,54,.07)!important; background:#fff; }
body.kofia-detail-v7-active .kofia-v8-itinerary .step-box:before { content:counter(kofia-itinerary); position:absolute; top:15px; left:-47px; z-index:2; width:38px; height:38px; display:grid; place-items:center; border:4px solid #fff; border-radius:50%; color:#fff; background:#0d63c9; box-shadow:0 5px 14px rgba(13,99,201,.25); font-size:12px; font-weight:950; }
body.kofia-detail-v7-active .kofia-v8-itinerary .step-head { min-height:68px; padding:13px 16px!important; color:#102f45!important; background:#fff!important; border-radius:15px!important; border-left:4px solid #d5ae52!important; }
body.kofia-detail-v7-active .kofia-v8-itinerary .step-head strong { display:grid; gap:3px; min-width:0; color:#102f45!important; }
body.kofia-detail-v7-active .kofia-v8-itinerary .step-head strong small { color:#b18632; font-family:Arial,sans-serif; font-size:10px; line-height:1.2; font-weight:950; letter-spacing:.14em; text-transform:uppercase; }
body.kofia-detail-v7-active .kofia-v8-itinerary .step-head strong span { color:#102f45; font-family:Georgia,'Times New Roman',serif; font-size:17px; line-height:1.35; font-weight:700; }
body.kofia-detail-v7-active .kofia-v8-itinerary .step-symbol { order:2; margin-left:auto; width:30px; height:30px; flex-basis:30px; color:#fff!important; background:#0d63c9!important; font-size:17px!important; }
body.kofia-detail-v7-active .kofia-v8-itinerary .step-content { padding:18px 20px 21px!important; border-top:1px solid #e5e9ed; border-radius:0 0 15px 15px; background:#f7fafc; }
body.kofia-detail-v7-active .kofia-v8-itinerary .step-content p { color:#526373!important; line-height:1.7!important; }

/* Type identity prevents day tours, packages and safaris from sharing generic copy. */
body.kofia-detail-type-tour .kofia-v7-tour-stay { border-top:4px solid #19a7b5!important; }
body.kofia-detail-type-package .kofia-v7-package-stay { border-top:4px solid #d5ae52!important; }
body.kofia-detail-type-safari .kofia-v7-safari-stay { border-top:4px solid #3a7049!important; }
body.kofia-detail-type-tour .kofia-v7-trust { background:linear-gradient(135deg,#0b3948,#0f5664)!important; }
body.kofia-detail-type-package .kofia-v7-trust { background:linear-gradient(135deg,#2f2b20,#67542e)!important; }
body.kofia-detail-type-safari .kofia-v7-trust { background:linear-gradient(135deg,#173829,#285b3b)!important; }

@media(max-width:900px){
  body.kofia-detail-v7-active .content-layout { grid-template-columns:1fr!important; }
  body.kofia-detail-v7-active .content-right { position:static; }
  .kofia-v7-summary { grid-template-columns:1fr 1fr; }
  body.kofia-detail-v7-active .map-layout { grid-template-columns:1fr!important; }
  .kofia-static-main.kofia-language-recovery .kofia-static-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px){
  body.kofia-detail-v7-active .site-container { width:min(100% - 22px,1240px); }
  .kofia-v7-nav { top:72px; border-radius:12px; margin-bottom:12px; }
  .kofia-v7-nav a { padding:9px 11px; font-size:12px; }
  .kofia-v7-summary { grid-template-columns:1fr 1fr; border-radius:14px; }
  .kofia-v7-summary>div { min-height:94px; padding:15px 13px; }
  .kofia-v7-summary strong { font-size:15px; }
  .kofia-v7-card { padding:20px 17px; border-radius:15px!important; }
  .kofia-v7-actions { grid-template-columns:1fr; }
  .kofia-v7-trust ul { grid-template-columns:1fr; }
  body.kofia-detail-v7-active .map-frame { min-height:280px; }
  body.kofia-detail-v7-active .kofia-v8-itinerary { padding:19px 14px!important; }
  body.kofia-detail-v7-active .kofia-v8-itinerary .accordion-list { padding-left:40px; }
  body.kofia-detail-v7-active .kofia-v8-itinerary .accordion-list:before { left:16px; }
  body.kofia-detail-v7-active .kofia-v8-itinerary .step-box:before { left:-39px; width:32px; height:32px; border-width:3px; }
  body.kofia-detail-v7-active .kofia-v8-itinerary .step-head { min-height:62px; padding:11px 12px!important; }
  body.kofia-detail-v7-active .kofia-v8-itinerary .step-head strong span { font-size:15px; }
  body.kofia-detail-v7-active .kofia-v8-itinerary .step-content { padding:15px!important; }
  .kofia-static-main.kofia-language-recovery { width:calc(100% - 22px); margin-bottom:48px; padding-top:25px; }
  .kofia-static-main.kofia-language-recovery .kofia-static-grid { grid-template-columns:1fr; gap:17px; }
  .kofia-static-main.kofia-language-recovery .kofia-static-card>img { height:220px; }
  .kofia-static-main.kofia-language-recovery .kofia-static-card>div { padding:18px; }
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}

/* V10 balanced catalogue cards: complete but no longer oversized. */
.packages-list-section .site-container,
.safari-list-section .site-container { width:min(1140px,calc(100% - 36px))!important; }
.packages-list-section .packages-grid,
.safari-list-section .packages-grid { align-items:start!important; gap:22px!important; }
.packages-list-section .package-card,
.safari-list-section .package-card { height:auto!important; min-height:0!important; align-self:start!important; border-radius:18px!important; }
.packages-list-section .package-image-link,
.safari-list-section .package-image-link { height:210px!important; min-height:210px!important; }
.packages-list-section .package-image-link img,
.safari-list-section .package-image-link img { width:100%!important; height:210px!important; min-height:0!important; object-fit:cover!important; }
.packages-list-section .package-card-body,
.safari-list-section .package-card-body { min-height:0!important; padding:18px!important; }
.packages-list-section .package-top-line,
.safari-list-section .package-top-line { min-height:0!important; display:grid!important; grid-template-columns:minmax(0,1fr) auto!important; align-items:start!important; margin-bottom:10px!important; gap:7px!important; }
.packages-list-section .package-top-line span,
.safari-list-section .package-top-line span { min-height:0!important; padding:7px 10px!important; font-size:11.5px!important; line-height:1.3!important; }
.packages-list-section .package-top-line span:first-child,
.safari-list-section .package-top-line span:first-child { min-width:0!important; display:-webkit-box!important; overflow:hidden!important; -webkit-box-orient:vertical!important; -webkit-line-clamp:2!important; }
.packages-list-section .package-top-line span:last-child,
.safari-list-section .package-top-line span:last-child { white-space:nowrap!important; }
.packages-list-section .package-card-body h3,
.safari-list-section .package-card-body h3 { min-height:0!important; margin:0 0 9px!important; font-size:1.22rem!important; line-height:1.22!important; }
.packages-list-section .package-description,
.safari-list-section .package-description { min-height:0!important; margin:0 0 10px!important; display:-webkit-box!important; overflow:hidden!important; -webkit-box-orient:vertical!important; -webkit-line-clamp:3!important; font-size:13.5px!important; line-height:1.55!important; }
.safari-list-section .package-description { -webkit-line-clamp:2!important; }
.packages-list-section .package-urgency,
.safari-list-section .package-urgency { min-height:0!important; margin:0 0 10px!important; font-size:12px!important; line-height:1.4!important; }
.packages-list-section .safari-trust-row,
.safari-list-section .safari-trust-row { min-height:0!important; margin:0 0 10px!important; gap:6px!important; }
.packages-list-section .safari-trust-row span,
.safari-list-section .safari-trust-row span { min-height:0!important; padding:7px 9px!important; font-size:11px!important; line-height:1.25!important; }
.packages-list-section .package-price-row,
.safari-list-section .package-price-row { min-height:0!important; margin-top:2px!important; padding-top:11px!important; }
.packages-list-section .package-price,
.safari-list-section .package-price { font-size:1.8rem!important; line-height:1!important; }
.packages-list-section .currency-note,
.safari-list-section .currency-note { min-height:0!important; margin:7px 0 10px!important; font-size:11px!important; line-height:1.4!important; }
.packages-list-section .package-actions,
.safari-list-section .package-actions { min-height:0!important; display:grid!important; grid-template-columns:1fr 1fr!important; gap:7px!important; }
.packages-list-section .package-actions a,
.safari-list-section .package-actions a { min-width:0!important; min-height:39px!important; padding:8px 9px!important; border-radius:10px!important; font-size:11.5px!important; line-height:1.2!important; }
.packages-list-section .package-actions a:last-child,
.safari-list-section .package-actions a:last-child { grid-column:1 / -1!important; }

@media(max-width:767px){
  .packages-list-section .site-container,
  .safari-list-section .site-container { width:calc(100% - 24px)!important; }
  .packages-list-section .packages-grid,
  .safari-list-section .packages-grid { gap:18px!important; }
  .packages-list-section .package-card,
  .safari-list-section .package-card { border-radius:17px!important; }
  .packages-list-section .package-image-link,
  .safari-list-section .package-image-link,
  .packages-list-section .package-image-link img,
  .safari-list-section .package-image-link img { height:205px!important; min-height:205px!important; }
  .packages-list-section .package-card-body,
  .safari-list-section .package-card-body { padding:17px 16px 16px!important; }
  .packages-list-section .package-top-line,
  .safari-list-section .package-top-line { margin-bottom:9px!important; }
  .packages-list-section .package-card-body h3,
  .safari-list-section .package-card-body h3 { margin-bottom:8px!important; font-size:1.32rem!important; line-height:1.18!important; }
  .packages-list-section .package-description,
  .safari-list-section .package-description { margin-bottom:9px!important; font-size:14px!important; line-height:1.5!important; }
  .packages-list-section .package-urgency,
  .safari-list-section .package-urgency { margin-bottom:9px!important; font-size:11.5px!important; }
  .packages-list-section .safari-trust-row,
  .safari-list-section .safari-trust-row { margin-bottom:9px!important; }
  .packages-list-section .package-price,
  .safari-list-section .package-price { font-size:1.85rem!important; }
  .packages-list-section .currency-note,
  .safari-list-section .currency-note { margin:7px 0 9px!important; }
  .packages-list-section .package-actions a,
  .safari-list-section .package-actions a { min-height:41px!important; font-size:12px!important; }
}

@media(min-width:768px) and (max-width:1050px){
  .packages-list-section .packages-grid,
  .safari-list-section .packages-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}
