.package-photo-cover { position:relative; display:block; height:100%; text-decoration:none; }
.package-view-overlay { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; background:#000a; color:#fff; opacity:0; transition:opacity .3s ease; pointer-events:none; }
.package-view-overlay svg { display:block; width:42px; height:42px; fill:currentColor; }
.package-view-overlay span { font-size:1.15rem; font-weight:500; }
.package-photo-cover:hover .package-view-overlay, .package-photo-cover:focus-visible .package-view-overlay { opacity:1; }
.package-photo-cover:hover .menu-package-image { transform:scale(1.05); }
.package-photo-cover:focus-visible { outline:3px solid #cf6345; outline-offset:-3px; }
.menu-package-photos { overflow:hidden; }
body.catalog-gallery-open { overflow:hidden; }
.catalog-photo-dialog { box-sizing:border-box; width:min(1000px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 32px); padding:24px; border:1px solid #dfe7e2; border-radius:16px; background:#fffefa; color:#203f43; box-shadow:0 20px 80px #102c2a40; overflow:auto; }
.catalog-photo-dialog [hidden] { display:none !important; }
.catalog-package-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:28px; }
.catalog-package-media, .catalog-package-details { min-width:0; }
.catalog-package-eyebrow { color:#ae533b; font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.catalog-package-name { margin:8px 0 14px; font-size:1.6rem; overflow-wrap:anywhere; }
.catalog-package-price { margin:0; color:#236556; font-size:1.5rem; font-weight:700; }
.catalog-package-price-note { margin:4px 0 20px; color:#63777a; font-size:.75rem; }
.catalog-package-description { color:#63777a; font-size:.9rem; line-height:1.7; overflow-wrap:anywhere; }
.catalog-package-details h4 { margin:20px 0 10px; font-size:.9rem; }
.catalog-package-details ul { margin:0; padding-left:20px; color:#456357; font-size:.85rem; line-height:1.8; overflow-wrap:anywhere; }
.catalog-package-reserve { display:block; margin-top:24px; padding:13px; border-radius:8px; background:#cf6345; color:#fff !important; text-align:center; text-decoration:none; font-weight:600; font-size:.85rem; }
.catalog-package-reserve:hover { background:#b95439; }
.catalog-package-unavailable { margin:24px 0 0; padding:13px; border-radius:8px; background:#f3f1e9; color:#786a4b; text-align:center; }
.menu-package-placeholder { display:grid; place-items:center; width:100%; height:200px; border:0; padding:0; background:#e9f4f1; color:#36565d; cursor:pointer; }
.package-placeholder-icon { font-size:3rem; }
.catalog-photo-dialog::backdrop { background:#172f31b8; }
.catalog-gallery-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.catalog-gallery-heading h2 { margin:0; font-size:1.2rem; overflow-wrap:anywhere; }
.catalog-gallery-close { flex-shrink:0; width:40px; height:40px; border:1px solid #dfe7e2; border-radius:9px; background:#f4f6ef; color:#52705b; font-size:1.5rem; cursor:pointer; }
.catalog-gallery-stage { display:grid; place-items:center; min-height:160px; border-radius:10px; background:#edf1e8; overflow:hidden; }
.catalog-gallery-stage img { display:block; width:100%; height:min(48dvh,440px); object-fit:contain; }
.catalog-gallery-stage p { padding:24px; color:#6c7e70; font-size:.85rem; text-align:center; }
.catalog-gallery-stage [hidden] { display:none; }
.catalog-gallery-navigation { display:flex; align-items:center; justify-content:center; gap:24px; margin:14px 0; }
.catalog-gallery-navigation button { width:44px; height:40px; border:1px solid #dfe7e2; border-radius:8px; background:#fff; color:#32675c; font-size:1.2rem; cursor:pointer; }
.catalog-gallery-navigation button:disabled { opacity:.4; cursor:default; }
.catalog-gallery-navigation span { min-width:52px; text-align:center; color:#60736b; font-size:.8rem; }
.catalog-gallery-thumbnails { display:flex; justify-content:center; gap:10px; }
.catalog-gallery-thumbnails button { padding:3px; border:2px solid transparent; border-radius:9px; background:transparent; cursor:pointer; }
.catalog-gallery-thumbnails button[aria-pressed="true"] { border-color:#32675c; background:#e5eddf; }
.catalog-gallery-thumbnails img { display:block; width:88px; max-width:19vw; height:64px; object-fit:cover; border-radius:5px; }
@media (max-width:699px) { .catalog-package-layout { grid-template-columns:minmax(0,1fr); gap:20px; } .catalog-photo-dialog { padding:16px; } .catalog-gallery-stage img { height:36dvh; } }
