/* =============================================================
   Packdeck — Package Cards
   Shared between the frontend (product pages) and the admin
   settings page (live preview). Edit once, applies everywhere.
   ============================================================= */

.v34-package-wrapper{ font-family:inherit; margin-bottom:15px; }
.packdeck-choose-option{ margin:8px 0 6px; font-weight:700; }
.package-card{ position:relative; cursor:pointer; transition:.2s; background:#fff; border-radius:14px; border:2px solid #ddd; min-width:150px; flex:1; overflow:visible; }
.package-clip{ position:relative; border-radius:11px; overflow:hidden; }
.v34-package-wrapper.design-minimal .package-card{ border:1px solid #e5e5e5; box-shadow:none; }
.v34-package-wrapper.design-classic .package-card{ border:2px solid #ddd; }
.v34-package-wrapper .package-card.active{ box-shadow:0 10px 22px rgba(0,0,0,.12); border-width:3px; transform:translateY(-2px); }

/* ---- Themes ---- */
.v34-package-wrapper.theme-orange   .package-card.active{ background:#fff2e6; border-color:#ff7a00; }
.v34-package-wrapper.theme-green    .package-card.active{ background:#eaf7ef; border-color:#1b8f3a; }
.v34-package-wrapper.theme-blue     .package-card.active{ background:#eaf2ff; border-color:#1565c0; }
.v34-package-wrapper.theme-black    .package-card.active{ background:#f2f2f2; border-color:#111; }
.v34-package-wrapper.theme-yellow   .package-card.active{ background:#fff7cc; border-color:#e0b800; }
.v34-package-wrapper.theme-lavender .package-card.active{ background:#f4efff; border-color:#7e57c2; }
.v34-package-wrapper.theme-sage     .package-card.active{ background:#eef7f1; border-color:#5f8f77; }
.v34-package-wrapper.theme-rose     .package-card.active{ background:#fff0f5; border-color:#d35b8d; }
.v34-package-wrapper.theme-midnight .package-card.active{ background:#eef3ff; border-color:#2f4f9c; }
.v34-package-wrapper.theme-ocean    .package-card.active{ background:#e9fbff; border-color:#0f9bb0; }

/* ---- Badge ---- */
.package-badge{ position:absolute; top:-10px; left:50%; transform:translateX(-50%); padding:2px 12px; border-radius:20px; font-size:11px; line-height:1.2em; font-weight:800; text-transform:uppercase; z-index:5; vertical-align:middle; box-shadow:0 1px 5px rgba(0,0,0,0.15); }
.package-badge.badge-orange  { background:#ff9800; color:#fff; }
.package-badge.badge-green   { background:#1b8f3a; color:#fff; }
.package-badge.badge-blue    { background:#1565c0; color:#fff; }
.package-badge.badge-black   { background:#111;    color:#fff; }
.package-badge.badge-yellow  { background:#ffd400; color:#111; }
.package-badge.badge-red     { background:#e53935; color:#fff; }
.package-badge.badge-purple  { background:#7e57c2; color:#fff; }
.package-badge.badge-teal    { background:#00897b; color:#fff; }
.package-badge.badge-pink    { background:#ec407a; color:#fff; }
.package-badge.badge-indigo  { background:#3949ab; color:#fff; }
.package-badge.badge-charcoal{ background:#37474f; color:#fff; }

/* ---- Layout ---- */
.package-inner{ display:flex; gap:14px; align-items:center; }
.v34-package-wrapper.itemlayout-stacked .package-inner{ flex-direction:column; align-items:stretch; }
.v34-package-wrapper.itemlayout-side    .package-inner{ flex-direction:row; align-items:center; }
.package-img-holder{ padding:14px; border-radius:12px; text-align:center; background:linear-gradient(180deg,#fff4e8 0%,#ffffff 100%); }
.package-img-holder img{ max-width:90px; filter:drop-shadow(0 5px 10px rgba(0,0,0,0.1)); }
.v34-package-wrapper.itemlayout-side .package-img-holder{ width:120px; flex:0 0 120px; }
.v34-package-wrapper.itemlayout-side .package-card.no-image .package-inner{ display:block; }

/* ---- Content ---- */
.package-content{ flex:1; padding:16px; }
.package-head{ display:flex; justify-content:space-between; gap:12px; align-items:center; }
.package-title{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.pkg-title-text{ font-size:18px; font-weight:900; color:#222; line-height:1.05; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center; }
.package-save-badge{ font-size:12px; font-weight:500; line-height:1; color:#d32f2f; text-transform:uppercase; letter-spacing:.2px; }
.package-desc{ font-size:12px; line-height:1.1; color:#555; }
.package-prices{ text-align:right; white-space:nowrap; }
.package-prices .old-price{ text-decoration:line-through; color:#9a9a9a; font-size:14px; }
.package-prices .main-price{ font-size:20px; font-weight:900; color:#111; line-height:1.05; }

/* ---- Indicators ---- */
.v34-package-wrapper.indicator-off .pkg-radio,
.v34-package-wrapper.indicator-off .pkg-corner-check{ display:none !important; }
.pkg-radio{ display:none; }
.v34-package-wrapper.indicator-on.indicator-type-radio_left .pkg-radio{ display:inline-block; width:16px; height:16px; border-radius:50%; border:2px solid #cfcfcf; background:#fff; margin-right:8px; vertical-align:middle; flex:0 0 16px; }
.v34-package-wrapper.indicator-on.indicator-type-radio_left .package-card.active .pkg-radio{ border-color:#111; }
.v34-package-wrapper.indicator-on.indicator-type-radio_left .package-card.active .pkg-radio::after{ content:""; display:block; width:8px; height:8px; margin:2px auto 0; border-radius:50%; background:#111; }
.v34-package-wrapper.indicator-on.indicator-type-radio_left .package-left{ display:flex; align-items:center; gap:8px; min-width:0; flex:1; }
.v34-package-wrapper.indicator-on.indicator-type-radio_left .package-text{ display:flex; flex-direction:column; gap:2px; min-width:0; }

/* ---- Corner check ---- */
.pkg-corner-check{ position:absolute; top:0; right:0; width:38px; height:38px; z-index:4; pointer-events:none; }
.pkg-corner-check::before{ content:""; position:absolute; top:0; right:0; width:0; height:0; border-left:38px solid transparent; border-bottom:38px solid transparent; border-top:38px solid rgba(0,0,0,0.08); }
.package-card.active .pkg-corner-check::before{ border-top-color:#111; }
.pkg-corner-check::after{ content:"✓"; position:absolute; top:5px; right:6px; font-size:14px; font-weight:900; line-height:1; color:#fff; opacity:0; transform:scale(.9); transition:.15s ease; }
.package-card.active .pkg-corner-check::after{ opacity:1; transform:scale(1); }

/* ---- Minimal design ---- */
.v34-package-wrapper.design-minimal .package-content{ padding:10px 15px; }
.v34-package-wrapper.design-minimal .pkg-title-text{ font-size:16px; text-align:left; }
.v34-package-wrapper.design-minimal .package-prices .old-price{ font-size:12px; margin:0; line-height:1; }
.v34-package-wrapper.design-minimal .package-prices .main-price{ font-size:18px; }
/* Extra gap between vertical minimal cards so badge doesn't sit on top of card above */
.v34-package-wrapper.design-minimal.orientation-vertical .package-grid{ gap:15px; }

/* ---- Corner check price alignment ---- */
.v34-package-wrapper.design-minimal.indicator-type-corner_check .package-prices,
.v34-package-wrapper.design-minimal.indicator-type-corner_check .package-prices .old-price{ text-align:left !important; }
.v34-package-wrapper.design-classic.indicator-type-corner_check .package-prices,
.v34-package-wrapper.design-classic.indicator-type-corner_check .package-prices .old-price{ text-align:left !important; }

/* ---- Minimal layout row ---- */
.v34-package-wrapper.design-minimal.minimal-layout-row .package-title{ flex:0 1 auto; }
.v34-package-wrapper.design-minimal.minimal-layout-row .package-prices{ flex:0 0 auto; }

/* ---- Grid orientation ---- */
.v34-package-wrapper.orientation-horizontal .package-grid{ display:flex; flex-direction:row; flex-wrap:wrap; gap:15px; margin-top:10px; }
.v34-package-wrapper.orientation-vertical   .package-grid{ display:flex; flex-direction:column; gap:15px; margin-top:10px; }
.v34-package-wrapper.orientation-vertical .pkg-title-text{ text-align:left; }

/* ---- Utilities ---- */
.packdeck-variation-price-slot{ margin:10px 0; }
.single-product .single_add_to_cart_button{ padding:10px; width:100%; }
.v34-package-wrapper,.v34-package-wrapper *{ -webkit-user-select:none; user-select:none; }
.v34-package-wrapper{ -webkit-tap-highlight-color:transparent; }
.v34-package-wrapper img{ -webkit-user-drag:none; }

/* ---- Responsive ---- */
@media(max-width:600px){
    .v34-package-wrapper.orientation-horizontal .package-grid{ flex-direction:column; }
    .v34-package-wrapper.design-minimal .package-content{ padding:7px 9px; }
    .v34-package-wrapper.design-minimal .package-prices .main-price{ font-size:17px; }
}

/* ---- Slim design ---- */

/* Card base */
.v34-package-wrapper.design-slim .package-card {
    border-radius: 10px;
    border: 2px solid #ddd;
    overflow: visible;
    position: relative;
    margin-left: 12px;
}
.v34-package-wrapper.design-slim .package-card.active {
    box-shadow: 0 6px 18px rgba(0,0,0,.1);
    transform: translateY(-2px);
}

/* Content */
.v34-package-wrapper.design-slim .package-content {
    padding: 14px 16px 14px 10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.v34-package-wrapper.design-slim .pkg-title-text {
    font-size: 15px;
    font-weight: 800;
    color: #222;
    text-align: left;
    white-space: normal;
}
.v34-package-wrapper.design-slim .package-desc {
    font-size: 12px;
    color: #666;
    line-height: 1.3;
}

/* Separator */
.pkg-slim-sep {
    border: none;
    border-top: 1px solid #e5e5e5;
    margin: 6px 0 4px;
}

/* Price block */
.pkg-slim-price-block {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pkg-slim-row { font-size: 13px; line-height: 1.3; }
.pkg-slim-regular { color: #999; }
.pkg-slim-regular del { text-decoration: line-through; }
.pkg-slim-save { color: #d32f2f; font-weight: 600; }
.pkg-slim-current { font-size: 18px; font-weight: 900; color: #111; }

/* Edge radio button */
.pkg-slim-radio {
    position: absolute;
    left: -9px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid #cfcfcf;
    background: #fff;
    z-index: 6;
    box-shadow: 0 1px 4px rgba(0,0,0,.12);
    transition: border-color .15s, background .15s;
}
.pkg-slim-radio::after {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    margin: 3px auto 0;
    border-radius: 50%;
    background: transparent;
    transition: background .15s;
}
.v34-package-wrapper.design-slim .package-card.active .pkg-slim-radio::after {
    background: currentColor;
}

/* Hide when indicator is off */
.v34-package-wrapper.indicator-off .pkg-slim-radio { display: none !important; }

/* Theme colours for active radio dot */
.v34-package-wrapper.theme-orange.design-slim   .package-card.active .pkg-slim-radio { border-color:#ff7a00; }
.v34-package-wrapper.theme-orange.design-slim   .package-card.active .pkg-slim-radio::after { background:#ff7a00; }
.v34-package-wrapper.theme-green.design-slim    .package-card.active .pkg-slim-radio { border-color:#1b8f3a; }
.v34-package-wrapper.theme-green.design-slim    .package-card.active .pkg-slim-radio::after { background:#1b8f3a; }
.v34-package-wrapper.theme-blue.design-slim     .package-card.active .pkg-slim-radio { border-color:#1565c0; }
.v34-package-wrapper.theme-blue.design-slim     .package-card.active .pkg-slim-radio::after { background:#1565c0; }
.v34-package-wrapper.theme-black.design-slim    .package-card.active .pkg-slim-radio { border-color:#111; }
.v34-package-wrapper.theme-black.design-slim    .package-card.active .pkg-slim-radio::after { background:#111; }
.v34-package-wrapper.theme-yellow.design-slim   .package-card.active .pkg-slim-radio { border-color:#e0b800; }
.v34-package-wrapper.theme-yellow.design-slim   .package-card.active .pkg-slim-radio::after { background:#e0b800; }
.v34-package-wrapper.theme-lavender.design-slim .package-card.active .pkg-slim-radio { border-color:#7e57c2; }
.v34-package-wrapper.theme-lavender.design-slim .package-card.active .pkg-slim-radio::after { background:#7e57c2; }
.v34-package-wrapper.theme-sage.design-slim     .package-card.active .pkg-slim-radio { border-color:#5f8f77; }
.v34-package-wrapper.theme-sage.design-slim     .package-card.active .pkg-slim-radio::after { background:#5f8f77; }
.v34-package-wrapper.theme-rose.design-slim     .package-card.active .pkg-slim-radio { border-color:#d35b8d; }
.v34-package-wrapper.theme-rose.design-slim     .package-card.active .pkg-slim-radio::after { background:#d35b8d; }
.v34-package-wrapper.theme-midnight.design-slim .package-card.active .pkg-slim-radio { border-color:#2f4f9c; }
.v34-package-wrapper.theme-midnight.design-slim .package-card.active .pkg-slim-radio::after { background:#2f4f9c; }
.v34-package-wrapper.theme-ocean.design-slim    .package-card.active .pkg-slim-radio { border-color:#0f9bb0; }
.v34-package-wrapper.theme-ocean.design-slim    .package-card.active .pkg-slim-radio::after { background:#0f9bb0; }
