.catalog-page { width:min(1480px,calc(100% - 64px)); padding-block: 28px 70px; }
.catalog-tabs { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:30px; }
.catalog-tabs button { padding-inline:16px; font-size:15px; }
.catalog-workspace { display:block; }
.catalog-sidebar { max-width:440px; margin-bottom:26px; }
.catalog-side-label { font-size:14px; font-weight:700; margin:0 10px 13px; }
#catalog-group-list { display:grid; gap:5px; }
#catalog-group-list button { text-align:left; border:0; border-radius:3px; padding:12px 11px; background:transparent; color:#526174; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
#catalog-group-list button:hover { background:#f0f3f8; }
#catalog-group-list button[aria-pressed=true] { color:#fff; background:var(--navy); font-weight:700; }
.catalog-side-label,#catalog-group-list { display:none; }
.catalog-mobile-select { display:block; font-size:14px; font-weight:600; }
#catalog-group-select { display:block; width:100%; margin-top:8px; padding:13px 35px 13px 13px; font-size:16px; background:white; border:1px solid #a0aebf; color:var(--ink); }
.catalog-viewer { min-width:0; }
.catalog-viewer-heading { display:flex; gap:20px; justify-content:space-between; align-items:center; padding-bottom:24px; border-bottom:1px solid var(--line); }
.catalog-viewer-heading .eyebrow { margin-bottom:10px; letter-spacing:.08em; }
.catalog-viewer-heading h2 { font-size:27px; letter-spacing:-.03em; overflow-wrap:anywhere; }
#catalog-page-count { font-size:13px; color:var(--muted); margin-top:10px; }
.catalog-viewer-heading .button { font-size:13px; padding:13px 15px; }
.catalog-instruction { font-size:13px; color:var(--muted); padding-block:18px; }
.catalog-spread-book { border:1px solid #cbd6e3; background:white; margin-bottom:24px; }
.catalog-spread-toolbar { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:14px 18px; background:#f0f4f9; border-bottom:1px solid #cbd6e3; flex-wrap:wrap; }
.catalog-spread-toolbar>strong { font-size:14px; }
.catalog-zoom-controls { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.catalog-zoom-controls button { border:1px solid #bfcbd9; background:white; min-height:42px; min-width:42px; padding:8px 13px; font-size:13px; }
.catalog-zoom-controls output { font-size:13px; width:52px; text-align:center; }
.catalog-zoom-controls .spread-open-button { background:var(--navy); border-color:var(--navy); color:white; font-weight:600; margin-left:6px; }
.catalog-spread-canvas { height:auto; overflow-x:auto; overflow-y:hidden; background:#e8edf3; overscroll-behavior-x:contain; }
.catalog-spread-canvas,.catalog-zoom-canvas { cursor:grab; touch-action:pan-x pan-y pinch-zoom; }
.catalog-spread-canvas.is-dragging,.catalog-zoom-canvas.is-dragging { cursor:grabbing; }
.catalog-spread-canvas:focus-visible,.catalog-zoom-canvas:focus-visible { outline:3px solid #74b5cf; outline-offset:2px; }
.catalog-spread { display:flex; flex-flow:row nowrap; align-items:flex-start; gap:0; background:#fff; line-height:0; margin-inline:auto; width:100%; }
.catalog-spread-page { display:block; flex:0 0 auto; min-width:0; background:#fff; }
.catalog-spread .catalog-spread-page img { display:block; width:100%; max-width:none; height:auto; user-select:none; }
.catalog-spread-downloads { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:15px 18px; flex-wrap:wrap; border-top:1px solid #cbd6e3; font-size:12px; color:var(--muted); }
.catalog-spread-downloads>div,.catalog-download-links { display:flex; gap:20px; flex-wrap:wrap; }
.catalog-spread-downloads a,.catalog-download-links a { color:var(--blue); text-decoration:none; font-size:13px; font-weight:600; padding-block:6px; }
.catalog-advice { font-size:13px; color:var(--muted); background:var(--canvas); padding:20px; line-height:1.8; }
html.catalog-modal-open { overflow:hidden; scrollbar-gutter:stable; }
#catalog-dialog { width:calc(100% - 32px); max-width:1800px; height:calc(100dvh - 32px); max-height:calc(100dvh - 32px); padding:22px; overflow:hidden; }
#catalog-dialog[open] { display:flex; flex-direction:column; }
.catalog-dialog-head { display:flex; justify-content:space-between; gap:20px; flex-shrink:0; }
.catalog-dialog-head h2 { font-size:22px; letter-spacing:-.02em; }
.catalog-dialog-head .eyebrow { margin-bottom:6px; font-size:10px; }
.catalog-dialog-head .icon-button { flex-shrink:0; }
.catalog-zoom-toolbar { display:flex; justify-content:space-between; align-items:center; gap:15px; padding-block:16px; flex-wrap:wrap; flex-shrink:0; }
.catalog-zoom-toolbar>div { display:flex; gap:7px; align-items:center; }
.catalog-zoom-toolbar button { background:#fff; border:1px solid var(--line); min-height:42px; min-width:42px; padding:6px 12px; font-size:14px; }
.catalog-zoom-toolbar output { min-width:52px; text-align:center; font-size:13px; }
.catalog-zoom-toolbar .text-link { font-size:13px; }
.catalog-zoom-canvas { overflow:auto; min-height:0; flex:1; background:#e8edf3; border:1px solid var(--line); overscroll-behavior:contain; }
.catalog-zoom-canvas img { display:block; max-width:none; width:100%; height:auto; background:#fff; }
.visit-grid { display:grid; grid-template-columns:1.2fr 1fr; grid-template-areas:"map contact"; gap:38px; align-items:start; }
.visit-map { grid-area:map; min-width:0; border:1px solid var(--line); background:var(--canvas); }
.visit-map iframe { display:block; width:100%; height:430px; border:0; }
.visit-map-caption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:15px; padding:19px 21px; font-size:14px; }
.visit-map-caption a { color:var(--blue); font-weight:600; text-decoration:none; }
.visit-contact { grid-area:contact; min-width:0; padding:16px 0; }
.visit-contact .eyebrow { margin-bottom:13px; }
.visit-contact h2 { font-size:28px; }
.visit-address { font-size:23px; font-weight:600; line-height:1.6; margin-top:23px; letter-spacing:-.03em; }
.visit-postcode { color:var(--muted); font-size:13px; margin-top:9px; }
#address-copy-status { font-size:12px; color:var(--blue); }
#address-copy-fallback { display:block; width:100%; font-size:14px; padding:10px; border:1px solid var(--line); }
.visit-contact dl { display:grid; grid-template-columns:76px minmax(0,1fr); margin:22px 0 0; padding-top:14px; border-top:1px solid var(--line); }
.visit-contact dt,.visit-contact dd { margin:0; padding:5px 0; font-size:17px; overflow-wrap:anywhere; }
.visit-contact dt { color:var(--muted); font-size:15px; font-weight:600; }
.visit-contact .actions { margin-top:22px; gap:10px; }
.visit-contact .button { min-height:48px; font-size:16px; }
.visit-contact .visit-directions { background:#166448; color:white; gap:12px; }
.visit-contact .visit-directions:hover { background:#105239; }
.visit-factory { display:grid; grid-template-columns:300px 1fr; gap:38px; background:var(--canvas); align-items:center; margin-top:40px; padding:30px; }
.visit-factory img { width:100%; height:210px; object-fit:cover; }
.visit-factory h2 { font-size:24px; }
.visit-factory p:not(.eyebrow) { font-size:14px; color:var(--muted); line-height:1.9; margin-top:12px; }
.visit-factory .visit-english { font-size:12px!important; }
@media(max-width:1000px) {
 .catalog-workspace { grid-template-columns:205px minmax(0,1fr); gap:24px; }
 .catalog-viewer-heading { flex-wrap:wrap; }
 .catalog-viewer-heading h2 { font-size:25px; }
 .visit-grid { grid-template-columns:1fr 1fr; gap:26px; }
 .visit-address { font-size:20px; }
 .visit-map iframe { height:440px; }
}
@media(max-width:760px) {
 .catalog-page { width:calc(100% - 36px); padding-block:25px 45px; }
 .catalog-tabs { gap:7px; margin-bottom:22px; }
 .catalog-tabs button { font-size:13px; min-height:44px; padding:10px 12px; }
 .catalog-workspace { grid-template-columns:1fr; gap:23px; }
 .catalog-sidebar { border:0; padding:0; }
 .catalog-side-label,#catalog-group-list { display:none; }
 .catalog-mobile-select { display:block; font-size:13px; font-weight:600; }
 #catalog-group-select { display:block; width:100%; margin-top:7px; padding:13px 35px 13px 12px; font-size:16px; background:#fff; border:1px solid #9cabbc; color:var(--ink); }
 .catalog-viewer-heading { padding-bottom:20px; gap:15px; }
 .catalog-viewer-heading h2 { font-size:24px; }
 .catalog-viewer-heading .button { min-height:46px; }
 .catalog-spread-toolbar { padding:12px; gap:10px; }
 .catalog-spread-toolbar>strong { font-size:13px; }
 .catalog-zoom-controls { gap:4px; }
 .catalog-zoom-controls button { font-size:12px; padding:8px 9px; min-width:36px; }
 .catalog-zoom-controls output { width:43px; font-size:12px; }
 .catalog-zoom-controls .spread-open-button { margin-left:0; }
 .catalog-spread-downloads { padding:12px; font-size:11px; }
 .catalog-spread-downloads a,.catalog-download-links a { font-size:12px; }
 .catalog-advice { font-size:12px; padding:16px; }
 #catalog-dialog { width:calc(100% - 16px); height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); padding:14px; }
 .catalog-dialog-head h2 { font-size:17px; }
 .catalog-zoom-toolbar { gap:11px; padding-block:12px; }
 .catalog-zoom-toolbar button { padding-inline:9px; font-size:12px; }
 .catalog-zoom-toolbar output { min-width:42px; }
 .visit-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:"contact" "map"; gap:22px; }
 .visit-map iframe { height:300px; }
 .visit-map-caption { padding:15px; font-size:12px; }
 .visit-contact { padding:10px 0; }
 .visit-contact h2 { font-size:26px; }
 .visit-address { font-size:22px; margin-top:18px; }
 .visit-contact .actions .button { width:auto; }
 .visit-factory { grid-template-columns:1fr; gap:22px; margin-top:25px; padding:20px; }
 .visit-factory h2 { font-size:23px; }
 .visit-factory p:not(.eyebrow) { font-size:13px; }
}
