/*
 * Site-specific additions on top of the theme CSS (assets/theme/).
 * Design tokens from the old site: navy #00193B, teal #00b7ad, orange #f37032,
 * body "Inter Tight", headings "Teko", section width 1120px.
 */

/* ---- cookie notice (fixed above the language switcher, same style) ---- */
.cookie-note {
    position: fixed;
    left: 16px;
    bottom: 64px;
    z-index: 998;
    max-width: 300px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 14px;
    background: #00193B;
    color: #fff;
    font-family: "Inter Tight", sans-serif;
    font-size: 13px;
    line-height: 1.45;
    box-shadow: 0 6px 24px rgba(0, 25, 59, .4);
}
.cookie-note[hidden] { display: none; }
.cookie-note p { margin: 0; }
.dtf-site .cookie-note a,
.dtf-site .cookie-note a:visited { color: #fff; text-decoration: underline; }
.dtf-site .cookie-note a:hover { color: #00b7ad; }
.cookie-note__ok {
    align-self: flex-start;
    padding: 7px 18px;
    border: 0;
    border-radius: 999px;
    background: #00b7ad;
    color: #fff;
    font: inherit;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}
.cookie-note__ok:hover { background: #f37032; }

/* ---- language switcher (fixed, lower-left on every page) ---- */
.lang-switcher {
    position: fixed;
    left: 16px;
    bottom: 16px;
    z-index: 999;
    font-family: "Inter Tight", sans-serif;
}
.lang-switcher__toggle {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 999px;
    background: #00193B;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0, 25, 59, .35);
    transition: background-color .15s ease;
}
.lang-switcher__toggle:hover {
    background: #00b7ad;
}
.lang-switcher__globe {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 1.5px solid currentColor;
    position: relative;
    flex: 0 0 auto;
}
.lang-switcher__globe::before {
    content: "";
    position: absolute;
    inset: -1.5px;
    border-radius: 50%;
    border: 1.5px solid currentColor;
    transform: scaleX(.45);
}
.lang-switcher__globe::after {
    content: "";
    position: absolute;
    left: -1.5px;
    right: -1.5px;
    top: 50%;
    border-top: 1.5px solid currentColor;
}
.lang-switcher__menu {
    position: absolute;
    left: 0;
    bottom: calc(100% + 8px);
    margin: 0;
    padding: 6px;
    list-style: none;
    min-width: 150px;
    background: #00193B;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 14px;
    box-shadow: 0 6px 24px rgba(0, 25, 59, .4);
}
.dtf-site .lang-switcher a.lang-switcher__item,
.dtf-site .lang-switcher a.lang-switcher__item:visited {
    display: block;
    padding: 8px 12px;
    border-radius: 9px;
    color: #fff;
    font-size: 14px;
    text-decoration: none;
}
.dtf-site .lang-switcher a.lang-switcher__item:hover {
    background: #00b7ad;
    color: #fff;
}
.dtf-site .lang-switcher a.lang-switcher__item.is-current,
.dtf-site .lang-switcher a.lang-switcher__item.is-current:visited {
    color: #f37032;
    font-weight: 700;
}

/* ---- cart counter badge (server-rendered count in the header) ---- */
.dtf-minicart-toggle__counter.cart-count[data-count="0"] {
    opacity: .55;
}

/* ---- header: normal flow + sticky, never overlapping content ----
 * The ported theme positioned the sticky header as position:fixed, taking it
 * out of flow; every page then compensated with a large top margin/padding on
 * its first section. Keep it sticky but in flow so the content below is
 * always pushed down, and drop the now-redundant compensation offsets.
 */
.dtf-site .dtf-bar.dtf-bar--sticky {
    position: sticky !important;
    top: 0 !important;
}

/* homepage hero: old fixed-header clearance (110/120/45px) no longer needed */
.dtf-site .home-section-227 {
    margin-top: 0 !important;
}

/* CMS pages: first sections carried 140-172px top padding to clear the fixed
 * header; keep only a visual gap now that the header occupies its own space */
.cms-page > .dtf-section:first-child > .section-container {
    padding-top: 50px !important;
}
@media (max-width: 1119px) {
    .cms-page > .dtf-section:first-child > .section-container {
        padding-top: 40px !important;
    }
}
@media (max-width: 767px) {
    .cms-page > .dtf-section:first-child > .section-container {
        padding-top: 30px !important;
    }
}

/* Mobile menu: pin the open panel to the viewport, full width, right under the
   header (the theme positioned it absolute to the nav element, which pushed it
   off screen without the old builder's runtime offset JS). */
@media (max-width: 1119px) {
    .dtf-nav .dtf-nav-list {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        top: var(--mobile-menu-top, 64px) !important;
        bottom: auto !important;
        max-height: calc(100vh - var(--mobile-menu-top, 64px)) !important;
        overflow-y: auto !important;
        transform: none !important;
        box-shadow: 0 14px 30px rgba(0, 25, 59, .18);
        z-index: 1000;
    }
}

/* ---------- frontend admin bar (visible only to a logged-in admin) ---------- */
.adminbar {
    position: fixed; top: 0; left: 0; right: 0; height: 36px; z-index: 100000;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    background: #00193B; color: #cbd5e1; font: 13px/1 system-ui, -apple-system, "Segoe UI", sans-serif;
    padding: 0 14px;
}
.adminbar a { color: #cbd5e1; text-decoration: none; padding: 11px 9px; white-space: nowrap; }
.adminbar a:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.adminbar__left, .adminbar__right { display: flex; align-items: center; }
.adminbar__brand { font-weight: 700; color: #fff !important; }
.adminbar__brand span { color: #00b7ad; font-weight: 400; }
.adminbar__edit { color: #fff !important; background: #f37032; border-radius: 6px; margin-right: 6px;
    padding: 8px 14px !important; font-weight: 600; }
.adminbar__edit:hover { filter: brightness(1.08); background: #f37032; }
.adminbar__badge { display: inline-block; background: #f37032; color: #fff; border-radius: 10px;
    font-size: 11px; font-weight: 700; padding: 1px 7px; margin-left: 3px; }

/* push the page + sticky header below the bar */
body.has-adminbar { padding-top: 36px; }
body.has-adminbar .dtf-bar { top: 36px !important; }
body.has-adminbar .dtf-nav .dtf-nav-list { z-index: 99990; }

@media (max-width: 767px) {
    .adminbar__left a:not(.adminbar__brand) { display: none; }
}
