:root{color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--mdw-text);font:var(--mdw-base-size)/1.55 var(--mdw-body-font);min-height:100vh}a{color:var(--mdw-link)}img{max-width:100%;height:auto}.shell{width:min(calc(100% - 32px),var(--mdw-content));margin-inline:auto}.top-strip{background:#0a1d31;color:#e8dcc7;text-align:center;padding:7px 16px;font-size:.82rem;letter-spacing:.06em}.site-header{background:var(--mdw-header);box-shadow:0 1px 8px rgba(16,36,59,.16)}.brand-row{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:94px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:#fff}.brand img{width:auto;height:58px;object-fit:contain}.brand span{font-family:var(--mdw-heading-font);font-size:1.55rem;letter-spacing:.01em}.header-actions{display:flex;gap:8px}.header-actions a{color:#f4efe7;text-decoration:none;padding:8px 10px;border-radius:6px}.header-actions a:hover{background:rgba(255,255,255,.08)}.main-nav{background:var(--mdw-nav);border-top:1px solid rgba(255,255,255,.07)}.nav-inner{display:flex;align-items:center}.nav-links{display:flex;gap:2px;flex-wrap:wrap}.nav-links a{color:var(--mdw-nav-text);text-decoration:none;padding:12px 14px;border-bottom:3px solid transparent}.nav-links a:hover,.nav-links a.active{color:#fff;border-bottom-color:var(--mdw-accent);background:rgba(255,255,255,.04)}.nav-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff;padding:8px 12px;border-radius:5px}.page-wrap{padding:30px 0 46px}.panel,.card{background:var(--mdw-panel);border:1px solid rgba(145,119,78,.2);border-radius:var(--mdw-radius);box-shadow:0 10px 30px rgba(27,40,52,.07);backdrop-filter:blur(2px)}.panel{padding:26px}.card{padding:20px}h1,h2,h3,h4{font-family:var(--mdw-heading-font);color:var(--mdw-heading);line-height:1.18}h1{font-size:clamp(2rem,4vw,3.4rem);margin:.15em 0 .35em}h2{font-size:clamp(1.45rem,2.5vw,2rem)}.muted{color:var(--mdw-muted)}.button,.mdw-button{display:inline-block;background:var(--mdw-button);color:var(--mdw-button-text);border:0;border-radius:var(--mdw-button-radius);padding:10px 17px;text-decoration:none;font-weight:700}.button:hover,.mdw-button:hover{background:var(--mdw-button-hover);color:#fff}.button.ghost{background:transparent;color:var(--mdw-heading);border:1px solid var(--mdw-line)}.home-slider{overflow:hidden;padding:0}.slider-fallback{min-height:370px;display:grid;place-items:center;padding:42px;background:linear-gradient(115deg,rgba(16,36,59,.94),rgba(28,49,70,.82));color:#fff;text-align:center}.slider-fallback h1{color:#fff;max-width:900px}.slider-fallback p{max-width:760px;margin:0 auto 22px;color:#e6ebef}.section-title{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:32px 0 14px}.section-title h2{margin:0}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.category-card{display:block;overflow:hidden;text-decoration:none;color:inherit;padding:0}.category-card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.category-card div{padding:16px}.category-card h3{margin:0 0 5px}.category-card p{margin:0;color:var(--mdw-muted);font-size:.94rem}.store-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start}.sidebar{position:sticky;top:18px}.sidebar h3{margin-top:0}.sidebar .side-links{display:grid}.side-links a{padding:9px 6px;text-decoration:none;border-bottom:1px solid rgba(120,102,75,.15)}.module-slot{min-height:40px}.content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.site-footer{background:#0d2238;color:#e8edf2;margin-top:30px;padding:38px 0 18px}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:30px}.site-footer h3{color:#f4e9d8;margin-top:0}.site-footer a{display:block;color:#e3d3b9;text-decoration:none;margin:6px 0}.site-footer a:hover{color:#fff}.copyright{border-top:1px solid rgba(255,255,255,.1);padding-top:16px;margin-top:24px;font-size:.88rem;color:#bac5ce}.footer-newsletter{margin-top:22px}.page-heading{margin-bottom:20px}.setup-note{padding:12px;border:1px dashed #aa7b34;background:#fff8e7;border-radius:8px;color:#765520}.mdwcart-host{min-width:0}.support-stack{display:grid;gap:18px}.search-form{display:flex;gap:8px;max-width:700px}.search-form input{flex:1;padding:11px 12px;border:1px solid #c7cdd3;border-radius:6px;background:#fff}@media(max-width:980px){.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.store-layout{grid-template-columns:1fr}.sidebar{position:static}.footer-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.brand-row{min-height:74px}.brand img{height:44px}.brand span{font-size:1.2rem}.header-actions{display:none}.nav-inner{display:block;padding-top:8px;padding-bottom:8px}.nav-toggle{display:inline-block}.nav-links{display:none;flex-direction:column;margin-top:8px}.nav-links.open{display:flex}.nav-links a{padding:10px 8px}.category-grid,.content-grid,.footer-grid{grid-template-columns:1fr}.panel{padding:19px}.slider-fallback{min-height:320px;padding:28px 20px}.search-form{display:grid}.top-strip{font-size:.72rem}}


/* ============================================================
   MURDOCK DEVWORKS STORE LAYOUT
   ------------------------------------------------------------
   The public store keeps the same basic page arrangement as the
   previous Murdock DevWorks website:
       main store content | right-side store menu
   MDWCart controls its own product/cart output inside store-main.
   ============================================================ */

.compact-heading {
    margin-bottom: 14px;
}

.compact-heading h1 {
    font-size: clamp(1.9rem, 3vw, 2.65rem);
    margin-bottom: 5px;
}

.compact-heading p {
    margin: 0;
}

.store-page {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 245px;
    gap: 18px;
    align-items: start;
}

.store-main {
    min-width: 0;
}

.store-content {
    background: rgba(255,255,255,.94);
    border: 1px solid rgba(145,119,78,.22);
    border-radius: var(--mdw-radius);
    padding: 18px;
    box-shadow: 0 7px 20px rgba(27,40,52,.06);
}

.store-sidebar {
    display: grid;
    gap: 14px;
}

.store-box {
    background: rgba(255,255,255,.95);
    border: 1px solid rgba(145,119,78,.23);
    border-radius: var(--mdw-radius);
    box-shadow: 0 7px 20px rgba(27,40,52,.06);
    overflow: hidden;
}

.store-box h3 {
    margin: 0;
    padding: 10px 13px;
    background: #102a43;
    color: #f8f5ef;
    font-size: 1rem;
    border-bottom: 2px solid var(--mdw-accent);
}

.store-links {
    display: grid;
}

.store-links a {
    display: block;
    padding: 9px 13px;
    text-decoration: none;
    color: var(--mdw-heading);
    background: rgba(255,255,255,.88);
    border-bottom: 1px solid rgba(120,102,75,.13);
}

.store-links a:last-child {
    border-bottom: 0;
}

.store-links a:hover {
    background: #f6f1e8;
    color: var(--mdw-link);
}

.store-box .mdwcart-host {
    padding: 10px 12px;
}

/* Do not impose product-card columns here.
   MDWCart remains responsible for its own catalog column setting. */

@media (max-width: 900px) {
    .store-page {
        grid-template-columns: 1fr;
    }

    .store-sidebar {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .store-sidebar {
        grid-template-columns: 1fr;
    }

    .store-content {
        padding: 14px;
    }
}


/* ============================================================
   MURDOCK DEVWORKS — STICKY FOOTER
   Keep the footer at the bottom of the viewport on short pages
   without fixing it to the screen or affecting long pages.
   ============================================================ */
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main.page-wrap {
    flex: 1 0 auto;
}

.site-footer {
    flex-shrink: 0;
    margin-top: auto;
}
