/* Learning Portuguese helper mascot — lightweight, WebView-safe and page-wide. */
.lp-mascot{
  --lp-mascot-bottom:calc(92px + env(safe-area-inset-bottom, 0px));
  position:fixed;
  z-index:9997;
  right:12px;
  bottom:var(--lp-mascot-bottom);
  width:190px;
  pointer-events:none;
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}


/* Do not let component display rules override the native hidden attribute. */
.lp-mascot [hidden]{
  display:none !important;
}

.lp-mascot-character,
.lp-mascot-minimised,
.lp-mascot-close,
.lp-mascot-dismiss{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  font:inherit;
}

.lp-mascot-character{
  width:190px;
  height:238px;
  padding:0;
  margin:0;
  background:transparent;
  cursor:grab;
  pointer-events:auto;
  touch-action:none;
  -webkit-tap-highlight-color:transparent;
  filter:drop-shadow(0 11px 14px rgba(6,44,61,.18));
}

.lp-mascot-dismiss{
  position:absolute;
  z-index:3;
  top:6px;
  right:8px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(8,63,76,.14);
  color:#587177;
  cursor:pointer;
  pointer-events:auto;
  font-size:20px;
  line-height:1;
  box-shadow:0 4px 12px rgba(6,44,61,.14);
  opacity:.92;
}

.lp-mascot-dismiss:hover,
.lp-mascot-dismiss:focus-visible{
  background:#ffffff;
  color:#083f4c;
  border-color:rgba(8,63,76,.22);
  opacity:1;
}

.lp-mascot-stage{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  transform-origin:50% 90%;
  animation:lpMascotIdle 3.4s ease-in-out infinite;
}

.lp-mascot-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
  user-select:none;
  -webkit-user-drag:none;
  opacity:0;
  transition:opacity .22s ease;
}

.lp-mascot-image.is-current{ opacity:1; }
.lp-mascot-image.is-next{ opacity:0; }
.lp-mascot.is-swapping .lp-mascot-image.is-current{ opacity:0; }
.lp-mascot.is-swapping .lp-mascot-image.is-next{ opacity:1; }

.lp-mascot-bubble{
  position:absolute;
  right:112px;
  bottom:150px;
  width:min(280px, calc(100vw - 36px));
  padding:15px 38px 15px 16px;
  border:1px solid rgba(8,63,76,.16);
  border-radius:18px 18px 4px 18px;
  background:rgba(255,255,255,.98);
  color:#123c46;
  box-shadow:0 12px 34px rgba(6,44,61,.18);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  pointer-events:auto;
  transform-origin:100% 100%;
  animation:lpMascotBubbleIn .2s ease-out both;
}

.lp-mascot-bubble::after{
  content:"";
  position:absolute;
  right:-8px;
  bottom:18px;
  width:16px;
  height:16px;
  background:inherit;
  border-right:1px solid rgba(8,63,76,.12);
  border-bottom:1px solid rgba(8,63,76,.12);
  transform:rotate(-45deg);
}

.lp-mascot-message{
  margin:0;
  font-size:14px;
  line-height:1.42;
  font-weight:650;
}

.lp-mascot-close{
  position:absolute;
  z-index:2;
  top:6px;
  right:7px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:999px;
  background:transparent;
  color:#587177;
  cursor:pointer;
  pointer-events:auto;
  font-size:23px;
  line-height:1;
}

.lp-mascot-close:hover,
.lp-mascot-close:focus-visible{
  background:#eef5f3;
  color:#083f4c;
}

.lp-mascot-minimised{
  position:absolute;
  right:0;
  bottom:0;
  width:52px;
  height:52px;
  padding:0;
  display:grid;
  place-items:center;
  border:1px solid rgba(8,63,76,.14);
  border-radius:999px;
  background:rgba(255,255,255,.98);
  color:#083f4c;
  box-shadow:0 8px 24px rgba(6,44,61,.18);
  cursor:grab;
  pointer-events:auto;
  touch-action:none;
  font-size:25px;
}

.lp-mascot.is-minimised{
  width:52px;
  height:52px;
}

.lp-mascot.is-minimised .lp-mascot-character,
.lp-mascot.is-minimised .lp-mascot-bubble,
.lp-mascot.is-minimised .lp-mascot-dismiss{
  display:none !important;
}

.lp-mascot.is-dragging .lp-mascot-character,
.lp-mascot.is-dragging .lp-mascot-minimised{
  cursor:grabbing;
}

.lp-mascot[data-state="celebrate"] .lp-mascot-stage{
  animation:lpMascotCelebrate .72s cubic-bezier(.2,.9,.2,1) 1, lpMascotIdle 3.4s ease-in-out .72s infinite;
}

.lp-mascot[data-state="think"] .lp-mascot-stage{
  animation:lpMascotThink 2.8s ease-in-out infinite;
}

.lp-mascot[data-state="listen"] .lp-mascot-stage{
  animation:lpMascotListen 2.4s ease-in-out infinite;
}

.lp-mascot[data-state^="point-"] .lp-mascot-stage{
  animation:lpMascotPoint 2.6s ease-in-out infinite;
}

body.menu-open .lp-mascot{
  display:none;
}

html.lp-web-theme.lp-theme-night .lp-mascot-bubble,
body.lp-native-android.lp-theme-night .lp-mascot-bubble,
html.lp-web-theme.lp-theme-night .lp-mascot-minimised,
body.lp-native-android.lp-theme-night .lp-mascot-minimised{
  border-color:rgba(255,255,255,.14);
  background:rgba(8,42,52,.97);
  color:#f3fbfb;
  box-shadow:0 12px 34px rgba(0,0,0,.36);
}

html.lp-web-theme.lp-theme-night .lp-mascot-bubble::after,
body.lp-native-android.lp-theme-night .lp-mascot-bubble::after{
  border-color:rgba(255,255,255,.1);
}

html.lp-web-theme.lp-theme-night .lp-mascot-close,
body.lp-native-android.lp-theme-night .lp-mascot-close{
  color:#d8e8e9;
}

html.lp-web-theme.lp-theme-night .lp-mascot-dismiss,
body.lp-native-android.lp-theme-night .lp-mascot-dismiss{
  background:rgba(8,42,52,.97);
  border-color:rgba(255,255,255,.14);
  color:#d8e8e9;
  box-shadow:0 10px 24px rgba(0,0,0,.32);
}

@keyframes lpMascotIdle{
  0%,100%{ transform:translateY(0) rotate(0deg) scale(1); }
  50%{ transform:translateY(-5px) rotate(-.35deg) scale(1.008); }
}

@keyframes lpMascotCelebrate{
  0%{ transform:translateY(0) scale(1); }
  35%{ transform:translateY(-14px) rotate(-2deg) scale(1.045); }
  65%{ transform:translateY(-4px) rotate(2deg) scale(1.02); }
  100%{ transform:translateY(0) scale(1); }
}

@keyframes lpMascotThink{
  0%,100%{ transform:translateY(0) rotate(0); }
  50%{ transform:translateY(-3px) rotate(-1deg); }
}

@keyframes lpMascotListen{
  0%,100%{ transform:translateX(0) translateY(0); }
  50%{ transform:translateX(-2px) translateY(-4px); }
}

@keyframes lpMascotPoint{
  0%,100%{ transform:translateY(0) scale(1); }
  50%{ transform:translateY(-4px) scale(1.012); }
}

@keyframes lpMascotBubbleIn{
  from{ opacity:0; transform:translateY(6px) scale(.97); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}

@media (max-width:760px){
  .lp-mascot{
    right:6px;
    width:142px;
  }

  .lp-mascot-character{
    width:142px;
    height:178px;
  }

  .lp-mascot-dismiss{
    top:4px;
    right:6px;
    width:28px;
    height:28px;
    font-size:18px;
  }

  .lp-mascot-bubble{
    right:92px;
    bottom:112px;
    width:min(238px, calc(100vw - 28px));
    padding:13px 35px 13px 14px;
  }

  .lp-mascot-message{
    font-size:13px;
  }

  body.lp-lesson-active .lp-mascot{
    width:108px;
    right:4px;
    bottom:calc(86px + env(safe-area-inset-bottom, 0px));
  }

  body.lp-lesson-active .lp-mascot-character{
    width:108px;
    height:135px;
  }

  body.lp-lesson-active .lp-mascot-dismiss{
    top:2px;
    right:2px;
    width:26px;
    height:26px;
    font-size:17px;
  }

  body.lp-lesson-active .lp-mascot-bubble{
    right:78px;
    bottom:84px;
    width:min(214px, calc(100vw - 24px));
  }
}

@media (min-width:900px){
  .lp-mascot{
    right:22px;
    --lp-mascot-bottom:calc(96px + env(safe-area-inset-bottom, 0px));
  }
}

@media (prefers-reduced-motion:reduce){
  .lp-mascot-stage,
  .lp-mascot[data-state] .lp-mascot-stage{
    animation:none !important;
  }
  .lp-mascot-image,
  .lp-mascot-bubble,
  .lp-mascot-settings,
  .lp-mascot-dismiss{
    transition:none !important;
    animation:none !important;
  }
}

/* v8 — Multi-mascot chooser ------------------------------------------------ */
.lp-mascot-settings,
.lp-mascot-picker-close,
.lp-mascot-choice,
.lp-mascot-store-choice{
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
}

.lp-mascot-settings{
  position:absolute;
  z-index:3;
  top:6px;
  right:44px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(8,63,76,.14);
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:#587177;
  box-shadow:0 4px 12px rgba(6,44,61,.14);
  cursor:pointer;
  pointer-events:auto;
  font-size:15px;
  line-height:1;
  opacity:.92;
}

.lp-mascot-settings:hover,
.lp-mascot-settings:focus-visible{
  background:#fff;
  color:#083f4c;
  border-color:rgba(8,63,76,.22);
  opacity:1;
}

/* v13.2 — Keep helper controls out of the way until the user needs them.
 * They appear briefly on load/interaction, reveal again on hover/focus, and
 * fade away after a few seconds of inactivity. */
.lp-mascot-settings,
.lp-mascot-dismiss{
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease, background-color .15s ease, color .15s ease, border-color .15s ease;
}

.lp-mascot.lp-mascot-controls-hidden .lp-mascot-settings,
.lp-mascot.lp-mascot-controls-hidden .lp-mascot-dismiss{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-4px) scale(.92);
}

.lp-mascot:not(.lp-mascot-controls-hidden) .lp-mascot-settings,
.lp-mascot:not(.lp-mascot-controls-hidden) .lp-mascot-dismiss{
  visibility:visible;
  transform:none;
}

.lp-mascot.is-minimised .lp-mascot-settings{
  display:none !important;
}

body.lp-mascot-picker-open{
  overflow:hidden;
}

.lp-mascot-picker-layer{
  position:fixed;
  z-index:10020;
  inset:0;
  width:100vw;
  height:100dvh;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(3,27,35,.58);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  pointer-events:auto;
}

.lp-mascot-picker{
  position:relative;
  width:min(680px, calc(100vw - 28px));
  max-height:calc(100dvh - 34px);
  overflow:auto;
  padding:26px;
  border:1px solid rgba(8,63,76,.16);
  border-radius:24px;
  background:#fffdfa;
  color:#123c46;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
}

.lp-mascot-picker-close{
  position:absolute;
  top:12px;
  right:12px;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:999px;
  background:#eef5f3;
  color:#214c55;
  cursor:pointer;
  font-size:26px;
  line-height:1;
}

.lp-mascot-picker-close:hover,
.lp-mascot-picker-close:focus-visible{
  background:#e0ece8;
  color:#083f4c;
}

.lp-mascot-picker-eyebrow,
.lp-mascot-store-eyebrow{
  margin:0 0 8px;
  color:#c94322;
  font-size:12px;
  font-weight:800;
  letter-spacing:.1em;
}

.lp-mascot-picker h2{
  margin:0 46px 8px 0;
  color:#083f4c;
  font-size:30px;
  line-height:1.08;
}

.lp-mascot-picker-copy{
  max-width:560px;
  margin:0 0 20px;
  color:#587177;
  font-size:15px;
  line-height:1.5;
}

.lp-mascot-choice-grid,
.lp-mascot-store-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.lp-mascot-choice,
.lp-mascot-store-choice{
  position:relative;
  min-width:0;
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  grid-template-rows:auto auto auto;
  align-items:center;
  gap:2px 14px;
  padding:12px;
  border:2px solid rgba(8,63,76,.12);
  border-radius:18px;
  background:#fff;
  color:#123c46;
  text-align:left;
  cursor:pointer;
  transition:border-color .16s ease, transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.lp-mascot-choice:hover,
.lp-mascot-choice:focus-visible,
.lp-mascot-store-choice:hover,
.lp-mascot-store-choice:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(8,112,94,.36);
  box-shadow:0 10px 26px rgba(6,44,61,.10);
}

.lp-mascot-choice.is-selected,
.lp-mascot-store-choice.is-selected{
  border-color:#118665;
  background:#f2fbf7;
  box-shadow:0 0 0 3px rgba(17,134,101,.08);
}

.lp-mascot-choice-art{
  grid-row:1 / span 3;
  width:92px;
  height:112px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
  border-radius:13px;
  background:linear-gradient(180deg,#f6faf9,#edf4f2);
}

.lp-mascot-choice-art img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
  user-select:none;
  -webkit-user-drag:none;
}

.lp-mascot-choice-name{
  align-self:end;
  font-size:19px;
  font-weight:800;
  color:#083f4c;
}

.lp-mascot-choice-species{
  font-size:12px;
  font-weight:700;
  color:#778b90;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.lp-mascot-choice-tagline{
  align-self:start;
  font-size:13px;
  line-height:1.35;
  color:#405e65;
}

.lp-mascot-choice-check{
  position:absolute;
  top:8px;
  right:8px;
  width:24px;
  height:24px;
  display:none;
  place-items:center;
  border-radius:999px;
  background:#118665;
  color:#fff;
  font-size:14px;
  font-weight:900;
}

.lp-mascot-choice.is-selected .lp-mascot-choice-check,
.lp-mascot-store-choice.is-selected .lp-mascot-choice-check{
  display:grid;
}

.lp-mascot-picker-note{
  margin:17px 0 0;
  padding-top:14px;
  border-top:1px solid rgba(8,63,76,.10);
  color:#778b90;
  font-size:12px;
  line-height:1.4;
}

/* Optional store-style page / shortcode. */
.lp-page-content-mascots{
  padding:0 20px 72px;
}

.lp-mascot-store{
  width:min(1080px,100%);
  margin:0 auto;
  padding:50px 0 20px;
}

.lp-mascot-store-intro{
  max-width:760px;
  margin:0 auto 30px;
  text-align:center;
}

.lp-mascot-store-intro h1{
  margin:0 0 12px;
  color:#083f4c;
  font-size:clamp(36px,5vw,60px);
  line-height:1;
}

.lp-mascot-store-intro > p:last-child{
  margin:0;
  color:#587177;
  font-size:17px;
  line-height:1.55;
}

.lp-mascot-store-grid{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;
}

.lp-mascot-store-choice{
  grid-template-columns:150px minmax(0,1fr);
  min-height:190px;
  padding:18px;
  border-radius:22px;
}

.lp-mascot-store-choice .lp-mascot-choice-art{
  width:150px;
  height:170px;
}

.lp-mascot-store-choice .lp-mascot-choice-name{
  font-size:24px;
}

.lp-mascot-store-choice .lp-mascot-choice-species{
  font-size:13px;
}

.lp-mascot-store-choice .lp-mascot-choice-tagline{
  font-size:14px;
}

.lp-mascot-store-status{
  min-height:24px;
  margin:20px 0 0;
  color:#118665;
  font-size:14px;
  font-weight:800;
  text-align:center;
}

html.lp-web-theme.lp-theme-night .lp-mascot-settings,
body.lp-native-android.lp-theme-night .lp-mascot-settings{
  background:rgba(8,42,52,.97);
  border-color:rgba(255,255,255,.14);
  color:#d8e8e9;
  box-shadow:0 10px 24px rgba(0,0,0,.32);
}

html.lp-web-theme.lp-theme-night .lp-mascot-picker,
body.lp-native-android.lp-theme-night .lp-mascot-picker{
  background:#082a34;
  border-color:rgba(255,255,255,.14);
  color:#f3fbfb;
}

html.lp-web-theme.lp-theme-night .lp-mascot-picker h2,
body.lp-native-android.lp-theme-night .lp-mascot-picker h2,
html.lp-web-theme.lp-theme-night .lp-mascot-choice-name,
body.lp-native-android.lp-theme-night .lp-mascot-choice-name{
  color:#f3fbfb;
}

html.lp-web-theme.lp-theme-night .lp-mascot-picker-copy,
body.lp-native-android.lp-theme-night .lp-mascot-picker-copy,
html.lp-web-theme.lp-theme-night .lp-mascot-choice-tagline,
body.lp-native-android.lp-theme-night .lp-mascot-choice-tagline,
html.lp-web-theme.lp-theme-night .lp-mascot-choice-species,
body.lp-native-android.lp-theme-night .lp-mascot-choice-species{
  color:#c8dcdf;
}

html.lp-web-theme.lp-theme-night .lp-mascot-choice,
body.lp-native-android.lp-theme-night .lp-mascot-choice{
  background:#0d3440;
  border-color:rgba(255,255,255,.12);
  color:#f3fbfb;
}

html.lp-web-theme.lp-theme-night .lp-mascot-choice.is-selected,
body.lp-native-android.lp-theme-night .lp-mascot-choice.is-selected{
  background:#103f3b;
  border-color:#42c99e;
}

@media (max-width:760px){
  .lp-mascot-settings{
    top:4px;
    right:40px;
    width:28px;
    height:28px;
    font-size:14px;
  }

  body.lp-lesson-active .lp-mascot-settings{
    top:2px;
    right:31px;
    width:26px;
    height:26px;
    font-size:13px;
  }

  .lp-mascot-picker-layer{
    align-items:end;
    padding:10px;
  }

  .lp-mascot-picker{
    width:100%;
    max-height:86dvh;
    padding:22px 16px 18px;
    border-radius:22px 22px 16px 16px;
  }

  .lp-mascot-picker h2{
    font-size:25px;
  }

  .lp-mascot-choice-grid{
    grid-template-columns:1fr;
  }

  .lp-mascot-choice{
    grid-template-columns:78px minmax(0,1fr);
  }

  .lp-mascot-choice-art{
    width:78px;
    height:94px;
  }

  .lp-page-content-mascots{
    padding-left:14px;
    padding-right:14px;
  }

  .lp-mascot-store{
    padding-top:32px;
  }

  .lp-mascot-store-grid{
    grid-template-columns:1fr;
  }

  .lp-mascot-store-choice{
    grid-template-columns:105px minmax(0,1fr);
    min-height:142px;
    padding:14px;
  }

  .lp-mascot-store-choice .lp-mascot-choice-art{
    width:105px;
    height:120px;
  }
}

/* v12 — direct path from the quick helper picker to the full Mascot Store. */
.lp-mascot-picker-store-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#083f4c;
  font-weight:800;
  text-decoration:none;
}
.lp-mascot-picker-store-link:hover,
.lp-mascot-picker-store-link:focus-visible{
  color:#c94322;
  text-decoration:none;
}


/* v13 — My Progress companion shortcut ------------------------------------ */
.lp-progress-companion-shortcut{
  width:min(1120px,calc(100% - 40px));
  margin:18px auto 0;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  padding:14px 16px;
  border:1px solid rgba(8,63,76,.12);
  border-radius:18px;
  background:rgba(255,255,255,.9);
  color:#083f4c;
  box-shadow:0 14px 32px rgba(8,63,76,.09);
}

.lp-progress-companion-art{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:16px;
  background:linear-gradient(145deg,#eef8f4,#fff8e9);
}

.lp-progress-companion-art img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
}

.lp-progress-companion-copy{
  min-width:0;
}

.lp-progress-companion-copy>span{
  display:block;
  margin-bottom:2px;
  color:#e65324;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.lp-progress-companion-copy strong{
  display:block;
  color:#083f4c;
  font-family:"Playfair Display",Georgia,serif;
  font-size:22px;
  line-height:1.08;
}

.lp-progress-companion-copy p{
  margin:4px 0 0;
  color:#60777c;
  font-size:12px;
  font-weight:700;
  line-height:1.4;
}

.lp-progress-companion-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:13px 16px;
  border:2px solid transparent;
  border-radius:10px;
  background:#083f4c;
  color:#fff!important;
  font-size:13px;
  font-weight:900;
  letter-spacing:.02em;
  line-height:1.2;
  text-decoration:none!important;
  box-shadow:0 10px 22px rgba(8,63,76,.16);
  transition:.2s;
}

.lp-progress-companion-link:hover,
.lp-progress-companion-link:focus-visible{
  background:#0b5262;
  transform:translateY(-1px);
}

@media(max-width:760px){
  .lp-progress-companion-shortcut{
    width:min(100% - 24px,560px);
    grid-template-columns:58px 1fr;
    gap:12px;
    margin-top:12px;
    padding:12px;
  }
  .lp-progress-companion-art{
    width:54px;
    height:54px;
    border-radius:14px;
  }
  .lp-progress-companion-copy strong{
    font-size:19px;
  }
  .lp-progress-companion-link{
    grid-column:1/-1;
    width:100%;
    padding:12px 15px;
  }
}
.lp-mascot-disabled #lpMascot{display:none!important}
#lpMascot{bottom:110px;z-index:900}
#lpMascot .lp-mascot-bubble,#lpMascot .lp-mascot-picker{background:var(--surface);color:var(--text);border-color:var(--border)}
#lpMascot .lp-mascot-picker h2,#lpMascot .lp-mascot-message{color:var(--text)}
#lpMascot .lp-mascot-choice{background:var(--soft);color:var(--text);border-color:var(--border)}
.mascot-daniel-card{display:flex;gap:28px;align-items:center}.mascot-daniel-card img{height:220px;object-fit:contain}
@media(max-width:700px){#lpMascot{bottom:112px;right:12px;transform:scale(.75);transform-origin:bottom right}.mascot-daniel-card{flex-wrap:wrap}}
.mascot-daniel-card{padding:28px!important}.mascot-daniel-card h2{text-align:left}.mascot-daniel-card .lp-mascot-store-choice{display:inline-flex!important;width:auto!important;min-height:44px!important;height:auto!important;padding:12px 20px!important;border-radius:10px!important;background:var(--button)!important;color:var(--button-text)!important;border:1px solid var(--button-border)!important;box-shadow:none!important}
.companion-store{max-width:1100px;margin:0 auto 50px;color:var(--text)}.companion-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:38px;align-items:center;padding:35px 0 48px}.companion-hero h1{text-align:left;font-size:clamp(34px,4vw,56px);line-height:1.08;margin:15px 0 20px}.companion-lead{font-size:18px;line-height:1.7;color:var(--muted)}.companion-features{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.companion-features span{background:var(--soft);border:1px solid var(--border);border-radius:30px;padding:8px 12px;font-size:12px}.companion-current{display:flex;align-items:center;gap:20px;padding:24px;background:var(--soft);border:1px solid var(--border);border-radius:24px}.companion-current img{width:45%;height:260px;object-fit:contain}.companion-current div{display:grid;gap:10px}.companion-current strong{font-size:28px}.companion-current small,.companion-current span{color:var(--muted);line-height:1.5}.companion-collection>header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.companion-collection h2{text-align:left;margin:8px 0}.companion-collection>header>span{font-size:13px;color:var(--muted)}.companion-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}.companion-store .companion-card{display:flex!important;flex-direction:column;width:100%!important;padding:0!important;overflow:hidden;border:2px solid var(--border)!important;border-radius:24px!important;background:var(--surface)!important;color:var(--text)!important;text-align:left;cursor:pointer;box-shadow:none!important}.companion-store .companion-card.is-selected{border-color:var(--button)!important}.companion-art{display:block;position:relative;width:100%;background:var(--soft);padding:22px}.companion-art img{display:block;height:290px;width:100%;object-fit:contain}.companion-art .lp-store-card-status{position:absolute;top:18px;left:18px;background:var(--surface);color:var(--text);border-radius:30px;padding:7px 12px;font-size:12px}.companion-copy{display:grid;gap:13px;padding:26px;width:100%;line-height:1.6}.companion-copy>strong{font-size:32px;line-height:1.1}.companion-role{font-weight:700}.companion-traits{font-size:12px;color:var(--muted)}.companion-quote{padding:14px;border-left:3px solid var(--button);background:var(--soft);font-style:italic}.companion-action{display:block;text-align:center;background:var(--button);color:var(--button-text);padding:12px;border-radius:12px;font-weight:750}.companion-card:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.companion-note{display:flex;align-items:center;gap:30px;justify-content:space-between;margin-top:35px;padding:24px;border-top:1px solid var(--border)}.companion-note h2{text-align:left;font-size:24px}.companion-note a{flex-shrink:0;color:var(--text)}@media(max-width:760px){.companion-hero,.companion-cards{grid-template-columns:1fr}.companion-collection>header,.companion-note{align-items:flex-start;flex-direction:column}.companion-current img{height:190px}.companion-store{padding:0 12px}}

/* Six companions: keep the picker usable on small screens. */
#lpMascot .lp-mascot-picker{max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}
@media(min-width:1100px){.companion-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}

.companion-store .companion-copy{display:flex;flex-direction:column;flex:1}.companion-store .companion-action{margin-top:auto}
