/* ==========================================================================
   SC Bookkeeping LLC - custom.css
   Everything the Squarespace runtime used to do with JavaScript, plus the
   font substitutions. Loaded after site.css (the purged Squarespace theme).
   Built by Digital Bliss Marketing Solutions LLC.
   ========================================================================== */

/* ---------- Self-hosted fonts (Google Fonts, OFL licensed) ---------- */
@font-face { font-family: 'Crimson Pro'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/crimson-pro-latin-400-normal.woff2') format('woff2'), url('/assets/fonts/crimson-pro-latin-400-normal.woff') format('woff'); }
@font-face { font-family: 'Crimson Pro'; font-style: italic; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/crimson-pro-latin-400-italic.woff2') format('woff2'), url('/assets/fonts/crimson-pro-latin-400-italic.woff') format('woff'); }
@font-face { font-family: 'Crimson Pro'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('/assets/fonts/crimson-pro-latin-600-normal.woff2') format('woff2'), url('/assets/fonts/crimson-pro-latin-600-normal.woff') format('woff'); }
@font-face { font-family: 'Pontano Sans'; font-style: normal; font-weight: 300; font-display: swap;
  src: url('/assets/fonts/pontano-sans-latin-300-normal.woff2') format('woff2'), url('/assets/fonts/pontano-sans-latin-300-normal.woff') format('woff'); }
@font-face { font-family: 'Pontano Sans'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/pontano-sans-latin-400-normal.woff2') format('woff2'), url('/assets/fonts/pontano-sans-latin-400-normal.woff') format('woff'); }
@font-face { font-family: 'Pontano Sans'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('/assets/fonts/pontano-sans-latin-500-normal.woff2') format('woff2'), url('/assets/fonts/pontano-sans-latin-500-normal.woff') format('woff'); }
@font-face { font-family: 'Pontano Sans'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('/assets/fonts/pontano-sans-latin-600-normal.woff2') format('woff2'), url('/assets/fonts/pontano-sans-latin-600-normal.woff') format('woff'); }
@font-face { font-family: 'Pontano Sans'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('/assets/fonts/pontano-sans-latin-700-normal.woff2') format('woff2'), url('/assets/fonts/pontano-sans-latin-700-normal.woff') format('woff'); }

/* Font substitutions.
   adonis-web (Adobe Fonts, licensed through Squarespace) -> Crimson Pro.
   adelle-sans was never loaded on the live site, so buttons fell back to the
   browser default serif; the explicit fallback below keeps that same look. */
:root {
  --heading-font-font-family: 'Crimson Pro', 'adonis-web', Georgia, 'Times New Roman', serif;
  --body-font-font-family: 'Pontano Sans', 'Helvetica Neue', Arial, sans-serif;
  --primary-button-font-font-family: 'adelle-sans', 'Times New Roman', Times, serif;
  --secondary-button-font-font-family: 'adelle-sans', 'Times New Roman', Times, serif;
  --tertiary-button-font-font-family: 'adelle-sans', 'Times New Roman', Times, serif;
  --header-button-font-font-family: 'Pontano Sans', 'Helvetica Neue', Arial, sans-serif;
  --sqs-site-max-width: 1400px;
  --sqs-site-gutter: 4vw;
  --sqs-mobile-site-gutter: 6vw;
  --pagePadding: 4vw;
  --maxPageWidth: 1400px;
}

html { scroll-behavior: smooth; }
html.wf-loading * { animation: none; }
body { margin: 0; }

/* ---------- Section backgrounds (Squarespace loads these with JS) ---------- */
.section-background { position: absolute; inset: 0; overflow: hidden; }
.section-background img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.section-background-overlay { position: absolute; inset: 0; background-color: var(--backgroundOverlayColor, #000); }
.page-section.has-background .section-background-overlay { display: block; }

/* ---------- Section dividers ---------- */
.page-section.has-section-divider { position: relative; }
.scb-divider { position: absolute; left: 0; right: 0; z-index: 1; pointer-events: none; line-height: 0; }
.scb-divider--top { top: -1px; }
.scb-divider--bottom { bottom: -1px; }
.scb-divider svg { display: block; width: 100%; height: 100%; }
.page-section.has-section-divider > .content-wrapper { position: relative; z-index: 2; }
.page-section.has-section-divider--top > .content-wrapper { padding-top: calc(var(--divider-height) + 2vmax) !important; }

/* ---------- Text highlights (circle / underline / scribble) ---------- */
.scb-hl-wrap { position: relative; display: inline; color: inherit; --scb-hl-color: var(--paragraphLinkColor, currentColor); }
[data-section-theme="dark"] .scb-hl-wrap, [data-section-theme="black"] .scb-hl-wrap { --scb-hl-color: hsla(var(--white-hsl), 1); }
[data-section-theme="light"] .scb-hl-wrap, [data-section-theme="white"] .scb-hl-wrap, [data-section-theme="light-bold"] .scb-hl-wrap, [data-section-theme="white-bold"] .scb-hl-wrap { --scb-hl-color: hsla(var(--safeDarkAccent-hsl), 1); }
[data-section-theme="bright-inverse"] .scb-hl-wrap { --scb-hl-color: hsla(var(--accent-hsl), 1); }
.scb-hl { position: absolute; left: -0.15em; right: -0.15em; pointer-events: none; color: var(--scb-hl-color); overflow: visible; z-index: -1; }
.scb-hl--circle { top: -0.32em; height: 1.65em; width: calc(100% + 0.4em); left: -0.2em; }
.scb-hl--underline { top: 100%; margin-top: -0.18em; height: 0.28em; width: calc(100% + 0.3em); }
.scb-hl--scribble { top: 100%; margin-top: -0.14em; height: 0.34em; width: calc(100% + 0.3em); }
.scb-hl path { stroke-width: 0.09em; stroke-dasharray: 1000; stroke-dashoffset: 1000; }
.scb-in-view .scb-hl path, .no-js .scb-hl path { animation: scb-draw 0.9s ease-out 0.4s forwards; }
@keyframes scb-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .scb-hl path { animation: none; stroke-dashoffset: 0; } }

/* ---------- Gentle motion: scroll fade-up, staggered; hero image settles in ---------- */
.js .scb-fade { opacity: 0; transform: translateY(18px); transition: opacity .9s cubic-bezier(.2,.6,.3,1), transform .9s cubic-bezier(.2,.6,.3,1); transition-delay: var(--scb-delay, 0s); }
.js .scb-fade.scb-in-view { opacity: 1; transform: none; }
.js .page-section.has-background .section-background img { animation: scb-hero-settle 1.8s cubic-bezier(.2,.6,.3,1) both; }
@keyframes scb-hero-settle { from { transform: scale(1.05); opacity: .6; } to { transform: scale(1); opacity: 1; } }
.sqs-block-button-element, .header-actions-action--cta .btn, .form-submit-button { transition: transform .25s ease, opacity .25s ease; }
.sqs-block-button-element:hover, .header-actions-action--cta .btn:hover, .form-submit-button:hover { transform: translateY(-2px); }
.list-item[data-is-card-enabled="true"] { transition: transform .35s ease, box-shadow .35s ease; }
.list-item[data-is-card-enabled="true"]:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(12, 60, 96, .12); }
@media (prefers-reduced-motion: reduce) {
  .js .scb-fade { opacity: 1; transform: none; transition: none; }
  .js .page-section.has-background .section-background img { animation: none; }
  .sqs-block-button-element:hover, .list-item[data-is-card-enabled="true"]:hover { transform: none; }
}

/* ---------- Header: transparent overlay behaviour + mobile menu ---------- */
/* Squarespace 7.1 overlays the header on every page and pads the first section by the real
   header height (set from JS into --header-height). Same here. */
.tweak-transparent-header .header { position: absolute; top: 0; left: 0; right: 0; z-index: 1000; }
.tweak-transparent-header .header .header-background { background: transparent; }
main { --header-height: 202px; }
@media (max-width: 799px) { main { --header-height: 150px; } }
.header-menu { position: fixed; inset: 0; z-index: 999; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s; overflow-y: auto; }
body.header--menu-open .header-menu { opacity: 1; visibility: visible; }
body.header--menu-open { overflow: hidden; }
body.header--menu-open .header-announcement-bar-wrapper { position: relative; z-index: 1001; }
body.header--menu-open .burger-inner > div { background-color: #000 !important; }
.header-menu-nav-folder { display: flex; flex-direction: column; justify-content: center; min-height: 100vh; }
.header-burger-btn { background: none; border: 0; cursor: pointer; padding: 0; color: #000; }
.burger-inner .top-bun, .burger-inner .patty, .burger-inner .bottom-bun { height: 1px; background-color: currentColor; }
.burger--active .burger-inner .top-bun { transform: rotate(45deg) !important; }
.burger--active .burger-inner .bottom-bun { transform: rotate(-45deg) !important; }
.burger--active .burger-inner .patty { transform: scale(0) !important; }
/* menu overlay: matches the live site (white overlay, black links, dark-blue CTA) */
.header-menu { --menuOverlayBackgroundColor: hsla(var(--white-hsl), 1); --menuOverlayNavigationLinkColor: hsla(var(--black-hsl), 1); --menuOverlayButtonBackgroundColor: hsla(var(--safeDarkAccent-hsl), 1); --menuOverlayButtonTextColor: hsla(var(--white-hsl), 1); color: #000; }
.header-menu .header-menu-bg { background-color: #fff; }
.header-menu .header-menu-nav-item a { color: #000; text-decoration: none; font-family: var(--body-font-font-family); }
.header-menu .header-menu-cta a { background-color: hsla(var(--safeDarkAccent-hsl), 1); color: #fff; }
.header-nav-item--active a { background-image: linear-gradient(currentColor, currentColor); background-position: 0 100%; background-size: 100% 1px; background-repeat: no-repeat; }
.header-skip-link { position: absolute; left: -9999px; }
.header-skip-link:focus { left: 1rem; top: 1rem; z-index: 2000; }

/* ---------- Accordion ---------- */
.sqs-block-accordion .accordion-item.is-open .accordion-item__dropdown { display: block; }
.accordion-item__click-target { width: 100%; background: none; border: 0; padding: var(--accordion-item-padding-top, 30px) var(--accordion-item-padding-right, 0) var(--accordion-item-padding-bottom, 30px) var(--accordion-item-padding-left, 0); display: flex; justify-content: space-between; align-items: center; cursor: pointer; color: inherit; font: inherit; text-align: left; }
.accordion-item__title { font-family: var(--heading-font-font-family); font-size: 1.6rem; line-height: 1.4; }
.accordion-icon-container { flex: 0 0 auto; width: var(--accordion-icon-size, 24px); height: var(--accordion-icon-size, 24px); position: relative; margin-left: 1em; }
.plus { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.sqs-block-accordion .plus__horizontal-line, .sqs-block-accordion .plus__vertical-line { height: var(--accordion-icon-thickness, 1px); }
.sqs-block-accordion .accordion-item.is-open .plus__vertical-line { transform: rotate(0); }
.accordion-divider { height: var(--accordion-divider-thickness, 1px); background: currentColor; opacity: var(--accordion-divider-opacity, .5); }
.accordion-item__description { max-width: var(--accordion-description-width, 85%); padding: var(--accordion-description-padding-top, 0) 0 var(--accordion-description-padding-bottom, 15px); }
.accordion-items-container { list-style: none; margin: 0; padding: 0; }

/* ---------- Contact form ---------- */
.sqs-block-form .form-wrapper { display: block; }
.sqs-block-form .field-list { margin: 0; padding: 0; border: 0; }
.sqs-block-form .form-item { margin: 0 0 var(--form-field-spacing-bottom, 20px); padding: 0; border: 0; min-width: 0; }
.sqs-block-form fieldset { margin: 0; padding: 0; border: 0; }
.sqs-block-form .title, .sqs-block-form legend.title { display: block; margin-bottom: var(--form-label-spacing-bottom, 4px); font-family: var(--body-font-font-family); font-size: 1rem; }
.sqs-block-form .required { font-size: .8em; opacity: .75; margin-left: .25em; }
.sqs-block-form .caption { display: block; font-size: .8rem; margin-top: 4px; }
.sqs-block-form .fields.name { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sqs-block-form .field-element { width: 100%; box-sizing: border-box; background: #fafafa; color: #000; border: 1px solid #000; border-radius: 0; padding: 12px 10px; font-family: var(--body-font-font-family); font-size: 1rem; line-height: 1.6; }
.sqs-block-form .field-element:focus { outline: 2px solid hsla(var(--safeDarkAccent-hsl), 1); outline-offset: 1px; }
.sqs-block-form textarea.field-element { min-height: 140px; resize: vertical; }
.sqs-block-form .option { display: flex; align-items: center; gap: 10px; margin: 6px 0; }
.sqs-block-form .option input { width: 16px; height: 16px; accent-color: hsla(var(--safeDarkAccent-hsl), 1); }
.sqs-block-form .form-button-wrapper { margin-top: 10px; }
.sqs-block-form .form-submit-button { cursor: pointer; border: 0; background: hsla(var(--safeDarkAccent-hsl), 1); color: #fff; font-family: var(--primary-button-font-font-family); font-size: 1rem; letter-spacing: .02em; padding: 1em 2.3em; border-radius: 0; }
.sqs-block-form .form-submit-button:hover { opacity: .85; }
.sqs-block-form .form-status { margin-top: 14px; font-size: .95rem; }
.sqs-block-form .form-status.is-error { color: #a4262c; }
.sqs-block-form .form-status.is-success { color: hsla(var(--safeDarkAccent-hsl), 1); font-weight: 600; }
.scb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Map ---------- */
.sqs-block-map .sqs-block-content { height: 100%; min-height: 300px; }
.scb-map { width: 100%; height: 100%; min-height: 300px; }
.scb-map iframe { display: block; width: 100%; height: 100%; min-height: 300px; }

/* ---------- Scrolling text (marquee) ---------- */
.scb-marquee { width: 100%; overflow: hidden; padding: 3% 0; }
.scb-marquee-track { display: flex; width: max-content; margin: 0; font-size: calc(var(--marquee-font-size-value, 7.2) * 1rem); line-height: 1.4; animation: scb-marquee 40s linear infinite; }
.scb-marquee-group { display: flex; flex: 0 0 auto; }
.scb-marquee-item { padding: 0 var(--marquee-item-spacing, .3em); white-space: nowrap; }
@keyframes scb-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .scb-marquee-track { animation: none; } }
@media (max-width: 767px) { .scb-marquee-track { font-size: calc(var(--marquee-font-size-value, 7.2) * .55rem); } }

/* ---------- Back to top (from the Squarespace footer code injection) ---------- */
#scrollToTopWrapper { position: fixed; bottom: 20px; right: 20px; text-align: center; cursor: pointer; z-index: 1000; opacity: 0; transition: opacity .3s ease; pointer-events: none; }
#scrollToTopWrapper.show { opacity: 1; pointer-events: auto; }
#scrollToTop { width: 50px; height: 40px; margin: 0 auto; background-color: hsla(var(--lightAccent-hsl), 1); color: #fff; border-radius: 25px; font-size: 22px; line-height: 40px; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
#scrollToTopText { margin-top: 2px; font-size: 11px; color: #555; font-family: var(--body-font-font-family); }

/* ---------- Scaled text ---------- */
.sqsrte-scaled-text-container { width: 100%; height: auto; line-height: 1; }
.sqsrte-scaled-text-container.loaded > .sqsrte-scaled-text { position: relative; left: 0; display: inline-block; white-space: nowrap; word-break: normal; line-height: 1.15; }
.sqsrte-scaled-text-container.loaded > .sqsrte-scaled-text > * { font-size: inherit !important; line-height: inherit !important; margin: 0; }

/* ---------- Misc parity fixes ---------- */
img { max-width: 100%; }
.fluid-image-container img { width: 100%; height: 100%; }

/* ---------- Desktop spacing pass (Isabelle, Sept 9 2026): the Squarespace grid stretches empty rows on
   large screens; this scales the row unit down and caps hero heights. Mobile untouched. ---------- */
@media (min-width: 768px) {
  .fluid-engine { --row-height-scaling-factor: 0.0145 !important; }
  .page-section > .content-wrapper { padding-top: min(6.6vmax, 96px) !important; padding-bottom: min(6.6vmax, 96px) !important; }
  .page-section.section-height--large { min-height: 74vh !important; }
  .page-section.section-height--medium.has-background { min-height: 62vh !important; }
  /* contact page: keep the road photo below the scrolling "Contact" banner instead of behind it */
  .fe-block-56d8e0a8ee079c56040e { grid-area: 10 / 15 / 33 / 27 !important; }
  .page-section.section-height--medium:not(.has-background), .page-section.section-height--small:not(.has-background) { min-height: 0 !important; }
  .page-section.has-section-divider--top > .content-wrapper { padding-top: calc(var(--divider-height) + 2vmax) !important; }
  .user-items-list { padding-top: 5vmax !important; padding-bottom: 5vmax !important; }
}
