.pack-page { max-width: 1360px; margin: auto; padding: 40px var(--gutter) 72px; }
.pack-detail { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.pack-detail-image { background: var(--product-surface); border-radius: 24px; overflow: hidden; }
.pack-detail-image img { width: 100%; height: auto; }
.pack-detail-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.back-link { font-size: 13px; color: var(--muted); }
.pack-detail h1 { font: 400 clamp(42px, 5vw, 68px)/1 var(--font-display); margin: 0; letter-spacing: -.025em; }
.pack-lede { font-size: 18px; line-height: 1.6; }
.pack-detail p { margin: 0; }
.pack-detail h2 { font: 600 14px var(--font-sans); margin: 8px 0 0; }
.pack-includes { margin: 0; padding: 0; list-style: none; width: 100%; }
.pack-includes li { padding: 9px 0; border-bottom: 1px solid var(--line); }
.pack-includes li::before { content: '✓'; margin-right: 12px; }
.small-note { font-size: 12px; color: var(--muted); }
.pack-explainer { margin-top: 80px; padding-top: 48px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.pack-explainer h2, .pack-last h2 { font: 400 clamp(36px, 4vw, 52px)/1.1 var(--font-display); }
.pack-explainer h3 { margin: 24px 0 6px; font-size: 17px; }
.pack-explainer h3:first-child { margin-top: 0; }
.pack-explainer p { margin: 0; color: var(--muted); }
.pack-last { margin-top: 64px; padding: 32px; border-radius: 20px; background: var(--brand-yellow); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.pack-last h2 { margin: 0; }
@media(max-width: 850px) { .pack-detail, .pack-explainer { grid-template-columns: 1fr; } .pack-detail-image { max-width: 640px; } .pack-last { align-items: flex-start; flex-direction: column; } }

.collection-builder .product { text-align: left; font: inherit; color: inherit; border: 2px solid transparent; border-radius: 24px; padding: 10px; transition: border-color .2s, background .2s; }
.collection-builder .head-l h1 { font: 400 clamp(42px, 5vw, 68px)/1.05 var(--font-display); letter-spacing: -.025em; margin: 16px 0; }
.collection-instructions { max-width: 510px; color: #c9c5bd; font-size: 16px; line-height: 1.6; margin: 16px 0 0; }
.collection-instructions strong { color: var(--cream); }
.collection-builder .product .meta { width: 100%; flex: 1; }
.collection-builder .product .meta .from { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin-top: auto; padding: 12px; border-radius: 12px; background: var(--cream); color: var(--ink); font: 600 14px var(--font-sans); white-space: normal; text-align: center; }
.collection-builder .product:hover { border-color: rgba(250,247,239,.45); }
.collection-builder .product:hover .from { background: var(--brand-yellow); }
.collection-builder .product.selected .from { background: var(--brand-yellow); color: var(--ink); }
@media(max-width: 600px) { .selection-bar { flex-wrap: wrap; } .selection-bar .btn { width: 100%; } }
.collection-builder .product.selected { border-color: var(--brand-yellow); background: rgba(250,247,239,.06); }
.collection-builder .collection { min-height: calc(100vh - 70px); padding-bottom: 140px; }
.selection-bar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 30; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px var(--gutter); background: var(--cream); border-top: 1px solid var(--line); }
.selection-bar span { font-size: 14px; }

/* Compact product previews keep the selection controls closer to the images. */
.collection-builder .product .thumb { aspect-ratio: 5 / 4; }
.collection-builder .collection .product .thumb img { object-fit: contain; padding: 44px 32px 22px; }
@media (max-width: 600px) {
  .collection-builder .product .thumb { max-height: 260px; }
}

.pack-enquiry { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(24px, 5vw, 64px); align-items: start; margin-top: 64px; padding: clamp(24px, 4vw, 48px); background: var(--product-surface); border-radius: 24px; }
.pack-enquiry h2 { font: 400 clamp(34px, 4vw, 48px)/1.1 var(--font-display); margin: 16px 0; }
.pack-enquiry-copy p { line-height: 1.6; }
.pack-enquiry-panel { min-width: 0; padding: clamp(20px, 3vw, 32px); border-radius: 20px; background: var(--paper); }
.welcome-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.welcome-fields label, .welcome-notes { display: flex; flex-direction: column; gap: 8px; font-size: 14px; font-weight: 500; }
.welcome-fields label > span, .welcome-notes > span { display: contents; font-weight: 400; }
.welcome-fields input, .welcome-fields select, .welcome-notes textarea { width: 100%; min-width: 0; min-height: 46px; border: 1px solid #b9b6ae; border-radius: 10px; padding: 10px 12px; background: #fff; color: var(--ink); }
.welcome-notes { margin-top: 18px; }
.welcome-notes textarea { resize: vertical; }
.welcome-customise { margin: 20px 0; border-block: 1px solid var(--line); padding: 14px 0; font-size: 14px; }
.welcome-customise summary { cursor: pointer; }
.welcome-products { display: grid; gap: 8px; padding-top: 12px; }
.welcome-products label { display: flex; gap: 10px; align-items: center; min-height: 36px; }
.welcome-products input, .welcome-consent input { width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--ink); }
.welcome-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.5; margin-bottom: 20px; }
.welcome-consent input { margin-top: 2px; }
#welcomeEnquiryForm .btn { width: 100%; }
#welcomeEnquiryForm .btn:disabled { opacity: .65; cursor: wait; }
#welcomeError { color: #a32e22; font-size: 14px; }
.welcome-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 850px) { .pack-enquiry { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .welcome-fields { grid-template-columns: 1fr; } .pack-enquiry { padding: 20px 14px; } }

.legal-page { max-width: 900px; margin: auto; padding: clamp(36px, 6vw, 80px) var(--gutter); }
.legal-page h1 { font: 400 clamp(40px, 6vw, 64px)/1.08 var(--font-display); margin: 16px 0 24px; }
.legal-page h2 { font: 500 22px/1.3 var(--font-sans); margin: 36px 0 12px; }
.legal-page p { line-height: 1.75; }
.legal-page .legal-lede { font-size: 19px; }
.legal-date { font-size: 13px; color: var(--muted); }
.legal-page a:not(.btn), .welcome-consent a { text-decoration: underline; text-underline-offset: 3px; }
.contact-panel { background: #fff; border: 1px solid var(--line); padding: clamp(20px, 4vw, 36px); border-radius: 24px; margin-top: 28px; }
.contact-panel select { min-height: 46px; border: 1px solid #b9b6ae; border-radius: 10px; padding: 10px 12px; background: #fff; }
.contact-panel .welcome-consent { margin-top: 24px; }
#contactError { color: #a32e22; }
#contactForm button:disabled { opacity: .65; cursor: wait; }
.collection-builder .site-footer { padding-bottom: 150px; }

.home-enquiry { max-width: 1280px; margin: 40px auto 80px; }
#welcome-enquiry { scroll-margin-top: 100px; }
@media (max-width: 1320px) { .home-enquiry { margin-inline: var(--gutter, 24px); } }

/* Clear, persistent validation feedback on phones and desktop. */
form input[aria-invalid="true"], form select[aria-invalid="true"], form textarea[aria-invalid="true"] { border: 2px solid #b42318; background-color: #fff4f2; }
form input[type="checkbox"][aria-invalid="true"] { outline: 2px solid #b42318; outline-offset: 3px; }
.enquiry-field-error, .field .error.show { color: #b42318; font-size: 13px; line-height: 1.5; }
.enquiry-field-error { display: block; margin-top: 4px; }
.enquiry-field-error[hidden] { display: none; }
