.cookie-panel {
    position: fixed;
    z-index: 10000;
    bottom: 1rem;
    right: 1rem;
    width: min(620px, calc(100% - 2rem));
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    padding: clamp(1rem, 3vw, 1.75rem);
    background: #fff;
    color: #5a5a5a;
    border: 1px solid #b8a99a;
    border-radius: 8px;
    box-shadow: 0 8px 40px #0003;
    font-size: 0.9rem;
}

.cookie-panel [hidden], .cookie-panel[hidden] { display: none; }
.cookie-panel .cookie-logo {
    display: block;
    width: 180px;
    max-width: 65%;
    height: auto;
    margin: 0 auto 1.25rem;
}
.cookie-panel h2 { font-size: 1.6rem; margin-bottom: 1rem; }
.cookie-panel p { margin-bottom: 0.75rem; }
.cookie-panel fieldset { padding: 1rem; margin: 1rem 0; border: 1px solid #d4c5b9; }
.cookie-panel legend { padding: 0 0.4rem; font-weight: 600; }
.cookie-panel label { display: flex; align-items: baseline; gap: 0.65rem; margin: 0.75rem 0; cursor: pointer; }
.cookie-panel input { flex-shrink: 0; accent-color: #5a5a5a; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin: 1rem 0; }
.cookie-actions button { flex: 1 1 145px; min-height: 44px; padding: 0.75rem; border: 1px solid #b8a99a; border-radius: 4px; background: #f5f5f5; color: #333; font-weight: 500; }
.cookie-actions button:hover { background: #e9e2dc; }
.cookie-panel :focus-visible { outline: 2px solid #a88b4a; outline-offset: 3px; }
.cookie-panel .cookie-links { margin-bottom: 0; }
.cookie-links a { text-decoration: underline; text-underline-offset: 3px; }
.marketing-signup { border-top: 1px solid #d4c5b9; margin-top: 1rem; padding-top: 1rem; font-size: .9rem; }
.marketing-signup h3 { margin-bottom: .5rem; }
.marketing-signup label { display: flex; gap: .65rem; margin: .75rem 0; align-items: baseline; }
.marketing-signup input[type=email], .marketing-signup input[autocomplete=given-name] { width: 100%; box-sizing: border-box; padding: .65rem; border: 1px solid #b8a99a; border-radius: 4px; }
.marketing-signup input[type=checkbox] { flex-shrink: 0; }
.marketing-signup button { display: block; margin-top: .75rem; min-height: 44px; padding: .75rem 1.5rem; border: 1px solid #b8a99a; background: #f5f5f5; color: #333; cursor: pointer; }
.marketing-signup button:disabled { opacity: .6; }
.marketing-signup a { text-decoration: underline; }
.marketing-signup .marketing-trap { display: none; }
.marketing-signup [hidden] { display: none; }
.marketing-welcome {
    box-sizing: border-box;
    position: fixed;
    inset: 0;
    margin: auto;
    width: min(560px, calc(100% - 2rem));
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    border: 1px solid #d4c5b9;
    border-radius: 12px;
    padding: clamp(1.25rem, 4vw, 2rem);
    background: radial-gradient(ellipse at top right, #e9dfd1, transparent 65%), #fffdf9;
    color: #433126;
    box-shadow: 0 16px 70px #0004;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
}
.marketing-welcome::backdrop { background: rgb(25 19 16 / 58%); }
body.marketing-welcome-open { overflow: hidden; }
.marketing-welcome .marketing-welcome-close {
    position: absolute; top: .5rem; right: .65rem;
    width: 44px; height: 44px; border: 0; background: transparent;
    color: #433126; font-size: 2rem; cursor: pointer;
}
.marketing-welcome-logo { display: block; width: 175px; max-width: 65%; height: auto; margin: 0 auto 1rem; }
.marketing-welcome-intro { font-size: .75rem; letter-spacing: .08em; margin-bottom: .65rem; }
.marketing-welcome h2 { font-family: 'Montserrat', sans-serif; font-size: clamp(1.25rem, 4.5vw, 1.5rem); font-weight: 500; line-height: 1.35; margin: .5rem 1rem .65rem; color: #433126; }
.marketing-welcome-description { font-size: .9rem; line-height: 1.5; margin-bottom: 1rem; }
.marketing-welcome .marketing-signup { text-align: left; border-top: 0; margin-top: .5rem; padding-top: 0; }
.marketing-welcome .marketing-signup > p:first-of-type { font-size: .75rem; line-height: 1.6; margin-bottom: .75rem; }
.marketing-welcome .marketing-signup input[type=email], .marketing-welcome .marketing-signup input[autocomplete=given-name] { min-height: 46px; background: #fff; color: #433126; font-size: 1rem; }
.marketing-welcome .marketing-email-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.marketing-welcome .marketing-consent { font-size: .75rem; line-height: 1.6; }
.marketing-welcome .marketing-consent input { width: 18px; height: 18px; accent-color: #433126; }
.marketing-welcome .marketing-signup a { font-size: .75rem; color: #433126; }
.marketing-welcome .marketing-signup button { width: 100%; background: #433126; color: #fff; border-color: #433126; font-weight: 600; }
.marketing-welcome .marketing-signup button:hover { background: #644c39; }
.marketing-welcome [role=status]:empty { display: none; }
.marketing-welcome [hidden] { display: none; }
.marketing-registration-complete h2 { font-weight: 600; margin-bottom: 1rem; }
.marketing-registration-complete .marketing-welcome-description { line-height: 1.7; margin: 0 0 1.5rem; }
.marketing-complete-button { width: 100%; min-height: 44px; padding: .75rem 1.5rem; border: 1px solid #433126; background: #433126; color: #fff; font-weight: 600; cursor: pointer; }
.marketing-complete-button:hover { background: #644c39; }
.marketing-welcome :focus-visible { outline: 2px solid #a88b4a; outline-offset: 3px; }
.marketing-reopen { margin-top: 1rem; padding: .65rem; border: 1px solid #b8a99a; background: #fff; color: #433126; cursor: pointer; }
.marketing-welcome .marketing-offer-highlight { padding: .9rem 1rem; margin: .85rem 0 1rem; border: 1px solid #c7af8a; border-radius: 6px; background: #f1e7d8; color: #433126; }
.marketing-offer-highlight strong { display: block; font-size: clamp(1.6rem, 5vw, 1.9rem); font-weight: 700; line-height: 1.2; margin-bottom: .45rem; }
.marketing-offer-highlight span { display: block; font-size: .85rem; line-height: 1.5; }
.marketing-offer-highlight small { display: block; font-size: .7rem; line-height: 1.5; margin-top: .45rem; }
