/**
 * Accommodation Tabs Widget Styles
 * Tab shell styles are in iabt-tabs-shell.css
 */

/* Widget Container */
.accommodation-tabs-widget { position: relative; margin: 0 auto; max-width: 100%; }

/* Accommodation List — vertical stack of detail blocks within a tab pane */
.accommodation-tabs-list { display: flex; flex-direction: column; gap: 48px; }

/* Detail block layout — follows HPD pattern */
.accom-detail {
    /* separation via gap on parent list */
    padding: 40px;
    transition: background-color 0.2s ease;
}

.accom-detail:nth-child(even) .accom-detail-layout {
    flex-direction: row-reverse;
}

.accom-detail-layout {
    display: flex;
    gap: 32px;
    align-items: stretch;
}

/* Gallery — same structure as HPD */
.accom-gallery {
    flex: 0 0 55%;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    align-self: center;
}

.accom-gallery-item {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    background: var(--iabt-bg-soft, hsl(216, 45%, 98%));
}

.accom-gallery-item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Main image container */
.accom-gallery-main {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
}

.accom-gallery-item--main {
    aspect-ratio: 16 / 9;
    background: transparent;
    display: flex;
    justify-content: center;
    align-items: center;
}

.accom-gallery-item--main img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    border-radius: inherit;
}

/* No gallery at all → info card takes full width */
.accom-detail-layout:not(:has(.accom-gallery)) {
    display: block;
}

/* Thumbnail strip wrapper — arrows + scrollable strip */
.accom-gallery-thumbs-wrapper {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
}

/* Arrow buttons */
.accom-gallery-arrow {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid var(--iabt-border, #ddd);
    background: var(--iabt-bg-main, #fff);
    color: var(--iabt-text-primary, #333);
    cursor: pointer;
    transition: opacity 0.2s ease, background-color 0.2s ease;
    padding: 0;
}

.accom-gallery-arrow:hover {
    background: var(--iabt-bg-soft, #f5f5f5);
}

.accom-gallery-arrow--hidden {
    opacity: 0;
    pointer-events: none;
}

/* Scrollable thumbnail container */
.accom-gallery-thumbs {
    flex: 1;
    overflow-x: auto;
    container-type: inline-size;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}
.accom-gallery-thumbs::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
}

.accom-gallery-thumbs-track {
    display: flex;
    flex-direction: row;
    gap: 8px;
    width: max-content;
}

/* Individual thumbnail button */
.accom-gallery-thumb {
    flex: 0 0 calc((100cqw - 2 * 8px) / 3); /* 3 per view, accounting for 2 gaps */
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    overflow: hidden;
    border: 2px solid transparent;
    padding: 0;
    background: var(--iabt-bg-soft, #f5f5f5);
    cursor: pointer;
    transition: border-color 0.2s ease;
}

.accom-gallery-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.accom-gallery-thumb--active,
.accom-gallery-thumb:hover {
    border-color: var(--iabt-primary, #2563eb);
}

/* Info Card */
.accom-info-card {
    flex: 1;
    min-width: 0;
    padding: 32px;
    display: flex;
    flex-direction: column;
}

/* Title */
.accom-title {
    margin: 0 0 16px;
    font-weight: var(--iabt-font-bold, 700);
    line-height: 1.25;
    color: var(--iabt-text-primary);
}

/* Description */
.accom-description {
    margin: 0 0 20px;
    color: var(--iabt-text-secondary);
    font-size: var(--iabt-text-base);
    line-height: var(--iabt-line-height-body);
}

/* Metadata — 2-column grid like HPD */
.accom-meta-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 28px;
}

.accom-meta-item {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 6px;
    row-gap: 2px;
}

.accom-meta-item > i {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    font-size: var(--iabt-text-sm);
    color: var(--iabt-primary);
}

.accom-meta-label {
    grid-column: 2;
    grid-row: 1;
    font-size: var(--iabt-text-sm);
    font-weight: var(--iabt-font-medium, 500);
    color: var(--iabt-text-primary);
    line-height: 1.4;
}

.accom-meta-value {
    grid-column: 2;
    grid-row: 2;
    font-size: var(--iabt-text-xs);
    font-weight: var(--iabt-font-medium, 500);
    color: var(--iabt-text-secondary);
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* CTA Button */
.accom-cta {
    margin-top: auto;
    padding-top: 8px;
    display: flex;
}

.accom-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

/* No Results */
.accommodation-tabs-no-results {
    text-align: center;
    padding: 60px 20px;
    color: var(--iabt-text-secondary);
    font-size: 16px;
}

/* Responsive — Tablet (<=991px): stack layout vertically */
@media (max-width: 991px) {
    .accom-detail-layout { flex-direction: column; }
    .accom-detail:nth-child(even) .accom-detail-layout { flex-direction: column; }
    .accom-detail { padding: 32px; border-radius: 16px; }
    .accom-gallery { flex: 0 0 auto !important; width: 100%; }
    .accom-info-card { width: 100%; }
    .accommodation-tabs-list { gap: 40px; }
}

/* Responsive — Mobile (<=767px) */
@media (max-width: 767px) {
    .accom-detail-layout { gap: 20px; }
    .accom-detail { padding: 20px; border-radius: 14px; }
    .accom-gallery { gap: 10px; }
    .accom-info-card { padding: 20px; border-radius: 14px; }
    .accom-title { margin-bottom: 12px; }
    .accom-meta-list { grid-template-columns: 1fr; gap: 12px; margin-bottom: 20px; }
    .accom-gallery-item { border-radius: 10px; }
    .accom-gallery-main { border-radius: 10px; }
    .accommodation-tabs-list { gap: 32px; }
    .accom-gallery-arrow { width: 28px; height: 28px; }
    .accom-gallery-arrow svg { width: 12px; height: 12px; }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
    .accom-detail-layout, .accom-gallery-item img { transition: none; }
}
