/* GothamThreads on standard Astra: base layer.
   Astra stays untouched. This file only sets GothamThreads' own containers and the few Astra defaults that
   would otherwise add gutters or spacing around them. Palette and typography reach Astra through its
   Customizer options (wp gt astra setup); design tokens through the wp_theme_json_data_theme filter. */

body.gt-site { background: #fff; color: var(--wp--preset--color--charcoal, #1b1816); font-family: var(--wp--preset--font-family--system, system-ui, sans-serif); line-height: 1.6; }

/* Containers: GothamThreads draws its own bands; Astra's content shell must not add gutters or margins. */
body.gt-site #content > .ast-container { display: block; width: 100%; max-width: none; margin: 0; padding: 0; }
html body.gt-site #primary.content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
body.gt-site .site-main, body.gt-site .ast-article-single, body.gt-site .entry-content { max-width: none; margin: 0; padding: 0; }
body.gt-site .ast-article-single { padding: 0; margin: 0; background: transparent; box-shadow: none; }
body.gt-site .entry-content > * { max-width: none; }
body.gt-site .entry-content::after { display: none; }

/* Astra's own (empty) builder rows render nothing: the editable header and footer patterns replace them. */
body.gt-site #masthead:not(:has(.ast-builder-grid-row)), body.gt-site .site-footer:not(:has(.ast-builder-grid-row)) { display: none; }

/* Header and footer patterns are full-width landmarks. */
.gt-chrome { margin: 0; padding: 0; }

/* Page title (Astra's H1) and breadcrumbs sit in the same container as every other band. */
body.gt-site .entry-header { max-width: calc(var(--gt-container, 1440px) + 2 * var(--gt-gutter, 1.5rem)); margin: 0 auto; padding: 0 var(--gt-gutter, 1.5rem); }
body.gt-site .entry-header .entry-title { margin: 0.5rem 0 1.25rem; font-size: var(--wp--preset--font-size--xx-large, 2.4rem); line-height: 1.15; }
.gt-crumbs { padding-block: 1.5rem 0; }
.gt-crumbs > * { margin: 0; }
body.gt-site.page:not(.home) .gt-flow { padding-top: 0; }
body.gt-site .gt-container.gt-main--shop { padding-block: clamp(1rem, 0.7rem + 1.4vw, 2rem) clamp(2rem, 1.5rem + 2vw, 3.5rem); }

/* Headings and text: theme.json styles do not apply on a classic theme, so they are stated here (low specificity). */
:where(body.gt-site) :where(h1, h2, h3, h4, h5, h6) { font-weight: 700; line-height: 1.15; }
:where(body.gt-site) :where(h1) { font-size: var(--wp--preset--font-size--xx-large, 2.4rem); }
:where(body.gt-site) :where(h2) { font-size: var(--wp--preset--font-size--x-large, 1.75rem); }
:where(body.gt-site) :where(h3) { font-size: var(--wp--preset--font-size--large, 1.25rem); }
:where(body.gt-site) :where(h4) { font-size: var(--wp--preset--font-size--medium, 1.125rem); }
:where(body.gt-site) :where(p, li) { line-height: 1.7; }

/* Buttons: the block-theme button treatment. */
body.gt-site .wp-block-button__link, body.gt-site .wp-element-button {
	background: var(--wp--preset--color--gold, #b08d57); color: var(--wp--preset--color--ink, #100d0b);
	font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em;
	border-radius: var(--wp--custom--radius, 10px); padding: 0.62rem 1.2rem; text-decoration: none; border: 0;
}
body.gt-site .wp-block-button__link:hover, body.gt-site .wp-element-button:hover { background: var(--wp--preset--color--gold-light, #d1b07a); color: var(--wp--preset--color--ink, #100d0b); }
body.gt-site .is-style-outline > .wp-block-button__link { background: transparent; border: 2px solid currentColor; }

/* Astra underlines every link inside .entry-content with a higher-specificity rule than the component classes.
   Components that are not running text keep their own link treatment. */
body.gt-site .entry-content :is(.gt-card, .gt-card__title, .gt-chip-list, .gt-more-link, .gt-tree, .gt-product-grid .wp-block-post-title, .wp-block-query-pagination, .wp-block-button, .wp-element-button, .gt-jump, .gt-breadcrumbs) a,
body.gt-site .entry-content a:is(.wp-block-button__link, .wp-element-button) { text-decoration: none; }

/* Header controls: Astra's generic button styles must not turn the search and cart controls into gold blocks. */
body.gt-site .gt-header .wp-block-search__button,
body.gt-site .gt-header .wc-block-mini-cart__button,
body.gt-site .gt-header .wp-block-woocommerce-customer-account a { background: transparent; color: var(--wp--preset--color--ivory, #faf6ee); padding: 0; border: 0; box-shadow: none; }
body.gt-site .gt-header .wp-block-search__button { min-width: 44px; min-height: 44px; }
body.gt-site .gt-header .wc-block-mini-cart__button { min-width: 44px; min-height: 44px; }
body.gt-site .gt-header .wp-block-search__input { background: transparent; color: var(--wp--preset--color--ivory, #faf6ee); border: 0; box-shadow: none; }
body.gt-site .gt-header .wp-block-search__inside-wrapper { background: rgba(250, 246, 238, 0.06); }

/* Astra pads every top-level group, cover and columns block in page content through these documented
   custom properties. GothamThreads sections draw their own spacing. */
html body.gt-site {
	--wp--custom--ast-default-block-top-padding: 0;
	--wp--custom--ast-default-block-right-padding: 0;
	--wp--custom--ast-default-block-bottom-padding: 0;
	--wp--custom--ast-default-block-left-padding: 0;
}
/* Category Page rhythm: intro, products, supporting copy. */
.gt-category-content > * + * { margin-block-start: 2rem; }
.gt-category-content > .gt-term-intro { margin-block-end: 1.5rem; font-size: var(--wp--preset--font-size--medium, 1.125rem); }

/* Astra's search-button rule is very specific; the header search keeps its transparent icon button. */
body.gt-site .gt-header form.wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button,
body.gt-site .gt-header form.wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:hover {
	background: transparent; color: var(--wp--preset--color--ivory, #faf6ee); border: 0; padding: 0; box-shadow: none;
}
body.gt-site .gt-header form.wp-block-search .wp-block-search__inside-wrapper .wp-block-search__input { background: transparent; border: 0; padding: 0; box-shadow: none; }

/* WooCommerce screens that Astra renders with WooCommerce's own templates (shop, product, tag): the same container
   and gutters as every other band, and the storefront's 4/3/2-column square-image product cards. */
body.gt-site.woocommerce:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.tax-product_cat) #primary.content-area,
body.gt-site.post-type-archive-product #primary.content-area {
	max-width: calc(var(--gt-container, 1440px) + 2 * var(--gt-gutter, 1.5rem));
	margin-inline: auto; padding: 1.5rem var(--gt-gutter, 1.5rem) 3.5rem;
}
body.gt-site.woocommerce ul.products[class*="columns-"] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.75rem 1.5rem; margin: 0; padding: 0; }
body.gt-site.woocommerce ul.products[class*="columns-"]::before, body.gt-site.woocommerce ul.products[class*="columns-"]::after { display: none; }
body.gt-site.woocommerce ul.products[class*="columns-"] li.product { width: auto; margin: 0; float: none; }
body.gt-site.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img, body.gt-site.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: var(--wp--preset--color--cream, #f6efe4); }
@media (max-width: 1099px) { body.gt-site.woocommerce ul.products[class*="columns-"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { body.gt-site.woocommerce ul.products[class*="columns-"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1rem; } }
body.gt-site.woocommerce div.product .woocommerce-tabs, body.gt-site .gt-fit-info--details { clear: both; }

/* Form controls that carry their own design must beat Astra's generic input/button rules on every screen. */
body.gt-site .gt-signup .gt-signup__field { background: rgba(16, 13, 11, 0.55); color: var(--wp--preset--color--ivory, #faf6ee); border: 1px solid rgba(250, 246, 238, 0.35); border-radius: 999px; padding: 0 1rem; box-shadow: none; }
body.gt-site .gt-signup .gt-signup__submit { background: var(--wp--preset--color--gold, #b08d57); color: var(--wp--preset--color--ink, #100d0b); border: 0; border-radius: 999px; padding: 0 1.3rem; }
body.gt-site form.wp-block-search.gt-search-light .wp-block-search__inside-wrapper .wp-block-search__button { background: transparent; color: var(--wp--preset--color--charcoal, #1b1816); border: 0; padding: 0; min-width: 44px; min-height: 44px; }
body.gt-site form.wp-block-search.gt-search-light .wp-block-search__inside-wrapper .wp-block-search__input { background: transparent; border: 0; padding: 0; box-shadow: none; }

/* Product Collection cards align to the grid edge (Astra's list-item padding is removed). */
body.gt-site .gt-product-grid .wc-block-product-template > li { padding: 0; }
body.gt-site .gt-product-grid .wc-block-product-template { padding: 0; margin: 0; }

/* Astra pulls full-width blocks out by its own container padding. GothamThreads bands are already full width
   inside .gt-flow, so they must not be offset (the hero H1 started 4px outside the viewport at 390px). */
body.gt-site .entry-content .gt-flow > :is(.alignfull, .gt-band, .gt-hero) { margin-inline: 0; max-width: none; width: 100%; }

/* Outline buttons: dark text on light surfaces, light text on dark surfaces (WCAG AA), whatever Astra sets. */
html body.gt-site .wp-block-button.is-style-outline.is-style-outline.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--charcoal, #1b1816); border: 2px solid var(--wp--preset--color--bronze, #8c6239); background: transparent; }
html body.gt-site .wp-block-button.is-style-outline.is-style-outline.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--charcoal, #1b1816); color: var(--wp--preset--color--ivory, #faf6ee); }
html body.gt-site :is(.gt-hero, .gt-band--dark) .wp-block-button.is-style-outline.is-style-outline.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--ivory, #faf6ee); border-color: var(--wp--preset--color--ivory, #faf6ee); }
html body.gt-site :is(.gt-hero, .gt-band--dark) .wp-block-button.is-style-outline.is-style-outline.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--ivory, #faf6ee); color: var(--wp--preset--color--ink, #100d0b); }
