@font-face { font-family: Manrope; src: url('/assets/fonts/manrope-regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
* { box-sizing: border-box; }
html, body, main { width: 100%; height: 100%; margin: 0; overflow: hidden; background: #f7f7f5; }
.native-document iframe { display: block; width: 100%; height: 100%; border: 0; background: #fff; }
.native-controls { position: fixed; z-index: 10; top: max(12px, env(safe-area-inset-top)); right: max(12px, env(safe-area-inset-right)); display: flex; gap: 8px; }
.native-controls a { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 12px 18px; border: 1px solid #465a70; background: #fff; color: #171b20; text-decoration: none; font: 400 13px/1.4 Manrope, Arial, sans-serif; }
.native-controls a:hover { background: #f7f7f5; }
.native-controls a:focus-visible { outline: 2px solid #571627; outline-offset: 3px; }
.native-loading { position: fixed; top: 16px; left: 16px; z-index: 9; display: flex; align-items: center; gap: 10px; max-width: calc(100% - 224px); padding: 10px 14px; border: 1px solid #d2dae2; background: #f7f7f5; color: #465a70; font: 400 12px/1.5 Manrope, Arial, sans-serif; pointer-events: none; }
.native-spinner { width: 14px; height: 14px; flex: 0 0 14px; border: 1px solid #bdc9d5; border-top-color: #571627; border-radius: 50%; animation: native-spin 1s linear infinite; }
@keyframes native-spin { to { transform: rotate(360deg); } }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .native-spinner { animation: none; } }

/* Mobile and touch-tablet: one continuous, naturally scrollable PDF document. */
.is-mobile-pdf { display: flex; flex-direction: column; height: 100dvh; }
.is-mobile-pdf .native-controls { position: static; flex: 0 0 auto; width: 100%; justify-content: flex-end; align-items: center; gap: 6px; padding: calc(8px + env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 8px max(10px, env(safe-area-inset-left)); border-bottom: 1px solid #d2dae2; background: #f7f7f5; }
.is-mobile-pdf .native-controls a { min-height: 40px; padding: 8px 10px; font-size: 12px; white-space: nowrap; flex: 0 0 auto; }
.is-mobile-pdf .native-document { position: relative; flex: 1 1 auto; min-height: 0; height: auto; width: 100%; overflow: hidden; }
.mobile-page-stage { width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto; padding: 10px 10px calc(24px + env(safe-area-inset-bottom)); touch-action: pan-y pinch-zoom; -webkit-overflow-scrolling: touch; overscroll-behavior-y: contain; scrollbar-width: thin; }
.mobile-brochure-page { width: min(100%, 720px); aspect-ratio: 99 / 140; margin: 0 auto 12px; overflow: hidden; background: #fff; }
.mobile-brochure-page canvas { display: block; width: 100%; height: auto; background: #fff; }
.is-mobile-pdf .native-loading { top: calc(72px + env(safe-area-inset-top)); left: max(10px, env(safe-area-inset-left)); max-width: calc(100% - 20px); }
.mobile-pdf-error { position: absolute; inset: 20px; z-index: 2; width: fit-content; height: fit-content; margin: auto; padding: 16px; background: #f7f7f5; color: #465a70; text-align: center; font: 400 13px/1.5 Manrope, Arial, sans-serif; }
.mobile-pdf-error p { margin: 0 0 8px; }
.mobile-pdf-error button { min-height: 40px; border: 0; background: transparent; color: #465a70; font: 400 13px/1 Manrope, Arial, sans-serif; cursor: pointer; }
.mobile-pdf-error button:focus-visible { outline: 2px solid #571627; outline-offset: 3px; }
