/* Shared density layer. Keep touch targets and full-screen sheet editors intact. */
body.site-body {
    --kp-content-width: 1120px;
    --kp-panel-width: 1440px;
    --kp-compact-gap: clamp(.75rem, 1.6vw, 1.25rem);
    font-size: .9375rem;
}

body.site-body .container {
    width: 100%;
    max-width: var(--kp-content-width);
    margin-inline: auto;
    padding-inline: var(--kp-compact-gap);
}
body.site-body:not(.is-admin-area) .container { max-width: var(--kp-content-width); }
body.site-body:not(.is-admin-area) .brand-logo { width: 38px !important; height: 38px !important; }
body.site-body:not(.is-admin-area) .brand-wording strong { font-size: 1rem !important; }

body.site-body .site-header { width: 100% !important; max-width: 100%; }
body.site-body .site-header .navbar { padding-block: .45rem !important; }
body.site-body .brand-logo { width: 38px !important; height: 38px !important; }
body.site-body .brand-wording strong { font-size: 1rem !important; }
body.site-body .navbar-brand { gap: .6rem !important; }
body.site-body .header-toolbar { padding-block: .45rem !important; }
body.site-body .site-header-spacer { height: var(--kp-header-offset, 0px); }
body.site-body .site-main-shell { padding-top: 0 !important; }
body.site-body .site-header .form-control { min-height: 38px; }
body.site-body .header-search-form .form-control { font-size: .9rem !important; }
body.site-body .btn-search { font-size: .85rem; min-height: 38px; }

body.site-body .section-title {
    font-size: clamp(1.65rem, 2.5vw, 2.2rem);
    line-height: 1.15;
    overflow-wrap: anywhere;
}
body.site-body .site-main-shell :is(.h2, h2:not(.section-title)) {
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    line-height: 1.2;
}
body.site-body .site-main-shell :is(.h3, h3:not(.product-print-label__name)) { font-size: clamp(1.1rem, 1.5vw, 1.4rem); }
body.site-body .site-main-shell :is(.h4, h4) { font-size: 1.1rem; }
body.site-body .btn {
    font-size: .875rem;
    line-height: 1.35;
    min-height: 38px;
    padding-block: .5rem;
    white-space: normal;
}
body.site-body .btn-sm { font-size: .8rem; min-height: 34px; padding: .4rem .7rem; }
body.site-body .form-control,
body.site-body .form-select { font-size: .9375rem; min-height: 38px; padding-block: .5rem; }
body.site-body .form-label { font-size: .875rem; margin-bottom: .35rem; }
body.site-body .site-main-shell .fs-5 { font-size: 1rem !important; }
body.site-body :is(.panel-card, .form-shell, .admin-section, .showcase-band) {
    border-radius: 20px;
    padding: clamp(1rem, 1.8vw, 1.4rem);
    min-width: 0;
}
body.site-body .site-main-shell :is(.row > *, .d-flex > *, .admin-page-panel) { min-width: 0; }
body.site-body :is(.product-card-media img, .product-cover, [data-avatar-preview], .store-campaign img) {
    image-orientation: from-image;
}

body.site-body:not(.is-admin-area) .home-main-hero {
    padding: 1.5rem 1.75rem;
    gap: 1.25rem;
    grid-template-columns: minmax(0, 1fr) 170px;
}
body.site-body:not(.is-admin-area) .home-main-hero h1 { font-size: clamp(1.8rem, 3vw, 2.65rem); }
body.site-body:not(.is-admin-area) .home-main-hero__logo { width: 150px; height: 150px; }
body.site-body:not(.is-admin-area) .home-main-hero__visual { min-height: 150px; }
body.site-body:not(.is-admin-area) .home-storefront { gap: 2rem; }
body.site-body:not(.is-admin-area) .home-section-heading h2 { font-size: clamp(1.6rem, 2.3vw, 2.1rem); }
body.site-body:not(.is-admin-area) .product-card__content { padding: .75rem !important; }
body.site-body:not(.is-admin-area) .product-card__title { font-size: .9rem !important; }
body.site-body:not(.is-admin-area) .product-card__price .price-main { font-size: 1.15rem !important; }
body.site-body:not(.is-admin-area) .product-card__footer .btn { min-height: 38px !important; }
body.site-body:not(.is-admin-area) .product-cover-frame { max-width: 360px; padding: .6rem; }
body.site-body:not(.is-admin-area) .product-specs-card__title { font-size: clamp(1.45rem, 2.1vw, 1.9rem); }
body.site-body #profile-photo { gap: 1.25rem !important; }
body.site-body #profile-photo :is([data-avatar-preview], [data-avatar-placeholder]) { width: 100px !important; height: 100px !important; }
body.site-body #profile-photo .form-control { max-width: 100%; }

body.site-body.is-admin-area .site-header .container { max-width: var(--kp-panel-width); }
body.site-body.is-admin-area .admin-dashboard-shell.container-fluid {
    max-width: var(--kp-panel-width) !important;
    width: 100%;
    margin-inline: auto;
    padding: 1.25rem var(--kp-compact-gap) 2rem !important;
    overflow-x: visible;
}
body.site-body.is-admin-area .admin-page-topbar { margin-bottom: 1.25rem !important; }
body.site-body.is-admin-area .admin-page-topbar__copy { font-size: .875rem; max-width: 680px; }
body.site-body.is-admin-area .admin-page-panel { gap: 1rem; }
body.site-body.is-admin-area .admin-sidebar-sticky { top: calc(var(--kp-header-offset, 100px) + 1rem); }
body.site-body.is-admin-area .admin-side-nav { padding: .85rem .7rem; border-radius: 18px; }
body.site-body.is-admin-area .admin-side-nav__group summary { font-size: .85rem !important; }
body.site-body.is-admin-area :is(.admin-side-nav__link, .admin-side-nav__bottom-link) { font-size: .8rem !important; line-height: 1.3; padding: .45rem .55rem !important; }
body.site-body.is-admin-area .admin-page-panel :is(.form-control, .form-select) { font-size: .9rem; }
body.site-body.is-admin-area .table { font-size: .85rem; }
body.site-body.is-admin-area .table :is(td, th) { padding: .65rem .6rem; }
body.site-body.is-admin-area .metric-number { font-size: clamp(1.3rem, 2vw, 1.9rem); }
body.site-body.is-admin-area .stat-card { padding: 1rem; border-radius: 18px; }
body.site-body.is-admin-area .admin-section .table-responsive { max-width: 100%; }
body.site-body.is-admin-area .marketing-card { padding: 1.25rem; border-radius: 20px; }

/* A banner is content, not an intrusive overlay or an autoplay carousel. */
.store-campaigns { display: grid; gap: 1rem; padding-block: .5rem 1rem; }
.store-campaign {
    display: grid;
    min-width: 0;
    border: 1px solid rgba(106, 224, 217, .24);
    border-radius: 20px;
    overflow: hidden;
    background: radial-gradient(ellipse at right top, #235a56 0%, transparent 65%), linear-gradient(120deg, #122f31, #102224);
}
.store-campaign--with-image { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.store-campaign__copy { padding: clamp(1.25rem, 2vw, 2rem); align-self: center; min-width: 0; }
.store-campaign__copy h2 { margin: .5rem 0 .65rem; overflow-wrap: anywhere; }
.store-campaign__copy p { font-size: .9rem; line-height: 1.6; color: #c4d8d8; margin-bottom: 1rem; overflow-wrap: anywhere; }
.store-campaign__copy p:empty { display: none; }
.store-campaign__copy .btn { width: fit-content; }
.store-campaign__media { display: grid; place-items: center; background: #fff; min-width: 0; }
.store-campaign__media img { display: block; width: 100%; height: 100%; max-height: 280px; object-fit: contain; }
.banner-manager { display: grid; gap: 1rem; min-width: 0; }
.banner-manager__editor { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: 1.5rem; }
.banner-manager__preview { min-width: 0; }
.banner-manager__preview .store-campaign--with-image { grid-template-columns: minmax(0, 1fr); }
.banner-manager__preview .store-campaign__media img { max-height: 200px; }
.banner-manager__preview .store-campaign__copy { padding: 1.25rem; }
.banner-manager__list { display: grid; gap: .75rem; }
.banner-manager__item { display: flex; align-items: center; flex-wrap: wrap; gap: .8rem; padding: 1rem; border: 1px solid var(--kp-border); border-radius: 16px; }
.banner-manager__info { display: flex; flex: 1 1 180px; align-items: center; flex-wrap: wrap; gap: .5rem; min-width: 0; }
.banner-manager__info strong { width: 100%; overflow-wrap: anywhere; }
.banner-manager__thumbnail { object-fit: contain; background: white; border-radius: 8px; flex-shrink: 0; }

@media (min-width: 992px) {
    body.site-body.is-admin-area .admin-dashboard-shell > .row { --bs-gutter-x: 1rem; }
    body.site-body.is-admin-area .admin-dashboard-shell .col-lg-4.col-xl-3 { flex: 0 0 210px !important; width: 210px !important; max-width: 210px !important; }
    body.site-body.is-admin-area .admin-dashboard-shell .col-12.col-lg-8.col-xl-9 { flex: 1 1 0 !important; width: auto !important; max-width: calc(100% - 210px) !important; }
}
@media (min-width: 1200px) {
    body.site-body:not(.is-admin-area) .home-product-section .row > [class*="col-"] { flex: 0 0 20%; max-width: 20%; width: 20%; }
    body.site-body:not(.is-admin-area) .catalog-grid-group > [class*="col-"] { flex: 0 0 33.333333%; max-width: 33.333333%; width: 33.333333%; }
}
@media (max-width: 991.98px) {
    .banner-manager__editor { grid-template-columns: minmax(0, 1fr); }
    body.site-body:not(.is-admin-area) .home-main-hero { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767.98px) {
    body.site-body { font-size: 1rem; }
    body.site-body .btn,
    body.site-body .btn-sm,
    body.site-body .btn-search,
    body.site-body:not(.is-admin-area) .product-card__footer .btn { min-height: 44px !important; }
    body.site-body .form-control,
    body.site-body .form-select,
    body.site-body.is-admin-area .admin-page-panel :is(.form-control, .form-select),
    body.site-body .header-search-form .form-control { font-size: 1rem !important; min-height: 44px; }
    body.site-body :is(.admin-side-nav__link, .admin-side-nav__bottom-link) { min-height: 44px; display: flex; align-items: center; }
    body.site-body:not(.is-admin-area) .home-main-hero { padding: 1.15rem; }
    body.site-body:not(.is-admin-area) .home-main-hero h1 { font-size: clamp(1.7rem, 6.6vw, 2rem); }
    body.site-body:not(.is-admin-area) .product-card__content { padding: .65rem !important; }
    body.site-body:not(.is-admin-area) .product-card__title { font-size: .85rem !important; }
    body.site-body:not(.is-admin-area) .product-card__price .price-main { font-size: 1.1rem !important; }
    body.site-body.is-admin-area .admin-page-topbar { align-items: flex-start; }
    .store-campaign--with-image { grid-template-columns: minmax(0, 1fr); }
    .store-campaign__media img { max-height: 240px; }
    .banner-manager__item { align-items: flex-start; }
}

@media print {
    .store-campaigns { display: none; }
}
