/* =========================================================
   SmartVisitUK.com — main stylesheet (loaded async after critical.css)
   ========================================================= */

:root{
  --accent-1:#864056;
  --accent-2:#0033A0;
  --link-color:#864056;
  --link-hover:#0033A0;
  --btn-bg:#864056;
  --btn-text:#ffffff;
  --topmenu-bg:#864056;
  --topmenu-link:#ffffff;
  --footer-bg:#864056;
  --footer-text:#ffffff;
  --footer-link:#ffffff;
  --accordion-bg:#F0F0F0;
  --accordion-text:#864056;
  --card-header-bg:#0033A0;
  --icon-color:#864056;
  --section-alt-bg:#f7f5f3;
  --section-blue-bg:#eef1fa;
}

/* ---------- Typography ---------- */
h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.01em}
h1{font-weight:800}
h2{font-weight:800;color:var(--accent-1)}
.fw-700{font-weight:700}
p{margin-bottom:1rem}
.lead{font-weight:500}
.section-eyebrow{color:var(--accent-1);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;margin-bottom:.5rem;display:inline-block}
.section-title{font-weight:800;margin-bottom:1rem}
.section-subtitle{color:#5a5a5a;font-weight:400;max-width:760px}

/* ---------- Links & icons ---------- */
a{transition:color .18s ease}
i.fa-solid,i.fa-regular,i.fa-brands{color:var(--icon-color)}

/* ---------- Buttons ---------- */
.btn{font-weight:700;border-radius:6px;padding:.7rem 1.6rem;letter-spacing:.01em;transition:all .2s ease}
.btn-primary{background-color:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-text)}
.btn-primary:hover,.btn-primary:focus{background-color:var(--accent-2);border-color:var(--accent-2);color:#fff;transform:translateY(-2px)}
.btn-outline-primary{color:var(--accent-1);border:2px solid var(--accent-1);background:transparent}
.btn-outline-primary:hover{background-color:var(--accent-1);border-color:var(--accent-1);color:#fff;transform:translateY(-2px)}
.btn-light-outline{color:#fff;border:2px solid #fff;background:transparent}
.btn-light-outline:hover{background:#fff;color:var(--accent-1)}
.btn-sm{padding:.45rem 1rem;font-size:.85rem}
.btn-tile{background-color:#883F54;border-color:#883F54;color:#fff}
.btn-tile:hover,.btn-tile:focus{background-color:var(--accent-2);border-color:var(--accent-2);color:#fff;transform:translateY(-3px) scale(1.03);box-shadow:0 10px 20px rgba(0,0,0,.22)}
.btn i.fa-solid,.btn i.fa-regular,.btn i.fa-brands{color:inherit}
.text-primary{color:var(--accent-1)!important}
.fw-800{font-weight:800}
.fw-900{font-weight:900}

/* ---------- Top bar & navigation ---------- */
.site-topbar{background:#ffffff}
.site-navbar{background:var(--topmenu-bg)}
.site-navbar .nav-link{position:relative;transition:color .2s ease,background-color .2s ease,transform .2s ease;border-radius:6px}
.site-navbar .nav-link.active,.site-navbar .nav-link:hover{color:#fff!important;background-color:rgba(255,255,255,.22);transform:translateY(-2px)}
.site-navbar .nav-link::after{content:"";position:absolute;left:16px;right:16px;bottom:6px;height:2px;background:#fff;border-radius:2px;transform:scaleX(0);transform-origin:center;transition:transform .25s ease}
.site-navbar .nav-link:hover::after,.site-navbar .nav-link.active::after{transform:scaleX(1)}
.site-navbar .navbar-nav{gap:.15rem}
.site-navbar .dropdown-toggle::after{transition:transform .25s ease}
.site-navbar .dropdown-toggle[aria-expanded="true"]::after{transform:rotate(180deg)}

.dropdown-menu{border:none;border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:.6rem;margin-top:0;opacity:0;transform:translateY(-10px);transition:opacity .22s ease,transform .22s ease;display:block;visibility:hidden;pointer-events:none}
.dropdown-menu.show{opacity:1;transform:translateY(0);visibility:visible;pointer-events:auto}
.dropdown-item{color:#2b2b2b;font-weight:600;border-radius:6px;padding:.55rem .8rem;transition:background-color .18s ease,color .18s ease,padding-left .18s ease}
.dropdown-item:hover,.dropdown-item:focus{background-color:var(--accordion-bg);color:var(--accent-1);padding-left:1.05rem}
.dropdown-menu-mega{min-width:560px}
.mega-columns{display:grid;grid-template-columns:1fr 1fr;gap:.15rem .5rem}
.mega-viewall{grid-column:1/-1;margin-top:.4rem;border-top:1px solid #eee;padding-top:.7rem;color:var(--accent-2);font-weight:700}
@media (max-width:991.98px){
  .dropdown-menu-mega{min-width:0}
  .mega-columns{grid-template-columns:1fr}
  .dropdown-menu{box-shadow:none;background:rgba(255,255,255,.06)}
  .dropdown-item{color:#fff}
  .dropdown-item:hover{background:rgba(255,255,255,.15);color:#fff}
  .mega-viewall{border-top-color:rgba(255,255,255,.25)}
  .site-navbar .navbar-collapse{padding-bottom:.75rem}
}

/* ---------- Breadcrumbs ---------- */
.breadcrumb-nav{background:var(--section-alt-bg);padding:.7rem 0;font-size:.9rem}
.breadcrumb-item+.breadcrumb-item::before{content:"\f105";font-family:"Font Awesome 6 Free";font-weight:900;color:#aaa}
.breadcrumb-item a{color:var(--accent-1);font-weight:600}
.breadcrumb-item.active{color:#777}

/* ---------- Hero ---------- */
.hero-content{width:100%}
.hero .btn{margin-top:.5rem}
.page-hero{position:relative;min-height:260px;display:flex;align-items:center;color:#fff;background:#0b1e46 center/cover no-repeat}
.page-hero::after{content:"";position:absolute;inset:0;background:rgba(10,20,40,.5)}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{font-weight:800;text-shadow:0 2px 10px rgba(0,0,0,.5)}

/* ---------- Parallax ---------- */
.parallax-section{position:relative;background:#0b1e46 center/cover no-repeat;background-attachment:fixed;padding:5rem 0;color:#fff}
.parallax-section::after{content:"";position:absolute;inset:0;background:rgba(9,15,35,.55)}
.parallax-section .container{position:relative;z-index:2;text-align:center}
.parallax-section h2{font-weight:800;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}
@media (max-width:767.98px){.parallax-section{background-attachment:scroll}}

/* ---------- Section layout helpers ---------- */
.section{padding:4.5rem 0}
.section-sm{padding:3rem 0}
.bg-alt{background:var(--section-alt-bg)}
.bg-blue-tint{background:var(--section-blue-bg)}

.split-section .split-media img{border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.14);transition:transform .5s ease}
.split-section .split-media:hover img{transform:scale(1.04)}
.split-section .split-text{padding:1rem 0}

/* ---------- Generic content-image hover ---------- */
article img.rounded,.section-sm img.rounded{transition:transform .4s ease,box-shadow .4s ease}
article img.rounded:hover,.section-sm img.rounded:hover{transform:scale(1.02);box-shadow:0 16px 34px rgba(0,0,0,.18)}

/* ---------- Tiles / cards ---------- */
.tile-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.08);transition:transform .25s ease,box-shadow .25s ease;height:100%;display:flex;flex-direction:column;border:1px solid #eee}
.tile-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.14)}
.tile-card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.tile-card-body{padding:1.25rem;display:flex;flex-direction:column;flex:1}
.tile-card-title{font-weight:700;margin-bottom:.4rem}
.tile-card-price{font-weight:800;color:var(--accent-1);font-size:1.15rem;margin:.5rem 0}
.tile-card-meta{font-size:.85rem;color:#777;margin-bottom:.5rem}
.tile-card .btn{margin-top:auto}

.benefit-tile{text-align:center;padding:2rem 1.25rem}
.benefit-tile .icon-circle{width:72px;height:72px;border-radius:50%;background:var(--accordion-bg);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:1.6rem;color:var(--accent-1)}
.benefit-tile h3{font-size:1.05rem;font-weight:700}

.place-tile{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.1)}
.place-tile img{aspect-ratio:5/4;object-fit:cover;width:100%;transition:transform .4s ease}
.place-tile:hover img{transform:scale(1.06)}
.place-tile-caption{position:absolute;left:0;right:0;bottom:0;padding:1rem;background:linear-gradient(0deg,rgba(0,0,0,.72),transparent);color:#fff}
.place-tile-caption h3{font-size:1.05rem;font-weight:700;margin:0}
.place-tile-caption span{font-size:.85rem;opacity:.9}

/* ---------- Accordion ---------- */
.accordion-button{background-color:var(--accordion-bg);color:var(--accordion-text);font-weight:700;box-shadow:none}
.accordion-button:not(.collapsed){background-color:var(--accordion-bg);color:var(--accordion-text);box-shadow:inset 0 -1px 0 rgba(0,0,0,.08)}
.accordion-button:focus{box-shadow:0 0 0 .2rem rgba(134,64,86,.2)}
.accordion-button::after{filter:none}
.accordion-item{border:1px solid #e6e6e6;margin-bottom:.6rem;border-radius:8px!important;overflow:hidden}
.accordion-body{background:#fff}

/* ---------- Cards (Bootstrap card component) ---------- */
.card-header{background-color:var(--card-header-bg);color:#fff;font-weight:700;border-bottom:none}

/* ---------- Tables ---------- */
.table-uk thead th{background:var(--accent-2);color:#fff;font-weight:700;border:none}
.table-uk td,.table-uk th{vertical-align:middle;padding:.85rem 1rem}
.table-uk tbody tr:nth-child(odd){background:var(--section-alt-bg)}

/* ---------- Tour subpage ---------- */
.tour-price-box{background:#fff;border:1px solid #eee;border-radius:12px;padding:1.5rem;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.tour-price-box .price{font-size:2rem;font-weight:800;color:var(--accent-1)}
.itinerary-day{border-left:3px solid var(--accent-1);padding:0 0 1.5rem 1.25rem;position:relative}
.itinerary-day::before{content:"";position:absolute;left:-8px;top:2px;width:13px;height:13px;border-radius:50%;background:var(--accent-1)}
.itinerary-day h3{font-size:1.05rem;font-weight:700;color:var(--accent-1)}
.includes-list li,.excludes-list li{padding:.35rem 0}
.includes-list i{color:#1c8a4a;margin-right:.5rem}
.excludes-list i{color:#c23b3b;margin-right:.5rem}

.sticky-book-cta{position:fixed;left:0;right:0;bottom:-100px;background:var(--accent-1);color:#fff;padding:.8rem 0;z-index:1030;transition:bottom .3s ease;box-shadow:0 -6px 20px rgba(0,0,0,.15)}
.sticky-book-cta.show{bottom:0}
.sticky-book-cta .btn{white-space:nowrap}

/* ---------- Gallery ---------- */
.gallery-grid img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .3s ease,box-shadow .3s ease}
.gallery-item{overflow:hidden;border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.08);margin-bottom:1.5rem}
.gallery-item:hover img{transform:scale(1.08)}

/* ---------- FAQ image side ---------- */

/* ---------- Footer ---------- */
.footer{margin-top:0!important;background:var(--footer-bg);color:var(--footer-text);padding:3.5rem 0 0}
.footer a{color:var(--footer-link)}
.footer a:hover{color:#ffffffcc;text-decoration:underline}
.footer-heading{color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem;margin-bottom:1rem}
.footer-contact li{margin-bottom:.6rem}
.footer-contact i{color:#fff;width:1.3rem}
.footer-menu li{margin-bottom:.5rem}
.footer-menu a{font-weight:500}
.footer-bottom{border-top:1px solid rgba(255,255,255,.2);margin-top:2.5rem;padding:1.25rem 0;text-align:center}
.footer-logo-link img{background:#fff;padding:.4rem .6rem;border-radius:6px}

/* ---------- Back to top ---------- */
.back-to-top{position:fixed;right:1.25rem;bottom:1.25rem;width:46px;height:46px;border-radius:50%;background:var(--accent-1);color:#fff;border:none;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .25s ease;z-index:1040;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--accent-2)}
.back-to-top i{color:#fff}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.reveal.in-view{opacity:1;transform:none}

/* ---------- Content section headings (icon + divider) ---------- */
.content-heading{display:flex;align-items:center;gap:.75rem;margin-top:2.75rem;margin-bottom:1.25rem;padding-top:1.75rem;border-top:1px solid #ececec}
.content-heading:first-of-type{border-top:none;padding-top:0;margin-top:1.5rem}
.content-heading .heading-icon{width:40px;height:40px;min-width:40px;border-radius:50%;background:var(--accordion-bg);display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;color:var(--accent-1)}

/* ---------- Mini info cards (e.g. season-by-season packing) ---------- */
.mini-card{background:#fff;border:1px solid #eee;border-radius:10px;padding:1.25rem;height:100%;box-shadow:0 4px 14px rgba(0,0,0,.05);transition:transform .25s ease,box-shadow .25s ease}
.mini-card:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(0,0,0,.1)}
.mini-card-icon{width:44px;height:44px;border-radius:50%;background:var(--accordion-bg);color:var(--accent-1);display:flex;align-items:center;justify-content:center;margin-bottom:.75rem;font-size:1.1rem}
.mini-card h3,.mini-card h4{color:var(--accent-1)}
.mini-card .mini-card-range{font-weight:800;color:#2b2b2b}

/* ---------- Misc ---------- */
.badge-duration{background:var(--accent-2);color:#fff;font-weight:600;padding:.35rem .7rem;border-radius:20px;font-size:.78rem}
hr.divider{border-top:2px solid var(--accent-1);width:70px;opacity:1;margin:1rem 0 1.5rem}

@media (max-width:575.98px){
  .section{padding:3rem 0}
  .topbar-contact{font-size:.85rem;gap:.75rem}
}
