/* BigTibia AAC — temas por layout (Bootstrap + variables) */
body.ds-body {
  background: var(--ds-bg, #05070c);
}

/* ===== BIGTIBIA (default dark/gold) ===== */
body.layout-bigtibia {
  --theme-hero-min: 160px;
  --theme-radius: 0;
  --theme-nav-style: side;
}
body.layout-bigtibia .ds-bg-fx {
  background:
    var(--layout-bg) center top / cover no-repeat,
    radial-gradient(ellipse at 50% 0%, rgba(201,162,39,.2), transparent 55%),
    linear-gradient(180deg, #0a1020 0%, #05070c 100%) !important;
  filter: brightness(.55) saturate(1.1);
}

/* ===== TIBIACOM — clásico beige/marrón, cajas tipo tibia.com ===== */
body.layout-tibiacom {
  --ds-bg: #1c140c !important;
  --ds-panel: #2a1e12 !important;
  --ds-panel2: #3a2a18 !important;
  --ds-border: #8b6914 !important;
  --ds-gold: #c9a227 !important;
  --ds-gold2: #f5e6a3 !important;
  --ds-text: #f0e6c8 !important;
  --ds-muted: #b8a888 !important;
  --ds-font-title: "Times New Roman", Georgia, serif !important;
  --ds-font: Verdana, Geneva, sans-serif !important;
}
body.layout-tibiacom .ds-bg-fx {
  background:
    var(--layout-bg) center top / cover no-repeat,
    #1c140c !important;
  filter: brightness(.45) sepia(.25);
}
body.layout-tibiacom .ds-hero {
  background: linear-gradient(180deg, rgba(40,28,12,.9), rgba(20,14,6,.95));
  border-bottom: 4px double var(--ds-gold);
  min-height: 120px;
  padding: 1rem 0;
}
body.layout-tibiacom .ds-brand {
  font-size: clamp(1.4rem, 3vw, 2rem);
  letter-spacing: .12em;
  text-transform: uppercase;
}
body.layout-tibiacom .ds-box {
  background: linear-gradient(180deg, #3a2a18, #241810);
  border: 2px solid #8b6914;
  box-shadow: inset 0 0 0 1px #5a4010, 0 4px 12px rgba(0,0,0,.5);
}
body.layout-tibiacom .ds-box-h {
  background: linear-gradient(90deg, #5c4010, #8b6914, #5c4010);
  color: #fff8d0;
  text-align: center;
  font-family: var(--ds-font-title);
  border-bottom: 1px solid #c9a227;
}
body.layout-tibiacom .ds-nav a {
  border-bottom: 1px solid #4a3818;
  font-size: .85rem;
}
body.layout-tibiacom .ds-particles { display: none !important; }
body.layout-tibiacom .ds-ornament { display: none; }
body.layout-tibiacom .ds-crest { border-radius: 0; border: 2px solid #8b6914; }

/* ===== OTSET — verde OT clásico ===== */
body.layout-otset {
  --ds-bg: #0c1810 !important;
  --ds-panel: #142818 !important;
  --ds-panel2: #1c3820 !important;
  --ds-border: #3d8b4a !important;
  --ds-gold: #6bcf7a !important;
  --ds-gold2: #b8f0c0 !important;
  --ds-text: #d8f0dc !important;
  --ds-muted: #88a890 !important;
  --ds-font-title: "Palatino Linotype", Palatino, serif !important;
}
body.layout-otset .ds-bg-fx {
  background: var(--layout-bg) center top / cover no-repeat, #0c1810 !important;
  filter: brightness(.4) saturate(1.2) hue-rotate(40deg);
}
body.layout-otset .ds-hero {
  background: rgba(10,40,20,.85);
  border-bottom: 3px solid #3d8b4a;
}
body.layout-otset .ds-box {
  border: 1px solid #3d8b4a;
  background: rgba(20,40,28,.92);
}
body.layout-otset .ds-box-h {
  background: linear-gradient(90deg, #1a4020, #2d6b38);
  color: #e0ffe8;
}
body.layout-otset .ds-particles .ds-particle { background: #6bcf7a; box-shadow: 0 0 8px #3d8b4a; }

/* ===== MUGESIOR — azul moderno Gesior ===== */
body.layout-mugesior {
  --ds-bg: #0e141c !important;
  --ds-panel: #182230 !important;
  --ds-panel2: #223044 !important;
  --ds-border: #4a7ab0 !important;
  --ds-gold: #6aa8e8 !important;
  --ds-gold2: #c0dcff !important;
  --ds-text: #e4ecf5 !important;
  --ds-muted: #8a9aac !important;
  --ds-font-title: "Trebuchet MS", "Segoe UI", sans-serif !important;
  --ds-font: "Segoe UI", Tahoma, sans-serif !important;
}
body.layout-mugesior .ds-bg-fx {
  background:
    var(--layout-bg) center / cover no-repeat,
    linear-gradient(160deg, #0e141c, #1a3048) !important;
  filter: brightness(.5);
}
body.layout-mugesior .ds-hero {
  background: linear-gradient(90deg, #152238, #1e3a5c);
  border-radius: 0 0 .75rem .75rem;
  border-bottom: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
body.layout-mugesior .ds-box {
  border-radius: .5rem;
  border: 1px solid #3a5a80;
  background: rgba(24,34,48,.95);
  overflow: hidden;
}
body.layout-mugesior .ds-box-h {
  background: #2a4060;
  color: #c0dcff;
  font-weight: 700;
}
body.layout-mugesior .ds-nav a:hover { background: #2a4060; }
body.layout-mugesior .ds-crest { border-radius: 50%; }

/* ===== HELLGRAVE — rojo/negro denso ===== */
body.layout-hellgrave {
  --ds-bg: #08060a !important;
  --ds-panel: #140e14 !important;
  --ds-panel2: #1e141c !important;
  --ds-border: #8b2040 !important;
  --ds-gold: #e04060 !important;
  --ds-gold2: #ff90a8 !important;
  --ds-text: #f0e0e4 !important;
  --ds-muted: #a08088 !important;
  --ds-font-title: "Cinzel", Georgia, serif !important;
}
body.layout-hellgrave .ds-bg-fx {
  background:
    var(--layout-bg) center / cover no-repeat,
    radial-gradient(ellipse at 50% 0%, rgba(140,20,40,.35), #08060a 60%) !important;
  filter: brightness(.4) saturate(1.3);
}
body.layout-hellgrave .ds-hero {
  background: linear-gradient(180deg, #2a1018, #10080c);
  border-bottom: 2px solid #8b2040;
  box-shadow: 0 0 40px rgba(140,20,40,.35);
}
body.layout-hellgrave .ds-box {
  border: 1px solid #5a1830;
  background: rgba(20,12,16,.95);
  box-shadow: 0 0 20px rgba(140,20,40,.15);
}
body.layout-hellgrave .ds-box-h {
  background: linear-gradient(90deg, #3a1020, #6b1838);
  color: #ffc0d0;
  letter-spacing: .08em;
}
body.layout-hellgrave .ds-particles .ds-particle { background: #e04060; }

/* ===== SHADOWLANDS — púrpura expansión ===== */
body.layout-shadowlands {
  --ds-bg: #0a0612 !important;
  --ds-panel: #16102a !important;
  --ds-panel2: #221840 !important;
  --ds-border: #7b4fc4 !important;
  --ds-gold: #b388ff !important;
  --ds-gold2: #e0c8ff !important;
  --ds-text: #ece4f8 !important;
  --ds-muted: #9888b0 !important;
  --ds-font-title: "Cinzel", Georgia, serif !important;
}
body.layout-shadowlands .ds-bg-fx {
  background:
    var(--layout-bg) center / cover no-repeat,
    radial-gradient(circle at 20% 20%, rgba(100,40,180,.4), transparent 50%),
    #0a0612 !important;
  filter: brightness(.45) saturate(1.4);
}
body.layout-shadowlands .ds-hero {
  min-height: 220px;
  background: linear-gradient(135deg, rgba(40,20,80,.9), rgba(10,6,20,.85));
  border-bottom: 1px solid #7b4fc4;
}
body.layout-shadowlands .ds-brand {
  font-size: clamp(2rem, 5vw, 3rem);
  text-shadow: 0 0 24px rgba(180,120,255,.6);
}
body.layout-shadowlands .ds-box {
  border: 1px solid #5a3a90;
  background: rgba(22,16,42,.92);
  backdrop-filter: blur(4px);
}
body.layout-shadowlands .ds-box-h {
  background: linear-gradient(90deg, #2a1850, #4a2880);
  color: #e0c8ff;
}
body.layout-shadowlands.shell-epic .ds-side { order: 2; }
body.layout-shadowlands.shell-epic .ds-main-col { order: 1; }

/* ===== LEGION — azul landing hero grande ===== */
body.layout-legion {
  --ds-bg: #061018 !important;
  --ds-panel: #0e2030 !important;
  --ds-panel2: #163040 !important;
  --ds-border: #2a90b8 !important;
  --ds-gold: #40c4e8 !important;
  --ds-gold2: #a8ecff !important;
  --ds-text: #e0f4fc !important;
  --ds-muted: #78a0b0 !important;
  --ds-font-title: "Oswald", "Arial Narrow", sans-serif !important;
}
body.layout-legion .ds-bg-fx {
  background:
    var(--layout-bg) center top / cover no-repeat,
    linear-gradient(180deg, #0a2030, #061018) !important;
  filter: brightness(.5) saturate(1.2);
}
body.layout-legion .ds-hero {
  min-height: 320px;
  display: flex;
  align-items: center;
  background: linear-gradient(180deg, transparent 0%, rgba(6,16,24,.7) 70%, #061018 100%);
  border-bottom: none;
}
body.layout-legion .ds-brand {
  font-size: clamp(2.2rem, 6vw, 3.5rem);
  text-transform: uppercase;
  letter-spacing: .15em;
}
body.layout-legion .ds-box {
  border: none;
  border-top: 3px solid #2a90b8;
  background: rgba(14,32,48,.9);
  border-radius: 0;
}
body.layout-legion .ds-box-h {
  background: transparent;
  color: #40c4e8;
  border-bottom: 1px solid #1a4050;
  font-size: 1.1rem;
}
body.layout-legion .ds-ornament { opacity: .4; }
body.layout-legion .ds-particles { display: none !important; }

/* ===== MYSTIC — cyan ornamental ===== */
body.layout-mystic {
  --ds-bg: #081018 !important;
  --ds-panel: #101c28 !important;
  --ds-panel2: #182830 !important;
  --ds-border: #4aa8c8 !important;
  --ds-gold: #6ec8e8 !important;
  --ds-gold2: #d0f0ff !important;
  --ds-text: #e8f4f8 !important;
  --ds-muted: #88a8b8 !important;
  --ds-font-title: "Cinzel", Georgia, serif !important;
}
body.layout-mystic .ds-bg-fx {
  background:
    var(--layout-bg) center / cover no-repeat,
    radial-gradient(ellipse at 80% 10%, rgba(60,160,200,.3), transparent 50%),
    #081018 !important;
  filter: brightness(.5);
}
body.layout-mystic .ds-hero {
  border-bottom: 2px solid transparent;
  border-image: linear-gradient(90deg, transparent, #4aa8c8, transparent) 1;
  background: rgba(8,20,30,.7);
}
body.layout-mystic .ds-box {
  border: 1px solid #2a6078;
  box-shadow: 0 0 16px rgba(60,160,200,.12);
  background: rgba(16,28,40,.9);
}
body.layout-mystic .ds-box-h {
  background: linear-gradient(90deg, transparent, #1a4050, transparent);
  color: #a8e0f0;
  text-align: center;
}
body.layout-mystic .ds-crest {
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(80,180,220,.5);
}

/* ===== FORMORGAR — naranja/mazmorra ===== */
body.layout-formorgar {
  --ds-bg: #120c08 !important;
  --ds-panel: #1e1410 !important;
  --ds-panel2: #2a1c14 !important;
  --ds-border: #c45c26 !important;
  --ds-gold: #e87830 !important;
  --ds-gold2: #ffc090 !important;
  --ds-text: #f0e0d0 !important;
  --ds-muted: #a88870 !important;
  --ds-font-title: "Cinzel", Georgia, serif !important;
}
body.layout-formorgar .ds-bg-fx {
  background:
    var(--layout-bg) center / cover no-repeat,
    radial-gradient(ellipse at 50% 100%, rgba(180,60,20,.35), #120c08 55%) !important;
  filter: brightness(.4) saturate(1.3);
}
body.layout-formorgar .ds-hero {
  background: linear-gradient(180deg, #2a1810, #120c08);
  border-bottom: 3px solid #c45c26;
}
body.layout-formorgar .ds-box {
  border: 2px solid #6a3018;
  background: rgba(30,20,16,.95);
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
}
body.layout-formorgar .ds-box-h {
  background: linear-gradient(90deg, #3a2010, #8a4018);
  color: #ffd0a0;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .85rem;
}
body.layout-formorgar .ds-particles .ds-particle { background: #e87830; }

/* ===== ANNIVERSARY — marrón/dorado Znote ===== */
body.layout-anniversary {
  --ds-bg: #1a1816 !important;
  --ds-panel: #2a2420 !important;
  --ds-panel2: #3a3228 !important;
  --ds-border: #793d03 !important;
  --ds-gold: #a06828 !important;
  --ds-gold2: #e0c8a0 !important;
  --ds-text: #f0e8d8 !important;
  --ds-muted: #a89880 !important;
  --ds-font-title: "Cinzel", Georgia, serif !important;
}
body.layout-anniversary .ds-bg-fx {
  background:
    var(--layout-bg) center top / cover no-repeat,
    #232228 !important;
  filter: brightness(.55) saturate(1.05);
}
body.layout-anniversary .ds-hero {
  background: linear-gradient(180deg, rgba(35,34,40,.4), rgba(26,24,22,.95));
  border-bottom: 3px solid #793d03;
  min-height: 220px;
}
body.layout-anniversary .ds-box {
  border: 2px solid #8b7355;
  background: rgba(42,36,32,.94);
}
body.layout-anniversary .ds-box-h {
  background: linear-gradient(90deg, #3a2810, #793d03);
  color: #f0e8d0;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: .9rem;
}
body.layout-anniversary .aac-topnav {
  background: rgba(30,28,26,.85) !important;
  border-bottom: 2px solid #793d03;
}

/* ===== PIRATE — oro/marino Znote ===== */
body.layout-pirate {
  --ds-bg: #0c0a08 !important;
  --ds-panel: #1a1410 !important;
  --ds-panel2: #2a2018 !important;
  --ds-border: #b4802c !important;
  --ds-gold: #d4a04a !important;
  --ds-gold2: #f0d8a0 !important;
  --ds-text: #efe4d0 !important;
  --ds-muted: #a89878 !important;
  --ds-font-title: "Oswald", "Arial Narrow", sans-serif !important;
}
body.layout-pirate .ds-bg-fx {
  background:
    var(--layout-bg) center top / cover no-repeat,
    #0c0a08 !important;
  filter: brightness(.42) saturate(1.15);
}
body.layout-pirate .ds-hero {
  background:
    linear-gradient(180deg, rgba(12,10,8,.2) 0%, rgba(12,10,8,.85) 100%),
    var(--layout-bg) center / cover no-repeat;
  border-bottom: 2px solid #b4802c;
  min-height: 280px;
}
body.layout-pirate .ds-brand {
  text-transform: uppercase;
  letter-spacing: .12em;
  text-shadow: 0 2px 12px rgba(180,128,44,.55);
}
body.layout-pirate .ds-box {
  border: 1px solid #6a5020;
  background: rgba(26,20,16,.92);
  box-shadow: 0 0 20px rgba(180,128,44,.08);
}
body.layout-pirate .ds-box-h {
  background: linear-gradient(90deg, rgba(180,128,44,.15), rgba(180,128,44,.35), rgba(180,128,44,.15));
  color: #f0d8a0;
  border-bottom: 1px solid #6a5020;
}
body.layout-pirate .aac-topnav {
  background: rgba(10,8,6,.7) !important;
  border-bottom: 1px solid #b4802c;
}
body.layout-pirate .ds-particles .ds-particle { background: #d4a04a; }

/* ===== NECROXIA — gótico naranja Znote ===== */
body.layout-necroxia {
  --ds-bg: #000000 !important;
  --ds-panel: #121018 !important;
  --ds-panel2: #1c1824 !important;
  --ds-border: #d96d00 !important;
  --ds-gold: #e88820 !important;
  --ds-gold2: #fae600 !important;
  --ds-text: #e8e4dc !important;
  --ds-muted: #908880 !important;
  --ds-font-title: "Cinzel", Georgia, serif !important;
}
body.layout-necroxia .ds-bg-fx {
  background:
    var(--layout-bg) center top / cover no-repeat,
    #000 !important;
  filter: brightness(.38) saturate(1.25);
}
body.layout-necroxia .ds-hero {
  background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.9));
  border-bottom: 2px solid #d96d00;
  min-height: 260px;
}
body.layout-necroxia .ds-brand {
  color: #fae600 !important;
  text-shadow: 0 0 10px #d96d00, 0 0 24px #d96d00;
}
body.layout-necroxia .ds-box {
  border: 1px solid #3a2810;
  background: rgba(18,16,24,.94);
  box-shadow: inset 0 0 24px rgba(0,0,0,.5);
}
body.layout-necroxia .ds-box-h {
  background: linear-gradient(90deg, #1a1008, #402010);
  color: #fae600;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .85rem;
}
body.layout-necroxia .aac-topnav {
  background: rgba(0,0,0,.75) !important;
  border-bottom: 1px solid #d96d00;
}
body.layout-necroxia .ds-particles .ds-particle { background: #fae600; box-shadow: 0 0 8px #d96d00; }

/* ===== POKEMON — colores vivos, cards ===== */
body.layout-pokemon {
  --ds-bg: #0a1620 !important;
  --ds-panel: #122838 !important;
  --ds-panel2: #1a3850 !important;
  --ds-border: #20a0e0 !important;
  --ds-gold: #40c0ff !important;
  --ds-gold2: #a0e8ff !important;
  --ds-text: #f0f8ff !important;
  --ds-muted: #88b0c8 !important;
  --ds-font-title: "Fredoka", "Segoe UI", sans-serif !important;
  --ds-font: "Nunito", "Segoe UI", sans-serif !important;
}
body.layout-pokemon .ds-bg-fx {
  background:
    var(--layout-bg) center / cover no-repeat,
    linear-gradient(135deg, #0a2030 0%, #104060 50%, #0a2840 100%) !important;
  filter: brightness(.55) saturate(1.4);
}
body.layout-pokemon .ds-hero {
  background: linear-gradient(90deg, #1060a0, #20a0e0, #1060a0);
  border-radius: 0 0 1.5rem 1.5rem;
  border-bottom: none;
  box-shadow: 0 8px 32px rgba(32,160,224,.35);
  min-height: 140px;
}
body.layout-pokemon .ds-brand {
  color: #fff !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.4);
  font-weight: 800;
}
body.layout-pokemon .ds-sub { color: #d0f0ff !important; }
body.layout-pokemon .ds-box {
  border-radius: 1rem;
  border: 2px solid #2080c0;
  background: rgba(18,40,56,.92);
  overflow: hidden;
}
body.layout-pokemon .ds-box-h {
  background: linear-gradient(90deg, #186898, #20a0e0);
  color: #fff;
  font-weight: 700;
}
body.layout-pokemon .ds-nav a {
  border-radius: .5rem;
  margin: 2px 4px;
  border-bottom: none;
}
body.layout-pokemon .ds-nav a:hover {
  background: #186898;
  color: #fff;
}
body.layout-pokemon .ds-crest {
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 0 0 3px #20a0e0;
}
body.layout-pokemon .ds-ornament { display: none; }
body.layout-pokemon .ds-particles .ds-particle { background: #40c0ff; border-radius: 50%; }

/* ===== Shell layouts (estructura) ===== */
body.shell-topnav .ds-hero { margin-bottom: 0; }
body.shell-topnav .aac-topnav {
  background: rgba(0,0,0,.55);
  border-bottom: 1px solid var(--ds-border);
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(8px);
}
body.shell-topnav .aac-topnav .nav-link {
  color: var(--ds-text) !important;
  font-size: .85rem;
  padding: .5rem .75rem;
}
body.shell-topnav .aac-topnav .nav-link:hover {
  color: var(--ds-gold2) !important;
}
body.shell-classic-ot .ds-shell { max-width: 1100px; }
body.shell-classic-ot .ds-main-col { order: 2; }
body.shell-classic-ot .ds-side-left { order: 1; }
body.shell-classic-ot .ds-side-right { order: 3; }
body.shell-classic-ot .ds-hero-banner-img {
  width: 100%;
  max-height: 180px;
  object-fit: cover;
  display: block;
  border-bottom: 3px solid var(--ds-border);
}
body.shell-epic .ds-hero { min-height: 240px; }
body.shell-pokemon .ds-shell { max-width: 1140px; }

@media (max-width: 991px) {
  body.ds-body .ds-mobile-nav { display: block !important; }
  body.shell-topnav .aac-topnav { display: none; }
}
