/* PERNOD-GIFT-01 extends the existing pine / berry / serif design. */
.seasonal { padding: 0 0 60px; background: #f7f8f5; scroll-margin-top: 78px; }
.seasonal-intro { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); align-items: center; gap: 30px; padding: 54px clamp(20px,6vw,90px); background: var(--pine-ink); color: white; }
.seasonal-intro h2 { margin: 0 0 20px; font: 500 clamp(40px,4.8vw,68px)/1.02 var(--serif); letter-spacing: -.035em; }
.seasonal-intro .eyebrow { color: var(--gold); font-size: 13px; }
.seasonal-intro p { font-size: 16px; line-height: 1.65; max-width: 650px; }
.seasonal-intro .seasonal-promise { font-size: clamp(21px,2vw,27px); line-height: 1.3; color: var(--gold); }
.seasonal-intro .button { background: var(--gold); color: var(--pine-ink); }
.seasonal-stage { display: flex; align-items: end; justify-content: center; gap: 12px; min-height: 260px; padding: 28px 16px; background: #fff; border-radius: 8px; }
.seasonal-stage img { width: 31%; height: 245px; object-fit: contain; }
.seasonal-deadline { margin: 0; padding: 17px clamp(20px,6vw,90px); color: var(--pine-ink); background: var(--gold); font-size: 16px; line-height: 1.5; }
.seasonal-catalogue { padding: 30px clamp(20px,6vw,90px) 0; }
.seasonal-toolbar { display: flex; gap: 16px; flex-wrap: wrap; align-items: end; margin-bottom: 24px; }
.seasonal-toolbar label { display: grid; gap: 8px; font-size: 14px; font-weight: 700; flex: 1 1 190px; }
.seasonal input,.seasonal select,.reserve-dialog input,.reserve-dialog select,.reserve-dialog textarea { min-height: 46px; padding: 10px 12px; font: 400 16px/1.4 var(--sans); color: var(--ink); border: 1px solid #82958b; border-radius: 4px; background: #fff; width: 100%; min-width: 0; }
.seasonal-count { margin: 0 0 16px; font-size: 14px; color: var(--muted); }
.seasonal-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.seasonal-card { min-width: 0; display: flex; flex-direction: column; background: white; border: 1px solid #d9e1db; border-radius: 6px; overflow: hidden; }
.seasonal-image { display: grid; place-items: center; height: 248px; padding: 24px; border-bottom: 1px solid #edf0eb; }
.seasonal-image img { height: 100%; max-height: 200px; width: 100%; object-fit: contain; }
.seasonal-card-body { display: flex; flex-direction: column; flex: 1; padding: 22px; }
.seasonal-posture { color: var(--berry); font-size: 13px; font-weight: 800; letter-spacing: .025em; }
.seasonal-card h3 { margin: 10px 0; font: 500 25px/1.18 var(--serif); }
.seasonal-description { margin: 0 0 16px; font-size: 16px; line-height: 1.5; color: #45564c; }
.seasonal-format { margin: auto 0 12px; font-size: 14px; color: #46594d; }
.seasonal-price { display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; margin: 0 0 18px; }
.seasonal-price strong { font-size: 25px; font-weight: 750; }
.seasonal-price span { font-size: 13px; color: var(--muted); }
.seasonal-card-actions { display: grid; grid-template-columns: 78px minmax(0,1fr); align-items: end; gap: 12px; }
.seasonal-card-actions label { display: grid; gap: 5px; font-size: 14px; }
.seasonal-card-actions button { min-height: 46px; padding: 10px; cursor: pointer; }
.seasonal-footnote { font-size: 14px; line-height: 1.6; margin-top: 24px; color: #435649; }
.seasonal-more { display: block; margin: 28px auto 0; cursor: pointer; }
.seasonal-empty { padding: 30px; border: 1px solid #d9e1db; background: white; }
.seasonal-selection { position: sticky; bottom: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 22px 0 0; padding: 18px 22px; background: var(--pine); color: white; border-radius: 5px; box-shadow: 0 -4px 24px #10271d24; }
.seasonal-selection p { margin: 0; font-size: 16px; }
.seasonal-selection small { display: block; margin-top: 5px; font-size: 14px; }
.seasonal-selection button { white-space: nowrap; cursor: pointer; }
.seasonal-start { border: 0; cursor: pointer; }
.reserve-dialog { width: min(800px,calc(100% - 28px)); max-height: calc(100dvh - 28px); padding: 0; border: 0; border-radius: 8px; background: #fffdf8; color: var(--ink); }
.reserve-dialog::backdrop { background: #091c17bb; }
.reserve-head { display: flex; justify-content: space-between; gap: 16px; position: sticky; top: 0; z-index: 1; background: #fffdf8; padding: 22px 28px; border-bottom: 1px solid #d5ded6; }
.reserve-head h2 { font: 500 30px/1.12 var(--serif); margin: 0; }
.reserve-close { width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid #82958b; border-radius: 50%; background: white; cursor: pointer; font-size: 24px; }
.reserve-content { padding: 0 28px 28px; }
.reserve-content p { font-size: 16px; line-height: 1.55; }
.reserve-status { padding: 14px 16px; background: #fff1cf; border-left: 4px solid #b8811e; }
.reserve-modes { display: flex; flex-wrap: wrap; gap: 12px; border: 0; padding: 0; margin: 20px 0; }
.reserve-modes legend { font-weight: 700; margin-bottom: 12px; }
.reserve-modes label { display: flex; align-items: center; gap: 8px; padding: 12px; border: 1px solid #82958b; border-radius: 4px; cursor: pointer; }
.reserve-modes input,.reserve-ack input { width: 20px; height: 20px; min-height: 20px; flex: 0 0 20px; accent-color: var(--pine); }
.reserve-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.reserve-fields label { display: grid; gap: 8px; min-width: 0; font-size: 16px; font-weight: 650; }
.reserve-wide { grid-column: 1 / -1; }
.reserve-lines { margin: 0 0 20px; padding: 0; list-style: none; }
.reserve-lines li { display: grid; grid-template-columns: 1fr 90px 44px; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid #d5ded6; }
.reserve-lines small { display: block; margin-top: 5px; font-size: 14px; }
.reserve-remove { min-width: 44px; min-height: 44px; border: 0; background: transparent; cursor: pointer; font-size: 24px; }
.budget-row { display: grid; grid-template-columns: 85px 125px minmax(0,1fr) 44px; align-items: end; gap: 10px; margin-bottom: 14px; }
.budget-row label { display: grid; gap: 7px; min-width: 0; font-size: 14px; }
.reserve-link { border: 0; background: none; color: var(--berry); padding: 10px 0; min-height: 44px; font: 700 16px/1.4 var(--sans); text-decoration: underline; cursor: pointer; }
.reserve-ack { display: flex; align-items: start; gap: 12px; font-size: 14px; line-height: 1.55; margin: 22px 0; }
.reserve-review { padding: 18px; background: #eaf0e7; border: 1px solid #a3b4a3; margin-top: 20px; overflow-wrap: anywhere; }
.reserve-review h3 { margin-top: 0; font: 500 25px/1.2 var(--serif); }
.reserve-review dl { display: grid; grid-template-columns: 160px minmax(0,1fr); gap: 10px; margin-bottom: 0; }
.reserve-review dt { font-weight: 700; }
.reserve-review dd { margin: 0; }
.reserve-review button { margin-top: 18px; }
.reserve-dialog button:disabled { cursor: not-allowed; opacity: .6; }
.reserve-error { color: #8a2538; font-weight: 700; }
.reserve-state-steps { padding-left: 24px; line-height: 1.6; font-size: 14px; }
@media (max-width: 1000px) {.seasonal-grid {grid-template-columns:repeat(2,minmax(0,1fr))}.seasonal-intro {grid-template-columns:1fr}.seasonal-stage {max-width:580px; min-height:220px}.seasonal-stage img{height:210px}}
@media (max-width: 600px) {.seasonal-intro {padding:32px 20px;gap:22px}.seasonal-intro h2 {font-size:42px}.seasonal-stage{padding:18px 8px;min-height:170px;gap:4px}.seasonal-stage img{height:160px}.seasonal-grid{grid-template-columns:1fr}.seasonal-card-body{padding:20px}.seasonal-image{height:238px}.seasonal-toolbar{gap:12px}.seasonal-toolbar label{flex-basis:100%}.seasonal-selection{flex-direction:column;align-items:stretch;gap:12px;padding:15px}.seasonal-selection button{width:100%}.reserve-head{padding:18px}.reserve-head h2{font-size:27px}.reserve-content{padding:0 18px 22px}.reserve-fields{grid-template-columns:1fr}.reserve-wide{grid-column:auto}.reserve-modes label{width:100%}.budget-row{grid-template-columns:1fr 1fr 44px}.budget-row label:nth-child(3){grid-column:1 / 3;grid-row:2}.budget-row button{grid-column:3;grid-row:1 / 3}.reserve-review dl{grid-template-columns:1fr;gap:6px}.reserve-review dd{margin-bottom:10px}}

.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
