/* v1.6.5: an earlier photograph, clear session decisions and complete optional galleries. */
.nbp165-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); grid-template-areas:"intro image" "actions image"; column-gap:clamp(32px,5vw,80px); row-gap:20px; align-items:center; max-width:1600px; margin:0 auto; padding:clamp(40px,5vw,76px) clamp(24px,5vw,80px); }
.nbp165-hero__intro { grid-area:intro; align-self:end; min-width:0; }
.nbp165-hero h1 { max-width:11ch; margin:16px 0 24px; font-size:clamp(3.3rem,5.5vw,5.2rem); line-height:1.02; }
.nbp165-hero__lede { max-width:39ch; font-size:1.1rem !important; line-height:1.6 !important; color:var(--nbp-paper); margin:0; }
.nbp165-hero__image { grid-area:image; margin:0; min-width:0; }
.nbp165-hero__image :is(picture,img) { display:block; width:100%; height:auto; }
.nbp165-hero__actions { grid-area:actions; align-self:start; max-width:560px; }
.nbp165-hero__actions > p:first-child { max-width:44ch; margin:0 0 20px; }
.nbp165-hero .cta-group { display:flex; flex-wrap:wrap; gap:12px; margin:0; }
.nbp165-hero .editorial-hero__meta { margin:16px 0 0; }
.nbp-v165 .nbp165-service-header { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:24px clamp(28px,5vw,72px); align-items:center; }
.nbp-v165 .nbp165-service-header > * { max-width:none; min-width:0; }
.nbp-v165 .nbp165-service-header h1 { max-width:19ch; font-size:clamp(2.7rem,4.3vw,4.1rem); }
.nbp-v165 .nbp165-service-header .page-lede { margin-top:20px; }
.nbp165-service-reassurance { font-size:.9rem; color:var(--nbp-muted); }
.nbp165-service-image { margin:0; }
.nbp165-service-image :is(picture,img) { display:block; width:100%; height:auto; }
.nbp165-service-header .collection-nav { grid-column:1 / -1; border-top:1px solid #49443d; padding-top:20px; margin-top:8px; }
.nbp165-session-facts { display:grid; grid-template-columns:auto auto minmax(0,1fr); gap:16px; margin:24px 0; padding:18px 0; border-top:1px solid #49443d; border-bottom:1px solid #49443d; }
.nbp165-session-facts dt { font:400 .77rem/1.5 Arial,Helvetica,sans-serif; color:var(--nbp-muted); }
.nbp165-session-facts dd { margin:6px 0 0; font:600 .95rem/1.45 Arial,Helvetica,sans-serif; color:var(--nbp-paper); }
.nbp165-service-copy .form-help { margin:16px 0 0; font-size:.84rem; line-height:1.6; }
.nbp-v165 .nbp165-selected .nbp-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:22px; }
.nbp165-selected .annie-photo-item { margin:0; }
.nbp165-home-note { padding:24px 0 24px 24px; border-left:2px solid #b8986c; margin:24px 0; }
.nbp165-home-note h3 { font-size:clamp(1.65rem,2.3vw,2.2rem); line-height:1.15; margin:10px 0 16px; }
.nbp165-home-note p:last-child { margin-bottom:0; font-size:.88rem; line-height:1.6; }
.nbp165-service-details .nbp165-home-note { margin-top:0; }
.nbp165-service-details .prose { max-width:880px; }
.nbp-v165 .nbp165-service-details .prose h2 { margin-top:38px; font-size:clamp(1.8rem,3vw,2.8rem); }
.nbp-v165 .nbp165-service-details .prose > .eyebrow { margin-top:38px; }
.nbp165-at-home-section .nbp165-home-note { max-width:860px; margin:0; }
.nbp165-complete-gallery { border-top:1px solid #766c60; border-bottom:1px solid #766c60; }
.nbp165-complete-gallery > summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 0; cursor:pointer; }
.nbp165-complete-gallery > summary::-webkit-details-marker { display:none; }
.nbp165-complete-gallery summary strong { display:block; font:400 clamp(1.8rem,3vw,3rem)/1.18 Georgia,serif; color:var(--nbp-paper); }
.nbp165-complete-gallery summary .eyebrow { display:block; margin-bottom:12px; }
.nbp165-complete-gallery summary > .fas { flex:0 0 auto; font-size:1.15rem; }
.nbp165-complete-gallery[open] summary > .fas { transform:rotate(45deg); }
.nbp165-complete-gallery__body { padding:12px 0 32px; }
.nbp165-complete-gallery__body h2 { font-size:2rem; }
.nbp165-full-work > .cta-group { margin-top:28px; }
.nbp165-quote-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.nbp165-quote-grid figure { min-width:0; margin:0; padding:24px 0 0; border-top:1px solid var(--nbp-paper-line,#c8c0b4); }
.nbp165-quote-grid blockquote { border:0; background:transparent; padding:0; margin:0 0 22px; }
.nbp-v165 .nbp165-quote-grid blockquote p { font:400 clamp(1.22rem,1.7vw,1.65rem)/1.5 Georgia,serif; color:#29241e; margin:0; }
.nbp165-quote-grid blockquote p::before { content:'“'; }
.nbp165-quote-grid blockquote p::after { content:'”'; }
.nbp165-quote-grid figcaption { font:600 .86rem/1.6 Arial,Helvetica,sans-serif; color:#514a40; }
.nbp165-reference-note { max-width:780px; font-size:.9rem; }
.nbp165-package-notes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:40px; padding-top:30px; border-top:1px solid var(--nbp-paper-line,#c8c0b4); }
.nbp165-package-notes article { min-width:0; }
.nbp-v165 .nbp165-package-notes h2 { font-size:clamp(1.6rem,2.2vw,2.05rem); line-height:1.15; margin:12px 0 18px; }
.nbp165-package-notes p { font-size:.92rem; line-height:1.65; }
.nbp-v165 .consent-banner { padding:12px 14px 8px; width:min(440px,calc(100% - 24px)); max-height:calc(100dvh - 24px); overflow-y:auto; }
.nbp-v165 .consent-banner h2 { font-size:1.15rem; margin:0 0 4px; }
.nbp-v165 .consent-banner .consent-copy p { font-size:.82rem; line-height:1.4; margin:0; }
.nbp-v165 .consent-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:10px 0 2px; }
.nbp-v165 .consent-actions button { grid-row:1; grid-column:auto; min-height:44px; padding:8px; font-size:.82rem; color:#211f1c; background:#f3f0e9; border:1px solid #f3f0e9; }
.nbp-v165 .consent-actions button:hover { color:#211f1c; background:#ddd4c5; border-color:#ddd4c5; }
.nbp165-consent-tools { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 20px; }
.nbp-v165 .nbp165-consent-tools :is(button,a) { display:inline-flex; align-items:center; min-height:32px; border:0; padding:4px 0; margin:0; font:400 .8rem/1.4 Arial,Helvetica,sans-serif !important; letter-spacing:normal; color:var(--nbp-paper); background:transparent; text-decoration:underline; text-underline-offset:3px; }
.nbp-v165 .consent-settings { padding-top:10px; margin-top:4px; }
.nbp-v165 .consent-settings .consent-option { gap:12px; }
@media (max-width:1100px) {
 .nbp165-package-notes { grid-template-columns:1fr; gap:24px; }
 .nbp165-package-notes article { padding-bottom:16px; border-bottom:1px solid var(--nbp-paper-line,#c8c0b4); }
 .nbp165-package-notes article:last-child { border:0; padding-bottom:0; }
}
@media (max-width:900px) {
 .nbp165-hero { grid-template-columns:minmax(0,1fr); grid-template-areas:"intro" "image" "actions"; gap:20px; padding:24px 24px 32px; }
 .nbp165-hero__intro, .nbp165-hero__actions { max-width:680px; width:100%; margin:0 auto; }
 .nbp165-hero h1 { max-width:16ch; font-size:clamp(2.7rem,7.6vw,4rem); margin:10px 0 14px; }
 .nbp165-hero__lede { max-width:48ch; font-size:1rem !important; line-height:1.5 !important; }
 .nbp165-hero__image { margin-inline:-24px; }
 .nbp165-hero__image img { width:100%; max-height:440px; object-fit:cover; object-position:50% 44%; }
 .nbp165-hero__actions > p:first-child { max-width:52ch; font-size:.94rem; line-height:1.55; margin-bottom:16px; }
 .nbp-v165 .nbp165-service-header { grid-template-columns:minmax(0,1fr); gap:22px; padding-top:22px; }
 .nbp-v165 .nbp165-service-header h1 { max-width:23ch; font-size:clamp(2.4rem,6vw,3.8rem); }
 .nbp165-service-image { max-width:640px !important; }
 .nbp165-service-header .collection-nav { margin:0; padding-top:16px; }
 .nbp165-quote-grid { grid-template-columns:1fr; gap:24px; }
 .nbp165-quote-grid figure { padding-top:20px; }
 .nbp-v165 .nbp165-quote-grid blockquote p { font-size:1.3rem; }
}
@media (max-width:600px) {
 .nbp165-hero { gap:18px; padding-top:20px; }
 .nbp165-hero .eyebrow { font-size:.7rem; letter-spacing:.12em; margin:0; }
 .nbp165-hero h1 { font-size:clamp(2.5rem,10vw,3.2rem); max-width:13ch; }
 .nbp165-hero__image img { height:auto; max-height:none; object-fit:initial; }
 .nbp165-hero .cta-group { display:grid; grid-template-columns:1fr; gap:10px; }
 .nbp165-hero .cta-button { min-height:46px; }
 .nbp165-hero .editorial-hero__meta { margin-top:12px; }
 .nbp-v165 .nbp165-service-header h1 { font-size:clamp(2.2rem,8.8vw,2.9rem); }
 .nbp165-service-header .cta-group { display:flex; gap:10px; }
 .nbp165-service-header .cta-group .cta-button { flex:1 1 auto; width:auto; }
 .nbp165-service-header .cta-group .cta-button:first-child { flex-basis:100%; }
 .nbp165-session-facts { gap:14px 20px; grid-template-columns:1fr 1fr; margin:18px 0; padding:14px 0; }
 .nbp165-session-facts > div:last-child { grid-column:1 / -1; }
 .nbp-v165 .nbp165-selected .nbp-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .nbp165-home-note { padding:16px 0 16px 18px; }
 .nbp165-complete-gallery summary strong { font-size:1.8rem; }
 .nbp-v165 .consent-banner { bottom:8px; right:8px; width:calc(100% - 16px); padding:10px 12px 6px; }
}

/* Keep the opened mobile navigation above its backdrop, including legacy body rules. */
@media (max-width: 900px) {
    body.nbp-v165.offcanvason .annie-aside { z-index: 1002; }
}
.nbp-v165 .nbp165-reference-note { margin-left: 0; margin-right: 0; }

/* Make a received enquiry clearly visible inside either form. */
.nbp-v165 .nbp162-form .contact__msg.alert-success {
    padding: clamp(18px, 3vw, 24px);
    background: #17643b;
    color: #fff;
    border: 1px solid #12512f;
    border-radius: 6px;
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.6;
    text-align: left;
    box-shadow: 0 5px 16px rgba(23, 100, 59, .16);
    scroll-margin-block: 24px;
}
.nbp-v165 .nbp162-form .contact__msg.alert-success:focus {
    outline: 3px solid #17643b;
    outline-offset: 4px;
}

/* v1.6.6: preserve page access above the consent panel and mobile enquiry bar. */
html { scroll-padding-bottom: var(--nbp-bottom-overlay-space, 0px); }
.annie-main::after { content: ""; display: block; height: var(--nbp-bottom-overlay-space, 0px); }
.nbp-v165 .consent-banner { transition: none; max-height: min(60vh, calc(100vh - 24px)); max-height: min(60dvh, calc(100dvh - 24px)); }
.nbp-v165 .back-to-top { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; }
/* The open navigation/lightbox owns focus; consent remains available on closing. */
body.fancybox-active .consent-banner { visibility: hidden; }
@media (max-width: 900px) {
    body.offcanvason .consent-banner { visibility: hidden; }
}
