/* SG Footer v2 — sitewide. Scoped to #footer.sgf. 2026-10-02. */
#footer.sgf {
	--f-bg: #101314;
	--f-bg2: #0b0d0e;
	--f-text: #c4c9cb;
	--f-dim: #9aa1a4;
	--f-line: rgba(255,255,255,.12);
	--f-white: #fff;
	--f-teal: #00788b;
	--f-teal-l: #8fd3dd;
	--f-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--f-sans: "Open Sans", Arial, sans-serif;
	background: var(--f-bg) !important;
	color: var(--f-text);
	font-family: var(--f-sans);
	font-size: 16px;
	line-height: 1.7;
	text-align: left;
	padding: 0 !important;
	margin: 0 !important;
	-webkit-font-smoothing: antialiased;
	font-variant-numeric: lining-nums;
}
#footer.sgf *, #footer.sgf *::before, #footer.sgf *::after { box-sizing: border-box; }
#footer.sgf a { color: inherit; text-decoration: none; transition: color .2s ease, background .2s ease, border-color .2s ease; }
#footer.sgf p { margin: 0 0 12px; color: inherit; font-size: inherit; line-height: inherit; }
#footer.sgf ul { list-style: none; margin: 0; padding: 0; }
#footer.sgf li { margin: 0; padding: 0; }
.sgf-wrap { width: min(1240px, 100% - 64px); margin: 0 auto; }

.sgf-kicker {
	font: 600 12px/1.4 var(--f-sans) !important; letter-spacing: .22em !important; text-transform: uppercase;
	color: var(--f-teal-l) !important; margin: 0 0 14px !important;
}

/* Buttons */
.sgf-btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 30px;
	font: 600 13px/1 var(--f-sans) !important; letter-spacing: .16em !important; text-transform: uppercase;
	border: 1px solid transparent; border-radius: 0; cursor: pointer;
}
#footer.sgf .sgf-btn--solid { background: var(--f-teal); color: #fff; }
#footer.sgf .sgf-btn--solid:hover { background: #fff; color: #101314; }
#footer.sgf .sgf-btn--ghost { border-color: rgba(255,255,255,.55); color: #fff; }
#footer.sgf .sgf-btn--ghost:hover { background: #fff; color: #101314; }

/* CTA band */
.sgf-cta { padding: clamp(64px, 8vw, 104px) 0; border-bottom: 1px solid var(--f-line); }
.sgf-cta__inner { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.sgf-cta__title {
	font: 500 clamp(38px, 5vw, 68px)/1.05 var(--f-serif) !important; letter-spacing: -.01em !important;
	text-transform: none !important; color: var(--f-white) !important; margin: 0 !important;
}
.sgf-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* Contact form (hidden until opened, like the theme's) */
#footer.sgf .sgf-form { display: none; background: var(--f-bg2) !important; padding: 72px 0 80px !important; border-bottom: 1px solid var(--f-line); }
#footer.sgf .sgf-form .contact-heading { margin-bottom: 34px; padding: 0; text-align: left; }
#footer.sgf .sgf-form .contact-heading h3 { font: 500 40px/1.1 var(--f-serif) !important; color: #fff !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 10px !important; }
#footer.sgf .sgf-form .contact-heading p { color: var(--f-dim); margin: 0; }
#footer.sgf .sgf-form fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px; border: 0; margin: 0; padding: 0; }
#footer.sgf .sgf-form .form-field { float: none; width: auto; margin: 0; padding: 0; }
#footer.sgf .sgf-form .form-field--full { grid-column: 1 / -1; }
#footer.sgf .sgf-form label { display: block; font: 600 12px/1.4 var(--f-sans) !important; letter-spacing: .16em; text-transform: uppercase; color: var(--f-text) !important; margin-bottom: 8px; }
#footer.sgf .sgf-form input[type=text], #footer.sgf .sgf-form input[type=email], #footer.sgf .sgf-form textarea {
	width: 100%; background: transparent !important; border: 0 !important; border-bottom: 1px solid rgba(255,255,255,.35) !important;
	color: #fff !important; font: 400 17px/1.5 var(--f-sans) !important; padding: 10px 0 !important; border-radius: 0; box-shadow: none !important;
}
#footer.sgf .sgf-form textarea { min-height: 120px; resize: vertical; }
#footer.sgf .sgf-form input:focus, #footer.sgf .sgf-form textarea:focus { outline: none; border-bottom-color: var(--f-teal-l) !important; }
#footer.sgf .sgf-form .form-click { margin-top: 30px; padding: 0; float: none; width: auto; }
#footer.sgf .sgf-form .alert { margin-top: 18px; color: #fff; }

/* Main columns */
.sgf-main { padding: clamp(64px, 7vw, 96px) 0 clamp(48px, 6vw, 72px); }
.sgf-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 48px; }
.sgf-logo { display: inline-flex; align-items: center; gap: 14px; margin-bottom: 22px; color: #fff !important; }
.sgf-logo__mark { position: relative; width: 46px; height: 30px; flex: none; }
.sgf-logo__mark i { position: absolute; top: 0; width: 30px; height: 30px; border-radius: 50%; }
.sgf-logo__mark i:first-child { left: 0; background: #e9e2d6; }
.sgf-logo__mark i:last-child { left: 16px; background: var(--f-teal); mix-blend-mode: normal; }
.sgf-logo__text { font: 500 26px/1 var(--f-serif); letter-spacing: .02em; }
.sgf-brand > p { max-width: 360px; color: var(--f-text); }
.sgf-social { display: flex; gap: 12px; margin-top: 26px !important; }
.sgf-social a {
	display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px;
	border: 1px solid rgba(255,255,255,.3); border-radius: 50%; color: #fff !important; font-size: 15px;
}
.sgf-social a:hover { background: #fff; color: #101314 !important; border-color: #fff; }
.sgf-social i { line-height: 1; margin: 0; }

.sgf-h {
	font: 600 12px/1.4 var(--f-sans) !important; letter-spacing: .22em !important; text-transform: uppercase !important;
	color: var(--f-teal-l) !important; margin: 0 0 22px !important; padding: 0 !important; border: 0 !important;
}
.sgf-col li + li { margin-top: 10px; }
.sgf-col a { color: var(--f-text) !important; font-size: 16px; }
.sgf-col a:hover { color: #fff !important; }
.sgf-contact p { margin-bottom: 14px !important; }
#footer.sgf .sgf-underline { color: #fff !important; border-bottom: 1px solid var(--f-teal-l); padding-bottom: 3px; }
#footer.sgf .sgf-underline:hover { border-color: #fff; }

/* Bottom bar */
.sgf-bottom { border-top: 1px solid var(--f-line); padding: 26px 0; }
.sgf-bottom__inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
#footer.sgf .sgf-bottom p { margin: 0; font-size: 14px; color: var(--f-dim); }
#footer.sgf .sgf-top { font-size: 14px; color: var(--f-dim) !important; }
#footer.sgf .sgf-top:hover { color: #fff !important; }

#footer.sgf a:focus-visible, #footer.sgf button:focus-visible { outline: 2px solid var(--f-teal-l); outline-offset: 3px; }

@media (max-width: 960px) {
	.sgf-grid { grid-template-columns: 1fr 1fr; gap: 44px 32px; }
	.sgf-brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.sgf-wrap { width: calc(100% - 40px); }
	.sgf-cta__actions { flex-direction: column; align-items: stretch; width: 100%; }
	.sgf-grid { grid-template-columns: 1fr 1fr; gap: 40px 20px; }
	.sgf-contact { grid-column: 1 / -1; }
	#footer.sgf .sgf-form fieldset { grid-template-columns: 1fr; }
	.sgf-bottom__inner { flex-direction: column; align-items: flex-start; }
}

/* theme overrides inside the form */
#footer.sgf .sgf-form label { text-align: left !important; }
#footer.sgf .sgf-form .form-field span { display: block; }
#footer.sgf .sgf-form .form-click span { display: inline-block; }
#footer.sgf .sgf-form button.submit { width: auto !important; min-width: 180px; background: var(--f-teal) !important; color: #fff !important; border: 0 !important; height: 52px; padding: 0 34px !important; box-shadow: none !important; }
#footer.sgf .sgf-form button.submit:hover { background: #fff !important; color: #101314 !important; }
#footer.sgf .sgf-form .alert { display: none; }
#footer.sgf .sgf-form label { padding: 0 !important; margin-left: 0 !important; }
#footer.sgf .sgf-form .form-click { text-align: left !important; }

/* "Contact" button in the main menu (menu item class sg-nav-cta) */
.nav-content ul.nav > li.sg-nav-cta > a,
.desktop.navigation .nav-content ul.nav > li.sg-nav-cta > a {
	color: #fff !important; background: #00788b; opacity: 1 !important;
	padding: 10px 20px !important; margin-left: 10px; line-height: 1 !important; height: auto !important;
	letter-spacing: .12em; text-transform: uppercase; border-radius: 0;
}
.nav-content ul.nav > li.sg-nav-cta > a:hover { background: #101314; color: #fff !important; }
@media (max-width: 1023px) {
	.nav-content ul.nav > li.sg-nav-cta > a { display: inline-block; margin: 10px 0 14px 0; }
}

/* Desktop menu: fit 9 items + Contact button on one line */
@media (min-width: 1024px) {
	nav.clearfix ul li { margin-right: 26px !important; }
	nav.clearfix ul li.sg-nav-cta { margin-right: 0 !important; }
	nav.clearfix li.sg-nav-cta > a { color: #fff !important; background: #00788b; opacity: 1 !important; padding: 11px 20px !important; margin-left: 4px; letter-spacing: .12em; }
	nav.clearfix li.sg-nav-cta > a:hover { background: #101314; }
}
@media (min-width: 1024px) and (max-width: 1240px) {
	nav.clearfix ul li { margin-right: 16px !important; }
}
@media (min-width: 1024px) {
	nav.clearfix .navigation.desktop { width: auto !important; max-width: calc(100% - 300px); float: right !important; }
	nav.clearfix .navigation.desktop .nav-content, nav.clearfix .navigation.desktop ul.nav { width: auto !important; }
	nav.clearfix .navigation.desktop ul.nav { white-space: nowrap; display: flex; align-items: center; }
	nav.clearfix .navigation.desktop ul.nav > li { float: none !important; }
	nav.clearfix li.sg-nav-cta > a { display: inline-block; }
}
@media (min-width: 1024px) {
	nav.clearfix > .logo { width: auto !important; }
	nav.clearfix .navigation.desktop { max-width: none; }
}

/* Header visible on first paint (2026-10-02): the theme keeps .navigation at display:none until its
   delayed script adds .desktop/.mobile. Show the desktop menu from CSS on wide screens. */
@media (min-width: 1024px) {
	nav.clearfix .navigation { display: block !important; width: auto !important; float: right !important; }
	nav.clearfix .navigation .nav-content, nav.clearfix .navigation ul.nav { width: auto !important; display: block; }
	nav.clearfix .navigation ul.nav { display: flex !important; align-items: center; white-space: nowrap; }
	nav.clearfix .navigation ul.nav > li { float: none !important; }
	nav.clearfix .nav-button { display: none !important; }
}
@media (min-width: 1024px) {
	nav.clearfix .navigation ul.nav > li:not(.sg-nav-cta) > a { font-size: 12px !important; text-transform: uppercase !important; font-weight: 400 !important; color: #6f6f6f !important; }
	nav.clearfix .navigation ul.nav > li:not(.sg-nav-cta) > a:hover { color: #060606 !important; }
}
@media (min-width: 1024px) {
	nav.clearfix .navigation ul.nav > li.sg-nav-cta > a { font-size: 12px !important; line-height: 1 !important; padding: 11px 20px !important; letter-spacing: .12em !important; text-transform: uppercase !important; }
}
@media (min-width: 1024px) { nav.clearfix .navigation { margin-right: 5% !important; } }
