/*!
Theme Name: UiCore Pro Child
Theme URI: https://uicore.co
Description: One framework for all your website needs.
Author: UiCore
Author URI: https://uicore.co
Template: uicore-pro
Version: 1.0.0
Text Domain: uicore-pro-child
*/
/* ==========================================================================
   Custom properties
   ========================================================================== */
:root {
    --bct-accent       : var(--uicore-accent, #9c2d2f);
    --bct-bg-subtle    : #f7f7f7;
    --bct-border       : #d0d0d0;
    --bct-border-light : #e5e5e5;
    --bct-text         : #5b5b5b;
    --bct-text-dark    : #3d3d3d;
    --bct-text-muted   : #aaaaaa;
}
/* ==========================================================================
   Utilities
   ========================================================================== */
/* PLL switcher */
.uicore-navbar nav.uicore li.pll-parent-menu-item .sub-menu, .uicore-navbar nav.uicore li.pll-parent-menu-item .sub-menu:not(.uicore-megamenu) { min-width : auto; }
.ui-menu-item-wrapper img { margin-bottom : -2px; }
/* Accessible / SEO : visually hidden */
.bct-sr-only {
    border   : 0;
    clip     : rect(0, 0, 0, 0);
    height   : 1px;
    margin   : -1px;
    overflow : hidden;
    padding  : 0;
    position : absolute;
    width    : 1px;
}
/* ==========================================================================
   WooCommerce tabs — icon styling
   ========================================================================== */
.woocommerce-tabs ul.tabs li a i {
    font-size    : .8em;
    margin-right : 5px;
    opacity      : .6;
    transition   : opacity .15s;
}
.woocommerce-tabs ul.tabs li.active a i,
.woocommerce-tabs ul.tabs li a:hover i {
    opacity : 1;
}
/* ==========================================================================
   Aperçu — "En un coup d'œil"
   ========================================================================== */
.bct-apercu {
    border-bottom         : 1px solid var(--bct-border);
    border-top            : 1px solid var(--bct-border);
    display               : grid;
    grid-template-columns : repeat(3, 1fr);
    list-style            : none;
    margin                : 0 0 1.75em;
    padding               : 0;
}
.bct-apercu__item {
    border-right : 1px solid #e0e0e0;
    padding      : 14px 16px;
}
.bct-apercu__item:nth-child(3n),
.bct-apercu__item:last-child {
    border-right : none;
}
.bct-apercu__item:nth-child(n+4) {
    border-top : 1px solid #e0e0e0;
}
.bct-apercu__value {
    color         : var(--bct-text-dark);
    display       : block;
    font-size     : .9rem;
    font-weight   : 600;
    line-height   : 1.3;
    margin-bottom : 4px;
}
.bct-apercu__label {
    align-items    : center;
    color          : var(--bct-text-muted);
    display        : flex;
    font-size      : .65rem;
    font-weight    : 400;
    gap            : 5px;
    letter-spacing : .08em;
    text-transform : uppercase;
}
.bct-apercu__label i {
    font-size : .7rem;
}
/* ==========================================================================
   Itinerary accordion
   ========================================================================== */
/* h3 reset — prevents heading styles from leaking into accordion triggers */
.bct-step__heading,
.bct-faq__heading {
    font-size   : inherit;
    font-weight : inherit;
    line-height : inherit;
    margin      : 0;
    padding     : 0;
}
.bct-itinerary {
    border-top : 1px solid var(--bct-border);
}
.bct-step {
    border-bottom : 1px solid var(--bct-border-light);
}
.bct-step__trigger {
    align-items : center;
    background  : none;
    border      : none;
    color       : inherit;
    cursor      : pointer;
    display     : flex;
    gap         : 20px;
    padding     : 20px 0;
    text-align  : left;
    transition  : opacity .15s;
    width       : 100%;
}
.bct-step__trigger:hover .bct-step__title,
.bct-step__trigger:hover .bct-step__chevron {
    color : var(--bct-accent);
}
.bct-step__trigger[aria-expanded="true"] .bct-step__title,
.bct-step__trigger[aria-expanded="true"] .bct-step__chevron {
    color : var(--bct-text);
}
.bct-step__day {
    color          : var(--bct-text-muted);
    flex-shrink    : 0;
    font-size      : .65rem;
    font-weight    : 600;
    letter-spacing : .1em;
    min-width      : 32px;
    text-transform : uppercase;
}
.bct-step__info {
    display        : flex;
    flex           : 1;
    flex-direction : column;
    gap            : 4px;
    min-width      : 0;
}
.bct-step__title {
    color       : var(--bct-text-dark);
    font-size   : .95rem;
    font-weight : 600;
    line-height : 1.3;
}
.bct-step__route {
    color          : #bbbbbb;
    font-size      : .72rem;
    letter-spacing : .02em;
}
.bct-step__transports {
    color       : #cccccc;
    display     : flex;
    flex-shrink : 0;
    font-size   : .8rem;
    gap         : 10px;
}
.bct-step__chevron {
    color       : #cccccc;
    flex-shrink : 0;
    font-size   : .75rem;
    text-align  : center;
    transition  : color .15s;
    width       : 16px;
}
/* Step body */
.bct-step__body {
    padding : 4px 0 28px 52px;
}
.bct-step__desc {
    color         : var(--bct-text);
    font-size     : .875rem;
    line-height   : 1.8;
    margin-bottom : 18px;
}
.bct-step__desc > :first-child { margin-top : 0; }
.bct-step__desc > :last-child { margin-bottom : 0; }
.bct-step__meta {
    background    : var(--bct-bg-subtle);
    border-radius : 4px;
    color         : var(--bct-text);
    display       : flex;
    flex-wrap     : wrap;
    font-size     : .8rem;
    gap           : 6px 0;
    list-style    : none;
    margin        : 0 0 18px;
    padding       : 12px 16px;
}
.bct-step__meta li {
    align-items : center;
    display     : flex;
    gap         : 6px;
    padding     : 0 20px 0 0;
}
.bct-step__meta i {
    color      : #888888;
    font-size  : .7rem;
    text-align : center;
    width      : 13px;
}
.bct-step__notes {
    border-top  : 1px solid #f0f0f0;
    color       : #bbbbbb;
    font-size   : .78rem;
    font-style  : italic;
    line-height : 1.65;
    padding-top : 14px;
}
.bct-step__notes p { margin : 0 0 4px; }
.bct-step__notes p:last-child { margin : 0; }
/* ==========================================================================
   FAQ accordion
   ========================================================================== */
.bct-faq__list {
    border-bottom : 1px solid var(--bct-border);
}
.bct-faq__item {
    border-top : 1px solid var(--bct-border-light);
}
.bct-faq__trigger {
    align-items : center;
    background  : none;
    border      : none;
    color       : inherit;
    cursor      : pointer;
    display     : flex;
    gap         : 16px;
    padding     : 18px 0;
    text-align  : left;
    width       : 100%;
}
.bct-faq__question {
    color       : var(--bct-text-dark);
    flex        : 1;
    font-size   : .9rem;
    font-weight : 600;
    line-height : 1.4;
    transition  : color .15s;
}
.bct-faq__chevron {
    color       : #cccccc;
    flex-shrink : 0;
    font-size   : .75rem;
    text-align  : center;
    transition  : color .15s;
    width       : 16px;
}
.bct-faq__trigger:hover .bct-faq__question,
.bct-faq__trigger:hover .bct-faq__chevron,
.bct-faq__trigger[aria-expanded="true"] .bct-faq__question,
.bct-faq__trigger[aria-expanded="true"] .bct-faq__chevron {
    color : var(--bct-accent);
}
.bct-faq__answer {
    color       : var(--bct-text);
    font-size   : .875rem;
    line-height : 1.8;
    padding     : 0 24px 20px 0;
}
.bct-faq__answer > :first-child { margin-top : 0; }
.bct-faq__answer > :last-child { margin-bottom : 0; }
/* ==========================================================================
   Scheduled departures
   ========================================================================== */
.bct-departs {
    margin : 0 0 1.75em;
}
.bct-departs__heading {
    color          : var(--bct-text-muted);
    font-size      : .65rem;
    font-weight    : 400;
    letter-spacing : .08em;
    margin         : 0 0 10px;
    text-transform : uppercase;
}
.bct-departs__list {
    border-top : 1px solid var(--bct-border);
    list-style : none;
    margin     : 0;
    padding    : 0;
}
.bct-depart {
    align-items   : center;
    border-bottom : 1px solid var(--bct-border-light);
    display       : flex;
    gap           : 12px;
    padding       : 11px 0;
}
.bct-depart__dates {
    color       : var(--bct-text-dark);
    flex        : 1;
    font-size   : .85rem;
    font-weight : 500;
}
.bct-depart__arrow {
    color  : #cccccc;
    margin : 0 4px;
}
.bct-depart__badge {
    border-radius  : 2px;
    flex-shrink    : 0;
    font-size      : .6rem;
    font-weight    : 600;
    letter-spacing : .07em;
    padding        : 3px 7px;
    text-transform : uppercase;
    white-space    : nowrap;
}
.bct-depart--prevu .bct-depart__badge,
.bct-depart--sur_demande .bct-depart__badge { background : #f0f0f0; color : #888888; }
.bct-depart--confirme .bct-depart__badge { background : #eaf4ea; color : #3a7a3a; }
.bct-depart--complet .bct-depart__badge { background : #f7eaea; color : var(--bct-accent); }
.bct-depart--dernieres_places .bct-depart__badge { background : #fef3e2; color : #b06000; }
.bct-depart__prix {
    color       : var(--bct-text-dark);
    flex-shrink : 0;
    font-size   : .875rem;
    font-weight : 600;
    min-width   : 72px;
    text-align  : right;
}
/* ==========================================================================
   Practical info tab
   ========================================================================== */
.bct-infos__notes {
    color         : var(--bct-text);
    font-size     : .875rem;
    line-height   : 1.8;
    margin-bottom : 36px;
}
.bct-infos__notes > :first-child { margin-top : 0; }
.bct-infos__notes > :last-child { margin-bottom : 0; }
.bct-infos__cols {
    display               : grid;
    gap                   : 40px;
    grid-template-columns : repeat(auto-fit, minmax(240px, 1fr));
}
.bct-checklist__heading {
    color          : var(--bct-text-muted);
    font-size      : .65rem;
    font-weight    : 400;
    letter-spacing : .08em;
    margin         : 0 0 12px;
    text-transform : uppercase;
}
.bct-checklist__list {
    list-style : none;
    margin     : 0;
    padding    : 0;
}
.bct-checklist__list li {
    align-items   : baseline;
    border-bottom : 1px solid #f0f0f0;
    color         : var(--bct-text);
    display       : flex;
    font-size     : .875rem;
    gap           : 10px;
    line-height   : 1.5;
    padding       : 8px 0;
}
.bct-checklist__list li:last-child { border-bottom : none; }
.bct-checklist__list i {
    flex-shrink : 0;
    font-size   : .7rem;
    margin-top  : 2px;
    text-align  : center;
    width       : 12px;
}
.bct-checklist--inclus .bct-checklist__list i { color : #3a7a3a; }
.bct-checklist--exclus .bct-checklist__list i { color : #bbbbbb; }
/* ==========================================================================
   Responsive
   ========================================================================== */
@media (min-width : 1025px) {
    #wrapper-navbar .uicore-menu { padding-left : 15px; padding-right : 15px; }
}
@media (max-width : 600px) {
    .bct-step__transports { display : none; }
    .bct-step__body { padding-left : 0; }
}
@media (max-width : 480px) {
    .bct-depart__badge { display : none; }
}
