/*
Theme Name: CraftFrame
Theme URI: #
Author: Syed Adnan Haider
Author URI: #
Description: Premium inspired WooCommerce theme for handcrafted picture frames, embroidery, and cross-stitch products.
Version: 1.0.1
Requires at least: 6.8
Tested up to: 7.0
Requires PHP: 8.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: craftframe
Domain Path: /languages
Tags: ecommerce, woocommerce, custom-logo, translation-ready, accessibility-ready, responsive-layout
*/
/* =========================================================
   Generic Content Pages
   ========================================================= */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  border: 0;
}
.cf-main {
  padding-block: var(--cf-space-2xl);
  background: linear-gradient(
    to bottom,
    var(--cf-color-background) 0%,
    var(--cf-color-background) 30%,
    var(--cf-color-surface) 100%
  );
}
.pt-0 {
  padding-block-start: 0 !important;
}
.pb-0 {
  padding-block-end: 0 !important;
}
.cf-page,
.cf-single,
.cf-archive,
.cf-error {
  max-width: var(--cf-container-lg);
  margin-inline: auto;
}
@media (min-width: 1280px) {
  .box-view {
    box-shadow: var(--cf-shadow-page);
    padding-block-start: var(--cf-space-xl);
    padding-inline: var(--cf-space-lg);
  }
}
@media (min-width: 1920px) {
  .box-view {
    padding-inline: var(--cf-space-xl);
  }
}
.home .box-view,
.woocommerce-cart.woocommerce-page .box-view,
.cf-checkout .box-view {
  box-shadow: none !important;
  padding-block-start: 0 !important;
  padding-inline: 0 !important;
}
/* ---------- Typography ---------- */
.cf-page-title,
.cf-single-title,
.cf-archive-title,
.cf-error-title {
  margin: 0 0 var(--cf-space-lg);
  color: var(--cf-color-ink);
  font-family: var(--cf-font-family-base, sans-serif);
  font-size: clamp(var(--cf-font-size-xxl), 4vw, 3rem);
  line-height: 1.15;
  font-weight: var(--cf-font-bold);
  letter-spacing: -0.02em;
}
.cf-page-content,
.cf-single-content,
.cf-archive-content {
  color: var(--cf-color-text);
  font-family: var(--cf-font-family-base, sans-serif);
  font-size: var(--cf-font-size-base);
  line-height: var(--cf-line-height-base);
}
/* ---------- Content spacing ---------- */
.cf-page-content > * + *,
.cf-single-content > * + *,
.cf-archive-content > * + * {
  margin-top: var(--cf-space-lg);
}
.cf-page-content h2,
.cf-single-content h2,
.cf-archive-content h2 {
  margin-top: var(--cf-space-2xl);
  margin-bottom: var(--cf-space-md);
  color: var(--cf-color-ink);
  font-size: var(--cf-font-size-xl);
  line-height: 1.3;
  font-weight: var(--cf-font-semibold);
}
.cf-page-content h3,
.cf-single-content h3,
.cf-archive-content h3 {
  margin-top: var(--cf-space-xl);
  margin-bottom: var(--cf-space-sm2);
  color: var(--cf-color-ink);
  font-size: var(--cf-font-size-lg);
  line-height: 1.4;
  font-weight: var(--cf-font-semibold);
}
/* ---------- Paragraphs ---------- */
.cf-page-content p,
.cf-single-content p,
.cf-archive-content p {
  margin: 0;
}
/* ---------- Links ---------- */
.cf-page-content a,
.cf-single-content a,
.cf-archive-content a {
  color: var(--cf-color-primary);
  text-decoration-thickness: var(--cf-border-width-thin);
  text-underline-offset: 0.15em;
  transition: color var(--cf-transition-fast);
}
.cf-page-content a:hover,
.cf-single-content a:hover,
.cf-archive-content a:hover {
  color: var(--cf-color-primary-hover);
}
/* ---------- Lists ---------- */
.cf-page-content ul,
.cf-page-content ol,
.cf-single-content ul,
.cf-single-content ol,
.cf-archive-content ul,
.cf-archive-content ol {
  margin-block: var(--cf-space-lg);
  padding-inline-start: var(--cf-space-xl);
}
.cf-page-content li + li,
.cf-single-content li + li,
.cf-archive-content li + li {
  margin-top: var(--cf-space-sm);
}
/* ---------- Images ---------- */
.cf-page-content img,
.cf-single-content img,
.cf-archive-content img {
  display: block;
  max-width: 100%;
  height: auto;
}
/* ---------- Blockquotes ---------- */
.cf-page-content blockquote,
.cf-single-content blockquote,
.cf-archive-content blockquote {
  margin-block: var(--cf-space-xl);
  padding: var(--cf-space-md) var(--cf-space-lg);
  color: var(--cf-color-text-muted);
  border-inline-start: var(--cf-border-width-base) solid var(--cf-color-primary);
  background: var(--cf-color-surface);
}
/* ---------- Tables ---------- */
.cf-page-content table,
.cf-single-content table,
.cf-archive-content table {
  width: 100%;
  border-collapse: collapse;
}
.cf-page-content th,
.cf-page-content td,
.cf-single-content th,
.cf-single-content td,
.cf-archive-content th,
.cf-archive-content td {
  padding: var(--cf-space-sm2);
  text-align: start;
  border-bottom: var(--cf-border-width-thin) solid var(--cf-color-border);
}
.cf-page-content th,
.cf-single-content th,
.cf-archive-content th {
  color: var(--cf-color-ink);
  font-weight: var(--cf-font-semibold);
}
/* ---------- Headers ---------- */
.cf-page-header,
.cf-single-header,
.cf-archive-header,
.cf-error-header {
  margin-bottom: var(--cf-space-xl);
}
/* ---------- Pagination ---------- */
.cf-page-pagination {
  margin-top: var(--cf-space-xl);
}
.cf-single-meta {
  margin-top: calc(var(--cf-space-sm) * -1);
  margin-bottom: var(--cf-space-xl);
  color: var(--cf-color-text-muted);
  font-size: var(--cf-font-size-sm);
}
.cf-archive-list {
  display: grid;
  gap: var(--cf-space-xl);
}
.cf-archive-item {
  padding-bottom: var(--cf-space-xl);
  border-bottom: var(--cf-border-width-thin) solid var(--cf-color-border);
}
.cf-archive-item-title {
  margin: 0 0 var(--cf-space-sm);
  font-size: var(--cf-font-size-xl);
  line-height: 1.3;
  font-weight: var(--cf-font-semibold);
}
.cf-archive-item-title a {
  color: var(--cf-color-ink);
  text-decoration: none;
}
.cf-archive-item-title a:hover {
  color: var(--cf-color-primary);
}
.cf-archive-item-excerpt {
  color: var(--cf-color-text-muted);
}
.cf-error {
  text-align: center;
}
.cf-error-code {
  margin: 0 0 var(--cf-space-sm);
  color: var(--cf-color-primary);
  font-size: var(--cf-font-size-xxl);
  font-weight: var(--cf-font-bold);
  letter-spacing: 0.08em;
  max-width: 100%;
}
.cf-error-title {
  margin-bottom: var(--cf-space-md);
}
.cf-error-content {
  max-width: var(--cf-container-sm);
  margin-inline: auto;
  color: var(--cf-color-text-muted);
}
.cf-error-content p {
  margin: 0 0 var(--cf-space-xl);
}
/* ---------- Responsive ---------- */
@media (min-width: 48rem) {
  .cf-main {
    padding-block: var(--cf-space-2xl);
  }
}
@media (min-width: 80rem) {
  .cf-main {
    padding-block: 4rem;
  }
}
/* ---------- Homepage main spacing ---------- */
.home .cf-main {
  padding-block-start: 0;
}
