.tga-contact-section,.tga-contact-section *{box-sizing:border-box}.tga-contact-section{--tga-contact-bg:#102b43;--tga-contact-bg-2:#193955;--tga-contact-gold:#d9a441;--tga-contact-text:#fff;--tga-contact-muted:#c7d2dc;--tga-contact-heading:56px;--tga-contact-heading-mobile:34px;position:relative;isolation:isolate;overflow:hidden;width:100%;padding:clamp(58px,6vw,88px) 24px;color:var(--tga-contact-text);background:radial-gradient(circle at 15% 10%,color-mix(in srgb,var(--tga-contact-gold) 13%,transparent),transparent 30%),radial-gradient(circle at 90% 90%,color-mix(in srgb,var(--tga-contact-bg-2) 72%,transparent),transparent 38%),linear-gradient(125deg,var(--tga-contact-bg),var(--tga-contact-bg-2));font-family:inherit}.tga-contact-section:before{position:absolute;inset:0;z-index:-2;background-image:radial-gradient(circle,color-mix(in srgb,var(--tga-contact-gold) 28%,transparent) 1px,transparent 1.5px);background-size:32px 32px;content:"";opacity:.19;mask-image:linear-gradient(90deg,#000,transparent 62%)}.tga-contact-container{display:grid;grid-template-columns:minmax(420px,.95fr) minmax(520px,1.05fr);align-items:center;gap:clamp(42px,5vw,84px);width:min(1580px,100%);margin:auto}.tga-contact-map-panel{position:relative;overflow:hidden;min-height:450px;border:1px solid color-mix(in srgb,var(--tga-contact-gold) 38%,transparent);border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.015));box-shadow:inset 0 1px rgba(255,255,255,.09),0 28px 70px rgba(0,0,0,.22);backdrop-filter:blur(6px)}.tga-map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(circle at center,#000,transparent 76%)}.tga-world-map{position:absolute;inset:32px 22px 42px;width:calc(100% - 44px);height:calc(100% - 74px);overflow:visible}.tga-map-land{fill:color-mix(in srgb,var(--tga-contact-text) 22%,var(--tga-contact-bg));stroke:color-mix(in srgb,var(--tga-contact-text) 16%,transparent);stroke-width:1.5}.tga-map-routes{fill:none;stroke:var(--tga-contact-gold);stroke-width:2;stroke-dasharray:8 10;opacity:.7}.tga-map-points{fill:var(--tga-contact-gold)}.tga-map-points circle{transform-box:fill-box;transform-origin:center}.tga-map-hub circle:first-child{fill:color-mix(in srgb,var(--tga-contact-gold) 14%,transparent);stroke:var(--tga-contact-gold);stroke-width:2}.tga-map-hub circle:nth-child(2){fill:var(--tga-contact-gold)}.tga-map-hub path{fill:none;stroke:var(--tga-contact-bg);stroke-width:2}.tga-map-caption{position:absolute;bottom:22px;left:26px;display:flex;align-items:center;gap:10px;color:var(--tga-contact-muted);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.tga-map-caption span{width:8px;height:8px;border-radius:50%;background:var(--tga-contact-gold);box-shadow:0 0 0 6px color-mix(in srgb,var(--tga-contact-gold) 15%,transparent)}.tga-contact-heading-wrap{max-width:760px}.tga-contact-eyebrow{margin:0 0 12px;color:var(--tga-contact-gold);font-size:13px;font-weight:800;letter-spacing:.2em;line-height:1.5;text-transform:uppercase}.tga-contact-heading-wrap h2{margin:0;padding:0;color:var(--tga-contact-text);font-family:inherit;font-size:var(--tga-contact-heading);font-style:normal;font-weight:800;letter-spacing:-.035em;line-height:1.06;text-transform:none}.tga-contact-heading-line{display:block;width:74px;height:4px;margin:20px 0 24px;border-radius:99px;background:linear-gradient(90deg,var(--tga-contact-gold),color-mix(in srgb,var(--tga-contact-gold) 22%,transparent))}.tga-contact-description{max-width:740px;margin:0;color:var(--tga-contact-muted);font-size:clamp(16px,1.3vw,19px);line-height:1.75}.tga-contact-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:38px}.tga-contact-card{position:relative;min-width:0;padding:22px 16px 20px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:rgba(255,255,255,.055);transition:transform .25s ease,border-color .25s ease,background .25s ease}.tga-contact-card:hover{border-color:color-mix(in srgb,var(--tga-contact-gold) 55%,transparent);background:rgba(255,255,255,.085);transform:translateY(-5px)}.tga-contact-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:16px;border:1px solid color-mix(in srgb,var(--tga-contact-gold) 62%,transparent);border-radius:14px;color:var(--tga-contact-gold);background:color-mix(in srgb,var(--tga-contact-gold) 9%,transparent);box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--tga-contact-gold) 3%,transparent)}.tga-contact-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.tga-contact-card h3{margin:0;color:var(--tga-contact-gold);font-size:13px;font-weight:800;letter-spacing:.12em;line-height:1.4;text-transform:uppercase}.tga-contact-card p{margin:8px 0 0;color:var(--tga-contact-text);font-size:14px;line-height:1.5;overflow-wrap:anywhere}.tga-contact-card a{color:inherit;text-decoration:none}.tga-contact-card a:hover{text-decoration:underline;text-decoration-color:var(--tga-contact-gold);text-underline-offset:4px}.tga-contact-orb{position:absolute;z-index:-1;border:1px solid color-mix(in srgb,var(--tga-contact-gold) 24%,transparent);border-radius:50%;pointer-events:none}.tga-contact-orb-one{top:-240px;right:-130px;width:480px;height:480px}.tga-contact-orb-two{bottom:-260px;left:38%;width:440px;height:440px}.tga-contact-no-map .tga-contact-container{grid-template-columns:1fr;max-width:1100px}.tga-contact-no-map .tga-contact-content{margin:auto;text-align:center}.tga-contact-no-map .tga-contact-heading-line{margin-inline:auto}.tga-contact-animated .tga-world-map{animation:tga-map-float 7s ease-in-out infinite}.tga-contact-animated .tga-map-routes path{animation:tga-route-flow 5s linear infinite}.tga-contact-animated .tga-map-routes path:nth-child(2){animation-delay:-1.2s}.tga-contact-animated .tga-map-routes path:nth-child(3){animation-delay:-2.4s}.tga-contact-animated .tga-map-points circle{animation:tga-point-pulse 2.4s ease-in-out infinite}.tga-contact-animated .tga-map-points circle:nth-child(2){animation-delay:-.5s}.tga-contact-animated .tga-map-points circle:nth-child(3){animation-delay:-1s}.tga-contact-animated .tga-map-points circle:nth-child(4){animation-delay:-1.5s}.tga-contact-animated .tga-map-hub circle:first-child{animation:tga-hub-pulse 2s ease-out infinite;transform-box:fill-box;transform-origin:center}.tga-contact-animated .tga-contact-orb-one{animation:tga-orb-drift 12s ease-in-out infinite}.tga-contact-animated .tga-contact-icon{animation:tga-icon-breathe 3.6s ease-in-out infinite}.tga-contact-animated .tga-contact-card:nth-child(2) .tga-contact-icon{animation-delay:-1.2s}.tga-contact-animated .tga-contact-card:nth-child(3) .tga-contact-icon{animation-delay:-2.4s}@keyframes tga-map-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes tga-route-flow{to{stroke-dashoffset:-180}}@keyframes tga-point-pulse{0%,100%{opacity:.7;transform:scale(.8)}50%{opacity:1;transform:scale(1.45)}}@keyframes tga-hub-pulse{0%{opacity:1;transform:scale(.65)}100%{opacity:0;transform:scale(1.55)}}@keyframes tga-orb-drift{0%,100%{transform:translate(0)}50%{transform:translate(-25px,24px)}}@keyframes tga-icon-breathe{0%,100%{box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--tga-contact-gold) 3%,transparent),0 0 0 0 transparent}50%{box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--tga-contact-gold) 3%,transparent),0 0 0 7px color-mix(in srgb,var(--tga-contact-gold) 7%,transparent)}}
@media(max-width:1050px){.tga-contact-container{grid-template-columns:1fr;gap:36px;max-width:850px}.tga-contact-map-panel{min-height:390px}.tga-contact-content{padding-inline:14px}}
@media(max-width:620px){.tga-contact-section{padding:38px 10px 42px}.tga-contact-container{gap:26px}.tga-contact-map-panel{min-height:230px;border-radius:18px}.tga-world-map{inset:12px 8px 30px;width:calc(100% - 16px);height:calc(100% - 42px)}.tga-map-caption{bottom:12px;left:14px;font-size:9px;letter-spacing:.08em}.tga-contact-content{padding-inline:2px}.tga-contact-eyebrow{margin-bottom:8px;font-size:10px}.tga-contact-heading-wrap h2{font-size:var(--tga-contact-heading-mobile)}.tga-contact-heading-line{width:54px;height:3px;margin:14px 0 16px}.tga-contact-description{font-size:14px;line-height:1.6}.tga-contact-details{gap:7px;margin-top:24px}.tga-contact-card{padding:12px 5px 13px;border-radius:12px;text-align:center}.tga-contact-icon{width:36px;height:36px;margin:0 auto 9px;border-radius:10px}.tga-contact-icon svg{width:19px;height:19px}.tga-contact-card h3{font-size:9px;letter-spacing:.05em}.tga-contact-card p{margin-top:5px;font-size:10px;line-height:1.35}.tga-contact-orb-one{width:300px;height:300px}.tga-contact-no-map .tga-contact-heading-line{margin-inline:auto}}
@media(prefers-reduced-motion:reduce){.tga-contact-section *{animation:none!important;transition:none!important}}

/* Version 1.1: supplied map, Bali office marker, full-bleed background, and refined icons. */
.tga-contact-section{left:50%;width:100vw;max-width:100vw;margin-left:-50vw;background:radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--tga-contact-gold) 14%,transparent),transparent 29%),radial-gradient(circle at 86% 92%,color-mix(in srgb,var(--tga-contact-bg-2) 76%,transparent),transparent 39%),linear-gradient(120deg,var(--tga-contact-bg) 0%,var(--tga-contact-bg-2) 58%,var(--tga-contact-bg) 100%)}
.tga-contact-map-panel{background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.018));box-shadow:inset 0 1px rgba(255,255,255,.1),0 28px 70px rgba(0,0,0,.25)}
.tga-map-art{position:absolute;inset:0;overflow:hidden}
.tga-world-map{position:absolute;inset:auto;top:50%;left:4%;width:92%;height:auto;object-fit:contain;filter:drop-shadow(0 16px 24px rgba(0,0,0,.18));transform:translateY(-50%)}
.tga-bali-marker{position:absolute;top:54.5%;left:78.2%;z-index:3;display:grid;place-items:center;color:var(--tga-contact-gold);transform:translate(-50%,-50%)}
.tga-bali-marker>span{position:relative;display:block;width:17px;height:17px;border:4px solid var(--tga-contact-bg);border-radius:50%;background:var(--tga-contact-gold);box-shadow:0 0 0 2px var(--tga-contact-gold),0 0 22px color-mix(in srgb,var(--tga-contact-gold) 78%,transparent)}
.tga-bali-marker>span:before,.tga-bali-marker>span:after{position:absolute;inset:50%;width:34px;height:34px;border:1px solid var(--tga-contact-gold);border-radius:50%;content:"";transform:translate(-50%,-50%)}
.tga-bali-marker>span:after{width:52px;height:52px;opacity:.38}
.tga-bali-marker strong{position:absolute;top:25px;left:50%;min-width:max-content;padding:5px 9px;border:1px solid color-mix(in srgb,var(--tga-contact-gold) 48%,transparent);border-radius:99px;color:var(--tga-contact-text);background:color-mix(in srgb,var(--tga-contact-bg) 88%,transparent);box-shadow:0 8px 18px rgba(0,0,0,.2);font-size:9px;font-weight:800;letter-spacing:.12em;line-height:1;text-transform:uppercase;transform:translateX(-50%);backdrop-filter:blur(8px)}
.tga-contact-icon{position:relative;width:56px;height:56px;margin-bottom:18px;border:1px solid color-mix(in srgb,var(--tga-contact-gold) 72%,transparent);border-radius:50%;background:radial-gradient(circle at 34% 28%,color-mix(in srgb,var(--tga-contact-gold) 25%,transparent),color-mix(in srgb,var(--tga-contact-gold) 5%,transparent) 66%);box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--tga-contact-gold) 4%,transparent),0 10px 25px rgba(0,0,0,.2)}
.tga-contact-icon:before{position:absolute;inset:-6px;border:1px dashed color-mix(in srgb,var(--tga-contact-gold) 32%,transparent);border-radius:50%;content:""}
.tga-contact-icon svg{width:26px;height:26px;stroke-width:1.7}
.tga-contact-card{background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.035))}
.tga-contact-animated .tga-world-map{animation:tga-supplied-map-float 7s ease-in-out infinite}
.tga-contact-animated .tga-bali-marker>span:before{animation:tga-bali-pulse 2.2s ease-out infinite}
.tga-contact-animated .tga-bali-marker>span:after{animation:tga-bali-pulse 2.2s .7s ease-out infinite}
.tga-contact-animated .tga-contact-icon:before{animation:tga-icon-orbit 12s linear infinite}
@keyframes tga-supplied-map-float{0%,100%{transform:translateY(-50%) scale(1)}50%{transform:translateY(calc(-50% - 7px)) scale(1.012)}}
@keyframes tga-bali-pulse{0%{opacity:.75;transform:translate(-50%,-50%) scale(.45)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.55)}}
@keyframes tga-icon-orbit{to{transform:rotate(360deg)}}
@media(max-width:620px){.tga-contact-section{left:50%;width:100vw;max-width:100vw;margin-left:-50vw}.tga-world-map{left:2%;width:96%}.tga-bali-marker{top:54.5%;left:78.2%}.tga-bali-marker>span{width:13px;height:13px;border-width:3px}.tga-bali-marker>span:before{width:26px;height:26px}.tga-bali-marker>span:after{width:39px;height:39px}.tga-bali-marker strong{top:19px;padding:4px 7px;font-size:7px}.tga-contact-icon{width:42px;height:42px;margin-bottom:11px}.tga-contact-icon:before{inset:-4px}.tga-contact-icon svg{width:21px;height:21px}}

/* Version 1.2: smaller, elegant contact information cards. */
.tga-contact-details{gap:12px;margin-top:30px}
.tga-contact-card{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:13px;min-height:96px;padding:14px 15px;overflow:hidden;border-radius:15px;background:linear-gradient(135deg,rgba(255,255,255,.072),rgba(255,255,255,.026));box-shadow:inset 0 1px rgba(255,255,255,.06),0 12px 30px rgba(0,0,0,.12)}
.tga-contact-card:after{position:absolute;top:0;bottom:0;left:-65%;width:42%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--tga-contact-gold) 12%,transparent),transparent);content:"";pointer-events:none;transform:skewX(-18deg)}
.tga-contact-icon{grid-row:1/3;width:44px;height:44px;margin:0;border-width:1px;box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--tga-contact-gold) 4%,transparent),0 8px 18px rgba(0,0,0,.16)}
.tga-contact-icon:before{inset:-4px}
.tga-contact-icon svg{width:21px;height:21px}
.tga-contact-card h3{grid-column:2!important;align-self:end!important;margin:0!important;padding:0!important;color:var(--tga-contact-gold)!important;font-family:inherit!important;font-size:10px!important;font-style:normal!important;font-weight:800!important;letter-spacing:.11em!important;line-height:1.25!important;text-transform:uppercase!important}
.tga-contact-card p{grid-column:2!important;align-self:start!important;margin:4px 0 0!important;padding:0!important;color:var(--tga-contact-text)!important;font-family:inherit!important;font-size:clamp(11px,.82vw,13px)!important;font-style:normal!important;font-weight:500!important;letter-spacing:0!important;line-height:1.35!important;text-transform:none!important;overflow-wrap:anywhere}
.tga-contact-card p a{color:inherit!important;font:inherit!important;letter-spacing:inherit!important;text-decoration:none!important;text-transform:none!important}
.tga-contact-animated .tga-contact-card{animation:tga-card-reveal .72s cubic-bezier(.2,.78,.25,1) both}
.tga-contact-animated .tga-contact-card:nth-child(2){animation-delay:.12s}
.tga-contact-animated .tga-contact-card:nth-child(3){animation-delay:.24s}
.tga-contact-animated .tga-contact-card:after{animation:tga-card-shine 5.8s 1.1s ease-in-out infinite}
.tga-contact-animated .tga-contact-card:nth-child(2):after{animation-delay:1.5s}
.tga-contact-animated .tga-contact-card:nth-child(3):after{animation-delay:1.9s}
.tga-contact-animated .tga-contact-icon{animation:tga-compact-icon-float 3.8s ease-in-out infinite}
.tga-contact-animated .tga-contact-card:nth-child(2) .tga-contact-icon{animation-delay:-1.25s}
.tga-contact-animated .tga-contact-card:nth-child(3) .tga-contact-icon{animation-delay:-2.5s}
@keyframes tga-card-reveal{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes tga-card-shine{0%,70%{left:-65%;opacity:0}76%{opacity:1}92%,100%{left:125%;opacity:0}}
@keyframes tga-compact-icon-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media(max-width:620px){.tga-contact-details{gap:6px;margin-top:22px}.tga-contact-card{display:block;min-height:0;padding:11px 4px 12px;border-radius:11px;text-align:center}.tga-contact-icon{width:34px;height:34px;margin:0 auto 8px}.tga-contact-icon:before{inset:-3px}.tga-contact-icon svg{width:17px;height:17px}.tga-contact-card h3{font-size:8px!important;letter-spacing:.04em!important}.tga-contact-card p{margin-top:4px!important;font-size:9px!important;line-height:1.3!important}}
