/* LuxaLife FAQ — isolated shortcode design; no global header/footer overrides. */
.luxa-faq-template { background:var(--luxa-surface-alt, #fbf8f2); min-height:60vh; }
.luxa-faq-template__article { margin:0; padding:0; }
.luxa-faq { --faq-ink:var(--luxa-text, #24231f); --faq-muted:var(--luxa-muted, #6d685e); --faq-line:var(--luxa-border, #e9e2d7); --faq-accent:#7b5620; --faq-accent-dark:var(--luxa-dark-surface, #211c18); --faq-tint:var(--luxa-surface-alt, #fbf8f2); --faq-gold:var(--luxa-accent, #c6a25a); --faq-shadow:0 15px 42px rgba(53,42,27,.055); color:var(--faq-ink); background:var(--luxa-surface-alt, #fbf8f2); font-family:var(--luxa-font-body, inherit); font-size:15px; line-height:1.65; }
.luxa-faq * { box-sizing:border-box; }
.luxa-faq [hidden] { display:none !important; }
.luxa-faq button,.luxa-faq input { font:inherit; }
.luxa-faq button { cursor:pointer; }
.luxa-faq a { color:var(--faq-accent); }
.luxa-faq__hero { position:relative; z-index:3; overflow:visible; text-align:center; background:linear-gradient(122deg,#f5eee2 0%,#fbf9f5 58%,#f7f1e7 100%); border-bottom:1px solid var(--faq-line); padding:clamp(26px,3vw,38px) 20px; }
.luxa-faq__hero-inner { position:relative; z-index:1; max-width:740px; margin:0 auto; }
.luxa-faq__hero::after { content:""; position:absolute; top:-215px; right:0; clip-path:inset(215px 0 0 0); width:470px; height:470px; border-radius:50%; border:1px solid rgb(186 149 83 / .16); box-shadow:0 0 0 60px rgb(204 167 102 / .035),0 0 0 122px rgb(204 167 102 / .025); pointer-events:none; }
.luxa-faq__eyebrow { display:inline-flex; align-items:center; justify-content:center; gap:12px; color:var(--faq-accent); padding:0; border:0; background:transparent; font-size:12px; line-height:1.5; letter-spacing:.14em; text-transform:uppercase; font-weight:700; margin:0 !important; }
.luxa-faq__eyebrow::before { content:""; display:inline-block; width:28px; height:1px; background:var(--faq-gold); flex:none; }
.luxa-faq__hero h1 { font-family:inherit; font-size:clamp(35px,5vw,57px); font-weight:700; letter-spacing:-.042em; line-height:1.12; margin:12px 0 8px; color:var(--faq-ink); }
.luxa-faq__hero-intro { color:var(--faq-muted); font-size:16px; max-width:560px; margin:0 auto 18px !important; line-height:1.7; }
.luxa-faq__search { height:60px; background:#fff; display:flex; align-items:center; gap:13px; border:1px solid #e4d9c7; max-width:none; width:100%; margin:0; padding:0 19px; border-radius:12px; box-shadow:0 10px 30px rgba(53,42,27,.07); text-align:left; }
.luxa-faq__search svg { width:20px; height:20px; color:var(--faq-accent); flex:none; }
.luxa-faq__search input[type=search] { border:0; outline:0; box-shadow:none; background:transparent; min-width:0; width:100%; font-size:15px; padding:0; color:var(--faq-ink); }
.luxa-faq__search input[type=search]:focus { outline:0; box-shadow:none; }
.luxa-faq__search:focus-within { border-color:var(--faq-gold); box-shadow:0 0 0 3px rgb(198 162 90 / .15); }
.luxa-faq__search input::placeholder { color:#8d8478; opacity:1; }
.luxa-faq__search kbd { font:11px sans-serif; color:#877f72; border:1px solid var(--faq-line); background:#fffdfa; border-radius:5px; padding:3px 6px; }
.luxa-faq__shell { position:relative; z-index:1; max-width:1180px; padding:34px 24px 80px; margin:0 auto; }
.luxa-faq__section-label { text-transform:uppercase; color:var(--faq-accent); font-size:11px; font-weight:750; letter-spacing:1.5px; line-height:1.4; margin:0 0 8px !important; }
.luxa-faq__section-heading { color:var(--faq-ink); font-size:27px; font-weight:700; letter-spacing:-.025em; line-height:1.25; margin:0 0 23px; }
.luxa-faq__topics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.luxa-faq__topic { border:1px solid var(--faq-line); color:var(--faq-ink); background:#fff; border-radius:14px; min-height:115px; padding:19px; display:flex; align-items:center; text-align:left; gap:14px; box-shadow:var(--faq-shadow); transition:border-color .2s,transform .2s,box-shadow .2s; }
.luxa-faq__topic:hover,.luxa-faq__topic:focus-visible,.luxa-faq__topic.is-active { background:#fff; border-color:var(--faq-gold); box-shadow:0 12px 28px rgba(79,57,31,.095); }
.luxa-faq__topic:hover { transform:translateY(-1px); }
.luxa-faq__topic.is-active { background:#fffaf1; }
.luxa-faq__topic strong { display:block; font-size:14px; line-height:1.5; font-weight:700; }
.luxa-faq__topic small { display:block; font-size:12px; color:var(--faq-muted); margin-top:3px; }
.luxa-faq__icon { width:45px; height:45px; flex:none; border-radius:12px; display:grid; place-items:center; background:var(--faq-tint); color:var(--faq-accent); }
.luxa-faq__icon svg { width:22px; height:22px; stroke-width:1.65; }
.luxa-faq__reset { display:block; margin:19px 0 45px; padding:0; border:0; background:none; font-size:13px; font-weight:700; color:var(--faq-accent); }
.luxa-faq__layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:35px; margin-top:45px; scroll-margin-top:24px; }
.luxa-faq__reset:not([hidden]) + .luxa-faq__layout { margin-top:0; }
.luxa-faq__sidebar { position:sticky; top:24px; align-self:start; background:#fff; border:1px solid var(--faq-line); border-radius:14px; padding:20px; }
.luxa-faq__sidebar strong { display:block; font-size:13px; margin-bottom:12px; }
.luxa-faq__sidebar a { display:block; font-size:13px; color:#73695c; text-decoration:none; padding:8px 0; }
.luxa-faq__sidebar a:hover { color:var(--faq-accent); }
.luxa-faq__content { min-width:0; }
.luxa-faq__group { scroll-margin-top:24px; margin:0 0 32px; }
.luxa-faq__group-heading { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.luxa-faq__group-heading .luxa-faq__icon { width:38px; height:38px; border-radius:10px; }
.luxa-faq__group-heading svg { width:19px; height:19px; }
.luxa-faq__group h2 { color:var(--faq-ink); font-size:22px; font-weight:700; letter-spacing:-.025em; margin:0; line-height:1.3; }
.luxa-faq__box { background:#fff; border:1px solid var(--faq-line); border-radius:14px; overflow:hidden; box-shadow:var(--faq-shadow); }
.luxa-faq__item + .luxa-faq__item { border-top:1px solid var(--faq-line); }
.luxa-faq__item summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:19px 22px; min-height:66px; cursor:pointer; font-size:14px; line-height:1.5; font-weight:650; color:var(--faq-ink); }
.luxa-faq__item summary::-webkit-details-marker { display:none; }
.luxa-faq__item summary::marker { content:''; }
.luxa-faq__item summary:hover { color:var(--faq-accent); }
.luxa-faq__item summary:focus-visible,.luxa-faq__topic:focus-visible,.luxa-faq__reset:focus-visible,.luxa-faq__contact-button:focus-visible { outline:2px solid var(--faq-accent); outline-offset:-3px; }
.luxa-faq__plus { width:26px; height:26px; border-radius:50%; background:#f7f2e9; flex:none; display:grid; place-items:center; color:var(--faq-accent); font-weight:400; font-size:20px; line-height:1; transition:transform .15s; }
.luxa-faq__item[open] .luxa-faq__plus { transform:rotate(45deg); background:var(--faq-tint); }
.luxa-faq__answer { color:#6d685e; font-size:14px; line-height:1.8; padding:0 50px 20px 22px; }
.luxa-faq__answer p { margin:0 0 9px; }
.luxa-faq__answer p:last-child { margin-bottom:0; }
.luxa-faq__answer a { color:var(--faq-accent); text-decoration:underline; text-underline-offset:3px; }
.luxa-faq__empty { background:#fff; border:1px solid var(--faq-line); border-radius:14px; padding:35px; text-align:center; }
.luxa-faq__empty h3 { margin:0 0 8px; font-size:20px; }
.luxa-faq__empty p { margin:0; color:var(--faq-muted); }
.luxa-faq__support { margin-top:36px; background:var(--faq-accent-dark); color:var(--luxa-dark-text, #f8f4e9); border:1px solid var(--luxa-dark-border, #48443c); border-radius:18px; padding:36px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.luxa-faq__support .luxa-faq__section-label { color:var(--luxa-dark-accent, #d6b66f); }
.luxa-faq__support h2 { color:var(--luxa-dark-text, #f8f4e9); font-size:26px; font-weight:700; letter-spacing:-.02em; line-height:1.25; margin:3px 0 8px; }
.luxa-faq__support p:not(.luxa-faq__section-label) { color:var(--luxa-dark-muted, #c5bfb3); margin:0; font-size:14px; }
.luxa-faq__contact-button { background:var(--faq-gold); color:var(--luxa-accent-contrast, #211f1b) !important; border:1px solid var(--faq-gold); border-radius:9px; padding:13px 21px; display:inline-flex; white-space:nowrap; text-decoration:none !important; font-size:13px; font-weight:750; }
.luxa-faq__contact-button:hover { background:var(--luxa-accent-hover, #d5b570); border-color:var(--luxa-accent-hover, #d5b570); }
@media(max-width:850px){ .luxa-faq__topics{grid-template-columns:repeat(2,minmax(0,1fr))} .luxa-faq__layout{grid-template-columns:1fr} .luxa-faq__sidebar{display:none} .luxa-faq__support{flex-direction:column;align-items:flex-start} }
@media(max-width:520px){ .luxa-faq__hero{padding:28px 19px 30px} .luxa-faq__hero h1{letter-spacing:-.03em} .luxa-faq__shell{padding:28px 18px 55px} .luxa-faq__topics{gap:9px} .luxa-faq__topic{gap:9px;min-height:90px;padding:12px 10px;border-radius:11px} .luxa-faq__topic strong{font-size:12px} .luxa-faq__topic small{font-size:11px} .luxa-faq__icon{width:37px;height:37px;border-radius:9px} .luxa-faq__icon svg{width:19px;height:19px} .luxa-faq__section-heading{font-size:23px} .luxa-faq__group h2{font-size:20px} .luxa-faq__item summary{padding:17px 16px;font-size:13px} .luxa-faq__answer{padding:0 19px 18px 16px;font-size:13px} .luxa-faq__search{height:54px} .luxa-faq__search kbd{display:none} .luxa-faq__support{padding:26px} .luxa-faq__support h2{font-size:23px} }
@media(prefers-reduced-motion:reduce){.luxa-faq__topic,.luxa-faq__plus{transition:none}}

/* Instant-answer search: results are anchored below the input, never below the
   category grid. No FAQ content is hidden from HTML or schema crawlers. */
.luxa-faq__search-area { position:relative; max-width:640px; margin:0 auto; }
.luxa-faq__suggestions {
  position:absolute; top:calc(100% + 8px); left:0; right:0; z-index:50;
  overflow-y:auto; overscroll-behavior:contain;
  max-height:min(445px, 58dvh);
  background:#fffdfa; border:1px solid var(--faq-line); border-radius:14px;
  box-shadow:0 24px 58px rgba(39,31,22,.17);
  text-align:left; color:var(--faq-ink);
}
.luxa-faq__suggestions-header {
  position:sticky; top:0; z-index:1; display:flex; align-items:center;
  justify-content:space-between; gap:12px; padding:12px 18px;
  background:#faf6ef; border-bottom:1px solid var(--faq-line);
}
.luxa-faq__suggestions-header strong { font-size:13px; font-weight:750; color:var(--faq-ink); }
.luxa-faq__suggestions-header span { color:var(--faq-muted); font-size:12px; }
.luxa-faq__suggestion { padding:15px 19px 16px; }
.luxa-faq__suggestion + .luxa-faq__suggestion { border-top:1px solid var(--faq-line); }
.luxa-faq__suggestion-category {
  display:block; color:var(--faq-accent); font-size:10px; font-weight:750;
  line-height:1.4; letter-spacing:.09em; text-transform:uppercase; margin-bottom:4px;
}
.luxa-faq__suggestion-title {
  color:var(--faq-ink); font-size:14px; font-weight:750; line-height:1.5;
  margin:0 0 5px; letter-spacing:normal;
}
.luxa-faq__suggestion-answer { font-size:13px; line-height:1.65; color:var(--faq-muted); }
.luxa-faq__suggestion-answer p { margin:0 0 6px; }
.luxa-faq__suggestion-answer p:last-child { margin-bottom:0; }
.luxa-faq__suggestion-answer a { color:var(--faq-accent); text-underline-offset:3px; }
.luxa-faq__suggestion-jump {
  display:inline-block; margin-top:8px; font-size:12px; font-weight:700;
  color:var(--faq-accent); text-decoration:none;
}
.luxa-faq__suggestion-jump:hover { text-decoration:underline; text-underline-offset:3px; }
.luxa-faq__suggestion-jump:focus-visible,
.luxa-faq__suggestions-all:focus-visible {
  outline:2px solid var(--luxa-focus, #aa7c32); outline-offset:2px;
}
.luxa-faq__suggestions-empty { padding:19px; margin:0; color:var(--faq-muted); font-size:13px; }
.luxa-faq__suggestions-all {
  display:block; width:100%; border:0; border-top:1px solid var(--faq-line);
  background:#faf6ef; padding:12px 18px; text-align:center;
  color:var(--faq-accent); font-size:13px; font-weight:750;
}
.luxa-faq__suggestions-all:hover { background:#f5ead8; }
@media(max-width:520px) {
  .luxa-faq__hero::after { display:none; }
  .luxa-faq__suggestions { max-height:min(405px, 48dvh); border-radius:12px; }
  .luxa-faq__suggestion { padding:12px 14px 13px; }
  .luxa-faq__suggestions-header { padding:11px 14px; }
  .luxa-faq__suggestion-title { font-size:13px; }
  .luxa-faq__suggestion-answer { font-size:12px; }
}
