/* 123Apartment Guest Services v1.2.7 — responsive, widget-controlled */
.a123gs-slider,.a123gs-grid-section,.a123gs-cta{width:100%;min-width:0;box-sizing:border-box}
.a123gs-slider *,.a123gs-grid-section *,.a123gs-cta *{box-sizing:border-box}
.a123gs-empty{padding:16px;border:1px dashed #c8c8c8;border-radius:8px;background:#fafafa;font-size:13px}

/* =========================================================
   SLIDER
   ========================================================= */
.a123gs-slider{--a123gs-slide-overlay-start:rgba(255,255,255,.96);--a123gs-slide-overlay-end:rgba(255,255,255,0);--a123gs-slide-overlay-angle:90deg}
.a123gs-stage{display:grid;min-width:0}
.a123gs-slide{grid-area:1/1;position:relative;display:flex;width:100%;min-width:0;overflow:hidden;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s ease,visibility .32s ease}
.a123gs-slide::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--a123gs-slide-overlay-angle),var(--a123gs-slide-overlay-start),var(--a123gs-slide-overlay-end))}
.a123gs-slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
/* Content stays in normal flow. This prevents mobile text/buttons from being clipped by fixed aspect ratios. */
.a123gs-slide__content{position:relative;z-index:1;display:flex;flex:1 1 auto;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;min-width:0;min-height:inherit}
.a123gs-slide__content-inner{width:100%;min-width:0}
.a123gs-slide__title{margin:0;line-height:1.12;overflow-wrap:anywhere}
.a123gs-slide__title-line{display:block;width:72px;height:8px;margin:12px 0 18px;border-radius:999px;background:#111}
.a123gs-slide__description{margin:0;line-height:1.55;overflow-wrap:anywhere}
.a123gs-slide__features{--a123gs-feature-cols:3;display:grid;grid-template-columns:repeat(var(--a123gs-feature-cols),minmax(0,1fr));column-gap:18px;row-gap:18px;width:100%;min-width:0;margin-top:42px}
.a123gs-slide__feature{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-width:0;padding:0 12px;text-align:center}
.a123gs-slide__feature-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;margin-bottom:8px;color:#111;overflow:hidden}
.a123gs-slide__feature-icon i{line-height:1}
.a123gs-slide__feature-icon svg{display:block;width:28px;height:28px;fill:currentColor;color:currentColor}
.a123gs-slide__feature-text{width:100%;min-width:0;margin:0;color:#333;line-height:1.35;overflow-wrap:anywhere}
.a123gs-slide__features.has-dividers .a123gs-slide__feature:not(:last-child)::after{content:"";position:absolute;top:50%;right:calc(var(--a123gs-feature-gap-half,9px) * -1);width:1px;height:72%;background:#e2e2e2;transform:translateY(-50%);pointer-events:none}

.a123gs-mobile-feature-stage{display:none}
.a123gs-cards-viewport--mobile{display:none}

.a123gs-cards-viewport{--a123gs-thumbs:1.3;--a123gs-thumb-gap:14px;--a123gs-card-snap:proximity;position:relative;width:100%;overflow-x:auto;overflow-y:hidden;margin-top:16px;padding-bottom:8px;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x var(--a123gs-card-snap);touch-action:pan-x pan-y;cursor:grab}
.a123gs-cards-viewport::-webkit-scrollbar{display:none;width:0;height:0}
.a123gs-cards-viewport:not(.is-swipe-enabled){overflow-x:hidden;cursor:default;scroll-snap-type:none}
.a123gs-cards-viewport.is-dragging{cursor:grabbing;user-select:none}
.a123gs-thumbs{display:flex;flex-wrap:nowrap;gap:var(--a123gs-thumb-gap);width:100%;min-width:100%;transform:none!important;transition:none!important}
/* Keep every navigation card tied to the visible-cards setting. Do not let an active card change its own width. */
.a123gs-thumb{position:relative;flex:0 0 calc((100% - (var(--a123gs-thumb-gap) * (var(--a123gs-thumbs) - 1))) / var(--a123gs-thumbs));min-width:0;max-width:none;display:flex;align-items:flex-end;min-height:96px;padding:14px 16px;border:1px solid #e5e5e5;border-radius:12px;background-color:#fff;background-size:cover;background-repeat:no-repeat;background-position:center center;cursor:pointer;overflow:hidden;outline:none;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease,background-color .2s ease;scroll-snap-align:start;scroll-snap-stop:normal}
.a123gs-thumb__overlay{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(255,255,255,.78) 0%,rgba(255,255,255,.12) 100%);pointer-events:none}
.a123gs-thumb__label{position:relative;z-index:1;display:block;min-width:0;max-width:72%;line-height:1.25;font-weight:600;overflow-wrap:anywhere}
.a123gs-thumb:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.18)}
.a123gs-thumb.is-active{border-color:#2f2f2f;transform:none!important}

.a123gs-dots{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;padding-top:0;position:relative;z-index:2;clear:both}
.a123gs-dot{appearance:none;border:0;padding:0;margin:0;width:10px;height:10px;border-radius:999px;background:rgba(17,17,17,.28);cursor:pointer;transition:transform .2s ease,background-color .2s ease,opacity .2s ease}
.a123gs-dot.is-active{background:#111;transform:scale(1.15)}
.a123gs-dot:focus-visible{outline:2px solid rgba(0,0,0,.2);outline-offset:3px}

/* =========================================================
   GRID / SERVICE CARDS
   ========================================================= */
.a123gs-grid-section{min-width:0}
.a123gs-grid-head{width:100%;max-width:760px;margin:0 auto 28px}
.a123gs-grid-head__title{margin:0 0 6px;line-height:1.15;overflow-wrap:anywhere}
.a123gs-grid-head__desc{margin:0;line-height:1.55;overflow-wrap:anywhere}
.a123gs-grid{--a123gs-cols:2;display:grid;grid-template-columns:repeat(var(--a123gs-cols),minmax(0,1fr));align-items:stretch;width:100%;min-width:0}
.a123gs-card{min-width:0;min-height:170px;display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #ededed;color:inherit;text-decoration:none!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background-color .22s ease}
.a123gs-card__icon{flex:0 0 auto;display:grid;place-items:center;overflow:hidden;margin-bottom:12px;border-radius:50%;background:#333;padding:10px;transition:background-color .2s ease,color .2s ease}
.a123gs-card__icon img{width:100%;height:100%;display:block;object-fit:contain}
.a123gs-card__icon i,.a123gs-card__icon svg{transition:color .2s ease,fill .2s ease}
.a123gs-card__icon svg{display:block}
.a123gs-card__title{margin:0 0 7px;line-height:1.25;overflow-wrap:anywhere;transition:color .2s ease}
.a123gs-card__desc{margin:0;line-height:1.45;overflow-wrap:anywhere;transition:color .2s ease}

/* =========================================================
   CTA — background image + content in normal flow
   ========================================================= */
.a123gs-cta{--a123gs-cta-overlay-start:rgba(255,255,255,0);--a123gs-cta-overlay-end:rgba(255,255,255,.95);--a123gs-cta-overlay-angle:90deg;position:relative;display:flex;width:100%;min-width:0;min-height:360px;overflow:hidden;border:1px solid #ececec;background-color:#fafafa;background-size:cover;background-repeat:no-repeat;background-position:50% 50%}
.a123gs-cta::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(var(--a123gs-cta-overlay-angle),var(--a123gs-cta-overlay-start),var(--a123gs-cta-overlay-end))}
.a123gs-cta__content{position:relative;z-index:1;display:flex;flex:1 1 auto;flex-direction:column;align-items:flex-end;justify-content:center;width:100%;min-width:0;min-height:inherit;padding:30px}
.a123gs-cta__content-inner{width:100%;min-width:0;max-width:42%}
.a123gs-cta__title{margin:0;line-height:1.15;overflow-wrap:anywhere}
.a123gs-cta__title-line{display:block;flex:0 0 auto;width:72px;max-width:100%;height:6px;margin-top:12px;margin-bottom:18px;margin-inline:0 auto;border-radius:999px;background:#111}
.a123gs-cta__desc{margin:0 0 18px;line-height:1.55;overflow-wrap:anywhere}
.a123gs-cta__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:10px;width:100%;min-width:0}
.a123gs-cta__button{min-height:42px;max-width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border:1px solid currentColor;border-radius:7px;line-height:1.2;text-decoration:none!important;white-space:normal;text-align:center;transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.a123gs-cta__button i,.a123gs-cta__button svg{flex:0 0 auto}
.a123gs-cta__button svg{width:1em;height:1em}
.a123gs-cta__button.is-primary{background:#333;color:#fff}
.a123gs-cta__button.is-secondary{background:#fff;color:#222}

@media (hover:hover) and (pointer:fine){
    .a123gs-thumb:hover{transform:translateY(-1px)}
    .a123gs-dot:hover{transform:scale(1.08)}
}

/* Mobile-first safety: content must never overlap or be cut off. */
@media (max-width:767px){
    .a123gs-stage{position:relative;z-index:1}
    .a123gs-slide{min-height:180px;background-position:center center}
    .a123gs-slide__content{min-height:inherit}
    .a123gs-slide__content-inner{width:100%;max-width:48%}
    .a123gs-slide__features--desktop{display:none!important}

    /* Mobile USP panel is a separate white block below the hero, matching the reference layout. */
    .a123gs-mobile-feature-stage{position:relative;z-index:3;display:block;width:100%;overflow:hidden;background:#fff;border-radius:18px 18px 0 0}
    .a123gs-mobile-feature-panel{display:none;width:100%;padding:20px 10px 18px}
    .a123gs-mobile-feature-panel.is-active{display:block}
    .a123gs-mobile-feature-panel .a123gs-slide__features{margin-top:0!important;column-gap:0;row-gap:12px}
    .a123gs-mobile-feature-panel .a123gs-slide__feature{padding-inline:8px}
    .a123gs-mobile-feature-panel .a123gs-slide__feature-icon{width:34px;height:34px;margin-bottom:5px}
    .a123gs-mobile-feature-panel .a123gs-slide__feature-icon svg{width:22px;height:22px}
    .a123gs-mobile-feature-panel .a123gs-slide__feature-text{font-size:11px;line-height:1.25}

    /* Desktop rail is replaced by a true 2x2 swipe-page carousel on mobile. */
    .a123gs-cards-viewport--desktop{display:none!important}
    .a123gs-cards-viewport--mobile{display:block;margin-top:12px;padding-bottom:4px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x var(--a123gs-card-snap);scrollbar-width:none;-ms-overflow-style:none}
    .a123gs-cards-viewport--mobile::-webkit-scrollbar{display:none;width:0;height:0}
    .a123gs-mobile-pages{display:flex;width:100%;min-width:100%}
    .a123gs-mobile-page{flex:0 0 100%;width:100%;min-width:100%;scroll-snap-align:start;scroll-snap-stop:always}
    .a123gs-mobile-card-grid{--a123gs-mobile-cols:2;display:grid;grid-template-columns:repeat(var(--a123gs-mobile-cols),minmax(0,1fr));gap:8px;width:100%}
    .a123gs-thumb--mobile{width:auto!important;min-width:0!important;max-width:none!important;min-height:62px;aspect-ratio:16/5;flex:none!important;padding:8px 9px;border-radius:9px;transform:none!important}
    .a123gs-thumb--mobile .a123gs-thumb__label{max-width:48%;font-size:10px;line-height:1.15}
    .a123gs-thumb--mobile.is-active{transform:none!important}

    .a123gs-mobile-hide-dots .a123gs-dots{display:none!important}

    .a123gs-cta{min-height:360px}
    .a123gs-cta__content{position:relative;min-height:inherit;padding:24px 20px;align-items:flex-start;justify-content:flex-end}
    .a123gs-cta__content-inner{max-width:100%}
    .a123gs-cta__actions{width:100%}
    .a123gs-cta__button{max-width:100%}
}


@media (max-width:359px){
    .a123gs-grid{grid-template-columns:1fr!important}
    .a123gs-thumb{padding:12px}
    .a123gs-thumb__label{max-width:82%}
    .a123gs-cta__actions{flex-direction:column;align-items:stretch}
    .a123gs-cta__button{width:100%}
}

@media (min-width:768px){
    .a123gs-cards-viewport{margin-top:16px;padding-bottom:8px}
    .a123gs-dots{margin-top:18px}
}
