/* GULF VIEW SEO-21 | one canonical image plane, no backgrounds layered over photos.
   Loaded after SEO-18.5 and SEO-20. All rules scoped to public canonical inner heroes. */
.gv-public-site { --gv21-gold:var(--gv-public-outline,color-mix(in srgb,var(--brand-primary) 30%,transparent)); }
.gv-public-site .gv-site-main > section[data-gv21-hero="1"]{
 position:relative!important;isolation:isolate!important;overflow:hidden!important;
 display:flex!important;align-items:center!important;justify-content:flex-start!important;
 box-sizing:border-box!important;min-height:350px!important;min-block-size:350px!important;
 height:auto!important;max-height:none!important;padding:clamp(22px,3.4vw,46px)!important;
 margin-block:0 24px!important;gap:0!important;
 border:1px solid var(--gv21-gold)!important;border-radius:22px!important;
 background-image:none!important;background-color:var(--surface)!important;
 box-shadow:none!important;
}
/* SEO-20 defined a more-specific html[data-appearance] image background.
   Explicitly neutralize it at EQUAL/HIGHER specificity to prevent double images.
   This hero uses the single direct child image as the sole photo layer. */
html[data-appearance="dark"] body.gv-public-site .gv-site-main > section[data-gv21-hero="1"],
html[data-appearance="light"] body.gv-public-site .gv-site-main > section[data-gv21-hero="1"]{
 background-image:none!important;
 background-position:center!important;
 background-repeat:no-repeat!important;
}
/* Hide legacy media wrappers in hero sections; existing images are reused directly. */
body.gv-public-site .gv-site-main > section[data-gv21-hero="1"] > .gv-site-hero-media{display:none!important}
/* One img, sourced from the original central page media, optional dark counterpart. */
.gv-public-site .gv-site-main > section[data-gv21-hero="1"] > img.gv21-hero-photo {
 display:block!important;position:absolute!important;inset:0!important;z-index:0!important;
 width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
 padding:0!important;margin:0!important;aspect-ratio:auto!important;
 border:0!important;border-radius:0!important;object-fit:cover!important;
 object-position:center!important;opacity:1!important;filter:none!important;
 pointer-events:none!important;transform:none!important;
}
/* The frame is a separate foreground stroke. It never inherits image opacity or filter. */
.gv-public-site .gv-site-main > section[data-gv21-hero="1"]::before{
 content:""!important;position:absolute!important;inset:12px!important;z-index:5!important;
 display:block!important;pointer-events:none!important;
 border:1px solid color-mix(in srgb,var(--gv21-gold) 65%,transparent)!important;border-radius:14px!important;
 background:none!important;opacity:1!important;filter:none!important;
}
.gv-public-site .gv-site-main > section[data-gv21-hero="1"]::after{
 content:""!important;position:absolute!important;inset:0!important;z-index:1!important;
 display:block!important;pointer-events:none!important;opacity:1!important;
 background-size:100% 100%!important;backdrop-filter:none!important;
}
html[data-appearance="dark"] .gv-public-site .gv-site-main > section[data-gv21-hero="1"]::after{
 background:linear-gradient(to left,rgba(4,18,13,.76) 0%,rgba(4,18,13,.56) 27%,rgba(4,18,13,.12) 52%,transparent 75%)!important;
}
html[data-appearance="light"] .gv-public-site .gv-site-main > section[data-gv21-hero="1"]::after{
 background:linear-gradient(to left,rgba(250,248,244,.88) 0%,rgba(250,248,244,.66) 28%,rgba(250,248,244,.10) 52%,transparent 76%)!important;
}
html[dir="ltr"][data-appearance="dark"] .gv-public-site .gv-site-main > section[data-gv21-hero="1"]::after{
 background:linear-gradient(to right,rgba(4,18,13,.76) 0%,rgba(4,18,13,.56) 27%,rgba(4,18,13,.12) 52%,transparent 75%)!important;
}
html[dir="ltr"][data-appearance="light"] .gv-public-site .gv-site-main > section[data-gv21-hero="1"]::after{
 background:linear-gradient(to right,rgba(250,248,244,.88) 0%,rgba(250,248,244,.66) 28%,rgba(250,248,244,.10) 52%,transparent 76%)!important;
}
.gv-public-site .gv-site-main > section[data-gv21-hero="1"] > div,
.gv-public-site .gv-site-main > section[data-gv21-hero="1"] > .gv-site-hero-copy{
 position:relative!important;z-index:3!important;box-sizing:border-box!important;
 width:min(620px,61%)!important;max-width:620px!important;min-width:0!important;
 margin:0!important;padding:0!important;
 flex:0 1 620px!important;grid-area:auto!important;
 color:var(--text)!important;text-align:start!important;
}
.gv-public-site .gv-site-main > section[data-gv21-hero="1"] h1{
 margin:6px 0 10px!important;font-size:clamp(1.55rem,2.8vw,2.45rem)!important;
 line-height:1.22!important;letter-spacing:normal!important;max-width:none!important;
 text-wrap:balance!important;color:inherit!important;
}
.gv-public-site .gv-site-main > section[data-gv21-hero="1"] p{
 margin:0 0 14px!important;font-size:clamp(.85rem,1vw,1rem)!important;
 line-height:1.75!important;max-width:55ch!important;
 color:inherit!important;opacity:.92!important;text-wrap:pretty!important;
 display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;overflow:hidden!important;
}
html[data-appearance="dark"] .gv-public-site .gv-site-main > section[data-gv21-hero="1"] > div{color:#f7f5f0!important}
html[data-appearance="light"] .gv-public-site .gv-site-main > section[data-gv21-hero="1"] > div{color:#1d2d23!important}
.gv-public-site .gv-site-main > section[data-gv21-hero="1"] .gv-site-kicker{
 color:var(--brand-primary)!important;font-size:.75rem!important;font-weight:800!important;
}
.gv-public-site .gv-site-main > section[data-gv21-hero="1"] .gv-site-actions{
 display:flex!important;flex-wrap:wrap!important;gap:10px!important;align-items:center!important;
 margin-top:12px!important;padding:0!important;min-height:0!important;
}
.gv-public-site .gv-site-main > section[data-gv21-hero="1"] .gv-site-actions .gv-site-button{
 min-height:42px!important;max-height:none!important;padding:10px 20px!important;
 font-size:.87rem!important;border-radius:11px!important;width:auto!important;
}
/* Keep soft-gold strokes separate from every background image in both themes. */
.gv-public-site .gv-site-main > section[data-gv21-hero="1"],
.gv-public-site .gv-site-main > section[data-gv21-hero="1"]::before{border-color:var(--gv21-gold)!important}
/* Five service benefit panels: one line on large screens, compact consistent geometry. */
@media(min-width:1080px){
 .gv-public-site[data-public-page="service"] .gv-site-feature-grid{
   display:grid!important;grid-template-columns:repeat(var(--gv-feature-count,5),minmax(0,1fr))!important;gap:10px!important;
 }
}
.gv-public-site[data-public-page="service"] .gv-site-feature-card{
 min-height:0!important;height:auto!important;padding:14px 12px!important;
 gap:6px!important;border-radius:13px!important;box-shadow:none!important;
}
.gv-public-site[data-public-page="service"] .gv-site-feature-index{width:27px!important;height:27px!important;font-size:.65rem!important}
.gv-public-site[data-public-page="service"] .gv-site-feature-card h3{
 font-size:clamp(.88rem,1vw,1.03rem)!important;line-height:1.35!important;margin:0!important;
}
.gv-public-site[data-public-page="service"] .gv-site-feature-card p{
 font-size:.78rem!important;line-height:1.55!important;margin:0!important;
}
@media(min-width:640px) and (max-width:1079px){
 .gv-public-site[data-public-page="service"] .gv-site-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:11px!important}
}
@media(max-width:900px){
 .gv-public-site .gv-site-main > section[data-gv21-hero="1"]{min-height:300px!important;min-block-size:300px!important}
}
@media(max-width:620px){
 .gv-public-site .gv-site-main > section[data-gv21-hero="1"]{
   min-height:240px!important;min-block-size:240px!important;
   padding:22px!important;display:flex!important;
 }
 .gv-public-site .gv-site-main > section[data-gv21-hero="1"]::before{inset:9px!important;border-radius:12px!important}
 .gv-public-site .gv-site-main > section[data-gv21-hero="1"] > div{
   width:100%!important;max-width:none!important;flex:1 1 auto!important;
   padding:0!important;margin:0!important;
 }
 .gv-public-site .gv-site-main > section[data-gv21-hero="1"] h1{font-size:clamp(1.4rem,5vw,1.8rem)!important}
 .gv-public-site .gv-site-main > section[data-gv21-hero="1"] p{font-size:.85rem!important;-webkit-line-clamp:3!important}
 .gv-public-site .gv-site-main > section[data-gv21-hero="1"] .gv-site-actions .gv-site-button{min-height:39px!important;padding:8px 12px!important;font-size:.79rem!important}
 .gv-public-site[data-public-page="service"] .gv-site-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
 html[data-appearance="dark"] .gv-public-site .gv-site-main > section[data-gv21-hero="1"]::after{background:linear-gradient(to left,rgba(4,18,13,.77),rgba(4,18,13,.44))!important}
 html[data-appearance="light"] .gv-public-site .gv-site-main > section[data-gv21-hero="1"]::after{background:linear-gradient(to left,rgba(250,248,244,.88),rgba(250,248,244,.44))!important}
}
@media(prefers-reduced-motion:reduce){.gv-public-site .gv-site-main > section[data-gv21-hero="1"] *{transition:none!important}}
/* Explicitly outrank SEO-20's theme-specific !important background rules.
   Otherwise a duplicate photograph layer would survive in some page variants. */
html[data-appearance="dark"] body.gv-public-site .gv-site-main > section.gv-site-page-hero[data-gv21-hero="1"],
html[data-appearance="light"] body.gv-public-site .gv-site-main > section.gv-site-page-hero[data-gv21-hero="1"]{
  background-image:none!important;
  background-size:auto!important;
}
html[data-appearance] body.gv-public-site .gv-site-main > section.gv-site-page-hero[data-gv21-hero="1"] > div{
  width:min(620px,61%)!important;max-width:620px!important;min-width:0!important;
  padding:0!important;margin:0!important;grid-area:auto!important;
  position:relative!important;z-index:3!important;text-align:start!important;
}
html[data-appearance="dark"] body.gv-public-site .gv-site-main > section.gv-site-page-hero[data-gv21-hero="1"] :is(h1,p){
  color:#f7f5f0!important;
}
html[data-appearance="light"] body.gv-public-site .gv-site-main > section.gv-site-page-hero[data-gv21-hero="1"] :is(h1,p){
  color:#1d2d23!important;
}
@media(max-width:620px){
 html[data-appearance] body.gv-public-site .gv-site-main > section.gv-site-page-hero[data-gv21-hero="1"] > div{
  width:100%!important;max-width:none!important;
 }
}

/* SEO-20.2: shared page-section geometry. Counts come from the website-section record.
   No cards are hidden, duplicated or silently removed. */
@media(min-width:1080px){
 body.gv-public-site .gv-site-main .gv-site-feature-grid[data-gv-feature-count]{
  display:grid!important;grid-template-columns:repeat(var(--gv-feature-count,4),minmax(0,1fr))!important;
  gap:clamp(8px,.75vw,14px)!important;align-items:stretch!important;
 }
 body.gv-public-site .gv-site-main .gv-site-feature-grid[data-gv-feature-count] > .gv-site-feature-card{
  padding:clamp(12px,1.2vw,18px)!important;min-width:0!important;min-height:0!important;
 }
 body.gv-public-site .gv-site-main .gv-site-feature-grid[data-gv-feature-count] h3{
  font-size:clamp(.78rem,.92vw,1rem)!important;line-height:1.4!important;overflow-wrap:break-word;
 }
 body.gv-public-site .gv-site-main .gv-site-feature-grid[data-gv-feature-count] p{
  font-size:clamp(.7rem,.78vw,.86rem)!important;line-height:1.6!important;
 }
}
/* Timeline stage connectors must start/end at first/last badge, regardless of stage count. */
@media(min-width:1025px){
 body.gv-public-site .gv-site-main .gv-site-timeline{
  grid-template-columns:repeat(var(--gv-timeline-steps,4),minmax(0,1fr))!important;
  align-items:start!important;gap:0!important;
 }
 body.gv-public-site .gv-site-main .gv-site-timeline::before{
  content:""!important;display:block!important;position:absolute!important;
  inset-inline-start:calc(50% / var(--gv-timeline-steps,4))!important;
  inset-inline-end:calc(50% / var(--gv-timeline-steps,4))!important;
  top:25px!important;bottom:auto!important;width:auto!important;height:1px!important;
  background:color-mix(in srgb,var(--brand-primary) 38%,transparent)!important;
  opacity:1!important;z-index:0!important;
 }
}
/* Only long service titles receive a smaller desktop type scale; never crop text on phones. */
@media(min-width:1220px){
 body.gv-public-site .gv-site-main > section[data-gv21-title-compact="1"] h1{
  font-size:clamp(1.4rem,1.8vw,1.85rem)!important;white-space:nowrap!important;
  max-width:100%!important;text-wrap:nowrap!important;
 }
 body.gv-public-site .gv-site-main > section[data-gv21-title-compact="1"] > div{
  width:min(800px,76%)!important;max-width:800px!important;flex-basis:800px!important;
 }
}
@media(max-width:1219px){
 body.gv-public-site .gv-site-main > section[data-gv21-title-compact="1"] h1{white-space:normal!important;text-wrap:balance!important}
}

/* SEO-21.1: Banner polish across RTL/LTR, a stable single image plane and CTAs. */
body.gv-public-site .gv-site-main > section[data-gv21-hero="1"] > img.gv21-hero-photo{
    display:block!important;object-fit:cover!important;object-position:center center!important;
    min-height:100%!important;min-width:100%!important;
}
body.gv-public-site .gv-site-main > section[data-gv21-hero="1"] > .gv21-hero-photo[style*="display: none"]{display:none!important}
body.gv-public-site .gv-site-main > section[data-gv21-hero="1"] .gv21-hero-actions{
    align-items:center!important;justify-content:flex-start!important;
}
body.gv-public-site .gv-site-main > section[data-gv21-hero="1"] .gv21-hero-actions a{
    white-space:normal!important;text-align:center!important;overflow-wrap:anywhere;
}
@media (max-width:620px){
 body.gv-public-site .gv-site-main > section[data-gv21-hero="1"]{min-height:270px!important}
 body.gv-public-site .gv-site-main > section[data-gv21-hero="1"] .gv-site-actions{gap:8px!important}
}
