/*
Theme Name: ARHS Theme
Theme URI: https://xpower7.com/
Author: ARHS
Description: WordPress conversion of the American Royal High School static site. Pixel-identical markup and CSS, content stored in normal WordPress pages and posts, lead forms handled by Contact Form 7 (and saved under Leads). WooCommerce ready: Shop, Cart, Checkout and My account pages are created automatically when WooCommerce is active. Works with Elementor: pages built with Elementor render full width, and Elementor Pro Theme Builder can replace the header, footer, page and archive templates.
Version: 1.5.0
Requires at least: 6.3
Requires PHP: 7.4
License: Proprietary
Text Domain: arhs
*/

/* The real stylesheet is assets/css/arhs.css (enqueued by functions.php).
   Only WordPress-specific adjustments live here. */
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
.screen-reader-text { position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.arhs-fallback-title { margin-bottom: 1.5rem; }

/* Elementor compatibility: the theme's reading-width limit on paragraphs must not squeeze Elementor columns. */
.elementor p { max-width: none; }
.elementor .elementor-widget-container > :last-child { margin-bottom: 0; }

/* Contact Form 7 forms (drawn by a [contact-form-7] shortcode) styled like the site's own forms. */
.wpcf7 { margin: 0; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7 .hp-field .wpcf7-form-control-wrap { display: block; }
.wpcf7-not-valid-tip { display: block; margin-top: var(--s-1); font-size: var(--t-sm); font-weight: 700; color: var(--danger-text); }
.wpcf7 .wpcf7-not-valid { border-color: var(--danger); box-shadow: var(--ring-danger); }
.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance { display: grid; gap: var(--s-2); }
.wpcf7-list-item { display: block; margin: 0; }
.wpcf7-list-item > label { display: flex; align-items: flex-start; gap: var(--s-3); padding: var(--s-3); border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); font-size: 0.95rem; font-weight: 400; cursor: pointer; transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease); }
.wpcf7-list-item > label:hover { border-color: var(--action); }
.wpcf7-list-item > label input { flex: none; width: 1.05rem; height: 1.05rem; margin-top: 0.25em; accent-color: var(--action); }
.wpcf7-list-item > label:has(input:checked) { border-color: var(--action); background: color-mix(in srgb, var(--action) 10%, transparent); }
.wpcf7-list-item > label input[type='radio'], .wpcf7-list-item > label input[type='checkbox'] { width: 1.5rem; height: 1.5rem; margin-top: 0.1rem; }
.wpcf7 .wpcf7-submit { font-family: var(--font-body); font-size: 0.96rem; font-weight: 700; line-height: 1.2; }
.wpcf7-spinner { display: none; }
.wpcf7 form.submitting .wpcf7-spinner { display: inline-block; width: 1rem; height: 1rem; margin: 0 0 0 var(--s-3); border: 2px solid var(--rule); border-top-color: var(--action); border-radius: 50%; animation: arhs-spin 0.7s linear infinite; vertical-align: middle; }
@keyframes arhs-spin { to { transform: rotate(360deg); } }
.wpcf7 .wpcf7-response-output { margin: 0; border: 0; border-left: 3px solid var(--fg-muted); border-radius: var(--r-md); padding: var(--s-4) var(--s-5); background: var(--surface-2); font-size: 0.95rem; }
.wpcf7 .wpcf7-response-output:empty { display: none; }
.wpcf7 form.sent .wpcf7-response-output { border-left-color: var(--action); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { border-left-color: var(--danger); }
.wpcf7 form.submitting .wpcf7-response-output { display: none; }

/* CF7 puts its hidden inputs in a <fieldset>; the theme's own fieldset styling must not show it. */
.wpcf7 .hidden-fields-container { display: none; }
/* CF7 gives textareas rows="10"; keep the theme's height. */
.wpcf7 .field textarea { height: 8rem; }

/* ---- WooCommerce (uses the theme's own colour, type and spacing tokens, so dark mode follows automatically) ---- */
.arhs-shop .wrap--narrow { max-width: var(--wrap); }
.arhs-shop .prose { max-width: none; }
.woocommerce { color: var(--fg); }
.woocommerce a { color: var(--link); }
.woocommerce a:hover { color: var(--link-hover); }
.woocommerce img { max-width: 100%; height: auto; }
.woocommerce-breadcrumb { font-size: var(--t-xs); color: var(--fg-muted); margin: 0 0 var(--s-5); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 var(--s-5); padding: var(--s-4) var(--s-5); background: var(--surface); border: 1px solid var(--rule); border-left: 4px solid var(--action); border-radius: var(--r-md); color: var(--fg); }
.woocommerce-error { border-left-color: var(--danger); color: var(--danger-text); }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: var(--s-4); }

/* Buttons */
.woocommerce .button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-block-components-button:not(.is-link) {
	display: inline-flex; align-items: center; justify-content: center; padding: 0.82em 1.5em; min-height: 2.75rem; border: 2px solid var(--action); border-radius: var(--r-md);
	background: var(--action); color: var(--action-fg); font: 700 0.96rem/1.2 var(--font-body); text-decoration: none; cursor: pointer; width: auto;
}
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--action-hover); border-color: var(--action-hover); color: var(--action-fg); }
.woocommerce .button.alt, .woocommerce #place_order { background: var(--action); border-color: var(--action); }
.woocommerce #place_order { width: 100%; }
.woocommerce .button:focus-visible, .woocommerce input:focus-visible, .woocommerce select:focus-visible, .woocommerce textarea:focus-visible { outline: none; box-shadow: var(--ring-focus); }
.woocommerce .button.disabled, .woocommerce .button:disabled { opacity: .55; cursor: not-allowed; }

/* Forms */
.woocommerce form .form-row { margin: 0 0 var(--s-4); }
.woocommerce form .form-row label { display: block; margin-bottom: var(--s-1); font-weight: 700; color: var(--heading); }
.woocommerce form .form-row .required { color: var(--danger-text); text-decoration: none; }
.woocommerce input.input-text, .woocommerce textarea, .woocommerce select, .select2-container .select2-selection--single {
	width: 100%; min-height: 2.9rem; padding: 0.65em 0.85em; border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); color: var(--fg); font: inherit;
}
.woocommerce form .woocommerce-invalid input.input-text { border-color: var(--danger); box-shadow: var(--ring-danger); }
.woocommerce-checkout .col2-set, .woocommerce-account .col2-set { display: grid; gap: var(--s-6); }
@media (min-width: 800px) { .woocommerce-checkout .col2-set, .woocommerce-account .col2-set { grid-template-columns: 1fr 1fr; } }
.woocommerce form.checkout h3, .woocommerce-checkout #order_review_heading { font-family: var(--font-display); font-size: var(--t-h3); color: var(--heading); margin: var(--s-6) 0 var(--s-4); }

/* Tables: cart, order review, orders list */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); margin: 0 0 var(--s-5); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--rule); text-align: left; vertical-align: middle; }
.woocommerce table.shop_table th { color: var(--heading); }
.woocommerce table.shop_table .product-thumbnail img { width: 4rem; border-radius: var(--r-sm); }
.woocommerce table.shop_table .product-remove a { font-size: 1.4rem; text-decoration: none; color: var(--danger-text); }
.woocommerce .quantity .qty { width: 5rem; min-height: 2.75rem; text-align: center; border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); color: var(--fg); }
.woocommerce .coupon { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.woocommerce .coupon input.input-text { width: auto; flex: 1 1 10rem; }
.woocommerce .cart-collaterals .cart_totals { max-width: 28rem; margin-left: auto; }
.woocommerce .cart-collaterals h2 { font-family: var(--font-display); font-size: var(--t-h3); color: var(--heading); }
.woocommerce .wc-proceed-to-checkout .checkout-button { width: 100%; }
@media (max-width: 700px) { .woocommerce table.shop_table_responsive tr td::before { color: var(--heading); font-weight: 700; } }

/* Product grid */
.woocommerce ul.products { list-style: none; margin: 0 0 var(--s-6); padding: 0; display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.woocommerce ul.products li.product { position: relative; display: flex; flex-direction: column; gap: var(--s-2); padding: var(--s-4); background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-lg); box-shadow: var(--shadow-1); margin: 0; }
.woocommerce ul.products li.product a { text-decoration: none; }
.woocommerce ul.products li.product img { border-radius: var(--r-md); margin: 0 0 var(--s-2); width: 100%; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--font-display); font-size: var(--t-h4); color: var(--heading); margin: 0; }
.woocommerce ul.products li.product .button { margin-top: auto; }
.woocommerce .price { color: var(--heading); font-weight: 700; }
.woocommerce .price del { color: var(--fg-muted); font-weight: 400; }
.woocommerce .price ins { text-decoration: none; }
.woocommerce span.onsale { position: absolute; top: var(--s-3); left: var(--s-3); z-index: 2; padding: 0.25em 0.7em; border-radius: var(--r-sm); background: var(--gold); color: var(--white); font-size: var(--t-xs); font-weight: 700; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { margin: 0 0 var(--s-5); font-size: var(--t-sm); }
.woocommerce .woocommerce-ordering { float: right; }
.woocommerce nav.woocommerce-pagination ul { display: flex; flex-wrap: wrap; gap: var(--s-2); list-style: none; padding: 0; margin: 0 0 var(--s-6); border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination a, .woocommerce nav.woocommerce-pagination span { display: block; padding: 0.5em 0.9em; border: 1px solid var(--rule); border-radius: var(--r-md); text-decoration: none; }
.woocommerce nav.woocommerce-pagination .current { background: var(--action); border-color: var(--action); color: var(--action-fg); }

/* Single product */
.woocommerce div.product { display: grid; gap: var(--s-6); }
@media (min-width: 860px) { .woocommerce div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; } .woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; } }
.woocommerce div.product .product_title { font-family: var(--font-display); font-size: var(--t-h2); color: var(--heading); margin: 0 0 var(--s-3); }
.woocommerce div.product p.price { font-size: var(--t-lg); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; margin: var(--s-5) 0; }
.woocommerce div.product .product_meta { font-size: var(--t-sm); color: var(--fg-muted); }
.woocommerce div.product .woocommerce-product-gallery { position: relative; }
.woocommerce div.product .woocommerce-product-gallery__image img { border-radius: var(--r-lg); }
.woocommerce .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: var(--s-2); list-style: none; padding: 0; margin: 0 0 var(--s-4); border-bottom: 1px solid var(--rule); }
.woocommerce .woocommerce-tabs ul.tabs li a { display: block; padding: 0.7em 1.1em; text-decoration: none; font-weight: 700; color: var(--fg-muted); }
.woocommerce .woocommerce-tabs ul.tabs li.active a { color: var(--heading); box-shadow: inset 0 -3px 0 var(--gold); }
.woocommerce .star-rating { color: var(--gold); }

/* My account */
.woocommerce-account .woocommerce { display: grid; gap: var(--s-6); }
@media (min-width: 800px) { .woocommerce-account .woocommerce { grid-template-columns: 15rem minmax(0, 1fr); align-items: start; } }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); overflow: hidden; }
.woocommerce-MyAccount-navigation li a { display: block; padding: var(--s-3) var(--s-4); text-decoration: none; border-bottom: 1px solid var(--rule); font-weight: 700; }
.woocommerce-MyAccount-navigation li:last-child a { border-bottom: 0; }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--action); color: var(--action-fg); }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; max-width: 34rem; }

/* Header cart link (arhs_wc_cart_link) */
.arhs-cart-link { display: inline-flex; align-items: center; gap: var(--s-2); font-weight: 700; text-decoration: none; }
.arhs-cart-link__count { min-width: 1.5em; padding: 0 0.4em; border-radius: 999px; background: var(--gold); color: var(--white); font-size: var(--t-xs); text-align: center; }
