/* Header contact details and compact, consistent contact actions. */
.header-meta { display:flex; align-items:center; gap:clamp(12px,1.4vw,24px); flex:0 1 auto; color:var(--ap-olive,#5c6442); font:500 12px/1.35 Manrope,Arial,sans-serif; }
.header-meta > a,.header-meta > span { display:inline-flex; align-items:center; gap:7px; color:inherit; text-decoration:none; white-space:nowrap; }
.header-meta svg,.contact-detail svg,.footer-detail svg { width:17px; height:17px; flex:0 0 17px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.header-meta a:hover,.footer-detail:hover { color:var(--ap-ink,#2d211b); }
header.redesign-header .header-meta { margin-left:auto; }
.site-header .header-meta { margin-left:auto; }
.redesign-header > .redesign-button, .site-header > .redesign-category-quote { display:none!important; }
#contacts .contact-links { display:flex; align-items:center; gap:20px 30px; width:100%; }
#contacts .contact-detail { display:inline-flex; align-items:center; gap:10px; color:var(--ap-on-dark,#f7f5ee); text-decoration:none; font:500 15px/1.4 Manrope,Arial,sans-serif; overflow-wrap:anywhere; }
#contacts .contact-detail:hover { color:var(--ap-accent,#e5e96f); }
#contacts .contact-social { display:flex; flex-direction:column; align-items:center; gap:8px; margin-left:auto; }
#contacts .contact-social-label { color:var(--ap-on-dark,#f7f5ee); font:500 13px/1.2 Manrope,Arial,sans-serif; }
#contacts .contact-icons { display:flex; align-items:center; gap:10px; margin:0; }
#contacts .contact-icons a { width:44px; height:44px; border-radius:12px; }
.footer-contact-line { display:flex; align-items:center; flex-wrap:wrap; gap:14px 28px; }
.footer-contact-line .business-hours,.footer-contact-line .footer-detail { display:inline-flex; align-items:center; gap:9px; }
.footer-detail { color:inherit; text-decoration:none; overflow-wrap:anywhere; }
@media(max-width:840px) {
  header.redesign-header { flex-wrap:wrap!important; row-gap:9px!important; }
  header.redesign-header .header-meta { order:6; flex:1 0 100%; margin:0; padding:2px 0 4px; justify-content:space-between; gap:8px; font-size:10px; }
  header.redesign-header .header-meta svg { width:14px;height:14px;flex-basis:14px; }
  .site-header .header-meta { flex:1 0 100%; justify-content:space-between; margin:0; padding:4px 0; font-size:11px; }
  #contacts .contact-links { align-items:flex-start; flex-direction:column; gap:16px; }
  #contacts .contact-social { margin:2px 0 0; align-items:flex-start; }
  #contacts .contact-detail { font-size:14px; }
  #contacts .contact-icons a { width:38px;height:38px;border-radius:10px; }
  #contacts .contact-icons svg { width:18px;height:18px; }
  .footer-contact-line { align-items:flex-start; flex-direction:column; gap:12px; }
}
@media(max-width:390px) {
  header.redesign-header .header-meta { font-size:9px; }
  .site-header .header-meta { font-size:10px; }
}

/* Contact row follows the reference order: hours, email, phone, messengers. */
header.redesign-header { flex-wrap:wrap; }
header.redesign-header .header-meta { order:3; margin-left:auto; }
header.redesign-header .header-meta > span { order:0; }
header.redesign-header .header-meta > a { order:1; }
header.redesign-header .redesign-phone { order:4; }
header.redesign-header .redesign-social { order:5; display:flex; align-items:center; gap:8px; }
header.redesign-header .site-max, header.redesign-header .site-telegram { width:42px; height:42px; }
header.redesign-header .redesign-social { gap:6px; }
/* The office hours and city belong with the footer identity. */
.footer-contact-line { display:flex; align-items:center; justify-content:flex-end; gap:24px; color:var(--ap-olive,#5c6442); }
.footer-contact-line .business-hours,.footer-contact-line .footer-city { display:inline-flex; align-items:center; gap:8px; }
.reviews-controls { display:none!important; }
.review-card > a { font-size:0!important; }
.review-card > a::after { content:"Читать отзыв целиком"; font-size:12px; }
@media(max-width:840px) {
  header.redesign-header .header-meta { order:4; }
  header.redesign-header .redesign-phone { order:2; }
  header.redesign-header .redesign-social { order:3; gap:5px; }
  header.redesign-header .site-max,header.redesign-header .site-telegram { width:36px;height:36px; }
  .footer-contact-line { align-items:flex-start; flex-direction:column; gap:10px; }
}

/* Compact phone header and a single left-aligned footer location row. */
.footer-contact-line { justify-content:flex-start!important; align-items:center!important; flex-direction:row!important; gap:12px 24px!important; padding:14px 0!important; }
@media(max-width:840px) {
  header.redesign-header { min-height:0!important; padding:10px 0!important; row-gap:5px!important; column-gap:10px!important; }
  header.redesign-header .mobile-catalog-toggle { display:none!important; }
  header.redesign-header .logo { margin:0!important; }
  header.redesign-header .logo img { width:128px!important; }
  header.redesign-header .redesign-phone { display:block!important; order:2!important; font-size:14px!important; line-height:1.2!important; }
  header.redesign-header .redesign-social { order:3!important; gap:5px!important; }
  header.redesign-header .site-max,header.redesign-header .site-telegram { width:32px!important;height:32px!important;border-radius:9px!important; }
  header.redesign-header .header-meta { order:4!important; flex:1 0 100%!important; margin:0!important; padding:2px 0 0!important; justify-content:space-between!important; gap:8px!important; font-size:10px!important; }
  header.redesign-header .header-meta > a,header.redesign-header .header-meta > span { gap:5px!important; }
  header.redesign-header .header-meta svg { width:13px!important;height:13px!important;flex-basis:13px!important; }
  .footer-contact-line { align-items:center!important; flex-direction:row!important; gap:8px 18px!important; font-size:11px!important; }
}
@media(max-width:390px) {
  header.redesign-header .logo img { width:118px!important; }
  header.redesign-header .redesign-phone { font-size:13px!important; }
}

.redesign-email-icon { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; color:var(--ap-olive,#5c6442); border:1px solid currentColor; border-radius:10px; }
.redesign-email-icon svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.redesign-email-icon:hover { color:var(--ap-ink,#2d211b); }
@media(max-width:840px) {
  header.redesign-header { display:grid!important; grid-template-columns:minmax(0,1fr) auto!important; grid-template-areas:"brand phone" "hours socials"; align-items:center!important; gap:8px 12px!important; padding:10px 0!important; }
  header.redesign-header .logo { grid-area:brand; justify-self:start; }
  header.redesign-header .redesign-phone { grid-area:phone; justify-self:end; font-size:14px!important; }
  header.redesign-header .header-meta { grid-area:hours; display:flex; justify-content:flex-start!important; align-self:center; padding:0!important; font-size:10px!important; }
  header.redesign-header .header-meta > span { white-space:nowrap; }
  header.redesign-header .redesign-social { grid-area:socials; justify-self:end; display:flex; align-items:center; gap:6px!important; }
  header.redesign-header .redesign-email-icon,header.redesign-header .site-max,header.redesign-header .site-telegram { width:32px!important;height:32px!important;border-radius:8px!important; }
  header.redesign-header .redesign-email-icon svg { width:16px;height:16px; }
}
@media(max-width:390px) {
  header.redesign-header { gap:7px 8px!important; }
  header.redesign-header .logo img { width:118px!important; }
  header.redesign-header .redesign-phone { font-size:13px!important; }
  header.redesign-header .redesign-social { gap:4px!important; }
  header.redesign-header .redesign-email-icon,header.redesign-header .site-max,header.redesign-header .site-telegram { width:30px!important;height:30px!important; }
}

/* Desktop contact line matches the reference: hours, email, phone, messengers. */
@media(min-width:841px) {
  header.redesign-header { gap:clamp(14px,1.6vw,28px); }
  header.redesign-header .header-meta { order:3; margin-left:auto; gap:clamp(14px,1.6vw,28px); font-size:15px; }
  header.redesign-header .header-meta > span { order:0; }
  header.redesign-header .header-email-text { order:1; font:inherit; }
  header.redesign-header .redesign-phone { order:4; font-size:20px; }
  header.redesign-header .redesign-social { order:5; gap:8px!important; }
  header.redesign-header .redesign-email-icon { display:none; }
  header.redesign-header .site-max,header.redesign-header .site-telegram { width:44px;height:44px; }
}
@media(max-width:840px) {
  header.redesign-header .header-email-text { display:none!important; }
  header.redesign-header .redesign-email-icon { display:inline-flex; }
}

@media(min-width:1100px) {
  header.redesign-header {
    display:grid!important;
    grid-template-columns:auto minmax(220px,1fr) auto auto auto!important;
    grid-template-areas:"brand nav meta phone socials";
    align-items:center!important;
    column-gap:clamp(12px,1.35vw,22px)!important;
    row-gap:0!important;
    flex-wrap:nowrap!important;
  }
  header.redesign-header .mobile-catalog-toggle { display:none!important; }
  header.redesign-header .logo { grid-area:brand; }
  header.redesign-header .redesign-nav { grid-area:nav; flex-wrap:nowrap; gap:clamp(10px,1.4vw,22px); }
  header.redesign-header .header-meta { grid-area:meta; margin:0!important; gap:clamp(10px,1.2vw,18px); font-size:clamp(12px,.95vw,15px); }
  header.redesign-header .header-meta svg { width:15px;height:15px;flex-basis:15px; }
  header.redesign-header .redesign-phone { grid-area:phone; font-size:clamp(15px,1.3vw,20px); }
  header.redesign-header .redesign-social { grid-area:socials; justify-self:end; white-space:nowrap; }
  header.redesign-header .site-max,header.redesign-header .site-telegram { width:40px;height:40px; }
}
@media(min-width:841px) and (max-width:1099px) {
  header.redesign-header .redesign-social { margin-left:auto!important; }
}

.redesign-email-icon { display:none!important; }
.mobile-header-email { display:none; }
@media(max-width:840px) {
  header.redesign-header { grid-template-areas:"brand phone" "hours socials" "empty email"!important; grid-template-columns:minmax(0,1fr) auto!important; row-gap:5px!important; }
  header.redesign-header .header-email-text { display:none!important; }
  header.redesign-header .mobile-header-email { grid-area:email; display:block; justify-self:end; max-width:100%; color:var(--ap-olive,#5c6442); font:500 10px/1.25 Manrope,Arial,sans-serif; white-space:nowrap; }
  header.redesign-header .header-meta { grid-area:hours; justify-self:start; }
  header.redesign-header .redesign-social { grid-area:socials; }
}

.hero-contact-meta { display:none; }
@media(max-width:840px) {
  header.redesign-header .header-meta { display:none!important; }
  .hero-contact-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 24px; color:#f7f5ee; font:500 10px/1.35 Manrope,Arial,sans-serif; }
  .hero-contact-meta .hero-hours { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
  .hero-contact-meta svg { width:14px; height:14px; flex:0 0 14px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
  .hero-contact-meta a { color:inherit; text-decoration:none; white-space:nowrap; }
  .redesign-hero-kicker { margin-top:0; }
}
@media(max-width:390px) {
  .hero-contact-meta { font-size:9px; gap:6px; margin-bottom:22px; }
  .hero-contact-meta .hero-hours { gap:4px; }
}
@media(max-width:840px) {
  header.redesign-header { grid-template-areas:"brand phone" "hours socials"!important; }
}
@media(max-width:840px) {
  header.redesign-header { padding:4px 0 2px!important; row-gap:3px!important; }
  header.redesign-header .logo { transform:translateY(6px); }
  .redesign-hero { padding-top:clamp(10px,3vw,16px)!important; }
  .hero-contact-meta { margin-bottom:18px!important; }
}
@media(max-width:840px) {
  header.redesign-header { position:relative!important; display:grid!important; grid-template-columns:1fr!important; grid-template-areas:"brand"!important; }
  header.redesign-header .redesign-phone { position:absolute!important; top:50%!important; right:72px!important; grid-area:auto!important; transform:translateY(-50%); font-size:12px!important; line-height:1.1!important; }
  header.redesign-header .redesign-social { position:absolute!important; top:50%!important; right:0!important; grid-area:auto!important; transform:translateY(-50%); gap:4px!important; }
  header.redesign-header .site-max,header.redesign-header .site-telegram { width:30px!important;height:30px!important; }
}
@media(max-width:390px) {
  header.redesign-header .redesign-phone { right:68px!important; font-size:11px!important; }
  header.redesign-header .site-max,header.redesign-header .site-telegram { width:28px!important;height:28px!important; }
}
@media(max-width:840px) {
  header.redesign-header { padding:8px 0!important; }
  header.redesign-header .logo img { width:112px!important; }
  header.redesign-header .redesign-phone { right:78px!important; font-size:12px!important; }
  header.redesign-header .redesign-social { gap:6px!important; }
  .hero-contact-meta { margin-bottom:24px!important; }
  .redesign-kicker { margin-bottom:24px!important; }
  .redesign-lead { margin-top:20px!important; }
  .redesign-actions { gap:12px!important; margin-top:24px!important; }
}
@media(max-width:390px) {
  header.redesign-header .logo img { width:108px!important; }
  header.redesign-header .redesign-phone { right:76px!important; font-size:11px!important; }
}

/* Footer contact card follows the approved two-column layout. */
.footer-panel {
  position:relative; left:50%; width:100vw; margin:0; transform:translateX(-50%);
  padding:44px clamp(24px,5vw,72px); background:#20251f; color:#f7f5ee;
}
.footer-inner {
  width:100%; max-width:1280px; margin:0 auto; display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(40px,7vw,96px);
}
.footer-contact-section { min-width:0; margin:0!important; padding:0!important; border:0!important; background:transparent!important; }
.footer-contact-section h2 { margin:0 0 28px!important; color:#f7f5ee!important; font-size:clamp(28px,2.5vw,36px); line-height:1.15; }
.footer-contact-main { display:flex; flex-direction:column; justify-content:space-between; min-height:258px; gap:28px; }
.footer-contact-details { display:grid; gap:18px; }
.footer-contact-item { display:flex; flex-direction:column; align-items:flex-start; gap:6px; min-width:0; color:#f7f5ee!important; font-size:18px; line-height:1.4; overflow-wrap:anywhere; }
.footer-contact-label { font-size:13px; letter-spacing:1.3px; }
.footer-contact-bottom { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:28px; }
.footer-panel .contact-social { display:flex; flex-direction:column; align-items:flex-start!important; gap:10px; margin:0!important; }
.footer-panel .contact-social-label { color:#f7f5ee!important; font-size:13px!important; letter-spacing:1px; text-transform:uppercase; }
.footer-panel .contact-icons { display:flex; gap:10px!important; }
.footer-hours-city { display:flex; flex-direction:column; gap:8px; padding-left:28px; border-left:1px solid #f7f5ee66; color:#f7f5ee; font-size:16px; line-height:1.4; }
.footer-brand { min-width:0; padding:8px 0 0 clamp(40px,5vw,72px); border-left:1px solid #f7f5ee66; }
.footer-brand-description { max-width:470px; margin:0 0 28px; color:#f7f5ee!important; font-size:clamp(23px,2.6vw,34px); line-height:1.2; }
.footer-brand-name { margin-bottom:24px; color:#f7f5ee; font-size:27px; font-weight:700; letter-spacing:-.4px; }
.footer-panel .business-details { display:flex!important; flex-direction:column; align-items:flex-start; gap:8px!important; margin:0!important; padding:0!important; color:#f7f5ee!important; font-size:16px!important; line-height:1.45!important; }
@media(max-width:700px) {
  .footer-panel { padding:32px 20px; }
  .footer-inner { grid-template-columns:minmax(0,1fr); gap:28px; }
  .footer-contact-section h2 { margin-bottom:22px!important; font-size:26px; }
  .footer-contact-main { min-height:0; gap:24px; }
  .footer-contact-details { gap:14px; }
  .footer-contact-item { font-size:15px; }
  .footer-contact-label { font-size:11px; }
  .footer-contact-bottom { grid-template-columns:auto minmax(0,1fr); gap:18px; }
  .footer-panel .contact-social-label { font-size:11px!important; }
  .footer-panel .contact-icons { gap:8px!important; }
  .footer-hours-city { gap:7px; padding-left:18px; font-size:14px; }
  .footer-brand { padding:24px 0 0; border-left:0; border-top:1px solid #f7f5ee66; }
  .footer-brand-description { margin-bottom:18px; font-size:22px; }
  .footer-brand-name { margin-bottom:14px; font-size:21px; }
  .footer-panel .business-details { gap:5px!important; font-size:12px!important; }
}
@media(max-width:390px) {
  .footer-panel { padding-inline:16px; }
  .footer-contact-bottom { gap:12px; }
  .footer-hours-city { padding-left:12px; font-size:12px; }
  .footer-contact-item { font-size:13px; }
  .footer-brand-description { font-size:19px; }
  .footer-panel .business-details { font-size:10px!important; }
}

/* Small responsive refinements requested for the header, reviews and footer. */
.review-card .review-stars { display:block; margin:0 0 12px; color:#5C6442; font-size:20px; line-height:1; letter-spacing:2px; }
.footer-brand-description { font-size:clamp(18px,1.8vw,24px); }
@media(max-width:700px) {
  header.redesign-header .logo img { width:138px!important; max-width:100%; height:auto!important; }
  .review-card .review-stars { margin-bottom:10px; font-size:18px; letter-spacing:1.5px; }
  .footer-brand-description { font-size:18px; }
}
@media(max-width:390px) {
  header.redesign-header .logo img { width:126px!important; }
  .footer-brand-description { font-size:17px; }
}

/* Align both footer columns to a shared top edge and lift the contact row slightly. */
.footer-inner { align-items:start; }
.footer-contact-section h2 { margin-bottom:30px!important; }
.footer-brand { padding-top:0; }
.footer-contact-bottom { transform:translateY(-8px); }
@media(max-width:700px) {
  .footer-contact-section h2 { margin-bottom:24px!important; }
  .footer-contact-bottom { transform:translateY(-6px); }
}

/* Reviews: compact cards in a three-card desktop carousel. */
.reviews-controls { display:flex!important; justify-content:flex-end; gap:8px; margin:0 0 14px; }
.reviews-controls button { display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid #bdbda9; border-radius:6px; background:transparent; color:#252b25; font-size:22px; line-height:1; }
.reviews-controls button:hover { background:#e7e9de; }
.reviews-grid { display:flex; align-items:flex-start; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; padding-bottom:8px; }
.reviews-grid::-webkit-scrollbar { display:none; }
.review-card { display:flex; flex-direction:column; flex:0 0 calc((100% - 32px)/3); min-width:0; min-height:0; padding:18px; scroll-snap-align:start; }
.review-card blockquote { min-height:0; margin:0 0 16px; }
.review-card .review-stars { margin-bottom:10px; }
@media(max-width:760px) {
  .reviews-controls { display:none!important; }
  .reviews-grid { gap:12px; }
  .review-card { flex:0 0 82%; padding:18px; }
  .review-card blockquote { min-height:0; }
}

/* Quote form: give the form the wider column and standardize field sizing. */
.quote-section { grid-template-columns:minmax(0,.45fr) minmax(0,.55fr); gap:clamp(24px,3vw,42px); align-items:stretch; margin:18px 0 38px; padding:clamp(24px,3.2vw,40px); }
.quote-section > div { align-self:center; }
.quote-section h2 { margin:0 0 18px; }
.quote-section p { margin:0 0 16px; line-height:1.5; }
.quote-section p:last-child { margin-bottom:0; }
.quote-form { gap:12px; padding:24px; }
.quote-form h3 { margin-bottom:2px; }
.quote-form label { gap:7px; }
.quote-form input { height:52px; padding:12px 15px; }
.quote-form textarea { min-height:136px; padding:13px 15px; line-height:1.45; }
.quote-form button { min-width:220px; min-height:62px; padding:18px 28px; font-size:17px; }
@media(max-width:760px) {
  .quote-section { grid-template-columns:minmax(0,1fr); gap:20px; margin:18px 0 30px; padding:22px 18px; }
  .quote-section > div { align-self:auto; }
  .quote-form { padding:18px; }
  .quote-form input { height:50px; }
  .quote-form textarea { min-height:124px; }
  .quote-form button { width:100%; min-width:0; min-height:58px; }
}

/* Footer: no divider, shorter block, larger identity and legal details. */
.footer-panel { padding-top:30px; padding-bottom:30px; }
.footer-inner { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(48px,7vw,90px); align-items:start; }
.footer-contact-main { min-height:210px; }
.footer-brand { border-left:0; padding-left:0; }
.footer-brand-description { margin-top:0; margin-bottom:22px; font-size:clamp(18px,1.8vw,24px); }
.footer-brand-name { margin-bottom:18px; font-size:30px; }
.footer-panel .business-details { gap:10px!important; font-size:18px!important; line-height:1.5!important; }
@media(max-width:700px) {
  .footer-panel { padding-top:28px; padding-bottom:26px; }
  .footer-inner { grid-template-columns:minmax(0,1fr); gap:24px; }
  .footer-contact-main { min-height:0; }
  .footer-brand { border-top:1px solid #f7f5ee66; padding-top:22px; }
  .footer-brand-name { font-size:22px; }
  .footer-panel .business-details { gap:6px!important; font-size:13px!important; }
}

/* Footer rhythm: align semantic groups and give both columns equal outer padding. */
.footer-panel { padding:32px 48px!important; }
.footer-inner { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:stretch; }
.footer-contact-section { display:flex!important; flex-direction:column; min-height:0; }
.footer-contact-section h2 { margin:0 0 26px!important; }
.footer-contact-main { display:flex; flex:1; flex-direction:column; justify-content:flex-start; min-height:228px; gap:0; }
.footer-contact-details { gap:16px; }
.footer-contact-bottom { margin-top:auto; transform:none; }
.footer-brand { display:flex; flex-direction:column; min-height:100%; padding:0!important; border:0!important; }
.footer-brand-description { margin:0 0 22px!important; }
.footer-brand-name { margin:0 0 22px!important; font-size:30px; line-height:1.2; }
.footer-panel .business-details { margin-top:auto!important; gap:8px!important; font-size:17px!important; line-height:1.45!important; }
@media(max-width:700px) {
  .footer-panel { padding:28px 20px!important; }
  .footer-inner { grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; }
  .footer-contact-section h2 { margin-bottom:22px!important; }
  .footer-contact-main { min-height:0; flex:initial; gap:22px; }
  .footer-contact-bottom { margin-top:0; transform:none; }
  .footer-brand { min-height:0; padding:22px 0 0!important; border:0!important; border-top:1px solid #f7f5ee66!important; }
  .footer-brand-description { margin-bottom:18px!important; }
  .footer-brand-name { margin-bottom:14px!important; font-size:22px; }
  .footer-panel .business-details { margin-top:0!important; gap:6px!important; font-size:13px!important; }
}
@media(max-width:390px) {
  .footer-panel { padding-inline:16px!important; }
}

/* Footer rebuilt to closely match the supplied contact mockup. */
.footer-panel { padding:42px clamp(24px,6.25vw,96px)!important; }
.footer-inner { width:100%; max-width:1440px; margin:0 auto; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(48px,7vw,108px); align-items:start; }
.footer-contact-section { display:block!important; min-width:0; margin:0!important; padding:0!important; }
.footer-contact-section h2 { margin:0 0 34px!important; color:#f7f5ee!important; font-size:clamp(32px,3.2vw,48px); line-height:1.12; letter-spacing:-1.5px; }
.footer-contact-main { display:flex; flex-direction:column; justify-content:flex-start; min-height:0; gap:46px; }
.footer-contact-details { display:grid; gap:26px; }
.footer-contact-item { display:grid; grid-template-columns:66px minmax(0,1fr); align-items:center; gap:22px; min-width:0; color:#f7f5ee!important; text-decoration:none; }
.footer-contact-icon { display:grid; place-items:center; width:66px; height:66px; border-radius:15px; background:#3a4031; color:#f7f5ee; }
.footer-contact-icon svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.footer-contact-item:first-child .footer-contact-icon svg { fill:currentColor; stroke:none; }
.footer-contact-copy { display:grid; gap:4px; min-width:0; }
.footer-contact-label { color:#e7e9de; font-size:17px; line-height:1.3; }
.footer-contact-value { color:#f7f5ee; font-size:clamp(18px,1.6vw,24px); line-height:1.35; overflow-wrap:anywhere; }
.footer-contact-bottom { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:42px; margin:0; transform:none; }
.footer-panel .contact-social { display:flex; flex-direction:column; align-items:flex-start!important; gap:16px; margin:0!important; }
.footer-panel .contact-social-label { color:#f7f5ee!important; font-size:23px!important; line-height:1.25; letter-spacing:0; text-transform:none; }
.footer-panel .contact-icons { display:flex; align-items:center; gap:14px!important; }
.footer-panel .contact-icons a { width:66px; height:66px; border-radius:16px; }
.footer-hours-city { display:grid; gap:12px; padding-left:42px; border-left:1px solid #f7f5ee66; color:#f7f5ee; font-size:21px; line-height:1.35; }
.footer-hours-city > span { display:flex; align-items:center; gap:16px; white-space:nowrap; }
.footer-hours-city svg { flex:none; width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.footer-brand { display:flex; flex-direction:column; min-width:0; min-height:0; padding:12px 0 0!important; border:0!important; }
.footer-brand-description { margin:0 0 54px!important; color:#f7f5ee!important; font-size:clamp(21px,2vw,28px); line-height:1.3; }
.footer-brand-name { margin:0 0 54px!important; color:#f7f5ee; font-size:clamp(38px,3.7vw,56px); font-weight:700; line-height:1.05; letter-spacing:-1px; }
.footer-panel .business-details { display:flex!important; flex-direction:column; align-items:flex-start; gap:8px!important; margin:0!important; padding:0!important; color:#f7f5ee!important; font-size:clamp(16px,1.5vw,22px)!important; line-height:1.45!important; }
@media(max-width:900px) {
  .footer-inner { grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:36px; }
  .footer-contact-bottom { grid-template-columns:auto minmax(0,1fr); gap:24px; }
  .footer-hours-city { padding-left:24px; font-size:17px; }
  .footer-hours-city > span { gap:10px; }
  .footer-contact-item { grid-template-columns:56px minmax(0,1fr); gap:16px; }
  .footer-contact-icon,.footer-panel .contact-icons a { width:56px; height:56px; }
  .footer-brand-description { margin-bottom:38px!important; }
  .footer-brand-name { margin-bottom:38px!important; }
}
@media(max-width:700px) {
  .footer-panel { padding:34px 20px!important; }
  .footer-inner { grid-template-columns:minmax(0,1fr); gap:34px; }
  .footer-contact-section h2 { margin-bottom:26px!important; font-size:30px; }
  .footer-contact-main { gap:32px; }
  .footer-contact-details { gap:18px; }
  .footer-contact-item { grid-template-columns:48px minmax(0,1fr); gap:14px; }
  .footer-contact-icon,.footer-panel .contact-icons a { width:48px; height:48px; border-radius:12px; }
  .footer-contact-icon svg { width:26px; height:26px; }
  .footer-contact-label { font-size:14px; }
  .footer-contact-value { font-size:16px; }
  .footer-contact-bottom { gap:18px; }
  .footer-panel .contact-social { gap:12px; }
  .footer-panel .contact-social-label { font-size:18px!important; }
  .footer-panel .contact-icons { gap:8px!important; }
  .footer-hours-city { gap:10px; padding-left:16px; font-size:14px; }
  .footer-hours-city > span { gap:8px; white-space:normal; }
  .footer-hours-city svg { width:20px; height:20px; }
  .footer-brand { padding:26px 0 0!important; border-top:1px solid #f7f5ee55!important; }
  .footer-brand-description { margin-bottom:24px!important; font-size:21px; }
  .footer-brand-name { margin-bottom:24px!important; font-size:36px; }
  .footer-panel .business-details { gap:6px!important; font-size:14px!important; }
}
@media(max-width:390px) {
  .footer-panel { padding-inline:16px!important; }
  .footer-contact-bottom { grid-template-columns:auto minmax(0,1fr); gap:12px; }
  .footer-hours-city { padding-left:12px; font-size:12px; }
  .footer-hours-city svg { width:18px; height:18px; }
  .footer-panel .contact-social-label { font-size:16px!important; }
  .footer-contact-value { font-size:14px; }
}

/* Footer-only typography and shared top alignment. */
.footer-inner { align-items:start!important; }
.footer-contact-section { padding-top:0!important; }
.footer-contact-section h2 { font-size:26px!important; font-weight:500!important; }
.footer-brand { padding-top:0!important; transform:none!important; }
.footer-brand-description { font-size:18px!important; font-weight:400!important; }
.footer-brand-name { font-size:24px!important; font-weight:600!important; }
.footer-contact-value { font-size:16px!important; }
.footer-contact-label { font-size:12px!important; }
.footer-panel .contact-social-label { font-size:12px!important; }
.footer-hours-city { font-size:14px!important; }
.footer-panel .business-details { font-size:14px!important; }
@media(max-width:700px) {
  .footer-brand { padding-top:26px!important; transform:none!important; }
  .footer-brand-description { font-size:18px!important; }
  .footer-brand-name { font-size:24px!important; }
  .footer-contact-value { font-size:15px!important; }
  .footer-contact-label,.footer-panel .contact-social-label { font-size:12px!important; }
  .footer-hours-city,.footer-panel .business-details { font-size:13px!important; }
}
@media(max-width:390px) {
  .footer-contact-value { font-size:14px!important; }
  .footer-hours-city,.footer-panel .business-details { font-size:12px!important; }
}

/* Align review cards, quote copy, and footer columns. */
#reviews .reviews-grid { align-items:stretch!important; }
#reviews .review-card { display:flex; flex-direction:column; }
#reviews .review-card > a { margin-top:auto!important; padding-top:16px; }
.quote-section > div { align-self:start!important; }
@media(min-width:701px) {
  .footer-inner { align-items:start!important; }
  .footer-inner > .footer-contact-section,
  .footer-inner > .footer-brand { align-self:start!important; margin-block-start:0!important; padding-block-start:0!important; }
  .footer-inner > .footer-contact-section > h2,
  .footer-inner > .footer-brand > .footer-brand-description { margin-block-start:0!important; }
}
.review-source-label { margin:0 0 8px; color:#5C6442; font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.reviews-grid { align-items:stretch; }

/* Tighten the reviews section tail and align footer title line boxes. */
#reviews.reviews-section { padding-bottom:20px!important; }
@media(max-width:760px) {
  #reviews.reviews-section { padding-bottom:16px!important; }
}
@media(min-width:701px) {
  .footer-inner { align-items:start!important; }
  .footer-inner > .footer-contact-section,
  .footer-inner > .footer-brand { align-self:start!important; margin-block-start:0!important; padding-block-start:0!important; }
  .footer-inner > .footer-contact-section > h2,
  .footer-inner > .footer-brand > .footer-brand-description { margin-block-start:0!important; }
  .footer-inner > .footer-brand > .footer-brand-description { line-height:1.12!important; }
}

/* Focused spacing refinements for footer, reviews, quote form and CTA. */
.footer-inner { display:grid; align-items:start!important; }
.footer-inner > .footer-contact-section,
.footer-inner > .footer-brand { align-self:start!important; padding-block-start:0!important; }
.footer-inner > .footer-contact-section > h2,
.footer-inner > .footer-brand > .footer-brand-description { margin-block-start:0!important; }
@media(min-width:701px) {
  .footer-inner > .footer-contact-section > h2,
  .footer-inner > .footer-brand > .footer-brand-description { line-height:1.12!important; }
}

#reviews .reviews-grid { align-items:stretch!important; }
@media(min-width:841px) {
  #reviews .review-card { box-sizing:border-box; height:auto; min-height:280px; }
}
#reviews .review-note { margin-bottom:0; }

#quote.quote-section { align-items:start!important; }
#quote.quote-section > div { align-self:start!important; }

.redesign-stand-cta { align-items:center; }
.redesign-stand-cta h2 { font-size:clamp(24px,3.65vw,48px); }
.redesign-stand-cta > .redesign-button { min-height:52px; padding:13px 24px; }
