.aepb-section{width:100%;box-sizing:border-box}.aepb-inner{width:100%;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box}.aepb-title,.aepb-section h2,.aepb-section h3{margin:0 0 22px}.aepb-section p:first-child{margin-top:0}.aepb-section p:last-child{margin-bottom:0}.aepb-empty-preview{padding:24px;border:1px dashed #ccd2d8;background:#f8fafb;text-align:center;color:#65727d}

/* Hero */
.aepb-hero{position:relative;width:100%;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;overflow:hidden}.aepb-hero-overlay{position:absolute;inset:0}.aepb-hero-content{position:relative;z-index:1;width:100%;margin:auto}.aepb-hero-title{margin:0 0 14px!important}.aepb-hero-subtitle{line-height:1.55;letter-spacing:.25px}

/* Gallery + summary */
.aepb-gallery-layout{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;width:100%}.aepb-gallery-main,.aepb-gallery-small{min-width:0;min-height:0;overflow:hidden}.aepb-gallery-side{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;min-width:0}.aepb-gallery-image{display:block;width:100%;height:100%;object-fit:cover}.aepb-summary-starting,.aepb-summary-persons{font-size:11px;color:#7a848b;line-height:1.7}.aepb-summary-price{line-height:1.08;margin:2px 0 5px}.aepb-summary-meta{margin:12px 0 15px;line-height:1.7}.aepb-summary-description{line-height:1.75}

/* Highlights */
.aepb-highlights-list{display:flex;flex-direction:column}.aepb-highlight-item{display:flex;align-items:flex-start;gap:10px}.aepb-highlight-icon{flex:0 0 auto;font-weight:800}.aepb-highlight-text{line-height:1.6}

/* Itinerary */
.aepb-itinerary-list{display:flex;flex-direction:column}.aepb-itinerary-row{display:flex;align-items:stretch}.aepb-day-marker{position:relative;flex:0 0 72px}.aepb-day-marker:after{content:"";position:absolute;top:48px;bottom:-16px;left:24px;width:1px;background:#d7ddd9}.aepb-itinerary-row:last-child .aepb-day-marker:after{display:none}.aepb-day-badge{position:relative;z-index:2;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(20,150,71,.18);font-size:9px;line-height:1}.aepb-day-badge strong{font-size:15px;margin-top:3px}.aepb-itinerary-card{flex:1;min-width:0;border:1px solid #dadfdd;overflow:hidden}.aepb-itinerary-head{appearance:none;border:0;width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px 14px 20px;background:#fff;cursor:pointer;text-align:left;min-width:0}.aepb-itinerary-day-title{display:block!important;flex:1 1 auto!important;min-width:0!important;max-width:100%;line-height:1.35;white-space:normal!important;overflow-wrap:break-word!important;word-wrap:break-word!important;word-break:break-word!important;hyphens:auto}.aepb-arrow{flex:0 0 auto;transition:transform .2s ease}.aepb-itinerary-row.is-open .aepb-arrow{transform:rotate(180deg)}.aepb-itinerary-content{border-top:1px solid rgba(0,0,0,.06);background:#fff}.aepb-pills{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.aepb-pill{display:inline-flex;align-items:center;border:1px solid #e3e6ea;background:#f3f2f6;border-radius:999px;padding:7px 12px;color:#5c6772;font-size:13px;line-height:1.2}.aepb-itinerary-description{color:#56636c;line-height:1.8}

/* Included excluded */
.aepb-inex-grid{display:grid;grid-template-columns:1fr 1fr}.aepb-inex-heading{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:600;margin-bottom:22px}.aepb-inex-heading-icon{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.aepb-inex-list{display:flex;flex-direction:column}.aepb-inex-item{display:flex;align-items:flex-start;gap:12px}.aepb-inex-icon{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 18px;font-size:11px;font-weight:800;margin-top:3px}.aepb-inex-icon.is-included{border:1.5px solid currentColor}.aepb-inex-item-text{line-height:1.55}

/* Tabs shared */
.aepb-tabs{display:flex;flex-wrap:wrap;align-items:center;margin:28px 0 24px}.aepb-tab{appearance:none;border:1.5px solid #d7d7d7;display:flex;align-items:center;justify-content:center;cursor:pointer;box-sizing:border-box;white-space:nowrap;transition:.18s ease}.aepb-tabs-width-auto .aepb-tab{flex:0 0 auto;width:auto}.aepb-tabs-width-equal .aepb-tab{flex:1 1 0;min-width:110px}.aepb-tabs-width-fixed .aepb-tab{flex:0 0 var(--aepb-tab-fixed,170px);width:var(--aepb-tab-fixed,170px)}.aepb-tabs-width-full .aepb-tab{flex:1 1 100%;width:100%}.aepb-tab-panel[hidden]{display:none!important}

/* Hotels */
.aepb-package-panel-title{font-size:26px;color:#16234a;margin-bottom:12px!important}.aepb-hotel-table{border:1px solid #e4e6ea;background:#fff;overflow:hidden}.aepb-hotel-table-head,.aepb-hotel-table-row{display:grid;grid-template-columns:15.5% 68% 16.5%}.aepb-hotel-table-head{color:#fff;font-weight:800;text-transform:uppercase;font-size:15px}.aepb-hotel-table-head>div,.aepb-hotel-table-row>div{padding:14px 18px;border-right:1px solid rgba(0,0,0,.1);min-width:0;overflow-wrap:break-word;word-wrap:break-word}.aepb-hotel-table-head>div:last-child,.aepb-hotel-table-row>div:last-child{border-right:0}.aepb-hotel-table-row>div{border-top:1px solid #e4e6ea;color:#2b2f33;line-height:1.45}.aepb-price-cards{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}.aepb-price-card{padding:20px;border-radius:7px;box-sizing:border-box}.aepb-price-card strong{display:block;font-size:25px;line-height:1.15;margin:6px 0}.aepb-price-card-top{font-size:13px}

/* Transport */
.aepb-transport-list{display:flex;flex-direction:column;gap:18px}.aepb-transport-card{width:100%;display:flex;align-items:center;gap:18px;border:1px solid #dedede;box-shadow:0 8px 22px rgba(0,0,0,.05);box-sizing:border-box}.aepb-transport-info{flex:1;min-width:0}.aepb-vehicle-category{display:flex;align-items:center;gap:9px;font-size:14px;line-height:1.2;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:8px}.aepb-vehicle-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}.aepb-vehicle-name{line-height:1.2;margin-bottom:18px}.aepb-vehicle-detail{display:flex;flex-direction:column;margin-bottom:10px}.aepb-vehicle-detail span{font-size:12px;color:#6c6f72;text-transform:uppercase}.aepb-vehicle-detail strong{font-size:16px;color:#14263e}.aepb-transport-image{display:flex;align-items:center;justify-content:center}.aepb-transport-image img{display:block;width:100%;height:auto;max-height:190px;object-fit:contain}

/* Payments */
.aepb-payment-procedure-list{margin:0;padding-left:24px;line-height:1.5}.aepb-payment-procedure-list li:last-child{margin-bottom:0}.aepb-payment-mode-content{line-height:1.55}.aepb-payment-mode-content ul{margin:0;padding-left:21px}.aepb-payment-mode-content li{margin-bottom:6px}

/* Map */
.aepb-map-frame{width:100%;background:#f5f5f5}.aepb-map-frame iframe{display:block;width:100%;border:0}

/* Booking form */
.aepb-booking-form-output{width:100%}

/* FAQ */
.aepb-faq-title{text-align:center}.aepb-faq-list{display:flex;flex-direction:column}.aepb-faq-question{appearance:none;border:0;width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;cursor:pointer}.aepb-faq-item.is-open .aepb-arrow{transform:rotate(180deg)}.aepb-faq-answer{line-height:1.7;background:#fff}

/* CTA */
.aepb-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:28px}.aepb-cta-title{margin-bottom:8px!important}.aepb-cta-text{color:#56636c;line-height:1.6}.aepb-cta-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap;box-sizing:border-box}

@media(max-width:767px){
  .aepb-gallery-layout{height:auto!important;grid-template-columns:1fr}.aepb-gallery-main{height:250px}.aepb-gallery-side{height:230px;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
  .aepb-itinerary-row{gap:10px}.aepb-day-marker{flex-basis:54px!important}.aepb-day-marker:after{left:20px}.aepb-itinerary-head{padding:13px 14px;gap:10px}.aepb-itinerary-day-title{font-size:15px!important;flex:1 1 auto!important;min-width:0!important;max-width:100%;white-space:normal!important;overflow-wrap:break-word!important;word-break:break-word!important}.aepb-pill{font-size:12px}
  .aepb-inex-grid{grid-template-columns:1fr;gap:30px!important}.aepb-inex-heading{font-size:19px}.aepb-inex-item-text{font-size:15px!important}
  .aepb-tabs{gap:10px}.aepb-tab{white-space:normal;line-height:1.1}.aepb-tabs-width-auto .aepb-tab{flex:1 1 calc(50% - 5px)}
  .aepb-hotel-table{border:0;background:transparent}.aepb-hotel-table-head{display:none}.aepb-hotel-table-row{display:block;border:1px solid #e4e6ea;border-radius:12px;overflow:hidden;margin-bottom:12px}.aepb-hotel-table-row>div{border-right:0;padding:12px 14px}.aepb-hotel-table-row>div:before{content:attr(data-label);display:block;font-size:11px;font-weight:800;text-transform:uppercase;color:#f39a08;margin-bottom:4px}.aepb-price-card{flex-basis:100%!important;max-width:100%!important}
  .aepb-transport-card{flex-direction:column;align-items:stretch;min-height:0!important;padding:24px 20px!important}.aepb-transport-image{max-width:100%!important;flex-basis:auto!important;width:100%}.aepb-transport-image img{max-height:180px}
  .aepb-faq-answer{padding-left:18px!important;padding-right:18px!important}.aepb-faq-question{padding-left:18px!important;padding-right:18px!important}
  .aepb-cta-inner{flex-direction:column;align-items:stretch}.aepb-cta-button{width:100%}
}

/* v2.0.2 - mobile viewport / horizontal-overflow hardening
   Applied only on pages where AEPB frontend JS detects an AEPB widget. */
html.aepb-page-active,
html.aepb-page-active body.aepb-page-active {
  max-width: 100%;
  overflow-x: clip;
}

body.aepb-page-active .elementor,
body.aepb-page-active .elementor-element,
body.aepb-page-active [class*="elementor-widget-aepb-"] {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

body.aepb-page-active [class*="elementor-widget-aepb-"] > .elementor-widget-container,
.aepb-section,
.aepb-hero,
.aepb-inner,
.aepb-hero-content,
.aepb-gallery-layout,
.aepb-gallery-side,
.aepb-summary,
.aepb-highlights-list,
.aepb-itinerary-list,
.aepb-itinerary-row,
.aepb-itinerary-card,
.aepb-inex-grid,
.aepb-tabs,
.aepb-tab-panel,
.aepb-hotel-table,
.aepb-price-cards,
.aepb-transport-list,
.aepb-transport-card,
.aepb-map-frame,
.aepb-booking-form-output,
.aepb-faq-list,
.aepb-cta-inner {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.aepb-section img,
.aepb-hero img,
.aepb-section iframe,
.aepb-hero iframe,
.aepb-booking-form-output iframe,
.aepb-booking-form-output img,
.aepb-booking-form-output video,
.aepb-booking-form-output canvas,
.aepb-booking-form-output svg {
  max-width: 100%;
}

.aepb-hero-title,
.aepb-hero-subtitle,
.aepb-title,
.aepb-itinerary-day-title,
.aepb-inex-item-text,
.aepb-package-panel-title,
.aepb-vehicle-name,
.aepb-payment-mode-content,
.aepb-faq-question,
.aepb-faq-answer,
.aepb-cta-title,
.aepb-cta-text {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Third-party booking forms sometimes ship fixed input widths. */
.aepb-booking-form-output form,
.aepb-booking-form-output form > *,
.aepb-booking-form-output input:not([type="checkbox"]):not([type="radio"]),
.aepb-booking-form-output select,
.aepb-booking-form-output textarea,
.aepb-booking-form-output button {
  max-width: 100%;
  box-sizing: border-box;
}

@media(max-width:767px){
  body.aepb-page-active [class*="elementor-widget-aepb-"] {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .aepb-hero,
  .aepb-section {
    width: 100% !important;
    max-width: 100% !important;
  }

  .aepb-hero-content,
  .aepb-inner {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Keep very long package names inside the screen. Elementor still controls
     typography; these rules only make wrapping safe. */
  .aepb-hero-title,
  .aepb-hero-subtitle {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    max-width: 100% !important;
  }

  /* Fixed/large tab settings must never create a page wider than the phone. */
  .aepb-tabs-width-fixed .aepb-tab,
  .aepb-tabs-width-equal .aepb-tab,
  .aepb-tabs-width-auto .aepb-tab {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .aepb-tabs-width-fixed .aepb-tab {
    flex: 1 1 calc(50% - 5px) !important;
    width: auto !important;
  }

  .aepb-tab,
  .aepb-cta-button {
    white-space: normal !important;
    overflow-wrap: anywhere;
    text-align: center;
  }

  .aepb-hotel-table-row,
  .aepb-price-card,
  .aepb-transport-card,
  .aepb-map-frame,
  .aepb-map-frame iframe,
  .aepb-booking-form-output,
  .aepb-faq-list {
    width: 100% !important;
    max-width: 100% !important;
  }

  .aepb-hotel-table-row > div,
  .aepb-transport-info,
  .aepb-vehicle-detail,
  .aepb-payment-mode-content,
  .aepb-faq-answer {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .aepb-booking-form-output table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
