/*
 * site.css — design B ("Combinada"), approved by Dra. Letícia on 2026-10-01.
 *
 * Shared chrome (header, footer, floating WhatsApp, cookie banner) for every
 * page, plus the home page sections. Mobile first: most visits are on phones,
 * so base rules target ~360-430px and min-width queries add the desktop layout.
 *
 * Every class is prefixed `lc-` so nothing collides with Bootstrap 4 or the
 * vendored template (style.css), which still styles the condition pages.
 * Loaded after theme.css; colour and type tokens live in theme.css.
 */

/* ------------------------------------------------------------------ */
/* Fonts: self-hosted, latin subset, variable weight                   */
/* ------------------------------------------------------------------ */

@font-face {
  font-family: "Red Hat Display";
  font-style: normal;
  font-weight: 500 900;
  font-display: swap;
  src: url("../fonts/redhat-display-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Red Hat Text";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/redhat-text-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url("../fonts/archivo-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Metric-matched fallbacks so text keeps its box while the web fonts load
   (CLS was 0.48 in field data). Values measured in Chrome against Arimo,
   which is metrically identical to Arial, on 2026-10-01. */
@font-face {
  font-family: "Red Hat Display Fallback";
  src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Arimo"), local("Helvetica Neue"), local("Helvetica"), local("Roboto");
  size-adjust: 95.04%;
  ascent-override: 107.32%;
  descent-override: 32.62%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Red Hat Text Fallback";
  src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Arimo"), local("Helvetica Neue"), local("Helvetica"), local("Roboto");
  size-adjust: 98.78%;
  ascent-override: 103.26%;
  descent-override: 31.38%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Archivo Fallback";
  src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Arimo"), local("Helvetica Neue"), local("Helvetica"), local("Roboto");
  size-adjust: 102.98%;
  ascent-override: 85.45%;
  descent-override: 20.39%;
  line-gap-override: 0%;
}

/* ------------------------------------------------------------------ */
/* Local tokens (palette values come from theme.css)                   */
/* ------------------------------------------------------------------ */

:root {
  --lc-ink: var(--color-text);            /* #5a5479: 7.0:1 on white, 6.2:1 on cream, 5.9:1 on lav-100 */
  --lc-ink-on-gold: var(--color-ink-on-gold); /* #4a4360: 4.6:1 on gold */
  --lc-lav: var(--color-primary);         /* #8781a3: large text, marks, rules */
  --lc-lav-100: #ece9f2;
  --lc-lav-200: #d6d2e3;
  --lc-cream: var(--color-bg-cream);      /* #f5efe6 */
  --lc-gold: var(--color-accent);         /* #e0af6a */
  --lc-gold-200: #f6e6c9;
  --lc-gap: 10px;
  --lc-radius: 14px;
  --lc-ease: cubic-bezier(.16, 1, .3, 1);
  --lc-header-h: 68px;
  --lc-label: "Archivo", "Archivo Fallback", system-ui, sans-serif;
  --lc-gutter: 16px;
}
@media (min-width: 1000px) { :root { --lc-header-h: 80px; } }

html { scroll-padding-top: calc(var(--lc-header-h) + 12px); -webkit-text-size-adjust: 100%; }
body { -webkit-tap-highlight-color: rgba(135, 129, 163, .18); }
::selection { background: var(--lc-gold); color: var(--lc-ink-on-gold); }
/* Lock page scroll while the phone menu is open. */
body:has(.lc-menu[open]) { overflow: hidden; }

.lc-wrap { width: min(1200px, 100% - 2 * var(--lc-gutter)); margin-inline: auto; }

/* Buttons: square, uppercase, from the cover. Min 48px tall for thumbs. */
.lc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 14px 24px;
  font-family: var(--lc-label); font-weight: 800; font-size: .9rem; line-height: 1.2;
  text-transform: uppercase; letter-spacing: .04em; text-decoration: none; text-align: center;
  border: 2px solid transparent; border-radius: 0;
  transition: transform .3s var(--lc-ease), background-color .25s, color .25s, border-color .25s;
}
.lc-btn:hover, .lc-btn:focus { text-decoration: none; }
.lc-btn-gold { background: var(--lc-gold); color: var(--lc-ink-on-gold); }
.lc-btn-gold:hover, .lc-btn-gold:focus { color: var(--lc-ink-on-gold); }
.lc-btn-line { border-color: var(--lc-ink); color: var(--lc-ink); background: transparent; }
.lc-btn-line:hover, .lc-btn-line:focus { color: var(--lc-ink); }
@media (hover: hover) {
  .lc-btn:hover { transform: translateY(-2px); }
  .lc-btn-gold:hover { background: #e9bd82; }
  .lc-btn-line:hover { background: var(--lc-ink); color: #fff; }
}
.lc-btn svg { width: 22px; height: 22px; flex: none; }

/* ------------------------------------------------------------------ */
/* Header + navigation                                                 */
/* ------------------------------------------------------------------ */

.lc-header {
  position: sticky; top: 0; z-index: 1000;
  /* Solid, not frosted: backdrop-filter would make the header the containing
     block for position:fixed descendants and trap the phone menu panel inside
     the 60px header (seen on 2026-10-01). */
  background: #fff;
  border-bottom: 1px solid var(--lc-lav-200);
}
.lc-header .lc-wrap { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: var(--lc-header-h); }
.lc-brand { display: flex; align-items: center; min-height: 48px; flex: none; }
.lc-brand img { height: 46px; width: auto; }
@media (min-width: 1000px) { .lc-brand img { height: 54px; } }

.lc-nav { display: none; }
.lc-nav > ul { display: flex; gap: 2px; }
.lc-nav li { position: relative; }
.lc-nav a {
  display: block; padding: 10px 11px; text-decoration: none;
  font-family: var(--lc-label); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; font-size: .76rem;
  color: var(--lc-ink); position: relative;
}
.lc-nav > ul > li > a::after {
  content: ""; position: absolute; left: 11px; right: 11px; bottom: 6px; height: 3px; background: var(--lc-gold);
  transform: scaleX(0); transform-origin: left; transition: transform .3s var(--lc-ease);
}
.lc-nav > ul > li > a:hover::after, .lc-nav > ul > li:focus-within > a::after, .lc-nav a[aria-current="page"]::after { transform: scaleX(1); }
.lc-nav a:hover, .lc-nav a:focus { color: var(--lc-ink); text-decoration: none; }
.lc-sub {
  position: absolute; left: 0; top: calc(100% + 8px); min-width: 290px;
  background: #fff; border: 1px solid var(--lc-lav-200); padding: 8px; display: grid; gap: 2px;
  box-shadow: 0 22px 44px -22px rgba(43, 36, 56, .4);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .25s var(--lc-ease), transform .25s var(--lc-ease), visibility 0s .25s;
}
.lc-nav li:hover > .lc-sub, .lc-nav li:focus-within > .lc-sub { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.lc-sub a { font-family: inherit; text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 400; padding: 8px 10px; }
.lc-sub a b { display: block; font-weight: 700; }
.lc-sub a span { display: block; font-size: .85rem; }
.lc-sub a:hover { background: var(--lc-lav-100); }
.lc-head-cta { display: none; }

/* Phone menu: native <details>, works without JS. */
.lc-menu > summary {
  list-style: none; cursor: pointer; width: 48px; height: 48px; display: grid; place-items: center;
  border: 1px solid var(--lc-lav-200); color: var(--lc-ink);
}
.lc-menu > summary::-webkit-details-marker { display: none; }
.lc-menu > summary svg { width: 24px; height: 24px; }
.lc-menu > summary .lc-close { display: none; }
.lc-menu[open] > summary { background: var(--lc-gold); border-color: var(--lc-gold); color: var(--lc-ink-on-gold); }
.lc-menu[open] > summary .lc-open { display: none; }
.lc-menu[open] > summary .lc-close { display: block; }
.lc-panel {
  position: fixed; left: 0; right: 0; top: var(--lc-header-h); bottom: 0; z-index: 999;
  background: var(--lc-cream); overflow-y: auto; overscroll-behavior: contain;
  padding: 8px var(--lc-gutter) calc(24px + env(safe-area-inset-bottom));
}
.lc-panel > a {
  display: flex; align-items: center; min-height: 56px; padding: 0 4px; border-bottom: 1px solid var(--lc-lav-200);
  text-decoration: none; color: var(--lc-ink);
  font-family: var(--lc-label); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: 1rem;
}
.lc-panel .lc-group { padding: 20px 4px 6px; font-family: var(--lc-label); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; color: var(--lc-ink); }
.lc-panel .lc-conds { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.lc-panel .lc-conds a { display: flex; align-items: center; min-height: 48px; padding: 0 4px; border-bottom: 1px solid var(--lc-lav-200); text-decoration: none; color: var(--lc-ink); font-size: 1rem; }
.lc-panel .lc-btn { display: flex; width: auto; margin-top: 24px; border-bottom: 2px solid transparent; }

@media (min-width: 1000px) {
  .lc-nav { display: block; }
  .lc-menu { display: none; }
  .lc-head-cta { display: inline-flex; min-height: 44px; padding: 10px 20px; }
}

/* ------------------------------------------------------------------ */
/* Home: cover                                                          */
/* ------------------------------------------------------------------ */

.lc-cover { background: var(--lc-cream); }
.lc-cover-grid { display: grid; grid-template-columns: 1fr; }
.lc-cover-copy { padding: 32px var(--lc-gutter) 36px; }
.lc-sleeve {
  font-family: var(--lc-label); font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em;
  color: var(--lc-ink); margin: 0 0 18px; line-height: 1.5;
}
.lc-sleeve::before { content: ""; display: block; width: 40px; height: 3px; background: var(--lc-gold); margin-bottom: 12px; }
.lc-cover h1 {
  font-family: var(--font-heading); font-weight: 700; color: var(--lc-ink);
  font-size: clamp(2rem, 1.3rem + 3vw, 3.4rem); line-height: 1.08; letter-spacing: -0.02em;
  max-width: 16ch; margin: 0; text-wrap: balance;
}
.lc-lead { color: var(--lc-ink); font-size: clamp(1.0625rem, 1rem + .45vw, 1.3rem); line-height: 1.55; max-width: 46ch; margin: 18px 0 0; }
.lc-facts { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 12px 28px; margin: 24px 0 0; }
.lc-facts div { font-family: var(--lc-label); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; font-size: .8rem; color: var(--lc-ink); line-height: 1.3; }
.lc-facts b { display: block; font-family: var(--font-heading); font-weight: 700; font-size: clamp(1.3rem, 1rem + 1.6vw, 1.8rem); letter-spacing: -0.02em; text-transform: none; line-height: 1.1; margin-bottom: 2px; }
.lc-actions { display: grid; gap: 10px; margin-top: 26px; }
/* Cover portrait.
   On phones it sits below the copy. To keep a sliver of it (her eyes, on an
   iPhone 13 Pro Max) from showing at the bottom of the first screen, the lead
   paragraph is longer and scales with the screen WIDTH (wider phones are also
   the taller ones), so the copy reaches past the fold. Never size this by
   viewport height: 100svh flickered in Safari and left empty space (#28), and a
   byline portrait repeated the name and photo (#30); both were rejected. */
.lc-photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--lc-lav-200); }
.lc-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; }
.lc-photo::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--lc-gold); z-index: 1; }
@media (max-width: 899px) {
  .lc-lead { font-size: clamp(17px, calc(5.88vw - 2.7px), 23px); line-height: 1.6; margin-top: 20px; }
  .lc-cover-copy { padding-bottom: 52px; }
}
@media (min-width: 560px) {
  .lc-actions { display: flex; flex-wrap: wrap; gap: 12px 16px; }
  .lc-photo { aspect-ratio: 3 / 2; }
  .lc-photo img { object-position: 50% 20%; }
}
@media (min-width: 900px) {
  .lc-cover-grid { grid-template-columns: 7fr 5fr; padding-left: max(var(--lc-gutter), calc((100% - 1200px) / 2)); }
  .lc-cover-copy { padding: clamp(48px, 6vw, 88px) 48px clamp(48px, 5vw, 72px) 0; }
  .lc-photo { aspect-ratio: auto; min-height: 100%; }
  .lc-sleeve { display: flex; align-items: center; gap: 16px; font-size: .78rem; letter-spacing: .12em; }
  .lc-sleeve::before { margin: 0; flex: none; }
}

/* ------------------------------------------------------------------ */
/* Home: sections                                                       */
/* ------------------------------------------------------------------ */

.lc-section { padding: 48px 0; }
.lc-section + .lc-section { padding-top: 0; }
@media (min-width: 900px) { .lc-section { padding: 96px 0; } }
.lc-h2 {
  font-family: var(--font-heading); font-weight: 700; color: var(--lc-ink);
  font-size: clamp(1.65rem, 1.2rem + 2vw, 2.75rem); line-height: 1.1; letter-spacing: -0.02em; margin: 0; text-wrap: balance;
}
.lc-mark { display: inline-block; width: 12px; height: 12px; background: var(--lc-lav); border-radius: 4px; margin-right: 10px; vertical-align: .2em; }
.lc-intro { color: var(--lc-ink); max-width: 62ch; margin: 12px 0 0; }
.lc-prose { color: var(--lc-ink); max-width: 66ch; }
.lc-prose p { margin: 0; }
.lc-prose p + p { margin-top: 1em; }
.lc-two { display: grid; gap: 20px; }
@media (min-width: 900px) {
  .lc-two { grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; }
  .lc-two .lc-h2 { position: sticky; top: calc(var(--lc-header-h) + 28px); }
}
.lc-cred { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--lc-lav-200); display: grid; gap: 4px; font-size: .95rem; color: var(--lc-ink); }

/* Condition tiles */
.lc-conds-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lc-gap); margin-top: 24px; }
.lc-cond {
  display: flex; flex-direction: column; justify-content: space-between; gap: 16px; min-height: 128px; padding: 16px;
  border-radius: var(--lc-radius); background: var(--lc-lav-100); color: var(--lc-ink); text-decoration: none;
  transition: transform .35s var(--lc-ease), background-color .25s, border-color .25s;
}
.lc-cond:hover, .lc-cond:focus { color: var(--lc-ink); text-decoration: none; }
.lc-cond:nth-child(4n+2) { background: var(--lc-gold-200); }
.lc-cond:nth-child(4n+3) { background: var(--lc-cream); }
.lc-cond:nth-child(4n+4) { background: #fff; border: 2px solid var(--lc-lav-200); }
.lc-cond b { display: block; font-family: var(--font-heading); font-weight: 700; font-size: 1.1rem; line-height: 1.15; letter-spacing: -0.01em; overflow-wrap: break-word; hyphens: auto; }
.lc-cond span { display: block; font-size: .875rem; line-height: 1.4; margin-top: 4px; }
.lc-cond svg { width: 20px; height: 20px; align-self: flex-end; transition: transform .35s var(--lc-ease); }
@media (hover: hover) {
  .lc-cond:hover { transform: translateY(-3px); }
  .lc-cond:hover svg { transform: translateX(4px); }
  .lc-cond:nth-child(4n+1):hover { background: var(--lc-lav-200); }
  .lc-cond:nth-child(4n+2):hover { background: #efd8ab; }
  .lc-cond:nth-child(4n+3):hover { background: #ede3d3; }
  .lc-cond:nth-child(4n+4):hover { border-color: var(--lc-lav); }
}
@media (max-width: 359px) { .lc-conds-grid { grid-template-columns: 1fr; } .lc-cond { min-height: 0; } }
@media (min-width: 900px) {
  .lc-conds-grid { grid-template-columns: repeat(4, 1fr); }
  .lc-cond { min-height: 150px; padding: 20px; }
  .lc-cond b { font-size: clamp(1.15rem, 1rem + .6vw, 1.5rem); }
}

/* Como funciona */
.lc-band { background: var(--lc-lav-100); border-radius: var(--lc-radius); padding: 28px 20px; }
@media (min-width: 900px) { .lc-band { padding: 48px; } }
.lc-band .lc-intro { font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); margin-bottom: 28px; }
.lc-cols { display: grid; gap: 22px; }
.lc-cols > div { padding-top: 14px; border-top: 3px solid var(--lc-lav); }
.lc-cols h3 { font-family: var(--font-sans); font-size: 1.1rem; font-weight: 700; color: var(--lc-ink); margin: 0 0 6px; line-height: 1.3; }
.lc-cols p { color: var(--lc-ink); font-size: 1rem; margin: 0; }
@media (min-width: 800px) { .lc-cols { grid-template-columns: repeat(3, 1fr); gap: 32px; } }

/* Testimonials */
.lc-quotes { display: grid; gap: var(--lc-gap); margin-top: 24px; }
.lc-quote { margin: 0; border-radius: var(--lc-radius); padding: 22px; background: var(--lc-lav-100); }
.lc-quote:nth-child(2) { background: var(--lc-cream); }
.lc-quote:nth-child(3) { background: var(--lc-gold-200); }
.lc-quote blockquote { margin: 0; }
.lc-quote p { font-weight: 500; font-size: 1.125rem; line-height: 1.5; color: var(--lc-ink); margin: 0; }
.lc-quote figcaption { margin-top: 14px; font-size: .9rem; color: var(--lc-ink); }
@media (min-width: 800px) { .lc-quotes { grid-template-columns: repeat(3, 1fr); } .lc-quote { padding: 28px; } .lc-quote p { font-size: 1.2rem; } }

/* Quando procurar */
.lc-signs { margin: 20px 0 0; padding: 0; list-style: none; }
.lc-signs li { break-inside: avoid; padding: 12px 0 12px 24px; position: relative; color: var(--lc-ink); border-bottom: 1px solid var(--lc-lav-200); line-height: 1.5; }
.lc-signs li::before { content: ""; position: absolute; left: 0; top: 19px; width: 11px; height: 11px; background: var(--lc-lav); border-radius: 3px; }
@media (min-width: 800px) { .lc-signs { columns: 2; column-gap: 40px; } }

/* Closing call to action */
.lc-cta { background: var(--lc-cream); border-radius: var(--lc-radius); padding: 28px 20px; display: grid; gap: 22px; }
.lc-cta p { color: var(--lc-ink); max-width: 50ch; margin: 12px 0 0; }
.lc-cta .lc-btn { width: 100%; }
@media (min-width: 900px) {
  .lc-cta { grid-template-columns: 1fr auto; align-items: center; padding: 56px; }
  .lc-cta .lc-btn { width: auto; }
  .lc-cta .lc-h2 { max-width: 20ch; }
}

/* ------------------------------------------------------------------ */
/* Footer                                                               */
/* ------------------------------------------------------------------ */

/* style.css floats every <footer> left at 100% width; neutralise it here. */
footer.lc-footer { float: none; clear: both; width: auto; position: static; background: var(--lc-lav-100); color: var(--lc-ink); padding: 44px 0 calc(28px + env(safe-area-inset-bottom)); margin-top: 16px; font-size: .95rem; }
/* Phones: one column ordered by what a visitor needs on a phone (brand,
   contact, conditions, pages); link lists are balanced two-column grids.
   Desktop (>= 800px): four columns. The closing credits are centred at every size. */
.lc-fcols { display: grid; grid-template-columns: 1fr; gap: 0; grid-template-areas: "brand" "contact" "conds" "pages"; }
.lc-f-brand { grid-area: brand; text-align: center; padding-bottom: 24px; }
.lc-f-contact { grid-area: contact; }
.lc-f-conds { grid-area: conds; }
.lc-f-pages { grid-area: pages; }
.lc-f-contact, .lc-f-conds, .lc-f-pages { padding: 22px 0; border-top: 1px solid var(--lc-lav-200); }
.lc-f-brand img { display: block; height: 40px; width: auto; margin: 0 auto 12px; }
.lc-f-brand p { margin: 0 auto; max-width: 30ch; color: var(--lc-ink); line-height: 1.5; }
.lc-fcols h2 { font-family: var(--lc-label); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; color: var(--lc-ink); margin: 0 0 8px; line-height: 1.4; }
.lc-fcols ul { margin: 0; padding: 0; list-style: none; }
.lc-fcols a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 0; color: var(--lc-ink); text-decoration: none; line-height: 1.35; }
.lc-fcols a:hover, .lc-fcols a:focus { color: var(--lc-ink); text-decoration: underline; }
.lc-fcols a svg { width: 20px; height: 20px; flex: none; }
.lc-fcols address { font-style: normal; }
.lc-f-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
.lc-fcols .lc-f-whats { display: flex; width: 100%; margin: 4px 0 6px; gap: 10px; color: var(--lc-ink-on-gold); text-decoration: none; }
.lc-fcols .lc-f-whats:hover, .lc-fcols .lc-f-whats:focus { color: var(--lc-ink-on-gold); text-decoration: none; }
.lc-f-list a { overflow-wrap: anywhere; }

.lc-fine { margin-top: 4px; padding-top: 22px; border-top: 1px solid var(--lc-lav-200); display: grid; gap: 14px; text-align: center; font-size: .875rem; color: var(--lc-ink); }
.lc-fine p { margin: 0; line-height: 1.55; }
.lc-fine span, .lc-fine strong { display: block; }
.lc-fine a { color: var(--lc-ink); text-decoration: underline; }

@media (min-width: 800px) {
  .lc-fcols { grid-template-columns: 1.3fr 1.1fr 1.3fr .9fr; gap: 0 32px; grid-template-areas: "brand contact conds pages"; }
  .lc-f-brand { text-align: left; padding-bottom: 0; }
  .lc-f-brand img { margin: 0 0 12px; }
  .lc-f-brand p { margin: 0; }
  .lc-f-contact, .lc-f-conds, .lc-f-pages { padding: 0; border-top: 0; }
  .lc-fcols a { min-height: 36px; padding: 4px 0; }
  .lc-fcols .lc-f-whats { width: auto; min-height: 44px; padding: 10px 18px; }
  .lc-f-pages .lc-f-grid { grid-template-columns: 1fr; }
  .lc-fine { margin-top: 36px; }
}

/* ------------------------------------------------------------------ */
/* Floating WhatsApp + cookie banner                                    */
/* ------------------------------------------------------------------ */

.lc-float {
  position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 998;
  width: 56px; height: 56px; border-radius: 999px; background: var(--lc-gold); color: var(--lc-ink-on-gold);
  display: grid; place-items: center; box-shadow: 0 12px 28px -12px rgba(43, 36, 56, .5);
  transition: transform .35s var(--lc-ease), bottom .35s var(--lc-ease);
}
.lc-float:hover, .lc-float:focus { color: var(--lc-ink-on-gold); }
.lc-float svg { width: 28px; height: 28px; }
@media (hover: hover) { .lc-float:hover { transform: translateY(-3px) scale(1.04); } }
@media (min-width: 900px) { .lc-float { width: 60px; height: 60px; right: 24px; bottom: 24px; } .lc-float svg { width: 30px; height: 30px; } }

.lc-cookie {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1001;
  background: #fff; color: var(--lc-ink); border-top: 1px solid var(--lc-lav-200);
  box-shadow: 0 -12px 32px -18px rgba(43, 36, 56, .45);
  padding: 14px var(--lc-gutter) calc(14px + env(safe-area-inset-bottom));
}
.lc-cookie[hidden] { display: none; }
.lc-cookie-inner { max-width: 1200px; margin: 0 auto; display: grid; gap: 12px; align-items: center; }
.lc-cookie p { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--lc-ink); }
.lc-cookie a { color: var(--lc-ink); text-decoration: underline; }
.lc-cookie .lc-btn { min-height: 44px; padding: 10px 22px; width: 100%; cursor: pointer; }
@media (min-width: 600px) {
  .lc-cookie-inner { grid-template-columns: 1fr auto; gap: 20px; }
  .lc-cookie .lc-btn { width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .lc-btn, .lc-cond, .lc-cond svg, .lc-float, .lc-sub, .lc-nav a::after { transition: none !important; }
}
