/* Site-wide consistency layer, enqueued after every other sheet (AssetLoader::consistency).
   Rules here must look the same on every page, so they win over the page-scoped sheets
   (homepage.css, services/*.css) by load order rather than by !important. */

/* ---------------------------------------------------------------------------
   1. Enquiry section: the contact form that closes every page. The field
      styles also apply to the Contact page card (.tsco-contact-form-card),
      since every page uses the same CF7 form.
      Markup comes from tsco_enquiry_section() (inc/enquiry.php) on all pages,
      so width, height and spacing are identical everywhere.
   ------------------------------------------------------------------------ */
.tsco-enquiry{margin:0;padding:100px 24px;color:#fff;background:linear-gradient(rgba(13,50,71,.88),rgba(13,50,71,.88)),url('../images/contact-background.jpg') center/cover no-repeat}
.tsco-enquiry .tsco-enquiry__inner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:80px;align-items:center;box-sizing:border-box;width:100%;max-width:var(--tsco-wide);margin:0 auto;padding:0}
.tsco-enquiry .tsco-enquiry__inner>*,.tsco-enquiry .tsco-enquiry__copy>*,.tsco-enquiry .tsco-enquiry__list>*{max-width:none;margin:0}
.tsco-enquiry .tsco-enquiry__copy h2{color:#fff;font-size:var(--tsco-fs-h2);font-weight:800;line-height:1.18;letter-spacing:-.03em;text-align:left}
/* Headings differ per page and some wrap to two lines. Reserving two lines and
   sitting the heading at the bottom keeps the shared line and contact details
   at the same position on every page. */
.tsco-enquiry .tsco-enquiry__copy h2{display:flex;align-items:flex-end;min-height:calc(2em * 1.18)}
.tsco-enquiry .tsco-enquiry__copy>p{margin-top:14px;color:#c1d1d6;font-size:var(--tsco-fs-body);line-height:1.65}
.tsco-enquiry .tsco-enquiry__list{display:grid;gap:16px;margin-top:36px;padding:0}
.tsco-enquiry .tsco-enquiry__item{display:flex;align-items:center;gap:12px}
.tsco-enquiry .tsco-enquiry__item p{margin:0;color:#ccdade;font-size:var(--tsco-fs-body);line-height:1.5}
.tsco-enquiry .tsco-enquiry__item a{color:inherit;font-size:inherit;text-decoration:none}
.tsco-enquiry .tsco-enquiry__item a:hover,.tsco-enquiry .tsco-enquiry__item a:focus-visible{text-decoration:underline}
.tsco-enquiry .tsco-enquiry__icon{flex:none;width:21px;height:21px;color:var(--tsco-lime)}

.tsco-enquiry .tsco-enquiry__card{box-sizing:border-box;width:100%;padding:32px;border:0;border-radius:8px;background:#fff;color:var(--tsco-navy);box-shadow:none}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) form{display:grid;gap:16px;margin:0;padding:0;border:0;background:transparent}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) form>p,:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) .hidden-fields-container{margin:0}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) .hidden-fields-container{display:none}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) .tsco-form__row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) label{display:grid;gap:6px;margin:0;color:#48606b;font-size:var(--tsco-fs-body);font-weight:700;line-height:1.5;text-transform:none;letter-spacing:0}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) .wpcf7-form-control-wrap{display:block}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) :is(input,select,textarea){display:block;box-sizing:border-box;width:100%;height:48px;min-height:0;margin:0;padding:0 14px;border:1px solid #d4dcde;border-radius:4px;outline:none;background:#fff;color:var(--tsco-navy);font:inherit;font-size:var(--tsco-fs-body);font-weight:400;line-height:1.5;box-shadow:none}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) textarea{height:120px;padding:12px 14px;resize:vertical}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) :is(input,textarea)::placeholder{opacity:1;color:#7b8a92}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) :is(input,select,textarea):focus{border-color:var(--tsco-teal);box-shadow:0 0 0 3px rgba(103,163,174,.2)}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) button[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:8px;justify-self:start;width:auto;min-height:48px;margin:0;padding:0 24px;border:0;border-radius:4px;background:var(--tsco-blue);color:#fff;font:inherit;font-size:var(--tsco-fs-body);font-weight:700;line-height:1.5;cursor:pointer}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) button[type=submit] .tsco-chevron{display:block;width:16px;height:16px}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) .wpcf7-not-valid-tip{display:block;margin-top:4px;font-size:var(--tsco-fs-body);font-weight:400}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) .wpcf7-response-output{margin:0;padding:12px;font-size:var(--tsco-fs-body)}
:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) .wpcf7-spinner{margin:0 0 0 12px}

@media (max-width:900px){
	.tsco-enquiry{padding:72px 20px}
	.tsco-enquiry .tsco-enquiry__inner{grid-template-columns:minmax(0,1fr);gap:40px}
}
@media (max-width:600px){
	.tsco-enquiry .tsco-enquiry__card{padding:24px 20px}
	:is(.tsco-enquiry .tsco-enquiry__card,.tsco-contact-form-card) .tsco-form__row{grid-template-columns:minmax(0,1fr)}
}

/* ---------------------------------------------------------------------------
   2. Buttons and links are 16px everywhere (client request 2026-10-06).
      These selectors were 13-14px across header, cards, filters, breadcrumbs,
      tags and forms; none were larger, so a fixed size is safe. !important is
      deliberate: the old sizes come from page sheets with higher specificity.
   ------------------------------------------------------------------------ */
:is(.wp-block-button__link,.wp-element-button,.tsco-btn-outline,.tsco-link-chevron,.tsco-card__link a,.ti-more,.tsco-findus__link a,.tsco-news-filters button,.tsco-post-crumbs a,.tsco-post-tags a,.tsco-post-toc a,.breadcrumbs a,.tsco-hero__pause,.wpcf7-form button,.wpcf7-submit,.tsco-map-labels p[role=button]){font-size:var(--tsco-fs-body)!important}

/* ---------------------------------------------------------------------------
   3. Section titles and their buttons are centred over the content below.
      Constrained sections cap headings at 760px while card grids run to
      1100-1280px, so a left-aligned heading floated in the middle of nowhere.
   ------------------------------------------------------------------------ */
.tsco-offices-heading{margin-inline:auto;text-align:center}
.tsco-offices-subheading{text-align:center}
.tsco-section>.tsco-offices-grid{max-width:var(--tsco-wide)}
@media (min-width:901px){.tsco-section>.tsco-offices-grid.tsco-offices-grid--intl{grid-template-columns:repeat(2,calc((var(--tsco-wide) - 42px) / 4));justify-content:center}}
.tsco-related-section .tsco-news-grid{box-sizing:border-box;width:100%;max-width:var(--tsco-wide);margin-inline:auto}
.tsco-related-section .tsco-related-viewall{max-width:var(--tsco-wide);margin:2.4rem auto 0;text-align:center}

/* ---------------------------------------------------------------------------
   4. Office maps (inc/office-map.php, assets/js/office-map.js).
   ------------------------------------------------------------------------ */
.tsco-office-map{position:relative;z-index:0;width:100%;height:440px;border:1px solid var(--tsco-border);background:#eef2f4;font:inherit}
.tsco-office-map .leaflet-container,.tsco-office-map.leaflet-container{font:inherit}
.tsco-office-map__fallback{margin:0;padding:24px 28px;list-style:none;color:var(--tsco-navy)}
.tsco-office-map__fallback li{margin:0 0 6px}
.tsco-office-map__pin{border:3px solid #fff;border-radius:50%;background:var(--tsco-lime);box-shadow:0 0 0 2px var(--tsco-navy),0 2px 6px rgba(13,50,71,.35)}
.tsco-office-map__pin--hq{background:var(--tsco-navy);box-shadow:0 0 0 2px var(--tsco-lime),0 2px 6px rgba(13,50,71,.35)}
.tsco-office-map .leaflet-popup-content{display:grid;gap:2px;margin:12px 16px;color:var(--tsco-navy);font-size:var(--tsco-fs-ui);line-height:1.5}
.tsco-office-map .leaflet-popup-content strong{font-size:var(--tsco-fs-body)}
.tsco-office-map .leaflet-popup-content span{color:var(--tsco-subtitle)}
.tsco-office-map .leaflet-popup-content a{margin-top:4px;color:var(--tsco-blue);font-size:var(--tsco-fs-body);font-weight:700}
.tsco-section>.tsco-office-map{max-width:var(--tsco-wide);margin:2.4rem auto 1.6rem}
.tsco-hq-map{display:grid;gap:14px;justify-items:center;margin:0}
.tsco-hq-map .tsco-office-map{height:340px}
.tsco-hq-map p{margin:0}
.tsco-section>.tsco-hq-map--wide{max-width:var(--tsco-wide);margin:2.4rem auto 0}
.tsco-hq-map--wide .tsco-office-map{height:440px}
.tsco-map-labels p[role=button]{cursor:pointer;transition:background-color .2s,color .2s}
.tsco-map-labels p[role=button]:is(:hover,:focus-visible){background:var(--tsco-navy);color:#fff;outline:none}
@media (max-width:640px){.tsco-office-map,.tsco-hq-map--wide .tsco-office-map{height:340px}}

/* ---------------------------------------------------------------------------
   5. Client logos on the service pages (tsco_service_client_logos()).
      Same 2:1 logo box as the deck logo grids on Home and About.
   ------------------------------------------------------------------------ */
.tsco-reference .tsco-svc-logo{display:flex;align-items:center;justify-content:center;min-height:104px;padding:10px 14px;background:#fff;filter:none;opacity:1}
.tsco-reference .tsco-svc-logo img{display:block;width:100%;max-width:200px;height:auto;aspect-ratio:2/1;object-fit:contain}
.tsco-pin-list li[role=button]{cursor:pointer}
.tsco-pin-list li[role=button]:is(:hover,:focus-visible){color:var(--tsco-blue);text-decoration:underline;outline:none}

/* Forms: every field, placeholder, option, label, message and form button is body size (16px) site-wide.
   Last-loaded guard so no form drops below it (16px also stops iOS Safari zooming into fields on focus). */
form :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,option,textarea,label,button,.wpcf7-not-valid-tip,.wpcf7-response-output),
form :is(input,textarea)::placeholder,
.wpcf7-response-output{font-size:var(--tsco-fs-body)!important}
