.elementor-kit-5{--e-global-color-primary:#0B6E4F;--e-global-color-secondary:#14201C;--e-global-color-text:#5A6661;--e-global-color-accent:#E8A33D;--e-global-color-brgbg:#FAFAF8;--e-global-color-brgbgalt:#F4F4F0;--e-global-color-brgcard:#FFFFFF;--e-global-color-brgsoft:#EAF2EE;--e-global-color-brgrule:#E4E4DF;--e-global-color-brgsoftrule:#D5E2DB;--e-global-color-brgbody:#3A4642;--e-global-color-brgbodysoft:#33453D;--e-global-color-brgwarn:#A4571A;--e-global-color-brgftxt:#C9D2CE;--e-global-color-brgfmut:#7E8C86;--e-global-color-brgfdim:#98A5A0;--e-global-color-brgdot:#C9CCC6;--e-global-color-brgctasub:#D6E8DF;--e-global-typography-primary-font-family:"Outfit";--e-global-typography-primary-font-size:clamp(34px, 6.4vw, 60px);--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.04em;--e-global-typography-primary-letter-spacing:-0.035em;--e-global-typography-secondary-font-family:"Outfit";--e-global-typography-secondary-font-size:clamp(25px, 3.4vw, 38px);--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.1em;--e-global-typography-secondary-letter-spacing:-0.03em;--e-global-typography-text-font-family:"IBM Plex Sans";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.6em;--e-global-typography-accent-font-family:"IBM Plex Sans";--e-global-typography-accent-font-size:11px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.4em;--e-global-typography-accent-letter-spacing:0.08em;--e-global-typography-brgh1-font-family:"Outfit";--e-global-typography-brgh1-font-size:clamp(34px, 6.4vw, 60px);--e-global-typography-brgh1-font-weight:700;--e-global-typography-brgh1-line-height:1.04em;--e-global-typography-brgh1-letter-spacing:-0.035em;--e-global-typography-brgh2-font-family:"Outfit";--e-global-typography-brgh2-font-size:clamp(25px, 3.4vw, 38px);--e-global-typography-brgh2-font-weight:700;--e-global-typography-brgh2-line-height:1.1em;--e-global-typography-brgh2-letter-spacing:-0.03em;--e-global-typography-brgh2band-font-family:"Outfit";--e-global-typography-brgh2band-font-size:clamp(24px, 3.2vw, 34px);--e-global-typography-brgh2band-font-weight:700;--e-global-typography-brgh2band-line-height:1.12em;--e-global-typography-brgh2band-letter-spacing:-0.03em;--e-global-typography-brgh2cta-font-family:"Outfit";--e-global-typography-brgh2cta-font-size:clamp(26px, 3.8vw, 42px);--e-global-typography-brgh2cta-font-weight:700;--e-global-typography-brgh2cta-line-height:1.1em;--e-global-typography-brgh2cta-letter-spacing:-0.03em;--e-global-typography-brgh3-font-family:"Outfit";--e-global-typography-brgh3-font-size:20px;--e-global-typography-brgh3-font-weight:600;--e-global-typography-brgh3-line-height:1.25em;--e-global-typography-brgh3-letter-spacing:-0.02em;--e-global-typography-brgh3s-font-family:"Outfit";--e-global-typography-brgh3s-font-size:18px;--e-global-typography-brgh3s-font-weight:600;--e-global-typography-brgh3s-line-height:1.25em;--e-global-typography-brgh3s-letter-spacing:-0.02em;--e-global-typography-brgh3c-font-family:"Outfit";--e-global-typography-brgh3c-font-size:19px;--e-global-typography-brgh3c-font-weight:600;--e-global-typography-brgh3c-line-height:1.25em;--e-global-typography-brgh3c-letter-spacing:-0.02em;--e-global-typography-brglead-font-family:"IBM Plex Sans";--e-global-typography-brglead-font-size:clamp(16px, 1.6vw, 19px);--e-global-typography-brglead-font-weight:400;--e-global-typography-brglead-line-height:1.6em;--e-global-typography-brgbody-font-family:"IBM Plex Sans";--e-global-typography-brgbody-font-size:16px;--e-global-typography-brgbody-font-weight:400;--e-global-typography-brgbody-line-height:1.6em;--e-global-typography-brgsmall-font-family:"IBM Plex Sans";--e-global-typography-brgsmall-font-size:14px;--e-global-typography-brgsmall-font-weight:400;--e-global-typography-brgsmall-line-height:1.5em;--e-global-typography-brgsmallb-font-family:"IBM Plex Sans";--e-global-typography-brgsmallb-font-size:14px;--e-global-typography-brgsmallb-font-weight:500;--e-global-typography-brgsmallb-line-height:1.35em;--e-global-typography-brgtiny-font-family:"IBM Plex Sans";--e-global-typography-brgtiny-font-size:13px;--e-global-typography-brgtiny-font-weight:400;--e-global-typography-brgtiny-line-height:1.5em;--e-global-typography-brgtinyb-font-family:"IBM Plex Sans";--e-global-typography-brgtinyb-font-size:13px;--e-global-typography-brgtinyb-font-weight:600;--e-global-typography-brgtinyb-line-height:1.5em;--e-global-typography-brgmicro-font-family:"IBM Plex Sans";--e-global-typography-brgmicro-font-size:12px;--e-global-typography-brgmicro-font-weight:400;--e-global-typography-brgmicro-line-height:1.6em;--e-global-typography-brglabel-font-family:"IBM Plex Sans";--e-global-typography-brglabel-font-size:11px;--e-global-typography-brglabel-font-weight:600;--e-global-typography-brglabel-text-transform:uppercase;--e-global-typography-brglabel-line-height:1.4em;--e-global-typography-brglabel-letter-spacing:0.08em;--e-global-typography-brgbadge-font-family:"IBM Plex Sans";--e-global-typography-brgbadge-font-size:11px;--e-global-typography-brgbadge-font-weight:600;--e-global-typography-brgbadge-text-transform:uppercase;--e-global-typography-brgbadge-line-height:1.4em;--e-global-typography-brgbadge-letter-spacing:0.06em;--e-global-typography-brgth-font-family:"Outfit";--e-global-typography-brgth-font-size:15px;--e-global-typography-brgth-font-weight:600;--e-global-typography-brgth-line-height:1.4em;--e-global-typography-brgstat-font-family:"Outfit";--e-global-typography-brgstat-font-size:18px;--e-global-typography-brgstat-font-weight:600;--e-global-typography-brgstat-line-height:1.3em;--e-global-typography-brgmodel-font-family:"Outfit";--e-global-typography-brgmodel-font-size:17px;--e-global-typography-brgmodel-font-weight:600;--e-global-typography-brgmodel-line-height:1.3em;--e-global-typography-brgprice-font-family:"Outfit";--e-global-typography-brgprice-font-size:26px;--e-global-typography-brgprice-font-weight:700;--e-global-typography-brgprice-line-height:1.2em;--e-global-typography-brgprice-letter-spacing:-0.02em;--e-global-typography-brgstars-font-family:"IBM Plex Sans";--e-global-typography-brgstars-font-size:15px;--e-global-typography-brgstars-font-weight:400;--e-global-typography-brgstars-line-height:1em;--e-global-typography-brgstarss-font-family:"IBM Plex Sans";--e-global-typography-brgstarss-font-size:14px;--e-global-typography-brgstarss-font-weight:400;--e-global-typography-brgstarss-line-height:1em;--e-global-typography-brgmono-font-family:"IBM Plex Mono";--e-global-typography-brgmono-font-size:11px;--e-global-typography-brgmono-font-weight:500;--e-global-typography-brgmono-line-height:1.4em;--e-global-typography-brgmono-letter-spacing:0.04em;--e-global-typography-brgmonos-font-family:"IBM Plex Mono";--e-global-typography-brgmonos-font-size:10px;--e-global-typography-brgmonos-font-weight:500;--e-global-typography-brgmonos-line-height:1.4em;--e-global-typography-brgmonos-letter-spacing:0.04em;--e-global-typography-brgquote-font-family:"IBM Plex Sans";--e-global-typography-brgquote-font-size:15px;--e-global-typography-brgquote-font-weight:400;--e-global-typography-brgquote-line-height:1.6em;--e-global-typography-brgfaq-font-family:"Outfit";--e-global-typography-brgfaq-font-size:17px;--e-global-typography-brgfaq-font-weight:600;--e-global-typography-brgfaq-line-height:1.35em;--e-global-typography-brgfaq-letter-spacing:-0.015em;--e-global-typography-brgfaqa-font-family:"IBM Plex Sans";--e-global-typography-brgfaqa-font-size:15px;--e-global-typography-brgfaqa-font-weight:400;--e-global-typography-brgfaqa-line-height:1.65em;--e-global-typography-brgnav-font-family:"IBM Plex Sans";--e-global-typography-brgnav-font-size:14px;--e-global-typography-brgnav-font-weight:500;--e-global-typography-brgnav-line-height:1.4em;--e-global-typography-brgwordmark-font-family:"Outfit";--e-global-typography-brgwordmark-font-size:17px;--e-global-typography-brgwordmark-font-weight:700;--e-global-typography-brgwordmark-line-height:1.2em;--e-global-typography-brgwordmark-letter-spacing:-0.02em;--e-global-typography-brgfwordmark-font-family:"Outfit";--e-global-typography-brgfwordmark-font-size:16px;--e-global-typography-brgfwordmark-font-weight:700;--e-global-typography-brgfwordmark-line-height:1.2em;--e-global-typography-brgfwordmark-letter-spacing:-0.02em;--e-global-typography-brgbtns-font-family:"Outfit";--e-global-typography-brgbtns-font-size:14px;--e-global-typography-brgbtns-font-weight:600;--e-global-typography-brgbtns-line-height:1.3em;--e-global-typography-brgbtns-letter-spacing:-0.01em;--e-global-typography-brgbtn-font-family:"Outfit";--e-global-typography-brgbtn-font-size:15px;--e-global-typography-brgbtn-font-weight:600;--e-global-typography-brgbtn-line-height:1.3em;--e-global-typography-brgbtn-letter-spacing:-0.01em;--e-global-typography-brgbtnm-font-family:"Outfit";--e-global-typography-brgbtnm-font-size:16px;--e-global-typography-brgbtnm-font-weight:600;--e-global-typography-brgbtnm-line-height:1.3em;--e-global-typography-brgbtnm-letter-spacing:-0.01em;--e-global-typography-brgbtnl-font-family:"Outfit";--e-global-typography-brgbtnl-font-size:17px;--e-global-typography-brgbtnl-font-weight:600;--e-global-typography-brgbtnl-line-height:1.3em;--e-global-typography-brgbtnl-letter-spacing:-0.01em;--e-global-typography-brgbtnxl-font-family:"Outfit";--e-global-typography-brgbtnxl-font-size:18px;--e-global-typography-brgbtnxl-font-weight:700;--e-global-typography-brgbtnxl-line-height:1.3em;--e-global-typography-brgbtnxl-letter-spacing:-0.01em;background-color:#FAFAF8;color:var( --e-global-color-secondary );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:var( --e-global-color-primary );}.elementor-kit-5 a:hover{color:var( --e-global-color-secondary );}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-family:var( --e-global-typography-brgbtnxl-font-family ), Sans-serif;font-size:var( --e-global-typography-brgbtnxl-font-size );font-weight:var( --e-global-typography-brgbtnxl-font-weight );line-height:var( --e-global-typography-brgbtnxl-line-height );letter-spacing:var( --e-global-typography-brgbtnxl-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:var( --e-global-typography-brgbtnxl-font-size );line-height:var( --e-global-typography-brgbtnxl-line-height );letter-spacing:var( --e-global-typography-brgbtnxl-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:var( --e-global-typography-brgbtnxl-font-size );line-height:var( --e-global-typography-brgbtnxl-line-height );letter-spacing:var( --e-global-typography-brgbtnxl-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ---- Bali Ride Guide utilities (design system) ---- */
a { text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
.elementor-button:hover, .brg-chips a:hover, .elementor-icon-list-item a:hover { text-decoration: none; }
::selection { background: var(--e-global-color-accent); color: var(--e-global-color-secondary); }

.elementor-widget-text-editor p { margin: 0; }
.elementor-widget-text-editor blockquote { margin: 0; padding: 0; border: 0; font-style: normal; quotes: none; }

.brg-num, .brg-num * { font-variant-numeric: tabular-nums; }
.brg-balance .elementor-heading-title { text-wrap: balance; }
.brg-pretty p { text-wrap: pretty; }
.brg-nowrap .elementor-button { white-space: nowrap; }
@media (min-width: 768px) { .brg-nowrap .elementor-heading-title, .brg-nowrap a { white-space: nowrap; } }
/* header CTA keeps its slot; the brand shrinks instead */
.elementor-location-header .elementor-widget-button { flex-shrink: 0; }
/* header nav stays a single scrollable row, as in the mockup */
.brg-scroll-x .elementor-nav-menu--layout-horizontal .elementor-nav-menu { flex-wrap: nowrap; }
.brg-center, .brg-center p { text-align: center; margin-inline: auto; }
.brg-maxch-32 { max-width: 32ch; }
.brg-maxch-46 { max-width: 46ch; }
.brg-maxch-48 { max-width: 48ch; }
.brg-maxch-58 { max-width: 58ch; }
.brg-maxch-70 { max-width: 70ch; }

/* image placeholders - replace these containers with Image widgets */
.brg-stripe { background-image: repeating-linear-gradient(135deg, #F1F1EC 0 10px, #E9E9E3 10px 20px); }
.brg-stripe-sm { background-image: repeating-linear-gradient(135deg, #F1F1EC 0 8px, #E9E9E3 8px 16px); }
.brg-stripe-green { background-image: repeating-linear-gradient(135deg, #EDF3F0 0 8px, #E4EDE8 8px 16px); }
.brg-stripe-map { background-image: repeating-linear-gradient(135deg, #EDEDE7 0 12px, #E6E6E0 12px 24px); }
.brg-ratio-43 { aspect-ratio: 4 / 3; min-height: 220px; }
.brg-ph-tag .elementor-heading-title { display: inline-block; background: var(--e-global-color-brgbg); border: 1px solid var(--e-global-color-brgrule); border-radius: 8px; padding: 6px 9px; }
.brg-stripe-sm .brg-ph-tag .elementor-heading-title, .brg-stripe-green .brg-ph-tag .elementor-heading-title { border-radius: 6px; padding: 3px 6px; }

/* real photography replacing the mockup placeholders */
.brg-hero-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 28%; border-radius: 12px; border: 1px solid var(--e-global-color-brgrule); display: block; }
.brg-card-thumb img { width: 100%; height: 120px; object-fit: contain; background: var(--e-global-color-brgbgalt); border: 1px solid var(--e-global-color-brgrule); border-radius: 10px; padding: 6px; display: block; }

/* badges */
.brg-badge .elementor-heading-title { display: inline-flex; align-items: center; gap: 8px; background: var(--e-global-color-brgsoft); border-radius: 999px; padding: 6px 12px; }
.brg-card-featured { position: relative; }
.brg-badge-top { position: absolute; top: -11px; left: 19px; z-index: 1; }
.brg-badge-top .elementor-heading-title { display: inline-block; background: var(--e-global-color-accent); border-radius: 999px; padding: 4px 10px; }

/* area chips */
.brg-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.brg-chips a { display: inline-block; font-size: 13px; line-height: 1.4; color: var(--e-global-color-primary); border: 1px solid var(--e-global-color-brgrule); border-radius: 999px; padding: 5px 10px; }
.brg-chips a:hover { color: var(--e-global-color-secondary); border-color: var(--e-global-color-secondary); }

/* comparison table */
.brg-figcaption { margin-top: auto; }

/* FAQ - horizontal rules only, circled +/- on the right */
.brg-faq .elementor-accordion-item { border-left: 0; border-right: 0; border-top: 0; }
.brg-faq .elementor-accordion-item:first-child { border-top: 1px solid var(--e-global-color-brgrule); }
.brg-faq .elementor-tab-title { padding-left: 0; padding-right: 0; background: transparent; }
.brg-faq .elementor-tab-content { padding-left: 0; border-top: 0; background: transparent; }
.brg-faq .elementor-accordion-icon { width: 24px; height: 24px; flex: none; border-radius: 50%; border: 1px solid var(--e-global-color-brgrule); display: flex; align-items: center; justify-content: center; font-size: 11px; }
.brg-faq .elementor-accordion-icon span { width: auto; }

/* header */
.brg-scroll-x { overflow: visible; }
@media (max-width: 767px) { .brg-scroll-x { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; } }
.brg-scroll-x::-webkit-scrollbar { display: none; }

/* footer link columns: no icon slot */
.elementor-widget-icon-list .elementor-icon-list-icon:empty { display: none; }

/* interactive zone map */
.brg-map { position: relative; }
.brg-map-svg { display: block; width: 100%; max-width: 860px; margin-inline: auto; height: auto; border: 1px solid var(--e-global-color-brgrule); border-radius: 12px; background: var(--e-global-color-brgcard); }
.brg-zone a { text-decoration: none; }
.brg-zone-shape { fill: var(--e-global-color-brgsoft); stroke: var(--e-global-color-brgcard); stroke-width: 2; transition: fill .15s ease; }
.brg-zone:hover .brg-zone-shape { fill: var(--e-global-color-primary); }
.brg-zone a:focus-visible .brg-zone-shape { fill: var(--e-global-color-primary); }
.brg-zone a:focus-visible { outline: 2px solid var(--e-global-color-accent); outline-offset: 2px; }
.brg-zone-name, .brg-zone-price { text-anchor: middle; pointer-events: none; paint-order: stroke fill; stroke: var(--e-global-color-brgcard); stroke-width: 5px; stroke-linejoin: round; }
.brg-zone-name { font-family: var(--e-global-typography-brgh3s-font-family), sans-serif; font-weight: 600; font-size: 19px; letter-spacing: -0.02em; fill: var(--e-global-color-secondary); }
.brg-zone-price { font-family: var(--e-global-typography-brgtiny-font-family), sans-serif; font-size: 15px; fill: var(--e-global-color-text); opacity: 0; transition: opacity .15s ease; }
.brg-map-credit { margin: 8px 0 0; text-align: center; font-family: var(--e-global-typography-brgmicro-font-family), sans-serif; font-size: 11px; color: var(--e-global-color-text); }
/* below 768px the shapes stay tappable but the 8 area cards carry the names */
@media (max-width: 767px) { .brg-zone-name, .brg-zone-price { display: none; } }

/* a boxed container's inner is a flex item: min-width:auto lets a grid inside it
   push past the container box. This is what overflowed the footer at ~900px. */
.e-con > .e-con-inner { min-width: 0; }

/* ============ city pages ============ */

/* One rhythm for every section: 8px inside the heading cluster, 24px between blocks. */
.brg-part { display: flex; flex-direction: column; gap: 24px; }
.brg-part-head { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.brg-part-head > * { margin: 0; }

.brg-city-hero { display: flex; flex-direction: column; gap: 18px; }
.brg-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--e-global-color-text); }
.brg-crumbs a { color: var(--e-global-color-text); }
.brg-crumb-current { color: var(--e-global-color-secondary); font-weight: 500; }
.brg-city-hero-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(22px, 3vw, 48px); align-items: start; }
.brg-city-hero-text { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.brg-city-hero-text h1 { margin: 0; font-family: var(--e-global-typography-brgh1-font-family), sans-serif; font-weight: 700; font-size: clamp(32px, 5.4vw, 52px); line-height: 1.05; letter-spacing: -0.035em; text-wrap: balance; color: var(--e-global-color-secondary); }
.brg-lead { margin: 0; font-size: clamp(16px, 1.5vw, 18px); line-height: 1.7; color: var(--e-global-color-brgbody); max-width: 52ch; text-wrap: pretty; }
.brg-rating { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 14px; color: var(--e-global-color-text); }
.brg-rating strong { color: var(--e-global-color-secondary); font-weight: 600; }
.brg-stars { color: var(--e-global-color-accent); font-size: 15px; }
.brg-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--e-global-color-brgdot); display: inline-block; }
.brg-hero-cta { margin: 4px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.brg-cta-note { font-size: 13px; color: var(--e-global-color-text); }
.elementor img.brg-city-hero-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; border: 1px solid var(--e-global-color-brgrule); display: block; }

/* Buttons. `.elementor a` is (0,1,1) and beats a bare class, hence the .elementor prefix.
   Sizes and paddings mirror the Elementor button widgets used on the home page. */
.elementor a.brg-btn {
  display: inline-block; text-align: center;
  font-family: var(--e-global-typography-brgbtn-font-family), sans-serif;
  font-weight: var(--e-global-typography-brgbtn-font-weight, 600);
  font-size: var(--e-global-typography-brgbtn-font-size, 15px);
  letter-spacing: var(--e-global-typography-brgbtn-letter-spacing, -0.01em);
  line-height: 1.3;
  color: var(--e-global-color-brgbg);
  background: var(--e-global-color-primary);
  border: 1px solid var(--e-global-color-primary);
  border-radius: 12px; padding: 13px 20px;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.elementor a.brg-btn:hover { background: var(--e-global-color-secondary); border-color: var(--e-global-color-secondary); color: var(--e-global-color-brgbg); text-decoration: none; }
.elementor a.brg-btn:focus-visible { outline: 2px solid var(--e-global-color-accent); outline-offset: 2px; }

.elementor a.brg-btn-md { font-size: var(--e-global-typography-brgbtnm-font-size, 16px); padding: 14px 22px; }
.elementor a.brg-btn-lg { font-size: var(--e-global-typography-brgbtnl-font-size, 17px); padding: 16px 28px; }
.elementor a.brg-btn-block { display: block; width: 100%; padding: 11px 14px; }
.elementor a.brg-btn-outline { background: transparent; color: var(--e-global-color-primary); border-color: var(--e-global-color-primary); }
.elementor a.brg-btn-outline:hover { background: var(--e-global-color-primary); border-color: var(--e-global-color-primary); color: var(--e-global-color-brgbg); }
.elementor a.brg-btn-amber { background: var(--e-global-color-accent); border-color: var(--e-global-color-accent); color: var(--e-global-color-secondary); font-weight: 700; font-size: var(--e-global-typography-brgbtnxl-font-size, 18px); padding: 17px 34px; }
.elementor a.brg-btn-amber:hover { background: var(--e-global-color-brgbg); border-color: var(--e-global-color-brgbg); color: var(--e-global-color-secondary); }

/* shared type helpers */
.brg-label { display: block; font-family: var(--e-global-typography-brglabel-font-family), sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--e-global-color-text); }
.brg-label-accent { color: var(--e-global-color-primary); }
.brg-small { font-size: 14px; line-height: 1.55; color: var(--e-global-color-text); margin: 0; }
.brg-tiny { font-size: 13px; color: var(--e-global-color-text); }
.brg-micro { display: block; font-size: 12px; color: var(--e-global-color-text); }
.brg-body-strong { margin: 0; font-size: 16px; line-height: 1.65; color: var(--e-global-color-brgbody); max-width: 48ch; }
.brg-section-intro { margin: 0; font-size: clamp(16px, 1.5vw, 18px); line-height: 1.65; color: var(--e-global-color-brgbody); max-width: 60ch; }
.brg-head-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; width: 100%; }
.brg-city-sec h2 { margin: 0; font-family: var(--e-global-typography-brgh2-font-family), sans-serif; font-weight: 700; font-size: clamp(25px, 3.4vw, 36px); letter-spacing: -0.03em; line-height: 1.1; color: var(--e-global-color-secondary); }

/* fact bar */
.brg-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 18px 24px; }
.brg-fact-value { font-family: var(--e-global-typography-brgstat-font-family), sans-serif; font-weight: 600; font-size: 17px; color: var(--e-global-color-secondary); margin-top: 4px; }

/* cards */
.brg-grid { display: grid; gap: 16px; }
.brg-grid-216 { grid-template-columns: repeat(auto-fit, minmax(216px, 1fr)); gap: 12px; }
.brg-grid-232 { grid-template-columns: repeat(auto-fit, minmax(232px, 1fr)); }
.brg-grid-258 { grid-template-columns: repeat(auto-fit, minmax(258px, 1fr)); gap: 14px; }
.brg-grid-262 { grid-template-columns: repeat(auto-fit, minmax(262px, 1fr)); }
.brg-card { position: relative; display: flex; flex-direction: column; gap: 12px; background: var(--e-global-color-brgcard); border: 1px solid var(--e-global-color-brgrule); border-radius: 12px; padding: 20px; }
.brg-card h3 { margin: 0; font-family: var(--e-global-typography-brgh3c-font-family), sans-serif; font-weight: 600; font-size: 19px; letter-spacing: -0.02em; line-height: 1.25; color: var(--e-global-color-secondary); }
.brg-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.brg-card-foot { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--e-global-color-brgrule); display: flex; flex-direction: column; gap: 12px; }
.brg-card-featured { border: 2px solid var(--e-global-color-primary); padding: 19px; }
span.brg-badge-top { position: absolute; top: -11px; left: 19px; background: var(--e-global-color-accent); color: var(--e-global-color-secondary); border-radius: 999px; padding: 4px 10px; font-family: var(--e-global-typography-brgbadge-font-family), sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.elementor img.brg-model-photo { width: 100%; height: 92px; object-fit: contain; background: var(--e-global-color-brgbgalt); border: 1px solid var(--e-global-color-brgrule); border-radius: 10px; padding: 6px; display: block; }
.brg-model-name { display: block; font-family: var(--e-global-typography-brgmodel-font-family), sans-serif; font-weight: 600; font-size: 18px; color: var(--e-global-color-secondary); }
.brg-price { font-family: var(--e-global-typography-brgprice-font-family), sans-serif; font-weight: 700; font-size: 26px; letter-spacing: -0.02em; color: var(--e-global-color-secondary); }
.brg-cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }

/* "not sure between two models" band */
.brg-band-soft { background: var(--e-global-color-brgsoft); border: 1px solid var(--e-global-color-brgsoftrule); border-radius: 12px; padding: 20px 22px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.brg-band-title { font-family: var(--e-global-typography-brgh3s-font-family), sans-serif; font-weight: 600; font-size: 19px; letter-spacing: -0.02em; color: var(--e-global-color-secondary); margin-bottom: 2px; }
.brg-band-soft .brg-small { color: var(--e-global-color-brgbodysoft); }

/* delivery - the side column carries the visual so it balances the text block */
.brg-delivery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: start; }
.brg-delivery-text { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.brg-delivery-side { display: flex; flex-direction: column; gap: 10px; }
.elementor img.brg-delivery-visual { width: 100%; height: clamp(220px, 26vw, 300px); object-fit: cover; border-radius: 12px; border: 1px solid var(--e-global-color-brgrule); display: block; }
.brg-visual-caption { margin: 0; font-size: 12px; color: var(--e-global-color-text); }
.brg-hoods { display: flex; flex-wrap: wrap; gap: 6px; }
.brg-hoods span { font-size: 13px; background: var(--e-global-color-brgcard); border: 1px solid var(--e-global-color-brgrule); border-radius: 999px; padding: 6px 11px; }
.brg-mini-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.brg-mini { background: var(--e-global-color-brgcard); border: 1px solid var(--e-global-color-brgrule); border-radius: 12px; padding: 14px; font-size: 14px; }
.brg-mini .brg-label { margin-bottom: 4px; }

/* extra photography - only shown when there are enough images to read as a strip */
.brg-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.brg-gallery figure { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.elementor img.brg-gallery-img { width: 100%; height: clamp(200px, 22vw, 260px); object-fit: cover; border-radius: 12px; border: 1px solid var(--e-global-color-brgrule); display: block; }
.brg-gallery figcaption { font-size: 12px; color: var(--e-global-color-text); }

/* riding here */
.brg-card-note { gap: 8px; }
.brg-note-title { margin: 0; font-family: var(--e-global-typography-brgh3s-font-family), sans-serif; font-weight: 600; font-size: 17px; letter-spacing: -0.02em; color: var(--e-global-color-secondary); }
.brg-card-note .brg-small { line-height: 1.6; }

/* FAQ - native <details>, no JavaScript */
.brg-faq-list { border-top: 1px solid var(--e-global-color-brgrule); }
.brg-faq-item { border-bottom: 1px solid var(--e-global-color-brgrule); }
.brg-faq-item summary { list-style: none; cursor: pointer; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 0; font-family: var(--e-global-typography-brgfaq-font-family), sans-serif; font-weight: 600; font-size: 17px; letter-spacing: -0.015em; line-height: 1.35; color: var(--e-global-color-secondary); }
.brg-faq-item summary::-webkit-details-marker { display: none; }
.brg-faq-item summary::after { content: "+"; flex: none; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--e-global-color-brgrule); display: flex; align-items: center; justify-content: center; font-size: 14px; color: var(--e-global-color-primary); }
.brg-faq-item[open] summary::after { content: "−"; }
.brg-faq-item summary:focus-visible { outline: 2px solid var(--e-global-color-accent); outline-offset: 2px; }
.brg-faq-answer { padding: 0 44px 20px 0; font-size: 15px; line-height: 1.65; color: var(--e-global-color-brgbody); }

/* final CTA */
.brg-city-cta .brg-part { align-items: center; text-align: center; gap: 20px; }
.brg-city-cta h2 { color: var(--e-global-color-brgbg); font-size: clamp(26px, 3.8vw, 40px); text-wrap: balance; }
.brg-cta-sub { margin: 0; font-size: 16px; line-height: 1.6; max-width: 48ch; color: var(--e-global-color-brgctasub); }
.brg-cta-foot { display: block; font-size: 13px; color: var(--e-global-color-brgctasub); }

/* nearby */
.elementor a.brg-nearby { background: var(--e-global-color-brgcard); border: 1px solid var(--e-global-color-brgrule); border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 4px; color: var(--e-global-color-secondary); }
.elementor a.brg-nearby:hover { border-color: var(--e-global-color-primary); text-decoration: none; color: var(--e-global-color-secondary); }
.brg-nearby-name { font-family: var(--e-global-typography-brgh3s-font-family), sans-serif; font-weight: 600; font-size: 17px; letter-spacing: -0.02em; }


/* zone archive hero */
.brg-zone-hero-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(22px, 3vw, 48px); align-items: center; }
.brg-zone-hero-text { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.brg-zone-title { margin: 0; font-family: var(--e-global-typography-brgh1-font-family), sans-serif; font-weight: 700; font-size: clamp(30px, 4.6vw, 46px); line-height: 1.06; letter-spacing: -0.035em; text-wrap: balance; color: var(--e-global-color-secondary); }
.elementor img.brg-zone-hero-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; border: 1px solid var(--e-global-color-brgrule); display: block; }
.brg-zone-map { display: block; width: 100%; height: auto; background: var(--e-global-color-brgcard); border: 1px solid var(--e-global-color-brgrule); border-radius: 12px; padding: 10px; }
.brg-zone-map-shape { fill: var(--e-global-color-brgbgalt); stroke: var(--e-global-color-brgcard); stroke-width: 2; }
.brg-zone-map-shape.is-active { fill: var(--e-global-color-primary); }

/* ============ reassurance pages ============ */
.brg-prose { display: flex; flex-direction: column; gap: 8px; }
.brg-prose h2 { margin: 0; font-family: var(--e-global-typography-brgh3-font-family), sans-serif; font-weight: 600; font-size: 22px; letter-spacing: -0.02em; line-height: 1.25; color: var(--e-global-color-secondary); }
.brg-prose .brg-body-strong { max-width: 68ch; }

/* numbered steps: the lead block on Insurance and Delivery */
.brg-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; counter-reset: brgstep; }
.brg-step { display: flex; align-items: flex-start; gap: 16px; padding: 18px 0; border-top: 1px solid var(--e-global-color-brgrule); }
.brg-step:last-child { border-bottom: 1px solid var(--e-global-color-brgrule); }
.brg-step-n { flex: none; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--e-global-color-brgsoft); color: var(--e-global-color-primary); font-family: var(--e-global-typography-brgstat-font-family), sans-serif; font-weight: 600; font-size: 14px; }
.brg-step .brg-note-title { margin-bottom: 4px; }
.brg-step .brg-small { max-width: 68ch; }

/* with / without comparison */
.brg-cmp-grid { grid-template-columns: minmax(120px, 1.1fr) 1.2fr 1.2fr; gap: 0; border: 1px solid var(--e-global-color-brgrule); border-radius: 12px; overflow: hidden; background: var(--e-global-color-brgcard); }
.brg-cmp-grid > span { padding: 13px 15px; border-bottom: 1px solid var(--e-global-color-brgrule); font-size: 14px; }
.brg-cmp-grid > span:nth-child(3n+2), .brg-cmp-grid > span:nth-child(3n) { border-left: 1px solid var(--e-global-color-brgrule); }
.brg-cmp-grid > span:nth-last-child(-n+3) { border-bottom: 0; }
.brg-cmp-h { background: var(--e-global-color-brgbgalt); font-family: var(--e-global-typography-brgth-font-family), sans-serif; font-weight: 600; font-size: 15px; color: var(--e-global-color-text); }
.brg-cmp-h.brg-cmp-yes { color: var(--e-global-color-primary); }
.brg-cmp-k { font-weight: 600; font-size: 13px; color: var(--e-global-color-secondary); }
.brg-cmp-v { color: var(--e-global-color-secondary); }
.brg-cmp-v.brg-cmp-muted { color: var(--e-global-color-text); }

.brg-band-block { width: 100%; }

/* price card: per day / per month, mirroring the Vroam booking UI */
.brg-price-rows { display: flex; flex-direction: column; gap: 6px; }
.brg-price-row { display: flex; align-items: baseline; justify-content: space-between; gap: 4px 10px; flex-wrap: wrap; }
.brg-price-row > span { white-space: nowrap; }
.brg-price-row .brg-tiny { color: var(--e-global-color-text); }
.brg-price-sm { font-family: var(--e-global-typography-brgprice-font-family), sans-serif; font-weight: 700; font-size: 20px; letter-spacing: -0.02em; color: var(--e-global-color-secondary); }
.brg-off { display: inline-block; margin-left: 6px; padding: 2px 7px; border-radius: 999px; background: var(--e-global-color-brgsoft); color: var(--e-global-color-primary); font-size: 11px; font-weight: 600; }

/* rate card: the reference grid on /prices/ */
.brg-rate-card .brg-rate-best { color: var(--e-global-color-primary); font-weight: 600; margin: 0; }
.brg-rate-card .brg-card-foot { gap: 14px; }
.brg-band-soft .brg-small + .brg-small { margin-top: 6px; }

/* ============ comparison pages ============ */
.brg-cmp-3 { grid-template-columns: minmax(110px, 0.9fr) 1.15fr 1.15fr; }
.brg-angle-body { max-width: 72ch; font-size: 17px; }
.brg-sources { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; }
.brg-sources li { font-size: 14px; color: var(--e-global-color-secondary); }
.brg-sources .brg-tiny { color: var(--e-global-color-text); }
@media (max-width: 640px) {
  .brg-cmp-grid { grid-template-columns: 1fr 1fr; }
  .brg-cmp-grid > span:nth-child(3n+1) { grid-column: 1 / -1; background: var(--e-global-color-brgbgalt); font-weight: 600; }
  .brg-cmp-grid > span:nth-child(3n+2) { border-left: 0; }
}

/* ============ guides ============ */
.brg-guide-body { display: flex; flex-direction: column; gap: 22px; }
.brg-guide-body h2 { margin: 6px 0 0; font-family: var(--e-global-typography-brgh2-font-family), sans-serif; font-weight: 700; font-size: clamp(22px, 2.6vw, 28px); letter-spacing: -0.03em; line-height: 1.15; color: var(--e-global-color-secondary); }
.brg-guide-body > p { margin: 0; }
.brg-guide-body .brg-lead { font-size: clamp(17px, 1.7vw, 20px); }
.brg-guide-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: 13px; color: var(--e-global-color-text); }
.brg-guide-card { display: flex; flex-direction: column; gap: 8px; }
.brg-guide-card h3 { margin: 0; font-family: var(--e-global-typography-brgh3s-font-family), sans-serif; font-weight: 600; font-size: 18px; letter-spacing: -0.02em; color: var(--e-global-color-secondary); }
.elementor a.brg-guide-card:hover { border-color: var(--e-global-color-primary); text-decoration: none; }

/* ============ legal pages ============ */
.brg-legal-list { margin: 0; display: flex; flex-direction: column; }
.brg-legal-row { display: grid; grid-template-columns: minmax(150px, 0.8fr) 1.6fr; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--e-global-color-brgrule); }
.brg-legal-row:first-child { border-top: 1px solid var(--e-global-color-brgrule); }
.brg-legal-row dt { font-size: 13px; font-weight: 600; color: var(--e-global-color-text); }
.brg-legal-row dd { margin: 0; font-size: 15px; color: var(--e-global-color-secondary); }
.brg-gap { display: inline-block; padding: 2px 8px; border-radius: 999px; background: var(--e-global-color-brgsoft); color: var(--e-global-color-brgwarn); font-size: 13px; font-weight: 600; }
@media (max-width: 560px) { .brg-legal-row { grid-template-columns: 1fr; gap: 2px; } }

/* ============ model pages ============ */
.elementor img.brg-model-hero-img { width: 100%; height: clamp(220px, 28vw, 320px); object-fit: contain; background: var(--e-global-color-brgbgalt); border: 1px solid var(--e-global-color-brgrule); border-radius: 12px; padding: 10px; display: block; }
.brg-model-price { max-width: 280px; width: 100%; }
.brg-spec-list .brg-legal-row dd { font-family: var(--e-global-typography-brgstat-font-family), sans-serif; font-weight: 600; }
.brg-guide-card .brg-model-photo { margin-bottom: 4px; }

/* brg phase2 */

/* ============ 404 and search ============ */
.brg-searchform { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; max-width: 520px; }
.brg-searchform input[type="search"] { flex: 1 1 220px; min-width: 0; font-family: var(--e-global-typography-brgbody-font-family), sans-serif; font-size: 15px; color: var(--e-global-color-secondary); background: var(--e-global-color-brgcard); border: 1px solid var(--e-global-color-brgrule); border-radius: 12px; padding: 12px 14px; }
.brg-searchform input[type="search"]:focus { outline: 2px solid var(--e-global-color-accent); outline-offset: 2px; }
.elementor .brg-searchform .brg-btn { border: 1px solid var(--e-global-color-primary); cursor: pointer; padding: 12px 20px; font-family: var(--e-global-typography-brgbtn-font-family), sans-serif; font-weight: 600; font-size: 15px; color: var(--e-global-color-brgbg); background: var(--e-global-color-primary); border-radius: 12px; }
.elementor .brg-searchform .brg-btn:hover { background: var(--e-global-color-secondary); border-color: var(--e-global-color-secondary); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* brg photos - the city photography is portrait, so the short landscape boxes need to crop low enough to keep the rider in frame */
.elementor img.brg-delivery-visual { height: clamp(260px, 30vw, 360px); object-position: center 62%; }
.elementor img.brg-gallery-img { object-position: center 55%; }

/* brg burger - the toggle is a flex item next to the CTA, so it has to refuse to be squashed */
.brg-burger { flex: 0 0 auto; width: auto; }
.brg-burger .elementor-menu-toggle { width: 42px; height: 42px; min-width: 42px; flex: 0 0 auto; justify-content: center; border-radius: 10px; border: 1px solid var(--e-global-color-brgrule); background: transparent; }
.brg-burger .elementor-menu-toggle i, .brg-burger .elementor-menu-toggle svg { font-size: 22px; width: 22px; height: 22px; }
@media (max-width: 767px) {
  .brg-logo .elementor-widget-image img { width: 128px; }
  .brg-nowrap .elementor-button { padding: 9px 13px; font-size: 13px; }
}

/* brg nav hover - the site-wide a:hover underline is for prose, not for menu items where colour already carries the state */
.elementor .elementor-nav-menu a:hover, .elementor .elementor-nav-menu a:focus { text-decoration: none; }/* End custom CSS */