/* A complete product family, together on a shared, stationary baseline. */
.packaging-hero { padding:4rem 0 3rem; }
.packaging-heading { display:flex; justify-content:space-between; align-items:end; gap:3rem; position:relative; z-index:3; }
.packaging-heading h1 { font-size:clamp(3.4rem,6.4vw,6.5rem); line-height:1.08; }
.packaging-heading>div { max-width:32ch; padding-bottom:1rem; }
.packaging-heading p { font-size:1.2rem; line-height:1.65; color:var(--muted); }
.packaging-heading .text-link { margin-top:1.4rem; }
.packaging-hero .catalogue-pear { --branch-size:21vw; top:-20px; opacity:.95; }
.packaging-scroll { position:relative; z-index:3; margin-top:1.5rem; overflow-x:auto; scrollbar-width:thin; scrollbar-color:#9fb494 transparent; padding:1rem 0; }
.packaging-lineup { display:grid; grid-template-columns:repeat(7,minmax(120px,1fr)); align-items:end; gap:.6rem; list-style:none; padding:0; margin:0; }
.packaging-item { min-width:0; }
.packaging-link { display:block; text-align:center; padding:0 .15rem; }
.packaging-stage { display:flex; align-items:end; justify-content:center; position:relative; height:330px; padding-bottom:34px; }
.packaging-image { display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; transform:none!important; animation:none!important; mix-blend-mode:normal; }
.packaging-jug .packaging-image { height:84%; }
.packaging-bottle .packaging-image { height:74%; }
.packaging-pouch .packaging-image { height:68%; }
.packaging-label { display:flex; justify-content:center; align-items:center; min-height:52px; padding:.75rem .25rem; border-top:1px solid var(--line); font-size:.875rem; line-height:1.5; color:var(--forest); }
.packaging-link:hover .packaging-label { color:var(--green); border-color:var(--green); }
.packaging-link:focus-visible { outline:2px solid var(--green); outline-offset:1px; }
.lineup-material { width:61%; right:-2%; bottom:23px; }
.packaging-note { margin-top:1rem; font-size:.8125rem; text-align:center; color:var(--muted); }
/* Scene assets participate in normal flow instead of leaving empty columns. */
.manufacturing-garden { overflow:visible; }
.harvest-process .process-layout { align-items:center; }
.scene-asset-figure { margin:0; min-width:0; position:relative; z-index:2; }
.harvest-process .process-crop-study { position:relative; display:flex; align-items:end; height:auto; min-height:400px; }
.process-asset { display:block; width:100%; height:auto; max-height:540px; object-fit:contain; object-position:center bottom; }
.courgette-programme { overflow:visible; min-height:0; padding:5rem 0 0; }
.courgette-programme .programme-grid { align-items:center; }
.courgette-programme .programme-plant { position:relative; display:flex; align-items:end; height:auto; min-height:380px; width:100%; max-width:none; }
.programme-asset { display:block; width:100%; height:auto; max-height:550px; object-fit:contain; object-position:center bottom; }
.courgette-programme .programme-copy { padding:0 0 4rem; }
/* Contact: only direct information, with the address alongside it. */
.direct-contact { position:relative; padding:clamp(4rem,7vw,7rem) 0 6rem; }
.direct-contact-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:start; position:relative; z-index:3; }
.direct-contact-copy { min-width:0; }
.direct-contact .eyebrow { margin-bottom:1.2rem; font-size:.875rem; }
.direct-contact h1 { font-size:clamp(3.2rem,5.2vw,5.4rem); line-height:1.1; letter-spacing:-.04em; padding-bottom:.1em; }
.direct-contact-intro { color:var(--muted); font-size:1.1rem; line-height:1.7; max-width:42ch; margin-top:1.5rem; }
.direct-contact-details { display:grid; grid-template-columns:1fr 1fr; gap:2rem 1.8rem; margin-top:3rem; }
.direct-contact-details>div { border-top:1px solid var(--forest); padding-top:1.1rem; min-width:0; }
.direct-contact-details h2 { font:500 .875rem/1.5 'Outfit',sans-serif; letter-spacing:.08em; text-transform:uppercase; margin-bottom:1rem; color:var(--muted); }
.direct-contact-details a,.direct-contact-details .contact-value { font-size:clamp(1.2rem,1.7vw,1.6rem); line-height:1.35; color:var(--forest); overflow-wrap:anywhere; }
.direct-contact-details a { display:inline-block; color:var(--green); min-height:44px; }
.direct-contact-details p:not(.contact-value),.direct-contact-details address { font-style:normal; font-size:.9375rem; line-height:1.7; color:var(--muted); margin-top:.45rem; }
.direct-contact-details .contact-hours-value { font-size:1.25rem!important; color:var(--forest)!important; }
.contact-location { margin:0; overflow:hidden; border-radius:6px 6px 32px 6px; background:var(--forest); color:white; }
.contact-location iframe { display:block; width:100%; height:500px; border:0; background:#e8eee3; filter:grayscale(.6); }
.contact-location figcaption { padding:1.6rem 1.8rem; }
.contact-location figcaption p { font-size:1.4rem; margin-bottom:1rem; }
.contact-location figcaption a { color:#d4eba6; display:inline-flex; align-items:center; gap:1rem; min-height:44px; border-bottom:1px solid #95b781; font-size:1rem; }
.contact-location figcaption small { display:block; font-size:.8125rem; margin-top:1rem; color:#d4dfce; line-height:1.5; }
.edge-branch.direct-contact-olive { left:-12px; top:94%; --branch-size:24vw; --stem-x:0%; --stem-y:15%; --branch-angle:-15deg; }
/* Original certificate pages presented as four frames; no recreated artwork. */
.certificate-gallery { padding:clamp(4rem,7vw,7rem) 0; }
.certificate-gallery>.wrap { position:relative; z-index:3; }
.certificate-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:3rem; }
.certificate-heading .eyebrow { font-size:.875rem; margin-bottom:1.2rem; }
.certificate-heading h2 { font-size:clamp(3rem,5vw,5rem); line-height:1.15; padding-bottom:.1em; }
.certificate-heading>p { color:var(--muted); font-size:1.1rem; line-height:1.65; max-width:29ch; margin-bottom:.4rem; }
.certificate-wall { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(1rem,2vw,2rem); }
.certificate-card { min-width:0; }
.certificate-open { display:block; }
.certificate-frame { display:block; padding:clamp(9px,1.3vw,20px); background:#f6f5ef; border:5px solid #304f39; outline:1px solid #d8dfd2; outline-offset:-7px; box-shadow:0 7px 15px #193e1412; }
.certificate-frame img { display:block; width:100%; height:auto; aspect-ratio:1 / 1.414; object-fit:contain; background:white; box-shadow:0 0 2px #33422c33; }
.certificate-open:hover .certificate-frame { border-color:var(--green); }
.certificate-view { display:flex; justify-content:space-between; align-items:center; gap:.5rem; padding:.75rem 0; min-height:44px; color:var(--green); font-size:.875rem; }
.certificate-card h3 { font-size:clamp(1.25rem,1.7vw,1.7rem); line-height:1.35; margin:.3rem 0; }
.certificate-card>p { font-size:.9375rem; line-height:1.6; color:var(--muted); }
.certificate-card .certificate-date { font-size:.8125rem; margin-top:.65rem; }
.certificate-origin { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:1rem 2rem; margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.certificate-origin>p { font-size:1.1rem; color:var(--forest); }
.certificate-origin>p>span { color:var(--muted); margin-left:.5rem; }
.certificate-origin .text-link { font-size:.9375rem; }
.certificate-dialog { padding:0; border:1px solid #d0dcc7; border-radius:6px; width:min(1050px,94vw); max-width:none; max-height:94dvh; color:var(--forest); background:#f7f9f2; }
.certificate-dialog::backdrop { background:#082514cc; }
.certificate-dialog-bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem 1.4rem; border-bottom:1px solid var(--line); background:white; }
.certificate-dialog-bar h2 { font-size:1.2rem; line-height:1.4; }
.certificate-dialog button { min-height:44px; min-width:44px; padding:.5rem .8rem; border:1px solid var(--line); background:white; color:var(--forest); border-radius:3px; font:inherit; cursor:pointer; }
.certificate-dialog .certificate-close { font-size:1.5rem; border:0; }
.certificate-dialog-image { height:calc(90dvh - 135px); overflow:auto; padding:1rem; overscroll-behavior:contain; }
.certificate-dialog-image img { display:block; max-width:100%; height:100%; width:auto; object-fit:contain; margin:auto; }
.certificate-dialog-image.is-zoomed img { width:1100px; max-width:none; height:auto; }
.certificate-dialog-controls { display:flex; align-items:center; justify-content:center; gap:.75rem; padding:.65rem 1rem; background:white; }
.certificate-dialog-controls [hidden] { display:none; }
.certificate-dialog-controls button:disabled { opacity:.4; cursor:default; }
.certificate-dialog-controls [data-certificate-zoom] { margin-left:auto; }
.certificate-dialog-controls span { font-size:.875rem; }
@media(max-width:1000px) { .packaging-lineup { min-width:880px; }.packaging-stage { height:290px; }.certificate-wall { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }.certificate-heading { align-items:start; }.direct-contact-grid { gap:2rem; }.direct-contact-details { grid-template-columns:1fr; gap:1.4rem; }.contact-location iframe { height:530px; } }
@media(max-width:650px) { .packaging-hero { padding:2rem 0; }.packaging-heading { display:block; }.packaging-heading h1 { font-size:3.6rem; }.packaging-heading>div { margin-top:1rem; }.packaging-heading p { font-size:1.05rem; }.packaging-scroll { margin-right:calc(-1 * var(--space)); padding-right:var(--space); scroll-snap-type:x proximity; }.packaging-lineup { grid-template-columns:repeat(7,140px); gap:1rem; min-width:0; }.packaging-item { scroll-snap-align:start; }.packaging-stage { height:265px; }.packaging-hero .catalogue-pear { --branch-size:32vw; top:40px; }.harvest-process .process-crop-study { min-height:0; width:100%; order:2; }.process-asset { max-height:330px; }.courgette-programme { padding-top:3rem; }.courgette-programme .programme-plant { min-height:0; }.programme-asset { max-height:360px; }.courgette-programme .programme-copy { padding-bottom:0; }.direct-contact { padding-top:3rem; }.direct-contact-grid { grid-template-columns:1fr; gap:2.5rem; }.direct-contact h1 { font-size:3.2rem; }.direct-contact-details { grid-template-columns:1fr 1fr; gap:1.5rem 1rem; }.direct-contact-details a,.direct-contact-details .contact-value { font-size:1.15rem; }.contact-location iframe { height:360px; }.certificate-heading { display:block; margin-bottom:2rem; }.certificate-heading>p { margin-top:1rem; }.certificate-wall { gap:2rem 1rem; }.certificate-frame { padding:8px; border-width:3px; }.certificate-view { font-size:.8125rem; }.certificate-card h3 { font-size:1.2rem; }.certificate-card>p { font-size:.875rem; }.certificate-origin>p>span { display:block; margin:.3rem 0 0; }.certificate-dialog-bar { padding:.5rem .8rem; }.certificate-dialog-image { padding:.5rem; }.certificate-dialog-controls { gap:.35rem; padding:.5rem; } }
@media(max-width:380px) { .direct-contact-details { grid-template-columns:1fr; }.certificate-wall { grid-template-columns:1fr; } }
@media print { .certificate-dialog,.contact-location iframe { display:none!important; }.certificate-frame { box-shadow:none; }.packaging-scroll { overflow:visible; }.packaging-lineup { min-width:0; grid-template-columns:repeat(7,1fr); }.packaging-stage { height:150px; } }
