.gg-ad-host,
[data-gg-ad] { box-sizing: border-box; width: 100%; }
.gg-ad-host *,
[data-gg-ad] * { box-sizing: border-box; }
.gg-ad { width: 100%; color: inherit; font-family: inherit; }
.gg-ad-item { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.gg-ad-item:focus-visible,
.gg-ad-carousel-arrow:focus-visible,
.gg-ad-carousel-dots button:focus-visible { outline: 3px solid rgba(39,184,135,.38); outline-offset: 2px; }

.gg-ad-banner { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gg-ad-gap, 10px); }
.gg-ad-banner-item { position: relative; display: block; min-width: 0; overflow: hidden; border: 1px solid transparent; border-radius: var(--gg-ad-radius, 12px); background: #f3f5f8; isolation: isolate; transition: transform .22s ease, box-shadow .22s ease; }
.gg-ad-banner-image { display: block; width: 100%; height: auto; }
.gg-ad-banner-item:hover { transform: translateY(-2px); }
.gg-ad-banner-title { position: absolute; right: 10px; bottom: 9px; max-width: calc(100% - 20px); padding: 5px 10px; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #fff; background: rgba(18,24,34,.58); box-shadow: 0 3px 14px rgba(0,0,0,.12); font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; backdrop-filter: blur(7px); }
.gg-ad-banner[data-surface="card"] .gg-ad-banner-item { border-color: rgba(16,24,40,.08); }
.gg-ad-banner[data-surface="shadow"] .gg-ad-banner-item { box-shadow: 0 9px 28px rgba(25,35,55,.15); }

.gg-ad-icons { display: grid; grid-template-columns: repeat(var(--gg-ad-columns-desktop, 6), minmax(0, 1fr)); gap: var(--gg-ad-icon-row-gap, var(--gg-ad-gap, 12px)) var(--gg-ad-gap, 12px); }
.gg-ad-icons[data-custom-icon-spacing="1"] .gg-ad-icon-item { min-height: 0; padding-top: var(--gg-ad-icon-padding-y); padding-bottom: var(--gg-ad-icon-padding-y); }
.gg-ad-icon-item { display: flex; min-width: 0; min-height: calc(var(--gg-ad-icon-size, 52px) + 46px); align-items: center; justify-content:flex-start; flex-direction: column; gap: 7px; padding: 10px 5px 8px; border: 1px solid transparent; border-radius: var(--gg-ad-radius, 14px); transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.gg-ad-icon-item:hover { background: rgba(127,127,127,.07); transform: translateY(-3px); }
.gg-ad-icon-image { display: block; flex: 0 0 auto; width: var(--gg-ad-icon-size, 52px); height: var(--gg-ad-icon-size, 52px); border: 1px solid rgba(15,23,42,.06); border-radius: calc(var(--gg-ad-radius, 14px) * .72); background: #f1f3f6; box-shadow: 0 4px 14px rgba(20,30,48,.08); object-fit: var(--gg-ad-fit, cover); }
.gg-ad-icons[data-icon-shape="circle"] .gg-ad-icon-image { border-radius: 50%; }
.gg-ad-icons[data-icon-shape="square"] .gg-ad-icon-image { border-radius: 3px; }
.gg-ad-icons[data-surface="card"] .gg-ad-icon-item { border-color: rgba(16,24,40,.07); background: rgba(255,255,255,.72); }
.gg-ad-icons[data-surface="shadow"] .gg-ad-icon-item { background: #fff; box-shadow: 0 7px 22px rgba(25,35,55,.09); }
.gg-ad-icon-title,
.gg-ad-icon-subtitle { display: block; max-width: 100%; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.gg-ad-icon-title { display: block; width: 100%; min-height: 1.35em; overflow: hidden; font-size: 13px; font-weight: 600; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.gg-ad-icon-subtitle { margin-top: -4px; color: #8a9099; font-size: 11px; }

.gg-ad-carousel { position: relative; overflow: hidden; aspect-ratio: var(--gg-ad-carousel-ratio, 2.2857); border: 1px solid transparent; border-radius: var(--gg-ad-radius, 14px); background: #f3f5f8; isolation: isolate; touch-action: pan-y; }
.gg-ad-carousel[data-surface="card"] { border-color: rgba(16,24,40,.08); }
.gg-ad-carousel[data-surface="shadow"] { box-shadow: 0 10px 32px rgba(25,35,55,.16); }
.gg-ad-carousel-track { display: flex; width: 100%; height: 100%; transition: transform .42s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.gg-ad-carousel-slide { position: relative; display: block; flex: 0 0 100%; min-width: 0; height: 100%; }
.gg-ad-carousel-image { display: block; width: 100%; height: 100%; object-fit: fill; }
.gg-ad-carousel-caption { position: absolute; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; gap: 3px; padding: 46px 18px 32px; color: #fff; background: linear-gradient(transparent, rgba(5,10,18,.78)); pointer-events: none; }
.gg-ad-carousel-caption strong,
.gg-ad-carousel-caption small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-ad-carousel-caption strong { font-size: 16px; }
.gg-ad-carousel-arrow { position: absolute; z-index: 2; top: 50%; width: 36px; height: 46px; padding: 0; border: 1px solid rgba(255,255,255,.18); border-radius: 11px; color: #fff; background: rgba(13,20,31,.38); box-shadow: 0 4px 15px rgba(0,0,0,.14); font-size: 30px; line-height: 42px; cursor: pointer; opacity: .78; transform: translateY(-50%); transition: opacity .18s ease, background .18s ease; backdrop-filter: blur(7px); }
.gg-ad-carousel:hover .gg-ad-carousel-arrow { opacity: 1; }
.gg-ad-carousel-arrow:hover { background: rgba(13,20,31,.62); }
.gg-ad-carousel-arrow.is-prev { left: 10px; }
.gg-ad-carousel-arrow.is-next { right: 10px; }
.gg-ad-carousel-dots { position: absolute; z-index: 2; bottom: 12px; left: 50%; display: flex; gap: 6px; padding: 4px 6px; border-radius: 999px; background: rgba(0,0,0,.13); transform: translateX(-50%); backdrop-filter: blur(5px); }
.gg-ad-carousel-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 99px; background: rgba(255,255,255,.58); cursor: pointer; transition: width .18s ease, background .18s ease; }
.gg-ad-carousel-dots button.is-active { width: 20px; background: #fff; }

@media (max-width: 767px) {
  .gg-ad-icons { grid-template-columns: repeat(var(--gg-ad-columns-mobile, 5), minmax(0, 1fr)); row-gap: var(--gg-ad-icon-row-gap-mobile, var(--gg-ad-icon-row-gap, var(--gg-ad-gap, 12px))); }
  .gg-ad-icon-item { gap: 6px; padding: 8px 2px 6px; }
  .gg-ad-icon-title { font-size: 12px; }
  .gg-ad-carousel-arrow { display: none; }
  .gg-ad-carousel-caption { padding: 34px 12px 30px; }
  .gg-ad-carousel-caption strong { font-size: 14px; }
  .gg-ad-banner-item:hover,
  .gg-ad-icon-item:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .gg-ad-carousel-track,
  .gg-ad-banner-item,
  .gg-ad-icon-item { transition: none; }
}

html.gg-ad-modal-open { overflow: hidden; }
.gg-ad-popup-overlay { position: fixed; z-index: 2147483000; inset: 0; display: grid; place-items: center; box-sizing: border-box; padding: 20px 20px 70px; background: rgba(4,8,15,var(--gg-mask-opacity,.72)); animation: gg-ad-fade-in .2s ease both; backdrop-filter: blur(5px); }
.gg-ad-popup-overlay *,
.gg-ad-side * { box-sizing: border-box; }
.gg-ad-popup-overlay.is-closing { animation: gg-ad-fade-out .18s ease both; pointer-events: none; }
.gg-ad-popup-overlay.is-loading { visibility: hidden; pointer-events: none; }
.gg-ad-popup-panel { position: relative; display: flex; width: min(100%,var(--gg-popup-width,420px)); max-height: calc(100vh - 90px); max-height: calc(100dvh - 90px); flex-direction: column; overflow: visible; border: 1px solid rgba(255,255,255,.72); border-radius: 22px; background: #fff; box-shadow: 0 24px 80px rgba(0,0,0,.38); animation: gg-ad-pop-in .26s cubic-bezier(.2,.8,.2,1) both; }
.gg-ad-popup-close { position: absolute; z-index: 3; bottom: -50px; left: 50%; display: grid; width: 36px; height: 36px; place-items: center; padding: 0; border: 2px solid #fff; border-radius: 50%; color: #fff; background: rgba(20,24,32,.9); box-shadow: 0 4px 14px rgba(0,0,0,.28); font: 25px/1 Arial,sans-serif; cursor: pointer; transform: translateX(-50%); }
.gg-ad-popup-image-link { display: block; overflow: hidden; border-radius: 21px; background: transparent; }
.gg-ad-popup-image { display: block; width: 100%; height: auto; max-height: calc(100vh - 92px); max-height: calc(100dvh - 92px); object-fit: contain; }
.gg-ad-popup-overlay[data-gg-special="single_popup"] .gg-ad-popup-panel,
.gg-ad-popup-overlay[data-gg-special="icon_popup"] .gg-ad-popup-panel { border-color: transparent; background: transparent; box-shadow: none; }
.gg-ad-popup-head { display: block; flex: 0 1 auto; min-height: 0; overflow: hidden; border-radius: 21px 21px 0 0; background: transparent; }
.gg-ad-popup-head-image { display: block; width: 100%; height: auto; max-height: min(220px,30vh); max-height: min(220px,30dvh); object-fit: contain; }
.gg-ad-popup-icons { display: grid; min-height: 0; flex: 1 1 auto; grid-template-columns: repeat(var(--gg-popup-columns-desktop,4),minmax(0,1fr)); gap: 12px 8px; max-height: calc(70vh - 68px); max-height: calc(70dvh - 68px); padding: 17px 14px 18px; overflow: auto; border-radius: 0 0 21px 21px; background: #fff; }
.gg-ad-popup-overlay[data-gg-special="icon_popup"] .gg-ad-popup-icons { border-radius: 21px; box-shadow: 0 18px 50px rgba(0,0,0,.24); }
.gg-ad-popup-icon { display: flex; min-width: 0; align-items: center; flex-direction: column; gap: 6px; color: #252a34; text-align: center; text-decoration: none; }
.gg-ad-popup-icon-image { display: block; width: var(--gg-popup-icon-size,58px); height: var(--gg-popup-icon-size,58px); border: 1px solid rgba(15,23,42,.07); border-radius: 14px; background: #f2f4f7; box-shadow: 0 5px 14px rgba(20,30,48,.11); object-fit: cover; transition: transform .18s ease; }
.gg-ad-popup-icon:hover .gg-ad-popup-icon-image { transform: translateY(-2px) scale(1.025); }
.gg-ad-popup-icon span { display: -webkit-box; width: 100%; min-height: 2.6em; overflow: hidden; font-size: 12px; line-height: 1.3; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

.gg-ad-side { position: fixed; z-index: 999999900; top: var(--gg-side-top,120px); bottom: var(--gg-side-bottom,90px); display: flex; width: var(--gg-side-width,140px); flex-direction: column; gap: var(--gg-side-gap,12px); overflow: auto; pointer-events: none; scrollbar-width: thin; }
.gg-ad-side[hidden] { display: none !important; }
.gg-ad-side.is-loading { visibility: hidden; pointer-events: none; }
.gg-ad-side.is-left { left: 10px; }
.gg-ad-side.is-right { right: 10px; }
.gg-ad-side-item { display: block; flex: 0 0 auto; overflow: hidden; border: 1px solid rgba(255,255,255,.58); border-radius: 12px; background: #f3f5f8; box-shadow: 0 8px 26px rgba(10,18,32,.2); pointer-events: auto; }
.gg-ad-side-image { display: block; width: 100%; height: auto; }
.gg-ad-side-close { position: sticky; z-index: 2; top: 0; align-self: center; flex: 0 0 auto; width: 28px; height: 28px; padding: 0; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: #fff; background: rgba(24,30,40,.78); box-shadow: 0 3px 12px rgba(0,0,0,.22); font: 20px/1 Arial,sans-serif; cursor: pointer; pointer-events: auto; }

@keyframes gg-ad-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes gg-ad-fade-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes gg-ad-pop-in { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }

@media (max-width: 767px) {
  .gg-ad-popup-overlay { padding: 14px 14px 66px; }
  .gg-ad-popup-panel { max-height: calc(100vh - 80px); max-height: calc(100dvh - 80px); border-radius: 18px; }
  .gg-ad-popup-image-link { border-radius: 17px; }
  .gg-ad-popup-head { border-radius: 17px 17px 0 0; }
  .gg-ad-popup-icons { grid-template-columns: repeat(var(--gg-popup-columns-mobile,4),minmax(0,1fr)); gap: 10px 5px; padding: 14px 9px 15px; border-radius: 0 0 17px 17px; }
  .gg-ad-popup-close { bottom: -47px; }
  .gg-ad-side { width: var(--gg-side-mobile-width,48px); gap: 7px; }
  .gg-ad-side.is-left { left: 4px; }
  .gg-ad-side.is-right { right: 4px; }
  .gg-ad-side-item { border-radius: 8px; }
  .gg-ad-side-close { width: 22px; height: 22px; font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .gg-ad-popup-overlay,
  .gg-ad-popup-panel { animation: none; }
  .gg-ad-popup-icon-image { transition: none; }
}
