:root {
  --fga-paper: #f2eee4;
  --fga-paper-light: #fbf9f4;
  --fga-ink: #263a32;
  --fga-ink-soft: #53665d;
  --fga-forest: #35594a;
  --fga-forest-deep: #20392f;
  --fga-clay: #c47b58;
  --fga-brass: #bc9b60;
  --fga-line: rgba(38, 58, 50, .18);
  --fga-shadow: 0 1.5rem 4rem rgba(35, 49, 42, .12);
  --fga-display: "Fraunces", Georgia, serif;
  --fga-body: "Inter", sans-serif;
}

* { box-sizing: border-box; }
html,body { scroll-behavior: smooth;overflow-x:hidden }
body { margin: 0; color: var(--fga-ink); background: var(--fga-paper-light); font-family: var(--fga-body); font-size: 1rem; line-height: 1.7; }
img { display: block; max-width: 100%; }
a { color: inherit; }
::selection { color: #fff; background: var(--fga-forest); }

h1, h2, h3, h4, .display-1, .display-2, .display-3, .display-4, .display-5 { font-family: var(--fga-display); font-weight: 400; letter-spacing: -.045em; line-height: 1.02; }
h1 { max-width: 14ch; }
.display-1, .display-2 { font-size: clamp(2rem, 8vw, 3rem); }
.display-3 { font-size: clamp(2.8rem, 5.5vw, 5.4rem); }
.display-4 { font-size: clamp(2.4rem, 4.3vw, 4.25rem); }
.display-5 { font-size: clamp(2rem, 3vw, 3.1rem); }
.py-lg-6 { padding-top: clamp(4rem, 8vw, 8rem) !important; padding-bottom: clamp(4rem, 8vw, 8rem) !important; }

.fga-header { position: relative; z-index: 20; background: var(--fga-paper-light); }
.fga-topbar { padding: .55rem 0; color: #f5f0e7; background: var(--fga-forest-deep); font-size: .72rem; letter-spacing: .04em; }
.fga-topbar__contacts { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.15rem; }
.fga-topbar__contacts a { color: inherit; text-decoration: none; }
.fga-topbar__contacts a:hover { color: #d4bd8d; }
.fga-topbar__note { color: #d6c69e; text-transform: uppercase; }
.fga-navbar { min-height: 88px; padding: .85rem 0; border-bottom: 1px solid var(--fga-line); }
.fga-brand img { width: 154px; height: auto; object-fit: contain; }
.fga-navbar .nav-link { color: var(--fga-ink); font-size: .86rem; }
.fga-navbar .nav-link:hover { color: var(--fga-clay); }
.fga-nav-cta { border-radius: 0; padding: .8rem 1.2rem; font-size: .8rem; }
.fga-menu-toggle { border: 1px solid var(--fga-line); border-radius: 50%; width: 48px; height: 48px; color: var(--fga-ink); }
.fga-offcanvas { --bs-offcanvas-width: min(88vw, 470px); background: var(--fga-paper); }
.fga-offcanvas__brand { color: var(--fga-ink); font-family: var(--fga-display); font-size: 1.7rem; text-decoration: none; }
.fga-offcanvas__links { margin-top: 2rem; }
.fga-offcanvas__links li { border-bottom: 1px solid var(--fga-line); }
.fga-offcanvas__links a { display: flex; align-items: baseline; justify-content: space-between; padding: 1.1rem .1rem; font-family: var(--fga-display); font-size: clamp(2rem, 7vw, 3rem); text-decoration: none; }
.fga-offcanvas__links a span { color: var(--fga-clay); font: .75rem var(--fga-body); }
.fga-offcanvas__contact { padding: 2rem 0 .5rem; border-top: 1px solid var(--fga-line); }
.fga-offcanvas__contact p { margin: .6rem 0; }
.fga-offcanvas__contact a { font-size: .85rem; }

.fga-eyebrow { display: inline-block; color: var(--fga-clay); font-size: .72rem; font-weight: 700; letter-spacing: .15em; line-height: 1.5; text-transform: uppercase; }
.fga-lead { max-width: 38rem; color: var(--fga-ink-soft); font-size: clamp(1.05rem, 1.5vw, 1.3rem); }
.fga-section { position: relative; overflow: hidden; }
.fga-section--paper { background: var(--fga-paper); }
.fga-section--dark { color: #f9f4e9; background-color: var(--fga-forest-deep); background-position: center; background-size: cover; }
.fga-section--dark p, .fga-section--dark .fga-eyebrow { color: #e4dfd2; }
.fga-section--photo { color: #fff; background-color: var(--fga-forest-deep); background-position: center; background-size: cover; }
.fga-section--photo p { color: rgba(255,255,255,.84); }
.fga-hero { min-height: min(780px, calc(100svh - 130px)); display: flex; align-items: center; }
.fga-hero__grid { position: relative; }
.fga-hero__copy { position: relative; z-index: 2; }
.fga-hero__art { position: relative; padding: 1rem 1rem 3.5rem; }
.fga-hero__art::before { position: absolute; z-index: -1; top: -2rem; right: -1rem; width: 76%; height: 88%; border: 1px solid rgba(207, 181, 125, .75); content: ""; }
.fga-hero__art img { width: 100%; height: min(60vh, 550px); object-fit: cover; }
.fga-hero__caption { position: absolute; right: 0; bottom: 0; display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; color: var(--fga-ink); background: var(--fga-paper); font-size: .76rem; letter-spacing: .05em; text-transform: uppercase; }
.fga-hero__caption i { color: var(--fga-clay); }
.fga-location { display: inline-flex; align-items: center; gap: .5rem; color: #ead6ab; font-size: .75rem; letter-spacing: .06em; }
.fga-offline-line { margin: 1.25rem 0; color: #e1c68a !important; font-size: .76rem; font-weight: 600; letter-spacing: .13em; line-height: 1.7; text-transform: uppercase; }
.fga-roundel { display: grid; width: 108px; height: 108px; place-items: center; border: 1px solid var(--fga-brass); border-radius: 50%; color: var(--fga-brass); font-size: .66rem; line-height: 1.4; text-align: center; transform: rotate(-9deg); }
.fga-badge { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .75rem; border: 1px solid currentColor; border-radius: 50rem; font-size: .72rem; }
.fga-rule { height: 1px; margin: 1.5rem 0; background: var(--fga-line); }
.fga-meta-tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.fga-meta-tags span { padding: .45rem .7rem; border: 1px solid var(--fga-line); border-radius: 50rem; font-size: .7rem; }
.fga-hero .fga-meta-tags span { border-color: rgba(255,255,255,.4); }
.fga-frame { position: relative; padding: .65rem; border: 1px solid var(--fga-line); background: rgba(255,255,255,.24); }
.fga-frame img { width: 100%; height: 100%; min-height: 250px; object-fit: cover; }
.fga-frame--portrait img { min-height: 470px; }
.fga-frame__caption { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem .25rem .1rem; font-size: .75rem; }
.fga-frame__stamp { position: absolute; right: -1rem; bottom: 2rem; padding: .8rem 1rem; color: var(--fga-ink); background: var(--fga-paper); font: 1rem var(--fga-display); transform: rotate(3deg); }
.fga-photo-label { display: inline-block; padding: .65rem .8rem; color: var(--fga-ink); background: #efe4cc; font-size: .72rem; }

.fga-statline { display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.28); }
.fga-statline__item { min-width: 8rem; }
.fga-statline strong { display: block; color: #e4ca91; font-family: var(--fga-display); font-size: 1.55rem; font-weight: 400; }
.fga-statline span { font-size: .7rem; }
.fga-card-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1rem; }
.fga-card { height: 100%; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--fga-line); background: rgba(255,255,255,.36); transition: transform .25s ease, box-shadow .25s ease; }
.fga-card:hover { box-shadow: var(--fga-shadow); transform: translateY(-4px); }
.fga-card__index { color: var(--fga-clay); font-size: .72rem; letter-spacing: .1em; }
.fga-card h3 { margin-top: 1.5rem; font-size: clamp(1.65rem, 2.5vw, 2.4rem); }
.fga-card p { color: var(--fga-ink-soft); font-size: .9rem; }
.fga-card__link { display: inline-flex; align-items: center; gap: .5rem; color: var(--fga-forest); font-size: .78rem; font-weight: 600; text-decoration: none; }
.fga-service-card { display: flex; flex-direction: column; min-height: 250px; padding: 1.25rem; border: 1px solid var(--fga-line); color: inherit; background: rgba(255,255,255,.35); text-decoration: none; transition: color .2s, background .2s, transform .2s; }
.fga-service-card:hover { color: #fff; background: var(--fga-forest); transform: translateY(-3px); }
.fga-service-card__index { color: var(--fga-clay); font-size: .72rem; }
.fga-service-card h3 { margin: 1.1rem 0 .5rem; font-size: 1.6rem; }
.fga-service-card p { color: var(--fga-ink-soft); font-size: .82rem; }
.fga-service-card:hover p, .fga-service-card:hover .fga-service-card__index { color: #eee1c8; }
.fga-service-card__link { display: flex; justify-content: space-between; margin-top: auto; padding-top: 1rem; font-size: .76rem; }
.fga-note-card, .fga-step-card, .fga-fact { height: 100%; padding: 1.3rem; border: 1px solid var(--fga-line); background: rgba(255,255,255,.38); }
.fga-note-card > span, .fga-step-card > span { color: var(--fga-clay); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.fga-note-card h3, .fga-step-card h3 { margin-top: 1rem; font-size: 1.7rem; }
.fga-note-card p, .fga-step-card p { margin-bottom: 0; color: var(--fga-ink-soft); font-size: .88rem; }
.fga-fact strong, .fga-fact span { display: block; }
.fga-fact strong { margin-bottom: .6rem; color: var(--fga-clay); font-size: .73rem; text-transform: uppercase; }
.fga-fact span { font-family: var(--fga-display); font-size: 1.35rem; }
.fga-image-wide { width: 100%; min-height: 250px; max-height: 420px; object-fit: cover; }
.fga-image-tall { width: 100%; height: 100%; min-height: 370px; object-fit: cover; }
.fga-image-stack { position: relative; padding: 1rem 1rem 3rem 0; }
.fga-image-stack::after { position: absolute; right: 0; bottom: 0; left: 3rem; height: 78%; border: 1px solid var(--fga-brass); content: ""; pointer-events: none; }
.fga-image-stack img { position: relative; z-index: 1; width: calc(100% - 1.5rem); height: 390px; object-fit: cover; }
.fga-image-stack__note { position: absolute; z-index: 2; right: 0; bottom: 0; display: flex; gap: 1rem; align-items: center; padding: 1rem; color: var(--fga-ink); background: var(--fga-paper); font-size: .78rem; }
.fga-image-stack__note i { color: var(--fga-clay); font-size: 1.4rem; }
.fga-copy-panel { max-width: 35rem; padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid rgba(255,255,255,.3); }
.fga-copy-panel h3 { font-size: 2rem; }
.fga-counters { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255,255,255,.3); border-bottom: 1px solid rgba(255,255,255,.3); }
.fga-counters__item { padding: 1.1rem .5rem; }
.fga-counters__item + .fga-counters__item { border-left: 1px solid rgba(255,255,255,.3); padding-left: 1.2rem; }
.fga-counters strong, .fga-counters span { display: block; }
.fga-counters strong { color: #e4ca91; font-family: var(--fga-display); font-size: 1.35rem; font-weight: 400; }
.fga-counters span { font-size: .72rem; }
.fga-check-list { display: grid; gap: .75rem; margin: 1.5rem 0; }
.fga-check-list li { display: flex; gap: .7rem; align-items: baseline; }
.fga-check-list i { color: var(--fga-clay); }
.fga-timeline { position: relative; }
.fga-timeline__item { height: 100%; padding: 1.25rem; border-top: 1px solid var(--fga-line); }
.fga-timeline__item > span { color: var(--fga-clay); font-size: .72rem; }
.fga-timeline__item h3 { margin-top: 1.1rem; font-size: 1.7rem; }
.fga-timeline__item p { color: var(--fga-ink-soft); font-size: .88rem; }
.fga-disclaimer { padding: clamp(1.5rem, 4vw, 3rem); color: #fff; background: var(--fga-forest-deep); }
.fga-disclaimer p { color: rgba(255,255,255,.83); }
.fga-disclaimer__mark { display: inline-flex; gap: .55rem; align-items: center; margin-bottom: 1rem; color: #e2c98f; font-size: .75rem; font-weight: 700; letter-spacing: .1em; }
.fga-accordion { border-top: 1px solid var(--fga-line); }
.fga-accordion__item { padding: 1.15rem 0; border-bottom: 1px solid var(--fga-line); }
.fga-accordion__item summary { cursor: pointer; font-family: var(--fga-display); font-size: 1.35rem; list-style: none; }
.fga-accordion__item summary::-webkit-details-marker { display: none; }
.fga-accordion__item summary::after { float: right; color: var(--fga-clay); content: "+"; font: 1.3rem var(--fga-body); }
.fga-accordion__item[open] summary::after { content: "−"; }
.fga-accordion__item p { margin: .9rem 2rem 0 0; color: var(--fga-ink-soft); font-size: .9rem; }
.fga-accordion__aside, .fga-small-note { padding: .9rem 1rem; color: var(--fga-ink-soft); background: var(--fga-paper); font-size: .8rem; }
.fga-text-link { display: inline-flex; gap: .4rem; align-items: center; color: var(--fga-forest); font-size: .82rem; font-weight: 600; text-decoration: none; }
.fga-text-link:hover { color: var(--fga-clay); }
.fga-text-link--light { color: #f2e5c6; }
.fga-cta__address { font-size: .8rem; }
.fga-section__foot { padding-top: 1rem; border-top: 1px solid var(--fga-line); font-size: .86rem; }

.fga-map { width: 100%; min-height: 320px; border: 0; filter: saturate(.75) sepia(.14); }
.fga-map-frame { overflow: hidden; border: 1px solid var(--fga-line); box-shadow: var(--fga-shadow); }
.fga-form { padding: clamp(1.25rem, 4vw, 2.5rem); border: 1px solid var(--fga-line); background: var(--fga-paper-light); }
.fga-form label { display: block; margin-bottom: .4rem; font-size: .78rem; font-weight: 600; }
.fga-form .form-control, .fga-form .form-select { min-height: 3.1rem; border: 1px solid var(--fga-line); border-radius: 0; background-color: #fff; }
.fga-form textarea.form-control { min-height: 9rem; }
.fga-form-status { display: none; margin: 1rem 0 0; padding: .85rem 1rem; color: var(--fga-forest-deep); background: #e3ede2; font-size: .85rem; }
.fga-form-status.is-visible { display: block; }
.fga-policy-copy h2 { margin: 2.5rem 0 1rem; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.fga-policy-copy p, .fga-policy-copy li { max-width: 72ch; color: var(--fga-ink-soft); }
.fga-policy-copy ul { padding-left: 1.2rem; }
.fga-cookie-banner { position: fixed; z-index: 1050; right: 1rem; bottom: 1rem; left: 1rem; display: none; max-width: 1000px; margin: 0 auto; padding: 1rem 1.25rem; border: 1px solid var(--fga-line); background: var(--fga-paper-light); box-shadow: var(--fga-shadow); }
.fga-cookie-banner.is-visible { display: flex; }
.fga-cookie-banner__copy { max-width: 60ch; margin: 0; font-size: .82rem; }
.fga-cookie-banner__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-left: auto; }
.fga-cookie-banner__actions button { border: 0; padding: .65rem .9rem; color: #fff; background: var(--fga-forest); font-size: .76rem; }
.fga-cookie-banner__actions a { font-size: .75rem; }
.fga-footer { padding: clamp(3.5rem, 7vw, 6.5rem) 0 1rem; color: #f1ecdf; background: var(--fga-forest-deep); }
.fga-footer__top { padding-bottom: 3rem; }
.fga-footer__brand { color: #fff; font-family: var(--fga-display); font-size: 2.25rem; text-decoration: none; }
.fga-footer__brand span { color: #d6b77a; }
.fga-footer__intro { max-width: 25rem; margin-top: 1rem; color: rgba(255,255,255,.74); font-size: .9rem; }
.fga-footer__offline { display: inline-flex; gap: .75rem; align-items: center; margin-top: .8rem; color: #e3ca91; font-size: .72rem; letter-spacing: .08em; line-height: 1.5; }
.fga-footer__heading { margin: .45rem 0 1rem; color: #d6b77a; font: 600 .72rem var(--fga-body); letter-spacing: .13em; text-transform: uppercase; }
.fga-footer__links { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; font-size: .82rem; }
.fga-footer__links a { color: rgba(255,255,255,.83); text-decoration: none; }
.fga-footer__links a:hover { color: #e3ca91; }
.fga-footer__contact li { overflow-wrap: anywhere; }
.fga-footer__legal, .fga-footer__legal-note { color: rgba(255,255,255,.82); font-size: .82rem; }
.fga-footer__legal-note { color: rgba(255,255,255,.58); font-size: .74rem; }
.fga-footer__notice { margin-bottom: 1.4rem; padding: 1rem 1.25rem; border: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.83); font-size: .78rem; }
.fga-footer__notice p { margin: 0; }
.fga-footer__bottom { padding: 1.15rem 0 0; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.67); font-size: .72rem; }
.fga-footer__policies { display: flex; flex-wrap: wrap; gap: 1rem; }
.fga-footer__policies a { color: inherit; text-decoration: none; }

@media (max-width: 991.98px) {
  .fga-topbar__contacts { width: 100%; gap: .25rem .8rem; }
  .fga-topbar__contacts a { width: 100%; }
  .fga-navbar { min-height: 72px; }
  .fga-hero { min-height: 0; }
  .fga-hero__art { margin-top: 2rem; }
  .fga-hero__art img { height: min(60vh, 470px); }
}
@media (max-width: 575.98px) {
  body { font-size: .95rem; }
  .fga-topbar { font-size: .67rem; }
  .fga-topbar__contacts { display: grid; grid-template-columns: 1fr; }
  .fga-hero__art { padding: .5rem .6rem 2.6rem; }
  .fga-hero__art::before { top: -1rem; right: -.15rem; }
  .fga-hero__art img { height: 58vh; min-height: 300px; }
  .fga-frame--portrait img { min-height: 320px; }
  .fga-image-stack img { height: 300px; }
  .fga-image-tall { min-height: 280px; }
  .fga-map { min-height: 270px; }
  .fga-cookie-banner { right: .5rem; bottom: .5rem; left: .5rem; display: none; flex-direction: column; gap: .8rem; }
  .fga-cookie-banner.is-visible { display: flex; }
  .fga-cookie-banner__actions { margin-left: 0; }
  .fga-cookie-banner__actions button { flex: 1; }
  .fga-footer__bottom { align-items: flex-start !important; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
