/* GGG Hero Content — what a hero says, item by item. (Buttons: ".ggg-hx .ggg-hx__btn", above a site's own link color.) The design gives each kind its font and color (the widget's
   Style tab); sizes S–XL scale an item as a whole (zoom), so they work with any font size the design set. */
.ggg-hx { display: flex; flex-direction: column; align-items: center; gap: var(--hx-gap, 12px); text-align: center; }
.ggg-hx--left { align-items: flex-start; text-align: left; }
.ggg-hx--right { align-items: flex-end; text-align: right; }
.ggg-hx > * { margin: 0; max-width: 100%; }
.ggg-hx__names { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; column-gap: .26em; line-height: 1.05; }
.ggg-hx--left .ggg-hx__names { justify-content: flex-start; }
.ggg-hx--right .ggg-hx__names { justify-content: flex-end; }
.ggg-hx__name { white-space: nowrap; }
.ggg-hx__date--parts { display: inline-flex; align-items: center; gap: .55em; }
.ggg-hx__date--parts i { align-self: stretch; width: 1px; min-height: 1.1em; background: currentColor; opacity: .55; }
.ggg-hx__buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 6px; }
.ggg-hx--left .ggg-hx__buttons { justify-content: flex-start; }
.ggg-hx--right .ggg-hx__buttons { justify-content: flex-end; }
.ggg-hx .ggg-hx__btn { display: inline-flex; align-items: center; justify-content: center; min-width: 150px; padding: 13px 28px; border: 1.5px solid var(--hx-btn-bg, currentColor);
  border-radius: var(--hx-btn-r, 40px); background: var(--hx-btn-bg, #222); color: var(--hx-btn-ink, #fff); text-decoration: none; line-height: 1.2;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease; }
.ggg-hx .ggg-hx__btn:hover, .ggg-hx .ggg-hx__btn:focus-visible { transform: translateY(-1px); box-shadow: 0 10px 22px -14px rgba(0, 0, 0, .55); }
.ggg-hx .ggg-hx__btn:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.ggg-hx .ggg-hx__btn--outline { background: transparent; border-color: var(--hx-btn-line, currentColor); color: var(--hx-btn-line, inherit); }
.ggg-hx .ggg-hx__btn--plain { min-width: 0; padding-left: 4px; padding-right: 4px; background: transparent; border-color: transparent; color: var(--hx-btn-line, inherit); text-decoration: underline; text-underline-offset: 6px; }
.ggg-hx__count { display: flex; flex-wrap: nowrap; justify-content: center; }
.ggg-hx__count .ggg-cdt__box { display: flex; flex-direction: column; align-items: center; padding: 0 clamp(10px, 3vw, 22px); }
.ggg-hx__count .ggg-cdt__box + .ggg-cdt__box { border-left: 1px solid var(--hx-count-line, transparent); }
.ggg-hx__count .ggg-cdt__num { line-height: 1; font-variant-numeric: tabular-nums lining-nums; }
.ggg-hx__count .ggg-cdt__label { margin-top: 6px; }
.ggg-hx__photo { width: var(--hx-photo, 180px); aspect-ratio: 1 / 1; overflow: hidden; border-radius: 50%; box-shadow: 0 0 0 3px var(--hx-photo-ring, rgba(255, 255, 255, .85)), 0 18px 36px -20px rgba(0, 0, 0, .6); }
.ggg-hx__photo--arch { aspect-ratio: 3 / 4; border-radius: 999px 999px 16px 16px; }
.ggg-hx__photo--square { border-radius: 14px; }
.ggg-hx__photo img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
.ggg-hx__ornament { line-height: 0; }
.ggg-hx__ornament svg, .ggg-hx__ornament img { max-width: 100%; height: auto; }
/* Sizes: the item as a whole, larger or smaller than the design made it. */
.ggg-hx--s { zoom: .72; }
.ggg-hx--m { zoom: .86; }
.ggg-hx--l { zoom: 1.2; }
.ggg-hx--xl { zoom: 1.45; }
/* Layouts chosen in the panel: the items in a card, or inside a thin frame. */
.ggg-hx--card { padding: clamp(22px, 4vw, 38px) clamp(20px, 4vw, 44px); border-radius: 24px; background: rgba(20, 10, 30, .32); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ggg-hx--frame { position: relative; padding: clamp(24px, 4vw, 40px) clamp(22px, 4vw, 46px); }
.ggg-hx--frame::before { content: ""; position: absolute; inset: 0; border: 1px solid currentColor; opacity: .55; pointer-events: none; }
.ggg-hx--frame::after { content: ""; position: absolute; inset: 7px; border: 1px solid currentColor; opacity: .3; pointer-events: none; }
@media (max-width: 767px) { .ggg-hx .ggg-hx__btn { min-width: 0; } .ggg-hx--xl { zoom: 1.25; } }
/* The design's own button (a skin: GGG Site Data's hero items drawn with the design's elements), outlined or as text. */
.ggg-skin--outline .elementor-button { background-color: transparent !important; box-shadow: inset 0 0 0 1.5px currentColor !important; }
.ggg-skin--plain .elementor-button { background-color: transparent !important; border-color: transparent !important; box-shadow: none !important; text-decoration: underline; text-underline-offset: 6px; }
/* A line of words right after the countdown (the design spaced the countdown for the buttons that followed it). */
.ggg-skin-countdown + .ggg-skin-text { margin-top: clamp(10px, 2.2vh, 24px); }
/* A business's items: icons in buttons and lines, the logo, the stars, a price, a label. */
.ggg-hx .ggg-hx__btn{display:inline-flex;align-items:center;gap:8px}
.ggg-hx__ic{width:18px;height:18px;flex:none}
.ggg-hx__ic,.ggg-hx__ic *{fill:none!important;stroke:currentColor!important}
.ggg-hx__line{display:inline-flex;align-items:center;gap:8px;margin:0}
.ggg-hx__line a{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
.ggg-hx__line a:hover span{text-decoration:underline;text-underline-offset:3px}
.ggg-hx--center .ggg-hx__line{justify-content:center}
.ggg-hx__logo{margin:0}
.ggg-hx__logo img{display:block;width:auto;max-width:min(240px,60vw);max-height:96px;height:auto;object-fit:contain}
.ggg-hx--center .ggg-hx__logo img{margin:0 auto}
.ggg-hx--right .ggg-hx__logo img{margin-left:auto}
.ggg-hx__rating{display:inline-flex;align-items:center;gap:10px;margin:0;flex-wrap:wrap}
.ggg-hx__stars{--hx-star:#e0a526;font-size:1.2em;letter-spacing:2px;line-height:1;background:linear-gradient(90deg,var(--hx-star) var(--hx-r,100%),rgba(127,127,127,.35) var(--hx-r,100%));-webkit-background-clip:text;background-clip:text;color:transparent}
.ggg-hx__price{margin:0;font-size:clamp(26px,3.4vw,40px);font-weight:600;line-height:1.1}
.ggg-hx__badge-row{margin:0}
.ggg-hx__badge{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--e-global-color-ggg_primary,#333);color:var(--e-global-color-ggg_on_primary,#fff);font-size:13px;font-weight:600;letter-spacing:.04em}


/* A picture's shapes and borders (its color: the item's, else white), its turn, its place in the row, how it comes in.
   Also on the design's own elements drawing an item (GGG Site Data's skins: the same classes). */
.ggg-hx__photo--rounded { border-radius: 18px; }
.ggg-hx__photo--natural { width: var(--hx-photo, 240px); aspect-ratio: auto; border-radius: 0; box-shadow: none; }
.ggg-hx__photo--natural img { height: auto !important; object-fit: contain; }
.ggg-hx-frame--none { box-shadow: none !important; }
.ggg-hx-frame--thin { box-shadow: 0 0 0 2px var(--hx-frame, #fff), 0 18px 36px -20px rgba(0, 0, 0, .6) !important; }
.ggg-hx-frame--thick { box-shadow: 0 0 0 7px var(--hx-frame, #fff), 0 18px 36px -20px rgba(0, 0, 0, .6) !important; }
.ggg-hx-frame--double { box-shadow: 0 0 0 2px var(--hx-frame, #fff), 0 0 0 7px transparent, 0 0 0 9px var(--hx-frame, #fff), 0 18px 36px -20px rgba(0, 0, 0, .6) !important; margin: 9px; }
.ggg-hx__logo.ggg-hx-frame--thin, .ggg-hx__logo.ggg-hx-frame--thick, .ggg-hx__logo.ggg-hx-frame--double { padding: 10px; border-radius: 10px; }
.ggg-hx-rot--l8 { rotate: -8deg; }
.ggg-hx-rot--l3 { rotate: -3deg; }
.ggg-hx-rot--r3 { rotate: 3deg; }
.ggg-hx-rot--r8 { rotate: 8deg; }
.ggg-hx-al--left { align-self: flex-start !important; margin-right: auto; }
.ggg-hx-al--center { align-self: center !important; margin-left: auto; margin-right: auto; }
.ggg-hx-al--right { align-self: flex-end !important; margin-left: auto; }
@keyframes gggHxFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gggHxZoom { from { opacity: 0; scale: .82; } to { opacity: 1; scale: 1; } }
@keyframes gggHxUp { from { opacity: 0; translate: 0 28px; } to { opacity: 1; translate: 0 0; } }
@keyframes gggHxFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
.ggg-hx-in--fade { animation: gggHxFade 1.1s ease .25s both; }
.ggg-hx-in--zoom { animation: gggHxZoom .9s cubic-bezier(.2, .7, .3, 1) .25s both; }
.ggg-hx-in--up { animation: gggHxUp .9s cubic-bezier(.2, .7, .3, 1) .25s both; }
.ggg-hx-in--float { animation: gggHxFloat 5s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .ggg-hx-in--fade, .ggg-hx-in--zoom, .ggg-hx-in--up, .ggg-hx-in--float { animation: none; } }
/* An item the design's hero has no element for, drawn here inside that hero: the design's fonts, the hero's ink. */
.ggg-hero-words .ggg-hx { font-family: var(--e-global-typography-text-font-family, inherit); }
.ggg-hero-words .ggg-hx__title, .ggg-hero-words .ggg-hx__names, .ggg-hero-words .ggg-hx__date, .ggg-hero-words .ggg-cdt__num, .ggg-hero-words .ggg-hx__price { font-family: var(--e-global-typography-primary-font-family, inherit); }
.ggg-hero-words .ggg-hx__count .ggg-cdt__num { font-size: clamp(26px, 4vw, 40px); }
.ggg-hero-words .ggg-hx__count .ggg-cdt__label { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.ggg-hero-photo .ggg-hero-words .ggg-hx { color: var(--e-global-color-ggg_on_media, #fff); }
/* The design's countdown borrowed from its section (GGG Site Data: ggg-skin-lent): one row, in the hero's ink over a photo. */
.ggg-hero-words .ggg-skin-lent .ggg-cdt { flex-wrap: nowrap !important; justify-content: center; gap: clamp(6px, 2vw, 18px) !important; }
.ggg-hero-words .ggg-skin-lent .ggg-cdt__box { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; max-width: 130px; margin: 0 !important; }
.ggg-hero-words .ggg-skin-lent .ggg-cdt__num { font-size: clamp(30px, 8vw, 60px) !important; }
.ggg-hero-words .ggg-skin-lent .ggg-cdt__label { font-size: clamp(9px, 2.4vw, 13px) !important; letter-spacing: .1em !important; white-space: nowrap; }
.ggg-hero-photo .ggg-hero-words .ggg-skin-lent .ggg-cdt__num, .ggg-hero-photo .ggg-hero-words .ggg-skin-lent .ggg-cdt__label { color: var(--e-global-color-ggg_on_media, #fff) !important; }
/* An item's type, over the design's (GGG Site Data's skins and the plain items): case, letter spacing, weight. */
.ggg-hx-case--upper, .ggg-hx-case--upper .elementor-heading-title, .ggg-hx-case--upper text { text-transform: uppercase !important; }
.ggg-hx-case--lower, .ggg-hx-case--lower .elementor-heading-title, .ggg-hx-case--lower text { text-transform: lowercase !important; }
.ggg-hx-case--title, .ggg-hx-case--title .elementor-heading-title, .ggg-hx-case--title text { text-transform: capitalize !important; }
.ggg-hx-case--none, .ggg-hx-case--none .elementor-heading-title, .ggg-hx-case--none text { text-transform: none !important; }
.ggg-hx-spacing--tight, .ggg-hx-spacing--tight .elementor-heading-title, .ggg-hx-spacing--tight text { letter-spacing: -.01em !important; }
.ggg-hx-spacing--normal, .ggg-hx-spacing--normal .elementor-heading-title, .ggg-hx-spacing--normal text { letter-spacing: normal !important; }
.ggg-hx-spacing--wide, .ggg-hx-spacing--wide .elementor-heading-title, .ggg-hx-spacing--wide text { letter-spacing: .14em !important; }
.ggg-hx-spacing--wider, .ggg-hx-spacing--wider .elementor-heading-title, .ggg-hx-spacing--wider text { letter-spacing: .3em !important; }
.ggg-hx-weight--300, .ggg-hx-weight--300 .elementor-heading-title, .ggg-hx-weight--300 text { font-weight: 300 !important; }
.ggg-hx-weight--400, .ggg-hx-weight--400 .elementor-heading-title, .ggg-hx-weight--400 text { font-weight: 400 !important; }
.ggg-hx-weight--600, .ggg-hx-weight--600 .elementor-heading-title, .ggg-hx-weight--600 text { font-weight: 600 !important; }
.ggg-hx-weight--700, .ggg-hx-weight--700 .elementor-heading-title, .ggg-hx-weight--700 text { font-weight: 700 !important; }
.ggg-hx--xs { zoom: .58; }
.ggg-hx--xxl { zoom: 1.8; }
@media (max-width: 767px) { .ggg-hx--xxl { zoom: 1.45; } }
.ggg-hx-rot--l15 { rotate: -15deg; }
.ggg-hx-rot--r15 { rotate: 15deg; }
/* Words along an arc (or straight) in the type of the design's element for them: 1em of it = 1/18 of the line's width. */
.ggg-hx-curve { width: calc(var(--ggg-fs, 32px) * 18); max-width: 100%; margin: 0 auto; line-height: 1; }
.ggg-hx-curve svg { display: block; width: 100%; height: auto; overflow: visible; }
.ggg-hx-curve text { font-size: 33.3px; fill: currentColor; font-family: inherit; font-weight: inherit; font-style: inherit; letter-spacing: inherit; text-transform: inherit; }
.ggg-hx-line { font-size: var(--ggg-fs, inherit); line-height: 1.2; text-align: center; }
/* A line and a space between items. */
.ggg-hx__divider, .elementor-widget .ggg-hx__divider { display: block; width: 120px; height: 0; border-top: 1px solid currentColor; opacity: .7; margin: 4px auto; }
.ggg-hx__divider.ggg-hx--l, .ggg-hx__divider.ggg-hx--xl, .ggg-hx__divider.ggg-hx--xxl { width: 220px; zoom: 1; }
.ggg-hx__spacer { display: block; height: 24px; }
.ggg-hx__spacer.ggg-hx--xs, .ggg-hx__spacer.ggg-hx--s { height: 10px; zoom: 1; }
.ggg-hx__spacer.ggg-hx--l { height: 44px; zoom: 1; } .ggg-hx__spacer.ggg-hx--xl, .ggg-hx__spacer.ggg-hx--xxl { height: 72px; zoom: 1; }
.ggg-hero-photo .ggg-hero-words .ggg-skin-curved { color: var(--e-global-color-ggg_on_media, #fff); }

/* An element's own space above / below (the owner's: Opening section → the element → Space above / below). */
.ggg-hx-mt--none{margin-top:0!important}.ggg-hx-mt--xs{margin-top:4px!important}.ggg-hx-mt--s{margin-top:10px!important}.ggg-hx-mt--m{margin-top:20px!important}.ggg-hx-mt--l{margin-top:36px!important}.ggg-hx-mt--xl{margin-top:60px!important}
.ggg-hx-mb--none{margin-bottom:0!important}.ggg-hx-mb--xs{margin-bottom:4px!important}.ggg-hx-mb--s{margin-bottom:10px!important}.ggg-hx-mb--m{margin-bottom:20px!important}.ggg-hx-mb--l{margin-bottom:36px!important}.ggg-hx-mb--xl{margin-bottom:60px!important}

/* Two columns of the hero's elements (the owner's: Opening section layout → Columns): side by side from tablets up,
   one after the other on phones. Designs that draw the items with their own elements (.ggg-hero-col containers), and
   this widget (.ggg-hx__col). */
.ggg-hero-cols{display:flex!important;flex-direction:column!important;align-items:stretch;width:100%;gap:var(--row-gap,var(--gap,14px));padding:0!important;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.ggg-hero-col{display:flex!important;flex-direction:column!important;align-items:center;gap:var(--row-gap,var(--gap,14px));min-width:0;padding:0!important;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.ggg-hx__col{display:flex;flex-direction:column;align-items:inherit;gap:var(--hx-gap,12px);min-width:0}
@media(min-width:768px){
.ggg-hero-cols{flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;column-gap:clamp(24px,5vw,72px)!important}
.ggg-hero-cols>.ggg-hero-col{flex:1 1 0!important;width:auto!important;max-width:none!important}
.ggg-hx.ggg-hx--cols{flex-direction:row;align-items:center;column-gap:clamp(24px,5vw,72px)}
.ggg-hx--cols>.ggg-hx__col{flex:1 1 0}
}

/* An element left out on some devices (the owner's: the element → Shows on). Elementor's breakpoints. */
@media (min-width:1025px){.ggg-hx-off--d{display:none!important}}
@media (min-width:768px) and (max-width:1024px){.ggg-hx-off--t{display:none!important}}
@media (max-width:767px){.ggg-hx-off--m{display:none!important}}
