.wwdcs-wrap {
    --wwdcs-border: #d9d9dd;
    --wwdcs-soft: #f6f7f8;
    --wwdcs-text: #191919;
    --wwdcs-muted: #62666c;
    --wwdcs-accent: #b11923;
    color: var(--wwdcs-text);
    width: 100%;
}

.wwdcs-brochure-row { text-align:center; margin: 0 0 24px; }
.wwdcs-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:44px;
    padding:10px 18px;
    border-radius:5px;
    background:var(--wwdcs-accent);
    color:#fff !important;
    text-decoration:none !important;
    font-weight:700;
    line-height:1.2;
    border:0;
    transition:transform .15s ease, opacity .15s ease;
    cursor:pointer;
}
.wwdcs-button:hover { opacity:.92; transform:translateY(-1px); }
.wwdcs-button-icon { font-size:20px; line-height:1; }
.wwdcs-button.is-loading { opacity:.72; pointer-events:none; }
.wwdcs-button.is-added { opacity:1; }

.wwdcs-date-section {
    margin: 0 0 34px;
    border:1px solid var(--wwdcs-border);
    border-radius:10px;
    overflow:hidden;
    background:#fff;
}
.wwdcs-date-header {
    text-align:center;
    padding:15px 18px 13px;
    background:var(--wwdcs-soft);
    border-bottom:1px solid var(--wwdcs-border);
}
.wwdcs-date-header h2 { margin:0; font-size:clamp(24px, 3vw, 34px); line-height:1.12; }
.wwdcs-venue { margin-top:6px; font-size:17px; font-weight:700; color:var(--wwdcs-muted); }

.wwdcs-time-slot {
    display:grid;
    grid-template-columns:210px minmax(0,1fr);
    border-bottom:1px solid var(--wwdcs-border);
}
.wwdcs-time-slot:last-child { border-bottom:0; }
.wwdcs-time-column {
    padding:20px 16px;
    background:#fbfbfc;
    border-right:1px solid var(--wwdcs-border);
    text-align:center;
}
.wwdcs-time { font-weight:800; font-size:18px; line-height:1.25; }
.wwdcs-time-note { margin-top:5px; color:var(--wwdcs-muted); font-size:14px; font-weight:600; }

.wwdcs-session-columns { display:grid; min-width:0; }
/* A single session stays exactly one card wide (the same width it would have in a 3-card row) and is centered. */
.wwdcs-session-columns.wwdcs-session-count-1 {
    display:flex !important;
    justify-content:center !important;
    align-items:stretch;
    min-width:0;
}
.wwdcs-session-columns.wwdcs-session-count-1 > .wwdcs-session-card {
    flex:0 0 33.333333% !important;
    width:33.333333% !important;
    max-width:33.333333% !important;
    box-sizing:border-box;
}
.wwdcs-session-count-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.wwdcs-session-count-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }

.wwdcs-session-card {
    min-width:0;
    padding:18px;
    background:#fff;
    border-right:1px solid var(--wwdcs-border);
    display:flex;
    flex-direction:column;
}
.wwdcs-session-card:last-child { border-right:0; }
.wwdcs-session-count-1 .wwdcs-session-card,
.wwdcs-session-count-1 .wwdcs-session-card:last-child {
    border-left:1px solid var(--wwdcs-border);
    border-right:1px solid var(--wwdcs-border);
}
.wwdcs-session-card.has-product { padding:0 0 18px; height:100%; box-sizing:border-box; }
.wwdcs-session-card .wwdcs-product-image { width:100%; height:160px; object-fit:contain; object-position:center; display:block; background:#fff; }
.wwdcs-session-content { padding:0; }
.wwdcs-session-card.has-product .wwdcs-session-content { padding:16px 18px 0; flex:1 1 auto; display:flex; flex-direction:column; box-sizing:border-box; }
.wwdcs-session-title { margin:0 0 5px; font-size:20px; line-height:1.2; }
.wwdcs-session-note { margin-top:5px; font-size:14px; color:var(--wwdcs-muted); font-weight:600; }
.wwdcs-product-description { margin-top:12px; color:var(--wwdcs-muted); font-size:14px; line-height:1.5; }
.wwdcs-product-description p { margin:0; }
.wwdcs-product-footer { display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin-top:auto; padding-top:14px; width:100%; }
.wwdcs-price { font-size:18px; font-weight:800; min-height:28px; display:flex; align-items:center; flex-wrap:wrap; line-height:1.25; }
.wwdcs-price del { opacity:.55; margin-right:5px; }
.wwdcs-product-button { width:100%; box-sizing:border-box; }

.wwdcs-admin-message { padding:12px; border-left:4px solid #d63638; background:#fff; }

/* Floating side cart */
.wwdcs-floating-cart {
    --wwdcs-cart-accent:#b11923;
    --wwdcs-cart-border:#e1e1e5;
    --wwdcs-cart-text:#1f2328;
}
.wwdcs-cart-toggle {
    position:fixed;
    right:18px;
    top:auto;
    bottom:28px;
    transform:none;
    z-index:100002;
    width:60px;
    height:60px;
    padding:0;
    border:0;
    border-radius:999px;
    background:var(--wwdcs-cart-accent);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 8px 28px rgba(0,0,0,.2);
    transition:transform .18s ease, box-shadow .18s ease, opacity .15s ease, visibility .15s ease;
}
.wwdcs-cart-toggle:hover { transform:scale(1.04); box-shadow:0 10px 32px rgba(0,0,0,.24); }
.wwdcs-cart-toggle:focus-visible { outline:3px solid rgba(177,25,35,.28); outline-offset:3px; }
.wwdcs-floating-cart.is-open .wwdcs-cart-toggle {
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:scale(.92);
}
.wwdcs-cart-icon { width:27px; height:27px; display:block; }
.wwdcs-cart-icon svg { width:100%; height:100%; display:block; }
.wwdcs-cart-count {
    position:absolute;
    top:-7px;
    right:-7px;
    min-width:24px;
    height:24px;
    padding:0 6px;
    border-radius:999px;
    background:#fff;
    color:var(--wwdcs-cart-accent);
    border:2px solid var(--wwdcs-cart-accent);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    line-height:1;
    font-weight:800;
    box-sizing:border-box;
}
.wwdcs-cart-backdrop {
    position:fixed;
    inset:0;
    z-index:100000;
    display:block;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    margin:0;
    background:rgba(0,0,0,.32);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    cursor:default;
    transition:opacity .2s ease, visibility .2s ease;
}
.wwdcs-cart-drawer {
    position:fixed;
    top:0;
    right:0;
    z-index:100001;
    width:min(420px, 92vw);
    height:100vh;
    height:100dvh;
    background:#fff;
    color:var(--wwdcs-cart-text);
    box-shadow:-12px 0 34px rgba(0,0,0,.18);
    transform:translateX(105%);
    transition:transform .24s ease;
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
}
.wwdcs-floating-cart.is-open .wwdcs-cart-backdrop { opacity:1; visibility:visible; pointer-events:auto; }
.wwdcs-floating-cart.is-open .wwdcs-cart-drawer { transform:translateX(0); }
.wwdcs-cart-drawer-header {
    min-height:72px;
    padding:18px 20px;
    border-bottom:1px solid var(--wwdcs-cart-border);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    box-sizing:border-box;
}
.wwdcs-cart-drawer-header strong { font-size:22px; line-height:1.2; }
.wwdcs-cart-close {
    width:38px;
    height:38px;
    padding:0;
    border:0;
    border-radius:50%;
    background:#f3f4f5;
    color:#333;
    font-size:28px;
    line-height:1;
    cursor:pointer;
}
.wwdcs-cart-drawer-body {
    flex:1 1 auto;
    overflow:auto;
    padding:18px 20px 22px;
    box-sizing:border-box;
}
.wwdcs-cart-empty {
    padding:28px 10px;
    text-align:center;
    color:#666;
}
.wwdcs-cart-items { display:flex; flex-direction:column; gap:0; }
.wwdcs-cart-item {
    display:grid;
    grid-template-columns:72px minmax(0,1fr) 92px;
    gap:13px;
    padding:13px 0;
    border-bottom:1px solid var(--wwdcs-cart-border);
}
.wwdcs-cart-item:first-child { padding-top:0; }
.wwdcs-cart-item-image img {
    display:block;
    width:72px;
    height:58px;
    object-fit:contain;
    background:#fff;
}
.wwdcs-cart-item-info { min-width:0; align-self:center; }
.wwdcs-cart-item-name { font-weight:750; line-height:1.3; }
.wwdcs-cart-item-name a { color:inherit; text-decoration:none; }
.wwdcs-cart-item-meta { margin-top:5px; color:#666; font-size:14px; }
.wwdcs-cart-summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px 0 14px;
    font-size:17px;
}
.wwdcs-cart-summary strong { font-size:18px; }
.wwdcs-cart-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.wwdcs-cart-actions .wwdcs-button { width:100%; box-sizing:border-box; }
.wwdcs-cart-view { background:#333; }
.wwdcs-cart-checkout { background:var(--wwdcs-cart-accent); }

@media (max-width: 900px) {
    .wwdcs-time-slot { grid-template-columns:1fr; }
    .wwdcs-time-column { border-right:0; border-bottom:1px solid var(--wwdcs-border); text-align:left; padding:14px 16px; }
    .wwdcs-session-columns.wwdcs-session-count-1 > .wwdcs-session-card {
        flex-basis:min(520px, 100%) !important;
        width:min(520px, 100%) !important;
        max-width:min(520px, 100%) !important;
    }
    .wwdcs-session-count-3 { grid-template-columns:1fr; }
    .wwdcs-session-count-3 .wwdcs-session-card { border-right:0; border-bottom:1px solid var(--wwdcs-border); }
    .wwdcs-session-count-3 .wwdcs-session-card:last-child { border-bottom:0; }
}

@media (max-width: 700px) {
    .wwdcs-session-columns.wwdcs-session-count-1 > .wwdcs-session-card {
        flex:0 0 100% !important;
        width:100% !important;
        max-width:100% !important;
    }
    .wwdcs-session-count-2 { grid-template-columns:1fr; }
    .wwdcs-session-count-2 .wwdcs-session-card { border-right:0; border-bottom:1px solid var(--wwdcs-border); }
    .wwdcs-session-count-2 .wwdcs-session-card:last-child { border-bottom:0; }
    .wwdcs-cart-toggle { top:auto; bottom:18px; right:16px; transform:none; }
    .wwdcs-cart-toggle:hover { transform:scale(1.04); }
}

.wwdcs-time-location {
    margin-top:9px;
    color:var(--wwdcs-text);
    font-size:14px;
    font-weight:700;
    line-height:1.35;
}
.wwdcs-time-location span { margin-right:3px; }
.wwdcs-cart-item-image .wwdcs-cart-thumbnail,
.wwdcs-cart-item-image img {
    display:block;
    width:72px;
    height:58px;
    object-fit:contain;
    object-position:center;
    background:#fff;
}

/* Keep the page stable while the floating cart drawer is open. */
html.wwdcs-cart-open,
body.wwdcs-cart-open {
    overflow: hidden !important;
}

/* Editable floating cart controls */
.wwdcs-cart-item {
    position:relative;
    grid-template-columns:72px minmax(0,1fr) 92px !important;
    column-gap:13px !important;
    padding-right:0 !important;
}
.wwdcs-cart-item.is-removing {
    opacity:.45;
}
.wwdcs-cart-remove,
.wwdcs-cart-remove:hover,
.wwdcs-cart-remove:focus {
    position:static !important;
    grid-column:3 !important;
    justify-self:end !important;
    align-self:center !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:88px !important;
    min-width:88px !important;
    max-width:88px !important;
    height:38px !important;
    min-height:38px !important;
    max-height:38px !important;
    margin:0 !important;
    padding:0 12px !important;
    border:0 !important;
    border-radius:5px !important;
    background:var(--wwdcs-cart-accent) !important;
    color:#fff !important;
    box-shadow:none !important;
    font-family:inherit !important;
    font-size:12px !important;
    font-weight:800 !important;
    line-height:1 !important;
    text-align:center !important;
    text-decoration:none !important;
    text-transform:uppercase !important;
    letter-spacing:.35px !important;
    cursor:pointer !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    transition:opacity .15s ease, background .15s ease !important;
}
.wwdcs-cart-remove:hover {
    background:#96151d !important;
    opacity:1 !important;
    transform:none !important;
}
.wwdcs-cart-remove:focus-visible {
    outline:3px solid rgba(177,25,35,.25) !important;
    outline-offset:3px;
}
.wwdcs-cart-remove.is-loading {
    opacity:.55 !important;
    pointer-events:none !important;
}

/* Force the drawer actions into a clean, stable layout even when the theme
   applies global button/anchor margins, floats or widths. */
.wwdcs-cart-actions {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:12px !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    align-items:stretch !important;
}
.wwdcs-cart-actions .wwdcs-button {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    float:none !important;
    position:static !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    min-height:52px !important;
    height:52px !important;
    margin:0 !important;
    padding:0 16px !important;
    box-sizing:border-box !important;
    border-radius:6px !important;
    font-size:15px !important;
    font-weight:800 !important;
    line-height:1.1 !important;
    text-align:center !important;
    text-decoration:none !important;
    transform:none !important;
}
.wwdcs-cart-clear {
    grid-column:1 / -1 !important;
    background:#fff !important;
    color:var(--wwdcs-cart-accent) !important;
    border:1px solid var(--wwdcs-cart-accent) !important;
}
.wwdcs-cart-clear:hover {
    background:#fff7f7 !important;
    transform:none !important;
}
.wwdcs-cart-clear.is-loading {
    opacity:.6 !important;
    pointer-events:none !important;
}
.wwdcs-cart-view {
    grid-column:1 !important;
    background:#333 !important;
    color:#fff !important;
}
.wwdcs-cart-checkout {
    grid-column:2 !important;
    background:var(--wwdcs-cart-accent) !important;
    color:#fff !important;
}
.wwdcs-cart-view:hover,
.wwdcs-cart-checkout:hover {
    transform:none !important;
}

@media (max-width: 480px) {
    .wwdcs-cart-item {
        grid-template-columns:64px minmax(0,1fr) 78px !important;
        column-gap:10px !important;
    }
    .wwdcs-cart-item-image img,
    .wwdcs-cart-item-image .wwdcs-cart-thumbnail {
        width:64px !important;
        height:54px !important;
    }
    .wwdcs-cart-remove,
    .wwdcs-cart-remove:hover,
    .wwdcs-cart-remove:focus {
        width:76px !important;
        min-width:76px !important;
        max-width:76px !important;
        padding:0 8px !important;
        font-size:11px !important;
    }
}

