/* Regional hubs own their layout. The optional slot class belongs to their host container. */
.tb-hub-slot{width:100%;max-width:100%;min-width:0;padding:0!important;margin:0;gap:0;--container-max-width:100%;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.tb-hub-slot>.e-con-inner{width:100%;max-width:100%;padding:0;gap:0}
.tb-hub-slot .elementor-widget-shortcode{width:100%;min-width:0;flex-shrink:0}
.tb-hub-slot .elementor-widget-container{height:auto}
.tb-hub,.tb-hub *{box-sizing:border-box}
.tb-hub{background:#e5d9c9;display:flow-root;width:100%;min-width:0;font-family:Manrope,sans-serif;color:#3a3d4a;padding:64px 32px 0}
.tb-hub-inner{width:100%;max-width:var(--tb-content-max,1600px);margin:0 auto}
.tb-hub-heading{background:rgba(176,125,98,.04);border:0;border-radius:20px;padding:16px 32px 48px;margin:0 0 64px}
.tb-hub-heading p{font-size:13px;line-height:24px;font-weight:700;letter-spacing:3px;color:#b07d62;margin:0 0 16px}
.tb-hub-heading h2{font-size:40px;line-height:46px;font-weight:300;color:#3a3d4a;margin:0;padding:0}
.tb-hub-property{display:grid;grid-template-columns:minmax(0,35.48fr) minmax(0,64.52fr);gap:40px;padding:0 32px 32px;margin:0 0 32px;border-bottom:1px solid rgba(81,83,92,.14);align-items:center}
.tb-hub-property:last-child{border-bottom:0;margin-bottom:0}.tb-hub-details,.tb-hub-gallery{min-width:0}
.tb-hub-details h3{font-size:clamp(18px,17.2px + .22vw,20px);font-weight:500;line-height:1.4;color:#3a3d4a;margin:0 0 20px;padding:0}
.tb-hub-facts{display:flex;gap:20px;margin:0;padding:0;list-style:none}
.tb-hub-facts li{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:13px;line-height:18.2px;font-weight:700;letter-spacing:3px;color:rgba(84,86,94,.59);text-transform:uppercase}
.tb-hub-facts img{display:block;width:77px;height:45px;object-fit:contain}
.tb-hub-facts .tb-bed-icon{display:block;width:76px;height:45px;flex:none;color:#74716b}
.tb-bed-icon .tb-bed-tile{fill:#c29479;fill-opacity:0.4117647059}
#tb-hub-pelion .tb-bed-icon .tb-bed-tile{fill:#e5dac9;fill-opacity:0.8588235294}
.tb-hub-facts span{white-space:nowrap}
@media(max-width:1024px){.tb-hub-property{grid-template-columns:1fr;gap:40px;padding-bottom:32px}}
@media(max-width:767px){.tb-hub{padding:32px 16px 0}.tb-hub-property{padding-left:16px;padding-right:16px}.tb-hub-heading{padding:16px 16px 32px;margin-bottom:32px}.tb-hub-heading h2{font-size:40px}.tb-hub-facts{gap:20px}}
/* Independent photo galleries. */
.tb-property-carousel{position:relative;width:100%;min-width:0;font-family:Manrope,Arial,sans-serif;color:#51535c}
.tb-property-carousel *,#tb-properties *{box-sizing:border-box}
.tb-property-carousel [hidden],#tb-properties [hidden]{display:none!important}
.tb-property-carousel svg,#tb-properties svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tb-property-carousel .tb-carousel-panels{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 20px)/3);gap:10px;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:auto}
.tb-property-carousel .tb-carousel-panel{position:relative;display:block;width:100%;min-width:0;aspect-ratio:3/2;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;padding:0;border:0;border-radius:16px;background:#e9edf0;cursor:zoom-in}
.tb-property-carousel .tb-carousel-panel img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;object-fit:cover;border-radius:16px}
.tb-property-carousel img:not([src]){visibility:hidden}
/* A quiet photo caption replaces the separate expand badge. */
.tb-property-carousel .tb-carousel-expand{position:absolute;inset:auto 0 0;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:28px 16px 14px;background:linear-gradient(transparent,rgba(18,27,34,.55));color:#fff;font-size:9px;font-weight:600;letter-spacing:1.8px;opacity:0;transform:translateY(4px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}
.tb-property-carousel .tb-carousel-expand svg{width:16px;height:16px;stroke-width:1.3}
.tb-property-carousel .tb-carousel-panel:hover .tb-carousel-expand,.tb-property-carousel .tb-carousel-panel:focus-visible .tb-carousel-expand{opacity:1;transform:none}
@media(hover:none){.tb-property-carousel .tb-carousel-expand{opacity:1;transform:none}}
.tb-property-carousel .tb-carousel-panel{cursor:grab;user-select:none;-webkit-user-select:none}
.tb-property-carousel.tb-is-dragging .tb-carousel-panel{cursor:grabbing}
.tb-property-carousel.tb-is-dragging .tb-carousel-expand{opacity:0}
.tb-gallery-accessibility{position:absolute;inset:0;pointer-events:none}
.tb-gallery-accessibility :is(button,.tb-gallery-count,.tb-gallery-loading){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0;border:0}
.tb-gallery-accessibility button:focus-visible{position:relative;width:auto;height:44px;clip-path:none;padding:8px 12px;background:#f5f1eb;color:#344e73;pointer-events:auto;font:12px Manrope,sans-serif;z-index:4}
.tb-gallery-keyboard{display:flex;gap:8px}
.tb-property-carousel :is(button,a):focus-visible,#tb-properties :is(button,a):focus-visible{outline:3px solid #c4957a;outline-offset:3px}
.tb-property-carousel .tb-carousel-panel:focus-visible{outline-offset:-4px}
.tb-property-carousel .tb-gallery-error,#tb-properties .tb-photo-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(247,245,241,.96);padding:20px;text-align:center;color:#344e73;z-index:2;font:14px/1.5 Manrope,Arial,sans-serif}
.tb-property-carousel .tb-gallery-error button,#tb-properties .tb-photo-error button{padding:12px 20px;min-height:44px;border:1px solid #344e73;border-radius:24px;background:#344e73;color:white;cursor:pointer;font-size:11px;font-weight:700}
.tb-property-carousel .tb-gallery-error a,#tb-properties .tb-photo-error a{color:inherit;text-decoration:underline}
.tb-carousel-fallback{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tb-carousel-fallback img{width:100%;height:auto;border-radius:16px}
/* Full-screen editorial photo viewer. */
#tb-properties{font-family:Manrope,Arial,sans-serif}
#tb-properties .tb-photo-dialog{position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100%;height:100dvh;margin:0;padding:20px clamp(12px,3vw,40px);border:0;background:#182029;color:#fff;overflow:hidden}
#tb-properties .tb-photo-dialog[open]{display:flex;flex-direction:column}
#tb-properties .tb-photo-dialog::backdrop{background:rgba(29,37,43,.35);backdrop-filter:blur(8px);transition:opacity 220ms ease-out}
#tb-properties .tb-photo-dialog.tb-photo-closing::backdrop{opacity:0}
#tb-properties .tb-photo-dialog-header{position:relative;z-index:3;flex:none;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 0 16px;border:0;background:transparent}
#tb-properties .tb-photo-eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;line-height:1.5;margin:0 0 10px;color:rgba(255,255,255,.8)}
#tb-properties .tb-photo-dialog-header h2{font-size:clamp(21px,2.3vw,34px);font-weight:400;letter-spacing:-.6px;line-height:1.2;color:#fff;margin:0}
#tb-properties .tb-photo-close,#tb-properties .tb-photo-dialog-footer button{flex:none;display:grid;place-items:center;width:48px;height:48px;padding:12px;border:0;border-radius:0;background:transparent;color:#fff;cursor:pointer;transition:background .2s ease}
#tb-properties .tb-photo-stage{position:relative;flex:1;min-height:0;display:grid;place-items:center;margin:0;touch-action:pan-y}
#tb-properties .tb-photo-stage>img{position:absolute;inset:0;margin:auto;width:100%;height:100%;min-height:0;object-fit:contain}
#tb-properties .tb-photo-stage>.tb-photo-outgoing{z-index:1;pointer-events:none}
.tb-carousel-panel .tb-photo-outgoing{z-index:1;pointer-events:none}
.tb-property-carousel .tb-carousel-expand{z-index:2}
#tb-properties .tb-photo-dialog-footer{position:relative;z-index:3;flex:none;display:flex;align-items:center;justify-content:center;gap:32px;min-height:56px;padding:8px 0 0;background:transparent;font-size:11px;letter-spacing:2px;font-variant-numeric:tabular-nums}
#tb-properties .tb-photo-loading{position:absolute;bottom:24px;right:32px;font-size:10px;letter-spacing:0;color:#f5f1eb}
#tb-properties .tb-photo-dialog :is(button,a):focus-visible{outline:2px solid #b07d62;outline-offset:3px}
#tb-properties .tb-photo-dialog button:hover{background:rgba(176,125,98,.1)}

@media(max-width:1024px){.tb-property-carousel .tb-carousel-panels{grid-auto-columns:calc((100% - 10px)/2)}}
@media(max-width:767px){.tb-property-carousel .tb-carousel-panels{grid-auto-columns:100%}.tb-carousel-fallback{grid-template-columns:1fr}#tb-properties .tb-photo-dialog{padding:max(12px,env(safe-area-inset-top)) 12px max(8px,env(safe-area-inset-bottom))}#tb-properties .tb-photo-dialog-header{padding:0 0 12px}#tb-properties .tb-photo-dialog-header h2{font-size:22px}#tb-properties .tb-photo-eyebrow{font-size:8px;letter-spacing:1.4px}#tb-properties .tb-photo-stage{margin:0}#tb-properties .tb-photo-loading{bottom:74px;right:16px}}
@media(prefers-reduced-motion:reduce){#tb-properties .tb-photo-dialog::backdrop{transition:none}.tb-property-carousel *,#tb-properties *{animation:none!important;transition:none!important}}


/* Pelion's approved copper palette, scoped to this regional hub. */
#tb-hub-pelion{background:#b07d62;color:#f5f1eb}
#tb-hub-pelion .tb-hub-heading{background:rgba(229,217,201,.19)}
#tb-hub-pelion .tb-hub-facts li{color:#decdbb}
#tb-hub-pelion .tb-hub-property{border-bottom-color:rgba(245,241,235,.22)}
#tb-hub-pelion .tb-hub-heading p,#tb-hub-pelion .tb-hub-heading h2,#tb-hub-pelion .tb-hub-details h3,#tb-hub-pelion .tb-property-carousel,#tb-hub-pelion .tb-gallery-count{color:#f5f1eb}
#tb-hub-pelion .tb-property-carousel :is(button,a):focus-visible{outline-color:#f5f1eb}

/* One-photo navigation over the gallery, alongside drag and swipe. */
.tb-carousel-navigation{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 10px;pointer-events:none;z-index:3}
.tb-property-carousel .tb-carousel-navigation button{display:grid;place-items:center;width:44px;height:44px;flex:none;padding:10px;border:0;border-radius:0;background:transparent;color:rgba(255,255,255,.85);pointer-events:auto;cursor:pointer;transition:color .2s ease;box-shadow:none;filter:none}
.tb-property-carousel .tb-carousel-navigation button:hover{background:transparent;color:#fff}
.tb-property-carousel .tb-carousel-navigation svg{width:24px;height:24px;stroke-width:2.5}

@media(max-width:360px){.tb-hub-facts{gap:8px}.tb-hub-facts li{font-size:11px;letter-spacing:2px}}


.tb-carousel-panels::-webkit-scrollbar{display:none}
.tb-property-carousel .tb-carousel-panels.tb-native-dragging{scroll-snap-type:none;cursor:grabbing}
