* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: "Poppins", sans-serif;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
}

html,
body {
    width: 100%;
    min-height: 100%;
}

body {
    display: flex;
    flex-direction: column;
    color: var(--text);
    background: var(--background);
}

main {
    width: 100%;
    min-height: calc(100vh - 38px);
}

.cms-site { min-height:100vh; min-height:100dvh; }
.cms-site > main { flex:1 0 auto; min-height:0; }
.cms-site > .site-footer { flex-shrink:0; margin-top:auto; }

.cms-breadcrumbs {
    width: min(100% - 2rem, var(--cms-container, 1240px));
    margin: 1rem auto 0;
    color: var(--cms-muted, var(--text, #64748b));
    font-size: .9rem;
}

.cms-breadcrumbs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cms-breadcrumbs__item {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.cms-breadcrumbs__item:not(:last-child)::after {
    content: "/";
    margin-left: .45rem;
    color: color-mix(in srgb, currentColor 55%, transparent);
}

.cms-breadcrumbs a {
    color: inherit;
    text-decoration: none;
}

.cms-breadcrumbs a:hover {
    color: var(--cms-primary, var(--primary, #2563eb));
    text-decoration: underline;
    text-underline-offset: .2em;
}

.cms-breadcrumbs .is-current span {
    display: block;
    max-width: min(60vw, 42rem);
    overflow: hidden;
    color: var(--cms-text, var(--text, #172033));
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Default-theme foundation; custom deployment themes remain independently styled. */
.cms-site[data-theme="default"] {
    color-scheme:light;
    --site-primary:var(--brand-primary); --site-text:var(--brand-text);
    --site-muted:var(--brand-muted); --site-surface:var(--brand-surface);
    --background:var(--brand-background); --text:var(--brand-text); --text-color:var(--brand-text);
    --primary:var(--brand-primary); --cms-primary:var(--brand-primary);
    --secondary:var(--brand-secondary); --accent:var(--brand-accent);
    --box-background:var(--brand-surface); --in-box:var(--brand-surface);
    --contrast-text:var(--brand-muted); --text-in-box:var(--brand-text);
    --input-bg:var(--brand-surface); --input-border:var(--brand-primary);
    --input-focus-bg:var(--brand-surface); --input-focus-border:var(--brand-primary); --input-focus-text:var(--brand-text);
    --dropdown-bg:var(--brand-surface); --button-bg:var(--brand-surface); --button-text:var(--brand-text);
    --gray-bg:var(--brand-surface); --gray-text:var(--brand-muted);
    --cms-text:var(--brand-text); --cms-muted:var(--brand-muted); --cms-container:var(--brand-container);
    color:var(--brand-text); background:var(--brand-background); line-height:1.6;
}
@media(prefers-color-scheme:dark) {
    .cms-site[data-theme="default"] { color-scheme:dark; }
}
.cms-site[data-theme="default"] :where(p,a,label,input,select,textarea,button,span,small,li,summary) { font-family:var(--brand-body-font,system-ui),sans-serif; }
.cms-site[data-theme="default"] :where(h1,h2,h3,h4) { font-family:var(--brand-heading-font,system-ui),sans-serif; overflow-wrap:anywhere; }
.cms-site[data-theme="default"] :where(.contact-section,.booking-section,.features-section,.gallery-section,.faq-section,.pricing-section,.posts-section,.business-section) {
    padding-block:clamp(32px,5vw,var(--brand-section-spacing,72px));
}
.cms-site[data-theme="default"] :where(.contact-container,.booking-container,.features-container,.gallery-container,.faq-container,.pricing-container,.posts-container,.business-container) {
    max-width:var(--brand-container,1240px);
}
.cms-site[data-theme="default"] :where(.contact-form,.booking-form,.feature-card,.post-card) { border-radius:var(--brand-radius,18px); }
.cms-site[data-theme="default"] :where(.contact-form,.booking-form,.newsletter-form) :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),textarea,select) {
    min-width:0; max-width:100%; min-height:46px; font-size:1rem; border-radius:10px;
}
.cms-site[data-theme="default"] :where(.contact-form,.booking-form,.newsletter-form) input[type="checkbox"] { width:18px; height:18px; flex:0 0 18px; accent-color:var(--brand-primary); }
.cms-site[data-theme="default"] :where(.contact-form,.booking-form) button { min-height:46px; border-radius:10px; }
.cms-site[data-theme="default"] :where(.cms-module-boundary) { min-width:0; }
.cms-site[data-theme="default"] :where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--brand-primary,#2563eb); outline-offset:3px; }
@media(prefers-reduced-motion:reduce) {
    .cms-site[data-theme="default"] :where(a,button,.media-cards__track) { transition:none; scroll-behavior:auto; }
}
