/*
Theme Name: Pro Steel Solutions
Theme URI: https://prosteelsolution.com/
Author: Pro Steel Solutions Ltd
Author URI: https://prosteelsolution.com/
Description: The complete Pro Steel Solutions website as a WordPress theme. One-click import of all 90 pages (services, areas, guides, 22 steel calculators, size tables, glossary, FAQ, legal), the quote wizard with drawing uploads, the steel assistant chat, a built-in leads CRM (status, value, follow-ups, stats, CSV, GDPR tools), cookie-free visitor statistics, daily digest email, structured data, llms.txt and offline support. Works with the block editor and Elementor / Elementor Pro Theme Builder.
Version: 1.2.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: Proprietary - for use by Pro Steel Solutions Ltd
Text Domain: pss
Tags: business, construction, one-column, two-columns, custom-menu, custom-logo, featured-images, full-width-template, block-patterns, translation-ready
*/

/* The main design lives in assets/site.css (unchanged from the static site).
   This file only adds what WordPress itself needs. */

/* WordPress admin bar: keep the sticky header below it */
body.admin-bar .nav { top: 32px; }
@media (max-width: 782px) { body.admin-bar .nav { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .nav { top: 0; } }

/* Core alignment and caption classes for posts written in the editor */
.alignleft { float: left; margin: .3em 1.4em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.4em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignwide { max-width: 1180px; margin-left: auto; margin-right: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption, figure.wp-block-image { max-width: 100%; }
.wp-caption-text, .wp-element-caption, figcaption { font-size: .86rem; color: #51657a; margin-top: .4em; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { clip: auto !important; clip-path: none; height: auto; width: auto; display: block; padding: 12px 18px; background: #fff; z-index: 100000; }
.sticky, .bypostauthor, .gallery-caption { }
.prose img, .entry-content img { max-width: 100%; height: auto; border-radius: 12px; }
.prose figure { margin: 1.6em 0; }
.prose blockquote { border-left: 4px solid var(--orange); margin: 1.4em 0; padding: .4em 0 .4em 1.2em; color: var(--navy-ink); font-weight: 600; }
.prose table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: .95rem; }
.prose th, .prose td { border-bottom: 1px solid var(--line); padding: 10px 12px; text-align: left; }
.prose th { color: var(--navy-ink); background: rgba(1, 67, 124, .05); }
.prose ol { padding-left: 1.3em; }
.prose code { font-family: 'JetBrains Mono', monospace; font-size: .9em; background: rgba(1, 67, 124, .06); padding: .1em .35em; border-radius: 4px; }

/* Post cards (news, archives, search) */
.pss-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 24px; }
.pss-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; text-decoration: none; color: inherit; box-shadow: var(--shadow-sm); transition: transform .25s, box-shadow .25s; }
.pss-card:hover { transform: translateY(-4px); box-shadow: var(--shadow, 0 20px 40px -20px rgba(1, 67, 124, .35)); }
.pss-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.pss-card .pc-body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.pss-card .pc-meta { font-family: 'JetBrains Mono', monospace; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--orange); }
.pss-card h3 { margin: 0; font-size: 1.15rem; color: var(--navy-ink); }
.pss-card p { margin: 0; color: #4a5d70; font-size: .95rem; }
.pss-card .more { margin-top: auto; color: var(--orange); font-weight: 700; font-size: .92rem; }
.pss-pagination { display: flex; gap: 8px; justify-content: center; margin-top: 38px; flex-wrap: wrap; }
.pss-pagination .page-numbers { display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 10px; border: 1px solid var(--line); background: #fff; color: var(--navy); font-weight: 700; text-decoration: none; padding: 0 12px; }
.pss-pagination .page-numbers.current { background: var(--navy); color: #fff; border-color: var(--navy); }
.pss-empty { text-align: center; padding: 40px 0; color: #51657a; }

/* Search form used by WordPress search and the 404 page */
.pss-searchform { display: flex; gap: 10px; max-width: 560px; }
.pss-searchform input[type="search"] { flex: 1; padding: 13px 16px; border: 1.5px solid var(--line); border-radius: 12px; font: inherit; }

/* Comments (posts only) */
.pss-comments { max-width: 780px; margin-top: 46px; }
.pss-comments ol { list-style: none; padding: 0; }
.pss-comments .comment-body { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; margin-bottom: 14px; }
.pss-comments textarea, .pss-comments input[type="text"], .pss-comments input[type="email"], .pss-comments input[type="url"] { width: 100%; padding: 12px; border: 1.5px solid var(--line); border-radius: 10px; font: inherit; }

/* Reviews and contact card shortcodes */
.pss-reviews { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; }
.pss-review { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 22px; box-shadow: var(--shadow-sm); }
.pss-review .stars { color: var(--orange); letter-spacing: 2px; font-size: 1.05rem; }
.pss-review p { color: #33475b; margin: 10px 0; }
.pss-review .who { font-weight: 700; color: var(--navy-ink); font-size: .92rem; }
.pss-contact-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 24px; box-shadow: var(--shadow-sm); display: grid; gap: 10px; }
.pss-contact-card a { font-weight: 700; color: var(--navy); text-decoration: none; }

/* Maintenance screen */
.pss-maint { min-height: 100vh; display: grid; place-items: center; text-align: center; padding: 30px; }
.pss-maint img { width: 110px; height: auto; margin-bottom: 18px; }

/* Landing page template: header without menu */
.nav.nav-landing .navlinks, .nav.nav-landing .burger { display: none !important; }

/* The logo never squashes when the menu is full (seen at laptop widths on the original site) */
.nav .brand { flex: 0 0 auto; }
.nav .brand img { width: 61px; height: auto; max-width: none; }

/* Footer, reorganised (v1.1): Brand | Services | Resources | Company | Online Pricing | Contact,
   then a one-line "Steel fabricator in ..." areas strip. One heading per column, so every
   section folds open on phones. */
@media (min-width: 1061px) {
	footer .foot-grid { grid-template-columns: 1.15fr repeat(4, 1fr) 1.5fr; gap: 26px; }
}
footer .foot-col a { line-height: 1.4; }
footer .foot-col a.pss-accent { color: var(--orange-soft) !important; font-weight: 700; }
footer .foot-contact a { overflow-wrap: break-word; }
footer .foot-hours [data-open-status] { white-space: nowrap; }
footer .foot-widgets { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; padding: 6px 0 22px; }
footer .foot-widgets h4, footer .foot-widgets h2 { color: #fff; font-family: 'Manrope', sans-serif; font-size: 1rem; }
footer .foot-widgets ul { list-style: none; padding: 0; margin: 0; }
footer .foot-hours { color: #8fa8c0; margin: 0 0 14px; }
footer .foot-hours [data-open-status] { color: #cfe0f0; }
footer a.foot-cta { display: inline-flex; color: #fff; padding: 11px 20px; font-size: .9rem; margin: 0; }
footer a.foot-cta:hover { color: #fff; }
footer .foot-areas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 4px; padding: 18px 0; margin: -8px 0 22px; border-top: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.1); font-size: .86rem; }
footer .foot-areas .fa-h { color: #fff; font-weight: 700; margin-right: 8px; }
footer .foot-areas a { display: inline-block; margin: 0; padding: 3px 10px; border-radius: 999px; background: rgba(255,255,255,.06); }
footer .foot-areas a:hover { background: rgba(253,101,0,.18); }
footer .foot-areas a.pss-accent { background: rgba(253,101,0,.16); color: var(--orange-soft) !important; font-weight: 700; }
@media (max-width: 640px) {
	footer .foot-grid > div.foot-contact a.foot-cta { display: none; }
	footer .foot-grid > div.foot-contact.foot-open a.foot-cta { display: inline-flex; margin-top: 4px; }
	footer .foot-areas { margin-top: 0; }
}
