.bsr-home-intro { margin: 0 0 2.5rem; padding: 1.6rem 0 1rem; max-width: 850px; }
.bsr-home-intro h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.15; margin-bottom: 1rem; }
.bsr-home-intro p { font-size: 1.05rem; line-height: 1.7; opacity: .9; }
.bsr-home-intro a, .bsr-affiliate-note a, .bsr-owner a, .bsr-service-page a, .bsr-cookie-panel a { text-decoration: underline; text-underline-offset: .2em; }
.bsr-policy-date, .bsr-original-date { font-size: .9rem; opacity: .8; }
.bsr-company-details, .bsr-planning-update { padding: 1.4rem; border: 1px solid #aaa7; border-radius: 8px; margin: 1.5rem 0; }
.bsr-planning-update h2 { font-size: 1.6rem; margin-top: 0; }
.bsr-planning-update p:last-child, .bsr-company-details p:last-child { margin-bottom: 0; }
.bsr-affiliate-note { font-size: .92rem; line-height: 1.6; border-left: 3px solid #5c8292; padding: .7rem 1rem; margin: 0 0 1.5rem; }
.bsr-footer-links { display: flex; flex-wrap: wrap; gap: .7rem 1.1rem; justify-content: center; }
.bsr-footer-links li { list-style: none; margin: 0; }
.bsr-owner { padding-top: 1.3rem; padding-bottom: 1.3rem; font-size: .85rem; line-height: 1.8; text-align: center; }
.bsr-text-button { background: none; border: 0; padding: 0; color: inherit; cursor: pointer; font: inherit; text-decoration: underline; text-underline-offset: .2em; }
.bsr-cookie-panel { position: fixed; z-index: 100000; left: 1rem; right: 1rem; bottom: 1rem; max-width: 480px; margin: auto; padding: 1.2rem; border-radius: 12px; background: #fff; color: #20272c; border: 1px solid #ccd5da; box-shadow: 0 8px 32px #0003; font: 14px/1.5 Arial, sans-serif; max-height: calc(100dvh - 2rem); overflow: auto; }
.bsr-cookie-panel[hidden], .bsr-cookie-panel [hidden] { display: none !important; }
.bsr-cookie-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .5rem; }
.bsr-cookie-panel h2 { color: #20272c; font: bold 20px/1.3 Arial, sans-serif; margin: 0; }
.bsr-cookie-panel p { margin: 0 0 .9rem; }
.bsr-cookie-panel a { color: #234f67; }
.bsr-cookie-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.bsr-cookie-actions button { min-width: 0; min-height: 44px; padding: .65rem .5rem; background: #fff; border: 1px solid #7e929d; border-radius: 7px; color: #234f67; font: bold 13px/1.4 Arial, sans-serif; cursor: pointer; }
.bsr-cookie-actions button:hover, .bsr-cookie-actions button:focus { background: #eaf0f3; color: #234f67; }
.bsr-cookie-actions [data-bsr-choice="accept"], .bsr-cookie-actions [data-bsr-choice="save"] { background: #234f67; border-color: #234f67; color: #fff; }
.bsr-cookie-actions [data-bsr-choice="accept"]:hover, .bsr-cookie-actions [data-bsr-choice="accept"]:focus, .bsr-cookie-actions [data-bsr-choice="save"]:hover, .bsr-cookie-actions [data-bsr-choice="save"]:focus { background: #163c51; color: #fff; }
.bsr-cookie-actions [data-bsr-choice="settings"] { background: #f2f5f6; color: #234f67; }
.bsr-cookie-panel .bsr-cookie-back { min-height: 44px; padding: .4rem .2rem; border: 0; background: none; color: #234f67; font: 14px/1.4 Arial, sans-serif; text-decoration: underline; cursor: pointer; }
.bsr-cookie-panel[data-bsr-view="settings"] .bsr-cookie-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bsr-cookie-panel label { display: flex; align-items: center; min-height: 44px; padding: .3rem 0; cursor: pointer; }
.bsr-cookie-panel input { margin: 0 .6rem 0 0; accent-color: #234f67; }
.bsr-cookie-panel :focus-visible, .bsr-text-button:focus-visible { outline: 3px solid #3a789d; outline-offset: 3px; }
#bsr-cookie-categories { margin: 0 0 .9rem; }
@media (max-width: 600px) {
  .bsr-cookie-panel { left: .5rem; right: .5rem; bottom: .5rem; padding: 1rem; }
  .bsr-cookie-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bsr-cookie-actions [data-bsr-choice="accept"], .bsr-cookie-actions [data-bsr-choice="save"] { grid-column: 1 / -1; min-height: 52px; font-size: 15px; }
  .bsr-cookie-panel[data-bsr-view="settings"] .bsr-cookie-actions { grid-template-columns: 1fr; }
  .bsr-footer-links { justify-content: flex-start; }
  .bsr-owner { text-align: left; }
}
