/* ============================================================
   Magic Romanov — accessibility (IS 5568 / WCAG 2.0 AA) and
   cookie-consent styles. Loaded after style.css.
   ============================================================ */

/* ---------- contrast fixes (text must reach 4.5:1) ---------- */
:root{
  --ink-soft:#6E5D56;   /* was #8C7A72 (3.8:1) -> 5.8:1 */
  --gold-deep:#7E5F2E;  /* was #93713E (~4:1)  -> 5.4:1 */
}
.btn-sage{background:#A9605B;color:#FFFFFF;}
.btn-sage:hover{background:#8E4E49;}
.btn-outline{color:#9C5A55;border-color:#B97570;}
.category-note a:hover{color:#6A4F25;}

/* ---------- skip link ---------- */
.skip-link{
  position:absolute;inset-inline-start:12px;top:-60px;z-index:1000;
  background:var(--charcoal);color:#fff;padding:10px 18px;border-radius:var(--radius-sm);
  font-weight:600;text-decoration:none;transition:top .15s;
}
.skip-link:focus{top:12px;}

/* ---------- visible keyboard focus everywhere ---------- */
:focus-visible{outline:3px solid #1F5FBF !important;outline-offset:2px !important;}
.booking-form select:focus-visible{outline:3px solid #1F5FBF !important;}

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

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

/* ---------- accessibility toolbar ---------- */
.a11y-fab{
  position:fixed;bottom:18px;inset-inline-start:18px;z-index:900;
  width:52px;height:52px;border-radius:50%;border:2px solid #fff;
  background:#1F4E99;color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}
.a11y-fab svg{width:30px;height:30px;}
.a11y-panel{
  position:fixed;bottom:80px;inset-inline-start:18px;z-index:901;
  width:min(320px,calc(100vw - 32px));max-height:calc(100vh - 110px);overflow:auto;
  background:#fff;color:#1d1d1d;border:1px solid #c9c9c9;border-radius:14px;
  box-shadow:0 18px 40px rgba(0,0,0,.25);padding:16px;font-family:var(--font-body);font-size:15px;
}
.a11y-panel[hidden]{display:none;}
.a11y-panel h2{font-size:18px;margin:0 0 12px;color:#1d1d1d;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.a11y-close{background:none;border:1px solid #888;border-radius:8px;width:34px;height:34px;font-size:20px;line-height:1;cursor:pointer;color:#1d1d1d;}
.a11y-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.a11y-opt{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  min-height:64px;padding:8px;border:1px solid #bdbdbd;border-radius:10px;background:#f7f7f7;
  color:#1d1d1d;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;text-align:center;
}
.a11y-opt[aria-pressed="true"]{background:#1F4E99;color:#fff;border-color:#1F4E99;}
.a11y-opt span[aria-hidden]{font-size:18px;line-height:1;}
.a11y-wide{grid-column:1 / -1;}
.a11y-links{margin-top:12px;display:flex;flex-direction:column;gap:6px;font-size:14px;}
.a11y-links a{color:#1F4E99;text-decoration:underline;}

/* toolbar modes — applied on <html> */
html.a11y-font-1 body{zoom:1.12;}
html.a11y-font-2 body{zoom:1.25;}
html.a11y-font-3 body{zoom:1.4;}
html.a11y-contrast body{background:#000 !important;}
html.a11y-contrast body *:not(svg):not(path):not(img):not(video):not(.a11y-panel):not(.a11y-panel *):not(.a11y-fab){
  background:#000 !important;color:#fff !important;border-color:#fff !important;box-shadow:none !important;
}
html.a11y-contrast body a:not(.a11y-panel a){color:#FFE066 !important;}
html.a11y-grayscale body > *:not(.a11y-panel):not(.a11y-fab){filter:grayscale(1);}
html.a11y-links a{text-decoration:underline !important;text-underline-offset:3px;outline:2px dashed currentColor;outline-offset:2px;}
html.a11y-readable body, html.a11y-readable body *:not(svg):not(path){font-family:Arial,Helvetica,sans-serif !important;letter-spacing:.02em;word-spacing:.08em;line-height:1.7;}
html.a11y-nomotion *,html.a11y-nomotion *::before,html.a11y-nomotion *::after{animation:none !important;transition:none !important;scroll-behavior:auto !important;}
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.5L9.5 21z' fill='%23000' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E") 4 2, auto !important;}

/* ---------- cookie banner ---------- */
.cookie-banner{
  position:fixed;inset-inline:12px;bottom:12px;z-index:950;
  max-width:760px;margin:0 auto;background:#fff;color:#1d1d1d;
  border:1px solid #d8cfcb;border-radius:16px;box-shadow:0 18px 40px rgba(0,0,0,.25);
  padding:18px 20px;font-family:var(--font-body);font-size:15px;line-height:1.55;
}
.cookie-banner[hidden]{display:none;}
.cookie-banner h2{font-size:17px;margin:0 0 6px;color:#1d1d1d;}
.cookie-banner p{margin:0 0 14px;}
.cookie-banner a{color:#1F4E99;text-decoration:underline;}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px;}
.cookie-btn{
  font:inherit;font-weight:600;padding:10px 18px;border-radius:999px;cursor:pointer;
  border:2px solid #4A3A34;background:#fff;color:#2B211D;
}
.cookie-btn--primary{background:#2B211D;color:#fff;border-color:#2B211D;}
.cookie-settings-link{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;}

/* ---------- Instagram placeholder until consent ---------- */
.embed-consent{
  max-width:328px;margin:12px auto;padding:18px;border:1px dashed var(--sage-deep);
  border-radius:12px;background:var(--paper);text-align:center;font-size:14px;color:var(--ink);
}
.embed-consent p{margin:0 0 10px;color:var(--ink);}
.embed-consent .btn{white-space:normal;}

/* footer legal links */
.footer-legal{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;margin-top:8px;font-size:14px;}
.footer-legal a,.footer-legal button{color:inherit;text-decoration:underline;}

/* keep the a11y button clear of the cookie banner on small screens */
@media (max-width:600px){
  .a11y-fab{bottom:14px;inset-inline-start:14px;width:48px;height:48px;}
}

/* Instagram embeds stay hidden until third-party cookies are allowed */
html:not(.consent-media) blockquote.instagram-media{display:none !important;}

/* lift the accessibility button above the cookie banner while it is open */
.a11y-fab{bottom:calc(18px + var(--cookie-h, 0px));}
.a11y-panel{bottom:calc(80px + var(--cookie-h, 0px));max-height:calc(100vh - 110px - var(--cookie-h, 0px));}
@media (max-width:600px){ .a11y-fab{bottom:calc(14px + var(--cookie-h, 0px));} }
