.packages-page .legal-main { padding-bottom: clamp(4rem, 7vw, 7rem); }
.packages-intro { padding-top: clamp(2.4rem, 5vw, 4.5rem); padding-bottom: clamp(1.4rem, 2.5vw, 2.2rem); }
.packages-intro .eyebrow { color: #327b3e; margin: 0 0 .65rem; }
.packages-intro h1 { margin: 0 0 .8rem; font-size: clamp(2.25rem, 4.8vw, 4rem); line-height: 1.08; letter-spacing: -.035em; }
.packages-intro > p:last-child { max-width: 780px; margin: 0; font-size: clamp(1rem, 1.35vw, 1.16rem); line-height: 1.55; color: #536064; }
.packages-status { margin: .8rem 0 2rem; padding: 1.1rem 1.3rem; border: 1px solid #d8e9df; border-radius: 14px; color: #395349; font-size: 1rem; }
.packages-status[hidden], .packages-filters[hidden], .packages-card[hidden] { display: none; }
.packages-filters { display: flex; flex-wrap: wrap; gap: .65rem; margin: 0 0 1.6rem; }
.packages-filter { min-height: 2.8rem; padding: .55rem 1.15rem; border: 1px solid #bed6c5; border-radius: 999px; background: #fff; color: #285f3c; font: inherit; font-size: .95rem; font-weight: 700; cursor: pointer; }
.packages-filter:hover, .packages-filter:focus-visible { border-color: #397e48; background: #eef6ef; }
.packages-filter[aria-pressed="true"] { border-color: #4e884c; background: #4e884c; color: #fff; }
.packages-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: clamp(1rem, 2vw, 1.5rem); }
.packages-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid #d8e7df; border-radius: 20px; background: #fff; box-shadow: 0 16px 38px rgba(30, 67, 52, .07); }
.packages-card-media { position: relative; height: clamp(190px, 17vw, 220px); flex: none; background: #edf2ef; }
.packages-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.packages-card-price { position: absolute; right: 14px; bottom: 14px; display: flex; flex-direction: column; align-items: flex-end; max-width: calc(100% - 28px); padding: .4rem .75rem .45rem; border: 1px solid rgba(40, 70, 50, .12); border-radius: 12px; background: rgba(255, 255, 255, .97); box-shadow: 0 8px 28px rgba(14, 29, 19, .16); color: #343b39; line-height: 1.15; }
.packages-card-price-line { display: flex; align-items: baseline; justify-content: flex-end; gap: .3rem; white-space: nowrap; }
.packages-card-price-prefix { font-size: .78rem; font-weight: 600; }
.packages-card-price strong { font-size: clamp(1.3rem, 1.65vw, 1.55rem); }
.packages-card-price-basis { margin-top: .12rem; color: #4f5e58; font-size: .72rem; text-align: right; }
.packages-card-content { display: flex; flex: 1; flex-direction: column; min-width: 0; padding: clamp(1.35rem, 2vw, 1.65rem); }
.packages-card-content .eyebrow { margin: 0 0 .65rem; color: #397545; font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.packages-card-title { margin: 0 0 .65rem; font-size: clamp(1.35rem, 1.8vw, 1.7rem); line-height: 1.2; letter-spacing: -.025em; overflow-wrap: anywhere; }
.packages-card-copy { max-height: 6em; overflow: hidden; margin: 0 0 .85rem; color: #4f5c5e; line-height: 1.5; font-size: 1rem; white-space: pre-line; }
.packages-card-facts { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0 0 .7rem; color: #4c5b61; font-size: .82rem; font-weight: 600; }
.packages-card-facts span { padding: .14rem .5rem; border-radius: 999px; background: #f0f3f1; white-space: nowrap; }
.packages-card-details { width: fit-content; padding: .1rem 0; border: 0; border-bottom: 1px solid currentColor; background: none; color: #245e3c; font: inherit; font-weight: 700; cursor: pointer; }
.packages-card-details:hover, .packages-card-details:focus-visible { color: #153d27; }
.packages-card-footer { display: flex; align-items: end; margin-top: auto; padding-top: 1.25rem; }
.packages-card-book { display: grid; place-items: center; width: 100%; min-height: 3.2rem; text-align: center; }
.packages-card-book[aria-disabled="true"] { pointer-events: none; opacity: .55; }
.packages-unavailable { margin: .6rem 0 0; color: #626d68; font-size: .88rem; }
.packages-dialog { width: min(700px, calc(100vw - 2rem)); max-height: min(84vh, 850px); padding: clamp(1.4rem, 3vw, 2.4rem); overflow: auto; border: 1px solid #d2e2d8; border-radius: 18px; box-shadow: 0 24px 80px rgba(15, 35, 25, .24); }
.packages-dialog::backdrop { background: rgba(14, 30, 23, .55); }
.packages-dialog h2 { margin: .4rem 2rem 1.2rem 0; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.packages-dialog .eyebrow { color: #397545; }
.packages-dialog-copy { white-space: pre-line; line-height: 1.65; font-size: 1rem; color: #4c5754; }
.packages-dialog-close { position: absolute; top: .9rem; right: .9rem; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border: 1px solid #ccdbd1; border-radius: 50%; background: #fff; color: #293d31; font-size: 1.7rem; cursor: pointer; }
@media (max-width: 1050px) { .packages-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .packages-card-media { height: 210px; } }
@media (max-width: 700px) { .packages-intro { padding-top: 2.1rem; } .packages-list { grid-template-columns: 1fr; } .packages-card-media { height: clamp(200px, 58vw, 260px); } .packages-card-content { padding: 1.35rem; } }
