.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

html{
  scroll-padding-top:6.5rem;
  scroll-padding-bottom:3rem;
}

body{
  accent-color:#2B7CB5;
}

.skip-link{
  position:fixed;
  top:1rem;
  left:1rem;
  z-index:220;
  padding:.82rem 1.05rem;
  border-radius:999px;
  background:#091820;
  color:#fff;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 12px 24px rgba(0,0,0,.22);
  transform:translateY(-140%);
  transition:transform .2s ease;
}

.skip-link:focus-visible{
  transform:translateY(0);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid #4DA8D4;
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
}

.site-cookie-banner{
  position:fixed;
  left:max(1rem,env(safe-area-inset-left));
  right:max(1rem,env(safe-area-inset-right));
  bottom:max(1rem,env(safe-area-inset-bottom));
  z-index:210;
}

.site-cookie-banner[hidden]{
  display:none;
}

.site-cookie-card{
  max-width:68rem;
  margin:0 auto;
  padding:1.1rem 1.2rem;
  border-radius:1.3rem;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(9,24,32,.96);
  color:#fff;
  box-shadow:0 18px 40px rgba(0,0,0,.3);
}

.site-cookie-copy{
  display:grid;
  gap:.45rem;
}

.site-cookie-copy strong{
  font-size:1.03rem;
  line-height:1.35;
}

.site-cookie-copy p{
  color:rgba(255,255,255,.76);
  font-size:.94rem;
  line-height:1.68;
}

.site-cookie-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1rem;
}

.cookie-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.9rem;
  padding:.82rem 1.12rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:transparent;
  color:#fff;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}

.cookie-btn-primary{
  background:linear-gradient(135deg,#2B7CB5,#4DA8D4);
  border-color:transparent;
}

.cookie-btn-secondary{
  background:rgba(255,255,255,.06);
}

.cookie-btn-ghost{
  color:rgba(255,255,255,.84);
}

.site-cookie-trigger{
  position:fixed;
  left:max(1rem,env(safe-area-inset-left));
  bottom:max(1rem,env(safe-area-inset-bottom));
  z-index:205;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.7rem;
  padding:.74rem 1rem;
  border:none;
  border-radius:999px;
  background:#091820;
  color:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.24);
  font:inherit;
  font-size:.88rem;
  font-weight:700;
  cursor:pointer;
}

.site-cookie-trigger[hidden]{
  display:none;
}

.site-consent-backdrop{
  position:fixed;
  inset:0;
  z-index:215;
  background:rgba(7,20,28,.62);
  backdrop-filter:blur(4px);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
}

.site-consent-backdrop.is-open{
  opacity:1;
  pointer-events:auto;
}

.site-consent-modal{
  position:fixed;
  left:50%;
  top:50%;
  z-index:216;
  width:min(42rem,calc(100vw - 2rem));
  max-height:calc(100vh - 2rem);
  overflow:auto;
  padding:1.2rem;
  border-radius:1.5rem;
  border:1px solid rgba(255,255,255,.12);
  background:#fff;
  box-shadow:0 26px 60px rgba(0,0,0,.28);
  transform:translate(-50%,-48%);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease,transform .2s ease;
}

.site-consent-modal.is-open{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,-50%);
}

.site-consent-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}

.site-consent-head h2{
  font-size:1.35rem;
  line-height:1.2;
  color:#1A2E3B;
}

.site-consent-head p{
  margin-top:.45rem;
  color:#3D5A6A;
  font-size:.95rem;
  line-height:1.7;
}

.site-consent-close{
  flex-shrink:0;
  width:2.5rem;
  height:2.5rem;
  border:none;
  border-radius:999px;
  background:#E5F0F8;
  color:#1A2E3B;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}

.site-consent-grid{
  display:grid;
  gap:.85rem;
}

.site-consent-item{
  padding:1rem 1.05rem;
  border-radius:1rem;
  border:1px solid rgba(12,36,52,.08);
  background:#F4F7F9;
}

.site-consent-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}

.site-consent-item strong{
  display:block;
  color:#1A2E3B;
  font-size:1rem;
  line-height:1.35;
}

.site-consent-item p{
  margin-top:.32rem;
  color:#3D5A6A;
  font-size:.92rem;
  line-height:1.68;
}

.consent-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:3.15rem;
  padding:.25rem;
  border-radius:999px;
  background:#D7E5F0;
  cursor:pointer;
}

.consent-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.consent-toggle span{
  position:relative;
  display:block;
  width:2.45rem;
  height:1.5rem;
  border-radius:999px;
  background:#A1B8C8;
  transition:background .2s ease;
}

.consent-toggle span::after{
  content:"";
  position:absolute;
  top:.14rem;
  left:.15rem;
  width:1.22rem;
  height:1.22rem;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 5px rgba(0,0,0,.18);
  transition:transform .2s ease;
}

.consent-toggle input:checked + span{
  background:#2B7CB5;
}

.consent-toggle input:checked + span::after{
  transform:translateX(.95rem);
}

.consent-toggle input:disabled + span{
  background:#6B8A9A;
}

.site-consent-foot{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1.1rem;
}

.cookie-settings-link{
  background:none;
  border:none;
  color:inherit;
  font:inherit;
  cursor:pointer;
  text-decoration:underline;
}

.paypal-fallback-action{
  margin-top:.75rem;
}

.paypal-fallback-action .cookie-btn{
  width:100%;
}

@media (max-width:900px){
  .site-cookie-card{
    padding:1rem;
  }

  .site-cookie-actions,
  .site-consent-foot{
    flex-direction:column;
  }

  .cookie-btn{
    width:100%;
  }

  .site-cookie-trigger{
    left:auto;
    right:max(1rem,env(safe-area-inset-right));
  }

  .site-consent-modal{
    width:min(100vw - 1rem,42rem);
    max-height:calc(100vh - 1rem);
    padding:1rem;
  }

  .site-consent-row{
    flex-direction:column;
  }
}
