
/* ---- layout primitives ---- */
.gs-wrap{width:100%;max-width:80rem;margin:0 auto;padding:0 1.25rem}
@media(min-width:640px){.gs-wrap{padding:0 1.5rem}}
@media(min-width:1024px){.gs-wrap{padding:0 2rem}}
.gs-sec{padding:4.5rem 0;background:var(--rd-background,#f5f2e7);color:var(--rd-text,#182c32)}
@media(min-width:640px){.gs-sec{padding:6rem 0}}
.gs-sec--tight{padding:0 0 4.5rem}
.gs-sec--secondary{background:color-mix(in srgb, var(--rd-c-secondary,#d0e7e4) 55%, var(--rd-background,#f5f2e7))}
.gs-sec--card{background:var(--rd-surface,#ffffff)}
.gs-sec--navy{background:var(--rd-c-navy,#022c35);color:var(--rd-c-on-dark,#faf8f2)}
.gs-sec--lake{background:var(--rd-c-lake,#306561);color:var(--rd-c-on-dark,#faf8f2)}

/* ---- typography ---- */
.gs-d1{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:clamp(2.75rem,2rem + 3.2vw,4.5rem);line-height:.92;font-weight:600;margin:1.25rem 0 0;letter-spacing:-.01em}
.gs-d2{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:clamp(2.25rem,1.9rem + 1.6vw,3rem);line-height:1;font-weight:600;margin:.75rem 0 0;color:inherit}
.gs-d3{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:clamp(1.5rem,1.35rem + .7vw,1.875rem);line-height:1.15;font-weight:600;margin:0;color:inherit}
.gs-p{color:var(--rd-muted,#445a5e);font-size:1rem;line-height:1.7;margin:1rem 0 0}
.gs-sec--navy .gs-p,.gs-sec--lake .gs-p{color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 82%, transparent)}
.gs-eyebrow{font-family:var(--rd-font-body,"Source Sans 3",Arial,sans-serif);font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--rd-c-lake,#306561);margin:0}
.gs-sec--navy .gs-eyebrow,.gs-sec--lake .gs-eyebrow,.gs-hero .gs-eyebrow,.gs-phdr .gs-eyebrow,.gs-cta .gs-eyebrow{color:var(--rd-accent,#d7a44d)}

/* ---- buttons ---- */
.gs-btns{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:2rem}
.gs-btns--center{justify-content:center}
.gs-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:3rem;padding:0 1.5rem;border-radius:var(--rd-radius,8px);font-family:var(--rd-font-body,"Source Sans 3",Arial,sans-serif);font-size:1rem;font-weight:600;text-decoration:none;border:1px solid transparent;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.gs-btn--amber{background:var(--rd-accent,#d7a44d);color:var(--rd-c-amber-foreground,#03242c)}
.gs-btn--amber:hover{background:color-mix(in srgb, var(--rd-accent,#d7a44d) 90%, #000)}
.gs-btn--outline{background:transparent;border-color:color-mix(in srgb, currentColor 30%, transparent);color:inherit}
.gs-btn--outline:hover{background:color-mix(in srgb, currentColor 10%, transparent)}
.gs-btn--ghost{background:transparent;color:inherit}
.gs-btn--ghost:hover{background:color-mix(in srgb, currentColor 10%, transparent)}
.gs-btn--link{height:auto;padding:0;background:none;color:var(--rd-c-lake,#306561);font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.125rem}
.gs-arrow{display:inline-block;margin-top:1.25rem;font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.125rem;font-weight:600;color:var(--rd-c-lake,#306561);text-decoration:none}
.gs-arrow::after{content:" \2192";transition:transform .15s ease;display:inline-block}
.gs-arrow:hover::after{transform:translateX(3px)}
.gs-sec--navy .gs-arrow,.gs-sec--lake .gs-arrow{color:var(--rd-accent,#d7a44d)}

/* ---- header ---- */
/* The frosted blur lives on a pseudo-element, NOT on .gs-hdr itself.
 * backdrop-filter makes an element a containing block for fixed-position
 * descendants, which sized the fixed mobile menu to the 82px header instead of
 * the viewport: the panel came out 330x99 with 632px of content inside it,
 * unscrollable and untappable. The pseudo keeps the look without the trap.
 * The header also has to outrank the mobile action bar, or that fixed bar
 * paints over the open menu — the header owns the stacking context, so the
 * z-index belongs on the wrapper, not on the panel. */
.gs-hdr{position:sticky;top:0;z-index:60;border-bottom:1px solid color-mix(in srgb, var(--rd-border,#b7c8c8) 70%, transparent);background:transparent}
.gs-hdr::before{content:"";position:absolute;inset:0;background:color-mix(in srgb, var(--rd-background,#f5f2e7) 95%, transparent);backdrop-filter:blur(8px);z-index:-1;pointer-events:none}
.gs-hdr__bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;height:4.5rem}
.gs-hdr__logo{min-width:0;display:flex;align-items:center;text-decoration:none}
.gs-hdr__logoimg{height:3.5rem;width:auto}
@media(min-width:640px){.gs-hdr__logoimg{height:4rem}}
.gs-hdr__wordmark{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.5rem;font-weight:700;color:var(--rd-c-navy,#022c35)}
.gs-hdr__nav{display:none;align-items:center;gap:.25rem}
@media(min-width:1024px){.gs-hdr__nav{display:flex}}
.gs-navlink{display:inline-flex;align-items:center;gap:.25rem;height:2.75rem;padding:0 .875rem;border-radius:var(--rd-radius,8px);font-size:1rem;color:var(--rd-c-navy,#022c35);text-decoration:none;cursor:pointer}
.gs-navlink:hover{background:color-mix(in srgb, var(--rd-c-navy,#022c35) 8%, transparent)}
.gs-hdr__cta{margin-left:.5rem;height:2.75rem;padding:0 1.25rem}
/* CSS-only dropdown */
.gs-drop{position:relative}
.gs-drop__trigger{list-style:none}
.gs-drop__trigger::-webkit-details-marker{display:none}
.gs-drop__chev{width:.5rem;height:.5rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s ease}
.gs-drop[open] .gs-drop__chev{transform:rotate(-135deg) translateY(-2px)}
.gs-drop__menu{position:absolute;top:calc(100% + .25rem);left:0;min-width:14rem;background:var(--rd-background,#f5f2e7);border:1px solid var(--rd-border,#b7c8c8);border-radius:var(--rd-radius,8px);box-shadow:0 10px 30px rgba(2,44,53,.14);padding:.375rem;display:flex;flex-direction:column;z-index:50}
.gs-drop__item{padding:.625rem .75rem;border-radius:calc(var(--rd-radius,8px) - 2px);color:var(--rd-c-navy,#022c35);text-decoration:none;font-size:1rem}
.gs-drop__item:hover{background:color-mix(in srgb, var(--rd-c-navy,#022c35) 8%, transparent)}
/* mobile */
.gs-hdr__mobile{display:flex;align-items:center;gap:.5rem}
@media(min-width:1024px){.gs-hdr__mobile{display:none}}
.gs-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:1px solid color-mix(in srgb, var(--rd-c-navy,#022c35) 20%, transparent);border-radius:var(--rd-radius,8px);background:var(--rd-background,#f5f2e7);color:var(--rd-c-navy,#022c35);cursor:pointer;list-style:none}
.gs-iconbtn::-webkit-details-marker{display:none}
/* Hamburger -> X, ported from the "spin" animation in jonsuh.com/hamburgers:
 * the middle bar spins 225deg while the top bar slides to centre and fades and
 * the bottom bar slides to centre and counter-rotates 90deg, so the two land as
 * a cross. Same structure as the original (one inner bar carrying ::before and
 * ::after) and the same easing and delays, scaled to a 20x14 box. */
.gs-burger{position:relative;display:block;width:20px;height:14px}
.gs-burger__inner{display:block;top:50%;margin-top:-1px}
.gs-burger__inner,.gs-burger__inner::before,.gs-burger__inner::after{position:absolute;width:20px;height:2px;border-radius:2px;background:currentColor}
.gs-burger__inner::before,.gs-burger__inner::after{content:"";display:block}
.gs-burger__inner::before{top:-6px}
.gs-burger__inner::after{bottom:-6px}
.gs-burger__inner{transition-duration:.22s;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}
.gs-burger__inner::before{transition:top .1s .25s ease-in,opacity .1s ease-in}
.gs-burger__inner::after{transition:bottom .1s .25s ease-in,transform .22s cubic-bezier(.55,.055,.675,.19)}
.gs-sheet.is-open .gs-burger__inner{transform:rotate(225deg);transition-delay:.12s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}
.gs-sheet.is-open .gs-burger__inner::before{top:0;opacity:0;transition:top .1s ease-out,opacity .1s .12s ease-out}
.gs-sheet.is-open .gs-burger__inner::after{bottom:0;transform:rotate(-90deg);transition:bottom .1s ease-out,transform .22s .12s cubic-bezier(.215,.61,.355,1)}
@media(prefers-reduced-motion:reduce){.gs-burger__inner,.gs-burger__inner::before,.gs-burger__inner::after,.gs-sheet__panel,.gs-sheet__backdrop{transition:none}}
/* The panel covers the whole screen including the summary that toggles it, so
 * lift the toggle above the panel or the menu cannot be closed once opened. */
.gs-sheet.is-open .gs-iconbtn{position:relative;z-index:70}
/* Sized to its content and capped under the Book a Trip button rather than
 * running the full height. It stays mounted and slides both ways: visibility
 * (not display) hides it, so it leaves the tab order without killing the
 * transform transition, and the delay holds it visible until the slide-out
 * finishes. */
.gs-sheet__backdrop{position:fixed;inset:0;z-index:55;background:rgba(2,44,53,.35);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s}
.gs-sheet.is-open .gs-sheet__backdrop{opacity:1;visibility:visible;transition:opacity .25s ease,visibility 0s}
.gs-sheet__panel{position:fixed;top:0;right:0;left:12%;bottom:auto;height:auto;max-height:100dvh;background:var(--rd-background,#f5f2e7);padding:3.5rem 1.5rem 2rem;z-index:60;overflow-y:auto;border-bottom-left-radius:var(--rd-radius,8px);box-shadow:-20px 0 60px rgba(2,44,53,.25);transform:translateX(100%);visibility:hidden;transition:transform .25s ease,visibility 0s linear .25s}
.gs-sheet.is-open .gs-sheet__panel{transform:translateX(0);visibility:visible;transition:transform .25s ease,visibility 0s}
.gs-sheet__logo{height:4rem;width:auto}
.gs-sheet__nav{margin-top:2rem;display:flex;flex-direction:column}
.gs-sheet__group{margin:0 0 .5rem;font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--rd-c-lake,#306561)}
.gs-sheet__link{border-bottom:1px solid var(--rd-border,#b7c8c8);padding:.75rem 0;font-weight:600;color:var(--rd-c-navy,#022c35);text-decoration:none}
.gs-sheet__cta{margin-top:1.5rem;height:3rem}
.gs-sheet__contact{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--rd-border,#b7c8c8);display:flex;flex-direction:column;gap:.75rem;align-items:stretch}
.gs-sheet__call{height:3rem;border-color:color-mix(in srgb, var(--rd-c-navy,#022c35) 25%, transparent);color:var(--rd-c-navy,#022c35)}
.gs-sheet__text{text-align:center;font-weight:600;color:var(--rd-c-lake,#306561);text-decoration:underline;text-underline-offset:4px}

/* ---- mobile action bar ---- */
.gs-mbar{position:fixed;inset-inline:0;bottom:0;z-index:50;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;border-top:1px solid var(--rd-border,#b7c8c8);background:var(--rd-background,#f5f2e7);padding:.5rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}
.gs-mbar .gs-btn{height:3rem}
.gs-mbar .gs-btn--outline{border-color:color-mix(in srgb, var(--rd-c-navy,#022c35) 20%, transparent);color:var(--rd-c-navy,#022c35);background:var(--rd-background,#f5f2e7)}
@media(min-width:768px){.gs-mbar{display:none}}

/* ---- hero ---- */
.gs-hero{background:var(--rd-c-navy,#022c35);color:var(--rd-c-on-dark,#faf8f2)}
.gs-hero__grid{max-width:80rem;margin:0 auto;display:grid}
@media(min-width:1024px){.gs-hero__grid{grid-template-columns:55fr 45fr}}
.gs-hero__copy{display:flex;flex-direction:column;justify-content:center;padding:3.5rem 1.25rem}
@media(min-width:640px){.gs-hero__copy{padding:4.5rem 2rem}}
@media(min-width:1024px){.gs-hero__copy{min-height:650px;padding:5rem 3.5rem}}
.gs-hero__lede{margin:1.75rem 0 0;max-width:42rem;font-size:1.125rem;line-height:1.65;color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 82%, transparent)}
.gs-hero__callline{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin:1rem 0 0}
.gs-hero__calllabel{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.5rem;font-weight:600;color:var(--rd-c-on-dark,#faf8f2)}
.gs-hero__tel{width:fit-content;font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.5rem;font-weight:600;color:var(--rd-accent,#d7a44d);text-decoration:none}
.gs-hero__media{position:relative;min-height:460px;overflow:hidden}
@media(min-width:1024px){.gs-hero__media{min-height:650px}}
.gs-hero__img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;object-position:center}
.gs-hero__fade{position:absolute;inset-inline:0;bottom:0;height:5rem;background:linear-gradient(to top,color-mix(in srgb, var(--rd-c-navy,#022c35) 60%, transparent),transparent)}
/* Hero drift: a slow ken-burns push, held deliberately shallow (1.04 -> 1.08)
 * because these photos are 640x480 and already upscaled — a bigger zoom trades
 * visible softness for the motion. Starts scaled so the edges never show. */
@keyframes gs-drift{from{transform:scale(1.04) translate3d(0,0.8%,0)}to{transform:scale(1.08) translate3d(0,-0.8%,0)}}
.gs-hero__img{animation:gs-drift 22s ease-in-out infinite alternate;will-change:transform}
@media(prefers-reduced-motion:reduce){.gs-hero__img{animation:none}}

@media(min-width:1024px){.gs-hero__fade{inset-block:0;left:0;height:100%;width:5rem;background:linear-gradient(to right,color-mix(in srgb, var(--rd-c-navy,#022c35) 60%, transparent),transparent)}}

/* ---- proof bar ---- */
.gs-proof{border-bottom:1px solid var(--rd-border,#b7c8c8);background:var(--rd-background,#f5f2e7)}
.gs-proof__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:1024px){.gs-proof__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gs-proof__cell{display:flex;align-items:flex-start;gap:.75rem;padding:1.75rem 0}
.gs-proof__cell:nth-child(even){border-left:1px solid var(--rd-border,#b7c8c8);padding-left:1rem}
@media(min-width:1024px){.gs-proof__cell{border-left:1px solid var(--rd-border,#b7c8c8);padding:1.75rem}.gs-proof__cell:first-child{border-left:0;padding-left:0}}
.gs-proof__mark{margin-top:.35rem;width:1.25rem;height:1.25rem;flex:none;border:2px solid var(--rd-c-lake,#306561);border-radius:50%;position:relative}
.gs-proof__mark::after{content:"";position:absolute;left:.3rem;top:.12rem;width:.3rem;height:.6rem;border-right:2px solid var(--rd-c-lake,#306561);border-bottom:2px solid var(--rd-c-lake,#306561);transform:rotate(45deg)}
.gs-proof__t{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.5rem;font-weight:600;line-height:1;color:var(--rd-c-navy,#022c35);margin:0}
.gs-proof__x{margin:.5rem 0 0;font-size:.875rem;line-height:1.35;color:var(--rd-muted,#445a5e)}

/* ---- page header ---- */
.gs-phdr{background:var(--rd-c-navy,#022c35);color:var(--rd-c-on-dark,#faf8f2);padding:5rem 0}
@media(min-width:640px){.gs-phdr{padding:7rem 0}}
.gs-phdr__h{max-width:48rem}
.gs-phdr__lede{margin-top:1.5rem;max-width:42rem;font-size:1.125rem;line-height:1.65;color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 80%, transparent)}
.gs-phdr__lede p{margin:0 0 1rem}
.gs-crumbs{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.875rem;margin-bottom:1.5rem;color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 65%, transparent)}
.gs-crumbs a{color:inherit;text-decoration:none}
.gs-crumbs a:hover{color:var(--rd-accent,#d7a44d)}
.gs-crumbs__sep{opacity:.5}

/* ---- split ---- */
.gs-split{display:grid;gap:2.5rem;align-items:center}
@media(min-width:1024px){.gs-split{grid-template-columns:.9fr 1.1fr;gap:5rem}.gs-split--rev{grid-template-columns:1.05fr .95fr}.gs-split--rev .gs-split__media{order:2}}
.gs-split__media{position:relative}
.gs-split__img{width:100%;border-radius:var(--rd-radius,8px);object-fit:cover}
.gs-split__img--landscape{aspect-ratio:4/3}
.gs-split__img--portrait{aspect-ratio:4/5;max-height:560px;margin-inline:auto}
.gs-split__badge{position:absolute;bottom:-1rem;right:1rem;background:var(--rd-accent,#d7a44d);color:var(--rd-c-amber-foreground,#03242c);padding:.75rem 1.25rem;font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.25rem;font-weight:600}
.gs-split__copy .gs-arrow{margin-top:1.25rem}

/* ---- cards ---- */
.gs-cards__head{display:flex;flex-direction:column;gap:1.25rem;justify-content:space-between}
@media(min-width:640px){.gs-cards__head{flex-direction:row;align-items:flex-end}}
.gs-cards__intro{max-width:42rem}
.gs-cards{display:grid;gap:2rem;margin-top:2.5rem}
@media(min-width:768px){.gs-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}.gs-cards--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}}
.gs-card{overflow:hidden;border-radius:var(--rd-radius,8px);background:var(--rd-background,#f5f2e7)}
.gs-card--muted{border:1px dashed var(--rd-border,#b7c8c8);background:var(--rd-background,#f5f2e7)}
.gs-card--muted .gs-card__img{opacity:.65}
.gs-card__img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
/* A 16:10 crop of a taller photo cuts heads off; let the editor pick the anchor. */
.gs-card__img--center{object-position:50% 50%}
.gs-card__img--top{object-position:50% 0}
.gs-card__img--bottom{object-position:50% 100%}
/* A wide card crop of a tall photo shows less than half its height, so a subject
 * running head-to-foot cannot fit however it is nudged. A taller shape can. */
.gs-card__img--r16-10{aspect-ratio:16/10}
.gs-card__img--r4-3{aspect-ratio:4/3}
.gs-card__img--r1-1{aspect-ratio:1/1}
.gs-card__body{padding:1.75rem}
@media(min-width:640px){.gs-card__body{padding:2rem}}
.gs-card__body .gs-arrow{margin-top:1rem}
/* Motion: hover only, so nothing moves on load and nothing depends on JS.
 * The card lifts and its photo drifts in slightly behind the rounded corner. */
.gs-card{transition:transform .25s ease,box-shadow .25s ease}
.gs-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(2,44,53,.13)}
.gs-card__img{transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.gs-card:hover .gs-card__img{transform:scale(1.04)}
.gs-card--muted:hover{transform:none;box-shadow:none}
.gs-card--muted:hover .gs-card__img{transform:none}
.gs-split__media .gs-split__img,.gs-cross__img{transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.gs-btn--amber:hover{transform:translateY(-1px)}
.gs-btn{transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}
@media(prefers-reduced-motion:reduce){.gs-card,.gs-card__img,.gs-btn,.gs-split__img,.gs-cross__img{transition:none}.gs-card:hover{transform:none}.gs-card:hover .gs-card__img{transform:none}.gs-btn--amber:hover{transform:none}}

/* ---- steps ---- */
.gs-steps{display:grid;margin-top:2.5rem}
@media(min-width:768px){.gs-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.gs-step{border-top:1px solid var(--rd-border,#b7c8c8);padding:1.75rem 0}
@media(min-width:768px){.gs-step{border-top:0;border-left:1px solid var(--rd-border,#b7c8c8);padding:0 2rem}.gs-step:first-child{border-left:0;padding-left:0}}
.gs-step__n{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:2.25rem;font-weight:600;color:var(--rd-accent,#d7a44d);margin:0}
.gs-step__t{margin-top:1rem;font-size:1.5rem}
/* Steps rise in sequence as the section scrolls into view. Scroll-driven CSS
 * rather than an IntersectionObserver so it FAILS VISIBLE: a browser without
 * animation-timeline never hides the content in the first place, whereas a
 * JS reveal leaves it at opacity 0 if the script does not run. The stagger is
 * three offset ranges, not three delays. */
@keyframes gs-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){
.gs-steps .gs-step{animation:gs-rise linear both;animation-timeline:view();animation-range:entry 5% cover 26%}
.gs-steps .gs-step:nth-child(2){animation-range:entry 12% cover 33%}
.gs-steps .gs-step:nth-child(3){animation-range:entry 19% cover 40%}
}}

/* ---- price band ---- */
.gs-price{background:var(--rd-c-lake,#306561);color:var(--rd-c-on-dark,#faf8f2);padding:3.5rem 0}
.gs-price__grid{display:grid;gap:2rem;align-items:center}
@media(min-width:1024px){.gs-price__grid{grid-template-columns:1fr auto}}
.gs-price__main{display:grid;gap:1.25rem}
@media(min-width:640px){.gs-price__main{grid-template-columns:auto 1fr;align-items:center}}
.gs-price__n{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:clamp(4.5rem,3rem + 5vw,6rem);font-weight:700;line-height:1;color:var(--rd-accent,#d7a44d);margin:0}
.gs-price__h{margin:0;font-size:clamp(1.875rem,1.6rem + 1.2vw,2.25rem)}
.gs-price__p{margin:.5rem 0 0;max-width:42rem;color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 85%, transparent);line-height:1.6}
.gs-price__note{margin:.5rem 0 0;font-size:.875rem;font-weight:600;color:var(--rd-accent,#d7a44d)}

/* ---- rule columns ---- */
.gs-cols{display:grid;gap:2rem;margin-top:2.25rem}
@media(min-width:768px){.gs-cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}.gs-cols--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.gs-col{border-top:2px solid var(--rd-accent,#d7a44d);padding-top:1.5rem}

/* ---- notice ---- */
.gs-notice{border-left:4px solid var(--rd-accent,#d7a44d);background:var(--rd-c-sand,#e7e4dc);padding:1rem 1.25rem;font-size:1rem;line-height:1.7;color:var(--rd-muted,#445a5e)}
.gs-notice__link{font-weight:600;color:var(--rd-c-lake,#306561);text-decoration:underline;text-underline-offset:4px}

/* ---- faq ---- */
.gs-faq{margin-top:2.25rem;border-top:1px solid var(--rd-border,#b7c8c8)}
.gs-faq__item{border-bottom:1px solid var(--rd-border,#b7c8c8)}
.gs-faq__sum{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 0;cursor:pointer;list-style:none}
.gs-faq__sum::-webkit-details-marker{display:none}
.gs-faq__q{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.375rem;font-weight:600;margin:0;color:var(--rd-c-navy,#022c35)}
.gs-faq__plus{position:relative;width:1rem;height:1rem;flex:none}
.gs-faq__plus::before,.gs-faq__plus::after{content:"";position:absolute;background:var(--rd-c-lake,#306561);transition:transform .2s ease}
.gs-faq__plus::before{left:0;top:.4375rem;width:1rem;height:2px}
.gs-faq__plus::after{left:.4375rem;top:0;width:2px;height:1rem}
.gs-faq__item[open] .gs-faq__plus::after{transform:scaleY(0)}
.gs-faq__a{padding-bottom:1.25rem;max-width:52rem}
.gs-faq__a .gs-p:first-child{margin-top:0}

/* ---- rich ---- */
.gs-rich{max-width:52rem}
.gs-rich .gs-p:first-child{margin-top:1rem}

/* ---- cta ---- */
.gs-cta{background:var(--rd-c-navy,#022c35);color:var(--rd-c-on-dark,#faf8f2);padding:4.5rem 0}
@media(min-width:640px){.gs-cta{padding:6rem 0}}
.gs-cta__center{max-width:56rem;text-align:center}
.gs-cta__grid{display:grid;gap:2.5rem}
@media(min-width:1024px){.gs-cta__grid{grid-template-columns:1fr .9fr;gap:4rem;align-items:start}}
.gs-cta__h{font-size:clamp(2.5rem,2rem + 2.4vw,3.75rem)}
.gs-cta__p{margin:1.25rem auto 0;max-width:42rem;font-size:1.125rem;line-height:1.65;color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 80%, transparent)}
.gs-cta__grid .gs-cta__p{margin-inline:0}
.gs-cta__callline{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 0}
.gs-cta__grid .gs-cta__callline{justify-content:flex-start}
.gs-cta__calllabel{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.5rem;font-weight:600;color:var(--rd-c-on-dark,#faf8f2)}
.gs-cta__tel{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.5rem;font-weight:600;color:var(--rd-accent,#d7a44d);text-decoration:none}
.gs-cta__form{background:var(--rd-background,#f5f2e7);color:var(--rd-text,#182c32);border-radius:var(--rd-radius,8px);padding:1.75rem}
.gs-cta__formh{color:var(--rd-c-navy,#022c35)}
.gs-cta__formintro{margin:.5rem 0 1rem;color:var(--rd-muted,#445a5e);font-size:.9375rem;line-height:1.6}
/* FormRenderer inputs read --rd-background; force them light on the navy band */
.gs-cta__form input,.gs-cta__form textarea,.gs-cta__form select{background:var(--rd-surface,#ffffff) !important;color:var(--rd-text,#182c32) !important;border-color:var(--rd-border,#b7c8c8) !important}

/* ---- footer ---- */
.gs-ftr{background:var(--rd-c-navy,#022c35);color:var(--rd-c-on-dark,#faf8f2);padding-bottom:6rem}
@media(min-width:768px){.gs-ftr{padding-bottom:0}}
.gs-ftr__grid{display:grid;gap:2.5rem;padding-top:3.5rem;padding-bottom:3.5rem}
@media(min-width:768px){.gs-ftr__grid{grid-template-columns:1.4fr 1fr 1fr}}
.gs-ftr__logo{height:6rem;width:auto}
.gs-ftr__motto{margin:1rem 0 0;font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.25rem;color:var(--rd-accent,#d7a44d)}
.gs-ftr__blurb{margin:1.25rem 0 0;max-width:28rem;font-size:1rem;line-height:1.6;color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 75%, transparent)}
.gs-ftr__h{margin:0;font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.25rem;font-weight:600}
.gs-ftr__links{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}
.gs-ftr__links a{color:inherit;text-decoration:none;font-size:1rem}
.gs-ftr__links a:hover{color:var(--rd-accent,#d7a44d)}
.gs-ftr__contact{margin-top:1rem;font-size:1rem;line-height:1.6}
.gs-ftr__contact p{margin:0 0 .75rem}
.gs-ftr__tel{font-weight:600;color:var(--rd-accent,#d7a44d);text-decoration:none}
.gs-ftr__addr{color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 75%, transparent)}
.gs-ftr__addr strong{color:var(--rd-c-on-dark,#faf8f2)}
.gs-ftr__social{display:inline-block;color:inherit;text-decoration:underline;text-underline-offset:4px}
.gs-ftr__legal{border-top:1px solid color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 15%, transparent);padding:1.25rem;text-align:center;font-size:.875rem;color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 60%, transparent)}

/* ---- inline markup ---- */
.gs-inlink{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.gs-sec--navy .gs-inlink,.gs-phdr .gs-inlink,.gs-cta--navy .gs-inlink{color:var(--rd-accent,#d7a44d)}
.gs-subhead{margin:2.5rem 0 0}
.gs-eyebrow--inbody{margin:2.5rem 0 0}
.gs-eyebrow--inbody + .gs-subhead{margin-top:.5rem}

/* ---- columns extras ---- */
@media(min-width:640px){.gs-cols--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.gs-cols--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gs-col--amber{border-top:2px solid var(--rd-accent,#d7a44d);padding-top:1.5rem}
.gs-col--hairline{border-top:1px solid var(--rd-border,#b7c8c8);padding-top:1.25rem}
.gs-col--none{border-top:0;padding-top:0}
.gs-sec--navy .gs-col--hairline{border-top-color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 20%, transparent)}
.gs-sec--navy .gs-col .gs-d3{color:var(--rd-accent,#d7a44d)}

/* ---- cta surfaces ---- */
.gs-cta--canvas{background:var(--rd-background,#f5f2e7);color:var(--rd-text,#182c32)}
.gs-cta--canvas .gs-cta__p{color:var(--rd-muted,#445a5e)}
.gs-cta--canvas .gs-cta__calllabel{color:var(--rd-c-navy,#022c35)}
.gs-cta--canvas .gs-cta__tel{color:var(--rd-c-lake,#306561)}
.gs-cta--canvas .gs-btn--outline,.gs-cta--canvas .gs-btn--ghost{color:var(--rd-c-navy,#022c35);border-color:color-mix(in srgb, var(--rd-c-navy,#022c35) 25%, transparent)}
.gs-cta__img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--rd-radius,8px)}

/* ---- rates ---- */
.gs-rates{display:grid;gap:2rem}
@media(min-width:1024px){.gs-rates{grid-template-columns:.85fr 1.15fr}}
.gs-rates__panel{display:flex;flex-direction:column;justify-content:center;background:var(--rd-c-navy,#022c35);color:var(--rd-c-on-dark,#faf8f2);padding:2rem}
@media(min-width:640px){.gs-rates__panel{padding:2.5rem}}
.gs-rates__price{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:clamp(3.5rem,2.5rem + 3vw,4.5rem);font-weight:700;line-height:1;color:var(--rd-accent,#d7a44d);margin:.75rem 0 0}
.gs-rates__pricenote{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.5rem;font-weight:600;margin:.5rem 0 0}
.gs-rates__bullets{list-style:none;margin:1.5rem 0 0;padding:1.5rem 0 0;border-top:1px solid color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 20%, transparent);display:flex;flex-direction:column;gap:.5rem;color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 85%, transparent)}
.gs-rates__list{margin:1.5rem 0 0}
.gs-rates__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem;border-bottom:1px solid var(--rd-border,#b7c8c8);padding:1rem 0}
.gs-rates__row dt{font-weight:600;color:var(--rd-c-navy,#022c35);margin:0}
.gs-rates__row dd{color:var(--rd-muted,#445a5e);margin:0}
.gs-rates__note{margin:1.25rem 0 0;font-size:.875rem;font-weight:600;color:var(--rd-c-lake,#306561)}

/* ---- checklists ---- */
.gs-checks{display:grid;gap:2.5rem;margin-top:1.5rem}
@media(min-width:768px){.gs-checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:4rem}}
.gs-checks__h{border-top:2px solid var(--rd-accent,#d7a44d);padding-top:1.25rem}
.gs-checks__list{list-style:none;margin:1.25rem 0 0;padding:0;display:flex;flex-direction:column;gap:.75rem}
.gs-checks__list li{display:flex;gap:.75rem;color:var(--rd-muted,#445a5e);line-height:1.6}
.gs-checks__tick{margin-top:.45rem;width:.8rem;height:.45rem;flex:none;border-left:2px solid var(--rd-c-lake,#306561);border-bottom:2px solid var(--rd-c-lake,#306561);transform:rotate(-45deg)}

/* ---- map ---- */
.gs-map{display:grid;gap:2.5rem;align-items:center}
@media(min-width:1024px){.gs-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:4rem}}
.gs-map__frame{height:340px;width:100%;border-radius:var(--rd-radius,8px);border:1px solid var(--rd-border,#b7c8c8)}
@media(min-width:1024px){.gs-map__frame{height:420px}}
.gs-map__addr{display:flex;gap:.75rem;margin:1.5rem 0 0;font-weight:600;color:var(--rd-c-navy,#022c35)}
.gs-map__addrlabel{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--rd-c-lake,#306561)}
.gs-map__pin{margin-top:.3rem;width:.9rem;height:.9rem;flex:none;border:2px solid var(--rd-c-lake,#306561);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}

/* ---- grouped faqs ---- */
.gs-faqg{display:flex;flex-direction:column;gap:4rem}
.gs-faqg__group{display:grid;gap:2rem}
@media(min-width:1024px){.gs-faqg__group{grid-template-columns:.4fr 1fr;gap:4rem}}
.gs-faqg__head{border-top:2px solid var(--rd-accent,#d7a44d);padding-top:1.25rem}
.gs-faqg__h{margin:0}
.gs-faqg__head .gs-eyebrow{margin:0 0 .5rem}
.gs-faqg__items{display:grid;gap:2rem}
@media(min-width:640px){.gs-faqg__items{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gs-faqg__item{border-top:1px solid var(--rd-border,#b7c8c8);padding-top:1.25rem}
.gs-faqg__q{font-size:1.5rem;line-height:1.2}

/* ---- booking form + aside ---- */
.gs-formsplit{display:grid;gap:3rem}
@media(min-width:1024px){.gs-formsplit{grid-template-columns:1.1fr .9fr;gap:5rem;align-items:start}}
.gs-formsplit__form{margin-top:2rem}
.gs-formsplit__form input,.gs-formsplit__form textarea,.gs-formsplit__form select{background:var(--rd-surface,#ffffff) !important;color:var(--rd-text,#182c32) !important;border-color:var(--rd-border,#b7c8c8) !important}
/* FormRenderer ships .rd-btn--primary, which paints --rd-primary (navy here).
 * The design's submit is amber, so scope it up rather than restyle the shared button. */
.gs-formsplit__form .rd-btn--primary,.gs-cta__form .rd-btn--primary{background:var(--rd-accent,#d7a44d);border-color:var(--rd-accent,#d7a44d);color:var(--rd-c-amber-foreground,#03242c);font-family:var(--rd-font-body,"Source Sans 3",Arial,sans-serif);font-weight:600}
.gs-formsplit__form .rd-btn--primary:hover,.gs-cta__form .rd-btn--primary:hover{background:color-mix(in srgb, var(--rd-accent,#d7a44d) 90%, #000)}
.gs-aside{height:fit-content;background:var(--rd-c-navy,#022c35);color:var(--rd-c-on-dark,#faf8f2);padding:2rem}
@media(min-width:640px){.gs-aside{padding:2.5rem}}
.gs-aside__block + .gs-aside__block{margin-top:2rem}
.gs-aside__h{font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.5rem;font-weight:600;color:var(--rd-accent,#d7a44d);margin:0}
.gs-aside__h--spaced{margin-top:2rem}
.gs-aside__link{display:block;margin-top:.25rem;font-family:var(--rd-font-heading,"Barlow Condensed","Arial Narrow",sans-serif);font-size:1.875rem;font-weight:600;color:var(--rd-c-on-dark,#faf8f2);text-decoration:none}
.gs-aside__block:not(:first-child) .gs-aside__link{font-size:1.0625rem;text-decoration:underline;text-underline-offset:4px}
.gs-aside__text{margin:.25rem 0 0}
.gs-aside__list{list-style:none;margin:1rem 0 0;padding:1rem 0 0;border-top:1px solid color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 20%, transparent);display:flex;flex-direction:column;gap:.5rem;color:color-mix(in srgb, var(--rd-c-on-dark,#faf8f2) 85%, transparent)}
.gs-aside__cta{color:var(--rd-accent,#d7a44d)}

/* ---- cross-link band ---- */
.gs-cross{display:grid;gap:1.5rem;align-items:center}
@media(min-width:768px){.gs-cross{grid-template-columns:.55fr 1fr auto;gap:3rem}}
.gs-cross__img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--rd-radius,8px)}
.gs-cross__h{font-size:clamp(1.5rem,1.3rem + .9vw,2.25rem)}
.gs-cross__link{margin-top:0;justify-self:start}
.gs-sec--secondary .gs-cross .gs-p{margin-top:.75rem}

/* ---- photo gallery ---- */
.gs-gal{display:grid;gap:1rem;margin-top:2rem;align-items:stretch}
@media(min-width:640px){.gs-gal--2,.gs-gal--3,.gs-gal--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.gs-gal--3{grid-template-columns:repeat(3,minmax(0,1fr))}.gs-gal--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gs-gal__fig{margin:0;overflow:hidden;border-radius:var(--rd-radius,8px);background:var(--rd-background,#f5f2e7);display:flex;flex-direction:column}
.gs-gal__img{width:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,.61,.36,1)}
/* natural keeps each photo's own proportions — a gallery of people holding
 * fish crops badly at a fixed ratio, which decapitates half of them. */
.gs-gal__img--natural{height:auto;object-fit:contain}
/* Natural tiles keep their own proportions, so a plain grid leaves a ragged
 * bottom edge when portrait and landscape shots mix. Multi-column packs them
 * flush instead — the masonry the mixed set actually needs. */
.gs-gal--shape-natural{display:block;columns:1;column-gap:1rem}
@media(min-width:640px){.gs-gal--shape-natural.gs-gal--2,.gs-gal--shape-natural.gs-gal--3,.gs-gal--shape-natural.gs-gal--4{columns:2}}
@media(min-width:1024px){.gs-gal--shape-natural.gs-gal--3{columns:3}.gs-gal--shape-natural.gs-gal--4{columns:4}}
.gs-gal--shape-natural .gs-gal__fig{break-inside:avoid;-webkit-column-break-inside:avoid;display:inline-block;width:100%;margin-bottom:1rem}

.gs-gal__img--square{aspect-ratio:1/1}
.gs-gal__img--landscape{aspect-ratio:4/3}
.gs-gal__img--portrait{aspect-ratio:4/5}
.gs-gal__fig:hover .gs-gal__img{transform:scale(1.04)}
/* Tiles in a row stretch to equal height, so a one-line caption next to a
 * two-line one would sit high against a taller neighbour. The caption area
 * takes the leftover height and centres its text inside it. */
.gs-gal__cap{flex:1;display:flex;align-items:center;padding:.75rem .5rem;font-size:.875rem;line-height:1.45;color:var(--rd-muted,#445a5e)}
.gs-gal__intro{max-width:42rem}
/* Tiles crop to a fixed ratio, so the lightbox is the only place the whole
 * frame is visible — contain, never cover. It is portalled to body, so it sits
 * outside .rd-root and needs no override for the base margin resets. */
.gs-gal__btn{display:block;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:zoom-in;overflow:hidden;border-radius:var(--rd-radius,8px)}
.gs-gal__btn:focus-visible{outline:2px solid var(--rd-accent,#d7a44d);outline-offset:3px}
.gs-lb{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;gap:clamp(.25rem,2vw,1.5rem);padding:clamp(1rem,4vw,3rem);background:rgba(2,18,22,.94);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease}
.gs-lb.is-open{opacity:1;visibility:visible}
.gs-lb__fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:.85rem;max-width:min(96vw,1100px);max-height:100%}
.gs-lb__img{display:block;width:auto;height:auto;max-width:100%;max-height:76vh;object-fit:contain;border-radius:var(--rd-radius,8px);background:var(--rd-c-navy,#022c35)}
.gs-lb__cap{margin:0;max-width:46rem;text-align:center;font-size:.95rem;line-height:1.5;color:var(--rd-c-on-dark,#faf8f2)}
.gs-lb__count{margin:0;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rd-c-sand,#e7e4dc);opacity:.75}
.gs-lb__close,.gs-lb__nav{flex:none;display:grid;place-items:center;border:0;border-radius:999px;background:rgba(250,248,242,.12);color:var(--rd-c-on-dark,#faf8f2);cursor:pointer;line-height:1;transition:background .2s ease}
.gs-lb__close:hover,.gs-lb__nav:hover{background:rgba(250,248,242,.24)}
.gs-lb__close:focus-visible,.gs-lb__nav:focus-visible{outline:2px solid var(--rd-accent,#d7a44d);outline-offset:3px}
.gs-lb__close{position:absolute;top:clamp(.75rem,2vw,1.5rem);right:clamp(.75rem,2vw,1.5rem);width:2.75rem;height:2.75rem;font-size:1.9rem}
.gs-lb__nav{width:3rem;height:3rem;font-size:2.1rem}
@media(max-width:639px){.gs-lb__nav{width:2.5rem;height:2.5rem;font-size:1.7rem}.gs-lb__img{max-height:68vh}}
@media(prefers-reduced-motion:reduce){.gs-lb{transition:none}.gs-gal__btn{cursor:pointer}}
@media(prefers-reduced-motion:reduce){.gs-gal__img{transition:none}.gs-gal__fig:hover .gs-gal__img{transform:none}}

/* baseCss resets .rd-root p{margin:0} and .rd-root h1..h4{margin:0} at
 * specificity (0,1,1); every rule above is a single class (0,1,0) and loses,
 * silently dropping the margin while its other declarations still apply.
 * These re-assert every margin this family declares, prefixed so they win.
 * Generated: a theme-token interpolation carries braces, so a generator that
 * brace-matches raw text skips every rule that uses one. An earlier version
 * did exactly that and dropped 39 of 72 rules without a word, un-centring the
 * CTA copy on five pages. Mask the interpolations first, and count. */
.rd-root .gs-wrap{margin:0 auto}
.rd-root .gs-d1{margin:1.25rem 0 0}
.rd-root .gs-d2{margin:.75rem 0 0}
.rd-root .gs-d3{margin:0}
.rd-root .gs-p{margin:1rem 0 0}
.rd-root .gs-eyebrow{margin:0}
.rd-root .gs-btns{margin-top:2rem}
.rd-root .gs-arrow{margin-top:1.25rem}
.rd-root .gs-hdr__cta{margin-left:.5rem}
.rd-root .gs-burger__inner{margin-top:-1px}
.rd-root .gs-sheet__nav{margin-top:2rem}
.rd-root .gs-sheet__group{margin:0 0 .5rem}
.rd-root .gs-sheet__cta{margin-top:1.5rem}
.rd-root .gs-sheet__contact{margin-top:1.25rem}
.rd-root .gs-hero__grid{margin:0 auto}
.rd-root .gs-hero__lede{margin:1.75rem 0 0}
.rd-root .gs-hero__callline{margin:1rem 0 0}
.rd-root .gs-proof__mark{margin-top:.35rem}
.rd-root .gs-proof__t{margin:0}
.rd-root .gs-proof__x{margin:.5rem 0 0}
.rd-root .gs-phdr__lede{margin-top:1.5rem}
.rd-root .gs-phdr__lede p{margin:0 0 1rem}
.rd-root .gs-crumbs{margin-bottom:1.5rem}
.rd-root .gs-split__img--portrait{margin-inline:auto}
.rd-root .gs-split__copy .gs-arrow{margin-top:1.25rem}
.rd-root .gs-cards{margin-top:2.5rem}
.rd-root .gs-card__body .gs-arrow{margin-top:1rem}
.rd-root .gs-steps{margin-top:2.5rem}
.rd-root .gs-step__n{margin:0}
.rd-root .gs-step__t{margin-top:1rem}
.rd-root .gs-price__n{margin:0}
.rd-root .gs-price__h{margin:0}
.rd-root .gs-price__p{margin:.5rem 0 0}
.rd-root .gs-price__note{margin:.5rem 0 0}
.rd-root .gs-cols{margin-top:2.25rem}
.rd-root .gs-faq{margin-top:2.25rem}
.rd-root .gs-faq__q{margin:0}
.rd-root .gs-faq__a .gs-p:first-child{margin-top:0}
.rd-root .gs-rich .gs-p:first-child{margin-top:1rem}
.rd-root .gs-cta__p{margin:1.25rem auto 0}
.rd-root .gs-cta__grid .gs-cta__p{margin-inline:0}
.rd-root .gs-cta__callline{margin:1.25rem 0 0}
.rd-root .gs-cta__formintro{margin:.5rem 0 1rem}
.rd-root .gs-ftr__motto{margin:1rem 0 0}
.rd-root .gs-ftr__blurb{margin:1.25rem 0 0}
.rd-root .gs-ftr__h{margin:0}
.rd-root .gs-ftr__links{margin-top:1rem}
.rd-root .gs-ftr__contact{margin-top:1rem}
.rd-root .gs-ftr__contact p{margin:0 0 .75rem}
.rd-root .gs-subhead{margin:2.5rem 0 0}
.rd-root .gs-eyebrow--inbody{margin:2.5rem 0 0}
.rd-root .gs-eyebrow--inbody + .gs-subhead{margin-top:.5rem}
.rd-root .gs-faqg__head .gs-eyebrow{margin:0 0 .5rem}
.rd-root .gs-rates__price{margin:.75rem 0 0}
.rd-root .gs-rates__pricenote{margin:.5rem 0 0}
.rd-root .gs-rates__bullets{margin:1.5rem 0 0}
.rd-root .gs-rates__list{margin:1.5rem 0 0}
.rd-root .gs-rates__row dt{margin:0}
.rd-root .gs-rates__row dd{margin:0}
.rd-root .gs-rates__note{margin:1.25rem 0 0}
.rd-root .gs-checks{margin-top:1.5rem}
.rd-root .gs-checks__list{margin:1.25rem 0 0}
.rd-root .gs-checks__tick{margin-top:.45rem}
.rd-root .gs-map__addr{margin:1.5rem 0 0}
.rd-root .gs-map__pin{margin-top:.3rem}
.rd-root .gs-faqg__h{margin:0}
.rd-root .gs-formsplit__form{margin-top:2rem}
.rd-root .gs-aside__block + .gs-aside__block{margin-top:2rem}
.rd-root .gs-aside__h{margin:0}
.rd-root .gs-aside__h--spaced{margin-top:2rem}
.rd-root .gs-aside__link{margin-top:.25rem}
.rd-root .gs-aside__text{margin:.25rem 0 0}
.rd-root .gs-gal{margin-top:2rem}
.rd-root .gs-gal__fig{margin:0}
.rd-root .gs-gal--shape-natural .gs-gal__fig{margin:0 0 1rem}
.rd-root .gs-aside__list{margin:1rem 0 0}
.rd-root .gs-cross__link{margin-top:0}
.rd-root .gs-sec--secondary .gs-cross .gs-p{margin-top:.75rem}
