/* Shared product layout. Alcohol Package is the visual reference. */
body.darling-product-landing-page:has(.darling-product-landing) .woocommerce-content > .container {
    width: 100%; max-width: none; padding-inline: 0;
}
body.darling-product-landing-page:has(.darling-product-landing) .header {
    position: absolute; inset: 0 0 auto; z-index: 50; border: 0;
    background: linear-gradient(180deg, rgb(0 0 0 / .46), rgb(0 0 0 / .14) 68%, transparent);
    backdrop-filter: none;
}
body.darling-product-landing-page .header > .container {
    width: 100%; max-width: none; padding-inline: clamp(20px, 3.125vw, 60px);
}
body.darling-product-landing-page .header__wrapper { min-height: 97px; }
body.darling-product-landing-page .header .logo {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
}
body.darling-product-landing-page.admin-bar .header { top: var(--wp-admin--admin-bar--height, 32px); }

.darling-product-landing {
    --product-hero-overhang: 165px;
    --product-content-width: 620px;
    margin-inline: 0; overflow: clip;
}
.darling-product-landing .package {
    z-index: 2; min-height: 608px; height: clamp(608px, 80svh, 720px); max-height: 720px;
    overflow: visible;
}
.darling-product-landing .package-img { height: 100%; object-position: var(--photo-hero-x, 50%) var(--photo-hero-y, 48%); }
.darling-product-landing .package::after {
    content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: linear-gradient(180deg, transparent 45%, rgb(0 0 0 / .22));
}
.darling-product-landing .package-holder {
    box-sizing: border-box; z-index: 2; bottom: 0; width: min(860px, calc(100% - 56px));
    transform: translate(-50%, 50%); padding: 38px 52px 40px;
    background: radial-gradient(120% 145% at 48% -18%, rgb(255 244 230 / .58), rgb(222 163 171 / .40) 30%, rgb(132 75 112 / .34) 55%, rgb(14 11 18 / .70)), rgb(73 39 62 / .24);
    -webkit-backdrop-filter: blur(22px) saturate(1.08); backdrop-filter: blur(22px) saturate(1.08);
    box-shadow: 0 18px 48px rgb(0 0 0 / .16), inset 0 1px 0 rgb(255 255 255 / .16);
}
.darling-product-landing .package .package-title {
    margin-bottom: 18px; font-size: clamp(46px, 4.3vw, 62px); line-height: 1.04;
}
.darling-product-landing .package-sub-title { margin-bottom: 16px; font-size: 22px; line-height: 1.25; }
.darling-product-landing .package-desc { max-width: 700px; margin: 0 auto 24px; font-size: 19px; line-height: 1.4; }
.darling-product-landing .package .package-button { min-height: 52px; padding: 14px 28px; font-size: 18px; }
.darling-product-landing .package-cta-holder { top: calc(100% + var(--product-hero-overhang) + 28px); bottom: auto; }

.darling-product-landing .product-landing-details {
    position: relative; isolation: isolate; width: 100%;
    padding: calc(var(--product-hero-overhang) + 114px) 0 104px; scroll-margin-top: 32px;
    background: #030303;
}
.darling-product-landing .product-landing-content {
    position: relative; z-index: 1; width: min(var(--product-content-width), calc(100% - 48px)); margin-inline: auto;
}
.darling-product-landing .product-landing-visual {
    position: absolute; z-index: 0; top: calc(var(--product-hero-overhang) + 98px);
    width: clamp(270px, 25vw, 485px); margin: 0; pointer-events: none;
}
.darling-product-landing .product-landing-visual--left { left: 0; top: calc(var(--product-hero-overhang) + 114px + var(--photo-left-offset, -16px)); }
.darling-product-landing .product-landing-visual--right { right: 0; top: calc(var(--product-hero-overhang) + 114px + var(--photo-right-offset, 30px)); }
.darling-product-landing .product-landing-visual img { display: block; width: 100%; height: auto; object-fit: contain; }
.darling-product-landing .product-landing-visual--left img { object-position: left top; }
.darling-product-landing .product-landing-visual--right img { object-position: right top; }
.darling-product-landing .package-info-content {
    font-family: "Agenda One", sans-serif; font-size: 18px; line-height: 1.55;
}
.darling-product-landing .package-info-content h2,
.darling-product-landing .package-info-content h3 {
    margin: 40px 0 22px; font-family: "Essonnes Display", serif;
    font-size: clamp(28px, 2.4vw, 36px); font-weight: 400; line-height: 1.17; text-align: center;
}
.darling-product-landing .package-info-content > :first-child { margin-top: 0; }
.darling-product-landing .package-info-content p { margin: 0 0 14px; }
.darling-product-landing .package-info-content ul { display: grid; gap: 18px; padding: 0; margin: 0 0 32px; list-style: none; font: inherit; }
.darling-product-landing .package-info-content li { position: relative; margin: 0; padding-left: 26px; }
.darling-product-landing .package-info-content li::before {
    content: ''; position: absolute; left: 0; top: .5em;
    width: 10px; height: 12px; background: #d82134; clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.darling-product-landing .package-info-content strong { font-weight: 600; }
.darling-product-landing .product-landing-purchase { margin-top: 34px; text-align: center; }
.darling-product-landing .product-landing-price {
    margin-bottom: 20px; font-family: "Essonnes Display", serif; font-size: clamp(38px, 3.3vw, 48px); line-height: 1.15;
}
.darling-product-landing .product-landing-price del { font-size: .65em; opacity: .65; }
.darling-product-landing .package-cart-form form.cart { margin: 0; }
.darling-product-landing .package-cart-form .single_add_to_cart_button { min-width: 250px; min-height: 52px; font-size: 18px; }
.darling-product-landing .product-landing-note { display: flex; align-items: flex-start; gap: 14px; margin-top: 34px; font: 15px/1.4 "Agenda One", sans-serif; }
.darling-product-landing .product-landing-note p { margin: 0; }
.darling-product-landing .product-landing-note a { color: #e04a58; text-decoration: underline; }
.darling-product-landing .product-landing-note__icon { flex: 0 0 30px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #030303; background: #999; font-size: 22px; font-weight: 700; }

/* The existing related-feature renderer and its Party Bus overlap/button system. */
.darling-product-landing .package-add { padding: 76px 0 90px; background: linear-gradient(110deg, rgb(72 27 32 / .27), transparent 48%), #131313; }
.darling-product-landing .package-add > .package-container { max-width: 1140px; padding-inline: 32px; }
.darling-product-landing .package-add .package-title { margin: 0 0 52px; font-size: 44px; font-weight: 400; }
.darling-product-landing .darling-single-product__related-feature {
    /* Shared Party Bus proportions: 670px photo, 470px card, 80px overlap. */
    display: grid; grid-template-columns: minmax(0, 590fr) minmax(0, 80fr) minmax(0, 390fr); align-items: start;
    width: 100%; max-width: 1060px; margin-inline: auto; padding: 0 0 26px; isolation: isolate;
}
.darling-product-landing .darling-single-product__related-feature::after { content: ''; position: absolute; z-index: -1; left: 59%; bottom: 0; width: 100px; height: 110px; background: radial-gradient(circle, rgb(216 33 52 / .65) 1.5px, transparent 3px) 0 0 / 12px 12px; mask-image: linear-gradient(135deg, transparent, #000 55%); }
.darling-product-landing .darling-single-product__related-feature-media { grid-column: 1 / 3; grid-row: 1; width: 100%; aspect-ratio: auto; border-radius: 0; }
.darling-product-landing .darling-single-product__related-feature-image { width: 100%; height: auto; margin: 0; aspect-ratio: auto; object-fit: contain; object-position: center; border-radius: 0; }
.darling-product-landing .darling-single-product__related-feature-body { grid-column: 2 / 4; grid-row: 1; box-sizing: border-box; width: 100%; max-width: none; margin: 52px 0 0; padding: 30px 32px 32px; border-radius: 0; background: rgb(240 240 240 / .10); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.darling-product-landing .package-add .package-info-title { margin: 0 0 14px; font: 400 30px/1.12 "Essonnes Display", serif; text-align: center; text-transform: uppercase; }
.darling-product-landing .package-add-price { display: block; margin: 0 0 18px; font-size: 22px; line-height: 1.2; }
.darling-product-landing .package-add .package-info-desc { max-width: none; margin: 0; font-size: 16px; line-height: 1.5; text-align: left; white-space: pre-line; }
.darling-product-landing .package-add-btns { width: min(270px, 100%); max-width: none; gap: 8px; margin: 20px auto 0; }
.darling-product-landing .package-add-btns .package-button { box-sizing: border-box; width: 100%; min-height: 44px; padding: 10px 16px; font-size: 15px; line-height: 24px; }
.darling-product-landing .party-bus-related-more { color: #111; background: linear-gradient(90deg, #aaa, #ddd 50%, #aaa); }

@media (max-width: 1199px) {
    body.darling-product-landing-page .header__wrapper { min-height: 70px; }
    .darling-product-landing { --product-content-width: 560px; }
    .darling-product-landing .product-landing-visual { width: 260px; }
}
@media (max-width: 1100px) {
    .darling-product-landing .darling-single-product__related-feature { grid-template-columns: 1fr; max-width: 670px; }
    .darling-product-landing .darling-single-product__related-feature-media,
    .darling-product-landing .darling-single-product__related-feature-body { grid-column: 1; grid-row: auto; }
    .darling-product-landing .darling-single-product__related-feature-body { width: 100%; margin: 0; }
    .darling-product-landing .darling-single-product__related-feature::after { left: auto; right: 16px; }
}
@media (max-width: 1000px) {
    .darling-product-landing .product-landing-visual { display: none; }
    .darling-product-landing { --product-content-width: 640px; }
}
@media (max-width: 782px) {
    body.darling-product-landing-page.admin-bar .header { top: var(--wp-admin--admin-bar--height, 46px); }
}
@media (max-width: 767px) {
    body.darling-product-landing-page .header { padding-block: 14px 12px; }
    body.darling-product-landing-page .header__wrapper { min-height: 48px; }
    body.darling-product-landing-page .header .burger { gap: 7px; margin-right: 0; }
    body.darling-product-landing-page .header .burger__icon { width: 40px; height: 40px; padding: 11px 8px; }
    body.darling-product-landing-page .header .burger__text { display: inline; font-size: 13px; letter-spacing: .04em; }
    body.darling-product-landing-page .header .logo { width: 128px; }
    body.darling-product-landing-page .header .btn-border--header { width: auto; max-width: none; min-width: 0; padding: 8px 10px; white-space: nowrap; font-size: 11px; }
    .darling-product-landing .package { min-height: 560px; height: 560px; max-height: 560px; }
    .darling-product-landing .package-img { object-position: var(--photo-mobile-x, 46%) var(--photo-mobile-y, 50%); }
    .darling-product-landing .package-holder { width: calc(100% - 32px); padding: 26px 22px; }
    .darling-product-landing .package .package-title { font-size: clamp(34px, 9vw, 43px); }
    .darling-product-landing .package-sub-title { font-size: 17px; line-height: 1.3; }
    .darling-product-landing .package-desc { font-size: 17px; line-height: 1.4; margin-bottom: 20px; }
    .darling-product-landing .package .package-button { width: 100%; box-sizing: border-box; min-height: 48px; padding: 12px 10px; font-size: 15px; }
    .darling-product-landing .product-landing-details { padding-bottom: 64px; }
    .darling-product-landing .product-landing-content { width: calc(100% - 40px); }
    .darling-product-landing .package-info-content { font-size: 17px; line-height: 1.5; }
    .darling-product-landing .package-info-content h2 { font-size: 28px; }
    .darling-product-landing .package-info-content h3 { font-size: 27px; }
    .darling-product-landing .product-landing-note { font-size: 14px; }
    .darling-product-landing .package-add { padding: 60px 0 64px; }
    .darling-product-landing .package-add > .package-container { padding-inline: 20px; }
    .darling-product-landing .package-add .package-title { margin-bottom: 34px; font-size: clamp(30px, 8vw, 40px); }
    .darling-product-landing .darling-single-product__related-feature-body { padding: 26px 22px; }
    .darling-product-landing .package-add-btns { width: 100%; }
    .darling-product-landing .package-add .package-info-title { font-size: 28px; }
}

/* The same Related component supports one featured card or the saved grid selection. */
.darling-product-landing .package-add[data-related-layout="grid"] > .package-container { max-width: 1600px; padding-inline: 32px; }
.darling-product-landing .darling-single-product__related-grid {
    position: relative; isolation: isolate; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch; gap: 24px; padding: 0 0 28px;
}
.darling-product-landing .darling-single-product__related-grid::after {
    content: ''; position: absolute; z-index: -1; right: -12px; bottom: 0; width: 112px; height: 112px;
    background: radial-gradient(circle, rgb(216 33 52 / .65) 1.5px, transparent 3px) 0 0 / 12px 12px;
    mask-image: linear-gradient(135deg, transparent, #000 55%); pointer-events: none;
}
.darling-product-landing .darling-single-product__related-card { display: flex; flex-direction: column; min-width: 0; }
.darling-product-landing .darling-single-product__related-card-media { width: 100%; aspect-ratio: 6 / 5; border-radius: 0; background: #151014; }
.darling-product-landing .darling-single-product__related-card-image { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center 20%; border-radius: 0; transform: none; }
.darling-product-landing .darling-single-product__related-card:hover .darling-single-product__related-card-image { transform: none; }
.darling-product-landing .product-landing-related-card--party-bus .darling-single-product__related-card-image { object-fit: contain; object-position: center top; }
.darling-product-landing .darling-single-product__related-card-body {
    box-sizing: border-box; display: flex; flex-direction: column; align-items: center; flex: 1;
    width: calc(100% - 48px); margin: -112px auto 0; padding: 24px 20px 18px; border-radius: 0;
    background: rgb(240 240 240 / .10); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
}
.darling-product-landing .darling-single-product__related-card-title {
    display: flex; align-items: center; justify-content: center; min-height: 2.16em; margin: 0 0 12px;
    font: 400 clamp(22px, 1.75vw, 28px)/1.08 "Essonnes Display", serif;
}
.darling-product-landing .darling-single-product__related-card-body .package-add-price { margin: 0 0 14px; font-size: 24px; line-height: 1.2; }
.darling-product-landing .product-landing-related-primary {
    display: flex; align-items: center; justify-content: center; box-sizing: border-box;
    width: min(230px, 100%); min-height: 48px; margin: auto auto 6px; padding: 12px 16px; font-size: 16px; line-height: 24px;
}
.darling-product-landing .product-landing-related-more { display: block; padding: 6px 10px; color: #fff; font: 16px/24px "Agenda One", sans-serif; text-decoration: none; }
.darling-product-landing .product-landing-related-more:hover { text-decoration: underline; }
@media (max-width: 1000px) {
    .darling-product-landing .product-landing-media-column { display: none; }
    .darling-product-landing .darling-single-product__related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .darling-product-landing .darling-single-product__related-card:nth-child(odd):last-child { grid-column: 1 / -1; width: calc((100% - 24px) / 2); justify-self: center; }
}

@media (max-width: 640px) {
    .darling-product-landing .package-add[data-related-layout="grid"] > .package-container { padding-inline: 20px; }
    .darling-product-landing .darling-single-product__related-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .darling-product-landing .darling-single-product__related-card:nth-child(odd):last-child { grid-column: auto; width: 100%; }
    .darling-product-landing .darling-single-product__related-card-body { width: calc(100% - 32px); margin-top: -96px; padding: 22px 18px 16px; }
    .darling-product-landing .darling-single-product__related-card-title { font-size: 24px; }
    .darling-product-landing .darling-single-product__related-card-body .package-add-price { font-size: 22px; }
    .darling-product-landing .product-landing-related-primary { width: 100%; }
}

/* Optional edge photos keep their full frames and share one column system. */
.darling-product-landing .product-landing-media-column { display: grid; gap: 28px; }
.darling-product-landing .product-landing-media-column__item { margin: 0; width: calc(100% * var(--edge-photo-scale, 1)); }
.darling-product-landing .product-landing-visual--right .product-landing-media-column__item { margin-left: auto; }
.darling-product-landing .package-info-content .package-info-desc { font: inherit; line-height: inherit; }
.darling-product-landing .package-info-content b { font-weight: 600; }
@media (max-width: 1000px) { .darling-product-landing .product-landing-media-column { display: none; } }

/* Mobile: a short photo followed by a flowing card; copy never sets the crop. */
@media (max-width: 767px) {
    .darling-product-landing .package {
        display: flex; flex-direction: column;
        min-height: 0; height: auto; max-height: none; padding-bottom: 24px;
    }
    .darling-product-landing .package-img {
        height: clamp(180px, 30svh, 260px); flex: none;
        object-position: var(--photo-small-x, var(--photo-mobile-x, 50%)) var(--photo-small-y, var(--photo-mobile-y, 50%));
    }
    .darling-product-landing[data-product-slug="arrested-by-sexy-policeman"] { --photo-small-x: 50%; --photo-small-y: 26%; }
    .darling-product-landing[data-product-slug="alcohol-package"] { --photo-small-x: 50%; --photo-small-y: 55%; }
    .darling-product-landing[data-product-slug="silver-beverage-and-entertainment-package"] { --photo-small-x: 72%; --photo-small-y: 32%; }
    .darling-product-landing[data-product-slug="jelly-wrestling"] { --photo-small-x: 58%; --photo-small-y: 24%; }
    .darling-product-landing .package::after { display: none; }
    .darling-product-landing .package-holder {
        position: relative; inset: auto; transform: none;
        display: flex; flex-direction: column;
        width: calc(100% - 24px); margin: -12px auto 0; padding: 18px;
    }
    .darling-product-landing .package .package-title {
        font-size: clamp(26px, 7.3vw, 34px); line-height: 1.05;
        margin: 0 0 10px; overflow-wrap: anywhere;
    }
    .darling-product-landing .package-sub-title { font-size: 14px; line-height: 1.3; margin: 0 0 12px; }
    .darling-product-landing .package-desc { font-size: 15px; line-height: 1.4; margin: 0; order: 1; }
    .darling-product-landing .package .package-button { min-height: 44px; padding: 10px 8px; font-size: 14px; margin-bottom: 14px; }
    .darling-product-landing .package-cta-holder { display: none; }
    .darling-product-landing .product-landing-details { padding-top: 24px; }
}
@media (max-width: 350px), (max-width: 767px) and (max-height: 600px) {
    .darling-product-landing .package-img { height: clamp(120px, 28svh, 160px); }
    .darling-product-landing .package-holder { padding: 14px; }
    .darling-product-landing .package-sub-title { font-size: 13px; margin-bottom: 10px; }
    .darling-product-landing .package-desc { font-size: 14px; line-height: 1.35; }
    .darling-product-landing .package .package-button { font-size: 13px; margin-bottom: 12px; }
}

/* Gold: paired portraits begin with the copy and end around Special Offer. */
@media (min-width: 1001px) {
    .darling-product-landing[data-product-slug="gold-drinks-girls-stag-package"] .product-landing-media-column {
        top: calc(var(--product-hero-overhang) + 114px);
        gap: 0;
    }
    .darling-product-landing[data-product-slug="gold-drinks-girls-stag-package"] .product-landing-media-column__item {
        width: 100%;
        height: var(--gold-photo-height, auto);
    }
    .darling-product-landing[data-product-slug="gold-drinks-girls-stag-package"] .product-landing-media-column img {
        height: 100%;
        object-fit: cover;
        object-position: 50% top;
    }
}
