/*
Theme Name: HeavyLine
Theme URI: https://heavylineequipment.com/
Description: Brand child theme for HeavyLine Equipment LLC, built on Twenty Twenty-Five. Barlow and Barlow Condensed (SIL Open Font License) are bundled locally.
Author: HeavyLine Equipment LLC
Template: twentytwentyfive
Version: 1.1.0
Requires at least: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: heavyline
*/

/* ---------- Base ---------- */
:root { --hl-orange:#F26A1B; --hl-orange-deep:#B8460B; --hl-iron:#141414; --hl-graphite:#24272B; --hl-steel:#5B616A; --hl-concrete:#F3F1EC; --hl-dust:#E4E1D9; --hl-radius:4px; }
body { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
::selection { background:var(--hl-orange); color:var(--hl-iron); }
:where(.wp-site-blocks) :focus-visible { outline:3px solid var(--hl-orange); outline-offset:2px; }

/* ---------- Header ---------- */
.hl-topbar { font-size:.875rem; letter-spacing:.01em; }
.hl-topbar a { color:inherit; text-decoration:none; }
.hl-topbar a:hover { color:var(--hl-orange); }
.hl-topbar p { margin:0; }
.hl-header { border-bottom:4px solid var(--hl-orange); position:sticky; top:0; z-index:50; }
.admin-bar .hl-header { top:32px; }
@media (max-width:782px){ .admin-bar .hl-header { top:0; position:relative; } }
.hl-header .wp-block-site-logo img { width:auto; max-height:52px; }
.hl-header .wp-block-navigation { font-family:var(--wp--preset--font-family--barlow-condensed); font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:1.0625rem; }
.hl-header .wp-block-navigation a:hover, .hl-header .wp-block-navigation .current-menu-item > a { color:var(--hl-orange-deep); }
.hl-header .hl-header-call .wp-block-button__link { white-space:nowrap; }
@media (max-width:900px){ .hl-header .hl-header-call { display:none; } }

/* ---------- Buttons ---------- */
.wp-block-button__link, .hl-btn { font-family:var(--wp--preset--font-family--barlow-condensed); font-weight:700; text-transform:uppercase; letter-spacing:.05em; border-radius:var(--hl-radius); transition:background .15s ease, color .15s ease, transform .15s ease; }
.wp-block-button__link:hover { transform:translateY(-1px); }
.wp-block-button.is-style-outline > .wp-block-button__link { border:2px solid currentColor; background:transparent; }

/* ---------- Sections ---------- */
.hl-section { padding-top:clamp(3rem,6vw,5.5rem); padding-bottom:clamp(3rem,6vw,5.5rem); }
.hl-section--first { padding-top:clamp(2rem,4vw,3.5rem); }
.hl-section--tint { background:var(--hl-concrete); }
.hl-section--dark { background:var(--hl-iron); color:#E9E7E2; }
.hl-section--dark h2, .hl-section--dark h3 { color:#fff; }
.hl-section--dark a:not(.wp-block-button__link) { color:var(--hl-orange); }
.hl-section--dark .wp-block-button.is-style-outline > .wp-block-button__link { color:#fff; }
.hl-section > h2:first-child, .hl-section > .wp-block-heading:first-child { margin-top:0; }
.hl-lead { font-size:clamp(1.125rem,1.6vw,1.3rem); line-height:1.55; color:var(--hl-graphite); max-width:62ch; }
.hl-muted { color:var(--hl-steel); }
.hl-crumbs { font-size:.875rem; color:var(--hl-steel); margin-bottom:.25rem; }
.hl-crumbs a { color:inherit; }

/* Section label with the orange "line" — the brand device */
.hl-section h2.wp-block-heading { position:relative; padding-top:.9rem; }
.hl-section h2.wp-block-heading::before { content:""; position:absolute; top:0; left:0; width:56px; height:5px; background:var(--hl-orange); }
.hl-hero h1::before, .hl-card-h::before { display:none; }

/* ---------- Hero ---------- */
.hl-hero { position:relative; overflow:hidden; background:
  linear-gradient(100deg, rgba(20,20,20,.97) 0%, rgba(20,20,20,.88) 48%, rgba(20,20,20,.55) 100%),
  var(--hl-hero-img, none) center/cover no-repeat, var(--hl-iron);
  color:#EDEBE6; padding-top:clamp(4rem,9vw,8rem); padding-bottom:clamp(4rem,9vw,8rem); }
.hl-hero::after { content:""; position:absolute; left:0; right:0; bottom:0; height:10px;
  background:repeating-linear-gradient(-45deg, var(--hl-orange) 0 18px, var(--hl-iron) 18px 36px); opacity:.9; }
.hl-hero > * { position:relative; z-index:1; }
.hl-hero::before { content:""; position:absolute; right:-4%; top:50%; width:min(46vw,620px); aspect-ratio:1; transform:translateY(-50%);
  background:url(assets/logo/heavyline-icon-outline.svg) center/contain no-repeat; opacity:.09; pointer-events:none; }
@media (max-width:900px){ .hl-hero::before { display:none; } }
.hl-eyebrow { font-family:var(--wp--preset--font-family--barlow-condensed); font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:var(--hl-orange); font-size:1rem; margin-bottom:.5rem; }
.hl-hero__title { color:#fff; max-width:16ch; margin-top:0; }
.hl-hero__lead { font-size:clamp(1.1rem,1.7vw,1.35rem); max-width:56ch; color:#D6D3CC; }
.hl-hero .wp-block-button.is-style-outline > .wp-block-button__link { color:#fff; }
ul.hl-proof { list-style:none; padding:0; margin-top:2rem; display:flex; flex-wrap:wrap; gap:.5rem 1.75rem; font-size:.95rem; color:#BDB9B0; }
ul.hl-proof li { padding-left:1.4rem; position:relative; }
ul.hl-proof li::before { content:""; position:absolute; left:0; top:.55em; width:.75rem; height:3px; background:var(--hl-orange); }

/* ---------- Pillars / guides / FAQ ---------- */
.hl-pillars .wp-block-column { border-top:3px solid var(--hl-iron); padding-top:1rem; }
.hl-pillars h3 { font-size:1.375rem; margin-top:0; }
ul.hl-checks { padding-left:0; list-style:none; display:grid; gap:.9rem; }
ul.hl-checks li { margin:0; padding:1rem 1.1rem 1rem 1.25rem; background:var(--hl-concrete); border-left:4px solid var(--hl-orange); border-radius:0 var(--hl-radius) var(--hl-radius) 0; }
.hl-guide > p { max-width:72ch; }
.hl-faq-list details.hl-faq { border-bottom:1px solid var(--hl-dust); padding:1.1rem 0; }
.hl-faq-list details.hl-faq summary { font-family:var(--wp--preset--font-family--barlow-condensed); font-weight:700; font-size:1.3rem; cursor:pointer; list-style:none; position:relative; padding-right:2rem; }
.hl-faq-list details.hl-faq summary::-webkit-details-marker { display:none; }
.hl-faq-list details.hl-faq summary::after { content:"+"; position:absolute; right:0; top:-.1rem; font-size:1.6rem; color:var(--hl-orange-deep); }
.hl-faq-list details.hl-faq[open] summary::after { content:"–"; }
.hl-faq-list details.hl-faq p { margin:.75rem 0 0; max-width:70ch; color:var(--hl-graphite); }

/* ---------- CTA band ---------- */
.hl-cta-band { background:var(--hl-orange); color:var(--hl-iron); }
.hl-cta-band h2.wp-block-heading::before { background:var(--hl-iron); }
.hl-cta-band a:not(.wp-block-button__link) { color:var(--hl-iron); font-weight:600; }
.hl-cta-band .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background:var(--hl-iron); color:#fff; }
.hl-cta-band .wp-block-button.is-style-outline > .wp-block-button__link { color:var(--hl-iron); }
.hl-contact-line { font-size:1.1rem; line-height:1.7; }

/* ---------- Contact ---------- */
.hl-panel { background:var(--hl-iron); color:#E9E7E2; padding:2rem; border-radius:var(--hl-radius); border-top:5px solid var(--hl-orange); }
.hl-panel h2, .hl-panel strong { color:#fff; }
.hl-panel a:not(.wp-block-button__link) { color:var(--hl-orange); }
.hl-panel .hl-muted { color:#B5B1A8; }
.hl-panel .hl-card-h { padding-top:0; margin:0; }
.hl-map iframe { width:100%; height:380px; border:0; border-radius:var(--hl-radius); filter:grayscale(.35); }

/* ---------- Footer ---------- */
.hl-footer { border-top:6px solid var(--hl-orange); font-size:.95rem; }
.hl-footer a { color:#D6D3CC; text-decoration:none; }
.hl-footer a:hover { color:var(--hl-orange); }
.hl-footer h2 { font-size:1.05rem; letter-spacing:.08em; color:#fff; margin-bottom:.75rem; }
.hl-footer ul { list-style:none; padding:0; margin:0; display:grid; gap:.4rem; }
.hl-footer .hl-legal { border-top:1px solid #2E3135; padding-top:1.25rem; color:#8E9297; font-size:.85rem; }

/* ---------- Single listing template ---------- */
.hl-single-title { margin-bottom:.25rem; }
.hl-single-media img { border-radius:var(--hl-radius); width:100%; height:auto; }

/* Keep reading lines comfortable inside wide sections, aligned to the content's left edge */
.is-layout-constrained > .hl-hero__title,
.is-layout-constrained > .hl-hero__lead,
.is-layout-constrained > .hl-lead,
.hl-section.is-layout-constrained > p:not(.hl-eyebrow):not(.hl-crumbs):not(.hl-contact-line),
.hl-faq-list.is-layout-constrained > details,
.hl-guide.is-layout-constrained > ul {
  max-width:780px;
  margin-left:calc((100% - min(100%, var(--wp--style--global--content-size))) / 2) !important;
  margin-right:auto !important;
}
.is-layout-constrained > .hl-hero__title { max-width:20ch; }
.is-layout-constrained > .hl-hero__lead { max-width:58ch; }

/* Sections butt together; no stray gaps between coloured bands or above the footer */
.wp-site-blocks > main, .wp-site-blocks > footer, .wp-site-blocks > header + * { margin-block-start:0 !important; }
.wp-block-post-content > .hl-section, .wp-block-post-content > .hl-hero { margin-block-start:0 !important; margin-block-end:0 !important; }

@media (max-width:700px){ .hl-topbar p:first-child { display:none; } }
