/* Giant Island shared visual system. Content typography is set in Elementor Globals;
   this stylesheet owns shared components and opt-in layout roles. */
body.gi-brand-system {
  --gi-bg: #0b0d14;
  --gi-surface-dark: #141923;
  --gi-surface: #ffffff;
  --gi-surface-soft: #f5f6f8;
  --gi-text: #111827;
  --gi-copy: #475467;
  --gi-muted: #667085;
  --gi-border: #dfe4eb;
  --gi-orange: #ff7826;
  --gi-pink: #fa329b;
  --gi-font-body: "GI Inter", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --gi-content-max: 1440px;
  --gi-gutter: 48px;
  --gi-section-space: 96px;
  --gi-card-radius: 6px;
  --gi-control-radius: 4px;
  --et_main-color: var(--gi-orange);
  --et_dark-color: var(--gi-text);
  --et_border-color: var(--gi-border);
  background: var(--gi-surface);
  color: var(--gi-copy);
  font-family: var(--gi-font-body);
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
.gi-brand-system *, .gi-brand-system *::before, .gi-brand-system *::after { box-sizing: border-box; }
.gi-brand-system :where(button, input, select, textarea) { font-family: inherit; }
.gi-brand-system .gi-ui-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.gi-brand-system .gi-ui-icon svg{display:block;width:24px;height:24px}
.gi-brand-system :where(h1,h2,h3,h4,h5,h6) { color: var(--gi-text); font-weight: 650; line-height: 1.22; letter-spacing: -.025em; }
.gi-brand-system :where(h1) { font-size: clamp(36px, 3.4vw, 56px); }
.gi-brand-system :where(h2) { font-size: clamp(28px, 2.45vw, 40px); }
.gi-brand-system :where(h3) { font-size: clamp(21px, 1.65vw, 25px); }
.gi-brand-system :where(p,ul,ol) { line-height: 1.7; }
.gi-brand-system :where(p:last-child,ul:last-child,ol:last-child) { margin-bottom: 0; }
.gi-brand-system :where(a,button,input,select,textarea):focus-visible { outline: 2px solid var(--gi-orange); outline-offset: 4px; }
.gi-brand-system ::selection { background: #ffdcc6; color: #111827; }
.gi-brand-system :where(.content,.post-content,.entry-content) p > a:not(.button) { color: #a44108; text-underline-offset: .18em; }

/* Shared section roles are applied only to existing content sections. */
body.gi-brand-system .gi-section { margin-block: 0; padding-block: var(--gi-section-space); }
.gi-brand-system .gi-section > .elementor-container,
.gi-brand-system .gi-section > .e-con-inner {
  width: calc(100% - var(--gi-gutter) * 2);
  max-width: var(--gi-content-max);
  margin-inline: auto;
  padding-inline: 0;
}
.gi-brand-system .gi-section + .gi-section.gi-tone-light { border-top: 1px solid #eef1f5; }
.gi-brand-system .gi-section :where(.elementor-widget-heading) { margin-bottom: 24px; }
.gi-brand-system .gi-section :where(.elementor-widget-text-editor) { line-height: 1.7; }
.gi-brand-system .gi-tone-dark { color: #d2d7df; }
.gi-brand-system .gi-tone-dark :where(h1,h2,h3,h4,h5,h6,.elementor-heading-title) { color: #f5f5f7; }
.gi-brand-system .gi-tone-dark :where(p,li) { color: #d2d7df; }

.gi-brand-system .gi-card { border: 1px solid var(--gi-border); border-radius: var(--gi-card-radius); padding: 28px; background: white; }
.gi-brand-system .gi-card.gi-tone-dark { border-color: #303846; background: var(--gi-surface-dark); }

/* The home gateway keeps its own scene and card composition. */
body.gi-brand-system.page-id-5 { background: var(--gi-bg); }
body.gi-brand-system.page-id-5 #gi-project-portal,
body.gi-brand-system.page-id-5 #gi-home-footer { color: #f5f5f7; }

/* Inner-page header. The template and the editor remain the source of nav content. */
body.gi-brand-system .elementor-location-header {
  background: var(--gi-bg);
  border-bottom: 1px solid #262b34;
  position: relative;
  z-index: 40;
}
body.gi-brand-system .elementor-location-header .elementor-element-4f7b623a { padding: 0; }
body.gi-brand-system .elementor-location-header .elementor-element-4f7b623a > .e-con-inner {
  width: calc(100% - var(--gi-gutter) * 2);
  max-width: var(--gi-content-max);
  margin-inline: auto;
  min-height: 84px;
  padding-block: 15px;
  align-items: center;
}
body.gi-brand-system .elementor-location-header .elementor-element-67d8a3b1 { align-items: center; gap: 32px; }
body.gi-brand-system .elementor-location-header .elementor-element-59195813 { width: auto; min-width: 0; flex: 1 1 auto; }
body.gi-brand-system .elementor-location-header .elementor-element-03864bc { width: auto; flex: 0 0 auto; margin-inline-start: auto; }

body.gi-brand-system .elementor-location-header .elementor-widget-theme-etheme_site-logo { flex-shrink: 0; }
body.gi-brand-system .elementor-location-header .elementor-element-e8d647c { width: 124px; --container-widget-width: 124px; }
body.gi-brand-system .elementor-location-header .elementor-element-e8d647c img { width: 124px; height: auto; max-width: 100%; max-height: 84px; object-fit: contain; }
body.gi-brand-system .elementor-location-header .etheme-elementor-nav-menu { align-items: center; }
body.gi-brand-system .elementor-location-header .etheme-elementor-nav-menu .item-link { font-family: var(--gi-font-body); font-size: 16px; font-weight: 400; letter-spacing: 0; }
body.gi-brand-system .elementor-location-header .etheme-elementor-nav-menu-item:not(.menu-item-has-children) > .item-link { white-space: nowrap; }
body.gi-brand-system .elementor-location-header .current-menu-item > .item-link,
body.gi-brand-system .elementor-location-header .current-menu-ancestor > .item-link { color: var(--gi-orange); }
body.gi-brand-system .elementor-location-header .gi-header-search-toggle { display: none; }
body.gi-brand-system .elementor-location-header .gi-header-search-toggle,
body.gi-brand-system .elementor-location-header .etheme-elementor-mobile-menu-toggle {
  min-width: 44px; min-height: 44px; align-items: center; justify-content: center;
}

/* One full-width breadcrumb band; the text follows the site's content rail. */
body.gi-brand-system .gi-template-shell.gi-breadcrumb-shell>.elementor-container{width:100%;max-width:none;margin:0}
body.gi-brand-system .gi-breadcrumb-shell>.elementor-container>.elementor-column>.elementor-widget-wrap{padding:0}
body.gi-brand-system .page-heading{width:100%;background:var(--gi-surface-soft);border:0;border-radius:0;margin:0;padding:16px 0;font:400 14px/1.6 var(--gi-font-body);color:var(--gi-text)}
body.gi-brand-system .page-heading>.container{width:calc(100% - var(--gi-gutter)*2);max-width:var(--gi-content-max);margin-inline:auto;padding:0;background:transparent}
body.gi-brand-system .page-heading .row{margin:0}
body.gi-brand-system .page-heading .col-md-12{padding:0;font:inherit;text-align:start}
body.gi-brand-system .page-heading :is(.breadcrumbs,.woocommerce-breadcrumb){margin:0;padding:0;font:400 14px/1.6 var(--gi-font-body);letter-spacing:0;color:var(--gi-text);white-space:normal;overflow-wrap:anywhere;text-align:start}
body.gi-brand-system .page-heading :is(.breadcrumbs,.woocommerce-breadcrumb) a{font:inherit;color:var(--gi-muted);text-decoration:none}
body.gi-brand-system .page-heading :is(.breadcrumbs,.woocommerce-breadcrumb) a:hover{color:#a44108;text-decoration:underline;text-underline-offset:3px}
body.gi-brand-system .page-heading :is(.current,.current-item,.title){display:inline;margin:0;font:500 1em/1.6 var(--gi-font-body);letter-spacing:0;text-transform:none;color:var(--gi-text);white-space:normal;overflow-wrap:anywhere}
body.gi-brand-system .page-heading .delimeter{display:inline-flex;align-items:center;margin-inline:8px;color:#98a2b3;font-size:10px;vertical-align:middle}
/* XStore sets these separators with !important and adds a second kind before native titles. */
body.gi-brand-system .page-heading .delimeter:not(:last-child),body.gi-brand-system .page-heading .title:before{font-size:10px!important}
body.gi-brand-system .page-heading .title:before{padding:0;margin-inline:8px;color:#98a2b3;vertical-align:middle}

/* Button roles; special home controls and icon-only utilities are excluded. */
body.gi-brand-system:not(.page-id-5) :where(.elementor-widget-button,.elementor-widget-text_button) :where(.elementor-button,.etheme-text-button) {
  border-radius: var(--gi-control-radius);
  min-height: 48px;
  padding: 12px 22px;
  font-family: var(--gi-font-body);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0;
  box-shadow: none;
}
.gi-brand-system :where(.elementor-button-content-wrapper) { align-items: center; gap: 10px; }
.gi-brand-system :where(.elementor-button-icon) { display: inline-flex; align-items: center; }
body.gi-brand-system :where(a.button,button.button,input[type="submit"],.single_add_to_cart_button,.wpcf7-submit) {
  min-height: 48px;
  padding: 12px 22px;
  border: 1px solid var(--gi-orange);
  border-radius: var(--gi-control-radius);
  background: var(--gi-orange);
  color: #111827;
  font-family: var(--gi-font-body);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  text-transform: none;
  letter-spacing: 0;
  box-shadow: none;
  transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s;
}
body.gi-brand-system :where(a.button,button.button,input[type="submit"],.single_add_to_cart_button,.wpcf7-submit):hover {
  background: #141923; border-color: #141923; color: white;
}
.gi-brand-system :where(.button,.elementor-button):disabled { opacity: .55; cursor: not-allowed; }
.gi-brand-system :where(.button.loading,.wpcf7 form.submitting .wpcf7-submit) { cursor: progress; }

/* Form fields share a readable border, padding and focus state. */
body.gi-brand-system :where(.wpcf7-form,.woocommerce form,.comment-form) :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]),select,textarea) {
  width: 100%; max-width: 100%; min-height: 52px;
  padding: 13px 15px;
  border: 1px solid #cfd6df;
  border-radius: var(--gi-control-radius);
  background: #fff;
  color: #111827;
  font-family: var(--gi-font-body);
  font-size: 16px;
  line-height: 1.5;
  box-shadow: none;
  transition: border-color .2s, box-shadow .2s;
}
body.gi-brand-system :where(.wpcf7-form,.woocommerce form,.comment-form) :where(input,select,textarea):focus { border-color: var(--gi-orange); box-shadow: 0 0 0 3px #ff782619; }
body.gi-brand-system :where(.wpcf7-form,.woocommerce form,.comment-form) textarea { min-height: 164px; resize: vertical; }
body.gi-brand-system :where(input,textarea)::placeholder { color: #798291; opacity: 1; }
body.gi-brand-system .wpcf7-form label { color: #344054; font-size: 14px; font-weight: 600; line-height: 1.5; }
body.gi-brand-system .wpcf7-form .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
body.gi-brand-system .wpcf7-form p { margin-bottom: 22px; }
body.gi-brand-system .wpcf7-form input[type="file"] { max-width: 100%; padding: 14px; border: 1px dashed #c6cfd9; border-radius: var(--gi-control-radius); background: #f7f8fa; font-size: 14px; color: #475467; }
body.gi-brand-system .wpcf7-not-valid-tip { margin-top: 7px; color: #b42318; font-size: 14px; font-weight: 400; }
body.gi-brand-system .wpcf7-form .wpcf7-not-valid { border-color: #d92d20; }
body.gi-brand-system .wpcf7 form .wpcf7-response-output { margin: 20px 0 0; border-radius: var(--gi-control-radius); padding: 14px 16px; font-size: 15px; }
body.gi-brand-system .wpcf7 form.sent .wpcf7-response-output { border-color: #a7cdb8; background: #f0f9f4; color: #155b37; }
body.gi-brand-system .wpcf7 form.invalid .wpcf7-response-output,
body.gi-brand-system .wpcf7 form.failed .wpcf7-response-output { border-color: #f0c5b7; background: #fff7f3; color: #912b18; }
body.gi-brand-system.page-id-38 .elementor-element-fb52f3e { border: 1px solid var(--gi-border); border-radius: var(--gi-card-radius); padding: 28px; }

/* Case and product cards keep imagery distinct from the caption. */
body.gi-brand-system .content-product { border: 1px solid var(--gi-border); border-radius: var(--gi-card-radius); background: #fff; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
body.gi-brand-system .content-product:hover { border-color: #c6cdd7; box-shadow: 0 12px 30px #14202f0c; }
body.gi-brand-system .content-product .product-image-wrapper { background: #f5f6f8; aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; }
body.gi-brand-system .content-product .product-content-image { width: 100%; }
body.gi-brand-system .content-product .product-content-image img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; object-position: center; }
body.gi-brand-system .content-product .product-details { padding: 20px; }
body.gi-brand-system .content-product .product-title { font-family: var(--gi-font-body); font-size: 19px; font-weight: 600; line-height: 1.35; letter-spacing: -.02em; }
body.gi-brand-system .content-product .product-title a { color: var(--gi-text); }
body.gi-brand-system .content-product .product-title a:hover { color: #ad470a; }
body.gi-brand-system .content-product .products-page-cats { color: var(--gi-muted); font-size: 13px; line-height: 1.5; }
/* Native project archive: keep Isotope filtering and give every case a visible caption. */
body.gi-brand-system .portfolio-wrapper{margin:0;overflow:visible}
body.gi-brand-system .portfolio-wrapper>.portfolio{width:calc(100% + 24px);margin:0 -12px}
body.gi-brand-system .portfolio-item.port-style-default{width:33.333333%;margin:0;padding:12px;border-radius:0;background:transparent;overflow:visible}
body.gi-brand-system .port-style-default .portfolio-item-inner{height:100%;overflow:hidden;border:1px solid var(--gi-border);border-radius:6px;background:#fff;box-shadow:0 3px 12px #14202f04;transition:border-color .2s,box-shadow .2s}
body.gi-brand-system .port-style-default .portfolio-item-inner:hover,body.gi-brand-system .port-style-default .portfolio-item-inner:focus-within{border-color:#f0ae84;box-shadow:0 8px 24px #14202f0c}
body.gi-brand-system .port-style-default .portfolio-image{position:relative;overflow:hidden;width:100%;aspect-ratio:16/10;background:#f5f6f8}
body.gi-brand-system .port-style-default .portfolio-image>a{position:absolute;inset:0;display:block;width:100%;height:100%}
body.gi-brand-system .port-style-default .portfolio-image img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
body.gi-brand-system .port-style-default .portfolio-image:before,body.gi-brand-system .port-style-default .zoom{display:none}
body.gi-brand-system .port-style-default .portfolio-descr{position:relative;inset:auto;display:block;padding:20px 22px 22px;opacity:1;visibility:visible;transform:none;z-index:auto;background:#fff;color:var(--gi-text);text-align:left}
body.gi-brand-system .port-style-default .posted-in{display:block;min-height:18px;margin:0 0 10px;font:500 11px/18px var(--gi-font-body);letter-spacing:.07em;color:var(--gi-muted);text-transform:uppercase}
body.gi-brand-system .port-style-default .posted-in a{color:#ad470a;font:inherit;letter-spacing:inherit}
body.gi-brand-system .port-style-default .posted-in:empty:before{content:"Project showcase"}
body.gi-brand-system .port-style-default .project-title{margin:0;padding:0;font:600 20px/1.35 var(--gi-font-body);letter-spacing:-.02em;text-transform:none}
body.gi-brand-system .port-style-default .project-title>a{position:relative;display:block;min-height:2.7em;padding-right:50px;color:var(--gi-text);font:inherit;letter-spacing:inherit;overflow-wrap:anywhere}
body.gi-brand-system .port-style-default .project-title>a:after{content:"";position:absolute;right:0;top:calc(50% - 18px);width:36px;height:36px;border:1px solid #e3e7ed;border-radius:4px;background:#f7f8fa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111827' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 17 10-10M7 7h10v10'/%3E%3C/svg%3E") center/22px no-repeat;transition:background-color .2s,border-color .2s}
body.gi-brand-system .port-style-default .portfolio-item-inner:hover .project-title>a:after,body.gi-brand-system .port-style-default .portfolio-item-inner:focus-within .project-title>a:after{border-color:var(--gi-orange);background-color:var(--gi-orange)}
body.gi-brand-system .portfolio-filters{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;margin:32px 0 20px;padding:0;list-style:none}
body.gi-brand-system .portfolio-filters li{flex:0 0 auto;margin:0;padding:0}
body.gi-brand-system .portfolio-filters a{display:flex;align-items:center;justify-content:center;min-height:42px;margin:0;padding:10px 15px;border:1px solid var(--gi-border);border-radius:4px;background:#fff;color:var(--gi-copy);font:500 12px/1.4 var(--gi-font-body);letter-spacing:.01em;text-transform:none}
body.gi-brand-system .portfolio-filters a:before,body.gi-brand-system .portfolio-filters a:after{display:none}
body.gi-brand-system .portfolio-filters a:hover{border-color:#f0ae84;background:#fff7f1;color:#a4410c}
body.gi-brand-system .portfolio-filters a.active{border-color:#141923;background:#141923;color:#fff}
@media(max-width:1024px){body.gi-brand-system .portfolio-item.port-style-default{width:50%}}
@media(max-width:600px){
 body.gi-brand-system .portfolio-item.port-style-default{width:100%;padding:10px 12px}
 body.gi-brand-system .port-style-default .portfolio-descr{padding:18px 20px 20px}
 body.gi-brand-system .port-style-default .project-title{font-size:19px}
 body.gi-brand-system .portfolio-filters{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:4px;margin:24px 0 12px;scrollbar-width:none;overscroll-behavior-x:contain}
 body.gi-brand-system .portfolio-filters::-webkit-scrollbar{display:none}
 body.gi-brand-system .portfolio-filters a{white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){body.gi-brand-system .port-style-default .portfolio-item-inner,body.gi-brand-system .port-style-default .project-title>a:after{transition:none}}

/* Product detail and utility pages retain the WooCommerce structure. */
body.gi-brand-system.single-product .product_title { font-family: var(--gi-font-body); font-size: clamp(28px,2.6vw,40px); line-height: 1.2; letter-spacing: -.03em; margin-bottom: 22px; }
body.gi-brand-system.single-product .woocommerce-product-details__short-description { font-size: 17px; line-height: 1.75; color: var(--gi-copy); }
body.gi-brand-system.single-product .woocommerce-product-gallery__image img { width: 100%; height: auto; object-fit: contain; }
body.gi-brand-system.single-product .product_meta { padding-block: 20px; border-block: 1px solid var(--gi-border); font-size: 14px; line-height: 1.7; }
body.gi-brand-system.single-product .woocommerce-tabs { margin-top: 48px; }
body.gi-brand-system.single-product .woocommerce-tabs:not(:has(.wc-tab)) { display: none; }
body.gi-brand-system.single-product .woocommerce-tabs .tabs { border-bottom: 1px solid var(--gi-border); }
body.gi-brand-system.single-product .woocommerce-tabs .tabs a { font-family: var(--gi-font-body); font-size: 16px; font-weight: 600; text-transform: none; letter-spacing: 0; }
body.gi-brand-system .shop_table { border-color: var(--gi-border); border-radius: var(--gi-card-radius); }
body.gi-brand-system .shop_table :where(th,td) { border-color: var(--gi-border); padding-block: 18px; }
body.gi-brand-system .woocommerce-info,
body.gi-brand-system .woocommerce-message,
body.gi-brand-system .woocommerce-error { border-radius: var(--gi-card-radius); font-family: var(--gi-font-body); }

/* Reading pages and FAQ inherit the same hierarchy without fixed text heights. */
body.gi-brand-system.single-post .post-description { font-size: 18px; line-height: 1.8; color: var(--gi-copy); }
body.gi-brand-system.single-post .post-description :where(p,ul,ol) { margin-bottom: 1.25em; }
body.gi-brand-system.single-post .post-description :where(h2,h3) { margin-top: 1.8em; margin-bottom: .7em; }
body.gi-brand-system.single-post .post-description img { max-width: 100%; height: auto; border-radius: var(--gi-card-radius); }
body.gi-brand-system .blog-post .post-heading { font-family: var(--gi-font-body); line-height: 1.3; letter-spacing: -.025em; }
body.gi-brand-system .blog-post .meta-post { color: var(--gi-muted); font-size: 14px; }
body.gi-brand-system :where(.elementor-accordion,.elementor-toggle) .elementor-tab-title { padding: 21px 24px; border-color: var(--gi-border); font-family: var(--gi-font-body); font-size: 18px; line-height: 1.4; }
body.gi-brand-system :where(.elementor-accordion,.elementor-toggle) .elementor-tab-content { padding: 0 24px 24px; border-color: var(--gi-border); font-family: var(--gi-font-body); line-height: 1.7; }
body.gi-brand-system :where(.yith-faqs,.yith-faq) :where(input[type="text"],input[type="search"]) { border: 1px solid var(--gi-border); border-radius: var(--gi-control-radius); min-height: 50px; }
body.gi-brand-system :where(.yith-faqs,.yith-faq) :where(.faq-title,.faq-title h3) { font-family: var(--gi-font-body); line-height: 1.45; }

/* Existing dark service cards now share borders and radius. */
body.gi-brand-system.page-id-2590 :is(.elementor-element-eb71a29,.elementor-element-0b64239,.elementor-element-b22c56a,.elementor-element-45a3f20,.elementor-element-00f0f87,.elementor-element-9ae4fdb,.elementor-element-c448b93,.elementor-element-e6fba9e,.elementor-element-a1dc110,.elementor-element-b90ca34,.elementor-element-cba3847,.elementor-element-ddd9bf5) > .elementor-widget-container { border: 1px solid #303846; border-radius: var(--gi-card-radius); padding: 26px 24px; }
body.gi-brand-system.page-id-39 :is(.elementor-element-175d5da,.elementor-element-2cb0daa,.elementor-element-9362ac2,.elementor-element-5749324) > .elementor-widget-wrap { border: 1px solid #303846; border-radius: var(--gi-card-radius); overflow: hidden; }
body.gi-brand-system .elementor-widget-etheme_icon_box > .elementor-widget-container { border-radius: var(--gi-card-radius); border: 1px solid var(--gi-border); overflow: hidden; }
body.gi-brand-system :where(.elementor-widget-video,.elementor-widget-image-carousel) iframe { border-radius: var(--gi-card-radius); }

/* Inner footer content owns its native typography; the homepage footer is separate. */
body.gi-brand-system .elementor-location-footer { background: var(--gi-bg); color: #bcc3ce; border-top: 1px solid #272e39; }

/* Original contact links remain usable without JavaScript. */
body.gi-brand-system #gi-contact-links{right:24px;bottom:max(24px,env(safe-area-inset-bottom));align-items:flex-end;font-family:var(--gi-font-body);--gi-dock-size:56px}
body.gi-brand-system #gi-contact-links .gi-contact-toggle{position:relative;display:flex;align-items:center;justify-content:center;width:var(--gi-dock-size);height:var(--gi-dock-size);min-width:0;min-height:0;margin:0;padding:0;border:0;background:none;color:var(--gi-text);cursor:pointer;box-shadow:none}
body.gi-brand-system #gi-contact-links .gi-contact-orb{display:flex;align-items:center;justify-content:center;width:var(--gi-dock-size);height:var(--gi-dock-size);flex:0 0 var(--gi-dock-size);border-radius:50%;background:var(--gi-orange);color:#111827;box-shadow:0 5px 18px #0b0d1424;transition:background-color .18s,transform .18s}
body.gi-brand-system #gi-contact-links .gi-contact-orb svg{width:25px;height:25px}
body.gi-brand-system #gi-contact-links .gi-contact-toggle:hover .gi-contact-orb{background:#ff8b46}
body.gi-brand-system #gi-contact-links .gi-contact-close-icon,body.gi-brand-system #gi-contact-links.is-open .gi-contact-open-icon{display:none}
body.gi-brand-system #gi-contact-links.is-open .gi-contact-close-icon{display:inline-flex}
body.gi-brand-system #gi-contact-links .gi-contact-panel{position:absolute;right:0;bottom:calc(100% + 12px);display:flex;flex-direction:column;align-items:flex-end;gap:12px;width:max-content;max-width:calc(100vw - 40px);margin:0;padding:0;border:0;background:transparent;box-shadow:none}
body.gi-brand-system #gi-contact-links .gi-contact-panel[hidden]{display:none}
body.gi-brand-system #gi-contact-links .gi-contact-action{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:4px;background:transparent;color:var(--gi-text);font:600 13px/1.35 var(--gi-font-body);text-decoration:none;box-shadow:none}
body.gi-brand-system #gi-contact-links .gi-contact-label{position:relative;display:block;min-width:104px;padding:9px 14px;border:1px solid #e0e5ec;border-radius:4px;background:#fff;color:#27364a;font:600 13px/1.35 var(--gi-font-body);text-align:center;white-space:nowrap;box-shadow:0 3px 16px #0b0d1414}
body.gi-brand-system #gi-contact-links .gi-contact-label:after{content:"";position:absolute;right:-5px;top:calc(50% - 4px);width:8px;height:8px;border-top:1px solid #e0e5ec;border-right:1px solid #e0e5ec;background:#fff;transform:rotate(45deg)}
body.gi-brand-system #gi-contact-links .gi-contact-hint{position:absolute;right:calc(100% + 12px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s}
body.gi-brand-system #gi-contact-links:not(.is-open) .gi-contact-toggle:focus-visible .gi-contact-hint{opacity:1;visibility:visible}
body.gi-brand-system #gi-contact-links .gi-contact-call .gi-contact-orb{background:#253c54;color:white}
body.gi-brand-system #gi-contact-links .gi-contact-whatsapp .gi-contact-orb{background:#118b50;color:white}
body.gi-brand-system #gi-contact-links .gi-contact-email .gi-contact-orb{background:#d94b0b;color:white}
body.gi-brand-system #gi-contact-links .gi-contact-action:hover .gi-contact-orb{transform:scale(1.05)}
body.gi-brand-system.etheme-elementor-off-canvas--shown #gi-contact-links{visibility:hidden;pointer-events:none}
@media(hover:hover){body.gi-brand-system #gi-contact-links:not(.is-open) .gi-contact-toggle:hover .gi-contact-hint{opacity:1;visibility:visible}}

@media (min-width: 1025px) and (max-width: 1250px) {
  body.gi-brand-system { --gi-gutter: 32px; }
  body.gi-brand-system .elementor-location-header .elementor-element-67d8a3b1 { gap: 24px; }
  body.gi-brand-system .elementor-location-header .etheme-elementor-nav-menu .item-link { font-size: 15px; }
  body.gi-brand-system .elementor-location-header .elementor-element-03864bc { display: none; }
}
@media (max-width: 1024px) {
  body.gi-brand-system { --gi-gutter: 32px; --gi-section-space: 72px; }
  body.gi-brand-system .elementor-location-header .elementor-element-4f7b623a { padding: 0; }
  body.gi-brand-system .elementor-location-header .elementor-element-4f7b623a > .e-con-inner { min-height: 58px; padding-block: 12px; gap: 12px; flex-direction: row; flex-wrap: wrap; }
  body.gi-brand-system .elementor-location-header .elementor-element-67d8a3b1 { width: auto; flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; padding: 0; }
  body.gi-brand-system .elementor-location-header .elementor-element-03864bc { display: none; }
  body.gi-brand-system .elementor-location-header .elementor-element-e8d647c { width: 108px; --container-widget-width: 108px; }
  body.gi-brand-system .elementor-location-header .elementor-element-e8d647c img { width: 108px; max-height: 74px; }
  body.gi-brand-system .elementor-location-header .elementor-element-3d5cd735 { width: auto; min-width: 44px; flex: 0 0 auto; margin-inline-start: auto; padding: 0; gap: 12px; }
  body.gi-brand-system .elementor-location-header .elementor-element-29bc7dce{width:44px;min-width:44px}
  body.gi-brand-system .elementor-location-header a[aria-label="Mobile Menu"]{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}
  body.gi-brand-system .elementor-location-header .elementor-element-5b9eb28 { flex: 0 0 100%; width: 100%; margin: 0; }
  body.gi-brand-system .elementor-location-header .gi-header-search-toggle{display:inline-flex;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:4px;background:transparent;color:#fff;cursor:pointer}
  body.gi-brand-system .elementor-location-header .gi-header-search-toggle:hover{background:#ffffff12}
  body.gi-brand-system .elementor-location-header .gi-header-search-toggle[aria-expanded="true"]{background:#ff78261f;color:var(--gi-orange)}
  body.gi-brand-system .elementor-location-header .gi-search-close-icon,body.gi-brand-system .elementor-location-header .gi-header-search-toggle[aria-expanded="true"] .gi-search-open-icon{display:none}
  body.gi-brand-system .elementor-location-header .gi-header-search-toggle[aria-expanded="true"] .gi-search-close-icon{display:inline-flex}
  body.gi-brand-system .elementor-location-header [data-gi-search-enhanced="true"] #gi-header-search { display: none; }
  body.gi-brand-system .elementor-location-header [data-gi-search-enhanced="true"].gi-search-open #gi-header-search{display:block;flex:0 0 100%;width:100%;margin:4px 0 7px;background:transparent}
  body.gi-brand-system #gi-header-search>.elementor-widget-container{padding:16px;border:1px solid #dfe4eb;border-radius:6px;background:#fff;box-shadow:none}
  body.gi-brand-system #gi-header-search .gi-search-label{display:block;margin:0 0 12px;color:var(--gi-text);font:600 16px/1.4 var(--gi-font-body)}
  body.gi-brand-system #gi-header-search .gi-search-help{margin:10px 0 0;color:var(--gi-muted);font:400 12px/1.5 var(--gi-font-body)}
  body.gi-brand-system #gi-header-search .etheme-search-form{position:relative;margin:0;background:transparent;--s-results-offset:10px}
  body.gi-brand-system #gi-header-search .etheme-search-input-form-wrapper{display:flex;align-items:stretch;gap:8px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
  body.gi-brand-system #gi-header-search .etheme-search-input-wrapper{flex:1 1 auto;min-width:0;margin:0}
  body.gi-brand-system #gi-header-search input.etheme-search-form-input{width:100%;height:48px;min-height:48px;padding:12px 14px;border:1px solid #d6dde6;border-radius:4px;background:#f7f8fa;color:var(--gi-text);font:400 16px/1.4 var(--gi-font-body);box-shadow:none}
  body.gi-brand-system #gi-header-search input.etheme-search-form-input:focus{border-color:var(--gi-orange);outline:2px solid #ff782626;outline-offset:0;background:white}
  body.gi-brand-system #gi-header-search .etheme-search-form-button-wrapper{flex:0 0 48px;margin:0}
  body.gi-brand-system #gi-header-search .etheme-search-form-submit{display:flex;align-items:center;justify-content:center;width:48px;min-width:48px;height:48px;min-height:48px;padding:0;border:0;border-radius:4px;background:var(--gi-orange);color:#111827;font-size:20px;box-shadow:none}
  body.gi-brand-system #gi-header-search .etheme-search-form-submit:hover{background:#ff8b46}
  body.gi-brand-system #gi-header-search .etheme-search-ajax-results{max-height:min(55svh,420px);overflow:auto;overscroll-behavior:contain;border:1px solid #dfe4eb;border-radius:6px;background:white;box-shadow:0 12px 28px #0b0d1426;color:var(--gi-text);font:400 14px/1.5 var(--gi-font-body);--title-size:13px;--item-title-size:14px;--item-element-size:13px;--item-min-height:64px}
  body.gi-brand-system #gi-header-search .etheme-search-form-title{font:600 13px/1.5 var(--gi-font-body);text-transform:none;letter-spacing:0;background:#f5f6f8}
  body.gi-brand-system #gi-header-search .etheme-search-form-item-title{font:500 14px/1.45 var(--gi-font-body);text-transform:none;letter-spacing:0}
  body.gi-brand-system .page-heading { padding-block: 14px; }
  body.gi-brand-system .gi-section :where(.elementor-widget-heading) { margin-bottom: 20px; }
}
@media (max-width: 767px) {
  body.gi-brand-system { --gi-gutter: 20px; --gi-section-space: 48px; font-size: 16px; }
  .gi-brand-system :where(h1) { font-size: 34px; }
  .gi-brand-system :where(h2) { font-size: 28px; }
  .gi-brand-system :where(h3) { font-size: 21px; }
  .gi-brand-system .gi-card { padding: 22px; border-radius: var(--gi-card-radius); }
  body.gi-brand-system .elementor-location-header .elementor-element-4f7b623a { padding: 0; }
  body.gi-brand-system .elementor-location-header .elementor-element-4f7b623a > .e-con-inner { padding-block: 9px; gap: 9px; }
  body.gi-brand-system .page-heading,body.gi-brand-system .page-heading :is(.breadcrumbs,.woocommerce-breadcrumb) { font-size: 13px; }
  body.gi-brand-system .page-heading { padding-block: 14px; }
  body.gi-brand-system :where(a.button,button.button,input[type="submit"],.single_add_to_cart_button,.wpcf7-submit),
  body.gi-brand-system:not(.page-id-5) :where(.elementor-widget-button,.elementor-widget-text_button) :where(.elementor-button,.etheme-text-button) { min-height: 46px; padding: 12px 18px; }
  body.gi-brand-system .wpcf7-form p { margin-bottom: 18px; }
  body.gi-brand-system .wpcf7-form textarea { min-height: 148px; }
  body.gi-brand-system .content-product .product-details { padding: 18px; }
  body.gi-brand-system .content-product .product-title { font-size: 19px; }
  body.gi-brand-system.single-product .product_title { margin-bottom: 18px; font-size: 30px; }
  body.gi-brand-system.single-product .woocommerce-product-details__short-description { font-size: 16px; }
  body.gi-brand-system.single-product .woocommerce-tabs { margin-top: 32px; }
  body.gi-brand-system.single-post .post-description { font-size: 16px; line-height: 1.8; }
  body.gi-brand-system :where(.elementor-accordion,.elementor-toggle) .elementor-tab-title { padding: 19px 18px; font-size: 17px; }
  body.gi-brand-system :where(.elementor-accordion,.elementor-toggle) .elementor-tab-content { padding: 0 18px 20px; }
  body.gi-brand-system.page-id-38 .elementor-element-fb52f3e { padding: 22px; }
  body.gi-brand-system #gi-contact-links{right:16px;bottom:max(16px,env(safe-area-inset-bottom));--gi-dock-size:52px}
}
@media (prefers-reduced-motion: reduce) {
  body.gi-brand-system :where(.button,.elementor-button,.content-product,.gi-contact-orb,.gi-contact-hint) { transition: none; }
  body.gi-brand-system #gi-contact-links :is(.gi-contact-orb,.gi-contact-hint){transition:none}
}

/* Content rails apply to unspaced rows as well as section starts. */
body.gi-brand-system .gi-content-shell > :is(.elementor-container,.e-con-inner){width:calc(100% - var(--gi-gutter)*2);max-width:var(--gi-content-max);margin-inline:auto;padding-inline:0}
body.gi-brand-system .gi-service-overview{margin-block:0;padding-block:var(--gi-section-space) 32px}
body.gi-brand-system .gi-service-details{margin-block:0;padding-block:0 var(--gi-section-space)}
body.gi-brand-system .gi-service-divider{margin:0;padding:0}
body.gi-brand-system .gi-section-heading{padding-bottom:32px}
body.gi-brand-system .elementor-top-section.gi-attraction-row{margin-block:0;padding-block:0 24px}
body.gi-brand-system .elementor-top-section.gi-attraction-row:last-child{padding-bottom:var(--gi-section-space)}
body.gi-brand-system :is(.swp-timeline-4,.swp-timeline) :is(h2,h3,h4,p,a){font-family:var(--gi-font-body)}
body.gi-brand-system.single-post .post-description{max-width:840px;margin-inline:auto}

body.gi-brand-system .swp-timeline-area :is(h2,h3,h4,p,a){font-family:var(--gi-font-body)}
body.gi-brand-system .elementor-widget-video .elementor-custom-embed-image-overlay{border-radius: var(--gi-card-radius);overflow:hidden}
body.gi-brand-system .elementor-location-footer .elementor-element-c912b4a{overflow-wrap:anywhere;word-break:normal;white-space:normal}
body.gi-brand-system .elementor-location-footer .elementor-element-c912b4a :is(p,span,a){white-space:normal}
/* Theme-rendered archives use the same outer rail as Elementor content. */
body.gi-brand-system:not(.gi-marketing-page):not(.page-id-5) .container.content-page{width:calc(100% - var(--gi-gutter)*2);max-width:var(--gi-content-max);padding-inline:0;margin-inline:auto}
body.gi-brand-system .elementor-location-footer > .elementor-top-section > .elementor-container{width:calc(100% - var(--gi-gutter)*2);max-width:var(--gi-content-max);margin-inline:auto}
/* Current XStore Elementor archive markup. */
body.gi-brand-system .etheme-product-grid-item{border:1px solid var(--gi-border);border-radius: var(--gi-card-radius);background:#fff;overflow:hidden;transition:border-color .2s,box-shadow .2s}
body.gi-brand-system .etheme-product-grid-item:hover{border-color:#c6cdd7;box-shadow:0 12px 30px #14202f0c}
body.gi-brand-system .etheme-product-grid-image{aspect-ratio:4/3;background:#f5f6f8;display:flex;align-items:center;justify-content:center;overflow:hidden}
body.gi-brand-system .etheme-product-grid-image>a{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
body.gi-brand-system .etheme-product-grid-image img{width:100%;height:100%;object-fit:cover;object-position:center}
body.gi-brand-system .etheme-product-grid-content{padding:20px}
body.gi-brand-system .etheme-product-grid-title,body.gi-brand-system .etheme-product-grid-title a{color:var(--gi-text);font-family:var(--gi-font-body);line-height:1.35}
body.gi-brand-system .etheme-product-grid-categories{color:var(--gi-muted);font-size:13px}
@media(max-width:767px){body.gi-brand-system .etheme-product-grid-content{padding:18px}}
body.gi-brand-system .page-wrapper>.container{width:calc(100% - var(--gi-gutter)*2);max-width:var(--gi-content-max);margin-inline:auto;padding-inline:0}
body.gi-brand-system .gi-template-shell>.elementor-container{width:calc(100% - var(--gi-gutter)*2);max-width:var(--gi-content-max);margin-inline:auto}
body.gi-brand-system.single-post .content-page .elementor-widget-text-editor{font-size:17px;line-height:1.8;max-width:840px;margin-inline:auto}
body.gi-brand-system.single-post .content-page .elementor-widget-text-editor :is(p,li){line-height:1.8}
@media(max-width:767px){body.gi-brand-system.single-post .content-page .elementor-widget-text-editor{font-size:16px}}
/* Keep product photos proportional in Element Pack's parallel catalogue widget. */
body.gi-brand-system .bdt-ep-product-grid-image img{object-fit:cover;object-position:center}
/* Product carousel photos share one frame, regardless of the source orientation. */
body.gi-brand-system .bdt-ep-carousel-item.product{display:flex;flex-direction:column;height:auto}
body.gi-brand-system .bdt-ep-carousel-item.product .bdt-ep-carousel-thumbnail{position:relative;flex:0 0 auto;width:100%;aspect-ratio:4/3}
body.gi-brand-system .bdt-ep-carousel-item.product .bdt-ep-carousel-thumbnail>a{position:absolute;inset:0;display:block;width:100%;height:100%}
body.gi-brand-system .bdt-ep-carousel-item.product .bdt-ep-carousel-thumbnail img{width:100%;height:100%;object-fit:cover;object-position:center}
body.gi-brand-system .bdt-ep-carousel-item.product .bdt-ep-carousel-desc{flex:1;min-height:112px;padding:24px 20px;text-align:center}
body.gi-brand-system .bdt-ep-carousel-item.product .bdt-ep-carousel-title{margin:0;overflow-wrap:anywhere}
@media(max-width:767px){body.gi-brand-system .bdt-ep-carousel-item.product .bdt-ep-carousel-desc{min-height:104px;padding:20px 12px}}

/* Native section columns own a 15px half-gap. Compensate once at the rail,
   so the visible content (rather than the padded column) follows the gutter. */
body.gi-brand-system .elementor-top-section:is(.gi-content-shell,.gi-template-shell):not(.gi-full-bleed):not(.gi-breadcrumb-shell){padding-inline:0}
body.gi-brand-system .elementor-top-section:is(.gi-content-shell,.gi-template-shell):not(.gi-full-bleed):not(.gi-breadcrumb-shell)>.elementor-container{width:calc(100% - var(--gi-gutter)*2 + 30px);max-width:calc(var(--gi-content-max) + 30px);margin-inline:auto;padding-inline:0}
body.gi-brand-system .elementor-top-section:is(.gi-content-shell,.gi-template-shell):not(.gi-full-bleed):not(.gi-breadcrumb-shell)>.elementor-container>.elementor-column:not(.gi-offcanvas-column)>.elementor-widget-wrap{padding-inline:15px}
body.gi-brand-system .e-con.gi-content-shell{padding-inline:0}
/* The gateway scene stays full bleed; only its content follows the same rail. */
body.gi-brand-system .gi-portal{padding-inline:var(--gi-gutter)!important}
body.gi-brand-system .gi-portal :is(.gp-heading,.gp-grid,.gp-footer){max-width:var(--gi-content-max)!important}
body.gi-brand-system .gi-home-footer .gf-stats{width:calc(100% - var(--gi-gutter)*2);max-width:var(--gi-content-max)!important}
body.gi-brand-system .gi-home-footer .gf-bottom{padding-inline:var(--gi-gutter)!important}
body.gi-brand-system .gi-home-footer .gf-bottom-inner{max-width:var(--gi-content-max)!important}
/* Scene cards have one edge-to-edge media frame, without nested grey padding. */
body.gi-brand-system .gi-attraction-row>.elementor-container{row-gap:24px}
body.gi-brand-system .gi-attraction-row>.elementor-container>.elementor-column>.elementor-widget-wrap{padding-block:0}
body.gi-brand-system .gi-attraction-row .elementor-inner-section{margin:0;padding:0;background:transparent}
body.gi-brand-system .gi-attraction-row .elementor-inner-section>.elementor-container>.elementor-column>.elementor-widget-wrap{padding:0}
body.gi-brand-system .gi-attraction-card>.elementor-widget-container{height:100%;background:#fff}
body.gi-brand-system .gi-attraction-card .etheme-icon-box{display:flex;flex-direction:column;width:100%;height:100%;border:0;padding:0}
body.gi-brand-system .gi-attraction-card .etheme-icon-box-icon{display:block;flex:0 0 auto;width:100%;aspect-ratio:4/3;margin:0;padding:0;overflow:hidden}
body.gi-brand-system .gi-attraction-card .etheme-icon-box-icon img{display:block;width:100%;max-width:100%;height:100%;object-fit:cover;object-position:center}
body.gi-brand-system .gi-attraction-card .etheme-icon-box-content{display:flex;align-items:center;justify-content:center;flex:1;min-height:96px;padding:20px 18px}
body.gi-brand-system .gi-attraction-card .etheme-icon-box-title{margin:0;font-size:18px;line-height:1.4;overflow-wrap:anywhere}
@media(max-width:767px){body.gi-brand-system .gi-attraction-card .etheme-icon-box-content{min-height:96px;padding:18px 16px}}

body.gi-brand-system .gi-content-shell.gi-full-bleed>.elementor-container{width:100%;max-width:none}
@media(max-width:1024px){
 body.gi-brand-system .elementor-top-section .elementor-column.gi-offcanvas-column{width:0;flex:0 0 0;min-height:0;height:0}
 body.gi-brand-system .elementor-top-section .gi-offcanvas-column>.elementor-widget-wrap{padding:0}
}
@media(min-width:768px) and (max-width:1024px){body.gi-brand-system .gi-attraction-card .etheme-icon-box-content{min-height:120px}}

/* Fixed geometry avoids the native icon's text baseline stretching the circle. */
body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play {
 position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
 display:grid;place-items:center;box-sizing:border-box;width:72px;height:72px;
 padding:0;margin:0;border:0;border-radius:50%;line-height:1;opacity:1;
 isolation:isolate;overflow:visible;cursor:pointer;
 background:#ff7826 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l12-7z' fill='%23111827' stroke='%23111827' stroke-linejoin='round' stroke-width='1'/%3E%3C/svg%3E") center/28px 28px no-repeat;
 box-shadow:0 5px 24px #0b0d1440;transition:background-color .2s;
}
body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play :is(i,svg) {display:none}
body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play::before,
body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play::after {
 content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;box-sizing:border-box;
 border:2px solid #ffae7b;border-radius:inherit;background:#ff782622;opacity:0;
 animation:gi-video-ripple 2.8s linear infinite;
}
body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play::after {animation-delay:-1.4s}
body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play:hover {background-color:#ff9b55}
body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play:focus-visible {outline:3px solid #fff;outline-offset:5px}
@keyframes gi-video-ripple {0%{transform:scale(1);opacity:.65}70%{opacity:.3}100%{transform:scale(2);opacity:0}}
@media(max-width:767px){body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play{width:64px;height:64px}}
@media(prefers-reduced-motion:reduce){
 body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play{transition:none}
 body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play::before,
 body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play::after{animation:none;transform:scale(1.15);opacity:.2}
 body.gi-brand-system :is(.gi-service-video,.gi-about-video,.gi-fec-video,.gi-brand-video) .elementor-custom-embed-play::after{display:none}
}
