/* =============================================================================
   Pure Tours Child — Main Stylesheet
   Load order: parent styles → this file (specificity wins)
   ============================================================================= */

/* -----------------------------------------------------------------------------
   Design Tokens
   ----------------------------------------------------------------------------- */
:root {
    --primary:     #514224;
    --accent:      #C6A75D;
    --accent-hover: #A8893A;
    --white:        #F5F2EB;
    --off-white:    #ECEADE;
    --dark-overlay: #514224;
    /* ---- TITLES ---- */
  --color-title-primary:    #1F1F1F;   /* H1, H2 · sur fond clair */
  --color-title-secondary:  #514224;   /* H3, sous-titres · sur fond clair */
  --color-title-on-dark:    #F5F2EB;   /* H1, H2 · sur fond sombre */
  --color-title-accent:     #C6A75D;   /* H3, highlights · sur fond sombre */
    /* ---- TEXT ---- */
  --color-text-body:        #1F1F1F;               /* corps · fond clair */
  --color-text-muted:       rgba(81, 66, 36, 0.65); /* meta, descriptions · fond clair */
  --color-text-body-dark:   #F5F2EB;               /* corps · fond sombre */
  --color-text-muted-dark:  rgba(198, 167, 93, 0.6);/* meta, descriptions · fond sombre */
    
  /*--- BORDERS ---*/
  --border-subtle:          rgba(81, 66, 36, 0.12);  /* dividers discrets */
  --border-default:         rgba(81, 66, 36, 0.22);  /* cards, inputs, panels */
  --border-muted-gold:      rgba(198, 167, 93, 0.45);/* cards hover, sections */
  --border-accent:          #C6A75D;                 /* focus, CTA outline, featured */

  /* ---- SHADOWS · LIGHT ---- */
  --shadow-xs:              0 1px 3px rgba(31, 31, 31, 0.06);   /* badges, tags, inputs */
  --shadow-sm:              0 2px 8px rgba(31, 31, 31, 0.08);   /* cards au repos */
  --shadow-md:              0 4px 16px rgba(31, 31, 31, 0.10);  /* cards hover, modals */
  --shadow-gold:            0 2px 12px rgba(198, 167, 93, 0.18);/* CTA, card featured */
  --shadow-focus:           0 0 0 3px rgba(198, 167, 93, 0.25); /* focus ring */

    /* ---- SHADOWS · DARK ---- */
  --shadow-sm-dark:         0 2px 8px rgba(0, 0, 0, 0.30);     /* cards au repos */
  --shadow-md-dark:         0 4px 20px rgba(0, 0, 0, 0.45);    /* cards hover, modals */
  --shadow-gold-dark:       0 2px 16px rgba(198, 167, 93, 0.12);/* CTA, card featured */
 
  /* ---- BORDERS · DARK ---- */
  --border-subtle-dark:     rgba(245, 242, 235, 0.08); /* dividers discrets */
  --border-default-dark:    rgba(198, 167, 93, 0.20);  /* cards, inputs, panels */
  --border-muted-gold-dark: rgba(198, 167, 93, 0.45);  /* hover state */
  --border-accent-dark:     #C6A75D;                   /* focus, CTA outline */

    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body:    'Montserrat', sans-serif;
    --transition:   0.35s cubic-bezier(0.4, 0, 0.2, 1); 
}

/* -----------------------------------------------------------------------------
   Local Fonts — Cormorant Garamond
   ----------------------------------------------------------------------------- */
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('../fonts/CormorantGaramond-Light.woff2') format('woff2'),
         url('../fonts/CormorantGaramond-Light.woff')  format('woff');
    font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('../fonts/CormorantGaramond-Regular.woff2') format('woff2'),
         url('../fonts/CormorantGaramond-Regular.woff')  format('woff');
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('../fonts/CormorantGaramond-Italic.woff2') format('woff2'),
         url('../fonts/CormorantGaramond-Italic.woff')  format('woff');
    font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('../fonts/CormorantGaramond-Medium.woff2') format('woff2'),
         url('../fonts/CormorantGaramond-Medium.woff')  format('woff');
    font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('../fonts/CormorantGaramond-SemiBold.woff2') format('woff2'),
         url('../fonts/CormorantGaramond-SemiBold.woff')  format('woff');
    font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('../fonts/CormorantGaramond-Bold.woff2') format('woff2'),
         url('../fonts/CormorantGaramond-Bold.woff')  format('woff');
    font-weight: 700; font-style: normal; font-display: swap;
}

/* -----------------------------------------------------------------------------
   Local Fonts — Montserrat
   ----------------------------------------------------------------------------- */
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Light.woff2') format('woff2'),
         url('../fonts/Montserrat-Light.woff')  format('woff');
    font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Regular.woff2') format('woff2'),
         url('../fonts/Montserrat-Regular.woff')  format('woff');
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Italic.woff2') format('woff2'),
         url('../fonts/Montserrat-Italic.woff')  format('woff');
    font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Medium.woff2') format('woff2'),
         url('../fonts/Montserrat-Medium.woff')  format('woff');
    font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Bold.woff2') format('woff2'),
         url('../fonts/Montserrat-Bold.woff')  format('woff');
    font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-ExtraBold.woff2') format('woff2'),
         url('../fonts/Montserrat-ExtraBold.woff')  format('woff');
    font-weight: 800; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Black.woff2') format('woff2'),
         url('../fonts/Montserrat-Black.woff')  format('woff');
    font-weight: 900; font-style: normal; font-display: swap;
}

/* -----------------------------------------------------------------------------
   Base
   ----------------------------------------------------------------------------- */

   body{
    font-family: 'Montserrat' !important;
    font-weight: 400;
    font-style: normal;
    background-color: var(--white) !important;
    color: var(--color-text-body) !important;
    }
    

/* -----------------------------------------------------------------------------
   Typography
   ----------------------------------------------------------------------------- */
   h1, h2, h3, h4, h5, h6, .heading-text {
    font-family: 'Montserrat';
    font-weight: 700;
    font-style: normal;
}
.title__subtitle{
    font-family: var(--font-display) !important;
    color:var(--color-title-secondary);
    font-size: 1.5em;
}

.title__primary, .title-block-link__title, .title-block-link__description{
   font-family: 'Montserrat'; 
}

/* -----------------------------------------------------------------------------
   Header — transparent overlay + sticky
   ----------------------------------------------------------------------------- */

/*
 * Pull the header out of flow so hero/banner content sits beneath it.
 * The .header-wrap__backlog already reserves space when sticky is active.
 * On pages without a full-width hero the header still overlays the content
 * area; add padding-top to .layout-container if needed per page type.
 */
 
 /* ── Slicknav mobile menu colours ── */
 .main-nav .sub-menu{
    background-color: var(--accent) !important;
}

.slicknav_btn  {
    background-color: var(--primary) !important;
}
.slicknav_nav,
.slicknav_nav ul {
    background-color: var(--accent) !important;
    z-index: 999 !important;
}
.slicknav_menu {
  
    z-index: 999999 !important;
}
.slicknav_menu .slicknav_nav li{
    background: var(--accent) !important;
}
 .header-wrap{
    min-height: auto;
 }
.header-wrap {
    position: relative;
}
.otgs-development-site-front-end{
    display: none !important;
}
.header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 200 !important;
    background: rgba(13, 13, 12, 0.2) !important;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    transition:
        background 0.5s ease,
        -webkit-backdrop-filter 0.5s ease,
        backdrop-filter 0.5s ease,
        box-shadow 0.5s ease,
        color 0.5s ease;
    color: var(--white);
}

/* ── Topbar (header__info) ── */
.header__info {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    padding: 4px 0;
}

.header__info::before {
    display: none !important; /* parent draws this via pseudo — we handle border above */
}
.header__info__item{
    line-height: 1;
}

.header__info .header__info__item,
.header__info .header__info__item a,
.header__info .header__info__item i {
    color: var(--white) !important;
    opacity: 0.85;
}

.header__info .header__info__item a:hover {
    opacity: 1;
}

/* ── Navbar row: [left-nav] [logo] [right-nav] ── */
.header__content-wrap {
    position: relative;
}

.header__content-wrap{
    padding: 10px 0;
}

/*
 * Split-nav flex layout: [left-nav | logo (centred) | right-nav]
 * Both nav blocks are equal flex children so the logo stays centred.
 */
.header__content--split {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    position: relative;
    min-height: 80px !important;
    line-height: normal !important;
}

/* Left nav: items flush-left, right-aligned text towards logo */
.header__content--split .main-nav-header--left {
    flex: 1 1 0;
    display: flex;
    justify-content: flex-start;
}

/* Logo centred, fixed width prevents it being squeezed */
.header__content--split .logo {
    flex: 0 0 auto;
    margin: 0 24px;
    text-align: center;
}

/* Right nav: items flush-right, left-aligned text towards logo */
.header__content--split .main-nav-header--right {
    flex: 1 1 0;
    display: flex;
    justify-content: flex-end;
}

#logoLink {
    display: block;
    width: 180px;
}

#logoLink img {
    display: block;
    width: 100%;
    height: auto;
}


/* ── Shared nav list styles ── */
.header__content--split .main-nav-header .main-nav {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 8px;
}

/* Nav link colours on transparent header */
.header .main-nav > li > a {
    color: var(--white) !important;
    transition: color var(--transition);
}

.header .main-nav > li > a:hover,
.header .main-nav > li.current-menu-item > a,
.header .main-nav > li.current-menu-ancestor > a {
    color: var(--accent) !important;
}


/* ── Mobile source nav — hidden, exists only for slicknav to clone ── */
.main-nav-header--mobile-source {
    display: none !important;
}

/* ── Responsive: stack to burger on mobile ── */
@media (max-width: 768px) {
    .related-tours .col-xs-6{
        width: 100%;
    }
    .vc_non_responsive .vc_row .vc_col-sm-9, .vc_non_responsive .vc_row .vc_col-sm-3{
         width: 100% !important;
    }
    .vc_non_responsive .vc_row .vc_col-sm-6{
        width: 100% !important;
    }
    .wp-image-3247{
        max-width: 150px !important;
        margin-bottom: 15px;
    }
    .header__info {
        display: none;
    }

    .header__content--split {
        flex-wrap: nowrap;
        justify-content: space-between !important;
        align-items: center;
        min-height: 60px !important;
    }

    /* Hide desktop split navs — slicknav burger takes over */
    .header__content--split .main-nav-header--left,
    .header__content--split .main-nav-header--right {
        display: none;
    }

    .header__content--split .logo {
        margin: 0 auto;
    }

    /* Ensure slicknav burger is visible and white on transparent header */
    .header .slicknav_btn {
        display: block !important;
        color: var(--white) !important;
    }

    /* Burger lines colour */
    .header .slicknav_icon-bar {
        background-color: var(--white) !important;
    }

    /* Dark burger when sticky (white bg) */
    .header-wrap--sticky-header .header .slicknav_btn {
        color: var(--primary) !important;
    }
    .header-wrap--sticky-header .header .slicknav_icon-bar {
        background-color: var(--primary) !important;
    }
}

/* ── Sticky state ── */
/*
 * .header-wrap--sticky-header is added by our custom JS (pure_child_sticky_scroll)
 * after the user scrolls past 200 px, giving a "delayed" entrance feel.
 * Transitions on .header handle the smooth fade-in.
 */
.header-wrap--sticky-header .header {
    position: fixed !important;
    top: 0;
    background: var(--white) !important;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.10);
}

/* Dark nav links in sticky white header */
.header-wrap--sticky-header .header .main-nav > li > a {
    color: var(--color-text-body) !important;
}

.header-wrap--sticky-header .header .main-nav > li > a:hover,
.header-wrap--sticky-header .header .main-nav > li.current-menu-item > a,
.header-wrap--sticky-header .header .main-nav > li.current-menu-ancestor > a {
    color: var(--accent) !important;
}

/* Keep topbar hidden in sticky */
.header-wrap--sticky-header .header__info {
    display: none !important;
}

/* Slightly tighter navbar when sticky */
.header-wrap--sticky-header .header__content,
.header-wrap--sticky-header .header__content--split {
    min-height: 64px !important;
}

/* Admin bar offset — desktop only */
.admin-bar .header-wrap--sticky-header .header {
    top: 32px;
}

/* On mobile the admin bar is position:fixed at 46px but collapses on scroll,
   so the sticky header must start at 0 to avoid a visible gap. */
@media screen and (max-width: 782px) {
    .admin-bar .header-wrap--sticky-header .header {
        top: 0 !important;
    }
}



/* ── Responsive ── */
@media (max-width: 768px) {
    .header__content {
        justify-content: space-between !important;
        flex-wrap: wrap;
        min-height: 60px !important;
    }

    .header__content .logo {
        margin-left: 0;
        margin-right: 0;
    }
}

/* -----------------------------------------------------------------------------
   Footer
   ----------------------------------------------------------------------------- */
.footer { background: var(--primary);
border-top: 5px solid var(--accent);
color: var(--color-text-body-dark) !important;}
.footer .widget-last-posts__item__date{
    color:var(--accent)
}
.footer a{
    color: var(--color-text-body-dark) !important;
}
.footer a:hover{
    color: white !important;
    text-decoration: none !important;
}
.footer .wp-block-heading{
    margin-top:0px;
    color:white;
} 
#block-20 .title-widget-second{
    margin-bottom:25px !important
}
#tl_sb_widget-2 .widget__title, .title-widget-second{
    margin-bottom: 5px !important;
}
.footer__widgets-area--3 .wp-block-image img{
    border-radius:15px !important;
}
.widget-contact-info__item__icon i{
    color: var(--accent);
    background: transparent;
    font-size: 18px;
}
.footer .tl-sb-bg{
    fill:var(--accent)!important;
}
.footer .tl-sb-fg{
    fill:white !important;
}
.footer .tl-sb-preview-area {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.footer__arrow-top{
    display: none !important;
}
#block-21 img{
    border-radius: 0px !important;
}
/* -----------------------------------------------------------------------------
   Tour Single
   ----------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------
   Tour Archive / Category
   ----------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------
   Tour Card
   ----------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------
   Blog
   ----------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------
   Tour Search Form — style2 horizontal override
   Target: .form-block.form-block--horizontal.form-block--with-border
   Matches the pill/card design: white bg, fields with dividers, navy CTA button
   ----------------------------------------------------------------------------- */

/* ── Outer wrapper: remove blue bg, no padding ── */
.form-block--horizontal.form-block--with-border {
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
}

/* ── Form card: white bg, strong border-radius, subtle shadow, no padding-bottom ── */
.form-block--horizontal{
    margin-top: -50px !important;
}
.bootstrap-select.btn-group .btn .caret {
    display: none !important;
}

.form-block--horizontal.form-block--with-border .form-block__form {
    background: #ffffff !important;
    border: 2px solid var(--border-muted-gold) !important;
    border-radius: 15px !important;
    box-shadow: var(--shadow-xs) !important;
    padding: 20px !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
}

/* ── Row inside form: flex, no gutters ── */
.form-block--horizontal.form-block--with-border .form-block__form .row {
    display: flex !important;
    align-items: center !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    width: 100% !important;
    flex-wrap: nowrap !important;
}

/* ── Each column cell ── */
.form-block--horizontal.form-block--with-border .form-block__form .row > [class*="col-"] {
    padding: 0 !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    position: relative !important;
}

/* ── Vertical divider between fields (right border on all but the last before the button) ── */
.form-block--horizontal.form-block--with-border .form-block__form .row > [class*="col-"]:not(:last-child)::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    height: 32px;
    width: 1px;
    background: #c8d8ec;
}

/* ── Input and select fields: no bg, no border, clean ── */
.form-block--horizontal.form-block--with-border .form-block__item {
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
}

.form-block--horizontal.form-block--with-border .form-block__item input[type="text"],
.form-block--horizontal.form-block--with-border .form-block__item input[type="search"] {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    font-family: var(--font-body) !important;
    font-size: 16px !important;
    color: #333 !important;
    padding: 10px 40px 10px 0 !important;
    width: 100% !important;
    margin: 0 !important;
}

.form-block--horizontal.form-block--with-border .form-block__item input::placeholder {
    color: #8a97a8 !important;
    font-family: var(--font-body) !important;
    font-size: 16px !important;
}

/* ── Bootstrap-select dropdown: no border, transparent ── */
.form-block--horizontal.form-block--with-border .form-block__item .bootstrap-select > .btn,
.form-block--horizontal.form-block--with-border .form-block__item .bootstrap-select .btn-default {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: #8a97a8 !important;
    font-family: var(--font-body) !important;
    font-size: 16px !important;
    padding: 0 15px !important;
    font-weight: 400 !important;
}

.form-block--horizontal.form-block--with-border .form-block__item .bootstrap-select > .btn:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Hide bootstrap-select caret — the <i> icon on each field already acts as the indicator */
.form-block--horizontal.form-block--with-border .form-block__item .bootstrap-select .caret {
    display: none !important;
}

/* ── Field icons: use gold accent ── */
.form-block--horizontal.form-block--with-border .form-block__field-width-icon i {
    color: var(--accent) !important;
    font-size: 2rem !important;
    right: 12px !important;
}

/* ── Submit button: navy pill ── */
.form-block--horizontal.form-block--with-border button[type="submit"].atbtn--primary,
.form-block--horizontal.form-block--with-border input[type="submit"].atbtn--primary {
    background: var(--primary) !important;
    color: var(--white) !important;
    border: none !important;
    border-radius: 15px !important;
    padding: 6px 28px !important;
    font-family: var(--font-body) !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
    text-transform: none !important;
    white-space: nowrap !important;
    transition: background var(--transition) !important;
    margin-bottom: 0 !important;
    flex-shrink: 0 !important;
    min-width: 130px !important;
    cursor: pointer !important;
}

.form-block--horizontal.form-block--with-border button[type="submit"].atbtn--primary:hover,
.form-block--horizontal.form-block--with-border input[type="submit"].atbtn--primary:hover {
    background: var(--accent) !important;
    color: var(--white) !important;
}

/* ── Button column: shrink to content, no flex-grow ── */
.form-block--horizontal.form-block--with-border .form-block__form .row > [class*="col-"]:last-child {
    flex: 0 0 auto !important;
}

.form-block--horizontal.form-block--with-border .form-block__form .row > [class*="col-"]:last-child::after {
    display: none !important;
}

/* ── Mobile: stack vertically ── */
@media (max-width: 767px) {
    .form-block--horizontal {
        margin-top: 0 !important;
    }

    .form-block--horizontal.form-block--with-border .form-block__form {
        border-radius: 16px !important;
        flex-direction: column !important;
        padding: 16px !important;
        align-items: stretch !important;
    }

    .form-block--horizontal.form-block--with-border .form-block__form .row {
        flex-wrap: wrap !important;
        width: 100% !important;
    }

    .form-block--horizontal.form-block--with-border .form-block__form .row > [class*="col-"] {
        flex: 1 1 100% !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .form-block--horizontal.form-block--with-border .form-block__form .row > [class*="col-"]:not(:last-child)::after {
        display: none !important;
    }

    .form-block--horizontal.form-block--with-border .form-block__item {
        border-bottom: 1px solid #e5edf5 !important;
        width: 100% !important;
    }

    /* inputs full width */
    .form-block--horizontal.form-block--with-border .form-block__item input[type="text"],
    .form-block--horizontal.form-block--with-border .form-block__item input[type="search"],
    .form-block--horizontal.form-block--with-border .form-block__item .bootstrap-select,
    .form-block--horizontal.form-block--with-border .form-block__item .bootstrap-select > .btn {
        width: 100% !important;
        padding: 10px 14px !important;
    }

    .form-block--horizontal.form-block--with-border button[type="submit"].atbtn--primary,
    .form-block--horizontal.form-block--with-border input[type="submit"].atbtn--primary {
        width: 100% !important;
        text-align: center !important;
        padding: 12px 20px !important;
    }
}

/* -----------------------------------------------------------------------------
   Tour Carousel — .ptc-* scoped styles
   These only affect elements inside .ptc-carousel-wrap. Nothing outside is
   touched, so parent-theme atgrid / item-attributes / woocommerce styles on
   other page components remain completely unchanged.
   ----------------------------------------------------------------------------- */

/* ── Wrapper ── */
.ptc-carousel-wrap {
    position: relative;
    padding: 40px 0 60px;
    overflow: hidden;
}

.ptc-carousel-wrap--has-bg {
    padding: 80px 20px;
}

.ptc__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}
.ptc__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--dark-overlay);
}

/* ── Slider wrap ── */
.ptc__slider-wrap {
    position: relative;
    z-index: 1;
}

/* ── Swiper container
   Swiper 3 sets .swiper-wrapper height to match the tallest slide.
   We need the slide itself to stretch so the card fills it fully.     */
.ptc__swiper {
    overflow: hidden;
    /* bottom padding = dots area (32px bullet + 16px gap above) */
    padding-bottom: 52px;
}

/* Force every slide to use flex so the card inside stretches to full height */
.ptc__swiper .swiper-slide {
    display: flex;
    align-items: stretch;
    height: auto; /* Swiper 3: override its inline height so flex can work */
}

/* ── Card shell ── */
.ptc-card {
    background: #ffffff;
    border: 1px solid var(--border-default);
    border-radius: 15px;
    
    display: flex;
    flex-direction: column;
    width: 100%;      /* fill the slide */
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.ptc-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-gold);
}

/* ── Image block ── */
.ptc-card__image-wrap {
    overflow: hidden;
    border-radius: 16px 16px 0 0;
    background: #eef2f8;
    line-height: 0;
    flex-shrink: 0; /* never squish the image when body grows */
}

.ptc-card__image-link {
    display: block;
}

.ptc-card__image-wrap img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    display: block;
    transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

.ptc-card:hover .ptc-card__image-wrap img {
    transform: scale(1.06);
}

/* ── Card body — flex column that fills remaining height ── */
.ptc-card__body {
    padding: 18px 20px 20px;
    display: flex;
    flex-direction: column;
    flex: 1;          /* take all remaining height after image */
    gap: 10px;
}

/* ── Title — clamp to 2 lines so cards align at the description row ── */
.ptc-card__title {
    font-family: var(--font-body);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-title-primary);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-clamp: 2;
    overflow: hidden;
    min-height: calc(1.05rem * 1.35 * 2);
}

.ptc-card__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.25s ease;
}

.ptc-card__title a:hover {
    color: var(--color-title-secondary)
}

/* ── Short description — clamp to 3 lines so body heights equalise ── */
.ptc-card__description {
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    color: #6b7280;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    line-clamp: 3;
    overflow: hidden;
    /* Reserve exactly 3 lines so cards without excerpts still align */
    min-height: calc(0.875rem * 1.6 * 3);
}

/* ── Attributes — pushes to the bottom of body via margin-top:auto ── */

/* Reset the parent's display:table layout */
.ptc-card__attributes.item-attributes {
    display: flex;
    width: 100%;
    height: auto;
    background: transparent;
    border-top: 1px solid #f0f3f8;
    border-bottom: none;
    padding: 10px 0 0;
    margin-top: auto;
}

/* One attribute per row */
.ptc-card__attributes .item-attributes__item {
    display: flex;
    align-items: center;
    width: 100%;
    border-right: none;
    border-bottom: none;
    padding: 0;
    margin: 0 0 8px;
    text-align: left;
    vertical-align: unset;
    color: #4b5563;
    font-size: 1.1rem; /* larger than before */
}

.ptc-card__attributes .item-attributes__item:last-child {
    margin-bottom: 0;
    border: none;
}

/* Inner flex row: icon → text */
.ptc-card__attributes .item-attributes__item__content {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
}

.ptc-card__attributes .item-attributes__item__content__item {
    display: flex;
    align-items: center;
    line-height: 1;
    padding: 0;
}

.ptc-card__attributes .item-attributes__item__content__item:last-child {
    padding: 0;
}

/* Icon — gold, noticeably bigger */
.ptc-card__attributes .item-attributes__item i {
    color: var(--accent);
    font-size: 1.9rem;
    margin: 0;
    vertical-align: middle;
}
.title--decoration-bottom-center:after{
    content: none !important;
}

/* Text value */
.ptc-card__attributes .item-attributes__item__content__item--text {
    color: #374151;
    font-family: var(--font-body);
    font-size: 1.1rem;
    font-weight: 500;
}

.ptc-card__attributes .item-attributes__item__content__item--text span {
    display: inline;
}

/* ── Ratings ── */
.ptc-card__rating {
    line-height: 1;
}

/* ── Price ── */
.ptc-card__price {
    font-family: var(--font-body);
    font-size: 0.925rem;
    font-weight: 700;
    color: var(--primary);
    line-height: 1;
    padding-top: 4px;
}

/* ── Prev / Next arrows ──
   Positioned relative to .ptc__slider-wrap (position:relative).
   top:50% minus half the swiper padding-bottom so they align with
   the cards, not the dots area below.                               */
.ptc__nav {
    position: absolute;
    top: calc(50% - 26px); /* 52px padding-bottom / 2 = 26px offset */
    transform: translateY(-50%);
    z-index: 10;
    background: #ffffff;
    border: 1px solid #e0e6ef;
    color: var(--primary);
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.10);
    padding: 0;
    line-height: 1;
    /* Swiper 3 hides them via display:none when not needed —
       we must not override that with !important.             */
}

.ptc__nav:hover {
    background: var(--accent);
    color: #ffffff;
    border-color: var(--accent-hover);
    box-shadow:var(--shadow-xs);
}

/* Pull the arrows outside the swiper track so they don't overlap cards */
.ptc__nav--prev { left: -22px; }
.ptc__nav--next { right: -22px; }

/* ── Pagination dots ──
   Swiper 3 inserts .swiper-pagination-bullet spans directly inside
   .ptc__dots. We position it absolutely at the bottom of .ptc__swiper. */
.ptc__dots {
    position: absolute;
    bottom: 12px;
    left: 0;
    width: 100%;
    text-align: center;  /* Swiper 3 uses inline spans — text-align centres them */
    line-height: 1;
    /* Do NOT use display:flex — Swiper 3 injects spans, not flex children */
}

.ptc__dots .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: transparent;
    border: 2px solid #b0bec5;
    opacity: 1;
    transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
    cursor: pointer;
    display: inline-block;
    margin: 0 4px;
}

.ptc__dots .swiper-pagination-bullet-active {
    background: var(--accent);
    border-color: var(--accent);
    transform: scale(1.2);
}

/* ── Responsive ── */
@media (max-width: 1024px) {
    .ptc__nav--prev { left: -12px; }
    .ptc__nav--next { right: -12px; }
}

@media (max-width: 767px) {
    /* Arrows hidden on mobile — touch swipe handles navigation */
    .ptc__nav {
        display: none;
    }
    .ptc-carousel-wrap {
        padding: 24px 0 52px;
    }
    .ptc-card__image-wrap img {
        height: 200px;
    }
}
.ptc-carousel-wrap{
    overflow: initial;
}

/* -----------------------------------------------------------------------------
   Tour Category Icons — [tour_category_icons] ptci-*
   ----------------------------------------------------------------------------- */

/* Wrapper — content stays in normal flow, background stretches full viewport */
.ptci-wrap {
    position: relative;
    padding: 48px 0;
}

/* Full-viewport background via pseudo-element — doesn't affect content width */
.ptci-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(50% - 50vw);
    right: calc(50% - 50vw);
    z-index: 0;
}

.ptci__bg {
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(50% - 50vw);
    right: calc(50% - 50vw);
    background-size: cover;
    background-position: center;
    z-index: 0;
}

.ptci__inner {
    position: relative;
    z-index: 1;
    padding: 0 60px;
}

/* Slider row */
.ptci__slider-wrap {
    position: relative;
}

/* Nav arrows */
.ptci__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--white);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    text-decoration: none;
    transition: background var(--transition);
}
.ptci__nav--prev { left: -44px; }
.ptci__nav--next { right: -44px; }

/* Each slide */
.ptci-wrap .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
}
.dark .title__subtitle{
 color: var(--accent) !important;
}
.dark h3{
    color:var(--white) !important;
}

/* Clickable circle containing icon + label */
.ptci-item {
    display: flex;
    text-decoration: none;
    flex-direction: column;
    outline: none;
}
.section-white{
    background-color: transparent !important;
}

.ptci-item__circle {
    width: 110px;
    height: 110px;
    margin: 10px auto;
    border-radius: 50%;
    background: var(--accent);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 20px;
    transition: background var(--transition);
}



/* Icon inside circle */
.ptci-item__circle i {
    color: #ffffff;
    font-size: 4.4rem;
    line-height: 1;
    display: block;
}

/* Label inside circle */
.ptci-item__label {
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 1.3rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.3;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* Responsive */
@media (max-width: 767px) {
    .ptci__inner {
        padding: 0 40px;
    }
    .ptci-item__circle {
        width: 130px;
        height: 130px;
    }
    .ptci-item__circle i {
        font-size: 3rem;
    }
    .ptci-item__label {
        font-size: 0.72rem;
    }
}

@media (max-width: 480px) {
    .ptci__nav--prev { left: -30px; }
    .ptci__nav--next { right: -30px; }
}

/* -----------------------------------------------------------------------------
   Static Pages (WPBakery)
   ----------------------------------------------------------------------------- */
.icons-set__item__icon-wrap{
    background-color: var(--accent) !important;
}
.icons-set__item__icon-wrap:before{
    border: none !important;
}
#CDSWIDSSP .widSSPData{
    border-radius: 15px;
    border: 1px solid var(--accent) !important;
}
.vc_single_image-img{
    border-radius: 15px;
}
a:hover{
    text-decoration: none !important;
    border-bottom: none !important;
}
/* -----------------------------------------------------------------------------
   Tour Category Images — [tour_category_images] ptcim-*
   Destination coverflow slider — matches tours.ahcreative.ma reference design:
   center card full-size, side cards recede in depth (no rotation), image fills
   card, bottom overlay with title + count + View All button.
   ----------------------------------------------------------------------------- */

.ptcim-wrap {
    position: relative;
    padding: 40px 0 56px;
    overflow: hidden;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.ptcim__slider-wrap {
    position: relative;
}

.ptcim__swiper.swiper-container {
    overflow: visible;
    padding: 24px 0 32px;
}

/* Slide width — Swiper uses this when slidesPerView:'auto' */
.ptcim__swiper .swiper-slide {
    width: 450px;
    max-width: 85vw;
    /* Blur + fade non-active slides; Swiper's coverflow handles depth */
    transition: opacity 0.4s ease, filter 0.4s ease;
    opacity: 0.55;
    filter: blur(3px);
}

.ptcim__swiper .swiper-slide.swiper-slide-active {
    opacity: 1;
    filter: none;
}


/* Destination card outer box */
.ptcim-destination-box {
    border-radius: 20px;
    overflow: hidden;
}

/* Image wrapper — fills the card, relative for overlay */
.ptcim-destination-img {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 20px;
}

.ptcim-destination-img .ptcim-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

.swiper-slide-active .ptcim-destination-img:hover .ptcim-card__img {
    transform: scale(1.04);
}

/* Bottom gradient overlay + content row */
.ptcim-destination-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px 20px 22px;
    background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.2) 60%, transparent 100%);
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}

.ptcim-destination-left {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Card title */
.ptcim-card__name {
    margin: 0;
    font-family: var(--font-body);
    font-size: 2.15rem;
    font-weight: 700;
    line-height: 1.25;
}

.ptcim-card__name a {
    color: #ffffff;
    text-decoration: none;
    text-shadow: 0 1px 4px rgba(0,0,0,0.4);
}

.ptcim-card__name a:hover { color: var(--accent); }

/* Listing count */
.ptcim-card__count {
    color: rgba(255,255,255,0.82);
    font-family: var(--font-body);
    font-size: 1.2rem;
    font-weight: 500;
}

/* View All button */
.ptcim-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: var(--accent);
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 1.2rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
    border-radius: 6px;
    white-space: nowrap;
    transition: background var(--transition), transform var(--transition);
    flex-shrink: 0;
}

.ptcim-btn:hover {
    background: var(--accent-hover);
    color: #ffffff;
    transform: translateY(-1px);
}

.ptcim-btn .fa {
    font-size: 0.7rem;
}

/* Responsive */
@media (max-width: 991px) {
    .ptcim__swiper .swiper-slide { width: 360px; }
    .ptcim-wrap { padding: 24px 0 40px; }
}

@media (max-width: 767px) {
    .ptcim-wrap {
        padding: 20px 0 36px;
        overflow: hidden; /* contain the coverflow bleed */
    }
    .ptcim__swiper.swiper-container {
        overflow: hidden; /* prevent slides bleeding outside viewport */
        padding: 12px 0 20px;
    }
    .ptcim__swiper .swiper-slide {
        width: 82vw !important;
        max-width: 82vw;
        opacity: 1;         /* all slides fully visible on mobile */
        filter: none;
    }
    .ptcim-destination-img {
        aspect-ratio: 4 / 5; /* taller portrait on mobile */
    }
    .ptcim-card__name { font-size: 1.4rem; }
    .ptcim-card__count { font-size: 1rem; }
    .ptcim-btn { padding: 6px 12px; font-size: 0.8rem; }
    .ptcim-destination-content { padding: 14px 14px 16px; }
}
.afterremove{
    display: none !important;
}
.title--underline{
    border-bottom: none !important;
}
.widget-last-posts__item__title a{
    font-family: 'Montserrat';
}
/*-----------------------------------------------------------------------------
   Blog — Archive Grid
   ----------------------------------------------------------------------------- */

/* Kill the old parent-theme card styles so ours take over cleanly */
.blog__item { all: unset; display: block; }

/* Grid wrapper injected by loop.php */
.blog-grid-wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 36px;
    padding: 48px 0;
}

@media (max-width: 600px) {
    .blog-grid-wrapper { grid-template-columns: 1fr; gap: 24px; padding: 32px 0; }
}

/* ── Card ─────────────────────────────────────────────── */
.pt-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(26, 31, 78, 0.08);
    transition: box-shadow var(--transition), transform var(--transition);
}

.pt-card:hover {
    box-shadow: 0 8px 32px rgba(26, 31, 78, 0.16);
    transform: translateY(-4px);
}

/* Thumbnail */
.pt-card__thumb-link { display: block; overflow: hidden; }

.pt-card__thumb {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.pt-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

.pt-card:hover .pt-card__thumb img { transform: scale(1.05); }

.pt-card__thumb-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10,12,36,0.35) 0%, transparent 60%);
    pointer-events: none;
}

/* Card body */
.pt-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 24px;
    gap: 10px;
}

/* Category pill */
.pt-card__cat-pill {
    display: inline-block;
    padding: 4px 14px;
    background: var(--accent);
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 20px;
    align-self: flex-start;
    transition: background var(--transition);
}
.pt-card__cat-pill:hover { background: var(--accent-hover); color: #fff; }

/* Title */
.pt-card__title {
    margin: 0;
    font-family: var(--font-body);
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--primary);
}
.pt-card__title a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition);
}
.pt-card__title a:hover { color: var(--accent); }

/* Meta row */
.pt-card__meta,
.pt-single__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.pt-meta__item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-body);
    font-size: 0.9rem;
    color: #888;
}
.pt-meta__item .fa { color: var(--accent); font-size: 0.82rem; }
.pt-meta__item a { color: #888; text-decoration: none; transition: color var(--transition); }
.pt-meta__item a:hover { color: var(--accent); }

/* Excerpt */
.pt-card__excerpt {
    margin: 0;
    font-family: var(--font-body);
    font-size: 1rem;
    color: #555;
    line-height: 1.65;
    flex: 1;
    /* clamp to 3 lines */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Read more CTA */
.pt-card__read-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-family: var(--font-body);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--primary);
    text-decoration: none;
    transition: color var(--transition), gap var(--transition);
    align-self: flex-start;
}
.pt-card__read-more .fa { font-size: 0.85rem; transition: transform var(--transition); }
.pt-card__read-more:hover { color: var(--accent); }
.pt-card__read-more:hover .fa { transform: translateX(4px); }

/* Sticky badge */
.pt-card__sticky {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
    background: var(--accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 0.8rem;
}

/* No-image card */
.pt-card--no-image .pt-card__body { padding-top: 28px; }

/*-----------------------------------------------------------------------------
   Blog — Single Post
   ----------------------------------------------------------------------------- */

.pt-single-post { margin: 0; padding: 0; }

/* ── Blog single — full-width header hero ── */
.pt-blog-hero {
    position: relative;
    width: 100%;
    height: 400px;
    margin-top: -95px;
    background: var(--primary) center/cover no-repeat;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.pt-blog-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(5,7,25,.82) 0%,
        rgba(10,12,36,.4) 55%,
        transparent 100%
    );
}
.pt-blog-hero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 48px 40px;
}
.pt-blog-hero__breadcrumb {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: .6;
    margin-bottom: 14px;
}
.pt-blog-hero__breadcrumb,
.pt-blog-hero__breadcrumb a {
    color: var(--white);
    text-decoration: none;
}
.pt-blog-hero__breadcrumb a:hover { opacity: 1; text-decoration: underline; }
.pt-blog-hero__title {
    font-family: var(--font-body);
    font-size: clamp(1.8rem, 3.5vw, 3rem);
    font-weight: 700;
    color: var(--white);
    line-height: 1.15;
    margin: 0;
    max-width: 860px;
}

@media (max-width: 640px) {
    .pt-blog-hero { height: 320px; margin-top: -95px; }
    .pt-blog-hero__inner { padding: 0 20px 32px; }
}

/* ── Full-width hero ──────────────────────────────────────────────────────── */
.pt-single__hero {
    position: relative;
    /* pull up under transparent header */
    margin-top: -95px;
    /* break out of any container */
    width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    height: 560px;
    overflow: hidden;
}

.pt-single__hero--empty {
    height: 65px; /* just absorb the header overlap */
    background: var(--primary);
}

.pt-single__hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.pt-single__hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10,12,36,0.65) 0%, rgba(10,12,36,0.15) 60%, transparent 100%);
    pointer-events: none;
}

.pt-single__hero-meta {
    position: absolute;
    bottom: 28px;
    left: 0;
    right: 0;
}

.pt-single__cat-pill {
    display: inline-block;
    padding: 5px 16px;
    background: var(--accent);
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 20px;
    transition: background var(--transition);
}
.pt-single__cat-pill:hover { background: var(--accent-hover); color: #fff; }

/* ── Layout container ─────────────────────────────────────────────────────── */
.pt-single__layout-container {
    padding-top: 48px;
    padding-bottom: 80px;
}

/* ── Two-column wrap: main + TOC ──────────────────────────────────────────── */
.pt-single__wrap {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 56px;
    /* no align-items here — main column must stretch full height */
    padding-top: 80px;
}

/* aside stretches to full grid-row height — gives sticky its scroll range (align-self: stretch is default) */

@media (max-width: 1100px) {
    .pt-single__wrap { grid-template-columns: 1fr 240px; gap: 36px; }
}

@media (max-width: 860px) {
    .pt-single__wrap { grid-template-columns: 1fr; }
    .pt-single__toc-sidebar { order: -1; }
}

/* ── Header ───────────────────────────────────────────────────────────────── */
.pt-single__header { margin-bottom: 36px; }

.pt-single__title {
    font-family: var(--font-body);
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    font-weight: 700;
    line-height: 1.15;
    color: var(--primary);
    margin: 0 0 20px;
}

/* ── Content typography ───────────────────────────────────────────────────── */
.icons-set__item__description{
    color: var(--color-text-body);
}
.pt-single__content {
    font-family: var(--font-body);
    font-size: 1.15rem;
    line-height: 1.9;
    color: #2a2a2a;
}

.pt-single__content h2 {
    font-family: var(--font-body);
    font-size: 2rem;
    color: var(--primary);
    margin-top: 2.2em;
    margin-bottom: 0.6em;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--off-white);
}

.pt-single__content h3 {
    font-family: var(--font-body);
    font-size: 1.55rem;
    color: var(--primary);
    margin-top: 1.8em;
    margin-bottom: 0.5em;
}

.pt-single__content h4 {
    font-family: var(--font-body);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--primary);
    margin-top: 1.5em;
    margin-bottom: 0.4em;
}

.pt-single__content p { margin-bottom: 1.5em; }

.pt-single__content a {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.pt-single__content a:hover { color: var(--accent-hover); }

.pt-single__content img {
    border-radius: 10px;
    max-width: 100%;
    height: auto;
    margin: 8px 0;
}

.pt-single__content blockquote {
    border-left: 4px solid var(--accent);
    padding: 16px 24px;
    margin: 32px 0;
    background: var(--off-white);
    border-radius: 0 10px 10px 0;
    font-style: italic;
    font-size: 1.2rem;
    color: #444;
    line-height: 1.75;
}

.pt-single__content ul,
.pt-single__content ol {
    padding-left: 1.6em;
    margin-bottom: 1.5em;
}

.pt-single__content li { margin-bottom: 0.4em; }

/* Pagination */
.pt-single__pagination { margin: 28px 0; }

/* Hide WP sidebar on single — layout comes from our grid */
body.single .col-md-9,
body.single main.col-md-9 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
}
body.single .sidebar-column,
body.single aside.col-md-3 { display: none; }

/* ── TOC sidebar ── */

/* aside stretches to full column height by default (grid align-self: stretch) */
.pt-single__toc-sidebar {
    display: flex;
    flex-direction: column;
}

/* track fills the entire aside height */
.pt-toc__track {
    flex: 1;
    position: relative; /* establishes containing block — NOT overflow:hidden */
}

/* sticky lives inside the track which is as tall as the content column */
.pt-toc {
    position: sticky;
    top: 100px;
}

.pt-toc__title {
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #aaa;
    margin: 0 0 14px;
}

.pt-toc__nav ol,
.pt-toc__nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    border-left: 1px solid #e0e0e0;
}

.pt-toc__nav li { margin: 0; }

.pt-toc__nav a {
    display: block;
    padding: 6px 0 6px 16px;
    font-family: var(--font-body);
    font-size: 0.85rem;
    color: #888;
    text-decoration: none;
    line-height: 1.4;
    transition: color 0.2s, border-color 0.2s;
    border-left: 2px solid transparent;
    margin-left: -1px;
}

.pt-toc__nav a:hover { color: var(--primary); }

.pt-toc__nav a.pt-toc--active {
    color: var(--primary);
    border-left-color: var(--accent);
    font-weight: 600;
}

.pt-toc__nav .pt-toc__sub a {
    padding-left: 28px;
    font-size: 0.8rem;
}

@media (max-width: 860px) {
    .pt-toc__track { height: auto; }
    .pt-toc { position: static; }
}

/* ── Breadcrumbs on single posts (minimal bar) ────────────────────────────── */
.header-section--single-post {
    padding-top: 10px;
    padding-bottom: 10px;
    background: transparent;
    box-shadow: none;
    border: none;
}
.header-section--single-post .breadcrumbs-wrap { margin: 0; }

/*-----------------------------------------------------------------------------
   Blog — Archive page header
   ----------------------------------------------------------------------------- */
.post-category__description {
    font-family: var(--font-body);
    font-size: 1rem;
    color: #555;
    line-height: 1.7;
    border-left: 3px solid var(--accent);
    padding: 12px 20px;
    background: var(--off-white);
    border-radius: 0 8px 8px 0;
    margin-bottom: 32px;
}

/*-----------------------------------------------------------------------------
   Tour Single — Hero + Content
   ----------------------------------------------------------------------------- */

/* ── Hero: full-width, slides under sticky header ── */
.pt-tour-hero {
    position: relative;
    width: 100%;
    min-height: 580px;
    margin-top: -95px;           /* pull up under the header */
    background: var(--primary) center/cover no-repeat;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.pt-tour-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(5,7,25,.88) 0%,
        rgba(10,12,36,.5) 45%,
        rgba(10,12,36,.18) 75%,
        transparent 100%
    );
}
.pt-tour-hero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 120px 48px 56px;    /* top pad accounts for -95px pull */
}

/* Breadcrumb */
.pt-tour-hero__breadcrumb {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 20px;
    opacity: .65;
}
.pt-tour-hero__breadcrumb,
.pt-tour-hero__breadcrumb a {
    color: var(--white);
    text-decoration: none;
}
.pt-tour-hero__breadcrumb a:hover { opacity: 1; text-decoration: underline; }

/* Category pill */
.pt-tour-hero__cats { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.pt-tour-hero__cat-tag {
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--primary);
    background: var(--accent);
    padding: 5px 12px;
    border-radius: 2px;
}

/* Title — big, editorial */
.pt-tour-hero__title {
    font-family: var(--font-body);
    font-size: clamp(2.6rem, 5vw, 4.2rem);
    font-weight: 600;
    color: var(--white);
    line-height: 1.12;
    letter-spacing: -.01em;
    margin: 0 0 14px;
    max-width: 820px;
}

/* Subtitle */
.pt-tour-hero__subtitle {
    font-family: var(--font-body);
    font-size: 1.1rem;
    color: rgba(255,255,255,.75);
    margin: 0 0 24px;
    max-width: 640px;
    line-height: 1.6;
}

/* Meta row: rating + badge */
.pt-tour-hero__meta {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}
.pt-tour-hero__rating { display: flex; align-items: center; gap: 8px; }
.pt-tour-hero__stars  { color: var(--accent); font-size: 17px; letter-spacing: 1px; }
.pt-tour-hero__score  { font-family: var(--font-body); font-size: 1.1rem; font-weight: 700; color: var(--white); }
.pt-tour-hero__reviews{ font-family: var(--font-body); font-size: 13px; color: rgba(255,255,255,.6); }
.pt-tour-hero__badge  {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--accent);
    display: flex;
    align-items: center;
    gap: 6px;
    border: 1px solid rgba(229,168,58,.4);
    padding: 5px 12px;
    border-radius: 2px;
}

/* Share */
.pt-tour-hero__share  { position: relative; display: inline-block; }
.pt-tour-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 1px solid rgba(255,255,255,.35);
    color: var(--white);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    padding: 9px 18px;
    border-radius: 2px;
    cursor: pointer;
    letter-spacing: .04em;
    transition: border-color var(--transition), background var(--transition);
}
.pt-tour-share-btn:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.6);
}
.pt-tour-share-menu {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 0;
    background: var(--white);
    border-radius: 4px;
    box-shadow: 0 12px 36px rgba(0,0,0,.18);
    min-width: 190px;
    overflow: hidden;
    display: none;
    z-index: 100;
}
.pt-tour-share-menu.is-open { display: block; }
.pt-tour-share-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 18px;
    font-family: var(--font-body);
    font-size: 14px;
    color: #222;
    text-decoration: none;
    border-bottom: 1px solid #f0f0f0;
    transition: background .15s;
}
.pt-tour-share-option:last-child { border-bottom: none; }
.pt-tour-share-option:hover { background: var(--off-white); }

/* ── Info bar — dark stripe under hero ── */
.pt-tour-info-bar { background: var(--primary); }
.pt-tour-info-bar__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 48px;
    display: flex;
    flex-wrap: wrap;
}
.pt-tour-info-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 24px 20px;
    flex: 1 1 120px;
    border-right: 1px solid rgba(255,255,255,.08);
    transition: background var(--transition);
}
.pt-tour-info-card:last-child { border-right: none; }
.pt-tour-info-card:hover { background: rgba(255,255,255,.05); }
.pt-tour-info-card__icon {
    color: var(--accent);
    font-size: 24px;
    margin-bottom: 10px;
}
.pt-tour-info-card__label {
    font-family: var(--font-body);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.4);
    margin-bottom: 5px;
}
.pt-tour-info-card__value {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    color: var(--white);
    line-height: 1.3;
}

/* ── Body ── */
.pt-tour-body {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 48px;
}

/* Description + booking: 65 / 35 */
.pt-tour-body__top-row {
    display: grid;
    grid-template-columns: 65% 1fr;
    gap: 40px;
    align-items: start;
    margin-bottom: 40px;
}
.pt-tour-body__content { min-width: 0; }

/* Full-width zone: gallery, itinerary, price, etc. */
.pt-tour-body__full { min-width: 0; }

/* ── Booking sidebar ── */
.pt-tour-body__booking {
    align-self: start;
    position: sticky;
    top: 100px;
    min-width: 0;
}
.pt-tour-booking-card {
    border: 1px solid var(--border-default);
    border-radius: 12px;
    padding: 32px 24px;
    box-shadow: var(--shadow-md);
    background: var(--white);
}
.pt-tour-booking-card__placeholder {
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 0.95rem;
    text-align: center;
    padding: 40px 0;
    margin: 0;
}

/* ── Gallery — vertical thumbs left, main image right (adventure-tours style) ── */
.pt-tour-gallery {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 10px;
    height: 520px;
    margin-bottom: 60px;
    border-radius: 6px;
    overflow: hidden;
}
.pt-tour-gallery__thumbs {
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow: hidden;
}
.pt-tour-gallery__thumb {
    flex: 1;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    position: relative;
    border: 2px solid transparent;
    transition: border-color var(--transition), opacity var(--transition);
    opacity: .7;
}
.pt-tour-gallery__thumb.is-active,
.pt-tour-gallery__thumb:hover {
    border-color: var(--accent);
    opacity: 1;
}
.pt-tour-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pt-tour-gallery__thumb--more {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(26,31,78,.85);
    border-color: transparent !important;
    opacity: 1 !important;
}
.pt-tour-gallery__thumb--more span {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    color: var(--white);
    text-align: center;
    letter-spacing: .04em;
}
.pt-tour-gallery__main {
    position: relative;
    border-radius: 4px;
    overflow: hidden;
    background: #000;
    cursor: zoom-in;
}
.pt-tour-gallery__main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s ease;
}
.pt-tour-gallery__main:hover img { transform: scale(1.02); }
.pt-tour-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    background: rgba(255,255,255,.92);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    font-size: 15px;
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 10px rgba(0,0,0,.2);
    transition: background var(--transition), transform var(--transition);
    z-index: 3;
}
.pt-tour-gallery__nav:hover {
    background: var(--white);
    transform: translateY(-50%) scale(1.08);
}
.pt-tour-gallery__nav--prev { left: 14px; }
.pt-tour-gallery__nav--next { right: 14px; }
.pt-tour-gallery__counter {
    position: absolute;
    bottom: 14px;
    right: 14px;
    background: rgba(0,0,0,.5);
    backdrop-filter: blur(4px);
    color: var(--white);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 20px;
    letter-spacing: .05em;
    z-index: 3;
}

/* ── Content sections ── */
.pt-tour-section { margin-bottom: 56px; }
.pt-tour-section__title {
    font-family: var(--font-body);
    font-size: 2.2rem;
    font-weight: 600;
    color: var(--primary);
    margin: 0 0 28px;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--accent);
    line-height: 1.2;
}
.pt-tour-section__body {
    font-family: var(--font-body);
    font-size: 1.05rem;
    line-height: 1.8;
    color: #3a3a3a;
}
/* WPBakery content typography */
.pt-tour-section .pt-tour-section__body p,
.pt-tour-section__body p {
    font-size: 1.3rem;
    line-height: 1.8;
    margin-bottom: 1.4em;
    color: #3a3a3a;
}
.pt-tour-section__body h2 {  font-size: 1.9rem; color: var(--primary); margin: 1.6em 0 .7em; }
.pt-tour-section__body h3 { font-size: 1.5rem; color: var(--primary); margin: 1.4em 0 .6em; }

/* ── Itinerary Accordion ── */
.pt-itin { margin-top: 8px; }

.pt-itin__item {
    border-bottom: 1px solid #e2ddd6;
}
.pt-itin__item:first-child { border-top: 1px solid #e2ddd6; }

.pt-itin__trigger {
    width: 100%;
    display: grid;
    grid-template-columns: 52px 1fr 20px;
    align-items: baseline;
    gap: 24px;
    padding: 8px 0;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
}

/* Large editorial day number — pure typography, no box */
.pt-itin__day {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    padding-left: 14px;
    border-left: 2px solid var(--accent);
}
.pt-itin__day-label {
    font-family: var(--font-body);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--accent);
    line-height: 1;
}
.pt-itin__day-num {
    font-size: 1.3rem;
    margin-top: 11px;
    font-weight: 500;
    color: var(--primary);
    line-height: 1;
    transition: color var(--transition);
}
.pt-itin__item.is-open .pt-itin__day-num { color: var(--accent); }

.pt-itin__title {
    font-family: var(--font-body);
    font-size: 1.45rem;
    font-weight: 500;
    color: var(--primary);
    line-height: 1.3;
    padding-top: 10px; /* visually align with mid-height of number */
}

/* Thin chevron — no background, no border */
.pt-itin__icon {
    font-size: 12px;
    color: #aaa;
    padding-top: 12px;
    transition: transform var(--transition), color var(--transition);
    justify-self: end;
}
.pt-itin__item.is-open .pt-itin__icon {
    transform: rotate(180deg);
    color: var(--primary);
}

/* Replace fa-plus with fa-chevron-down in template */

.pt-itin__body {
    overflow: hidden;
    max-height: 0;
    transition: max-height .45s cubic-bezier(0.4, 0, 0.2, 1);
}
.pt-itin__item.is-open .pt-itin__body { max-height: 800px; }

.pt-itin__body p {
    font-family: var(--font-body);
    font-size: 1.2rem;
    line-height: 1.85;
    color: #666;
    margin: 0;
    padding: 0 0 32px calc(52px + 24px); /* align under title */
}

/* ── tours-tabs__table ── */
.pt-tour-section__body .table.table-bordered.tours-tabs__table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #e2ddd6;
    border-radius: 4px;
    overflow: hidden;
    margin: 32px 0;
    font-family: var(--font-body);
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table tbody {
    border: none;
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table tr {
    display: grid;
    grid-template-columns: 220px 1fr;
    border-bottom: 1px solid #e2ddd6;
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table tr:last-child {
    border-bottom: none;
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table td {
    border: none;
    padding: 16px 22px;
    vertical-align: top;
    font-size: .95rem;
    line-height: 1.7;
}

/* Label cell */
.pt-tour-section__body .table.table-bordered.tours-tabs__table td:first-child {
    background: var(--off-white);
    display: flex;
    align-items: flex-start;
    padding-top: 18px;
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table td:first-child strong {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--primary);
}

/* Value cell */
.pt-tour-section__body .table.table-bordered.tours-tabs__table td:last-child {
    background: var(--white);
    color: #444;
    font-size: 1.4rem;
}

/* Included / excluded tag lists */
.pt-tour-section__body .table.table-bordered.tours-tabs__table .included-items-wrapper,
.pt-tour-section__body .table.table-bordered.tours-tabs__table .excluded-items-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 2px 0;
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table .included-item,
.pt-tour-section__body .table.table-bordered.tours-tabs__table .excluded-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    padding: 5px 12px;
    border-radius: 2px;
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table .included-item {
    background: #f0f7f2;
    color: #1e6b35;
    border: 1px solid rgba(30,107,53,.18);
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table .included-item::before {
    content: '\f00c';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    font-size: 10px;
    color: #1e6b35;
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table .excluded-item {
    background: #fdf2f2;
    color: #a42020;
    border: 1px solid rgba(164,32,32,.15);
}
.pt-tour-section__body .table.table-bordered.tours-tabs__table .excluded-item::before {
    content: '\f00d';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    font-size: 10px;
    color: #a42020;
}

@media (max-width: 640px) {
    .pt-tour-section__body .table.table-bordered.tours-tabs__table tr {
        grid-template-columns: 1fr;
    }
    .pt-tour-section__body .table.table-bordered.tours-tabs__table td:first-child {
        border-bottom: 1px solid #e2ddd6;
        padding-bottom: 10px;
    }
}

/* ── Price info ── */
.pt-tour-price-info__body {
    background: var(--off-white);
    border-left: 4px solid var(--accent);
    border-radius: 0 8px 8px 0;
    padding: 28px 32px;
    font-family: var(--font-body);
    font-size: 1.4rem;
    line-height: 1.8;
    color: #3a3a3a;
}

/* ── Lightbox ── */
.pt-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.94);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity .3s;
}
.pt-lightbox.is-open { opacity: 1; }
.pt-lightbox__wrap   { position: relative; }
.pt-lightbox__img    { max-width: 90vw; max-height: 86vh; object-fit: contain; border-radius: 4px; display: block; }
.pt-lightbox__close,
.pt-lightbox__prev,
.pt-lightbox__next {
    position: absolute;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    color: var(--white);
    font-size: 17px;
    cursor: pointer;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background .2s;
    z-index: 1;
}
.pt-lightbox__close:hover,
.pt-lightbox__prev:hover,
.pt-lightbox__next:hover { background: rgba(255,255,255,.22); }
.pt-lightbox__close { top: -58px; right: 0; }
.pt-lightbox__prev  { top: 50%; left: -62px; transform: translateY(-50%); }
.pt-lightbox__next  { top: 50%; right: -62px; transform: translateY(-50%); }
.pt-lightbox__counter {
    position: absolute;
    bottom: -38px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--font-body);
    font-size: 13px;
    color: rgba(255,255,255,.6);
    white-space: nowrap;
}

/* ── Toast ── */
.pt-toast {
    position: fixed;
    top: 28px;
    right: 28px;
    background: var(--primary);
    color: var(--white);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    padding: 13px 22px;
    border-radius: 4px;
    box-shadow: 0 6px 20px rgba(0,0,0,.25);
    border-left: 3px solid var(--accent);
    z-index: 10000;
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity .25s, transform .25s;
    pointer-events: none;
}
.pt-toast.is-visible { opacity: 1; transform: none; }

/* ── Responsive ── */
@media (max-width: 900px) {
    .pt-tour-hero__inner    { padding: 100px 24px 44px; }
    .pt-tour-info-bar__inner{ padding: 0 24px; }
    .pt-tour-body           { padding: 40px 24px; }
    .pt-tour-body__top-row  { grid-template-columns: 1fr; }
    .pt-tour-body__booking  { position: static; }
    .pt-tour-gallery        { grid-template-columns: 90px 1fr; height: 400px; }
}

@media (max-width: 640px) {
    .pt-tour-hero           { min-height: 420px; margin-top: -95px; }
    .pt-tour-hero__inner    { padding: 115px 20px 36px; }
    .pt-tour-hero__title    { font-size: 2.1rem; }
    .pt-tour-info-card      { flex-basis: 50%; border-bottom: 1px solid rgba(255,255,255,.08); }
    .pt-tour-gallery        { grid-template-columns: 1fr; height: auto; }
    .pt-tour-gallery__thumbs{
        flex-direction: row;
        gap: 6px;
        order: 2;
        overflow-x: auto;
        padding-bottom: 4px;
    }
    .pt-tour-gallery__thumb { flex: 0 0 70px; height: 52px; }
    .pt-tour-gallery__main  { height: 260px; }
    .pt-tour-body           { padding: 28px 20px; }
    .pt-lightbox__prev      { left: -42px; }
    .pt-lightbox__next      { right: -42px; }
}
.header-section--with-banner .parallax-image{
    background-size: cover !important;
}
.header-section--with-banner{
    margin-top: -95px;
    margin-bottom: 90px;
    height: 350px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
}
.header-section--with-banner .container {
    position: relative;
    z-index: 1;
    padding-bottom: 28px;
}
.header-section--with-banner .header-section__content {
    position: static;
    top: auto;
    left: auto;
    transform: none;
    width: 100%;
    padding: 0;
}
/* ── Title-block mode (pages without banner image) ── */
.header-section-titleblock {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    height: 350px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow: none;
    border: none;
    border-radius: 0;
    overflow: hidden;
}
.header-section-titleblock__overlay {
    position: absolute;
    inset: 0;
    background-color: var(--primary);
    opacity: 0.65;
    z-index: 0;
}
.header-section-titleblock__inner {
    position: relative;
    width: 1170px;
    margin-left: auto;
    margin-right: auto;
    z-index: 1;
    padding: 0 30px 28px;
}
.header-section-titleblock .header-section__title {
    color: var(--color-title-on-dark);
    margin: 0;
    font-size: 2.5rem;
}
.header-section-titleblock .breadcrumbs-wrap {
    margin-bottom: 8px;
}
.atbtn--rounded{
    border-radius: 15px !important;
}
.last-posts__item__content{
    background: #ECEADE !important;;
    text-align: left !important;
    border-radius: 15px;
    border:1px solid var(--border-muted-gold);
    box-shadow: var(--shadow-sm);
}
/*-----------------------------------------------------------------------------
   FAQ — modern redesign
   ----------------------------------------------------------------------------- */

/* ── Category block (faq__item) ── */
.faq__item {
    background: transparent;
    box-shadow: none;
    border: none;
    border-radius: 0;
    margin-bottom: 48px;
}
.faq__item + .faq__item {
    margin-top: 0;
}

/* Category title */
.faq__item .section-title.title {
    margin-bottom: 24px;
    text-align: left;
}
.faq__item .section-title .title__primary {
    font-family: var(--font-display);
    font-size: 2.6rem;
    color: var(--color-title-secondary);
    position: relative;
    padding-bottom: 12px;
    margin-bottom: 0;
}
.faq__item .section-title .title__primary::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 2px;
    background: var(--accent);
    border-radius: 2px;
}
/* Suppress parent centering & decoration */
.faq__item .title--center { text-align: left !important; }
.faq__item .title--decoration-bottom-center::before,
.faq__item .title--decoration-bottom-center::after,
.faq__item .title--underline::after { display: none !important; }

/* ── Accordion wrapper ── */
.faq__accordion {
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* ── Each Q&A item ── */
.faq__accordion__item {
    background: #fff;
    border: 1px solid var(--border-muted-gold) !important;
    border-radius: 10px !important;
    padding: 0 !important;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition), border-color var(--transition);
    overflow: hidden;
}
.faq__accordion__item:last-child {
    border-bottom: 1px solid var(--border-muted-gold) !important;
}
.faq__accordion__item:hover,
.faq__accordion__item--open {
    box-shadow: var(--shadow-gold);
    border-color: var(--accent) !important;
}

/* ── Question heading ── */
.faq__accordion__heading {
    min-height: 0;
    line-height: normal;
    position: relative;
    display: flex;
    align-items: center;
}

/* Hide the old circular icon */
.faq__accordion__heading i {
    display: none !important;
}

/* Question link */
.faq__accordion__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 18px 20px !important;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    color: var(--color-title-primary) !important;
    text-decoration: none;
    border-bottom: none !important;
    transition: color var(--transition);
    gap: 12px;
}
.faq__accordion__title:hover,
.faq__accordion__title:focus {
    color: var(--accent) !important;
    border-bottom: none !important;
    text-decoration: none;
}

/* + / − chevron via pseudo-element */
.faq__accordion__title::after {
    content: '+';
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    font-weight: 300;
    line-height: 1;
    color: var(--accent);
    border: 1px solid var(--border-muted-gold);
    border-radius: 50%;
    transition: transform var(--transition), background var(--transition), color var(--transition);
}
.faq__accordion__item--open .faq__accordion__title::after,
.faq__accordion__title[aria-expanded="true"]::after {
    content: '−';
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
}

/* ── Answer content ── */
.faq__accordion__content-wrap {
    border-top: 1px solid var(--border-subtle);
}
.faq__accordion__content {
    padding: 16px 20px 20px !important;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.75;
    color: var(--color-text-body);
}
.faq__accordion__content p:last-child { margin-bottom: 0; }

/* Remove padding-left/right wrappers the template adds */
.faq__item > .padding-left.padding-right {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ── Responsive ── */
@media (max-width: 767px) {
    .faq__accordion__title { font-size: 0.875rem; padding: 14px 16px !important; }
    .faq__accordion__content { padding: 12px 16px 16px !important; }
}

/*-----------------------------------------------------------------------------
   FAQ sidebar — all widgets
   ----------------------------------------------------------------------------- */

/* ── Base widget card ── */
aside.sidebar .widget {
    background: #fff;
    border: 1px solid var(--border-muted-gold);
    border-radius: 16px;
    box-shadow: var(--shadow-sm);
    padding: 28px 22px;
    margin-bottom: 24px;
}

/* ── Widget title ── */
aside.sidebar .widget__title {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-title-secondary);
    text-transform: none;
    text-align: left;
    margin: -28px -22px 22px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--border-subtle);
    position: relative;
}

/* Remove parent decoration */
aside.sidebar .widget__title::after { display: none !important; }

/* ── Recent posts ── */
aside.sidebar .widget_recent_entries ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
aside.sidebar .widget_recent_entries ul li {
    padding: 12px 0 !important;
    padding-left: 0 !important;
    border-bottom: 1px solid var(--border-subtle);
}
aside.sidebar .widget_recent_entries ul li:first-child { padding-top: 0 !important; }
aside.sidebar .widget_recent_entries ul li:last-child {
    border-bottom: none;
    padding-bottom: 0 !important;
}
aside.sidebar .widget_recent_entries ul li::before { display: none !important; }
aside.sidebar .widget_recent_entries ul li a {
    font-family: var(--font-body);
    font-size: 1.3rem;
    font-weight: 500;
    color: var(--color-text-body);
    line-height: 1.55;
    border-bottom: none !important;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    transition: color var(--transition);
}

aside.sidebar .widget_recent_entries ul li a:hover { color: var(--accent); }

/* ── Social icons widget ── */
aside.sidebar .tl-social-bucket {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    padding-top: 4px;
}
aside.sidebar .tl-sb-icon-wrapper {
    border-radius: 50%;
    overflow: visible;
    transition: transform var(--transition), box-shadow var(--transition);
}
aside.sidebar .tl-sb-icon-wrapper:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-gold);
}
/* Wrap each icon in a styled circle using the wrapper itself */
aside.sidebar .tl-sb-icon-wrapper a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--off-white);
    border: 1px solid var(--border-muted-gold);
    transition: background var(--transition), border-color var(--transition);
    padding: 0 !important;
}
aside.sidebar .tl-sb-icon-wrapper a:hover {
    background: var(--accent);
    border-color: var(--accent);
}
/* Make SVG itself fill the circle naturally */
aside.sidebar .tl-sb-icon-wrapper a svg {
    width: 22px;
    height: 22px;
}
/* Override inline fill styles on the SVG paths via filter trick */
aside.sidebar .tl-sb-icon-wrapper a svg .tl-sb-bg { fill: transparent !important; }
aside.sidebar .tl-sb-icon-wrapper a svg .tl-sb-fg { fill: var(--primary) !important; }
aside.sidebar .tl-sb-icon-wrapper a:hover svg .tl-sb-fg { fill: #fff !important; }

/* ── Spacing reset ── */
aside.sidebar .block-after-indent { margin-top: 0 !important; }

/* ── Floating sticky share bar (.tl-sb-stickypos-left / -right) ── */
.tl-sb-preview-area {
    background: var(--white) !important;
    border: 1px solid var(--border-default) !important;
    border-radius: 10px !important;
    box-shadow: var(--shadow-md) !important;
    padding: 6px 4px !important;
}

/* Strip the plugin title if empty */
.tl-sb-preview-area .tl-sb-title:empty { display: none; }

/* Each icon button */
.tl-sb-preview-area .tl-sb-icon-wrapper {
    margin: 4px 0 !important;
    transition: transform var(--transition), box-shadow var(--transition);
}
.tl-sb-preview-area .tl-sb-icon-wrapper:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-gold);
}

/* The <a> circle */
.tl-sb-preview-area .tl-sb-icon-wrapper a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    background: var(--off-white) !important;
    border: 1px solid var(--border-muted-gold) !important;
    padding: 0 !important;
    transition: background var(--transition), border-color var(--transition);
}
.tl-sb-preview-area .tl-sb-icon-wrapper a:hover {
    background: var(--accent) !important;
    border-color: var(--accent) !important;
}

/* SVG size */
.tl-sb-preview-area .tl-sb-icon-wrapper a svg {
    width: 20px !important;
    height: 20px !important;
}

/* Override brand colours on SVG paths */
.tl-sb-preview-area .tl-sb-icon-wrapper a svg .tl-sb-bg { fill: transparent !important; }
.tl-sb-preview-area .tl-sb-icon-wrapper a svg .tl-sb-fg { fill: var(--primary) !important; }
.tl-sb-preview-area .tl-sb-icon-wrapper a:hover svg .tl-sb-fg { fill: var(--white) !important; }

/* Tooltip */
.tl-sb-preview-area .tlsb-tooltip {
    background: var(--primary) !important;
    color: var(--white) !important;
    font-family: var(--font-body) !important;
    font-size: 0.75rem !important;
    border-radius: 4px !important;
}

/*-----------------------------------------------------------------------------
   Tour archive sidebar — search form + layered nav filters
   ----------------------------------------------------------------------------- */

/* ── Vertical search form card ── */
aside.sidebar .form-block--vertical {
    background: #fff;
    border: 1px solid var(--border-muted-gold);
    border-radius: 16px;
    box-shadow: var(--shadow-sm);
    padding: 0;
    text-align: left;
    margin-bottom: 24px;
    overflow: hidden;
    position: relative;
}
aside.sidebar .form-block--vertical::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary), var(--accent));
    z-index: 1;
}
aside.sidebar .form-block--vertical .form-block__title {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-title-secondary);
    text-align: left;
    margin: 0;
    padding: 22px 22px 4px;
}
aside.sidebar .form-block--vertical .form-block__description {
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--color-text-muted);
    margin: 0 0 16px;
    padding: 6px 22px 0;
}
aside.sidebar .form-block--vertical form {
    padding: 0 22px 22px;
}
aside.sidebar .form-block--vertical .form-block__item {
    margin-bottom: 10px;
}

/* Text / search input */
aside.sidebar .form-block--vertical input[type="text"],
aside.sidebar .form-block--vertical input[type="search"] {
    width: 100%;
    height: 46px;
    background: var(--off-white);
    border: 1px solid var(--border-default);
    border-radius: 8px;
    padding: 0 40px 0 14px;
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-text-body);
    box-shadow: none;
    outline: none;
    transition: border-color var(--transition), box-shadow var(--transition);
}
aside.sidebar .form-block--vertical input[type="text"]:focus,
aside.sidebar .form-block--vertical input[type="search"]:focus {
    border-color: var(--accent);
    box-shadow: var(--shadow-focus);
    background: #fff;
}
aside.sidebar .form-block--vertical input::placeholder { color: var(--color-text-muted); }

/* Search icon */
aside.sidebar .form-block--vertical .form-block__field-width-icon i {
    color: var(--accent) !important;
    font-size: 1.1rem !important;
    top: 50% !important;
    right: 12px !important;
}

/* Bootstrap-select button — shared style used by both sidebars */
aside.sidebar .form-block--vertical .bootstrap-select > .btn,
aside.sidebar .form-block--vertical .bootstrap-select .btn-default,
aside.sidebar .woocommerce-widget-layered-nav-dropdown .bootstrap-select > .btn,
aside.sidebar .woocommerce-widget-layered-nav-dropdown .bootstrap-select .btn-default {
    width: 100%;
    height: 46px;
    background: var(--off-white) !important;
    border: 1px solid var(--border-default) !important;
    border-radius: 8px !important;
    padding: 0 36px 0 14px;
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-text-body) !important;
    box-shadow: none !important;
    display: flex;
    align-items: center;
    transition: border-color var(--transition);
    position: relative;
}
aside.sidebar .form-block--vertical .bootstrap-select > .btn:hover,
aside.sidebar .form-block--vertical .bootstrap-select > .btn:focus,
aside.sidebar .woocommerce-widget-layered-nav-dropdown .bootstrap-select > .btn:hover,
aside.sidebar .woocommerce-widget-layered-nav-dropdown .bootstrap-select > .btn:focus {
    border-color: var(--accent) !important;
    box-shadow: var(--shadow-focus) !important;
    outline: none !important;
}
aside.sidebar .form-block--vertical .bootstrap-select .caret,
aside.sidebar .woocommerce-widget-layered-nav-dropdown .bootstrap-select .caret { display: none !important; }

aside.sidebar .form-block--vertical .bootstrap-select .filter-option {
    font-size: 1rem;
    line-height: normal;
}

/* Dropdown menu — shared */
aside.sidebar .form-block--vertical .bootstrap-select .dropdown-menu,
aside.sidebar .woocommerce-widget-layered-nav-dropdown .bootstrap-select .dropdown-menu {
    border: 1px solid var(--border-muted-gold) !important;
    border-radius: 10px !important;
    box-shadow: var(--shadow-md) !important;
    margin-top: 4px;
    overflow: hidden;
}
aside.sidebar .form-block--vertical .bootstrap-select .dropdown-menu li a,
aside.sidebar .woocommerce-widget-layered-nav-dropdown .bootstrap-select .dropdown-menu li a {
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--color-text-body);
    padding: 9px 14px;
    border-bottom: none !important;
}
aside.sidebar .form-block--vertical .bootstrap-select .dropdown-menu li a:hover,
aside.sidebar .form-block--vertical .bootstrap-select .dropdown-menu li.selected a,
aside.sidebar .woocommerce-widget-layered-nav-dropdown .bootstrap-select .dropdown-menu li a:hover,
aside.sidebar .woocommerce-widget-layered-nav-dropdown .bootstrap-select .dropdown-menu li.selected a {
    background: var(--off-white) !important;
    color: var(--accent) !important;
}

/* Submit buttons — shared */
aside.sidebar .form-block--vertical button[type="submit"],
aside.sidebar .form-block--vertical input[type="submit"],
aside.sidebar .woocommerce-widget-layered-nav-dropdown__submit {
    width: 100%;
    height: 48px;
    margin-top: 4px;
    background: var(--primary) !important;
    color: var(--white) !important;
    border: none !important;
    border-radius: 8px !important;
    font-family: var(--font-body) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background var(--transition), box-shadow var(--transition) !important;
    box-shadow: var(--shadow-sm) !important;
}
aside.sidebar .form-block--vertical button[type="submit"]:hover,
aside.sidebar .form-block--vertical input[type="submit"]:hover,
aside.sidebar .woocommerce-widget-layered-nav-dropdown__submit:hover {
    background: var(--accent) !important;
    box-shadow: var(--shadow-gold) !important;
}

/* ── WC layered nav list (Departure Cities) ── */
aside.sidebar .widget_layered_nav {
    background: #fff;
    border: 1px solid var(--border-muted-gold);
    border-radius: 16px;
    box-shadow: var(--shadow-sm);
    padding: 28px 22px;
    margin-bottom: 24px;
}
aside.sidebar .woocommerce-widget-layered-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
aside.sidebar .woocommerce-widget-layered-nav-list__item {
    padding: 10px 0;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
aside.sidebar .woocommerce-widget-layered-nav-list__item:first-child { padding-top: 0; }
aside.sidebar .woocommerce-widget-layered-nav-list__item:last-child { border-bottom: none; padding-bottom: 0; }
aside.sidebar .woocommerce-widget-layered-nav-list__item a {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-text-body);
    border-bottom: none !important;
    transition: color var(--transition);
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
}

aside.sidebar .woocommerce-widget-layered-nav-list__item a:hover { color: var(--accent); }
aside.sidebar .woocommerce-widget-layered-nav-list__item .count {
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--accent);
    background: rgba(198, 167, 93, 0.1);
    border: 1px solid var(--border-muted-gold);
    border-radius: 20px;
    padding: 1px 9px;
    line-height: 1.6;
    flex-shrink: 0;
}

/* ── WC layered nav dropdown form (Filter by Destination) ── */
aside.sidebar .woocommerce-widget-layered-nav-dropdown {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/*-----------------------------------------------------------------------------
   FAQ — Question form widget
   ----------------------------------------------------------------------------- */

/* ── Outer card ── */
.form-block--faq {
    background: #fff !important;
    border: 1px solid var(--border-muted-gold);
    border-radius: 15px !important;
    padding: 32px 24px !important;
    box-shadow: var(--shadow-sm);
    position: relative;
    overflow: hidden;
    margin-bottom: 20px !important;
}

/* Gold top accent bar */
.form-block--faq::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary), var(--accent));
    border-radius: 16px 16px 0 0;
}

/* ── Title ── */
.form-block--faq .form-block__title {
    font-family: var(--font-display);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--color-title-primary);
    margin: 0 0 8px;
    line-height: 1.3;
    padding-bottom: 15px;
}

/* ── Description ── */
.form-block--faq .form-block__description {
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--color-text-body);
    margin-bottom: 22px;
}

/* ── Inputs & textarea ── */
.form-block--faq .form-block__item {
    margin-bottom: 12px;
}
.form-block--faq .form-block__item input[type="text"],
.form-block--faq .form-block__item input[type="email"],
.form-block--faq .form-block__item textarea {
    width: 100%;
    background: var(--off-white);
    border: 1px solid var(--border-default);
    border-radius: 8px;
    padding: 11px 14px;
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--color-text-body);
    box-shadow: none;
    transition: border-color var(--transition), box-shadow var(--transition);
    outline: none;
}
.form-block--faq .form-block__item input::placeholder,
.form-block--faq .form-block__item textarea::placeholder {
    color: var(--color-text-muted);
    font-size: 0.9rem;
}
.form-block--faq .form-block__item input:focus,
.form-block--faq .form-block__item textarea:focus {
    border-color: var(--accent);
    box-shadow: var(--shadow-focus);
    background: #fff;
}
.form-block--faq .form-block__item textarea {
    min-height: 100px;
    resize: vertical;
}

/* ── Submit button ── */
.form-block--faq .atbtn--primary {
    background: var(--primary) !important;
    color: var(--white) !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 12px 20px !important;
    font-family: var(--font-body) !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    width: 100% !important;
    cursor: pointer;
    transition: background var(--transition), box-shadow var(--transition) !important;
    box-shadow: var(--shadow-sm) !important;
}
.form-block--faq .atbtn--primary:hover {
    background: var(--accent) !important;
    box-shadow: var(--shadow-gold) !important;
}
.woocommerce-widget-layered-nav-list__item{
    display: flex !important;
    padding: 15px 5px !important;
}
.widget .tagcloud a{
    font-size: 12px !important;
    font-weight: 500 !important;
    background-color: var(--accent) !important;
    border-radius: 7px !important;
    font-family: var(--font-body);
}
/* =============================================================================
   Category Cards  —  full-bleed image with slide-up hover
   ============================================================================= */

/* ── Grid row ── */
.category-card__row-separator { display: block; }

/* ── Outer wrapper (Bootstrap col) ── */
.category-card-wrap {
    padding: 8px;
    box-sizing: border-box;
}

/* ── The link itself IS the card ── */
a.category-card {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition), transform var(--transition);
}

a.category-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-3px);
    text-decoration: none;
    color: inherit;
}

/* ── Background image panel ── */
.category-card__image {
    position: relative;
    width: 100%;
    padding-top: 66%;
    background-size: cover;
    background-position: center;
    background-color: var(--off-white);
}

/* ── Dark gradient overlay — stronger at bottom ── */
.category-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(31, 31, 31, 0.05) 0%,
        rgba(31, 31, 31, 0.30) 45%,
        rgba(31, 31, 31, 0.72) 100%
    );
    transition: background var(--transition);
}

a.category-card:hover .category-card__overlay {
    background: linear-gradient(
        to bottom,
        rgba(31, 31, 31, 0.10) 0%,
        rgba(31, 31, 31, 0.38) 40%,
        rgba(31, 31, 31, 0.80) 100%
    );
}

/* ── Content block: sits at bottom of image ── */
.category-card__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 18px 20px 16px;
}

/* ── Title — always visible ── */
.category-card__title {
    font-family: var(--font-display);
    font-size: 1.65rem;
    font-weight: 600;
    color: var(--white);
    margin: 0;
    line-height: 1.3;
    text-shadow: 0 1px 4px rgba(0,0,0,0.40);
    letter-spacing: 0.01em;
    transition: transform var(--transition);
}

a.category-card:hover .category-card__title {
    transform: translateY(-4px);
}

/* ── Hover content — hidden by default, slides up ── */
.category-card__hover-content {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transform: translateY(6px);
    transition:
        max-height 0.40s cubic-bezier(0.4, 0, 0.2, 1),
        opacity    0.35s ease,
        transform  0.35s ease;
}

a.category-card:hover .category-card__hover-content {
    max-height: 120px;
    opacity: 1;
    transform: translateY(0);
}

/* ── Description text ── */
.category-card__description {
    font-family: var(--font-body);
    font-size: 0.97rem;
    color: rgba(245, 242, 235, 0.88);
    margin: 8px 0 6px;
    line-height: 1.55;
}

/* ── Tour count badge ── */
.category-card__count {
    display: inline-block;
    font-family: var(--font-body);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--primary);
    background: var(--accent);
    padding: 3px 10px;
    border-radius: 20px;
    line-height: 1.6;
}

/* ── Gold bottom border slides in on hover ── */
a.category-card::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition);
}

a.category-card:hover::after {
    transform: scaleX(1);
}

/* ── Responsive ── */
@media (max-width: 767px) {
    .category-card__image { padding-top: 58%; }
    .category-card__title { font-size: 1.35rem; }
    /* Always show description on mobile — no hover state */
    .category-card__hover-content {
        max-height: 120px;
        opacity: 1;
        transform: none;
    }
}

.ptcgrid__item-wrap{
    margin-bottom: 20px !important;
}

/* =============================================================================
   CTA3 Block  —  vc_cta3 "Tailor Made" section
   All h2/h3/p tags stay in DOM untouched — CSS only, zero SEO impact
   ============================================================================= */

/* ── Outer container: warm dark background with subtle gold border ── */
.vc_cta3.vc_cta3-style-classic {
    background: var(--primary) !important;
    border: 1px solid var(--border-muted-gold-dark) !important;
    border-radius: 12px !important;
    padding: 48px 52px !important;
    box-shadow: var(--shadow-md-dark) !important;
    position: relative;
    overflow: hidden;
}

/* ── Subtle gold shimmer top line ── */
.vc_cta3.vc_cta3-style-classic::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--accent), transparent);
}

/* ── H2 headline ── */
.vc_cta3.vc_cta3-style-classic .vc_cta3-content-header h2 {
    font-family: var(--font-display) !important;
    font-size: 3rem !important;
    font-weight: 600 !important;
    color: var(--color-title-on-dark) !important;
    line-height: 1.25 !important;
    margin: 0 0 20px !important;
    letter-spacing: 0.01em;
}

/* ── Body paragraph ── */
.vc_cta3.vc_cta3-style-classic .vc_cta3-content > p {
    font-family: var(--font-body) !important;
    font-size: 1.5rem !important;
    color: rgba(245, 242, 235, 0.82) !important;
    line-height: 1.85 !important;
    margin-bottom: 24px !important;
}

/* ── Inline <strong> in body ── */
.vc_cta3.vc_cta3-style-classic .vc_cta3-content > p strong {
    color: var(--color-title-accent) !important;
    font-weight: 600;
}

/* ── H3 closing CTA line ── */
.vc_cta3.vc_cta3-style-classic .vc_cta3-content h3 {
    font-family: var(--font-display) !important;
    font-size: 1.9rem !important;
    font-weight: 500 !important;
    font-style: italic;
    color: var(--color-title-accent) !important;
    line-height: 1.4 !important;
    margin: 0 0 8px !important;
}

.vc_cta3.vc_cta3-style-classic .vc_cta3-content h3 strong,
.vc_cta3.vc_cta3-style-classic .vc_cta3-content h3 b {
    color: var(--white) !important;
    font-style: normal;
}

/* ── CTA button ── */
.vc_cta3.vc_cta3-style-classic .vc_cta3-actions .vc_btn3 {
    display: inline-block !important;
    font-family: var(--font-body) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--primary) !important;
    background: var(--accent) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 14px 36px !important;
    box-shadow: var(--shadow-gold) !important;
    transition: background var(--transition), box-shadow var(--transition), transform var(--transition) !important;
    text-decoration: none !important;
}

.vc_cta3.vc_cta3-style-classic .vc_cta3-actions .vc_btn3:hover {
    background: var(--accent-hover) !important;
    box-shadow: var(--shadow-gold-dark) !important;
    transform: translateY(-2px) !important;
    color: var(--white) !important;
    text-decoration: none !important;
}

/* ── Actions row spacing ── */
.vc_cta3.vc_cta3-style-classic .vc_cta3-actions {
    margin-top: 28px !important;
    text-align: center !important;
}

/* ── Responsive ── */
@media (max-width: 767px) {
    .vc_cta3.vc_cta3-style-classic {
        padding: 32px 24px !important;
    }
    .vc_cta3.vc_cta3-style-classic .vc_cta3-content-header h2 {
        font-size: 2.1rem !important;
    }
    .vc_cta3.vc_cta3-style-classic .vc_cta3-content h3 {
        font-size: 1.5rem !important;
    }
}

/* =============================================================================
   Strong Testimonials  —  average rating block + testimonial cards
   All text/headings stay in DOM — CSS only, zero SEO impact
   ============================================================================= */

/* ── Average Rating Block — Option A: white card, stacked vertical ── */
.strong-rating-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--white);  
    padding: 26px 48px;
    margin-bottom: 36px;
    text-align: center;
}

/* "Average Rating:" label */
.strong-rating-title {
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    display: block;
}

/* Stars row */
.strong-rating {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    line-height: 1;
}

.strong-rating .star svg {
    width: 32px;
    height: 32px;
    fill: var(--accent);
    filter: drop-shadow(0 2px 4px rgba(198,167,93,0.40));
}

/* Empty star placeholder */
.strong-rating .star0 {
    display: none;
}

/* Score + count — "5.0 stars (based on 5 ratings)" */
.strong-rating-summary {
    display: block;
    font-family: var(--font-display);
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--color-title-secondary);
    letter-spacing: 0.01em;
    line-height: 1.2;
}

/* ── Testimonial Grid ── */
.strong-view.wpmtst-default {
    margin-top: 0;
}

.strong-content.strong-paginated {
    display: flex;
    flex-direction: column;
}

/* ── Single testimonial card ── */
.wpmtst-testimonial-inner {
    background: var(--white);
    border: 1px solid var(--border-default);
    border-radius: 10px;
    padding: 28px 32px 24px;
    box-shadow: var(--shadow-sm);
    position: relative;
    transition: box-shadow var(--transition), transform var(--transition);
}

.wpmtst-testimonial-inner:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}


/* ── Testimonial heading (h3) ── */
.wpmtst-testimonial-heading {
    font-family: var(--font-display) !important;
    font-size: 2.3rem !important;
    font-weight: 600 !important;
    color: var(--color-title-secondary) !important;
    margin: 0 0 14px !important;
    line-height: 1.3 !important;
    padding-left: 8px;
}

/* ── Review body text ── */
.wpmtst-testimonial-content p {
    font-family: var(--font-body);
    font-size: 1.4rem;
    color: var(--color-text-body);
    line-height: 1.8;
    margin: 0;
}

/* ── Reviewer name ── */
.wpmtst-testimonial-field.testimonial-name {
    margin-top: 18px;
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent);
}

/* ── Pager navigation ── */
.simplePagerList {
    margin-top: 28px;
    text-align: center;
}

.simplePagerNav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: inline-flex;
    gap: 8px;
}

.simplePagerNav li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1.5px solid var(--border-default);
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--primary);
    text-decoration: none;
    transition: background var(--transition), border-color var(--transition), color var(--transition);
}

.simplePagerNav li a:hover,
.simplePagerNav li.currentPage a {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--primary);
    text-decoration: none;
}

/* ── Responsive ── */
@media (max-width: 767px) {
    .strong-rating-wrapper {
        padding: 16px 18px;
        gap: 8px 10px;
    }
    .wpmtst-testimonial-inner {
        padding: 22px 20px 18px;
    }
}
.main-nav .current-menu-item:after{
    content: none !important;
}
/* =============================================================================
   Tour Archive Grid  —  .tours-grid + .tour-card
   ============================================================================= */

/* ── Grid wrapper ── */
.viator-tours-grid-wrapper {
    width: 100%;
}

.tours-grid {
    display: grid;
    gap: 24px;
}

.tours-grid--cols-3 {
    grid-template-columns: repeat(2, 1fr);
}

.tours-grid--cols-2 {
    grid-template-columns: repeat(2, 1fr);
}

.tours-grid--cols-4 {
    grid-template-columns: repeat(4, 1fr);
}

/* ── Card — the <a> is the card ── */
a.tour-card {
    display: flex;
    flex-direction: column;
    background: var(--white);
    border: 1px solid var(--border-default);
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition), transform var(--transition);
    height: 100%;
}

a.tour-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
    text-decoration: none;
    color: inherit;
}

/* ── Image ── */
.tour-card-image {
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
    aspect-ratio: 4 / 3;
    background: var(--off-white);
}

.tour-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

a.tour-card:hover .tour-card-image img {
    transform: scale(1.06);
}

/* ── Content area ── */
.tour-card-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 18px 20px 20px;
    gap: 10px;
}

/* ── Route: From → To ── */
.tour-card-route {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    font-family: var(--font-body);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.tour-card-route-arrow {
    color: var(--accent);
    font-size: 0.65rem;
}

.tour-card-route i {
    color: var(--accent);
    margin-right: 2px;
}

/* ── Title ── */
.tour-card-title {
    font-family: var(--font-display) !important;
    font-size: 1.5rem !important;
    font-weight: 600 !important;
    color: var(--color-title-primary) !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Subtitle ── */
.tour-card-subtitle {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-text-muted);
    line-height: 1.55;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Details row (duration, type) ── */
.tour-card-details {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid var(--border-subtle);
}

.tour-card-detail {
    display: flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-body);
    font-size: 0.92rem;
    color: var(--color-text-muted);
}

.tour-card-detail i {
    color: var(--accent);
    font-size: 0.9rem;
    flex-shrink: 0;
}

/* ── Price ── */
.tour-card-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding-top: 6px;
}

.tour-card-price-label {
    font-family: var(--font-body);
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.tour-card-price-amount {
    font-family: var(--font-display);
    font-size: 1.7rem;
    font-weight: 600;
    color: var(--primary);
    line-height: 1;
}

.tour-card-price-amount .woocommerce-Price-amount,
.tour-card-price-amount bdi {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
}

/* ── Responsive ── */
@media (max-width: 991px) {
    .tours-grid--cols-3 {
        grid-template-columns: repeat(2, 1fr);
    }
    .tours-grid--cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .tours-grid--cols-3,
    .tours-grid--cols-2 {
        grid-template-columns: 1fr;
    }
    .tour-card-title {
        font-size: 1.3rem !important;
    }
}

  .wc-wrap{font-family:var(--font-body);background:var(--white);padding:3.5rem 0rem;}
  .wc-heading{display:flex;align-items:center;gap:1rem;margin:0 0 2rem;}
  .wc-heading h2{font-family:var(--font-display);font-size:2rem;font-weight:300;font-style:italic;color:var(--primary);margin:0;white-space:nowrap;}
  .wc-heading::after{content:'';flex:1;height:1px;background:var(--border);}
  .wc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);}
  .wc-card{background:var(--white);padding:1.5rem 1.25rem 1.4rem;display:flex;flex-direction:column;gap:.65rem;transition:background var(--t);}
  .wc-icon{width:40px;height:40px;border-radius:50%;background:rgba(198,167,93,.1);border:1px solid rgba(198,167,93,.3);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .wc-icon svg{width:18px;height:18px;stroke:var(--accent);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
  .wc-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin:0;}
  .wc-desc{font-size:12px;line-height:1.65;color:var(--muted);margin:0;}
  .woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb a, .woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb{
    color:white
  }
  .pt-tour-hero__meta{
    display: none !important;
  }
.section-white .last-posts__item__content{
    padding-top:50px !important;
}
.atbtn{
    background: var(--primary);
}
/*-----------------------------------------------------------------------------
   Product Categories — col-xs-6 → full width on mobile
   ----------------------------------------------------------------------------- */
@media (max-width: 480px) {
    .product-categories .col-xs-6,
    ul.product-categories .col-xs-6,
    .products .col-xs-6 {
        width: 100% !important;
        float: none !important;
    }
}

/*-----------------------------------------------------------------------------
   404
   ----------------------------------------------------------------------------- */
