/*
Theme Name: Legal Vehicle
Theme URI: https://legalvehicle.co.za/
Author: Legal Vehicle
Author URI: https://legalvehicle.co.za/
Description: A conversion-focused custom theme for Legal Vehicle, the B-BBEE Level 1 business support and procurement partner for South African law firms. Includes a live preferential-procurement recognition calculator, a supplier-consolidation ledger animation, editable service and division panels, and a built-in enquiry system that stores leads in the WordPress admin.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: legal-vehicle
Tags: business, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, block-styles, wide-blocks
*/

/*
   The presentation layer lives in assets/css/main.css, which is enqueued by
   functions.php. This file carries the theme header WordPress requires, plus
   styles for the standard blog and page templates that sit outside the
   homepage design.
   ========================================================================== */

/* ---------- shared frame for blog, archive, single and page views ---------- */
.lv-page{
  padding:150px 0 90px;
  background:var(--asphalt);
  min-height:60vh;
}
.lv-page .wrap{width:min(100% - 44px,var(--wrap));margin-inline:auto}
.lv-page-head{max-width:760px;margin-bottom:48px}
.lv-page-head h1{
  font-family:var(--display);font-weight:400;color:#fff;
  font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.06;letter-spacing:-.018em;margin:18px 0 16px;
}
.lv-page-head .lv-meta{
  font-family:var(--mono);font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;color:var(--mist);
}

/* article body */
.lv-entry{max-width:74ch}
.lv-entry > * + *{margin-top:1.15em}
.lv-entry h2,.lv-entry h3,.lv-entry h4,.lv-entry h5,.lv-entry h6{
  font-family:var(--display);font-weight:400;color:#fff;letter-spacing:-.018em;line-height:1.14;
  margin-top:1.9em;
}
.lv-entry h2{font-size:clamp(1.6rem,3vw,2.3rem)}
.lv-entry h3{font-size:1.4rem}
.lv-entry h4{font-size:1.15rem}
.lv-entry p,.lv-entry li{color:var(--mist-2);line-height:1.72}
.lv-entry a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.lv-entry a:hover{color:var(--gold-hi)}
.lv-entry ul,.lv-entry ol{padding-left:1.3em}
.lv-entry li + li{margin-top:.5em}
.lv-entry blockquote{
  border-left:2px solid var(--gold);padding:6px 0 6px 24px;margin-left:0;
  font-family:var(--display);font-size:1.3rem;color:#fff;
}
.lv-entry img,.lv-entry figure{border-radius:var(--rad);max-width:100%;height:auto}
.lv-entry figcaption{font-size:.82rem;color:var(--mist);margin-top:10px}
.lv-entry code,.lv-entry pre{
  font-family:var(--mono);font-size:.88rem;background:var(--asphalt-2);
  border:1px solid var(--line-soft);border-radius:var(--rad);
}
.lv-entry code{padding:2px 6px}
.lv-entry pre{padding:18px 20px;overflow-x:auto}
.lv-entry pre code{border:none;background:none;padding:0}
.lv-entry table{width:100%;border-collapse:collapse;font-size:.9rem}
.lv-entry th,.lv-entry td{border:1px solid var(--line-soft);padding:11px 14px;text-align:left}
.lv-entry th{color:#fff;font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}

/* post grid */
.lv-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.lv-card{
  background:var(--asphalt-2);border:1px solid var(--line-soft);border-radius:var(--rad);
  overflow:hidden;display:flex;flex-direction:column;transition:transform .35s cubic-bezier(.2,.8,.3,1),border-color .3s;
}
.lv-card:hover{transform:translateY(-4px);border-color:var(--line)}
.lv-card .thumb{aspect-ratio:16/9;overflow:hidden;background:var(--asphalt-3)}
.lv-card .thumb img{width:100%;height:100%;object-fit:cover}
.lv-card-body{padding:26px 24px 28px;display:flex;flex-direction:column;flex:1}
.lv-card h2{font-family:var(--display);font-weight:400;color:#fff;font-size:1.32rem;line-height:1.16;margin-bottom:10px}
.lv-card h2 a:hover{color:var(--gold)}
.lv-card p{font-size:.9rem;color:var(--mist)}
.lv-card .lv-meta{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--gold);margin-bottom:14px;
}
.lv-card .lv-more{
  margin-top:auto;padding-top:18px;font-family:var(--mono);font-size:.76rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:9px;
}

/* pagination */
.lv-pagination{margin-top:52px;display:flex;gap:9px;flex-wrap:wrap}
.lv-pagination .page-numbers{
  min-width:46px;height:46px;padding:0 14px;display:inline-grid;place-items:center;
  border:1px solid var(--line-soft);border-radius:var(--rad);color:var(--mist-2);
  font-family:var(--mono);font-size:.82rem;transition:.25s;
}
.lv-pagination .page-numbers:hover,
.lv-pagination .page-numbers.current{border-color:var(--gold);color:var(--gold);background:rgba(197,149,54,.08)}

/* comments */
.lv-comments{margin-top:64px;max-width:74ch}
.lv-comments h2{font-family:var(--display);font-weight:400;color:#fff;font-size:1.6rem;margin-bottom:26px}
.lv-comments ol{list-style:none;padding:0}
.lv-comments .comment-body{
  border-bottom:1px solid var(--line-soft);padding:22px 0;color:var(--mist-2);font-size:.94rem;
}
.lv-comments .comment-author{color:#fff;font-weight:600}
.lv-comments .comment-metadata{font-family:var(--mono);font-size:.72rem;color:var(--mist);letter-spacing:.08em}
.lv-comments .children{list-style:none;padding-left:28px;border-left:1px solid var(--line-soft)}
.lv-comments input[type=text],
.lv-comments input[type=email],
.lv-comments input[type=url],
.lv-comments textarea{
  width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line-soft);
  border-radius:var(--rad);padding:13px 15px;color:#fff;font-size:.93rem;margin-top:6px;
}
.lv-comments input:focus,.lv-comments textarea:focus{outline:none;border-color:var(--gold)}
.lv-comments label{font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--mist)}
.lv-comments .form-submit input{
  background:var(--gold);color:#14161A;border:none;border-radius:var(--rad);
  padding:16px 30px;font-weight:700;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;
}
.lv-comments .form-submit input:hover{background:var(--gold-hi)}

/* 404 and search states */
.lv-empty{max-width:60ch}
.lv-empty h1{font-family:var(--display);font-weight:400;color:#fff;font-size:clamp(2.4rem,6vw,4rem);margin-bottom:18px}
.lv-empty .lv-404{
  font-family:var(--mono);font-size:clamp(4rem,14vw,9rem);font-weight:700;color:var(--gold);
  line-height:1;letter-spacing:-.04em;opacity:.28;display:block;margin-bottom:10px;
}
.lv-search-form{display:flex;gap:10px;margin-top:26px;max-width:460px}
.lv-search-form input[type=search]{
  flex:1;background:rgba(255,255,255,.04);border:1px solid var(--line-soft);
  border-radius:var(--rad);padding:14px 16px;color:#fff;font-size:.94rem;
}
.lv-search-form input[type=search]:focus{outline:none;border-color:var(--gold)}

/* accessibility helper */
.screen-reader-text{
  position:absolute !important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;
}
.skip-link:focus{
  position:fixed;top:10px;left:10px;z-index:200;background:var(--gold);color:#14161A;
  padding:12px 20px;border-radius:var(--rad);font-weight:700;clip:auto;width:auto;height:auto;
}

/* WordPress core alignment classes */
.alignleft{float:left;margin:0 1.6em 1em 0}
.alignright{float:right;margin:0 0 1em 1.6em}
.aligncenter{margin-inline:auto;display:block}
.alignwide{max-width:1100px;margin-inline:auto}
.alignfull{max-width:none;width:100%}
.wp-caption{max-width:100%}
.sticky .lv-card{border-color:var(--gold)}

@media (max-width:1080px){
  .lv-posts{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .lv-posts{grid-template-columns:1fr}
  .lv-page{padding:120px 0 70px}
}
