/* DevShuora CMS additions (Phase 4): blog, articles, reviews. Light theme tokens come from v2.css. */

/* ---------- blog cards ---------- */
.bl-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.bl-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--lt-line); border-radius: 22px; overflow: hidden; color: var(--lt-ink); height: 100%; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.bl-card:hover { transform: translateY(-5px); box-shadow: var(--lt-shadow-lg); border-color: rgba(7, 157, 166, .35); color: var(--lt-ink); }
.bl-thumb { aspect-ratio: 16 / 9; overflow: hidden; background: var(--lt-soft); border-bottom: 1px solid var(--lt-line); }
.bl-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.bl-card:hover .bl-thumb img { transform: scale(1.04); }
.bl-body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.bl-cat { display: inline-block; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--lt-teal-d); }
.bl-body h3 { font-size: 1.18rem; margin: 8px 0; line-height: 1.3; }
.bl-body p { color: var(--lt-muted); font-size: .93rem; margin-bottom: 14px; }
.bl-meta { margin-top: auto; color: var(--lt-muted); font-size: .82rem; margin-bottom: 12px; }
.bl-filters { margin-bottom: 26px; }
.bl-empty { text-align: center; border: 1px dashed var(--lt-line); border-radius: 22px; padding: 48px 20px; background: #fff; }
.bl-empty i { font-size: 2rem; color: var(--lt-teal); }
.bl-empty h3 { margin: 10px 0 6px; font-size: 1.3rem; }
.bl-empty p { color: var(--lt-muted); margin: 0; }
@media (max-width: 1199.98px) { .bl-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767.98px) { .bl-grid { grid-template-columns: 1fr; } }

/* ---------- article page ---------- */
.bl-hero { min-height: 0 !important; padding-bottom: 40px !important; }
.bl-head { max-width: 860px; margin-top: 18px; }
.bl-head h1 { font-size: clamp(2rem, 4vw, 3.2rem); margin: 12px 0 14px; }
.bl-head p { font-size: 1.12rem; color: var(--lt-muted); }
.bl-byline { display: flex; align-items: center; gap: 12px; margin-top: 18px; }
.bl-byline b { display: block; color: var(--lt-ink); }
.bl-byline small { color: var(--lt-muted); }
.bl-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; }
.bl-cover { width: 100%; height: auto; border-radius: 20px; border: 1px solid var(--lt-line); margin-bottom: 32px; }
.bl-side { position: sticky; top: 120px; display: grid; gap: 18px; }
.bl-toc, .bl-side-cta { background: #fff; border: 1px solid var(--lt-line); border-radius: 18px; padding: 20px; }
.bl-toc b, .bl-side-cta b { display: block; margin-bottom: 10px; color: var(--lt-ink); }
.bl-toc ol { margin: 0; padding-left: 18px; }
.bl-toc li { margin-bottom: 8px; font-size: .9rem; }
.bl-toc a { color: var(--lt-ink-2); }
.bl-toc a:hover { color: var(--lt-teal-d); }
.bl-side-cta { background: var(--lt-navy); color: #fff; border: 0; }
.bl-side-cta b { color: #fff; }
.bl-side-cta p { color: rgba(255, 255, 255, .72); font-size: .9rem; }
.bl-side-cta .btn-primary-glow { background: var(--cyan-400); color: var(--navy-950); }
.bl-share { display: flex; align-items: center; gap: 10px; margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--lt-line); }
.bl-share a { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--lt-line); color: var(--lt-ink); }
.bl-share a:hover { background: var(--lt-navy); color: #fff; }
@media (max-width: 991.98px) { .bl-layout { grid-template-columns: 1fr; } .bl-side { position: static; } }

/* readable article text */
.ds-prose { font-size: 1.08rem; line-height: 1.8; color: var(--lt-ink-2); max-width: 760px; }
.ds-prose h2 { font-size: 1.7rem; margin: 2.2rem 0 .9rem; color: var(--lt-ink); scroll-margin-top: 130px; }
.ds-prose h3 { font-size: 1.3rem; margin: 1.8rem 0 .7rem; color: var(--lt-ink); }
.ds-prose p, .ds-prose ul, .ds-prose ol, .ds-prose blockquote { margin-bottom: 1.15rem; }
.ds-prose ul, .ds-prose ol { padding-left: 1.3rem; }
.ds-prose li { margin-bottom: .45rem; }
.ds-prose a { color: var(--lt-teal-d); text-decoration: underline; text-underline-offset: 3px; }
.ds-prose blockquote { border-left: 4px solid var(--lt-teal); background: var(--lt-soft); padding: 14px 20px; border-radius: 0 14px 14px 0; font-style: italic; }
.ds-prose img { max-width: 100%; height: auto; border-radius: 14px; margin: 1rem 0; }
.ds-prose pre, .ds-prose code { background: #0b1b30; color: #e8f1fb; border-radius: 8px; font-size: .9em; }
.ds-prose code { padding: 2px 6px; }
.ds-prose pre { padding: 16px; overflow-x: auto; }
.ds-prose pre code { padding: 0; background: none; }

/* ---------- reviews ---------- */
.rv-grid { columns: 3 320px; column-gap: 24px; }
.rv-card { break-inside: avoid; display: block; background: #fff; border: 1px solid var(--lt-line); border-radius: 22px; padding: 26px; margin: 0 0 24px; box-shadow: 0 6px 20px rgba(11, 27, 48, .04); }
.rv-stars { color: #f5a524; font-size: .95rem; letter-spacing: 2px; }
.rv-card blockquote { margin: 14px 0 18px; font-size: 1.02rem; line-height: 1.7; color: var(--lt-ink-2); }
.rv-card figcaption { display: flex; align-items: center; gap: 12px; }
.rv-card figcaption b { display: block; color: var(--lt-ink); }
.rv-card figcaption small { color: var(--lt-muted); }
.rv-card figcaption small a { color: var(--lt-muted); }
.rv-initials, .rv-photo { width: 44px; height: 44px; border-radius: 50%; flex: 0 0 44px; }
.rv-initials { display: grid; place-items: center; background: var(--lt-navy); color: var(--cyan-300); font-weight: 700; font-family: 'Space Grotesk', sans-serif; }
.rv-photo { object-fit: cover; }
.rv-src { display: inline-block; margin-top: 14px; font-size: .75rem; font-weight: 700; color: var(--lt-teal-d); background: rgba(8, 184, 190, .08); border-radius: 999px; padding: 4px 10px; }
.rv-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 10px; padding: 22px 26px; border-radius: 20px; background: var(--lt-soft); border: 1px solid var(--lt-line); }
.rv-cta b { display: block; font-size: 1.1rem; }
.rv-cta span { color: var(--lt-muted); }
.rv-form-wrap { max-width: 820px; margin: 0 auto; background: #fff; border: 1px solid var(--lt-line); border-radius: 24px; padding: 34px; box-shadow: var(--lt-shadow); }
.rv-form-wrap h2 { font-size: 1.6rem; }
.rv-form-wrap .form-label { font-weight: 600; }
.rv-rate { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.rv-rate input { position: absolute; opacity: 0; pointer-events: none; }
.rv-rate label { font-size: 1.9rem; color: #d7dde6; cursor: pointer; transition: color .15s, transform .15s; }
.rv-rate label:hover, .rv-rate label:hover ~ label, .rv-rate input:checked ~ label { color: #f5a524; }
.rv-rate label:hover { transform: scale(1.1); }
.rv-rate input:focus-visible + label { outline: 2px solid var(--lt-teal); border-radius: 6px; }
@media (max-width: 575.98px) { .rv-form-wrap { padding: 22px; } }

/* ---------- Phase 5: cross-links ---------- */
.svc-industries { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin-top: 34px; }
.svc-industries span { color: var(--lt-muted); font-weight: 600; margin-right: 4px; }
.svc-industries a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--lt-line); color: var(--lt-ink-2); font-size: .88rem; font-weight: 600; }
.svc-industries a:hover { border-color: var(--lt-teal); color: var(--lt-teal-d); }
.section-lead a { color: var(--lt-teal-d); text-decoration: underline; text-underline-offset: 3px; }

/* dark footer logo: only shown where a page uses the dark theme (home-dark.css) */
.footer-logo .logo-on-dark { display: none; }

/* ---------- header menu: clear icons with a small animation (2026-10-27) ---------- */
.ds-card-icon { flex: 0 0 42px; height: 42px; border-radius: 12px; background: #e3f3f4; border: 1px solid #c6e7ea; color: #06757e; font-size: 1.22rem; transition: background .25s ease, color .25s ease, border-color .25s ease; }
.ds-card-icon i { display: inline-block; }
.ds-card:hover .ds-card-icon, .ds-card.active .ds-card-icon, .ds-card:focus-visible .ds-card-icon { background: #06757e; border-color: #06757e; color: #fff; }
.ds-card:hover .ds-card-icon i, .ds-card:focus-visible .ds-card-icon i { animation: dsIconPop .5s ease; }
.ds-card-text strong { color: #0b1b30; }
.ds-card-text small { color: #55667b; }
@media (min-width: 1200px) {
  .ds-drop::before { content: ""; position: absolute; left: 0; right: 0; top: -18px; height: 18px; }   /* hover bridge over the gap under the menu link */
  .ds-item.has-drop:hover .ds-card, .ds-item.has-drop:focus-within .ds-card { animation: dsCardIn .3s ease both; }
  .ds-drop-grid .ds-card:nth-child(1) { animation-delay: 0.000s; }
  .ds-drop-grid .ds-card:nth-child(2) { animation-delay: 0.018s; }
  .ds-drop-grid .ds-card:nth-child(3) { animation-delay: 0.036s; }
  .ds-drop-grid .ds-card:nth-child(4) { animation-delay: 0.054s; }
  .ds-drop-grid .ds-card:nth-child(5) { animation-delay: 0.072s; }
  .ds-drop-grid .ds-card:nth-child(6) { animation-delay: 0.090s; }
  .ds-drop-grid .ds-card:nth-child(7) { animation-delay: 0.108s; }
  .ds-drop-grid .ds-card:nth-child(8) { animation-delay: 0.126s; }
  .ds-drop-grid .ds-card:nth-child(9) { animation-delay: 0.144s; }
  .ds-drop-grid .ds-card:nth-child(10) { animation-delay: 0.162s; }
  .ds-drop-grid .ds-card:nth-child(11) { animation-delay: 0.180s; }
  .ds-drop-grid .ds-card:nth-child(12) { animation-delay: 0.198s; }
  .ds-drop-grid .ds-card:nth-child(13) { animation-delay: 0.216s; }
  .ds-drop-grid .ds-card:nth-child(14) { animation-delay: 0.234s; }
  .ds-drop-grid .ds-card:nth-child(15) { animation-delay: 0.252s; }
  .ds-drop-grid .ds-card:nth-child(16) { animation-delay: 0.270s; }
  .ds-drop-grid .ds-card:nth-child(17) { animation-delay: 0.288s; }
  .ds-drop-grid .ds-card:nth-child(18) { animation-delay: 0.306s; }
}
@keyframes dsIconPop { 0% { transform: scale(1); } 40% { transform: scale(1.2) rotate(-8deg); } 70% { transform: scale(.94) rotate(4deg); } 100% { transform: scale(1); } }
@keyframes dsCardIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ds-card, .ds-card-icon i { animation: none !important; } }

/* case study galleries: tall phone screenshots keep the same card height as the others (2026-10-27) */
.cs-shot img { width: 100%; max-height: 420px; object-fit: contain; object-position: top center; background: #eef2f6; }
.cs-mini b { color: #04707a; }   /* readable contrast on the light chip */
.breadcrumb-lite a { display: inline-flex; align-items: center; min-height: 44px; }   /* breadcrumb tap size on phones */
.breadcrumb-lite { align-items: center; }
/* case study readability (2026-10-27): step numbers, small labels and the struck-through before column */
.cs-num { color: #04707a; }
.eyebrow { color: #04707a; }
.cs-ba-row .before { color: #5f6e80; }

/* no sideways scroll on phones: wide-gap rows wider than the container padding (2026-10-31) */
@media (max-width: 575.98px) { .row.g-5 { --bs-gutter-x: 1.5rem; } }
/* tap sizes: review source links, contact panel links */
.rv-src { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; }
@media (max-width: 767.98px) { .contact-info-item a { display: inline-flex; align-items: center; min-height: 40px; } }
.contact-socials a, .bl-empty a { display: inline-flex; align-items: center; min-height: 40px; }
/* article readability and tap sizes (2026-10-31) */
.bl-cat { color: #04707a; }
@media (max-width: 767.98px) { .ds-prose a, .bl-toc a { display: inline-block; padding: 8px 0; margin: -8px 0; } }
.bl-share a { width: 44px; height: 44px; }

/* ---------- footer (2026-11-02): short navy card with our light logo, used on every page ---------- */
html body .site-footer.ft { padding: 24px 0 28px !important; background: #fff !important; border-top: 0 !important; color: #fff; }
.ft-card { padding: 52px 52px 0; border-radius: 28px; color: #fff; background: linear-gradient(135deg, #071a33 0%, #0b2545 62%, #0c3a55 100%); box-shadow: 0 24px 56px rgba(11, 37, 69, .16); overflow: hidden; }
.ft-top { display: grid; grid-template-columns: minmax(300px, 372px) 1fr; gap: 48px; padding-bottom: 40px; }
.ft-brand { padding-right: 40px; border-right: 1px solid rgba(255, 255, 255, .12); }
.ft-logo { display: inline-block; }
.ft-logo img { display: block; width: 200px; height: auto; transition: transform .3s ease; }
.ft-logo:hover img { transform: translateY(-2px); }
.ft-pitch { margin: 24px 0 10px; font-family: 'Space Grotesk', 'Inter', sans-serif; font-size: 1.4rem; font-weight: 700; line-height: 1.25; letter-spacing: -.02em; color: #fff; }
.ft-about { margin: 0; color: rgba(255, 255, 255, .78); font-size: .94rem; line-height: 1.6; }
.ft-btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.ft-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 16px; border-radius: 11px; white-space: nowrap; border: 1px solid rgba(255, 255, 255, .3); color: #fff; font-size: .92rem; font-weight: 700; text-decoration: none; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.ft-btn:hover { color: #fff; border-color: #fff; background: rgba(255, 255, 255, .08); transform: translateY(-2px); }
.ft-btn-main { background: #fff; border-color: #fff; color: #0b2545; }
.ft-btn-main:hover { background: #e6f7f8; color: #0b2545; }
.ft-btn i { transition: transform .2s ease; }
.ft-btn:hover i { transform: translateX(3px); }
.ft-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.35fr); gap: 28px; }
.ft-title { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; color: #fff; font-family: 'Inter', sans-serif; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; line-height: 1.3; }
.ft-title::before { content: ''; flex: 0 0 6px; height: 6px; border-radius: 50%; background: #2adce2; }
.ft-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.ft-col a { color: rgba(255, 255, 255, .78); font-size: .9rem; line-height: 1.35; text-decoration: none; transition: color .2s ease, padding-left .2s ease; }
.ft-col a:hover { color: #6fe4e9; padding-left: 3px; }
.ft-col a[href="services.html"], .ft-col a[href="industries.html"] { color: #6fe4e9; font-weight: 600; }
.ft-contact a, .ft-addr { display: flex; align-items: flex-start; gap: 9px; color: rgba(255, 255, 255, .78); font-size: .9rem; line-height: 1.4; overflow-wrap: anywhere; }
.ft-contact i { flex: 0 0 auto; margin-top: 1px; color: #6fe4e9; }
.ft-bottom { display: grid; grid-template-columns: minmax(0, 1.5fr) auto minmax(0, 1fr); align-items: center; gap: 18px; padding: 18px 0 20px; border-top: 1px solid rgba(255, 255, 255, .12); }
.ft-copy, .ft-slogan { margin: 0; color: rgba(255, 255, 255, .72); font-size: .82rem; line-height: 1.45; }
.ft-slogan { text-align: right; font-weight: 600; }
.ft-slogan span { color: #6fe4e9; }
.ft-social { display: flex; justify-content: center; gap: 8px; }
.ft-social a { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .22); color: #fff; font-size: 1rem; text-decoration: none; transition: background .2s ease, color .2s ease, transform .2s ease; }
.ft-social a:hover { background: #fff; color: #0b2545; transform: translateY(-2px); }
#lets-talk.hd-sec { padding-bottom: 40px; }
@media (max-width: 1199.98px) {
  .ft-top { grid-template-columns: 1fr; gap: 36px; }
  .ft-brand { padding-right: 0; border-right: 0; padding-bottom: 32px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
  .ft-about { max-width: 560px; }
}
@media (max-width: 767.98px) {
  html body .site-footer.ft { padding: 16px 0 88px !important; }   /* room for the floating WhatsApp and chat buttons */
  .ft-card { padding: 32px 22px 0; border-radius: 22px; }
  .ft-logo img { width: 170px; }
  .ft-pitch { font-size: 1.22rem; margin-top: 18px; }
  .ft-about { display: none; }
  .ft-btns { margin-top: 18px; }
  .ft-btn { flex: 1 1 140px; }
  .ft-cols { grid-template-columns: 1fr 1fr; gap: 28px 18px; }
  .ft-col a { display: flex; align-items: center; min-height: 40px; }
  .ft-col ul { gap: 0; }
  .ft-addr { padding: 9px 0; }
  .ft-bottom { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 12px; padding: 18px 0 22px; }
  .ft-slogan { text-align: center; }
  .ft-social a { width: 44px; height: 44px; }
}
/* near the footer: hide the chat hint so it never covers footer text */
body.at-footer .chat-welcome { opacity: 0 !important; visibility: hidden !important; }
@media (max-width: 767.98px) {
  /* floating buttons: smaller and stacked on the right, so left-aligned text and links stay readable */
  .whatsapp-float { left: auto !important; right: 16px !important; bottom: 80px !important; width: 48px !important; height: 48px !important; font-size: 23px !important; }
  .ds-chatbot { right: 14px !important; bottom: 14px !important; }
  .chat-launcher { width: 54px !important; height: 54px !important; }
  .back-to-top { right: 20px !important; bottom: 138px !important; width: 40px !important; height: 40px !important; }
  .chat-welcome { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .ft-card { padding: 40px 36px 0; }
  .ft-cols { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.55fr); gap: 20px; }
  .ft-bottom { grid-template-columns: 1fr auto; }
  .ft-copy-wrap { grid-column: 1 / -1; }
  .ft-social { justify-content: flex-start; }
}
@media (max-width: 1199.98px) {
  body.at-footer .whatsapp-float, body.at-footer .back-to-top { opacity: 0 !important; visibility: hidden !important; pointer-events: none; }   /* the footer has its own WhatsApp link */
  html body .site-footer.ft { padding-bottom: 88px !important; }
}
@media (max-width: 767.98px) {
  .ft-contact i { display: none; }
  .ft-contact a, .ft-addr { font-size: .86rem; overflow-wrap: normal; }
}
@media (max-width: 379.98px) { .ft-card { padding-left: 18px; padding-right: 18px; } .ft-cols { gap: 26px 12px; } .ft-contact a { font-size: .8rem; } .ft-addr { font-size: .8rem; } }

/* mobile header menu (2026-11-02): dims the page, scrolls inside, main buttons always in view, nothing floats over it */
html.ds-menu-lock .whatsapp-float, html.ds-menu-lock .ds-chatbot, html.ds-menu-lock .back-to-top { display: none !important; }
@media (max-width: 1199.98px) {
  .ds-nav2.menu-open::before { display: block; content: ""; position: fixed; inset: 0; z-index: -1; background: rgba(11, 27, 48, .55); }
  .ds-nav2.menu-open .ds-shell { background: #fff; }
  .ds-menu-wrap { max-height: calc(100vh - var(--ds-menu-top, 96px) - 14px); max-height: calc(100dvh - var(--ds-menu-top, 96px) - 14px); overscroll-behavior: contain; padding-bottom: 0; }
  .ds-sub-toggle { width: 44px; height: 44px; flex: 0 0 44px; }
  .ds-mobile-extra { position: sticky; bottom: 0; z-index: 2; gap: 8px; margin: 0 -2px; padding: 8px 4px 10px; background: #fff; box-shadow: 0 -12px 16px -14px rgba(11, 37, 69, .28); }
  .ds-mobile-extra .ds-phone { min-height: 44px; padding: 0 2px; justify-content: center; }
  .ds-mobile-extra .btn { flex: 1 1 0; min-width: 0; min-height: 48px; padding: 10px 8px; font-size: .88rem; white-space: nowrap; }
}
@media (min-width: 576px) and (max-width: 1199.98px) {
  .ds-mobile-extra { flex-wrap: nowrap; align-items: center; }
  .ds-mobile-extra .ds-phone { flex: 0 0 auto; padding-right: 10px; }
}
@media (max-width: 359.98px) { .ds-mobile-extra .btn i { display: none; } }

/* footer legal links (2026-11-02) */
.ft-legal { display: flex; flex-wrap: wrap; gap: 2px 16px; margin: 4px 0 0; padding: 0; list-style: none; font-size: .82rem; }
.ft-legal a { color: rgba(255, 255, 255, .78); text-decoration: underline; text-underline-offset: 3px; }
.ft-legal a:hover { color: #6fe4e9; }
@media (max-width: 767.98px) {
  .ft-legal { justify-content: center; }
  .ft-legal a { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (max-width: 991.98px) {
  body.at-calendar .whatsapp-float, body.at-calendar .ds-chatbot, body.at-calendar .back-to-top { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
}

/* cookie banner (2026-11-03): both buttons look the same, so rejecting is as easy as accepting */
.ds-cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 1070; max-width: 820px; margin: 0 auto; display: flex; align-items: center; gap: 22px; padding: 16px 20px; border-radius: 16px; background: #fff; color: #0b1b30; border: 1px solid #d7e1ea; box-shadow: 0 18px 50px rgba(11, 37, 69, .24); font-family: Inter, sans-serif; }
.ds-cookie[hidden] { display: none; }
.ds-cookie-text { flex: 1 1 auto; min-width: 0; }
.ds-cookie-text strong { display: block; font-size: .98rem; color: #0b1b30; }
.ds-cookie-text p { margin: 3px 0 0; color: #47586c; font-size: .88rem; line-height: 1.5; }
.ds-cookie-text a { color: #06757e; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.ds-cookie-btns { flex: 0 0 auto; display: flex; gap: 10px; }
.ds-cookie-btns button { min-width: 104px; min-height: 44px; padding: 8px 18px; border-radius: 11px; border: 1px solid #0b2545; background: #0b2545; color: #fff; font: 600 .92rem Inter, sans-serif; cursor: pointer; transition: background .2s ease, border-color .2s ease; }
.ds-cookie-btns button:hover { background: #06757e; border-color: #06757e; }
.ds-cookie-btns button:focus-visible { outline: 3px solid #06757e; outline-offset: 2px; }
.ft-legal button { padding: 0; border: 0; background: none; color: rgba(255, 255, 255, .78); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ft-legal button:hover { color: #6fe4e9; }
body.cookie-open .chat-welcome, html.ds-menu-lock .ds-cookie { display: none !important; }
@media (max-width: 1199.98px) {
  body.cookie-open .whatsapp-float, body.cookie-open .ds-chatbot, body.cookie-open .back-to-top { display: none !important; }
}
@media (max-width: 767.98px) {
  .ds-cookie { left: 0; right: 0; bottom: 0; max-width: none; flex-direction: column; align-items: stretch; gap: 12px; padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); border-radius: 16px 16px 0 0; border-width: 1px 0 0; }
  .ds-cookie-btns button { flex: 1 1 0; }
  .ft-legal button { min-height: 44px; }
}
@media print { .ds-cookie { display: none !important; } }
