.catalogue-access-modal { display: none; position: fixed; inset: 0; z-index: 99999; font-family: Arial, sans-serif; color: #414141; }
.catalogue-access-modal.is-open { display: flex; align-items: center; justify-content: center; }
.catalogue-access-modal__backdrop { position: absolute; inset: 0; background: rgba(25, 25, 25, .72); }
.catalogue-access-modal__dialog { position: relative; width: min(92vw, 400px); min-height: 445px; padding: 2.5rem 2.45rem 1.5rem; overflow: hidden; background: #fff; border: 1px solid #b7984e; box-shadow: 0 18px 55px rgba(0,0,0,.28); }
.catalogue-access-modal__close { position: absolute; top: .55rem; right: .75rem; z-index: 2; border: 0; background: transparent; color: #888; font-size: 1.5rem; cursor: pointer; }
.catalogue-access-modal__brand { display: flex; justify-content: center; margin: .1rem 0 1.45rem; }
.catalogue-access-modal__brand img { width: 148px; height: auto; }
.catalogue-access-modal__viewport { position: relative; min-height: 288px; }
.catalogue-access-step { position: absolute; inset: 0; opacity: 0; transform: translateX(32px); pointer-events: none; transition: opacity .35s ease, transform .45s cubic-bezier(.22,.61,.36,1); }
.catalogue-access-step.is-active { opacity: 1; transform: translateX(0); pointer-events: auto; }
.catalogue-access-step.is-leaving { opacity: 0; transform: translateX(-32px); }
.catalogue-access-step h2 { margin: 0 0 1.2rem; color: #3f3f3f; font-size: 1.55rem; line-height: 1.15; text-align: center; }
.catalogue-access-intro { margin: 0 0 2.15rem; color: #5d5d5d; font-size: 1rem; text-align: center; }
.catalogue-access-step label { display: block; margin-bottom: .55rem; color: #333; font-size: .9rem; font-weight: 700; }
.catalogue-access-step input[type=email] { box-sizing: border-box; width: 100%; height: 48px; padding: .7rem .75rem; border: 1px solid #b7984e; background: #f7f7f7; color: #333; font-size: .9rem; }
.catalogue-access-step input[type=email]:focus, .catalogue-access-otp__digit:focus { outline: 2px solid rgba(183,152,78,.3); outline-offset: 1px; }
.catalogue-access-consent { margin: .8rem 0 0; color: #777; font-size: .72rem; text-align: center; }
.catalogue-access-consent a { color: #a4863d; }
.catalogue-access-otp { display: flex; justify-content: center; gap: .5rem; margin: 1.5rem 0 1.45rem; }
.catalogue-access-otp__digit { box-sizing: border-box; width: 48px; height: 48px; border: 1px solid #d8dce0; background: #f7f8f9; color: #333; font-size: 1.25rem; font-weight: 700; text-align: center; }
.catalogue-access-otp__digit:focus { border-color: #b7984e; }
.catalogue-access-resend-copy { margin: -1.15rem 0 0; color: #666; font-size: .85rem; text-align: center; }
.catalogue-access-link { border: 0; padding: 0; background: transparent; color: #b08c38; font-size: inherit; cursor: pointer; }
.catalogue-access-submit { box-sizing: border-box; width: 100%; min-height: 51px; border: 0; background: #b79a51; color: #090909; font-size: .9rem; letter-spacing: .08em; cursor: pointer; }
.catalogue-access-submit:hover { background: #a98b43; }
.catalogue-access-edit { display: block; margin: 1rem auto 0; color: #444; font-size: .84rem; }
.catalogue-access-form { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.catalogue-account-message, .catalogue-account-error { position: absolute; right: 2rem; bottom: .35rem; left: 2rem; margin: 0; font-size: .75rem; text-align: center; }
.catalogue-account-message { color: #176b35; }
.catalogue-account-error { color: #a32121; }
.catalogue-access-submit.is-loading { opacity: .7; cursor: wait; }
.catalogue-access-submit.is-loading::before { content: ""; display: inline-block; width: 1em; height: 1em; margin-right: .5em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; vertical-align: -.15em; animation: catalogue-access-spin .7s linear infinite; }
 @keyframes catalogue-access-spin { to { transform: rotate(360deg); } }
.catalogue-account-link { display: inline-flex; align-items: center; justify-content: center; color: #aaa; font-size: 1.35rem; line-height: 1; text-decoration: none; }
.catalogue-account-link.is-active { color: #a28d44; }
.catalogue-account-link .dashicons { width: auto; height: auto; font-size: inherit; }
 @media (max-width: 480px) { .catalogue-access-modal__dialog { padding-right: 1.5rem; padding-left: 1.5rem; } .catalogue-access-otp { gap: .3rem; } .catalogue-access-otp__digit { width: 42px; height: 46px; } }
