/*
Theme Name: CTXO Field Manual
Theme URI: https://centraltexasoutfitters.com
Author: Central Texas Outfitters
Description: Custom theme for Central Texas Outfitters (FFL dealer). Appointment-first, spec-sheet "Field Manual" aesthetic. Replaces Astra.
Version: 1.4.2
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: ctxo-field-manual
*/

:root{
  --paper:#f2f1ec; --ink:#141414; --red:#e01e26; --red-hover:#ff3b42;
  --muted-ink:#3c3a35; --mono-gray:#6a675f; --mono-gray-2:#8a877e;
  --hairline:#cbc8c0; --panel-alt:#e9e6df; --footer-text:#9a978f;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--paper);color:var(--ink);font-family:'Barlow',sans-serif;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--red);text-decoration:none;transition:color .15s;}
a:hover{color:var(--red-hover);}
.ctxo-wrap{max-width:1440px;margin:0 auto;}

/* buttons */
.btn{display:inline-block;font-family:'Barlow',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.12em;transition:background .15s,color .15s;}
.btn-solid{background:var(--red);color:#fff;}
.btn-solid:hover{background:var(--red-hover);color:#fff;}
.btn-dark{background:var(--ink);color:#fff;}
.btn-dark:hover{color:#fff;background:#000;}
.btn-outline{border:2px solid var(--ink);color:var(--ink);}
.btn-outline:hover{background:var(--ink);color:#fff;}

/* header */
.ctxo-header{display:flex;align-items:center;justify-content:space-between;gap:48px;padding:20px 44px;border-bottom:2px solid var(--ink);}
.ctxo-header .logo{height:32px;width:auto;flex:none;}
.ctxo-nav{display:flex;gap:30px;font-weight:600;font-size:12px;letter-spacing:.14em;color:var(--ink);text-transform:uppercase;list-style:none;}
.ctxo-nav a{color:var(--ink);}
.ctxo-nav a:hover{color:var(--red);}
.ctxo-header .book{background:var(--red);color:#fff;font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:13px 24px;}

/* meta bar */
.meta-bar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:11px 44px;border-bottom:1px solid var(--hairline);font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.1em;color:var(--mono-gray);text-transform:uppercase;}

/* §00 locator */
.locator{display:grid;grid-template-columns:auto 1fr 1fr;border-bottom:2px solid var(--ink);}
.locator .lead{background:var(--ink);color:var(--paper);padding:22px 30px;display:flex;flex-direction:column;justify-content:center;}
.locator .lead .kick{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.14em;color:var(--red);}
.locator .lead h2{font-family:'Oswald',sans-serif;font-weight:600;font-size:24px;text-transform:uppercase;line-height:1;margin-top:6px;}
.locator .loc{padding:22px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.locator .loc.divide{border-right:1px solid var(--hairline);}
.locator .loc .name{font-family:'Oswald',sans-serif;font-weight:700;font-size:26px;text-transform:uppercase;line-height:1;}
.locator .loc .sub{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.1em;color:var(--mono-gray-2);margin-top:7px;}
.locator .loc .btn{font-size:11px;padding:11px 18px;flex:none;}

/* kicker */
.kicker{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.16em;color:var(--red);}

/* §01 hero */
.hero{display:grid;grid-template-columns:1.15fr 1fr;border-bottom:2px solid var(--ink);}
.hero .copy{padding:72px 56px;border-right:2px solid var(--ink);}
.hero h1{font-family:'Oswald',sans-serif;font-weight:700;font-size:66px;line-height:.95;letter-spacing:-.01em;text-transform:uppercase;margin:26px 0 0;}
.hero h1 .red{color:var(--red);}
.hero p{font-size:18px;line-height:1.65;color:var(--muted-ink);max-width:500px;margin:26px 0 32px;}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px;}
.hero .ctas .btn{font-size:14px;padding:17px 32px;}
.hero .ctas .btn-outline{padding:15px 30px;}
.hero .stats{display:flex;border-top:1px solid var(--hairline);}
.hero .stats .stat{flex:1;padding:18px 0;}
.hero .stats .stat.divide{border-right:1px solid var(--hairline);}
.hero .stats .lbl{font-family:'Space Mono',monospace;font-size:11px;color:var(--mono-gray-2);letter-spacing:.1em;}
.hero .stats .val{font-family:'Oswald',sans-serif;font-weight:600;font-size:22px;}
.hero .art{position:relative;min-height:560px;background-size:cover;background-position:center;}
.hero .art .fig{position:absolute;top:16px;left:16px;background:var(--red);color:#fff;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.1em;padding:5px 9px;}

/* generic sections */
.section{padding:64px 56px;border-bottom:2px solid var(--ink);}
.section > .kicker{display:block;margin-bottom:22px;}

/* §02 transfer table */
.spec{border:2px solid var(--ink);}
.spec .row{display:grid;grid-template-columns:2fr 1fr 3fr;}
.spec .head{background:var(--ink);color:var(--paper);font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;}
.spec .head div{padding:12px 20px;}
.spec .body{border-bottom:1px solid var(--hairline);}
.spec .svc{padding:20px;font-family:'Oswald',sans-serif;font-weight:600;font-size:22px;text-transform:uppercase;}
.spec .fee{padding:20px;font-family:'Oswald',sans-serif;font-weight:700;font-size:22px;color:var(--red);}
.spec .note{padding:20px;font-size:15px;color:var(--muted-ink);}
.spec .row.free{grid-template-columns:2fr 4fr;background:var(--panel-alt);}

/* §03 process */
.process{display:grid;grid-template-columns:1fr 1fr 1fr;}
.process .step{padding:0 34px;}
.process .step:not(:last-child){border-right:1px solid var(--hairline);}
.process .step:first-child{padding-left:0;}
.process .step:last-child{padding-right:0;}
.process .step .n{font-family:'Space Mono',monospace;font-size:12px;color:var(--mono-gray-2);}
.process .step h3{font-family:'Oswald',sans-serif;font-weight:600;font-size:26px;text-transform:uppercase;margin:8px 0 12px;}
.process .step p{font-size:15px;line-height:1.6;color:var(--muted-ink);}

/* §04 inventory */
.inventory{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--ink);border-left:1px solid var(--ink);}
.inventory a{border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:26px 24px;display:flex;justify-content:space-between;align-items:baseline;color:var(--ink);}
.inventory a:hover{background:var(--ink);color:var(--paper);}
.inventory .cat{font-family:'Oswald',sans-serif;font-weight:600;font-size:26px;text-transform:uppercase;}
.inventory .idx{font-family:'Space Mono',monospace;font-size:12px;color:var(--red);}

/* §05 appointment band */
.appt-band{background:var(--red);color:#fff;padding:72px 56px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:30px;border-bottom:2px solid var(--ink);}
.appt-band .kick{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.16em;opacity:.85;margin-bottom:12px;}
.appt-band h2{font-family:'Oswald',sans-serif;font-weight:700;font-size:52px;text-transform:uppercase;line-height:.98;}
.appt-band .btn{font-size:15px;padding:20px 42px;}

/* §06 locations */
.locations{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--ink);}
.locations .loc{padding:40px;}
.locations .loc:first-child{border-right:2px solid var(--ink);}
.locations h3{font-family:'Oswald',sans-serif;font-weight:700;font-size:30px;text-transform:uppercase;}
.locations .meta{font-family:'Space Mono',monospace;font-size:13px;color:var(--mono-gray);line-height:2;margin-top:14px;}
.locations .btns{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap;}
.locations .btns .btn{font-size:12px;padding:13px 22px;}
.locations .btns .btn-outline{padding:11px 20px;}

.contact-note{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.1em;color:var(--mono-gray);margin-top:18px;}
.contact-note a{color:var(--red);}

/* footer */
.ctxo-footer{background:var(--ink);color:var(--paper);padding:48px 56px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;}
.ctxo-footer img{height:28px;}
.ctxo-footer .fine{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--footer-text);}

/* ── inner pages ─────────────────────────────────────────────── */
.page-band{padding:56px 56px 40px;border-bottom:2px solid var(--ink);}
.page-band .kicker{display:block;margin-bottom:16px;}
.page-band h1{font-family:'Oswald',sans-serif;font-weight:700;font-size:52px;line-height:.98;letter-spacing:-.01em;text-transform:uppercase;}
.page-band .band-note{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--mono-gray);margin-top:14px;text-transform:uppercase;}

.entry-title{font-family:'Oswald',sans-serif;font-weight:700;font-size:44px;text-transform:uppercase;margin-bottom:24px;}
.entry-content{font-size:17px;line-height:1.7;color:var(--muted-ink);max-width:820px;}
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;color:var(--ink);line-height:1.05;margin:1.6em 0 .5em;}
.entry-content h2{font-size:30px;}
.entry-content h3{font-size:24px;}
.entry-content h4{font-size:19px;}
.entry-content p,.entry-content ul,.entry-content ol{margin-bottom:1.1em;}
.entry-content ul,.entry-content ol{padding-left:1.3em;}
.entry-content a{text-decoration:underline;text-underline-offset:3px;}
.entry-content a.btn{text-decoration:none;padding:14px 28px;font-size:13px;}
.entry-content a.btn-solid{color:#fff;}
.entry-content a.btn-solid:hover{color:#fff;}
.entry-content table{border-collapse:collapse;width:100%;border:2px solid var(--ink);}
.entry-content th{background:var(--ink);color:var(--paper);font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-align:left;padding:12px 16px;}
.entry-content td{padding:14px 16px;border-bottom:1px solid var(--hairline);font-size:15px;}
.entry-content blockquote{border-left:4px solid var(--red);padding:4px 0 4px 20px;margin:1.4em 0;font-style:normal;color:var(--ink);}
.entry-content img{border:2px solid var(--ink);}

/* ── WooCommerce ─────────────────────────────────────────────── */
/* Square corners, ink borders, Oswald headings, red accents. No cart in
   the header by design — the catalog exists to be browsed, not hard-sold. */
.woo-section .woocommerce-result-count{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mono-gray-2);margin-bottom:24px;}
.woocommerce ul.products{margin:0;padding:0;}
.woocommerce ul.products li.product{background:#fff;border:1px solid var(--ink);text-align:left;padding:0;overflow:hidden;}
.woocommerce ul.products li.product a img{margin:0;border-bottom:1px solid var(--hairline);}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-category__title{font-family:'Oswald',sans-serif;font-weight:600;font-size:19px;text-transform:uppercase;color:var(--ink);padding:16px 18px 4px;}
.woocommerce ul.products li.product .price{font-family:'Oswald',sans-serif;font-weight:700;font-size:18px;color:var(--red);padding:0 18px 16px;}
.woocommerce ul.products li.product .price del{color:var(--mono-gray-2);font-weight:400;opacity:1;}
.woocommerce ul.products li.product .price ins{text-decoration:none;}
.woocommerce ul.products li.product .button{margin:0 18px 18px;}
.woocommerce span.onsale{background:var(--red);color:#fff;border-radius:0;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;min-height:0;min-width:0;line-height:1;padding:6px 10px;}
.woocommerce div.product .product_title{font-family:'Oswald',sans-serif;font-weight:700;font-size:40px;text-transform:uppercase;line-height:1;}
.woocommerce div.product p.price,.woocommerce div.product span.price{font-family:'Oswald',sans-serif;font-weight:700;font-size:26px;color:var(--red);}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 -2px;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:transparent;border:2px solid var(--ink);border-radius:0;margin:0 8px 0 0;}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--ink);}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--paper);}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{border-bottom:2px solid var(--ink);}
.woocommerce div.product .woocommerce-tabs{clear:both;width:100%;}
.woocommerce div.product .woocommerce-tabs .panel{border:2px solid var(--ink);border-top:none;padding:28px;margin:0;max-width:none;}
.woocommerce div.product .woocommerce-tabs .panel p{max-width:75ch;}
/* fills the sparse right column on single products */
.ctxo-pickup-note{border-top:1px solid var(--hairline);margin-top:24px;padding-top:16px;font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.1em;color:var(--mono-gray);text-transform:uppercase;line-height:2;}
.woocommerce div.product div.images img{border:2px solid var(--ink);}

/* buttons — every Woo button becomes a Field Manual button */
.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit.alt,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt,
.woocommerce button.button.alt.disabled,.woocommerce #payment #place_order{
  background:var(--red);color:#fff;border:none;border-radius:0;
  font-family:'Barlow',sans-serif;font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  padding:13px 24px;transition:background .15s;
}
.woocommerce #respond input#submit:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce #respond input#submit.alt:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover,
.woocommerce #payment #place_order:hover{background:var(--red-hover);color:#fff;}

/* forms, notices, tables */
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,
.woocommerce .quantity .qty{border:2px solid var(--ink);border-radius:0;background:#fff;padding:10px 12px;font-family:'Barlow',sans-serif;font-size:15px;}
.woocommerce-message,.woocommerce-info,.woocommerce-error{border-top:none;border:2px solid var(--ink);background:var(--panel-alt);color:var(--ink);border-radius:0;font-size:15px;}
.woocommerce-message::before{color:var(--red);}
.woocommerce-info::before{color:var(--mono-gray);}
.woocommerce table.shop_table{border:2px solid var(--ink);border-radius:0;border-collapse:collapse;}
.woocommerce table.shop_table th{background:var(--ink);color:var(--paper);font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;}
.woocommerce table.shop_table td{border-top:1px solid var(--hairline);}
.woocommerce nav.woocommerce-pagination ul{border:2px solid var(--ink);border-radius:0;}
.woocommerce nav.woocommerce-pagination ul li{border-right:1px solid var(--ink);}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{font-family:'Space Mono',monospace;color:var(--ink);}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--ink);color:var(--paper);}
.woocommerce .woocommerce-breadcrumb{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mono-gray-2);}
.woocommerce .star-rating span::before,.woocommerce p.stars a{color:var(--red);}

/* ── WPForms → field-manual style ────────────────────────────── */
.wpforms-container{margin-top:8px;max-width:680px;}
.wpforms-container .wpforms-field-label{font-family:'Oswald',sans-serif!important;font-weight:600!important;font-size:17px!important;text-transform:uppercase;color:var(--ink)!important;}
.wpforms-container .wpforms-field-label .wpforms-required-label{color:var(--red);}
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],
.wpforms-container select,.wpforms-container textarea{border:2px solid var(--ink)!important;border-radius:0!important;background:#fff!important;padding:11px 14px!important;font-family:'Barlow',sans-serif!important;font-size:16px!important;width:100%;height:auto!important;}
.wpforms-container .wpforms-field-sublabel{font-family:'Space Mono',monospace!important;font-size:11px!important;letter-spacing:.08em;text-transform:uppercase;color:var(--mono-gray-2)!important;}
.wpforms-container button[type=submit]{background:var(--red)!important;color:#fff!important;border:none!important;border-radius:0!important;font-family:'Barlow',sans-serif!important;font-weight:700!important;font-size:14px!important;letter-spacing:.12em!important;text-transform:uppercase!important;padding:16px 36px!important;transition:background .15s!important;}
.wpforms-container button[type=submit]:hover{background:var(--red-hover)!important;}
.wpforms-container label.wpforms-error{color:var(--red)!important;font-family:'Space Mono',monospace!important;font-size:12px!important;}
.wpforms-confirmation-container-full{background:var(--panel-alt)!important;border:2px solid var(--ink)!important;border-radius:0!important;color:var(--ink)!important;font-family:'Barlow',sans-serif!important;font-size:17px;}

/* ── theme-native 18+ age gate ───────────────────────────────── */
.ctxo-age-gate{position:fixed;inset:0;background:rgba(20,20,20,.72);display:flex;align-items:center;justify-content:center;z-index:99999;padding:20px;}
.ctxo-age-gate[hidden]{display:none;}
.ctxo-age-gate .box{background:var(--paper);border:2px solid var(--ink);max-width:430px;width:100%;padding:42px 36px;text-align:center;}
.ctxo-age-gate img{height:40px;width:auto;margin:0 auto 18px;}
.ctxo-age-gate h2{font-family:'Oswald',sans-serif;font-weight:700;font-size:26px;text-transform:uppercase;line-height:1;}
.ctxo-age-gate p{font-size:15px;color:var(--muted-ink);margin-top:10px;line-height:1.5;}
.ctxo-age-gate .q{font-weight:700;color:var(--ink);}
.ctxo-age-gate .btns{display:flex;gap:12px;justify-content:center;margin-top:24px;}
.ctxo-age-gate .btns .btn{font-size:13px;padding:13px 30px;cursor:pointer;}

/* ── Elementor age-gate popup → field-manual style ───────────── */
.elementor-popup-modal .dialog-widget-content{border-radius:0!important;box-shadow:none!important;border:2px solid var(--ink)!important;background:var(--paper)!important;}
.elementor-popup-modal h1,.elementor-popup-modal h2,.elementor-popup-modal h3{font-family:'Oswald',sans-serif!important;font-weight:700!important;text-transform:uppercase!important;color:var(--ink)!important;}
.elementor-popup-modal p{font-family:'Barlow',sans-serif!important;color:var(--muted-ink)!important;}
.elementor-popup-modal .elementor-button{border-radius:0!important;font-family:'Barlow',sans-serif!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.12em!important;font-size:13px!important;padding:14px 32px!important;background:var(--red)!important;color:#fff!important;transition:background .15s!important;}
.elementor-popup-modal .elementor-button:hover{background:var(--red-hover)!important;}
/* the "No" button (links to /terms/) gets the outline treatment */
.elementor-popup-modal a.elementor-button[href*="/terms"]{background:transparent!important;border:2px solid var(--ink)!important;color:var(--ink)!important;}
.elementor-popup-modal a.elementor-button[href*="/terms"]:hover{background:var(--ink)!important;color:#fff!important;}
.elementor-popup-modal .dialog-close-button svg{fill:var(--ink)!important;}

/* responsive */
@media(max-width:1024px){
  .locator{grid-template-columns:1fr;}
  .locator .loc.divide{border-right:none;border-bottom:1px solid var(--hairline);}
  .hero{grid-template-columns:1fr;}
  .hero .copy{border-right:none;border-bottom:2px solid var(--ink);}
  .hero h1{font-size:54px;}
}
@media(max-width:768px){
  .ctxo-header{flex-wrap:wrap;gap:16px;padding:16px 20px;}
  .ctxo-nav{order:3;width:100%;gap:16px;flex-wrap:wrap;}
  .meta-bar{padding:11px 20px;font-size:10px;}
  /* phones get just the license line — the doc code and cities crowd the fold */
  .meta-bar span:first-child,.meta-bar span:last-child{display:none;}
  .section,.appt-band{padding:44px 20px;}
  .hero .copy{padding:44px 20px;}
  .hero h1{font-size:42px;}
  .spec .row,.spec .row.free{grid-template-columns:1fr;}
  .process,.inventory,.locations{grid-template-columns:1fr;}
  .process .step{padding:0 0 24px;border-right:none!important;border-bottom:1px solid var(--hairline);}
  .locations .loc:first-child{border-right:none;border-bottom:2px solid var(--ink);}
  .appt-band h2{font-size:38px;}
  .page-band{padding:40px 20px 32px;}
  .page-band h1{font-size:36px;}
  .entry-title{font-size:32px;}
}
