:root {
  --fga-paper: #f4f0e8;
  --fga-paper-deep: #e9e1d3;
  --fga-ink: #203632;
  --fga-ink-soft: #52625d;
  --fga-wine: #783d46;
  --fga-wine-dark: #532b33;
  --fga-brass: #b28a4c;
  --fga-line: rgba(32, 54, 50, .18);
  --fga-white: #fffdf8;
  --fga-serif: 'Playfair Display', Georgia, serif;
  --fga-sans: 'DM Sans', Arial, sans-serif;
  --fga-shadow: 0 22px 60px rgba(32, 40, 35, .12);
}

html,body { scroll-behavior: smooth;overflow-x:hidden;max-width:100%; }
body {
  background: var(--fga-paper);
  color: var(--fga-ink);
  font-family: var(--fga-sans);
  font-size: 1rem;
  line-height: 1.65;
}
main { overflow: hidden; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4, .display-1, .display-2, .display-3, .display-4, .display-5 {
  color: inherit;
  font-family: var(--fga-serif);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.08;
}
h1 { max-width: 12ch; }
h2 { max-width: 18ch; }
p { color: var(--fga-ink-soft); }
a { color: var(--fga-wine); text-underline-offset: .2em; }
a:hover { color: var(--fga-wine-dark); }
.btn { border-radius: 2px; font-weight: 600; letter-spacing: .015em; padding: .85rem 1.2rem; }
.btn-dark { background-color: var(--fga-ink); border-color: var(--fga-ink); }
.btn-dark:hover, .btn-dark:focus { background-color: var(--fga-wine-dark); border-color: var(--fga-wine-dark); }
.btn-outline-dark { border-color: var(--fga-ink); color: var(--fga-ink); }
.btn-outline-dark:hover, .btn-outline-dark:focus { background: var(--fga-ink); border-color: var(--fga-ink); }
.py-lg-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.fga-eyebrow {
  color: var(--fga-wine);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}
.fga-lead { color: var(--fga-ink); font-family: var(--fga-serif); font-size: clamp(1.35rem, 2vw, 1.9rem); line-height: 1.35; }
.fga-text-link { align-items: center; border-bottom: 1px solid var(--fga-brass); color: var(--fga-ink); display: inline-flex; font-weight: 600; padding-bottom: .35rem; text-decoration: none; }
.fga-text-link:hover { color: var(--fga-wine); }
.fga-section { position: relative; }
.fga-section > .container { position: relative; z-index: 1; }
.fga-section--photo { background-position: center; background-repeat: no-repeat; background-size: cover; color: var(--fga-white); isolation: isolate; }
.fga-section--photo p { color: rgba(255, 253, 248, .78); }
.fga-section--photo .fga-eyebrow { color: #e5c795; }
.fga-section--photo h1, .fga-section--photo h2, .fga-section--photo h3 { color: var(--fga-white); }
.fga-section--photo::after { border: 1px solid rgba(255, 255, 255, .13); content: ''; inset: 1rem; pointer-events: none; position: absolute; z-index: 0; }

.fga-topbar { background: var(--fga-ink); color: rgba(255, 253, 248, .9); font-size: .78rem; }
.fga-topbar__inner { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem 1.6rem; justify-content: flex-end; min-height: 2.5rem; }
.fga-topbar a { color: inherit; text-decoration: none; }
.fga-topbar a:hover { color: #e5c795; }
.fga-navbar { background: var(--fga-paper); border-bottom: 1px solid var(--fga-line); padding: .85rem 0; }
.fga-brand { align-items: center; color: var(--fga-ink); display: inline-flex; font-family: var(--fga-serif); font-size: 1.32rem; gap: .7rem; letter-spacing: -.04em; line-height: 1; text-decoration: none; }
.fga-brand:hover { color: var(--fga-wine); }
.fga-brand small { color: var(--fga-wine); display: block; font-family: var(--fga-sans); font-size: .52rem; font-weight: 700; letter-spacing: .18em; margin-top: .35rem; }
.fga-brand__mark { align-items: center; border: 1px solid var(--fga-brass); border-radius: 50%; color: var(--fga-wine); display: inline-flex; font-size: .85rem; height: 2.5rem; justify-content: center; width: 2.5rem; }
.fga-navbar .nav-link { color: var(--fga-ink); font-size: .9rem; font-weight: 600; }
.fga-navbar .nav-link:hover { color: var(--fga-wine); }
.fga-navbar__cta { font-size: .83rem; padding: .7rem 1rem; }
.fga-navbar__toggle { border: 1px solid var(--fga-line); border-radius: 2px; color: var(--fga-ink); font-size: 1.1rem; padding: .45rem .7rem; }

.fga-hero { min-height: 42rem; }
.fga-hero h1 { font-size: clamp(3rem, 6vw, 6.3rem); }
.fga-hero .lead { color: rgba(255, 253, 248, .88); max-width: 36rem; }
.fga-badge { border: 1px solid rgba(229, 199, 149, .72); color: #f0d7ae; display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .14em; margin: 1rem 0 1.25rem; padding: .45rem .75rem; text-transform: uppercase; }
.fga-hero__note { color: #f0d7ae !important; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }
.fga-frame { background: var(--fga-paper-deep); box-shadow: var(--fga-shadow); overflow: hidden; position: relative; }
.fga-frame img { aspect-ratio: 4 / 3; object-fit: cover; }
.fga-stamp { align-items: center; background: var(--fga-paper); border: 1px solid var(--fga-brass); border-radius: 50%; color: var(--fga-wine); display: flex; font-family: var(--fga-serif); font-size: .95rem; height: 6rem; justify-content: center; line-height: 1.25; right: -1rem; text-align: center; top: 1rem; transform: rotate(8deg); width: 6rem; }
.fga-meta-tags { border-top: 1px solid rgba(255, 255, 255, .24); color: var(--fga-white); font-size: .8rem; padding-top: .9rem; }
.fga-meta-tags__label { color: rgba(255, 255, 255, .62); display: block; font-size: .66rem; letter-spacing: .1em; margin-bottom: .2rem; text-transform: uppercase; }
.fga-intro { background: var(--fga-paper); }
.fga-note-card { background: var(--fga-wine); color: var(--fga-white); transform: rotate(2deg); }
.fga-note-card p, .fga-note-card strong { color: inherit; }
.fga-services { background: var(--fga-paper-deep); }
.fga-service-card { background: var(--fga-white); border: 1px solid var(--fga-line); box-shadow: 0 8px 28px rgba(32, 40, 35, .04); position: relative; transition: box-shadow .25s ease, transform .25s ease; }
.fga-service-card:hover { box-shadow: var(--fga-shadow); transform: translateY(-4px); }
.fga-service-card h3 { font-size: 1.65rem; }
.fga-service-card > i { color: var(--fga-wine); }
.fga-service-card--feature { background: var(--fga-ink); color: var(--fga-white); }
.fga-service-card--feature p { color: rgba(255, 253, 248, .72); }
.fga-service-card--feature h3, .fga-service-card--feature .fga-text-link { color: var(--fga-white); }
.fga-card-index { color: var(--fga-brass); font-size: .75rem; font-weight: 700; letter-spacing: .16em; }
.fga-section__footer { border-top: 1px solid var(--fga-line); padding-top: 1.25rem; }
.fga-photo-rail__item { margin: 0; position: relative; }
.fga-photo-rail__item img { aspect-ratio: 1.22; background: var(--fga-paper-deep); object-fit: cover; }
.fga-photo-rail__item--tall img { aspect-ratio: .8; }
.fga-photo-rail__item figcaption { color: var(--fga-ink-soft); font-size: .82rem; padding-top: .75rem; }
.fga-photo-rail__item figcaption span { color: var(--fga-wine); font-weight: 700; margin-right: .6rem; }
.fga-facts { background-color: var(--fga-ink); }
.fga-counter-grid { border-bottom: 1px solid rgba(255, 255, 255, .28); border-top: 1px solid rgba(255, 255, 255, .28); }
.fga-counter-grid__item { border-right: 1px solid rgba(255, 255, 255, .28); color: var(--fga-white); }
.fga-counter-grid__item:last-child { border-right: 0; }
.fga-counter { color: #e5c795; display: block; font-family: var(--fga-serif); font-size: clamp(2.4rem, 5vw, 4.4rem); line-height: 1.1; }
.fga-counter-grid h3 { font-family: var(--fga-sans); font-size: .95rem; font-weight: 700; letter-spacing: 0; margin: .8rem 0 .25rem; }
.fga-counter-grid p { font-size: .84rem; margin: 0; }
.fga-address-note { border: 1px solid rgba(255, 255, 255, .3); color: rgba(255, 255, 255, .85); }
.fga-address-note i { color: #e5c795; }
.fga-timeline-section { background: var(--fga-white); }
.fga-timeline { border-left: 1px solid var(--fga-brass); padding-left: 1.5rem; }
.fga-timeline__item { display: grid; gap: 1rem; grid-template-columns: 3rem 1fr; padding: 0 0 2rem; position: relative; }
.fga-timeline__item:last-child { padding-bottom: 0; }
.fga-timeline__item::before { background: var(--fga-wine); border: 3px solid var(--fga-paper); border-radius: 50%; content: ''; height: .8rem; left: -1.92rem; position: absolute; top: .45rem; width: .8rem; }
.fga-timeline__number { color: var(--fga-wine); font-size: .78rem; font-weight: 700; }
.fga-timeline__item h3 { font-size: 1.35rem; }
.fga-timeline__item p { margin: 0; }
.fga-city-split { background: var(--fga-paper-deep); }
.fga-city-split__media img { aspect-ratio: 1.45; }
.fga-image-caption { color: var(--fga-ink-soft); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.fga-faq { background: var(--fga-paper); }
.fga-accordion .accordion-item { background: transparent; border: 0; border-bottom: 1px solid var(--fga-line); }
.fga-accordion .accordion-button { background: transparent; box-shadow: none; color: var(--fga-ink); font-family: var(--fga-serif); font-size: 1.15rem; padding: 1.2rem .25rem; }
.fga-accordion .accordion-button:not(.collapsed) { color: var(--fga-wine); }
.fga-accordion .accordion-button::after { background-size: .9rem; }
.fga-accordion .accordion-body { color: var(--fga-ink-soft); padding: 0 .25rem 1.3rem; }
.fga-faq__aside { background: var(--fga-paper-deep); color: var(--fga-ink); }
.fga-faq__aside i { color: var(--fga-wine); }
.fga-disclaimer { background: #e8ddcc; }
.fga-disclaimer__mark { color: var(--fga-wine); }
.fga-disclaimer__copy { color: var(--fga-ink); font-family: var(--fga-serif); font-size: clamp(1.25rem, 2.2vw, 1.8rem); line-height: 1.4; }
.fga-disclaimer__address { background: var(--fga-white); border: 1px solid rgba(120, 61, 70, .25); }
.fga-disclaimer__address a { font-size: .85rem; }
.fga-cta { background-color: var(--fga-wine-dark); }
.fga-cta h2 { max-width: 12ch; }
.fga-cta__detail { color: rgba(255, 253, 248, .68) !important; font-size: .82rem; }
.fga-cookie-banner { background: var(--fga-white); bottom: 1rem; box-shadow: 0 16px 50px rgba(24, 37, 35, .25); display: none; left: 1rem; position: fixed; right: 1rem; z-index: 1080; }
.fga-cookie-banner.is-visible { display: block; }

.fga-footer { background: #1d302d; color: var(--fga-white); padding: 4.5rem 0 1.5rem; }
.fga-brand--footer { color: var(--fga-white); }
.fga-brand--footer small { color: #e5c795; }
.fga-brand--footer .fga-brand__mark { color: #e5c795; }
.fga-footer__intro { color: rgba(255, 253, 248, .7); max-width: 22rem; }
.fga-footer__offline { border-left: 2px solid var(--fga-brass); color: rgba(255, 253, 248, .68); font-size: .78rem; line-height: 1.6; padding-left: .85rem; }
.fga-footer__offline i { color: #e5c795; }
.fga-footer__heading { color: #e5c795; font-family: var(--fga-sans); font-size: .72rem; font-weight: 700; letter-spacing: .14em; margin: .3rem 0 1.2rem; text-transform: uppercase; }
.fga-footer__links li { margin-bottom: .65rem; }
.fga-footer__links a, .fga-footer__contact a { color: rgba(255, 253, 248, .78); text-decoration: none; }
.fga-footer__links a:hover, .fga-footer__contact a:hover { color: #e5c795; }
.fga-footer__contact li { display: flex; flex-direction: column; font-size: .9rem; margin-bottom: .9rem; overflow-wrap: anywhere; }
.fga-footer__contact-label, .fga-footer__legal span { color: rgba(255, 253, 248, .5); font-size: .68rem; letter-spacing: .1em; margin-bottom: .15rem; text-transform: uppercase; }
.fga-footer__legal { border-top: 1px solid rgba(255, 255, 255, .16); border-bottom: 1px solid rgba(255, 255, 255, .16); padding: 1.2rem 0; }
.fga-footer__legal > div { display: flex; flex-direction: column; }
.fga-footer__legal strong { color: rgba(255, 253, 248, .82); font-size: .84rem; font-weight: 500; }
.fga-footer__bottom { color: rgba(255, 253, 248, .55); font-size: .75rem; padding-top: .6rem; }

.fga-page-hero { background-color: var(--fga-ink); color: var(--fga-white); min-height: 26rem; padding: 6rem 0 4rem; position: relative; }
.fga-page-hero p { color: rgba(255, 253, 248, .76); max-width: 48rem; }
.fga-page-hero h1 { font-size: clamp(3rem, 6vw, 5.7rem); }
.fga-page-hero__index { border: 1px solid rgba(229, 199, 149, .6); color: #e5c795; display: inline-block; font-size: .72rem; letter-spacing: .14em; margin-bottom: 1.5rem; padding: .4rem .65rem; text-transform: uppercase; }
.fga-content-section { padding: 5rem 0; }
.fga-content-section--light { background: var(--fga-white); }
.fga-content-section--warm { background: var(--fga-paper-deep); }
.fga-content-section--dark { background: var(--fga-ink); color: var(--fga-white); }
.fga-content-section--dark p { color: rgba(255, 253, 248, .72); }
.fga-content-section--dark h2, .fga-content-section--dark h3 { color: var(--fga-white); }
.fga-content-card { background: var(--fga-white); border: 1px solid var(--fga-line); height: 100%; padding: clamp(1.25rem, 2.8vw, 2.25rem); position: relative; }
.fga-content-card--dark { background: var(--fga-ink); color: var(--fga-white); }
.fga-content-card--dark p { color: rgba(255, 253, 248, .72); }
.fga-content-card h3 { font-size: 1.5rem; }
.fga-content-card > i { color: var(--fga-wine); font-size: 1.3rem; margin-bottom: 1.25rem; }
.fga-content-card--dark > i { color: #e5c795; }
.fga-content-card__number { color: var(--fga-brass); font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.fga-media-card { background: var(--fga-paper-deep); margin: 0; overflow: hidden; }
.fga-media-card img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.fga-media-card figcaption { color: var(--fga-ink-soft); font-size: .8rem; padding: .8rem 1rem; }
.fga-media-panel { background-color: var(--fga-wine-dark); background-position: center; background-size: cover; color: var(--fga-white); min-height: 20rem; padding: 2rem; position: relative; }
.fga-media-panel p { color: rgba(255, 253, 248, .78); }
.fga-service-row { align-items: center; border-bottom: 1px solid var(--fga-line); display: grid; gap: 1rem; grid-template-columns: 3rem minmax(0, 1fr) auto; padding: 1.35rem 0; }
.fga-service-row:first-child { border-top: 1px solid var(--fga-line); }
.fga-service-row__number { color: var(--fga-brass); font-family: var(--fga-serif); font-size: 1.5rem; }
.fga-service-row h3 { font-size: 1.4rem; margin: 0 0 .35rem; }
.fga-service-row p { margin: 0; }
.fga-service-row__link { align-items: center; display: flex; font-weight: 600; gap: .55rem; text-decoration: none; }
.fga-form { background: var(--fga-white); border: 1px solid var(--fga-line); box-shadow: var(--fga-shadow); padding: clamp(1.25rem, 3vw, 2.5rem); }
.fga-form label { color: var(--fga-ink); font-size: .85rem; font-weight: 600; }
.fga-form .form-control, .fga-form .form-select { background-color: #fcfaf5; border-color: var(--fga-line); border-radius: 2px; min-height: 3rem; }
.fga-form .form-control:focus, .fga-form .form-select:focus { border-color: var(--fga-wine); box-shadow: 0 0 0 .2rem rgba(120, 61, 70, .12); }
.fga-form__notice { display: none; font-size: .9rem; margin-top: 1rem; padding: .8rem 1rem; }
.fga-form__notice.is-visible { display: block; }
.fga-form__notice--success { background: #e1eee4; color: #244a35; }
.fga-form__notice--error { background: #f6e4df; color: #762f2b; }
.fga-contact-card { background: var(--fga-ink); color: var(--fga-white); height: 100%; padding: 2rem; }
.fga-contact-card p { color: rgba(255, 253, 248, .72); }
.fga-map { border: 0; min-height: 20rem; width: 100%; }
.fga-legal-copy { max-width: 54rem; }
.fga-legal-copy h2 { font-size: 1.65rem; margin-top: 2.5rem; }
.fga-legal-copy h3 { font-family: var(--fga-sans); font-size: 1.1rem; letter-spacing: 0; margin-top: 1.5rem; }
.fga-legal-copy section { border-bottom: 1px solid var(--fga-line); padding: 0 0 1.4rem; }
.fga-thanks { min-height: 55vh; }
.fga-thanks__mark { align-items: center; border: 1px solid var(--fga-brass); border-radius: 50%; color: var(--fga-brass); display: flex; font-size: 1.5rem; height: 4.5rem; justify-content: center; margin-bottom: 1.5rem; width: 4.5rem; }
.fga-image-stack img { background: var(--fga-paper-deep); object-fit: cover; width: 100%; }
.fga-image-stack img:first-child { aspect-ratio: 1.4; }
.fga-image-stack img:not(:first-child) { aspect-ratio: 1.2; }
.fga-quote { border-left: 2px solid var(--fga-brass); color: var(--fga-ink); font-family: var(--fga-serif); font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.4; padding-left: 1.25rem; }
.fga-number-list { counter-reset: fga-list; list-style: none; margin: 0; padding: 0; }
.fga-number-list li { border-top: 1px solid var(--fga-line); counter-increment: fga-list; display: grid; gap: 1rem; grid-template-columns: 2.5rem 1fr; padding: 1rem 0; }
.fga-number-list li::before { color: var(--fga-wine); content: '0' counter(fga-list); font-size: .76rem; font-weight: 700; }
.fga-legal-note { background: #eee4d6; border-left: 3px solid var(--fga-wine); padding: 1rem 1.2rem; }

@media (max-width: 991.98px) {
  .fga-navbar .navbar-collapse { padding: 1rem 0 .25rem; }
  .fga-navbar .navbar-nav { align-items: stretch !important; }
  .fga-navbar__cta { margin-top: .5rem; }
  .fga-hero { min-height: unset; }
  .fga-stamp { right: .5rem; }
}
@media (max-width: 767.98px) {
  .fga-topbar__inner { justify-content: flex-start; padding-bottom: .45rem; padding-top: .45rem; }
  .fga-topbar__inner > * { flex: 1 1 calc(50% - .5rem); }
  .fga-topbar__inner > :last-child { flex-basis: 100%; }
  .py-lg-6 { padding-bottom: 4rem !important; padding-top: 4rem !important; }
  .fga-hero h1 { font-size: clamp(2.7rem, 13vw, 4.3rem); }
  .fga-stamp { font-size: .75rem; height: 4.8rem; width: 4.8rem; }
  .fga-counter-grid__item:nth-child(2) { border-right: 0; }
  .fga-counter-grid__item:last-child { border-top: 1px solid rgba(255, 255, 255, .28); }
  .fga-cookie-banner { bottom: .5rem; left: .5rem; right: .5rem; }
  .fga-cookie-banner .col-lg-5 { gap: .5rem; }
  .fga-cookie-banner .btn { flex: 1 1 0; font-size: .72rem; padding: .5rem .3rem; white-space: nowrap; }
  .fga-service-row { grid-template-columns: 2rem minmax(0, 1fr); }
  .fga-service-row__link { grid-column: 2; }
  .fga-page-hero { min-height: unset; padding: 4rem 0 3rem; }
  .fga-content-section { padding: 3.5rem 0; }
  .fga-footer { padding-top: 3rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
