/* Ferrer's shared visual system: warm paper, clear type, original blue identity. */
body.fq-site {
  --fp-ink:#1e3035; --fp-muted:#5b6868; --fp-paper:#fff; --fp-blue:#3156c7;
  --fq-cream:#f8f7f2; --fq-soft:#eeeee7; --fq-line:#dedfd7; --fq-accent:#3156c7;
  background:var(--fq-cream); color:var(--fp-ink); font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.65;
}
.fq-site *, .fq-site *::before, .fq-site *::after { box-sizing:border-box; }
.fq-site img { max-width:100%; }
.fq-site .fp-container, .fq-site .pg-wrap { width:min(1240px,calc(100% - 80px)); margin-inline:auto; }
.fq-site h1, .fq-site h2, .fq-site h3 { color:var(--fp-ink); font-weight:600; line-height:1.1; letter-spacing:-.045em; }
.fq-site h1 em, .fq-site h2 em { font-family:Georgia,'Times New Roman',serif; font-weight:400; color:var(--fq-accent); }
.fq-site p { color:var(--fp-muted); }
.fq-site a, .fq-site button { touch-action:manipulation; }
.fq-site [hidden] { display:none !important; }
.fq-site a:focus-visible, .fq-site button:focus-visible, .fq-site summary:focus-visible { outline:3px solid var(--fq-accent); outline-offset:5px; }
.fq-site .fp-eyebrow, .fq-site .pg-eyebrow { color:var(--fq-accent); font-size:11px !important; font-weight:700; line-height:1.6; letter-spacing:.13em; text-transform:uppercase; }
.fq-site .fp-top { background:#eeeee7; border-bottom:1px solid var(--fq-line); color:#4f5d5e; }
.fq-site .fp-top .fp-container { min-height:34px; font-size:11px; letter-spacing:.02em; }
.fq-site .fp-header { position:sticky; top:0; z-index:50; background:#f8f7f2; border-bottom:1px solid var(--fq-line); box-shadow:none; }
.fq-site .fp-header-inner { min-height:94px; gap:28px; }
.fq-site .fp-brand { display:flex; flex-shrink:0; align-items:center; }
.fq-site .fp-brand-logo { width:90px; height:67px; object-fit:contain; mix-blend-mode:multiply; }
.fq-site .fp-nav { gap:27px; margin-left:auto; }
.fq-site .fp-nav a { font-size:13px; font-weight:600; color:var(--fp-ink); padding-block:16px; }
.fq-site .fp-nav a:hover, .fq-site .fp-nav a[aria-current="page"] { color:var(--fq-accent); }
.fq-site .fp-button, .fq-site .pg-button { display:inline-flex; justify-content:center; align-items:center; min-height:52px; padding:14px 23px; border:1px solid var(--fq-accent); border-radius:5px; background:var(--fq-accent); color:#fff; font-size:14px; font-weight:600; line-height:1.5; text-decoration:none; }
.fq-site .fp-button:hover, .fq-site .pg-button:hover { background:#2646aa; border-color:#2646aa; }
.fq-site .fp-header-cta { min-height:46px; padding:12px 19px; white-space:nowrap; font-size:13px; }
.fq-site .pg-button-secondary { background:transparent; border-color:var(--fq-line); color:var(--fp-ink); }
.fq-site .pg-button-secondary:hover { background:#e9ece5; border-color:#b5c1b6; color:var(--fp-ink); }
.fq-site .fp-text-link, .fq-site .pg-link { display:inline-flex; align-items:center; gap:12px; font-size:14px; font-weight:600; line-height:1.6; color:var(--fp-ink); text-decoration:none; border-bottom:1px solid currentColor; padding-block:6px; }
.fq-site .fp-text-link:hover, .fq-site .pg-link:hover { color:var(--fq-accent); }
.fq-site .pg-hero { background:var(--fq-cream); padding-block:40px 62px; }
.fq-site .pg-breadcrumb { color:var(--fp-muted); font-size:12px; margin-bottom:32px; }
.fq-site .pg-intro { max-width:900px; }
.fq-site .pg-hero h1 { font-size:clamp(44px,5.3vw,72px); line-height:1.05; letter-spacing:-.05em; }
.fq-site .pg-intro-copy, .fq-site .pg-hero-copy > p:not(.pg-eyebrow) { max-width:650px; font-size:17px; line-height:1.75; }
.fq-site .pg-section { padding-block:80px; }
.fq-site .pg-section h2 { font-size:clamp(32px,3.5vw,48px); }
.fq-site .pg-section-head { gap:40px; margin-bottom:36px; }
.fq-site .pg-section-head > p, .fq-site .pg-section-head > div > p:not(.pg-eyebrow) { font-size:16px; line-height:1.7; }
.fq-site .pg-tint { background:var(--fq-soft); }
.fq-site .pg-card-copy { padding:28px; }
.fq-site .pg-card-copy h2, .fq-site .pg-card-copy h3 { font-size:25px; line-height:1.2; }
.fq-site .pg-card-copy p, .fq-site .pg-steps p, .fq-site .pg-editorial p, .fq-site .pg-note p { font-size:15px; line-height:1.75; }
.fq-site .pg-service-card { border:1px solid var(--fq-line); border-radius:5px; background:#fff; box-shadow:none; overflow:hidden; }
.fq-site .pg-city-grid > a { border-color:var(--fq-line); background:#fff; border-radius:4px; }
.fq-site .pg-city-grid h3 { font-size:21px; }
.fq-site .pg-section-nav { border-color:var(--fq-line); }
.fq-site .pg-section-nav a { font-size:14px; min-height:44px; }
.fq-site .ex-owner-grid { gap:64px; }
.fq-site .ex-owner p { font-size:16px; line-height:1.8; }
.fq-site .pg-hero-photo, .fq-site .pg-hero-image { border-radius:64px 6px 6px 6px; overflow:hidden; }
.fq-site .pg-navy { background:#1e3035; color:#fff; }
.fq-site .pg-navy h2, .fq-site .pg-navy p, .fq-site .pg-navy .pg-eyebrow { color:#f8f7f2; }
.fq-site .pg-filters button { min-height:44px; font-size:14px; border-radius:4px; }
.fq-site .pg-gallery-grid figcaption, .fq-site .pg-project-note { font-size:14px; line-height:1.6; }
.fq-site .pg-review-grid blockquote { font-size:19px; line-height:1.6; }
.fq-site .pg-review-grid > div { background:#fff; border:1px solid var(--fq-line); border-radius:5px; padding:32px; }
.fq-site .pg-steps { gap:28px; }
.fq-site .pg-steps h3 { font-size:23px; }
.fq-site .pg-cta { background:#e9ede6; padding-block:65px; }
.fq-site .pg-cta h2 { color:var(--fp-ink); font-size:clamp(34px,3.8vw,52px); }
.fq-site .pg-cta p { color:var(--fp-muted); font-size:16px; }
.fq-site .pg-cta .pg-eyebrow { color:var(--fq-accent); }
.fq-site .pg-contact-info { padding-top:20px; }
.fq-site .pg-contact-info h2 { font-size:32px; }
.fq-site .pg-contact-info p { font-size:15px; line-height:1.7; }
.fq-site .pg-contact-phone { color:var(--fp-ink); font-size:27px; }
.fq-site .pg-email { font-size:15px; overflow-wrap:anywhere; }
.fq-site .pg-form-panel.ef-panel, .fq-site .fp-form.ef-form { border-color:var(--fq-line); background:#fff; }
.fq-site .ef-form .ef-heading h3, .fq-site .ef-panel .ef-heading h2 { font-family:Arial,Helvetica,sans-serif; font-size:clamp(29px,2.7vw,38px) !important; color:var(--fp-ink); font-weight:700; }
.fq-site .ef-form button[type="submit"] { background:var(--fq-accent); }
.fq-site .ef-form button[type="submit"]:hover { background:#2646aa; }
.fq-site .fp-footer { background:#1e3035; color:#f8f7f2; padding-top:60px; }
.fq-site .fp-footer .fp-brand { width:max-content; padding:10px 14px; border-radius:4px; background:#fff; }
.fq-site .fp-footer .fp-brand-logo { mix-blend-mode:normal; width:96px; height:72px; }
.fq-site .fp-footer h2 { font-family:Arial,Helvetica,sans-serif; color:#f8f7f2; font-size:14px; letter-spacing:0; font-weight:600; margin-bottom:18px; }
.fq-site .fp-footer p, .fq-site .fp-footer a { color:#d3dcda; font-size:14px; line-height:1.8; }
.fq-site .fp-footer a:hover { color:#fff; }
.fq-site .fp-footer-grid { grid-template-columns:1.1fr .9fr 1fr 1.25fr; gap:38px; }
.fq-site .fp-footer .fp-footer-phone { font-size:23px; color:#fff; }
.fq-site .fp-footer-bottom { border-color:#465654; margin-top:40px; padding-block:24px; color:#c6d1ce; font-size:12px; }
.fq-site .fp-footer-bottom a { font-size:12px; }
.fq-site .fp-mobile-bar { background:#fff; border-color:var(--fq-line); }
.fq-site .fp-mobile-bar a:first-child { color:var(--fp-ink); }
.fq-site .fp-mobile-bar a:last-child { background:var(--fq-accent); color:#fff; }
@media(max-width:980px) {
  .fq-site .fp-container, .fq-site .pg-wrap { width:calc(100% - 48px); }
  .fq-site .fp-header-inner { min-height:82px; gap:14px; }
  .fq-site .fp-brand-logo { width:79px; height:59px; }
  .fq-site .fp-menu { display:flex; }
  .fq-site.fp-enhanced .fp-nav, .fp-enhanced .fq-site .fp-nav { display:none; }
  .fq-site.fp-enhanced .fp-nav.is-open, .fp-enhanced .fq-site .fp-nav.is-open { display:flex; }
  .fq-site .fp-nav { background:#f8f7f2; border-color:var(--fq-line); gap:0; }
  .fq-site .fp-nav a { padding:16px 4px; font-size:15px; }
  .fq-site .fp-footer-grid { grid-template-columns:1fr 1fr; gap:34px; }
  .fq-site .ex-owner-grid { gap:32px; }
}
@media(max-width:700px) {
  .fq-site .fp-container, .fq-site .pg-wrap { width:calc(100% - 40px); }
  .fq-site .fp-top .fp-container { justify-content:center; font-size:10px; }
  .fq-site .fp-top .fp-container > span:last-child { display:none; }
  .fq-site .fp-header-cta { min-height:44px; font-size:12px; padding:11px 13px; margin-left:auto; }
  .fq-site .pg-hero { padding-block:28px 42px; }
  .fq-site .pg-breadcrumb { margin-bottom:24px; }
  .fq-site .pg-hero h1 { font-size:clamp(40px,9vw,60px); }
  .fq-site .pg-intro-copy, .fq-site .pg-hero-copy > p:not(.pg-eyebrow) { font-size:16px; }
  .fq-site .pg-section { padding-block:54px; }
  .fq-site .pg-section h2 { font-size:34px; }
  .fq-site .pg-section-head { gap:22px; margin-bottom:28px; }
  .fq-site .pg-card-copy { padding:24px; }
  .fq-site .pg-hero-photo, .fq-site .pg-hero-image { border-radius:40px 5px 5px 5px; }
  .fq-site .pg-review-grid blockquote { font-size:18px; }
  .fq-site .fp-footer { padding-top:45px; }
  .fq-site .fp-footer-grid { gap:30px 20px; }
  .fq-site .fp-footer-grid > div:last-child { grid-column:1/-1; }
}
@media(max-width:380px) {
  .fq-site .fp-container, .fq-site .pg-wrap { width:calc(100% - 32px); }
  .fq-site .fp-header-inner { gap:9px; }
  .fq-site .fp-brand-logo { width:70px; height:53px; }
  .fq-site .fp-header-cta { font-size:11px; padding-inline:10px; }
  .fq-site .fp-footer-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .fq-site { scroll-behavior:auto; } .fq-site *, .fq-site *::before, .fq-site *::after { animation:none !important; transition:none !important; } }
