.nl-page { background: #fcfaf6; }
.nl-page .shell { max-width: 1280px; }
.nl-page :is(h1,h2) { text-wrap: balance; }
.nl-hero { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: clamp(32px,6vw,90px); padding-top: 60px; padding-bottom: 60px; }
.nl-hero h1 { font: 400 clamp(42px,4.9vw,70px)/1.08 var(--serif); color: var(--burgundy); margin: 20px 0 24px; }
.nl-intro { font-size: 17px; line-height: 1.85; max-width: 570px; }
.nl-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; margin-top: 30px; }
.nl-note { font-size: 13px; line-height: 1.7; color: var(--muted); margin-top: 28px; }
.nl-hero figure { position: relative; margin: 0; }
.nl-hero figure img { width: 100%; height: auto; max-height: 570px; object-fit: cover; display: block; }
.nl-hero figcaption { position: absolute; inset: auto 18px 18px; background: rgba(255,252,246,.94); color: var(--burgundy); font-size: 12px; letter-spacing: .05em; padding: 14px; text-align: center; }
.nl-card-track { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.nl-occasion { display: block; background: #f3eee6; }
.nl-occasion > img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; }
.nl-occasion > div { padding: 23px 25px 26px; }
.nl-occasion h3 { display: flex; justify-content: space-between; gap: 10px; font: 400 27px/1.2 var(--serif); margin: 0 0 12px; color: var(--burgundy); }
.nl-occasion p { margin: 0; font-size: 14px; line-height: 1.8; color: var(--muted); }
.nl-delivery { background: #eeeede; }
.nl-delivery-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(30px,6vw,85px); }
.nl-delivery-grid h2,.nl-planning h2 { font: 400 clamp(34px,3.4vw,48px)/1.15 var(--serif); margin: 14px 0 24px; color: var(--burgundy); }
.nl-delivery-grid p,.nl-planning p { font-size: 15px; line-height: 1.85; margin: 0 0 20px; }
.nl-rates { min-width: 0; align-self: start; padding: 26px; background: #fcfaf6; }
.nl-rates h3 { font: 500 18px/1.4 var(--sans); margin: 0 0 18px; }
.nl-table-scroll { overflow-x: auto; margin-bottom: 18px; }
.nl-rates table { width: 100%; border-collapse: collapse; text-align: left; font-size: 13px; line-height: 1.6; }
.nl-rates :is(th,td) { padding: 13px 10px; border-bottom: 1px solid #e0d9ce; vertical-align: top; }
.nl-rates th { font-weight: 500; }
.nl-rates td:last-child { white-space: nowrap; color: var(--burgundy); }
.nl-rates p { font-size: 13px; line-height: 1.75; }
.nl-planning { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(35px,8vw,120px); }
.nl-planning-copy { border-left: 1px solid #ded5c8; padding-left: 40px; }
.nl-planning h3 { font: 500 18px/1.4 var(--sans); margin: 0 0 14px; }
.nl-planning-copy h3:not(:first-child) { margin-top: 30px; }
.nl-planning-copy p a { color: var(--burgundy); text-decoration: underline; text-underline-offset: 3px; }
.nl-nearby { display: flex; flex-wrap: wrap; gap: 12px 26px; align-items: center; padding-top: 25px; padding-bottom: 40px; border-top: 1px solid #ded5c8; font-size: 14px; }
.nl-nearby span { color: var(--muted); margin-right: auto; }
.nl-nearby a { color: var(--burgundy); padding-block: 10px; }
@media (max-width:760px) {
    .nl-hero { grid-template-columns: 1fr; padding-top: 34px; gap: 28px; }
    .nl-hero h1 { font-size: clamp(38px,11vw,55px); }
    .nl-intro { font-size: 16px; }
    .nl-hero figure img { max-height: 410px; }
    .nl-card-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 15px; padding-bottom: 16px; }
    .nl-occasion { flex: 0 0 86%; min-width: 0; scroll-snap-align: start; }
    .nl-occasion > div { padding: 20px; }
    .nl-delivery-grid,.nl-planning { grid-template-columns: 1fr; gap: 30px; }
    .nl-rates { padding: 20px 16px; }
    .nl-rates table { table-layout: fixed; font-size: 12px; }
    .nl-rates :is(th,td) { padding: 12px 6px; overflow-wrap: anywhere; }
    .nl-rates :is(th,td):first-child { width: 38%; }
    .nl-rates :is(th,td):nth-child(2) { width: 39%; }
    .nl-rates :is(th,td):last-child { width: 23%; }
    .nl-planning-copy { padding-left: 0; border-left: 0; border-top: 1px solid #ded5c8; padding-top: 28px; }
    .nl-nearby { gap: 6px 22px; }
    .nl-nearby span { flex-basis: 100%; }
}
