/*
Theme Name: Limostar One
Description: Minimal, inactive WordPress shell for the future shared public site.
Version: 0.1.0
Text Domain: limostar-one-theme
*/

@layer reset, tokens, base, shell, components, applications, integrations, legacy;

@layer tokens {
    :root {
        /* Neutral safe fallbacks. Brand values are plugin-owned. */
        --site-accent: #475569;
        --site-accent-hover: #334155;
        --site-text: #1f2937;
        --site-text-muted: #64748b;
        --site-page-bg: #ffffff;
        --site-surface-bg: #ffffff;
        --site-border-color: #cbd5e1;
        --site-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
        --site-body-size: 16px;
        --site-body-line-height: 1.5;
        --site-heading-weight: 700;
        --site-header-bg: #ffffff;
        --site-header-text: #1f2937;
        --site-header-text-hover: #0f172a;
        --site-header-logo-max-width: 235px;
        --site-header-logo-max-height: 52px;
        --site-header-mobile-logo-max-height: 42px;
        --site-nav-text: #475569;
        --site-nav-text-hover: #1f2937;
        --site-nav-desktop-text: #475569;
        --site-nav-desktop-text-hover: #1f2937;
        --site-nav-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
        --site-nav-font-size: 14px;
        --site-nav-font-weight: 500;
        --site-nav-line-height: 1.2;
        --site-nav-letter-spacing: 0;
        --site-nav-text-transform: none;
        --site-nav-item-gap: 22px;
        --site-nav-parent-gap: 28px;
        --site-nav-booking-gap: 16px;
        --site-nav-dropdown-bg: #ffffff;
        --site-nav-dropdown-text: #1f2937;
        --site-nav-dropdown-text-hover: #0f172a;
        --site-nav-desktop-dropdown-text: #1f2937;
        --site-nav-desktop-dropdown-text-hover: #0f172a;
        --site-nav-dropdown-min-width: 16.25rem;
        --site-nav-dropdown-item-padding: 4px 16px;
        --site-nav-dropdown-offset-left: 0;
        --site-nav-dropdown-nested-top: -8px;
        --site-nav-dropdown-nested-left: 100%;
        --site-nav-dropdown-z-index: 30;
        --site-footer-bg: #f8fafc;
        --site-footer-text: #1f2937;
        --site-footer-text-hover: #0f172a;
        --site-button-bg: #334155;
        --site-button-text: #ffffff;
        --site-button-hover-bg: #1e293b;
        --site-button-radius: 8px;
        --site-button-weight: 700;
        --site-content-width: 72rem;
        --site-focus-color: #1d4ed8;
        --site-focus-width: 3px;
        --lso-shell-gutter: clamp(1rem, 3vw, 2rem);
    }
}

@layer reset {
    *,
    *::before,
    *::after { box-sizing: border-box; }
}

@layer base {
    html { scroll-behavior: smooth; }
    body { margin: 0; color: var(--site-text); background: var(--site-page-bg); font-family: var(--site-font-family); font-size: var(--site-body-size); line-height: var(--site-body-line-height); }
    a { color: inherit; }
    a:focus-visible, button:focus-visible { outline: var(--site-focus-width) solid var(--site-focus-color); outline-offset: 3px; }
    .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
    .screen-reader-text:focus { position: fixed; z-index: 100000; top: 1rem; left: 1rem; width: auto; height: auto; padding: .75rem 1rem; margin: 0; clip: auto; background: var(--site-surface-bg); color: var(--site-text); }
}

@layer shell {
    .lsm-shell-inner { width: min(100% - (var(--lso-shell-gutter) * 2), var(--site-content-width)); margin-inline: auto; }
    /* AutoRide's retained middle-header design, implemented without WPBakery. */
    .lsm-site-header { border-bottom: 0; background: #262626; color: #d8d8d8; }
    .lsm-site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 42px; }
    .lsm-site-branding { flex: 0 1 auto; }
    .lsm-site-branding .custom-logo-link { display: inline-flex; align-items: center; }
    .lsm-site-branding .custom-logo { display: block; width: auto; max-width: var(--site-header-logo-max-width); max-height: var(--site-header-logo-max-height); }
    .lsm-site-title { font-weight: var(--site-heading-weight); text-decoration: none; }
    .lsm-primary-navigation ul, .lsm-footer-navigation ul { display: flex; gap: 1rem; padding: 0; margin: 0; list-style: none; }
    .lsm-primary-navigation a, .lsm-footer-navigation a { text-decoration: none; }
    .lsm-primary-menu { gap: 0 !important; }
    .lsm-primary-menu > li { position: relative; margin-right: var(--site-nav-item-gap); }
    .lsm-primary-menu > li.menu-item-has-children { margin-right: var(--site-nav-parent-gap); }
    .lsm-primary-menu > li.menu-item-book-now { margin-right: var(--site-nav-booking-gap); }
    .lsm-primary-menu > li:last-child { margin-right: 0; }
    .lsm-primary-menu > li > a { position: relative; display: inline-flex; align-items: center; min-height: 2.25rem; padding: 9px 0; color: #828282; font-size: 14px; font-weight: 500; letter-spacing: 0; line-height: 1.2; }
    .lsm-primary-menu > li > a:hover, .lsm-primary-menu > li > a:focus-visible, .lsm-primary-menu > li.current-menu-item > a, .lsm-primary-menu > li.current-menu-ancestor > a { color: #ffffff; }
    .lsm-primary-menu > li.menu-item-has-children > a::after {
        width: .45rem;
        height: .45rem;
        margin-left: .35rem;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        content: "";
        transform: translateY(-.15rem) rotate(45deg);
    }
    .lsm-primary-menu > li:not(.menu-item-book-now) > a::before {
        position: absolute;
        right: 0;
        bottom: 4px;
        left: 0;
        height: 1px;
        background: var(--site-accent);
        content: "";
        opacity: 0;
        transform: scaleX(.5);
        transform-origin: center;
        transition: opacity .15s ease, transform .15s ease;
    }
    .lsm-primary-menu > li:not(.menu-item-book-now) > a:hover::before,
    .lsm-primary-menu > li:not(.menu-item-book-now) > a:focus-visible::before,
    .lsm-primary-menu > li.current-menu-item:not(.menu-item-book-now) > a::before,
    .lsm-primary-menu > li.current-menu-ancestor:not(.menu-item-book-now) > a::before { opacity: 1; transform: scaleX(1); }
    .lsm-primary-menu .sub-menu {
        position: absolute;
        z-index: var(--site-nav-dropdown-z-index);
        top: 100%;
        left: var(--site-nav-dropdown-offset-left);
        display: block;
        min-width: var(--site-nav-dropdown-min-width);
        padding: 8px 0;
        margin: 0;
        border: 0;
        background: var(--site-nav-dropdown-bg);
        color: var(--site-nav-dropdown-text);
        box-shadow: 0 8px 20px rgba(0, 0, 0, .14);
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        transform: translateY(-.125rem);
        transition: opacity .15s ease, transform .15s ease, visibility .15s;
    }
    .lsm-primary-menu .sub-menu li { position: relative; display: block; }
    .lsm-primary-menu .sub-menu .sub-menu { top: var(--site-nav-dropdown-nested-top); left: var(--site-nav-dropdown-nested-left); }
    .lsm-primary-menu .sub-menu a { display: block; padding: var(--site-nav-dropdown-item-padding); color: var(--site-nav-dropdown-text); font-size: var(--site-nav-font-size); line-height: 1.3; white-space: nowrap; }
    .lsm-primary-menu .sub-menu a:hover, .lsm-primary-menu .sub-menu a:focus-visible { background: transparent; color: var(--site-nav-dropdown-text-hover); }
    .lsm-primary-menu li:hover > .sub-menu,
    .lsm-primary-menu li:focus-within > .sub-menu,
    .lsm-primary-menu li.is-submenu-open > .sub-menu {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }
    .lsm-submenu-toggle { display: none; }
    .lsm-menu-toggle { display: none; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0; border: 2px solid var(--site-accent); border-radius: 50%; background: var(--site-header-bg); color: var(--site-header-text); font: inherit; cursor: pointer; }
    .lsm-menu-toggle__icon { width: 1.25rem; height: 1.25rem; color: var(--site-header-text-hover); }
    .lsm-menu-toggle span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
    .lsm-site-main { min-height: 50vh; padding-block: 2rem; }
    .lsm-entry > * + *, .lsm-site-content > * + * { margin-top: 1.25rem; }
    .lsm-entry-title { margin: 0; font-weight: var(--site-heading-weight); }
    .lsm-site-footer { margin-top: 0; padding: 18px 0; border-top: 1px solid #91672c; background: #0d0d0d; color: #d8d8d8; }
    .lsm-site-footer a:hover, .lsm-site-footer a:focus-visible { color: #ffffff; }
    .lsm-site-footer__bottom { margin: 0; color: inherit; font-size: 13px; line-height: 1.5; text-align: center; }
    .lsm-site-footer__bottom p { margin: 0; }
    .lsm-site-footer__legal { display: flex; width: 100%; flex-wrap: wrap; justify-content: center; margin-top: 4px; }
    .lsm-site-footer__legal a + a::before { padding: 0 .55em; color: currentColor; content: "|"; }
    .lsm-empty-state { padding: 2rem 0; }

    @media (min-width: 768px) {
        .lsm-site-header__inner { justify-content: flex-start; }
        .lsm-primary-navigation { margin-left: auto; }
        .lsm-primary-menu > li { margin-right: var(--site-nav-item-gap); }
        .lsm-primary-menu > li.menu-item-has-children { margin-right: var(--site-nav-parent-gap); }
        .lsm-primary-menu > li.menu-item-book-now { margin-right: var(--site-nav-booking-gap); }
        .lsm-primary-menu > li > a {
            min-height: 42px;
            padding: 8px 0;
            font-family: var(--site-nav-font-family);
            font-size: var(--site-nav-font-size);
            font-weight: var(--site-nav-font-weight);
            line-height: var(--site-nav-line-height);
            letter-spacing: var(--site-nav-letter-spacing);
            text-transform: var(--site-nav-text-transform);
            color: #828282;
        }
        .lsm-primary-menu > li > a:hover,
        .lsm-primary-menu > li > a:focus-visible,
        .lsm-primary-menu > li.current-menu-item > a,
        .lsm-primary-menu > li.current-menu-ancestor > a { color: #ffffff; }
        .lsm-primary-menu .sub-menu {
            z-index: var(--site-nav-dropdown-z-index);
            left: var(--site-nav-dropdown-offset-left);
            padding: 12px 0;
            box-shadow: none;
            transform: none;
        }
        .lsm-primary-menu .sub-menu .sub-menu { top: var(--site-nav-dropdown-nested-top); left: var(--site-nav-dropdown-nested-left); }
        .lsm-primary-menu .sub-menu a {
            padding: var(--site-nav-dropdown-item-padding);
            font-family: var(--site-nav-font-family);
            font-size: var(--site-nav-font-size);
            font-weight: var(--site-nav-font-weight);
            line-height: var(--site-nav-line-height);
            color: var(--site-nav-desktop-dropdown-text);
        }
        .lsm-primary-menu .sub-menu a:hover,
        .lsm-primary-menu .sub-menu a:focus-visible { color: var(--site-nav-desktop-dropdown-text-hover); }
    }

    @media (max-width: 767px) {
        .lsm-menu-toggle { display: inline-flex; }
        .lsm-site-header__inner { justify-content: center; }
        .lsm-site-branding .custom-logo { max-height: var(--site-header-mobile-logo-max-height); }
        .lsm-primary-navigation { display: none; position: absolute; z-index: 20; top: 100%; right: var(--lso-shell-gutter); left: var(--lso-shell-gutter); padding: 1rem; border: 1px solid var(--site-border-color); background: var(--site-header-bg); box-shadow: 0 12px 24px rgba(0, 0, 0, .12); }
        .lsm-site-header__inner { position: relative; }
        .lsm-primary-navigation.is-open { display: block; }
        .lsm-primary-navigation ul { display: grid; gap: .85rem; }
        .lsm-primary-menu > li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
        .lsm-primary-menu > li, .lsm-primary-menu > li.menu-item-has-children { margin-right: 0; }
        .lsm-primary-menu > li > a { min-height: 46px; padding: 15px 0; }
        .lsm-primary-menu > li > a::before { display: none; }
        .lsm-primary-menu > li.menu-item-has-children > a::after { display: none; }
        .lsm-submenu-toggle {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 46px;
            height: 46px;
            padding: 0;
            border: 0;
            background: transparent;
            color: inherit;
            cursor: pointer;
        }
        .lsm-submenu-toggle::before {
            width: .55rem;
            height: .55rem;
            border-right: 1.5px solid currentColor;
            border-bottom: 1.5px solid currentColor;
            content: "";
            transform: translateY(-.15rem) rotate(45deg);
            transition: transform .15s ease;
        }
        .lsm-primary-menu li.is-submenu-open > .lsm-submenu-toggle::before { transform: translateY(.15rem) rotate(225deg); }
        .lsm-primary-menu .sub-menu {
            position: static;
            grid-column: 1 / -1;
            display: none;
            min-width: 0;
            padding: 0 0 0 .85rem;
            border: 0;
            box-shadow: none;
            visibility: visible;
            opacity: 1;
            pointer-events: auto;
            transform: none;
        }
        .lsm-primary-menu li.is-submenu-open > .sub-menu { display: grid; gap: .15rem; }
        .lsm-primary-menu .sub-menu a { min-height: 46px; padding: 15px; white-space: normal; }
        .lsm-primary-menu .sub-menu .sub-menu a { padding-left: 30px; }
        .lsm-primary-menu .sub-menu li.menu-item-has-children { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
        .lsm-primary-menu .sub-menu .sub-menu { top: auto; left: auto; }
    }
}
