/* Gigglori dense marketplace homepage — structurally inspired by the supplied marketplace reference.
   Gigglori branding/content/products remain original and data-driven. */
.gg-jomla-home{background:#f6f6f7!important;color:#121827}
.gg-jomla-home .site-header{background:#fff;box-shadow:none;border-bottom:1px solid #ececf0}
.gg-jomla-home .utility-bar{background:linear-gradient(90deg,#ff7a00,#ff3d00)!important;color:#fff!important}
.gg-jomla-home .global-search{border-color:#ff8a36!important;background:#fff!important}
.gg-jomla-home .global-search>button,.gg-jomla-home .all-categories-button{background:linear-gradient(135deg,#ff7a00,#ff3d00)!important;color:#fff!important}
.gg-jomla-home .gg-primary-nav-arrow{color:#ff5a00!important;border-color:#ffe0cc!important}
.gg-jomla-home .primary-nav a:hover{color:#ff5a00!important}
.ggm-home{padding:14px 0 54px;background:#f6f6f7}
.ggm-page-shell{width:min(1460px,calc(100% - 28px));margin:0 auto}
.ggm-hero-grid{display:grid;grid-template-columns:235px minmax(0,1fr);gap:14px;align-items:stretch}
.ggm-category-sidebar,.ggm-hero-main,.ggm-brand-strip,.ggm-product-shelf,.ggm-feature-category-cloud,.ggm-service-footer-grid{background:#fff;border:1px solid #ebedf0;border-radius:12px}
.ggm-category-sidebar{overflow:hidden;box-shadow:0 6px 22px rgba(20,24,36,.05)}
.ggm-sidebar-title{min-height:49px;display:flex;align-items:center;gap:10px;padding:0 15px;background:#15171d;color:#fff;font:800 13px/1.2 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.4px}
.ggm-sidebar-title span{color:#ff6700;font-size:18px}
.ggm-category-sidebar nav{padding:4px 0}
.ggm-category-sidebar nav a{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;color:#303440;text-decoration:none;border-bottom:1px solid #f0f1f3;font-size:12px;font-weight:700}
.ggm-category-sidebar nav a:hover{color:#ff5200;background:#fff6f0;padding-left:18px}
.ggm-category-sidebar nav a b{color:#aaaeb8;font-size:17px}
.ggm-sidebar-all{display:block;padding:12px 14px;color:#ff5200;text-decoration:none;font-size:12px;font-weight:800}
.ggm-hero-main{padding:10px;min-width:0}
.ggm-benefit-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.ggm-benefit-row>div{min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #f0f1f4;border-radius:8px;background:#fff;color:#353946;font-size:11px;text-align:center}
.ggm-benefit-row span{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#fff1e7;color:#ff5b00;font-weight:900}
.ggm-hero-slider{position:relative;height:300px;overflow:hidden;border-radius:10px;background:#0b1722}
.ggm-hero-slide{position:absolute;inset:0;display:grid;grid-template-columns:1.05fr .95fr;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s ease;background:#16232d}
.ggm-hero-slide.active{opacity:1;visibility:visible}
.ggm-hero-slide.tone-orange{background:linear-gradient(120deg,#20160e 0%,#16110d 40%,#ff5a00 150%)}
.ggm-hero-slide.tone-green{background:linear-gradient(120deg,#071f21,#063d37 60%,#10b59a)}
.ggm-hero-slide.tone-navy{background:linear-gradient(120deg,#07152f,#172a59 62%,#386cf6)}
.ggm-hero-slide.tone-violet{background:linear-gradient(120deg,#211139,#47206d 62%,#8f54da)}
.ggm-hero-copy{position:relative;z-index:3;padding:45px 18px 34px 48px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;color:#fff}
.ggm-hero-copy>span{font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:1.7px;color:#ffb173}
.ggm-hero-copy h1{max-width:650px;margin:10px 0 11px;color:#fff;font:800 clamp(26px,2.8vw,45px)/1.05 Manrope,sans-serif;letter-spacing:-1.4px}
.ggm-hero-copy p{max-width:570px;margin:0 0 20px;color:rgba(255,255,255,.78);font-size:13px;line-height:1.6}
.ggm-hero-copy a{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:0 18px;border-radius:7px;background:#ff5100;color:#fff;text-decoration:none;font-weight:850;font-size:12px;box-shadow:0 8px 20px rgba(255,78,0,.23)}
.ggm-hero-art{position:relative;overflow:hidden;display:grid;place-items:center;padding:22px}
.ggm-hero-art i{position:absolute;width:330px;height:330px;border-radius:50%;background:rgba(255,255,255,.12);box-shadow:0 0 0 40px rgba(255,255,255,.035),0 0 0 88px rgba(255,255,255,.025)}
.ggm-hero-art img{position:relative;z-index:2;max-width:88%;max-height:250px;object-fit:contain;filter:drop-shadow(0 28px 32px rgba(0,0,0,.38));transform:rotate(-4deg)}
.ggm-hero-dots{position:absolute;z-index:8;left:50%;bottom:12px;display:flex;gap:6px;transform:translateX(-50%)}
.ggm-hero-dots button{width:7px;height:7px;border:0;border-radius:999px;padding:0;background:rgba(255,255,255,.42);cursor:pointer;transition:.2s}
.ggm-hero-dots button.active{width:22px;background:#ff5b00}
.ggm-promo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:10px}
.ggm-mini-promo{position:relative;min-height:118px;overflow:hidden;display:grid;grid-template-columns:1fr 96px;align-items:center;padding:15px;border-radius:9px;color:#fff;text-decoration:none;background:#ff4b24}
.ggm-mini-promo:nth-child(2){background:#cd1838}.ggm-mini-promo:nth-child(3){background:#eb3d1f}.ggm-mini-promo:nth-child(4){background:#9e1730}
.ggm-mini-promo div{position:relative;z-index:2;min-width:0}.ggm-mini-promo span{display:block;margin-bottom:4px;color:#ffd7cb;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.7px}.ggm-mini-promo b{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:12px;line-height:1.25}.ggm-mini-promo small{display:block;margin-top:8px;font-size:10px;font-weight:800}
.ggm-mini-promo img{width:96px;height:86px;object-fit:contain;filter:drop-shadow(0 11px 13px rgba(0,0,0,.2))}
.ggm-shortcut-rail{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;margin:14px 0;padding:11px 8px;border:1px solid #eceef1;border-radius:12px;background:#fff}
.ggm-shortcut-rail a{min-width:0;display:flex;flex-direction:column;align-items:center;gap:7px;color:#333845;text-decoration:none;text-align:center;font-size:9px;font-weight:800}
.ggm-shortcut-rail span{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#f7f7f8;border:1px solid #efeff1;overflow:hidden}.ggm-shortcut-rail img{width:100%;height:100%;object-fit:contain;padding:6px;box-sizing:border-box}.ggm-shortcut-rail a:hover span{border-color:#ffc5a7;background:#fff5ee;transform:translateY(-2px)}
.ggm-brand-strip,.ggm-product-shelf,.ggm-feature-category-cloud{margin-top:14px;padding:20px}
.ggm-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.ggm-section-title.compact{align-items:center;margin-bottom:13px}.ggm-section-title span,.ggm-cloud-head span{display:block;margin-bottom:5px;color:#ff5800;font-size:9px;font-weight:900;letter-spacing:1.4px;text-transform:uppercase}.ggm-section-title h2,.ggm-cloud-head h2{margin:0;color:#161a26;font:800 clamp(21px,2vw,29px)/1.15 Manrope,sans-serif;letter-spacing:-.6px}.ggm-section-title p,.ggm-cloud-head p{margin:6px 0 0;color:#7a7f8c;font-size:12px}.ggm-section-title>a{color:#ff5200;text-decoration:none;font-size:11px;font-weight:850;white-space:nowrap}
.ggm-brand-rail{display:flex;gap:8px;overflow:auto;scrollbar-width:none;padding-bottom:2px}.ggm-brand-rail::-webkit-scrollbar{display:none}.ggm-brand-rail a{flex:0 0 104px;min-height:54px;display:grid;place-items:center;padding:7px;border:1px solid #eceef1;border-radius:8px;background:#fafafa;color:#333847;text-decoration:none;text-align:center;font:800 11px/1.2 Manrope,sans-serif}.ggm-brand-rail a:hover{border-color:#ffb78f;background:#fff8f3;color:#ff5200}
.ggm-product-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.ggm-product-grid.wide{grid-template-columns:repeat(6,minmax(0,1fr))}
.ggm-product-card{min-width:0;overflow:hidden;display:flex;flex-direction:column;border:1px solid #eceef1;border-radius:8px;background:#fff;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.ggm-product-card:hover{transform:translateY(-2px);border-color:#ffc9ac;box-shadow:0 8px 24px rgba(43,33,26,.08)}
.ggm-card-media{position:relative;height:176px;display:grid;place-items:center;padding:10px;background:#fff}.ggm-card-media a{width:100%;height:100%;display:grid;place-items:center}.ggm-card-media img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;transition:transform .24s ease}.ggm-product-card:hover .ggm-card-media img{transform:scale(1.035)}
.ggm-sale-badge{position:absolute;z-index:2;left:8px;top:8px;min-width:34px;min-height:19px;display:grid;place-items:center;padding:0 6px;border-radius:4px;background:#ff4242;color:#fff;font-size:8px;font-weight:900}
.ggm-card-body{flex:1;display:flex;flex-direction:column;padding:9px 10px 11px}.ggm-brand{height:12px;overflow:hidden;color:#8c919b;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.35px;white-space:nowrap;text-overflow:ellipsis}.ggm-card-body h3{min-height:42px;margin:5px 0 6px;font-size:11px;line-height:1.28;font-weight:750}.ggm-card-body h3 a{display:-webkit-box;overflow:hidden;color:#232733;text-decoration:none;-webkit-line-clamp:3;-webkit-box-orient:vertical}.ggm-rating{display:flex;align-items:center;gap:4px;min-height:16px;color:#777d87;font-size:8px}.ggm-rating span{color:#f6aa00;font-size:11px}.ggm-rating b{color:#515762}.ggm-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px;margin-top:5px}.ggm-price strong{color:#111620;font-size:14px;font-weight:900}.ggm-price del{color:#a3a7ae;font-size:8px}.ggm-delivery{margin:5px 0 8px;color:#4f8a6f;font-size:8px;font-weight:700}.ggm-card-body form{margin:0;margin-top:auto}.ggm-card-action{width:100%;min-height:30px;display:flex;align-items:center;justify-content:center;border:1px solid #ff6b1a;border-radius:6px;background:#fff;color:#ff5400;text-decoration:none;font-size:9px;font-weight:850;cursor:pointer}.ggm-card-action:hover{background:#ff5a00;color:#fff}.ggm-card-action:disabled{opacity:.45;cursor:not-allowed}
.ggm-feature-category-cloud{background:linear-gradient(135deg,#f6edff,#fff8e9)}.ggm-cloud-head{text-align:center;margin-bottom:17px}.ggm-category-cloud-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:9px}.ggm-category-cloud-grid a{min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 6px 11px;border-radius:14px;background:#fffbea;color:#3f3b42;text-decoration:none;text-align:center;font-size:9px;font-weight:800}.ggm-category-cloud-grid span{width:78px;height:74px;display:grid;place-items:center}.ggm-category-cloud-grid img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}
.ggm-campaign{position:relative;min-height:285px;overflow:hidden;display:grid;grid-template-columns:.9fr 1.1fr;margin-top:14px;border-radius:11px;color:#fff}.ggm-campaign-copy{position:relative;z-index:3;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:42px 48px}.ggm-campaign-copy>span{font-size:10px;font-weight:900;letter-spacing:1.8px;text-transform:uppercase;opacity:.8}.ggm-campaign-copy h2{max-width:570px;margin:8px 0;color:inherit;font:850 clamp(29px,3.2vw,48px)/1.03 Manrope,sans-serif;letter-spacing:-1.5px}.ggm-campaign-copy p{max-width:530px;margin:0 0 20px;font-size:13px;line-height:1.55;opacity:.82}.ggm-campaign-copy a{display:inline-flex;align-items:center;gap:9px;min-height:39px;padding:0 16px;border-radius:6px;background:#fff;color:#20232b;text-decoration:none;font-size:11px;font-weight:900}.ggm-campaign-art{position:relative;min-height:285px;display:flex;align-items:center;justify-content:center}.ggm-campaign-art>i{position:absolute;width:410px;height:410px;border-radius:50%;background:rgba(255,255,255,.15);box-shadow:0 0 0 55px rgba(255,255,255,.05),0 0 0 110px rgba(255,255,255,.025)}.ggm-banner-product{position:absolute;z-index:2;max-width:45%;max-height:220px;object-fit:contain;filter:drop-shadow(0 20px 25px rgba(0,0,0,.27))}.ggm-banner-product.p1{left:17%;bottom:22px;transform:rotate(-8deg)}.ggm-banner-product.p2{right:16%;bottom:36px;transform:rotate(7deg) scale(.83)}.ggm-banner-product.p3{left:43%;top:23px;transform:rotate(2deg) scale(.7)}
.ggm-tone-teal{background:linear-gradient(110deg,#093e43,#008d83)}.ggm-tone-purple{background:linear-gradient(110deg,#5d2f9a,#8a5ed0)}.ggm-tone-blush{background:linear-gradient(110deg,#f2d6d7,#c88f96);color:#3b1d28}.ggm-tone-aqua{background:linear-gradient(110deg,#1c9ca5,#63cfe0)}.ggm-tone-gaming{background:linear-gradient(110deg,#ee294e 0%,#6e2db3 48%,#2444c8)}.ggm-tone-sand{background:linear-gradient(110deg,#c49b6c,#e5d3b6);color:#3b2e23}.ggm-tone-mint{background:linear-gradient(110deg,#b9e5b6,#eff8d6);color:#194529}.ggm-tone-pink{background:linear-gradient(110deg,#f0b1cf,#f8ddeb);color:#5a2642}.ggm-tone-home{background:linear-gradient(110deg,#c99b68,#efe4d2);color:#45301e}.ggm-tone-maroon{background:linear-gradient(110deg,#3a1119,#771a2c)}.ggm-tone-dark{background:linear-gradient(110deg,#0b1610,#183823)}
.ggm-mini-category-band{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:0;padding:13px;border-radius:0 0 11px 11px;background:#f4eeff}.ggm-mini-category-band a{display:flex;align-items:center;gap:10px;min-width:0;padding:8px;border-radius:10px;background:rgba(255,255,255,.82);color:#333640;text-decoration:none;font-size:9px;font-weight:800}.ggm-mini-category-band span{flex:0 0 49px;width:49px;height:49px;display:grid;place-items:center}.ggm-mini-category-band img{width:100%;height:100%;object-fit:contain}.tone-band-aqua{background:#eafcff}.tone-band-pink{background:#fff0f7}.tone-band-teal{background:#e9f8f5}
.ggm-themed-shelf{margin-top:8px}.tone-shelf-purple{background:#fbf8ff}.tone-shelf-aqua{background:#f2fcfd}.tone-shelf-gaming{background:#faf7ff}.tone-shelf-mint{background:#f5fff5}.tone-shelf-pink{background:#fff8fb}.tone-shelf-sand{background:#fffcf8}
.ggm-service-footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:16px;overflow:hidden}.ggm-service-footer-grid>div{min-height:94px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px;text-align:center;border-right:1px solid #eee}.ggm-service-footer-grid>div:last-child{border-right:0}.ggm-service-footer-grid span{font-size:23px}.ggm-service-footer-grid b{margin-top:5px;color:#282c35;font-size:11px}.ggm-service-footer-grid small{margin-top:3px;color:#8b9099;font-size:9px}
@media(max-width:1180px){.ggm-hero-grid{grid-template-columns:200px minmax(0,1fr)}.ggm-benefit-row{grid-template-columns:repeat(2,1fr)}.ggm-hero-slider{height:330px}.ggm-product-grid,.ggm-product-grid.wide{grid-template-columns:repeat(4,minmax(0,1fr))}.ggm-shortcut-rail{grid-template-columns:repeat(8,minmax(0,1fr))}.ggm-category-cloud-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ggm-mini-promo{grid-template-columns:1fr 74px}.ggm-mini-promo img{width:74px}}
@media(max-width:900px){.ggm-page-shell{width:min(100% - 18px,1000px)}.ggm-hero-grid{grid-template-columns:1fr}.ggm-category-sidebar{display:none}.ggm-promo-grid{grid-template-columns:repeat(2,1fr)}.ggm-shortcut-rail{display:flex;overflow:auto;scrollbar-width:none}.ggm-shortcut-rail a{flex:0 0 90px}.ggm-campaign{grid-template-columns:1fr;min-height:400px}.ggm-campaign-copy{padding:34px 30px}.ggm-campaign-art{min-height:190px}.ggm-banner-product{max-height:160px}.ggm-mini-category-band{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.ggm-home{padding-top:8px}.ggm-page-shell{width:calc(100% - 12px)}.ggm-hero-main{padding:7px}.ggm-benefit-row{display:flex;overflow:auto}.ggm-benefit-row>div{flex:0 0 210px}.ggm-hero-slider{height:420px}.ggm-hero-slide{grid-template-columns:1fr}.ggm-hero-copy{padding:30px 23px 10px;justify-content:flex-start}.ggm-hero-copy h1{font-size:28px}.ggm-hero-art{padding:5px;align-items:flex-start}.ggm-hero-art i{width:230px;height:230px}.ggm-hero-art img{max-height:170px}.ggm-promo-grid{grid-template-columns:1fr 1fr}.ggm-mini-promo{grid-template-columns:1fr;min-height:126px}.ggm-mini-promo img{position:absolute;right:-2px;bottom:-2px;width:70px;height:70px;opacity:.72}.ggm-brand-strip,.ggm-product-shelf,.ggm-feature-category-cloud{padding:14px}.ggm-section-title{align-items:flex-start}.ggm-section-title h2,.ggm-cloud-head h2{font-size:21px}.ggm-section-title p{display:none}.ggm-product-grid,.ggm-product-grid.wide{display:flex;overflow-x:auto;gap:8px;scroll-snap-type:x proximity;scrollbar-width:none}.ggm-product-grid::-webkit-scrollbar{display:none}.ggm-product-card{flex:0 0 165px;scroll-snap-align:start}.ggm-card-media{height:145px}.ggm-category-cloud-grid{display:flex;overflow:auto;scrollbar-width:none}.ggm-category-cloud-grid a{flex:0 0 112px}.ggm-campaign{min-height:360px}.ggm-campaign-copy{padding:28px 22px 12px}.ggm-campaign-copy h2{font-size:30px}.ggm-mini-category-band{display:flex;overflow:auto}.ggm-mini-category-band a{flex:0 0 170px}.ggm-service-footer-grid{grid-template-columns:repeat(2,1fr)}.ggm-service-footer-grid>div:nth-child(2){border-right:0}.ggm-service-footer-grid>div:nth-child(-n+2){border-bottom:1px solid #eee}}

/* GG-BANNER-STRUCTURAL-FIX-V3 — no absolute product positioning */
.ggm-campaign{grid-template-columns:minmax(320px,.92fr) minmax(420px,1.08fr);min-height:300px}
.ggm-campaign-art{position:relative;min-height:300px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:24px 28px}
.ggm-campaign-art>i{pointer-events:none}
.ggm-banner-grid{position:relative;z-index:2;width:min(100%,640px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:center}
.ggm-banner-tile{min-width:0;aspect-ratio:1/1;display:grid;place-items:center;padding:10px;box-sizing:border-box;overflow:hidden;border:1px solid rgba(255,255,255,.82);border-radius:12px;background:rgba(255,255,255,.97);box-shadow:0 16px 30px rgba(0,0,0,.16)}
.ggm-banner-tile img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;box-sizing:border-box;transform:none!important;filter:none!important}
@media(max-width:900px){
  .ggm-campaign{grid-template-columns:1fr;min-height:0}
  .ggm-campaign-copy{padding:34px 30px 14px}
  .ggm-campaign-art{min-height:230px;padding:10px 24px 24px}
  .ggm-banner-grid{width:min(100%,520px);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .ggm-banner-tile-3{display:none}
}
@media(max-width:680px){
  .ggm-campaign{min-height:0}
  .ggm-campaign-copy{padding:28px 22px 12px}
  .ggm-campaign-copy h2{font-size:30px}
  .ggm-campaign-art{min-height:230px;padding:8px 18px 22px;align-items:center;justify-content:center}
  .ggm-campaign-art>i{width:240px;height:240px;left:50%;top:50%;transform:translate(-50%,-50%)}
  .ggm-banner-grid{width:min(72vw,280px);display:block}
  .ggm-banner-tile{width:100%;height:210px;aspect-ratio:auto;padding:10px;border-radius:12px}
  .ggm-banner-tile-2,.ggm-banner-tile-3{display:none}
  .ggm-banner-tile img{width:100%;height:100%;object-fit:contain;object-position:center}
}

/* GG-PRODUCT-CARD-STABILITY-AFTER-BANNER-V3
 * Product-card layout is independent from campaign/banner layout.
 * Keep every card in a row the same height and every CTA pinned to the bottom.
 */
.ggm-product-grid,
.ggm-product-grid.wide{
  align-items:stretch;
}
.ggm-product-card{
  height:100%;
  align-self:stretch;
}
.ggm-card-body{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.ggm-card-body > .ggm-card-action{
  margin-top:auto;
}
.ggm-card-body > form{
  margin-top:auto;
}
.ggm-card-body > form > .ggm-card-action{
  margin-top:0;
}
.ggm-card-action{
  flex:0 0 auto;
  box-sizing:border-box;
}
@media(max-width:680px){
  .ggm-product-grid,
  .ggm-product-grid.wide{
    align-items:stretch;
  }
  .ggm-product-card{
    height:auto;
    align-self:stretch;
  }
}
