
/* Contact details stay separate from the quotation form. */
.office-section{background:#f6f7f9;border-top:1px solid #e6eaf0}
.office-layout{display:grid;grid-template-columns:1fr 1.08fr;gap:42px;align-items:stretch}
.office-map{display:flex;flex-direction:column;border:1px solid #dfe4ea;border-radius:10px;overflow:hidden;background:#e9edf1;min-width:0}
.office-map iframe{display:block;width:100%;height:100%;min-height:470px;border:0;flex:1}
.office-map-link{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 20px;background:white;font-size:14px;font-weight:600;line-height:1.8}
.office-map-link:hover{background:#fff9d5;color:#594b0a}
.office-map-link>span:last-child{font-size:23px}
.office-details{padding-block:4px;min-width:0}
.office-company{margin-bottom:26px}
.office-badge{display:inline-block;background:#fff2aa;color:#6f5d10;border:1px solid #eddf9d;border-radius:4px;padding:3px 9px;font-size:12px;font-weight:600;margin-bottom:12px}
.office-company h3{font-size:25px;font-weight:600;line-height:1.6;letter-spacing:-.5px}
.office-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:27px 30px}
.office-info{min-width:0}
.office-info h4{font-size:16px;font-weight:600;line-height:1.8;margin:0 0 11px}
.office-info address,.office-info p{font-style:normal;font-size:15px;line-height:1.95;color:#5f6d80}
.office-tax{margin-top:16px}
.office-tax strong{font-weight:500;letter-spacing:.5px;color:#33435a}
.office-phone{font-size:23px;font-weight:700;line-height:1.6;letter-spacing:-.5px}
.office-phone:hover,.office-email:hover{color:#826d0c}
.office-extensions{font-size:14px;color:#5f6d80;margin:12px 0 15px;line-height:1.9}
.office-extensions>div{display:flex;gap:9px;flex-wrap:wrap}
.office-extensions dt{font-weight:500}
.office-extensions dd{margin:0}
.office-email{font-size:14px;font-weight:500;color:#33435a;overflow-wrap:anywhere}
.office-hours strong{color:#33435a;font-weight:600}
.office-hours .office-holiday{font-size:14px;margin-top:9px}
.office-line p{font-size:14px;margin-bottom:13px}
.office-line-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#06c755;color:white;border-radius:6px;padding:11px 14px;min-height:46px;font-size:15px;font-weight:600}
.office-line-button:hover{background:#05b14b;box-shadow:0 7px 18px #06c75520}
.office-line-button svg{width:27px;height:27px;flex-shrink:0}
.office-line-button>span{font-size:19px;margin-left:3px}

/* Mobile keeps its current clearance above the bottom action bar. */
.floating-tools{--floating-bottom:180px;position:fixed;right:28px;bottom:calc(var(--floating-bottom) + env(safe-area-inset-bottom,0px));z-index:45;display:flex;flex-direction:column;align-items:flex-end;gap:12px;width:44px}
/* On desktop, the expanded phone action clears the bottom edge by 25px. */
@media(min-width:801px){.floating-tools{--floating-bottom:128px}}
.floating-top,.fan-toggle{display:grid;place-items:center;width:44px;height:44px;background:#fff;border:1px solid #dce3ec;border-radius:50%;color:#42526a;box-shadow:0 5px 20px #040c1c1c}
.floating-top svg,.fan-toggle svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.floating-top:hover,.fan-toggle:hover{transform:translateY(-3px);background:#fff9d5;color:#040c1c}
.contact-fan{position:relative;width:44px;height:44px}
.fan-toggle{position:relative;z-index:2;padding:0;cursor:pointer}
.fan-toggle .fan-close-icon{display:none}
.contact-fan.is-open .fan-open-icon{display:none}
.contact-fan.is-open .fan-close-icon{display:block}
.fan-actions{position:absolute;inset:0}
.fan-action{position:absolute;left:-1px;top:-1px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid transparent;box-shadow:0 5px 18px #040c1c29;opacity:0;visibility:hidden;pointer-events:none;transform:translate(0,0) scale(.55);transition:transform 240ms cubic-bezier(.2,.8,.2,1),opacity 180ms ease,visibility 180ms ease}
.contact-fan.is-open .fan-action{opacity:1;visibility:visible;pointer-events:auto;transform:translate(var(--fan-x),var(--fan-y)) scale(1)}
.fan-email{--fan-x:-108px;--fan-y:10px;background:#fff;color:#33435a;border-color:#dfe5ed}
.fan-line{--fan-x:-78px;--fan-y:78px;background:#06c755;color:#fff}
.fan-phone{--fan-x:-10px;--fan-y:102px;background:#10233d;color:#ffd919;border-color:#334760}
.fan-action svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.fan-line svg{width:30px;height:30px;stroke:none}
.fan-action:hover{box-shadow:0 8px 24px #040c1c42}
.fan-action::after{content:attr(data-label);position:absolute;right:calc(100% + 9px);top:50%;transform:translateY(-50%);white-space:nowrap;font-size:12px;line-height:1.6;background:#10233d;color:white;border-radius:4px;padding:5px 9px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 160ms ease}
.fan-action:hover::after,.fan-action:focus-visible::after{opacity:1;visibility:visible}
@media(max-width:1100px){.office-layout{grid-template-columns:1fr;gap:30px}.office-map iframe{min-height:380px}.office-name-break{display:none}.office-info-grid{grid-template-columns:1fr 1fr;gap:25px 35px}.office-details{padding:0}.office-company h3{font-size:26px}}
@media(max-width:600px){.office-layout{gap:25px}.office-map iframe{min-height:330px;height:330px}.office-map-link{font-size:13px;padding:13px 15px}.office-company h3{font-size:23px}.office-info-grid{grid-template-columns:1fr;gap:25px}.office-company{margin-bottom:23px}.office-info address br{display:none}.office-info address{line-height:2}.office-tax br{display:none}.office-tax strong{margin-left:6px}.office-email{font-size:15px}.floating-tools{right:18px}.office-line-button{font-size:15px}.office-info h4{margin-bottom:8px}.office-info+.office-info{border-top:1px solid #e0e5ed;padding-top:22px}}
@media(prefers-reduced-motion:reduce){.floating-top:hover,.fan-toggle:hover{transform:none}.fan-action,.fan-action::after{transition:none}}
.quote-send { gap: 8px; }
.quote-send-icon { width: 20px; height: 20px; flex: none; }
.quote-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-block: 8px 6px;
}
.form-result .quote-result-actions .button { margin-top: 0; }
