/* ============================================================
   SERENITY POOLS & SPAS — Accessibility Widget v3 (TPT-parity)
   + Cookie consent styles
   Include on EVERY page:
     <link rel="stylesheet" href="a11y-cookies.css">
     <script src="a11y-cookies.js?v=3" defer></script>
   Widget markup is injected by the JS — do not paste panel HTML.
   Self-contained; safe next to any page theme.
   ============================================================ */

/* ---------- Blade tab ---------- */
.a11y-tab{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:1100;
  display:flex;flex-direction:column;align-items:center;gap:8px;width:40px;padding:13px 0;
  background:#064273;border:1px solid rgba(255,255,255,.12);border-left:3px solid #f6a537;
  border-radius:0 10px 10px 0;cursor:pointer;transition:background .2s ease;
  box-shadow:0 6px 24px rgba(6,66,115,.3)}
.a11y-tab:hover{background:#0a5a99}
.a11y-tab:focus-visible{outline:3px solid #f6a537;outline-offset:2px}
.a11y-tab svg{width:18px;height:18px;stroke:#f6a537;fill:none;stroke-width:2}
.a11y-tab-v{writing-mode:vertical-rl;font-family:'Outfit',sans-serif;
  font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff}
@media(max-width:640px){.a11y-tab{top:auto;bottom:128px;transform:none}.a11y-tab-v{display:none}}

/* ---------- Slide-in panel ---------- */
.a11y-panel{position:fixed;left:0;top:0;bottom:0;z-index:1150;width:min(330px,88vw);
  background:#fdfbf7;color:#14181d;border-right:1px solid #e8dcc8;
  transform:translateX(-105%);transition:transform .34s cubic-bezier(.22,.61,.36,1);
  display:flex;flex-direction:column;font-family:'Outfit',sans-serif;
  box-shadow:30px 0 80px rgba(6,66,115,.25)}
.a11y-panel.open{transform:none}
.a11y-head{padding:16px 18px 12px;border-bottom:3px solid #f6a537;position:relative;background:#064273}
.a11y-head h2{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.35rem;
  margin:0 0 2px;color:#fff}
.a11y-head p{font-size:.74rem;color:#cfe3f2;margin:0 0 10px;font-weight:400}
.a11y-actions{display:flex;gap:12px;flex-wrap:wrap}
.a11y-actions button,.a11y-actions a{font-family:inherit;font-size:.7rem;font-weight:600;
  color:#cfe3f2;background:none;border:none;padding:0;cursor:pointer;text-decoration:underline}
.a11y-actions button:hover,.a11y-actions a:hover{color:#f6a537}
.a11y-close{position:absolute;top:12px;right:12px;width:34px;height:34px;
  background:none;border:none;cursor:pointer;font-size:1.05rem;color:#fff}
.a11y-close:focus-visible,.a11y-actions button:focus-visible,.a11y-actions a:focus-visible{outline:3px solid #f6a537;outline-offset:2px}
.a11y-body{overflow-y:auto;padding:12px 18px 24px;flex:1;
  scrollbar-width:thin;scrollbar-color:#c9bda6 transparent}
.a11y-sec{font-family:'Outfit',sans-serif;font-size:.72rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:#064273;margin:16px 0 8px}
.a11y-row{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 0;border-bottom:1px solid #ece3d2}
.a11y-row div b{display:block;font-size:.84rem;font-weight:600;color:#14181d}
.a11y-row div span{font-size:.7rem;color:#4a5d6a;font-weight:400}
.a11y-sw{flex:none;width:64px;height:26px;border-radius:100px;border:1px solid #d8ccb6;
  background:#f5e6d0;position:relative;cursor:pointer;font-size:.56rem;font-weight:800;
  letter-spacing:.05em;color:#4a5d6a;font-family:inherit;
  transition:background .18s ease,border-color .18s ease}
.a11y-sw::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;
  border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);
  transition:left .18s cubic-bezier(.22,.61,.36,1)}
.a11y-sw[aria-pressed="true"]{background:#064273;border-color:#064273;color:#fff}
.a11y-sw[aria-pressed="true"]::after{left:40px;background:#f6a537}
.a11y-sw:focus-visible{outline:3px solid #f6a537;outline-offset:2px}
.a11y-steps{display:flex;gap:6px}
.a11y-steps button{flex:1;font-family:inherit;border:1px solid #d8ccb6;border-radius:8px;
  background:#fff;padding:7px 0;font-weight:700;cursor:pointer;color:#14181d}
.a11y-steps button[aria-pressed="true"]{border-color:#064273;background:#e3f0fa}
.a11y-steps button:focus-visible{outline:3px solid #f6a537;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.a11y-panel,.a11y-sw::after,.a11y-tab{transition:none}}
@media print{.a11y-tab,.a11y-panel,#a11yGuide,#a11yMask,.cookie-banner{display:none !important}}

/* ---------- Effects (applied to <html>) ---------- */
html.a11y-text1 body{font-size:112%}
html.a11y-text2 body{font-size:125%}
html.a11y-font body,html.a11y-font body *{font-family:Verdana,Arial,Helvetica,sans-serif !important;font-style:normal !important}
html.a11y-links a{text-decoration:underline !important}
html.a11y-space body{letter-spacing:.06em;word-spacing:.12em;line-height:1.9}
html.a11y-motion *,html.a11y-motion *::before,html.a11y-motion *::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
html.a11y-motion video{display:none !important}
html.a11y-contrast main,html.a11y-contrast footer{filter:contrast(1.25)}
html.a11y-mono main,html.a11y-mono footer{filter:grayscale(1)}
html.a11y-desat main,html.a11y-desat footer{filter:saturate(.4)}
html.a11y-noimg main img,html.a11y-noimg footer img{visibility:hidden}
html.a11y-cursor,html.a11y-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l16 10-7 1 4 7-3 2-4-7-6 5z' fill='black' stroke='white'/%3E%3C/svg%3E") 4 2,auto !important}
html.a11y-focus :focus{outline:4px solid #f6a537 !important;outline-offset:2px !important}
html.a11y-guide #a11yGuide{display:block}
#a11yGuide{display:none;position:fixed;left:0;right:0;height:10vh;background:rgba(246,165,55,.14);
  border-block:2px solid #f6a537;pointer-events:none;z-index:1090}
html.a11y-titles h1,html.a11y-titles h2,html.a11y-titles h3{background:rgba(41,203,229,.18);outline:2px solid #1b8ac2}
html.a11y-hover a:hover,html.a11y-hover button:hover{outline:3px solid #f6a537 !important;background:rgba(246,165,55,.16) !important}
html.a11y-dark main,html.a11y-dark footer{filter:invert(1) hue-rotate(180deg)}
html.a11y-dark main img,html.a11y-dark main video,html.a11y-dark footer img{filter:invert(1) hue-rotate(180deg)}
html.a11y-light main,html.a11y-light footer{filter:brightness(1.12) contrast(.95)}
html.a11y-mask #a11yMask{display:block}
#a11yMask{display:none;position:fixed;left:0;right:0;top:0;bottom:0;pointer-events:none;z-index:1089;
  background:rgba(6,20,32,.6);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 calc(var(--my,50vh) - 7vh),transparent calc(var(--my,50vh) - 7vh),transparent calc(var(--my,50vh) + 7vh),#000 calc(var(--my,50vh) + 7vh));
  mask-image:linear-gradient(180deg,#000 0%,#000 calc(var(--my,50vh) - 7vh),transparent calc(var(--my,50vh) - 7vh),transparent calc(var(--my,50vh) + 7vh),#000 calc(var(--my,50vh) + 7vh))}

/* ---------- Cookie consent banner ---------- */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:1200;max-width:680px;margin:0 auto;
  background:#fdfbf7;border:1px solid #e8dcc8;border-top:3px solid #f6a537;border-radius:14px;
  box-shadow:0 16px 48px rgba(6,66,115,.25);padding:22px 24px;display:none;font-family:'Outfit',sans-serif}
.cookie-banner[data-visible="true"]{display:block}
.cookie-banner h2{font-family:'Cormorant Garamond',serif;font-size:1.35rem;color:#14181d;margin:0 0 6px}
.cookie-banner p{font-size:.85rem;color:#2c3e50;line-height:1.6;margin:0 0 16px}
.cookie-banner p a{color:#1b8ac2;text-decoration:underline}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px}
.cookie-btn{font-family:inherit;font-size:.82rem;font-weight:600;padding:10px 22px;border-radius:999px;cursor:pointer;
  transition:background .2s ease,color .2s ease}
.cookie-btn:focus-visible{outline:3px solid #f6a537;outline-offset:2px}
.cookie-btn--accept{background:#064273;color:#fff;border:1px solid #064273}
.cookie-btn--accept:hover{background:#0a5a99}
.cookie-btn--decline{background:transparent;color:#064273;border:1px solid #d8ccb6}
.cookie-btn--decline:hover{background:#f5e6d0;border-color:#064273}
.consent-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  min-height:320px;background:#f5e6d0;border-radius:14px;padding:32px;text-align:center;font-family:'Outfit',sans-serif}
.consent-placeholder p{font-size:.88rem;color:#2c3e50;max-width:420px}
@media(max-width:640px){.cookie-banner{padding:18px}.cookie-actions{flex-direction:column}.cookie-btn{width:100%;text-align:center}}