/* ============================================================
   budapestfreetour.hu — Main Stylesheet
   ============================================================ */

/* --- Reset & Base --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg-dark:#0f172a;--bg-card:#1e293b;--bg-alt:#162032;
  --text:#e2e8f0;--text-muted:#94a3b8;--text-dim:#64748b;
  --accent:#f59e0b;--accent-hover:#d97706;
  --blue:#2563eb;--red:#dc2626;--green:#16a34a;--yellow:#ca8a04;
  --radius:12px;--radius-sm:8px;
  --shadow:0 4px 24px rgba(0,0,0,0.3);
  --transition:0.3s ease;
  --font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:var(--font);background:var(--bg-dark);color:var(--text);line-height:1.6;overflow-x:hidden}
a{color:var(--accent);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--accent-hover)}
img{max-width:100%;height:auto;display:block}
ul{list-style:none}

/* --- Container --- */
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* --- Buttons --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 24px;border-radius:var(--radius-sm);font-weight:600;font-size:15px;border:none;cursor:pointer;transition:all var(--transition);text-decoration:none;line-height:1.4}
.btn-primary{background:var(--accent);color:#0f172a}
.btn-primary:hover{background:var(--accent-hover);color:#0f172a;transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--accent);border:2px solid var(--accent)}
.btn-outline:hover{background:var(--accent);color:#0f172a}
.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--text-dim)}
.btn-ghost:hover{color:var(--text);border-color:var(--text-muted)}
.btn-danger{background:var(--red);color:#fff}
.btn-danger:hover{background:#b91c1c}
.btn-sm{padding:6px 16px;font-size:13px}
.btn-lg{padding:14px 36px;font-size:17px}

/* --- Header --- */
#main-header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:all var(--transition);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(15,23,42,0.3)}
#main-header.header-solid{background:rgba(15,23,42,0.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 20px rgba(0,0,0,0.3)}
.nav-container{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;align-items:center;height:70px;gap:24px}
.nav-logo{font-size:22px;font-weight:800;color:#fff;letter-spacing:-0.5px;white-space:nowrap}
.logo-accent{color:var(--accent)}
.nav-links{display:flex;gap:24px;flex:1}
.nav-links a{color:var(--text-muted);font-size:14px;font-weight:500;transition:color var(--transition)}
.nav-links a:hover,.nav-links a.active{color:#fff}
.nav-right{display:flex;align-items:center;gap:12px}
.nav-cta{padding:8px 20px !important;font-size:13px !important}
.lang-selector{display:flex;gap:4px}
.lang-btn{padding:4px 8px;font-size:12px;font-weight:700;color:var(--text-dim);border-radius:4px;transition:all var(--transition)}
.lang-btn:hover,.lang-btn.active{color:var(--accent);background:rgba(245,158,11,0.1)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:all var(--transition)}

/* --- Hero --- */
#hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-poster{position:absolute;inset:0;background-size:cover;background-position:center;z-index:1}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;opacity:0;transition:opacity 1.5s ease}
.hero-video.loaded{opacity:1}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(15,23,42,0.5) 0%,rgba(15,23,42,0.7) 50%,rgba(15,23,42,0.95) 100%);z-index:3}
.hero-content{position:relative;z-index:4;text-align:center;max-width:800px;padding:0 20px}
.hero-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:24px}
.badge{background:rgba(245,158,11,0.15);color:var(--accent);padding:6px 16px;border-radius:20px;font-size:13px;font-weight:600;border:1px solid rgba(245,158,11,0.3)}
.hero-content h1{font-size:clamp(32px,6vw,64px);font-weight:800;line-height:1.1;margin-bottom:20px;color:#fff;letter-spacing:-1px}
.hero-sub{font-size:clamp(16px,2.5vw,20px);color:var(--text-muted);max-width:600px;margin:0 auto 32px;line-height:1.6}
.hero-btns{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.hero-scroll{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:4;color:var(--text-dim);animation:bounce 2s infinite}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}

/* --- Sections --- */
.section{padding:80px 0}
.section-alt{background:var(--bg-alt)}
.section-header{text-align:center;max-width:700px;margin:0 auto 48px}
.section-header h2{font-size:clamp(28px,4vw,42px);font-weight:800;margin-bottom:12px;color:#fff}
.section-header p{color:var(--text-muted);font-size:17px}
.page-top{padding-top:120px}

/* --- Experience --- */
.exp-text{max-width:800px;margin:0 auto 48px;text-align:center}
.exp-text p{color:var(--text-muted);margin-bottom:16px;font-size:16px;line-height:1.8}
.exp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.exp-card{background:var(--bg-card);border-radius:var(--radius);padding:32px;text-align:center;border:1px solid rgba(255,255,255,0.05);transition:transform var(--transition),border-color var(--transition)}
.exp-card:hover{transform:translateY(-4px);border-color:rgba(245,158,11,0.3)}
.exp-icon{font-size:36px;margin-bottom:16px}
.exp-card h3{font-size:18px;margin-bottom:8px;color:#fff}
.exp-card p{color:var(--text-muted);font-size:14px;line-height:1.6}

/* --- Tours --- */
.tours-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:28px}
.tour-card{background:var(--bg-card);border-radius:var(--radius);overflow:hidden;border:1px solid rgba(255,255,255,0.05);transition:transform var(--transition),border-color var(--transition)}
.tour-card:hover{transform:translateY(-4px);border-color:rgba(245,158,11,0.3)}
.tour-img{height:220px;background-size:cover;background-position:center;position:relative}
.tour-duration{position:absolute;top:12px;right:12px;background:rgba(15,23,42,0.85);color:var(--accent);padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600}
.tour-body{padding:24px}
.tour-body h3{font-size:20px;margin-bottom:10px;color:#fff}
.tour-body>p{color:var(--text-muted);font-size:14px;margin-bottom:16px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tour-meta{margin-bottom:16px}
.tour-meeting{font-size:13px;color:var(--text-dim);line-height:1.5}
.tour-meeting strong{color:var(--text-muted)}
.tour-actions{display:flex;gap:10px;flex-wrap:wrap}

/* --- Route --- */
.route-block{margin-bottom:40px;padding:32px;background:var(--bg-card);border-radius:var(--radius);border:1px solid rgba(255,255,255,0.05)}
.route-block h3{font-size:22px;color:#fff;margin-bottom:20px}
.route-stops{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:20px}
.route-stop{display:flex;align-items:center;gap:12px;padding:10px 14px;background:rgba(255,255,255,0.03);border-radius:var(--radius-sm)}
.stop-number{width:28px;height:28px;background:var(--accent);color:#0f172a;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.stop-name{font-size:14px;color:var(--text)}
.route-endpoints{font-size:13px;color:var(--text-muted);padding-top:12px;border-top:1px solid rgba(255,255,255,0.05)}
.route-endpoints div{margin-bottom:4px}

/* --- Booking / Calendar --- */
.booking-wrapper{display:grid;grid-template-columns:380px 1fr;gap:32px;align-items:start}
.calendar-container{background:var(--bg-card);border-radius:var(--radius);padding:24px;border:1px solid rgba(255,255,255,0.05)}
.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.cal-month-label{font-size:18px;font-weight:700;color:#fff}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal-day-header{font-size:12px;color:var(--text-dim);padding:8px 0;font-weight:600}
.cal-day{padding:10px 0;border-radius:var(--radius-sm);font-size:14px;color:var(--text-muted);cursor:default;transition:all var(--transition)}
.cal-day.available{color:var(--text);background:rgba(245,158,11,0.1);cursor:pointer;font-weight:600}
.cal-day.available:hover{background:rgba(245,158,11,0.25);color:var(--accent)}
.cal-day.selected{background:var(--accent);color:#0f172a;font-weight:700}
.cal-day.past{opacity:0.3}
.cal-day.today{border:1px solid var(--accent)}
.slots-container{min-height:300px}
.slots-placeholder{color:var(--text-dim);text-align:center;padding:60px 0;font-size:16px}
.slots-group{margin-bottom:28px}
.slots-group h3{font-size:18px;color:#fff;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,0.08)}
.slots-list{display:flex;flex-wrap:wrap;gap:10px}
.slot-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;border:2px solid;cursor:pointer;transition:all var(--transition);background:transparent}
.slot-btn:hover:not(.locked){transform:translateY(-1px);filter:brightness(1.15)}
.slot-btn.locked{opacity:0.4;cursor:not-allowed;border-style:dashed}
.slot-btn .slot-people{font-size:11px;opacity:0.7;font-weight:400}

/* --- Modal --- */
.modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}
.modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(4px)}
.modal-content{position:relative;background:var(--bg-card);border-radius:var(--radius);padding:36px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;border:1px solid rgba(255,255,255,0.08)}
.modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-muted);font-size:28px;cursor:pointer;line-height:1}
.modal-close:hover{color:#fff}
.modal-content h2{font-size:22px;color:#fff;margin-bottom:20px}

/* --- Forms --- */
.booking-summary{background:var(--bg-alt);border-radius:var(--radius-sm);padding:16px;margin-bottom:24px;font-size:14px;line-height:1.8}
.booking-summary strong{color:var(--accent)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:13px;font-weight:600;color:var(--text-muted)}
.form-group input,.form-group textarea,.form-group select{background:var(--bg-dark);border:1px solid rgba(255,255,255,0.1);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text);font-size:15px;font-family:var(--font);transition:border-color var(--transition)}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}
.form-error{font-size:12px;color:var(--red);min-height:16px}
.form-actions{display:flex;gap:12px;margin-top:24px}
.form-actions .btn-primary{flex:1}

/* --- Success --- */
.booking-success{text-align:center;padding:20px 0}
.success-icon{width:64px;height:64px;background:var(--green);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;margin:0 auto 16px}
.booking-success h3{font-size:22px;color:#fff;margin-bottom:12px}
.booking-success p{color:var(--text-muted);margin-bottom:8px}

/* --- Alerts --- */
.alert{padding:16px 20px;border-radius:var(--radius-sm);margin-bottom:20px;font-size:14px}
.alert-success{background:rgba(22,163,74,0.15);color:#4ade80;border:1px solid rgba(22,163,74,0.3)}
.alert-error{background:rgba(220,38,38,0.15);color:#f87171;border:1px solid rgba(220,38,38,0.3)}

/* --- Reviews --- */
.reviews-overview{display:flex;justify-content:center;margin-bottom:40px}
.reviews-rating-big{text-align:center}
.rating-number{font-size:56px;font-weight:800;color:var(--accent);line-height:1}
.rating-stars{font-size:32px;color:var(--accent);margin:8px 0}
.rating-count{color:var(--text-muted);font-size:15px}
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}
.review-card{background:var(--bg-card);border-radius:var(--radius);padding:24px;border:1px solid rgba(255,255,255,0.05)}
.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.review-stars{color:var(--accent);font-size:16px}
.review-date{color:var(--text-dim);font-size:13px}
.review-text{color:var(--text-muted);font-size:14px;line-height:1.7;margin-bottom:12px;font-style:italic}
.review-author{color:var(--text);font-size:14px;font-weight:600}

/* --- FAQ --- */
.faq-list{max-width:800px;margin:0 auto}
.faq-item{background:var(--bg-card);border-radius:var(--radius-sm);margin-bottom:10px;border:1px solid rgba(255,255,255,0.05);overflow:hidden}
.faq-item summary{padding:18px 24px;cursor:pointer;font-weight:600;color:var(--text);font-size:15px;transition:color var(--transition);list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq-item summary:hover{color:var(--accent)}
.faq-item summary::after{content:'+';font-size:20px;color:var(--text-dim);flex-shrink:0;margin-left:16px}
.faq-item[open] summary::after{content:'−'}
.faq-answer{padding:0 24px 18px;color:var(--text-muted);font-size:14px;line-height:1.8}

/* --- CTA --- */
.cta-section{text-align:center;background:linear-gradient(135deg,rgba(245,158,11,0.1),rgba(37,99,235,0.1))}
.cta-section h2{font-size:clamp(28px,4vw,40px);color:#fff;margin-bottom:12px}
.cta-section p{color:var(--text-muted);font-size:17px;margin-bottom:28px;max-width:600px;margin-left:auto;margin-right:auto}

/* --- Contact --- */
.contact-grid{display:grid;grid-template-columns:2fr 1fr;gap:32px}
.contact-form-wrap{background:var(--bg-card);border-radius:var(--radius);padding:32px;border:1px solid rgba(255,255,255,0.05)}
.contact-form-wrap .form-group{margin-bottom:16px}
.contact-info{display:flex;flex-direction:column;gap:20px}
.contact-map-card{background:var(--bg-card);border-radius:var(--radius);padding:32px;text-align:center;border:1px solid rgba(255,255,255,0.05)}
.contact-map-card h3{color:#fff;margin-bottom:16px;font-size:18px}

/* --- Account --- */
.account-table-wrap{overflow-x:auto}
.account-table{width:100%;border-collapse:collapse;font-size:14px}
.account-table th{background:var(--bg-alt);color:var(--text-muted);padding:12px 16px;text-align:left;font-weight:600;font-size:13px;white-space:nowrap}
.account-table td{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,0.05)}
.account-table tr:hover td{background:rgba(255,255,255,0.02)}
.lang-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.status-confirmed{color:var(--green);font-weight:600}
.status-cancelled{color:var(--red);font-weight:600}

/* --- Footer --- */
.footer{background:var(--bg-card);border-top:1px solid rgba(255,255,255,0.05);padding:40px 0 20px}
.footer-content{display:flex;justify-content:space-between;align-items:start;gap:32px;margin-bottom:32px}
.footer-brand p{color:var(--text-muted);font-size:13px;margin-top:12px;max-width:300px;line-height:1.6}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links a{color:var(--text-muted);font-size:14px}
.footer-links a:hover{color:var(--accent)}
.footer-bottom{text-align:center;padding-top:20px;border-top:1px solid rgba(255,255,255,0.05);color:var(--text-dim);font-size:13px}

/* --- Responsive --- */
@media(max-width:900px){
  .booking-wrapper{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .tours-grid{grid-template-columns:1fr}
}
@media(max-width:768px){
  .nav-toggle{display:flex}
  .nav-links{position:fixed;top:70px;left:0;right:0;background:rgba(15,23,42,0.98);flex-direction:column;padding:20px;gap:16px;transform:translateY(-120%);transition:transform var(--transition);backdrop-filter:blur(12px)}
  .nav-links.open{transform:translateY(0)}
  .nav-links a{font-size:16px}
  .form-row{grid-template-columns:1fr}
  .hero-content h1{font-size:32px}
  .footer-content{flex-direction:column}
  .reviews-grid{grid-template-columns:1fr}
  .exp-grid{grid-template-columns:1fr}
  .route-stops{grid-template-columns:1fr}
  .slots-list{flex-direction:column}
}

/* ============================================================
   BFT BRAND FONT + LOGO PATCH
   ============================================================ */

@font-face {
  font-family: 'BFTBrand';
  src: url('/assets/fonts/brand.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --bft-brand-font: 'BFTBrand', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bft-brand-orange: #f59e0b;
}

/* Shared logo */
.bft-logo-link,
.nav-logo.bft-logo-link {
  display: inline-flex !important;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 3px;
  text-decoration: none !important;
  line-height: 1;
  min-width: max-content;
}

.bft-logo {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
}

.bft-logo-main {
  font-family: var(--bft-brand-font);
  font-weight: 400;
  font-size: clamp(1.55rem, 2.1vw, 2.25rem);
  letter-spacing: 0.01em;
  line-height: 0.92;
  white-space: nowrap;
  color: #ffffff;
  text-shadow: 0 2px 18px rgba(0,0,0,.18);
}

.bft-logo-accent {
  color: var(--bft-brand-orange);
}

.bft-logo-sub {
  margin-top: 4px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(.58rem, .62vw, .72rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: .085em;
  text-transform: uppercase;
  color: rgba(214, 226, 245, .78);
  white-space: nowrap;
}

/* Footer logo a little calmer */
footer .bft-logo-main,
.site-footer .bft-logo-main {
  font-size: clamp(1.45rem, 1.9vw, 2.05rem);
}

footer .bft-logo-sub,
.site-footer .bft-logo-sub {
  color: rgba(214, 226, 245, .68);
}

/* Use brand font for main titles, not body text */
#hero h1,
.hero-content h1,
.section-header h2,
.tour-body h3,
.route-block h3,
.slots-group h3,
.modal-content h2,
.booking-success h3,
.faq-list summary,
.faq-item summary,
.cta-section h2,
.contact-card h1,
.contact-page h1,
.login-card h1,
.account-header h1,
.account-card h2,
.page-title,
.page-hero h1 {
  font-family: var(--bft-brand-font) !important;
  font-weight: 400 !important;
  letter-spacing: .015em;
  text-wrap: balance;
}

/* Keep hero strong and readable */
#hero h1,
.hero-content h1 {
  line-height: .98;
}

/* Old logo-accent support */
.logo-accent {
  color: var(--bft-brand-orange);
}

/* Mobile protection */
@media (max-width: 980px) {
  .bft-logo-main {
    font-size: 1.55rem;
  }

  .bft-logo-sub {
    font-size: .56rem;
    letter-spacing: .055em;
  }
}

@media (max-width: 640px) {
  .nav-container .bft-logo-sub {
    display: none;
  }

  .bft-logo-main {
    font-size: 1.42rem;
  }
}

/* BFT REVIEWS SOURCE TABS */
.reviews-source-tabs{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 0 28px}
.reviews-source-tab{appearance:none;border:1px solid var(--border,rgba(255,255,255,.15));background:var(--bg-card);color:var(--text);border-radius:999px;padding:10px 18px;font:inherit;font-weight:700;cursor:pointer;transition:.2s ease}
.reviews-source-tab:hover,.reviews-source-tab.active{transform:translateY(-1px);border-color:var(--text-muted)}
.reviews-source-panel[hidden]{display:none!important}
.reviews-empty{text-align:center;color:var(--text-muted);padding:24px 0}

/* ============================================================
   BFT SVG LOGO ICON
   León junto al logotipo en header y footer
   ============================================================ */

.bft-logo-link,
.nav-logo.bft-logo-link {
    flex-direction: row;
    align-items: center;
    gap: 10px;
}

.bft-logo-link::before {
    content: "";
    display: block;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    background: url('/assets/img/logo/logo.svg') center center / contain no-repeat;
}

/* Logo un poco más grande en el footer */
.footer .bft-logo-link::before,
footer .bft-logo-link::before {
    width: 54px;
    height: 54px;
    flex-basis: 54px;
}

@media (max-width: 640px) {
    .nav-container .bft-logo-link::before {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }

    .bft-logo-link,
    .nav-logo.bft-logo-link {
        gap: 7px;
    }
}


/* BFT-HOME-BLOG-LINK-START */
@media (min-width:901px) and (max-width:1250px){
  #main-header .nav-blog-link{display:none}
}
/* BFT-HOME-BLOG-LINK-END */


/* BFT-HOME-MOBILE-HEADER-FIT-START */
@media(max-width:620px){
  html,body{width:100%;max-width:100%;min-width:0;overflow-x:hidden}
  #main-header,#main-header *{box-sizing:border-box}
  #main-header{width:100%;max-width:100%;overflow:visible}
  #main-header .nav-container{
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:64px !important;
    padding:7px 10px 8px !important;
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:5px 8px !important;
  }
  #main-header .bft-logo-link,
  #main-header .nav-logo.bft-logo-link{
    order:1;
    flex:1 1 0 !important;
    width:auto !important;
    min-width:0 !important;
    max-width:calc(100% - 42px) !important;
    gap:6px !important;
    overflow:hidden !important;
  }
  #main-header .bft-logo-link::before,
  #main-header .nav-logo.bft-logo-link::before{
    width:34px !important;
    height:34px !important;
    flex:0 0 34px !important;
  }
  #main-header .bft-logo{min-width:0 !important;max-width:calc(100% - 40px) !important;overflow:hidden}
  #main-header .bft-logo-main{
    max-width:100% !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    font-size:clamp(.92rem,5vw,1.12rem) !important;
    line-height:.92 !important;
  }
  #main-header .bft-logo-sub{
    display:block !important;
    max-width:100% !important;
    margin-top:2px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:.43rem !important;
    letter-spacing:.055em !important;
  }
  #main-header .nav-toggle{
    order:2;
    display:flex !important;
    flex:0 0 34px !important;
    width:34px !important;
    height:34px !important;
    margin:0 !important;
    padding:6px 5px !important;
    align-items:center !important;
    justify-content:center !important;
  }
  #main-header .nav-toggle span{width:22px !important;flex:none !important}
  #main-header .nav-right{
    order:3;
    width:100% !important;
    min-width:0 !important;
    margin:1px 0 0 !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:6px !important;
  }
  #main-header .lang-selector{display:flex !important;gap:2px !important;min-width:0 !important}
  #main-header .lang-btn{padding:4px 6px !important;font-size:10px !important}
  #main-header .nav-cta{
    display:inline-flex !important;
    width:auto !important;
    max-width:145px !important;
    min-height:28px !important;
    padding:6px 9px !important;
    justify-content:center !important;
    align-items:center !important;
    overflow:hidden !important;
    font-size:10px !important;
    line-height:1.1 !important;
    text-align:center !important;
    white-space:normal !important;
  }
  #main-header .nav-links{
    max-width:100vw !important;
    overflow-x:hidden !important;
  }
}
/* BFT-HOME-MOBILE-HEADER-FIT-END */

/* BFT-HOME-MOBILE-TOP-GAP-FIX */
@media(max-width:620px){
  html,body{
    margin:0 !important;
    padding:0 !important;
  }

  #main-header{
    top:0 !important;
    margin:0 !important;
    border-top:0 !important;
    transform:none !important;
  }

  #main-header::before{
    display:none !important;
    content:none !important;
  }

  #hero{
    margin-top:0 !important;
    border-top:0 !important;
  }
}

/* BFT-HOME-MOBILE-MENU-HIDDEN-FIX */
@media(max-width:768px){
  #main-header .nav-links{
    position:absolute !important;
    top:100% !important;
    bottom:auto !important;
    left:0 !important;
    right:0 !important;
    transform:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  #main-header .nav-links.open{
    transform:none !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
}

/* BFT-HOME-MOBILE-FULLSCREEN-MENU */
@media(max-width:768px){
  #main-header .nav-links{
    position:absolute !important;
    z-index:1001 !important;
    top:100% !important;
    left:0 !important;
    right:0 !important;
    width:100vw !important;
    height:calc(100dvh - 100%) !important;
    min-height:calc(100vh - 100%) !important;
    margin:0 !important;
    padding:30px 24px 45px !important;
    background:rgba(7,12,22,.985) !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:18px !important;
    overflow-y:auto !important;
    transform:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  #main-header .nav-links.open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  #main-header .nav-links li{
    width:100% !important;
    margin:0 !important;
    text-align:center !important;
  }

  #main-header .nav-links a{
    display:block !important;
    width:100% !important;
    padding:7px 10px !important;
    color:#fff !important;
    font-family:var(--bft-brand-font),var(--font) !important;
    font-size:clamp(25px,8vw,34px) !important;
    font-weight:400 !important;
    line-height:1.05 !important;
    letter-spacing:.02em !important;
    text-align:center !important;
  }

  #main-header .nav-links a:hover,
  #main-header .nav-links a:focus,
  #main-header .nav-links a.active{
    color:#fff !important;
    background:rgba(255,255,255,.09) !important;
  }

  #main-header .nav-toggle{
    position:relative !important;
    z-index:1002 !important;
  }
}

/* BFT-HOME-DYNAMIC-REDESIGN-START */
:root{
  --bft-red:#c82638;
  --bft-red-dark:#a91e2e;
  --bft-ink:#080808;
  --bft-paper:#f4f1ec;
  --bft-white:#fff;
}

/* El negro sigue siendo la identidad. El rojo solo orienta la mirada. */
#experience,#route,#reviews,#faq,#cta{background:var(--bft-ink);color:#fff}
#tours,#booking{background:var(--bft-paper);color:var(--bft-ink)}
#tours .section-header h2,#booking .section-header h2{color:var(--bft-ink)!important}
#tours .section-header p,#booking .section-header p{color:#5e5e5e!important}

.section-header h2{position:relative;display:inline-block}
.section-header h2::after{
  content:"";display:block;width:54px;height:4px;margin:14px auto 0;
  border-radius:99px;background:var(--bft-red)
}

#tours .tour-card{
  background:#fff!important;color:#111!important;border:1px solid #e5e1db!important;
  box-shadow:0 16px 38px rgba(0,0,0,.08)!important
}
#tours .tour-card:hover{border-color:rgba(200,38,56,.45)!important;box-shadow:0 20px 48px rgba(0,0,0,.13)!important}
#tours .tour-body h3,#tours .tour-body p,#tours .tour-meta{color:#111!important}
#tours .tour-body p,#tours .tour-meta{color:#626262!important}
#tours .tour-duration{background:rgba(8,8,8,.88)!important;color:#fff!important}

#booking .calendar-container,#booking .slots-container{
  background:#fff!important;color:#111!important;border:1px solid #e4dfd8!important;
  box-shadow:0 16px 38px rgba(0,0,0,.07)!important
}
#booking .cal-month-label,#booking .slots-container h3,#booking .slots-container h4{color:#111!important}
#booking .calendar-grid,#booking .calendar-grid *{color:#343434}
#booking .cal-day.available{box-shadow:inset 0 0 0 1px rgba(200,38,56,.35)}
#booking .cal-day.selected,#booking .cal-day:hover{background:var(--bft-red)!important;color:#fff!important}

.btn-primary{background:#080808!important;border-color:#080808!important;color:#fff!important}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--bft-red)!important;border-color:var(--bft-red)!important;color:#fff!important}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--bft-red)!important;outline-offset:3px}
.badge{border-color:rgba(200,38,56,.32)!important}
.badge::first-letter{color:var(--bft-red)}

/* Hero de escritorio: división orgánica sólida, sin degradado blanco. */
@media (min-width:981px){
  #hero{background:var(--bft-paper)!important;isolation:isolate}
  #hero .hero-poster,#hero .hero-video{
    left:43%!important;right:0!important;width:57%!important;height:108%!important;
    object-fit:cover!important;object-position:center!important;
    transform:translate3d(0,var(--bft-hero-shift,0),0) scale(1.035)!important;
    will-change:transform
  }
  #hero::before{
    content:""!important;display:block!important;position:absolute!important;z-index:3!important;
    inset:0 auto 0 0!important;width:58%!important;height:100%!important;
    background:var(--bft-paper)!important;
    clip-path:polygon(0 0,88% 0,94% 10%,98% 23%,96% 35%,89% 48%,86% 60%,89% 74%,96% 88%,93% 100%,0 100%)!important;
    pointer-events:none!important
  }
  #hero::after{content:none!important}
  #hero .hero-overlay{
    z-index:2!important;background:linear-gradient(90deg,transparent 43%,rgba(0,0,0,.04) 68%,rgba(0,0,0,.18) 100%)!important
  }
  #hero .hero-content{z-index:4!important;width:46%!important;max-width:760px!important;margin:0 auto 0 7%!important;text-align:left!important}
  #hero .hero-badges,#hero .hero-btns{justify-content:flex-start!important}
  #hero .hero-content h1{color:#080808!important}
  #hero .hero-sub{color:#343434!important;margin-left:0!important}
  #hero .badge{background:rgba(255,255,255,.76)!important;color:#111!important;border-color:#c9c5bf!important}
  #hero .hero-scroll{color:#111!important}
}

/* Pequeños detalles editoriales rojos, nunca grandes masas de color. */
.tour-card .btn-link,.review-card a,.footer a:hover{color:var(--bft-red)!important}
.route-number,.review-rating,.rating-stars{color:var(--bft-red)!important}

/* Aparición progresiva y ligera; solo se activa cuando JavaScript está listo. */
.bft-motion-ready .bft-reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .72s ease,transform .72s cubic-bezier(.2,.72,.2,1);transition-delay:var(--bft-delay,0ms)}
.bft-motion-ready .bft-reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.bft-motion-ready .tour-card.bft-reveal:hover,.bft-motion-ready .exp-card.bft-reveal:hover{transform:translate3d(0,-5px,0)}

@media (max-width:980px){
  #hero::before,#hero::after{content:none!important;display:none!important}
  #hero .hero-overlay{background:linear-gradient(to bottom,rgba(0,0,0,.38),rgba(0,0,0,.78))!important}
  #hero .hero-content h1{color:#fff!important}
}

@media (prefers-reduced-motion:reduce){
  .bft-reveal,.bft-motion-ready .bft-reveal{opacity:1!important;transform:none!important;transition:none!important}
  #hero .hero-poster,#hero .hero-video{transform:none!important}
}
/* BFT-HOME-DYNAMIC-REDESIGN-END */
