/* Isolated booklet preview. No selector or asset is loaded by the public pages. */
:root { --b2-ink:#273f4b; --b2-green:#214f50; --b2-accent:#167cb5; --b2-soft:#f8f1e9; --b2-line:#dedfdd; }
.b2 { margin:0; color:#384247; background:#fff; font:16px/1.6 Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased; }
.b2 *, .b2 *::before, .b2 *::after { box-sizing:border-box; }
.b2 img { display:block; max-width:100%; height:auto; }
.b2 a { color:inherit; text-decoration:none; }
.b2 a:hover { color:var(--b2-accent); }
.b2 button,.b2 input,.b2 select,.b2 textarea { font:inherit; }
.b2 button,.b2 summary,.b2 select { touch-action:manipulation; }
.b2 :focus-visible { outline:3px solid #167cb5; outline-offset:4px; }
.b2 h1,.b2 h2,.b2 h3 { color:var(--b2-ink); line-height:1.15; margin:0 0 18px; letter-spacing:-.035em; }
.b2 h1 { font-size:clamp(2.2rem,3.5vw,3.7rem); }
.b2 h2 { font-size:clamp(1.65rem,2.6vw,2.35rem); }
.b2 h3 { font-size:1.1rem; letter-spacing:-.02em; }
.b2 p { margin:0 0 20px; }
.b2-wrap { width:min(1320px,calc(100% - 64px)); margin-inline:auto; }
.b2-skip { position:absolute; left:16px; top:-100px; z-index:2000; background:#fff; padding:12px; }
.b2-skip:focus { top:12px; }
.b2-topline { background:var(--b2-green); color:#fff; padding:7px 32px; text-align:center; font-size:12px; letter-spacing:.04em; }
.b2-topline span { margin-left:30px; }
.b2-header { display:flex; gap:32px; align-items:center; padding-block:26px; }
.b2-logo { color:var(--b2-ink); font-size:clamp(20px,2.3vw,31px); font-weight:800; line-height:1.1; letter-spacing:-1.4px; white-space:nowrap; }
.b2-logo>span { color:var(--b2-accent); }
.b2-logo small { display:block; font-size:9px; letter-spacing:1.9px; margin-top:8px; font-weight:400; }
.b2-header-help { margin-left:auto; font-size:13px; }
.b2-header-help a { display:block; color:#637377; }
.b2-basket { border:1px solid var(--b2-line); border-radius:5px; padding:10px 20px; font-size:14px; font-weight:700; }
.b2-nav { border-block:1px solid var(--b2-line); background:#fff; }
.b2-nav>.b2-wrap { display:flex; gap:32px; padding-block:13px; font-size:14px; font-weight:700; }
.b2-breadcrumb { display:flex; gap:12px; font-size:12px; padding-block:18px; flex-wrap:wrap; }
.b2-hero { position:relative; min-height:500px; background:var(--b2-soft); display:grid; align-items:center; isolation:isolate; }
.b2-hero-image { position:absolute; inset:0; width:100%; height:100%!important; object-fit:cover; object-position:center; z-index:-1; }
.b2-hero-inner { padding-block:44px; }
.b2-hero-copy { max-width:590px; padding:38px; border-radius:6px; background:rgba(255,255,255,.96); box-shadow:0 4px 24px #273f4b12; }
.b2-eyebrow { font-size:11px; font-weight:700; letter-spacing:.14em; color:var(--b2-green); margin-bottom:14px!important; }
.b2-hero-copy>p:not(.b2-eyebrow) { max-width:460px; }
.b2-hero-more { display:none; }
.b2-actions { display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:26px; }
.b2-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:48px; padding:12px 22px; border:0; border-radius:4px; background:var(--b2-accent); color:#fff!important; font-size:14px; font-weight:700; }
.b2-button:hover { background:#105d89; }
.b2-text-link { border-bottom:1px solid; font-size:14px; font-weight:700; }
.b2-benefits { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; padding-block:22px; border-bottom:1px solid var(--b2-line); font-size:13px; font-weight:700; text-align:center; }
.b2-section { padding-block:64px; scroll-margin-top:20px; }
.b2-section-heading { margin-bottom:30px; }
.b2-section-heading>p:last-child { color:#657176; }
.b2-cards { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:20px; }
.b2-card { min-width:0; border:1px solid #e7e6e2; border-radius:7px; background:#fff; overflow:hidden; box-shadow:0 2px 5px #273f4b14; display:flex; flex-direction:column; transition:transform .3s,box-shadow .3s; }
.b2-card-image { aspect-ratio:1.4; overflow:hidden; background:#efefec; flex-shrink:0; }
.b2-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.b2-card-body { display:flex; flex-direction:column; gap:6px; padding:18px 14px; flex:1; font-size:12px; }
.b2-card-body h3 { margin:0; font-size:16px; }
.b2-start-price { font-size:13px; font-weight:700; color:var(--b2-ink); }
.b2-card-cta { padding-top:12px; margin-top:auto; color:var(--b2-accent); }
.b2-cards-three { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.b2-cards-three .b2-card-image { aspect-ratio:1.9; }
.b2-cards-three .b2-card-body { padding:22px; font-size:14px; }
.b2-cards-three h3 { font-size:21px; }
.b2-tint { background:var(--b2-soft); }
.b2-two { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:64px; align-items:start; }
.b2-guide-step { border:1px solid var(--b2-line); margin-top:12px; border-radius:5px; }
.b2-guide-step summary { padding:16px; font-weight:700; cursor:pointer; }
.b2-guide-step summary span { margin-right:14px; color:var(--b2-accent); }
.b2-guide-step>p { padding:0 20px 0 54px; font-size:14px; }
.b2-facts { background:#eef5f3; padding:32px; border-radius:7px; }
.b2-facts dl { display:grid; grid-template-columns:90px minmax(0,1fr); font-size:14px; margin:20px 0 28px; }
.b2-facts dt,.b2-facts dd { margin:0; padding-block:12px; border-bottom:1px solid #d3ddda; }
.b2-facts dt { font-weight:700; }
.b2-faq { max-width:900px; }
.b2-faq details { border-bottom:1px solid #d8d7d3; padding:19px 0; }
.b2-faq summary { cursor:pointer; font-weight:700; padding-right:18px; }
.b2-faq details p { font-size:14px; margin:16px 0 0; }
.b2-footer { background:var(--b2-ink); color:#fff; padding:42px 0; }
.b2-footer-inner { display:flex; justify-content:space-between; gap:32px; }
.b2-footer p { font-size:13px; margin-top:8px; }
.b2-footer nav { display:flex; flex-wrap:wrap; gap:15px 28px; align-content:start; font-size:13px; }
.b2-product-title { margin-block:14px 28px; }
.b2-product-title h1 { font-size:clamp(2rem,3vw,2.8rem); }
.b2-product-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:56px; align-items:start; padding-bottom:56px; }
.b2-product-media { position:sticky; top:24px; min-width:0; }
.b2-product-photo { background:#f1f1ee; border-radius:7px; overflow:hidden; position:relative; }
.b2 .main-image { width:100%; height:auto; aspect-ratio:1.2; object-fit:contain; }
.b2 .booklet-badge { position:absolute; inset:auto auto 18px 18px; background:var(--b2-green); color:#fff; padding:5px 13px; border-radius:3px; font-weight:700; }
.b2-product-intro { font-size:14px; line-height:1.75; margin-top:24px; }
.b2-product-intro p { white-space:pre-line; }
.b2-config { min-width:0; padding:28px; background:#f7f7f5; border:1px solid #e6e6e3; border-radius:7px; }
.b2 .tableheading { font-size:18px; font-weight:700; color:var(--b2-ink); margin:0 0 18px; padding:0; line-height:1.35; }
.b2 .dropdown_menus { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:0 0 28px; }
.b2 .dropdown_wrapper { min-width:0; margin:0; display:flex; flex-direction:column; }
.b2 .dropdown_wrapper label { display:flex; align-items:center; flex-wrap:wrap; gap:4px; font-size:11px; font-weight:700; min-height:30px; margin-bottom:5px; letter-spacing:.04em; }
.b2 .dropdown_wrapper label br { display:none; }
.b2 .dropdown_wrapper label img { width:18px!important; height:18px!important; }
.b2 .custom-dropdown { min-height:46px; width:100%; padding:10px 28px 10px 12px; font-size:14px; background:#fff; border:1px solid #c9cfcd; border-radius:4px; color:#293c46; cursor:pointer; }
.b2 .table_content { width:100%; margin:0; }
.b2 .table_scroll_container { max-height:510px; overflow:auto; border:1px solid var(--b2-line); border-radius:5px; scrollbar-gutter:stable; }
.b2 .table_content table { width:100%; table-layout:fixed; border-collapse:collapse; margin:0; background:#fff; }
.b2 .table_content thead { position:sticky; top:0; z-index:2; background:#eaf2ef; }
.b2 .table_content th,.b2 .table_content td { text-align:center; border:1px solid #e1e6e3; padding:8px; font-size:13px; }
.b2 .table_content th:first-child { width:17%; }
.b2 .heading { font-size:11px; font-weight:700; color:var(--b2-ink); }
.b2 .turnaround-time { font-size:11px; line-height:1.35; margin:5px 0 0; color:#4e6068; }
.b2 .price-cell { border:0; border-radius:0; background:transparent; color:inherit; font:inherit; }
.b2 .price-cell:hover { background:#e7f2fa; color:#144c72; }
.b2 .price-cell:focus-visible { outline:3px solid var(--b2-accent); outline-offset:-3px; }
.b2 .hovered-cell { background:#d9eee4; color:#173e35; font-weight:700; }
.b2 .hover-highlight-row,.b2 .hover-highlight-col { background:#f0f6f3; }
.b2 .table_content td a { font-weight:700; }
.b2 .table_content td input { max-width:100%; min-width:0; }
.b2 #basketButton>div { display:flex; margin-top:20px; }
.b2 #basketButton button { min-height:54px; }
.b2 #vatToggleMount { padding-top:14px; }
.b2 #vatLabel { font-size:12px; }
.b2 .vat-switch { position:relative; display:inline-flex; align-items:center; width:36px; height:22px; }
.b2 .vat-switch input { width:18px; height:18px; accent-color:var(--b2-accent); }
.b2 .bespoke-scroll-btn { border:0; border-radius:4px; padding:10px 14px; background:var(--b2-accent); color:#fff; cursor:pointer; }
.b2 .loading-spinner { border:3px solid #e5e7e5; border-top-color:var(--b2-accent); border-radius:50%; height:28px; width:28px; margin:20px auto; animation:b2-spin 1s linear infinite; }
@keyframes b2-spin { to { transform:rotate(360deg); } }
.b2 .mobile-only { display:none; }
.b2 .modal { display:none; position:fixed; inset:0; z-index:1500; padding:24px; background:#0008; overflow-y:auto; }
.b2 .modal-content { position:relative!important; top:auto!important; left:auto!important; transform:none!important; width:min(560px,100%)!important; max-height:calc(100dvh - 48px)!important; overflow:auto; padding:30px; margin:5vh auto; border-radius:6px; background:#fff; box-shadow:0 12px 50px #0003; }
.b2 .modal-content input,.b2 .modal-content textarea { max-width:100%; }
.b2 .modal .close { float:right; font-size:28px; border:0; background:none; cursor:pointer; }
.b2 .modal h3 { padding-right:24px; }
.b2 .modal p { font-size:14px; }
.b2-unavailable { padding:26px; border:1px solid var(--b2-line); background:#faf8f4; border-radius:5px; }
@media (hover:hover) and (pointer:fine) {
    .b2-card:hover { transform:translateY(-6px); box-shadow:0 12px 26px #273f4b22; }
    .b2-card:hover img { transform:scale(1.04); }
}
@media (max-width:1200px) { .b2-cards { grid-template-columns:repeat(3,minmax(0,1fr)); } .b2-product-layout { gap:30px; } }
@media (max-width:1023px) { .b2-product-layout { grid-template-columns:minmax(0,1fr); } .b2-product-media { position:static; } .b2-product-photo { max-width:640px; margin-inline:auto; } }
@media (max-width:900px) {
    .b2-two,.b2-product-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
    .b2-product-media { position:static; }
    .b2-product-photo { max-width:640px; margin-inline:auto; }
    .b2-product-intro { max-width:740px; }
    .b2-product-intro details { margin-top:12px; }
    .b2-product-intro summary { cursor:pointer; font-weight:700; }
    .b2-header-help { display:none; }
    .b2-basket { margin-left:auto; }
    .b2-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .b2-footer-inner { flex-direction:column; }
}
@media (max-width:640px) {
    .b2 { font-size:14px; }
    .b2-wrap { width:calc(100% - 32px); }
    .b2-topline { font-size:11px; padding-inline:8px; }
    .b2-topline span { margin-left:12px; }
    .b2-header { gap:12px; padding-block:20px; }
    .b2-logo { font-size:21px; letter-spacing:-1px; }
    .b2-logo small { font-size:6px; letter-spacing:1.4px; }
    .b2-basket { padding:9px 12px; font-size:12px; }
    .b2-nav>.b2-wrap { gap:12px 20px; flex-wrap:wrap; font-size:12px; padding-block:10px; }
    .b2-breadcrumb { font-size:11px; padding-block:12px; }
    .b2-section { padding-block:40px; }
    .b2-hero { min-height:0; padding-block:24px; }
    .b2-hero-image,.b2-secondary-cta { display:none; }
    .b2-hero-inner { padding:0; }
    .b2-hero-copy { max-width:none; padding:20px 18px; box-shadow:none; }
    .b2-hero-copy h1 { font-size:32px; line-height:1.1; }
    .b2-hero-more { display:block; font-size:13px; }
    .b2-hero-more summary { cursor:pointer; text-decoration:underline; }
    .b2-hero-more p { margin-top:12px; }
    .b2-actions { gap:14px; margin-top:20px; }
    .b2-actions .b2-button { width:100%; }
    .b2-benefits { padding-block:16px; font-size:11px; text-align:left; }
    .b2-benefits>span:nth-child(n+3) { display:none; }
    .b2 h2 { font-size:1.4rem; line-height:1.25; }
    .b2-section-heading { margin-bottom:20px; }
    #sizes .b2-section-heading>p:last-child { display:none; }
    .b2-cards { display:flex; flex-direction:column; gap:10px; }
    .b2-card { flex-direction:row; align-items:center; padding:10px; gap:14px; }
    .b2-card-image,.b2-cards-three .b2-card-image { width:34%; max-width:120px; border-radius:5px; aspect-ratio:1.2; }
    .b2-card-body,.b2-cards-three .b2-card-body { min-width:0; padding:0; gap:3px; font-size:12px; }
    .b2-card-body h3,.b2-cards-three h3 { font-size:15px; line-height:1.25; }
    .b2-card-cta { padding-top:4px; }
    .b2-facts { padding:22px 18px; }
    .b2-facts dl { grid-template-columns:80px minmax(0,1fr); font-size:13px; }
    .b2-facts .b2-button { width:100%; }
    .b2-guide-step>p { padding-left:20px; }
    .b2-product-title { margin-block:8px 20px; }
    .b2-product-title h1 { font-size:29px; }
    .b2-product-layout { gap:22px; padding-bottom:32px; }
    .b2 .main-image { max-height:290px; }
    .b2-config { padding:18px 12px; }
    .b2 .dropdown_menus { gap:12px; }
    .b2 .custom-dropdown { font-size:16px; padding-left:8px; }
    .b2 .table_content th,.b2 .table_content td { font-size:12px; padding:8px 5px; overflow-wrap:anywhere; }
    .b2 .heading { font-size:10px; }
    .b2 .turnaround-time { font-size:10px; }
    .b2 .price-cell { width:calc(100% + 10px)!important; margin:-8px -5px!important; min-height:44px; }
    .b2 #basketButton>div { flex-wrap:wrap; }
    .b2 #basketButton button { flex-basis:50%!important; font-size:14px!important; }
    .b2 .mobile-only { display:block; }
    .b2 #mobileFooter>.mobile-only { padding:8px 16px calc(8px + env(safe-area-inset-bottom))!important; background:var(--b2-ink)!important; z-index:1000!important; }
    .b2 #mobileFooter button { min-height:48px; }
    .b2:has(#mobileFooter) { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
    .b2 .modal { padding:16px; }
    .b2 .modal-content { max-height:calc(100dvh - 32px)!important; margin:0 auto; padding:24px; }
    .b2-footer { padding-block:30px; }
    .b2-footer nav { gap:12px 20px; }
}
@media (max-width:360px) { .b2-logo { font-size:18px; } .b2 .dropdown_menus { grid-template-columns:minmax(0,1fr); } }
@media (prefers-reduced-motion:reduce) { .b2 * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }

/* Full-width photography stays outside the centred content containers. */
.b2-hero { min-height:clamp(440px,34vw,620px); }
.b2-hero-copy { max-width:490px; background:rgba(255,255,255,.94); }
.b2-hero-copy h1 { font-size:clamp(2.1rem,3vw,3.2rem); }
.b2-hero-image { object-position:70% center; }
.b2-product-stage { position:relative; isolation:isolate; background:#e6e3e2; overflow:hidden; }
.b2-product-backdrop { position:absolute; inset:0; width:100%; height:100%!important; object-fit:cover; object-position:70% center; z-index:-1; }
.b2-product-stage .b2-breadcrumb { color:#263c4b; }
.b2-product-title { width:fit-content; max-width:calc(100% - 64px); padding:20px 28px; margin-left:max(32px,calc((100% - 1320px)/2)); background:#ffffffed; border-radius:6px; }
.b2-product-title h1 { margin:0; }
.b2-product-stage .b2-config { background:#fffffffa; }
.b2-product-stage .b2-product-intro,.b2-product-stage .b2-benefits { padding:20px; background:#fffffff0; border-radius:5px; }
.b2-product-tabs .full-width-bar { background:#3583c1; border-radius:5px 5px 0 0; }
.b2-product-tabs .tab-bar { display:flex; overflow-x:auto; scrollbar-width:thin; }
.b2-product-tabs .tab-bar button { flex-shrink:0; padding:17px 23px; border:0; background:transparent; color:#fff; cursor:pointer; font-size:15px; font-weight:700; border-bottom:4px solid transparent; }
.b2-product-tabs .tab-bar button.active { background:#276b9e; border-bottom-color:#163d5e; }
.b2-product-tabs .tab-bar button:disabled { color:#eee!important; opacity:.6; cursor:not-allowed; }
.b2-product-tabs .tab-content { display:none; }
.b2-product-tabs .tab-content.active { display:flex; gap:28px; align-items:stretch; width:100%; }
.b2-product-tabs .tab-content[hidden] { display:none!important; }
.b2-product-tabs .tabbed-info-block { padding:28px; border:1px solid #e3e3e3; background:#fff; }
.b2-product-tabs .custom-text-block,.b2-product-tabs .custom-image-container { min-width:0; flex:1; }
.b2-product-tabs .custom-image-container img { width:100%; max-height:400px; height:auto!important; object-fit:contain!important; }
.b2-product-tabs .faq-item { border-bottom:1px solid #ddd; }
.b2-product-tabs .faq-question { padding:14px 0; font-weight:700; cursor:pointer; }
.b2-product-tabs .faq-answer { display:none; padding:0 0 14px; }
.b2-product-tabs .faq-item.active .faq-answer { display:block; }
@media (max-width:900px) {
    .b2-product-tabs #tab1>div,.b2-product-tabs #tab2>div { flex-direction:column; }
    .b2-product-tabs #tab5>div { grid-template-columns:minmax(0,1fr)!important; }
}
@media (max-width:640px) {
    .b2-hero { min-height:0; padding:0 0 24px; }
    .b2-hero-image { display:block; height:250px!important; object-fit:cover; object-position:78% center; }
    .b2-hero-inner { padding-top:190px; }
    .b2-hero-copy { max-width:none; background:#fffffff2; }
    .b2-hero-copy h1 { font-size:32px; }
    .b2-product-title { max-width:calc(100% - 32px); padding:18px; margin-left:16px; }
    .b2-product-backdrop { object-position:72% top; }
    .b2-product-tabs .tab-bar button { padding:14px 15px; font-size:12px; }
    .b2-product-tabs .tabbed-info-block { padding:18px; }
    .b2-product-tabs .tab-content.active { flex-direction:column; }
}
