.catalog-page { background: #f7f7f4; color: #1e2c36; }
.catalog-page .site-header { background: rgba(255,255,255,.97); position: sticky; top: 0; z-index: 30; }
.catalog-page .primary-nav a[aria-current="page"] { color: #143d75; font-weight: 800; }
.catalog-hero { background: linear-gradient(120deg, #143d75, #1d5b8f); color: #fff; padding: 4.8rem 0 4rem; }
.catalog-hero .breadcrumb { font-size: .88rem; opacity: .82; margin: 0 0 1.2rem; }
.catalog-hero h1 { font-size: clamp(2.1rem, 5vw, 4rem); line-height: 1.08; max-width: 850px; margin: 0; }
.catalog-hero .lead { max-width: 760px; line-height: 1.7; margin: 1.15rem 0 0; font-size: 1.05rem; }
.category-anchor { position: sticky; top: 90px; z-index: 20; background: #fff; border-bottom: 1px solid #dfe4e7; }
.category-anchor::before, .category-anchor::after { content: ''; pointer-events: none; position: absolute; top: 0; bottom: 0; width: 28px; z-index: 1; }
.category-anchor::before { left: 0; background: linear-gradient(90deg, #fff, transparent); }
.category-anchor::after { right: 0; background: linear-gradient(270deg, #fff, transparent); }
.anchor-list { display: flex; gap: .65rem; overflow-x: auto; padding: .9rem 0; scroll-snap-type: x proximity; scrollbar-width: none; }
.anchor-list::-webkit-scrollbar { display: none; }
.anchor-list a { flex: 0 0 auto; border: 1px solid #d2dbe1; border-radius: 999px; color: #21465d; font-size: .86rem; font-weight: 700; padding: .55rem .85rem; scroll-snap-align: start; text-decoration: none; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.anchor-list a:hover, .anchor-list a.is-active { background: #143d75; border-color: #143d75; color: #fff; }
.catalog-section { padding: 5.5rem 0; scroll-margin-top: 168px; }
.catalog-section--soft { background: #f0f3f2; }
.catalog-section:last-of-type { padding-bottom: 5.5rem; }
.catalog-section-heading { align-items: end; display: flex; gap: 1.5rem; justify-content: space-between; margin-bottom: 2rem; }
.catalog-section-heading h2 { font-size: clamp(1.75rem, 3vw, 2.6rem); margin: 0; }
.catalog-section-heading p { color: #52636e; line-height: 1.7; margin: .75rem 0 0; }
.catalog-count { background: #e5ecea; border-radius: 999px; color: #21465d; flex: 0 0 auto; font-size: .82rem; font-weight: 800; padding: .5rem .75rem; }
.product-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.product-card { background: #fff; border: 1px solid #e1e7e9; border-radius: 10px; box-shadow: 0 2px 7px rgba(16,42,56,.045); display: flex; flex-direction: column; min-height: 100%; overflow: hidden; transition: box-shadow .2s ease, transform .2s ease; }
.product-card:hover { box-shadow: 0 11px 24px rgba(16,42,56,.13); transform: translateY(-4px); }
.product-media { align-items: center; aspect-ratio: 1 / 1; background: #fff; display: flex; justify-content: center; overflow: hidden; padding: 8%; }
.product-media--pending { background: linear-gradient(135deg, #eef2f1, #f8f9f8); color: #60717a; font-size: .86rem; font-weight: 700; padding: 1rem; text-align: center; }
.product-card--pending { border-style: dashed; }
.product-card img { display: block; height: 100%; object-fit: contain; object-position: center; width: 100%; }
.product-detail-grid { align-items: center; display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: minmax(0, 560px) minmax(0, 1fr); }
.product-detail-media { align-items: center; aspect-ratio: 1 / 1; background: #fff; border: 1px solid #dfe5e4; display: flex; justify-content: center; max-width: 560px; padding: 5%; }
.product-detail-media img { display: block; height: 100%; object-fit: contain; object-position: center; width: 100%; }
.product-card-body { display: flex; flex: 1; flex-direction: column; gap: 1rem; padding: 1.1rem; }
.product-card h3 { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; font-size: 1.05rem; line-height: 1.4; margin: 0; overflow: hidden; }
.product-detail-link { color: inherit; text-decoration: none; }
.product-detail-link:hover { color: #143d75; text-decoration: underline; text-underline-offset: 3px; }
.product-variants { color: #5b6d77; font-size: .79rem; line-height: 1.45; margin: -.45rem 0 0; }
.product-inquiry { align-self: flex-start; color: #143d75; font-size: .9rem; font-weight: 800; margin-top: auto; text-decoration: none; }
.product-inquiry:hover { color: #d67d00; }
.catalog-empty { background: #edf3f2; border-left: 4px solid #d99a00; color: #334953; line-height: 1.65; margin: 0; padding: 1rem 1.1rem; }
.catalog-contact { background: #e7efe9; margin-top: 4rem; padding: 4rem 0; }
.catalog-contact-layout { align-items: center; display: flex; gap: 2rem; justify-content: space-between; }
.catalog-contact h2 { font-size: clamp(1.65rem, 3vw, 2.5rem); margin: .35rem 0; max-width: 700px; }
.catalog-contact p { color: #41565a; line-height: 1.7; max-width: 700px; }
.content-page { background: #f7f7f4; color: #1e2c36; }
.content-page .site-header { background: rgba(255,255,255,.97); position: sticky; top: 0; z-index: 30; }
.content-page .primary-nav a[aria-current="page"] { color: #143d75; font-weight: 800; }
.content-hero { background: linear-gradient(120deg, #143d75, #1d5b8f); color: #fff; padding: 4.8rem 0 4rem; }
.content-hero .breadcrumb { font-size: .88rem; opacity: .82; margin: 0 0 1.2rem; }
.content-hero h1 { font-size: clamp(2.1rem, 5vw, 4rem); line-height: 1.08; margin: 0; max-width: 850px; }
.content-hero .lead { font-size: 1.05rem; line-height: 1.7; margin: 1.15rem 0 0; max-width: 760px; }
.content-section { padding: 4.5rem 0; }
.content-section.soft { background: #e9f0ed; }
.narrow { max-width: 840px; }
.content-section h2 { font-size: clamp(1.65rem, 3vw, 2.5rem); line-height: 1.25; margin: 0 0 1rem; }
.prose { color: #41565a; line-height: 1.8; margin: 0; }
.lead-prose { font-size: 1.12rem; }
.three-up { display: grid; gap: 1.5rem; grid-template-columns: repeat(3, 1fr); }
.three-up article { background: #fff; border: 1px solid #dfe7e4; border-radius: 12px; padding: 1.5rem; }
.three-up h2 { font-size: 1.35rem; }
.split, .contact-layout { display: grid; gap: 3rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.timeline { border-left: 2px solid #d99a00; list-style: none; margin: 1.25rem 0 0; padding: 0 0 0 1.35rem; }
.timeline li { display: grid; gap: .35rem; padding: 0 0 1.35rem; }
.timeline span { color: #41565a; line-height: 1.65; }
.company-profile { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(0, 1.5fr); margin: 1.25rem 0 0; }
.company-profile dt, .company-profile dd { border-bottom: 1px solid #dbe3e0; margin: 0; padding: .8rem 0; }
.company-profile dt { color: #52636e; font-weight: 700; }
.company-profile dd { padding-left: 1rem; }
.representative-signature { color: #143d75; font-weight: 800; margin: 1.25rem 0 0; }
.org-chart { margin: 1.5rem auto 0; max-width: 1040px; text-align: center; }
.org-node { background: #e8f1ed; border: 1px solid #bcd5ca; border-radius: 10px; color: #173e37; font-weight: 800; margin: 0 auto; max-width: 420px; padding: 1rem 1.25rem; }
.org-node--lead { background: #008e63; border-color: #008e63; color: #fff; }
.org-connector { background: #8eb9a9; height: 34px; margin: 0 auto; width: 2px; }
.org-branches { display: grid; gap: 1.25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); position: relative; }
.org-branches::before { background: #8eb9a9; content: ''; height: 2px; left: 25%; position: absolute; right: 25%; top: 0; }
.org-branch { border: 1px solid #d9e5e0; border-radius: 10px; margin-top: 1.5rem; overflow: hidden; position: relative; text-align: left; }
.org-branch::before { background: #8eb9a9; content: ''; height: 1.5rem; left: 50%; position: absolute; top: -1.5rem; width: 2px; }
.org-branch h3 { background: #e8f1ed; color: #173e37; font-size: 1.03rem; margin: 0; padding: 1rem; text-align: center; }
.org-branch ul { list-style: none; margin: 0; padding: .25rem 1rem; }
.org-branch li { border-top: 1px solid #edf2ef; color: #40545a; line-height: 1.45; padding: .85rem 0; }
.certificate-gallery { display: grid; gap: 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1.5rem; max-width: 780px; }
.certificate-gallery figure { background: #fff; border: 1px solid #dbe3e0; margin: 0; padding: .75rem; }
.certificate-gallery img { display: block; height: auto; margin: 0 auto; max-width: 100%; }
.certificate-gallery figcaption { color: #52636e; font-size: .88rem; line-height: 1.45; padding: .75rem .1rem .1rem; }
.about-page .content-hero { background: linear-gradient(115deg, #102f56 0%, #17604d 100%); }
.about-page .content-section { padding: clamp(4rem, 7vw, 7rem) 0; }
.about-page .about-message { background: linear-gradient(135deg, #fbfcfa 0%, #f2f6f2 100%); overflow: hidden; position: relative; }
.about-page .about-message::before { background: #d99a00; content: ''; height: 7rem; left: 0; position: absolute; top: 0; width: 4px; }
.about-page .about-message__heading { max-width: 760px; }
.about-page .about-message h2 { max-width: 720px; }
.about-message__layout { align-items: start; display: grid; gap: clamp(2rem, 5vw, 5.5rem); grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); margin-top: clamp(2rem, 4vw, 3.5rem); }
.about-message__copy { position: relative; }
.about-message__copy::before { color: rgba(18, 58, 96, .12); content: '“'; font-family: Georgia, serif; font-size: clamp(7rem, 14vw, 12rem); left: clamp(-2.3rem, -4vw, -1rem); line-height: .6; position: absolute; top: -.3rem; }
.about-page .about-message .lead-prose { max-width: 760px; position: relative; }
.about-page .about-message .lead-prose + .lead-prose { margin-top: 1.35rem; }
.about-page .representative-signature { border-right: 3px solid #d99a00; color: #143d75; font-weight: 800; line-height: 1.75; margin: 2.25rem 0 0 auto; max-width: 430px; padding-right: 1rem; text-align: right; white-space: normal; }
.about-page .representative-signature--ja { letter-spacing: .035em; }
.about-message-visual { aspect-ratio: 4 / 3; background: #eef1ea; box-shadow: 0 20px 38px rgba(16, 47, 86, .12); margin: 0; overflow: hidden; position: relative; }
.about-message-visual picture, .about-message-visual img { display: block; height: 100%; width: 100%; }
.about-message-visual img { object-fit: cover; object-position: center; }
.about-foundations .three-up, .about-values .three-up { gap: 1.25rem; }
.about-foundations article, .about-values article { border-radius: 0; min-height: 100%; padding: 1.75rem; }
.about-foundations article:first-child { border-top: 4px solid #d99a00; }
.about-foundations article:nth-child(2) { border-top: 4px solid #008e63; }
.about-foundations article:last-child { border-top: 4px solid #143d75; }
.about-values article { background: #fbfcfa; }
.about-organisation .org-chart { background: #fff; border: 1px solid #d9e5e0; padding: clamp(1.25rem, 3vw, 2.5rem); }
.about-organisation .org-node--lead { background: #123a60; border-color: #123a60; }
.about-organisation .org-branches::before, .about-organisation .org-branch::before { background: #c2a25a; }
.about-certifications .certificate-intro { max-width: 820px; }
.about-certifications .certificate-gallery { grid-template-columns: repeat(2, minmax(260px, 1fr)); max-width: 960px; }
.about-certifications .certificate-gallery figure { box-shadow: 0 10px 30px rgba(16, 47, 86, .08); padding: 1rem; }
.about-certifications .certificate-gallery figcaption { border-top: 1px solid #e2e9e6; margin-top: .75rem; padding: 1rem .2rem .15rem; }
.certificate-badges { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: none; }
.certificate-badge { align-items: start; background: #fff; border: 1px solid #dbe3e0; box-shadow: 0 10px 30px rgba(16, 47, 86, .08); display: grid; gap: .9rem; grid-template-columns: 48px minmax(0, 1fr); padding: 1.25rem; }
.certificate-icon { align-items: center; background: #eef5f2; border: 1px solid #d2e3dc; border-radius: 50%; color: #19795d; display: inline-flex; height: 48px; justify-content: center; width: 48px; }
.certificate-icon svg { fill: none; height: 28px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.2; width: 28px; }
.certificate-badge--wca .certificate-icon { color: #143d75; }
.certificate-badge--bsci .certificate-icon { color: #a66425; }
.certificate-badge--smeta .certificate-icon { color: #76589a; }
.certificate-badge--fda .certificate-icon { color: #2c7390; }
.certificate-badge--food .certificate-icon { color: #a14f32; }
.certificate-badge h3 { color: #143d75; font-size: 1.2rem; margin: 0 0 .6rem; }
.certificate-badge p { color: #52636e; line-height: 1.55; margin: 0; }
.info-page .content-section h2 { color: #143d75; font-size: clamp(1.35rem, 2.5vw, 1.8rem); margin: 0 0 .8rem; }
.info-page .info-list { display: grid; gap: 1rem; list-style: none; margin: 1.5rem 0 0; padding: 0; }
.info-page .info-list li { background: #fff; border: 1px solid #dbe3e0; border-radius: 10px; padding: 1.15rem 1.25rem; }
.info-page .info-list h3 { color: #173e37; font-size: 1.05rem; margin: 0 0 .5rem; }
.info-page .info-list p { color: #41565a; line-height: 1.65; margin: 0; }
.contact-layout { align-items: start; }
.contact-layout a { color: #143d75; }
.map-frame { border: 1px solid #dbe3e0; margin-top: 1.75rem; min-height: 280px; }
.map-frame iframe { border: 0; height: 280px; width: 100%; }
.map-frame--place { overflow: hidden; position: relative; }
.map-overlay { inset: 0; position: absolute; z-index: 2; }
.map-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .85rem; }
.map-actions .button { min-height: 42px; padding: 0 1rem; }
.map-directions { background: #fff; border-color: #143d75; color: #143d75; }
.contact-form { background: #fff; border: 1px solid #dfe7e4; border-radius: 12px; display: grid; gap: 1rem; padding: 1.5rem; }
.contact-form label { color: #263b48; display: grid; font-weight: 700; gap: .45rem; }
.contact-form input, .contact-form textarea { border: 1px solid #bfcbd1; border-radius: 5px; color: #1e2c36; font: inherit; padding: .72rem .8rem; width: 100%; }
.contact-form textarea { resize: vertical; }
.hp-field { height: 0; overflow: hidden; position: absolute; width: 0; }
.form-notice { border-radius: 5px; line-height: 1.55; margin: 0; padding: .85rem 1rem; }
.form-notice.success { background: #e2f1e8; color: #175937; }
.form-notice.error { background: #fbe8e6; color: #8a2c21; }
.product-context { background: #edf3f2; line-height: 1.5; margin: 0; padding: .8rem; }
.spec-sheet { border: 1px solid #cfdad7; background: #fff; }
.spec-panel { padding: 1.25rem 1.4rem; }
.spec-panel + .spec-panel { border-top: 1px solid #dbe3e0; background: #fbfcfb; }
.spec-panel h3 { color: #143d75; font-size: .82rem; letter-spacing: .07em; margin: 0 0 .65rem; text-transform: uppercase; }
.spec-list { display: grid; grid-template-columns: minmax(145px, .7fr) minmax(0, 2fr); margin: 0; }
.spec-list dt, .spec-list dd { border-top: 1px solid #e1e8e5; margin: 0; padding: .68rem 0; }
.spec-list dt { color: #52636e; font-weight: 700; }
.spec-list dd { padding-left: 1rem; }
.packing-line { font-weight: 700; line-height: 1.65; margin: .4rem 0; }
.packing-line--muted { color: #41565a; font-weight: 500; }
.variant-scroll { margin-top: 1.4rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.variant-table { border-collapse: collapse; min-width: 720px; width: 100%; }
.variant-table th, .variant-table td { border: 1px solid #d4dfdc; padding: .75rem .85rem; text-align: left; vertical-align: top; }
.variant-table thead th { background: #e8f0ed; color: #173e37; font-size: .78rem; letter-spacing: .035em; text-transform: uppercase; }
.variant-table tbody th { font-weight: 700; }
.number-cell { text-align: right !important; white-space: nowrap; }
@media (max-width: 720px) { .catalog-hero, .content-hero { padding: 3.4rem 0 3rem; } .category-anchor { top: 72px; } .catalog-section { scroll-margin-top: 136px; } .catalog-section, .content-section { padding: 3rem 0; } .catalog-section-heading { align-items: flex-start; flex-direction: column; gap: .8rem; margin-bottom: 1.4rem; } .product-grid { gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); } .product-card-body { gap: .75rem; padding: .85rem; } .product-card h3 { font-size: .92rem; } .product-inquiry { font-size: .8rem; } .catalog-contact-layout { align-items: flex-start; flex-direction: column; gap: 1rem; } .catalog-contact { margin-top: 3rem; padding: 3rem 0; } .three-up, .split, .contact-layout, .org-branches, .certificate-gallery, .about-certifications .certificate-gallery, .certificate-badges { grid-template-columns: 1fr; gap: 1.5rem; } .org-branches::before { display: none; } .org-branch { margin-top: 0; } .org-branch::before { display: none; } .spec-panel { padding: 1rem; } .spec-list { grid-template-columns: 1fr; } .spec-list dd { padding: .15rem 0 .7rem; } .spec-list dt { border-bottom: 0; padding-bottom: .15rem; } }

.product-media--scene { padding: 0; }
.product-media--scene img { object-fit: cover; }

.company-locations{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:2rem;margin:1.5rem 0 2rem}.company-locations .prose{margin:0 0 1rem}.company-locations__osaka{border-left:1px solid #c7d1d5;padding-left:2rem}@media(max-width:720px){.company-locations{grid-template-columns:1fr}.company-locations__osaka{border-left:0;border-top:1px solid #c7d1d5;padding:1.5rem 0 0}}
@media (max-width: 720px) { .about-page .about-message::before { height: 4.5rem; } .about-message__layout { gap: 2rem; grid-template-columns: 1fr; margin-top: 2rem; } .about-message__copy::before { left: -.85rem; } .about-page .representative-signature { margin-top: 1.75rem; max-width: 100%; } .about-message-visual { aspect-ratio: 4 / 3; } }

/* Org chart v2 (14/10/2026): tree layout, green boxes, grey departments */
.about-organisation .org-tree { --org-green: #229c63; --org-line: #229c63; --org-gap: 1rem; background: #fff; border: 1px solid #d9e5e0; padding: clamp(1.25rem, 3vw, 2.5rem); text-align: center; }
.org-tree .org-box { border-radius: 3px; font-weight: 700; line-height: 1.35; margin: 0 auto; padding: .95rem 1.1rem; position: relative; }
.org-tree .org-box--green { background: var(--org-green); color: #fff; max-width: 340px; }
.org-tree .org-box--board, .org-tree .org-box--gd { margin-bottom: 18px; }
.org-tree .org-box--board::after, .org-tree .org-box--gd::after, .org-tree .org-box--dir::after { background: var(--org-line); bottom: -18px; content: ''; height: 18px; left: 50%; position: absolute; transform: translateX(-1px); width: 2px; }
.org-tree .org-split { display: grid; gap: var(--org-gap); grid-template-columns: var(--cols, 3fr 2fr); position: relative; }
.org-tree .org-split::before { background: var(--org-line); content: ''; height: 2px; left: calc((100% - var(--org-gap)) * var(--a) / (2 * (var(--a) + var(--b)))); position: absolute; right: calc((100% - var(--org-gap)) * var(--b) / (2 * (var(--a) + var(--b)))); top: 0; }
.org-tree .org-group { padding-top: 18px; position: relative; }
.org-tree .org-group::before { background: var(--org-line); content: ''; height: 18px; left: 50%; position: absolute; top: 0; transform: translateX(-1px); width: 2px; }
.org-tree .org-depts { display: grid; gap: .6rem; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); list-style: none; margin: 36px 0 0; padding: 0; position: relative; }
.org-tree .org-depts::before { background: var(--org-line); content: ''; height: 2px; left: calc((100% - (var(--n) - 1) * .6rem) / var(--n) / 2); position: absolute; right: calc((100% - (var(--n) - 1) * .6rem) / var(--n) / 2); top: -18px; }
.org-tree .org-dept { align-items: flex-start; background: #e9eaec; border-radius: 2px; color: #1f2a30; display: flex; font-size: .95rem; font-weight: 700; justify-content: center; line-height: 1.4; min-height: 128px; padding: 1.1rem .65rem; position: relative; }
.org-tree .org-dept::before { background: var(--org-line); content: ''; height: 18px; left: 50%; position: absolute; top: -18px; transform: translateX(-1px); width: 2px; }
.org-tree .org-dept::after { background: var(--org-line); border-radius: 50%; content: ''; height: 8px; left: 50%; position: absolute; top: -22px; transform: translateX(-50%); width: 8px; }
@media (max-width: 720px) {
  .org-tree .org-split { grid-template-columns: 1fr; gap: 1.5rem; }
  .org-tree .org-split::before, .org-tree .org-group::before { display: none; }
  .org-tree .org-group { padding-top: 0; }
  .org-tree .org-depts { grid-template-columns: 1fr; margin-top: 18px; }
  .org-tree .org-depts::before, .org-tree .org-dept::before, .org-tree .org-dept::after { display: none; }
  .org-tree .org-dept { align-items: center; min-height: 0; padding: .85rem; }
}

/* Catalogue flip book (14/10/2026) */
.catalogue-page .flip-section { background: #eef1f6; padding: 2rem 0 3.5rem; }
.flip-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin-bottom: 1rem; }
.flip-toolbar button, .flip-toolbar .flip-download { background: #fff; border: 1px solid #c9d1df; border-radius: 4px; color: var(--mnt-navy, #2f2f86); cursor: pointer; font: 700 .85rem/1 inherit; min-height: 40px; padding: .6rem .95rem; text-decoration: none; }
.flip-toolbar button:hover, .flip-toolbar .flip-download:hover { background: #229c63; border-color: #229c63; color: #fff; }
.flip-toolbar [data-flip-prev], .flip-toolbar [data-flip-next] { font-size: 1.4rem; min-width: 44px; padding: .3rem .8rem; }
.flip-toolbar .flip-download { background: #229c63; border-color: #229c63; color: #fff; }
.flip-toolbar .flip-download:hover { background: #1a7d4f; }
.flip-counter { color: #333; font-weight: 600; min-width: 7.5rem; text-align: center; }
.flip-stage { margin: 0 auto; max-width: 1180px; min-height: 360px; }
.flip-book { margin: 0 auto; }
.flip-page { background: #fff; overflow: hidden; }
.flip-page img { display: block; height: 100%; object-fit: contain; width: 100%; }
.flip-hint { color: #5b6270; font-size: .85rem; margin: 1rem 0 0; text-align: center; }
.flip-editions { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: center; margin-top: 1rem; }
.flip-editions a { color: var(--mnt-navy, #2f2f86); font-weight: 600; }
.flip-noscript { color: #8a1c1c; text-align: center; }
.flip-section:fullscreen, .flip-section .shell:fullscreen { background: #1c2233; display: flex; flex-direction: column; justify-content: center; padding: 1rem; }
@media (max-width: 720px) { .catalogue-page .flip-section { padding: 1.25rem 0 2.5rem; } .flip-counter { min-width: 6rem; } .flip-toolbar { gap: .4rem; } }
/* Explicit reader dimensions prevent shrink-to-content in full screen. */
.flip-reader{width:100%;min-width:0}
.flip-stage{width:100%;height:min(76vh,1000px);min-height:320px;max-width:1500px;margin:0 auto;overflow:hidden}
.flip-book{width:100%;height:100%;margin:0 auto}
.flip-book:not(.is-ready) .flip-page:not(:first-child){display:none}
.flip-toolbar{flex:0 0 auto}
.flip-toolbar button:disabled{opacity:.45;cursor:default}
.flip-toolbar button,.flip-toolbar .flip-download{font-family:inherit;font-size:.85rem;font-weight:700;line-height:1.2}
.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen){box-sizing:border-box;background:#1c2233;color:#f8fafc;display:flex;flex-direction:column;justify-content:flex-start;width:100vw!important;max-width:none!important;height:100vh;height:100dvh;margin:0!important;padding:12px!important;gap:10px;overflow:hidden}
.flip-reader.is-fullscreen{position:fixed;inset:0;z-index:100000}
.flip-fullscreen-open{overflow:hidden}
.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen) .flip-stage{flex:1 1 0;min-height:0;width:100%;max-width:none;height:auto;margin:0}
.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen) .flip-toolbar{margin:0;gap:.5rem}
.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen) .flip-counter{color:#f8fafc}
.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen) .flip-hint{flex:none;color:#d4dce8;margin:0;font-size:.8rem}
.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen) .flip-editions{flex:none;color:#d4dce8;margin:0;font-size:.85rem}
.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen) .flip-editions a{color:#b9dbff}
@media(max-width:720px){.flip-stage{height:70vh;min-height:300px}.flip-toolbar{gap:.35rem}.flip-toolbar button,.flip-toolbar .flip-download{padding:.55rem .65rem}.flip-counter{min-width:5.2rem}.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen){padding:8px!important;gap:8px}}
@media(max-height:500px){.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen) .flip-hint,.flip-reader:is(:fullscreen,:-webkit-full-screen,.is-fullscreen) .flip-editions{display:none}}

/* 17/10/2026: desktop shows every category chip without a cropped edge. */
@media (min-width: 1000px) {
  .category-anchor::before, .category-anchor::after { display: none; }
  .anchor-list { flex-wrap: wrap; justify-content: center; overflow-x: visible; padding: .72rem 0; }
}

/* 17/10/2026: size the A4 flipbook for wide desktop screens. */
@media (min-width: 721px) {
  .flip-stage { height: min(88vh, 1150px); min-height: 420px; }
}
