/*
Theme Name: Cozy Crochet Patterns for Astra
Theme URI: 
Description: Child theme for Astra. A soft, cozy rose-and-cream shop design for selling digital crochet patterns with WooCommerce, with one-click shop setup and pattern product fields. Requires the free Astra theme and WooCommerce.
Template: astra
Version: 2.0.1
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cozy-crochet
*/

/* ---------- Tokens ---------- */
:root {
	--rose: #d68587;
	--coral: #dd6b78;
	--coral-dark: #c4566a;
	--cocoa: #3b2216;
	--cocoa-soft: #6b4a3a;
	--cream: #fdf9f6;
	--blush: #fbeeea;
	--blush-deep: #f3d8d4;
	--line: #ecd5d0;
	--font-script: "Caveat", "Segoe Script", cursive;
	--font-hand: "Patrick Hand", "Segoe Print", cursive;
	--font-sans: "Jost", "Helvetica Neue", Arial, sans-serif;
	--wrap: 1400px;
	--radius: 6px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--cream);
	color: var(--cocoa);
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
.hero img, .category-card img, .cc-site-header img, .cc-site-footer img { display: block; }
a { color: var(--coral-dark); text-decoration: none; }
a:hover { color: var(--coral); }
.topbar ul, .cc-site-header ul, .features-inner, .category-grid, .cc-site-footer ul, .footer-widgets ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { font-family: var(--font-script); color: var(--cocoa); line-height: 1.15; font-weight: 700; }
:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; border-radius: 3px; }
.container { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 clamp(20px, 4.8vw, 73px); }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus { clip: auto; width: auto; height: auto; background: #fff; padding: 10px 16px; z-index: 1000; top: 8px; left: 8px; }
.icon { flex: none; }

/* ---------- Buttons ---------- */
.btn, .button, button.button, input.button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	background: var(--coral); color: #fff; border: 0; border-radius: 999px;
	padding: 14px 40px; font-family: var(--font-sans); font-size: 1.05rem; font-weight: 500;
	letter-spacing: .1em; text-transform: uppercase; cursor: pointer;
	transition: background .2s, transform .2s;
}
.btn:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .wp-block-button__link:hover { background: var(--coral-dark); color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt { background: var(--coral); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--coral-dark); }

/* ---------- Top bar ---------- */
.topbar { background: var(--rose); color: #fff; font-family: "Kiwi Maru", "Segoe Print", Georgia, serif; font-size: .95rem; }
.topbar-inner {
	max-width: 1560px; margin: 0 auto; padding: 0 clamp(16px, 3.5vw, 52px);
	min-height: 41px; display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.topbar ul { display: flex; align-items: center; flex-wrap: nowrap; white-space: nowrap; }
.topbar li { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.topbar-left li + li::before { content: ""; width: 1px; height: 14px; background: rgba(255,255,255,.7); margin: 0 18px 0 8px; }
.topbar-left li:first-child { gap: 12px; }
.topbar-right { gap: 30px; }
.topbar a { color: #fff; display: inline-flex; align-items: center; gap: 10px; }
.topbar a:hover { text-decoration: underline; color: #fff; }

@media (max-width: 1280px) {
	.topbar { font-size: .85rem; }
	.topbar-left li + li::before { margin: 0 12px 0 4px; }
	.topbar-right { gap: 18px; }
}
@media (max-width: 1100px) {
	.topbar-left li:nth-child(3), .topbar-right li:last-child { display: none; }
}

/* ---------- Header ---------- */
.cc-site-header { background: var(--cream); position: relative; z-index: 20; }
.header-inner {
	max-width: 1560px; margin: 0 auto; padding: 0 clamp(16px, 3.5vw, 60px);
	min-height: 118px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 30px;
}
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--cocoa); }
.brand:hover { color: var(--cocoa); }
.brand .custom-logo { max-height: 84px; width: auto; }
.logo-mark { flex: none; }
.site-logo { height: clamp(58px, 6.4vw, 98px); width: auto; max-width: 100%; }
.brand-text { display: flex; flex-direction: column; align-items: center; line-height: 1; }
.brand-name { font-family: var(--font-script); font-weight: 700; font-size: clamp(2.4rem, 3.6vw, 3.4rem); letter-spacing: .005em; }
.brand-sub {
	display: inline-flex; align-items: center; gap: 12px; margin-top: 4px;
	font-size: clamp(.8rem, 1.15vw, 1.1rem); letter-spacing: .2em; text-transform: uppercase; color: var(--cocoa);
}
.brand-sub .icon { color: var(--rose); }

.main-nav { justify-self: center; }
.main-nav .menu { display: flex; gap: clamp(22px, 3.2vw, 48px); align-items: center; }
.main-nav .menu > li { position: relative; }
.main-nav a {
	display: block; padding: 14px 0; color: var(--cocoa); font-size: .98rem; font-weight: 500;
	letter-spacing: .1em; text-transform: uppercase; position: relative;
}
.main-nav a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 2px;
	background: var(--coral); transform: scaleX(0); transition: transform .2s;
}
.main-nav a:hover, .main-nav .current-menu-item > a, .main-nav .current_page_item > a, .main-nav .current-menu-ancestor > a { color: var(--coral); }
.main-nav a:hover::after, .main-nav .current-menu-item > a::after, .main-nav .current_page_item > a::after { transform: scaleX(1); }
.main-nav .sub-menu {
	position: absolute; top: 100%; left: -16px; min-width: 200px; background: #fff; border: 1px solid var(--line);
	border-radius: var(--radius); padding: 8px 16px; display: none; box-shadow: 0 10px 24px rgba(59,34,22,.08);
}
.main-nav li:hover > .sub-menu, .main-nav li:focus-within > .sub-menu { display: block; }
.main-nav .sub-menu a::after { display: none; }

.header-icons { display: flex; align-items: center; gap: 26px; }
.icon-btn { background: none; border: 0; padding: 4px; color: var(--cocoa); cursor: pointer; position: relative; display: inline-flex; }
.icon-btn:hover { color: var(--coral); }
.cart-count {
	position: absolute; top: -7px; right: -9px; min-width: 19px; height: 19px; padding: 0 5px;
	border-radius: 999px; background: var(--coral); color: #fff; font-size: .68rem; font-weight: 600;
	display: inline-flex; align-items: center; justify-content: center; line-height: 1;
}
.nav-toggle { display: none; background: none; border: 0; color: var(--cocoa); padding: 6px; cursor: pointer; }

.header-search { border-top: 1px solid var(--line); background: var(--blush); padding: 16px 0; }
.header-search form, .search-form { display: flex; gap: 10px; max-width: 560px; }
.header-search input[type="search"], .search-form input[type="search"], .woocommerce-product-search input[type="search"] {
	flex: 1; padding: 12px 18px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font: inherit; color: var(--cocoa);
}
.header-search button, .search-form .search-submit, .woocommerce-product-search button {
	background: var(--coral); color: #fff; border: 0; border-radius: 999px; padding: 0 24px; font: inherit; cursor: pointer;
}
.woocommerce-product-search { display: flex; gap: 10px; }

/* ---------- Hero ----------
   Sizes are in vw so the banner keeps the exact proportions of the 1536px design at any desktop width. */
.hero {
	position: relative; overflow: hidden; height: clamp(300px, 26.7vw, 480px);
	background: linear-gradient(100deg, #fdf8f4 0%, #fcf1ea 50%, #f7e6dc 100%);
}
.hero-photo { position: absolute; top: 0; right: 0; bottom: 0; width: 54.5%; }
.hero-photo img {
	width: 100%; height: 100%; object-fit: cover; object-position: right center;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 24%);
	mask-image: linear-gradient(to right, transparent 0, #000 24%);
}
.hero-inner { position: relative; height: 100%; max-width: 1920px; margin: 0 auto; padding: 0 0 0 4.9vw; display: flex; align-items: center; }
.hero-copy { width: 40.5vw; max-width: 780px; text-align: center; padding: 0; }
.hero-eyebrow {
	margin: 0 0 .2vw; font-size: clamp(.8rem, 1.3vw, 1.5rem); letter-spacing: .14em; text-transform: uppercase;
	display: flex; align-items: center; justify-content: center; gap: 1.2vw; line-height: 1.3;
}
.hero-eyebrow::before, .hero-eyebrow::after { content: ""; width: 2.9vw; height: 1px; background: var(--cocoa); opacity: .75; }
.hero-title { margin: 0; font-family: "Satisfy", "Segoe Script", cursive; font-weight: 400; font-size: clamp(3rem, 5.7vw, 7.2rem); line-height: 1.05; letter-spacing: -.005em; white-space: nowrap; }
.hero-subtitle {
	margin: .5vw 0 1.1vw; font-size: clamp(.9rem, 1.72vw, 2.2rem); letter-spacing: .22em; text-transform: uppercase;
	display: flex; align-items: center; justify-content: center; gap: 1.4vw; line-height: 1.3;
}
.hero-subtitle::before, .hero-subtitle::after { content: ""; width: 2.3vw; height: 1px; background: var(--cocoa); opacity: .75; }
.hero-tagline {
	margin: 0 0 1.8vw; font-family: var(--font-hand); font-size: clamp(.95rem, 1.62vw, 2rem);
	display: flex; flex-wrap: nowrap; white-space: nowrap; align-items: center; justify-content: center; gap: .8vw; line-height: 1.3;
}
.hero-tagline .icon { color: var(--rose); width: .85vw; height: .85vw; min-width: 10px; min-height: 10px; }
.hero .btn {
	width: clamp(190px, 16.6vw, 330px); height: clamp(44px, 3.4vw, 66px); padding: 0;
	font-size: clamp(.85rem, 1.3vw, 1.6rem); letter-spacing: .12em; font-weight: 500;
}

/* ---------- Feature strip ---------- */
.features { background: var(--blush); border-top: 1px solid #f6e3df; }
.features-inner {
	max-width: 1500px; margin: 0 auto; padding: 0 clamp(16px, 3vw, 40px);
	display: grid; grid-template-columns: repeat(4, 1fr); min-height: 124px; align-items: center;
}
.feature { position: relative; display: flex; align-items: center; gap: 18px; padding: 24px clamp(10px, 2.4vw, 40px); justify-content: center; }
.feature + .feature::before { content: ""; position: absolute; left: 0; top: 50%; height: 56px; width: 1px; transform: translateY(-50%); background: #e6cbc6; }
.feature-icon {
	width: 64px; height: 64px; flex: none; border-radius: 50%; border: 1.5px solid var(--coral);
	color: var(--coral); display: inline-flex; align-items: center; justify-content: center;
}
.feature-text { display: flex; flex-direction: column; line-height: 1.35; }
.feature-text strong { font-weight: 500; letter-spacing: .08em; text-transform: uppercase; font-size: 1.02rem; }
.feature-text span { font-size: .95rem; color: var(--cocoa); }

/* ---------- Sections ---------- */
.section-title {
	display: flex; align-items: center; justify-content: center; gap: 28px; margin: 0 0 30px;
	font-family: "Satisfy", "Segoe Script", cursive; font-weight: 400;
	font-size: clamp(2rem, 3vw, 3.4rem);
}
.section-title::before, .section-title::after { content: ""; flex: 0 1 90px; height: 1px; background: #e8cdc8; }
.section-title .icon { color: var(--rose); }
.section-title > span { padding: 0 2px; }

.categories { padding: 20px 0 56px; }
.category-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 22px; }
.category-card {
	display: flex; flex-direction: column; height: 100%; color: var(--cocoa); border-radius: var(--radius);
	overflow: hidden; background: var(--blush); box-shadow: 0 2px 10px rgba(59,34,22,.07); transition: transform .2s, box-shadow .2s;
}
.category-card:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(59,34,22,.12); color: var(--cocoa); }
.category-img { display: block; aspect-ratio: 4 / 3; background: linear-gradient(135deg, var(--blush-deep), var(--blush)); overflow: hidden; }
.category-img img { width: 100%; height: 100%; object-fit: cover; }
.category-name { padding: 12px 8px; text-align: center; font-size: 1.1rem; letter-spacing: .02em; }

.newest { padding: 0 0 70px; }
.home-content { padding: 0 0 60px; }

/* ---------- Forms (scoped so Astra's own forms stay untouched) ---------- */
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form select, .contact-form textarea {
	width: 100%; padding: 12px 16px; border: 1px solid var(--line); border-radius: var(--radius);
	background: #fff; font: inherit; color: var(--cocoa);
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--coral); outline: none; box-shadow: 0 0 0 3px rgba(221,107,120,.2); }

/* ---------- WooCommerce skin (Astra keeps control of the layout) ---------- */
body .woocommerce a.button, body .woocommerce button.button, body .woocommerce input.button,
body .woocommerce #respond input#submit, body .woocommerce a.added_to_cart,
body.woocommerce a.button, body.woocommerce button.button, body.woocommerce-page a.button, body.woocommerce-page button.button,
body .woocommerce .single_add_to_cart_button, body .woocommerce #payment #place_order {
	background: var(--coral); color: #fff; border: 0; border-radius: 999px; padding: 13px 30px;
	font-family: var(--font-sans); font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
}
body .woocommerce a.button:hover, body .woocommerce button.button:hover, body .woocommerce input.button:hover,
body .woocommerce #respond input#submit:hover, body .woocommerce a.added_to_cart:hover,
body.woocommerce a.button:hover, body.woocommerce button.button:hover, body.woocommerce-page a.button:hover, body.woocommerce-page button.button:hover,
body .woocommerce .single_add_to_cart_button:hover, body .woocommerce #payment #place_order:hover { background: var(--coral-dark); color: #fff; }
body .woocommerce ul.products li.product .woocommerce-loop-product__title,
body .woocommerce div.product .product_title { font-family: var(--font-script); color: var(--cocoa); font-weight: 700; }
body .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.7rem; line-height: 1.15; }
body .woocommerce div.product .product_title { font-size: clamp(2.4rem, 4vw, 3.6rem); line-height: 1.1; }
body .woocommerce ul.products li.product .price, body .woocommerce div.product p.price, body .woocommerce div.product span.price { color: var(--coral-dark); font-weight: 500; }
body .woocommerce span.onsale, body span.onsale { background: var(--coral); color: #fff; border-radius: 999px; min-height: 0; min-width: 0; padding: 8px 14px; line-height: 1; font-weight: 500; }
body .woocommerce ul.products li.product img, body .woocommerce div.product div.images img { border-radius: var(--radius); }
body .woocommerce .star-rating span::before { color: var(--coral); }
body .woocommerce-message, body .woocommerce-info, body .woocommerce-error { border-top-color: var(--coral); background: var(--blush); color: var(--cocoa); }
body .woocommerce-message::before, body .woocommerce-info::before { color: var(--coral); }
body .woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--cocoa); font-weight: 500; }
body .woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--coral-dark); }
body .woocommerce .woocommerce-breadcrumb { color: var(--cocoa-soft); font-size: .92rem; }
body .woocommerce table.shop_table, body .woocommerce table.shop_table th, body .woocommerce table.shop_table td { border-color: var(--line); }
body .woocommerce-MyAccount-navigation .is-active a, body .woocommerce-MyAccount-navigation a:hover { color: var(--coral-dark); }
body .woocommerce form .form-row input.input-text:focus, body .woocommerce form .form-row textarea:focus, body .woocommerce form .form-row select:focus {
	border-color: var(--coral); box-shadow: 0 0 0 3px rgba(221,107,120,.2); outline: none;
}
body .woocommerce #payment { background: var(--blush); border-radius: var(--radius); }
body .woocommerce #payment div.payment_box { background: #fff; color: var(--cocoa); }
body .woocommerce #payment div.payment_box::before { border-bottom-color: #fff; }

/* Digital-pattern extras added by the theme */
.cc-badges { display: flex; flex-wrap: wrap; gap: 10px 20px; list-style: none; margin: 18px 0 0; padding: 14px 18px; background: var(--blush); border-radius: var(--radius); font-size: .95rem; }
.cc-badges li { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.cc-badges .icon { color: var(--coral); }
.cc-loop-badge { display: block; font-family: var(--font-hand); font-size: .88rem; color: var(--cocoa-soft); margin: 2px 0 8px; }
.cc-pattern-table { width: 100%; max-width: 760px; border-collapse: collapse; }
.cc-pattern-table th, .cc-pattern-table td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
.cc-pattern-table th { width: 32%; font-weight: 500; color: var(--cocoa-soft); }

/* ---------- Footer ---------- */
.cc-site-footer { background: var(--blush); border-top: 1px solid #f3dcd7; margin-top: 0; }
.footer-inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; align-items: start; padding-top: 48px; padding-bottom: 44px; }
.footer-name { font-family: "Satisfy", "Segoe Script", cursive; font-weight: 400; font-size: 2.6rem; color: var(--cocoa); line-height: 1.1; display: inline-block; }
.footer-brand p { max-width: 380px; margin: 10px 0 0; color: var(--cocoa-soft); }
.footer-nav { justify-self: center; }
.footer-nav .menu { display: flex; flex-direction: column; gap: 8px; }
.footer-extra { justify-self: end; width: 100%; max-width: 340px; }
.footer-nav a { color: var(--cocoa); }
.footer-nav a:hover { color: var(--coral); }
.widget-title { font-size: 1.8rem; margin: 0 0 10px; }
/* Secure checkout panel */
.footer-pay { color: var(--cocoa); width: 100%; }
.footer-pay-title { font-family: var(--font-sans); font-weight: 500; font-size: 1.3rem; color: var(--cocoa); margin: 0 0 8px; line-height: 1.3; }
.footer-pay p { margin: 0 0 16px; color: var(--cocoa-soft); line-height: 1.7; }
.footer-pay .pay-badge { display: block; height: auto; max-width: 100%; margin: 0 0 12px; filter: drop-shadow(0 1px 3px rgba(59,34,22,.16)); }
.footer-pay .pay-paypal { filter: none; }
.footer-bottom { background: var(--rose); color: #fff; font-family: "Kiwi Maru", "Segoe Print", Georgia, serif; font-size: .95rem; }
.footer-bottom .container { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 12px; padding-bottom: 12px; flex-wrap: wrap; }
.footer-love { display: inline-flex; align-items: center; gap: 8px; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
	.category-grid { gap: 14px; }
	.feature { gap: 12px; }
	.feature-icon { width: 52px; height: 52px; }
	.feature-icon .icon { width: 26px; height: 26px; }
	.feature-text strong { font-size: .86rem; letter-spacing: .05em; }
	.feature-text span { font-size: .84rem; }
	.category-name { font-size: .95rem; }
}
@media (max-width: 900px) {
	.category-grid { grid-template-columns: repeat(3, 1fr); gap: 18px; }
	.features-inner { grid-template-columns: repeat(2, 1fr); }
	.feature:nth-child(3)::before { display: none; }
	.feature:nth-child(n+3) { border-top: 1px solid #ecd2cd; }
	.feature-icon { width: 60px; height: 60px; }
	.feature-text strong { font-size: 1rem; letter-spacing: .08em; }
	.feature-text span { font-size: .95rem; }
}
@media (max-width: 980px) {
	.header-inner { grid-template-columns: 1fr auto auto; min-height: 92px; gap: 14px; }
	.nav-toggle { display: inline-flex; grid-column: 3; grid-row: 1; }
	.header-icons { grid-column: 2; grid-row: 1; gap: 18px; }
	.main-nav {
		grid-column: 1 / -1; grid-row: 2; justify-self: stretch; display: none; border-top: 1px solid var(--line); padding: 6px 0 14px;
	}
	.main-nav.is-open { display: block; }
	.main-nav .menu { flex-direction: column; align-items: flex-start; gap: 0; }
	.main-nav a { padding: 12px 0; }
	.main-nav a::after { display: none; }
	.main-nav .sub-menu { position: static; display: block; border: 0; box-shadow: none; padding: 0 0 0 16px; background: transparent; }
	.hero { height: auto; display: flex; flex-direction: column; }
	.hero-inner { order: 1; padding: 0 20px; justify-content: center; height: auto; }
	.hero-copy { width: 100%; max-width: 640px; padding: 34px 0 14px; }
	.hero-photo { position: relative; width: 100%; height: 260px; order: 2; }
	.hero-photo img { -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 22%); mask-image: linear-gradient(to bottom, transparent 0, #000 22%); object-position: 70% center; }
	.hero-eyebrow { font-size: 1rem; gap: 14px; }
	.hero-eyebrow::before, .hero-eyebrow::after { width: 32px; }
	.hero-title { font-size: clamp(3.4rem, 13vw, 6rem); white-space: normal; }
	.hero-subtitle { font-size: clamp(1rem, 3.4vw, 1.5rem); gap: 14px; margin: 6px 0 14px; }
	.hero-subtitle::before, .hero-subtitle::after { width: 26px; }
	.hero-tagline { font-size: clamp(1rem, 3vw, 1.3rem); gap: 8px 12px; flex-wrap: wrap; white-space: normal; margin-bottom: 20px; }
	.hero-tagline .icon { width: 12px; height: 12px; }
	.hero .btn { width: auto; height: auto; padding: 14px 44px; font-size: 1rem; }
	.footer-inner { grid-template-columns: 1fr; gap: 24px; }
	.footer-nav, .footer-extra { justify-self: start; }
}
@media (max-width: 720px) {
	.topbar-left li:nth-child(n+2), .topbar-right li:last-child { display: none; }
	.topbar-inner { justify-content: center; }
	.brand-name { font-size: 2.1rem; }
	.logo-mark { width: 70px; height: 47px; }
	.site-logo { height: 52px; }
	.brand-sub { letter-spacing: .12em; font-size: .7rem; gap: 6px; }
	.category-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.features-inner { grid-template-columns: 1fr; }
	.feature { justify-content: flex-start; }
	.feature + .feature::before { display: none; }
	.feature + .feature { border-top: 1px solid #ecd2cd; }
	.section-title::before, .section-title::after { flex-basis: 30px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Contact page ---------- */
.contact-page h1, .contact-page h2 { font-family: "Satisfy", "Segoe Script", cursive; font-weight: 400; color: var(--cocoa); }
.contact-page .center { text-align: center; }
.contact-page .sub { max-width: 620px; margin: 0 auto 32px; color: var(--cocoa-soft); text-align: center; }
.eyebrow, .eyebrow-sm { margin: 0 0 8px; letter-spacing: .16em; text-transform: uppercase; font-size: .88rem; color: var(--coral-dark); font-weight: 500; }
.eyebrow { display: flex; align-items: center; justify-content: center; gap: 16px; color: var(--cocoa); font-size: 1rem; }
.eyebrow::before, .eyebrow::after { content: ""; width: 44px; height: 1px; background: var(--cocoa); opacity: .6; }
.eyebrow-sm.center { text-align: center; }

.contact-hero { background: linear-gradient(100deg, #fdf8f4 0%, #fbeee8 55%, #f6e4dc 100%); text-align: center; padding: 70px 0 64px; }
.contact-hero h1 { font-size: clamp(3.2rem, 7vw, 5.6rem); line-height: 1.05; margin: 6px 0 12px; }
.contact-hero .lead { max-width: 640px; margin: 0 auto 28px; font-size: 1.12rem; color: var(--cocoa-soft); }
.contact-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.btn-outline { background: transparent; color: var(--coral-dark); border: 1.5px solid var(--coral); text-transform: none; letter-spacing: .02em; }
.btn-outline:hover { background: var(--coral); color: #fff; }

.contact-form-section { padding: 70px 0; }
.contact-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(28px, 5vw, 70px); align-items: start; }
.contact-intro h2 { font-size: clamp(2.4rem, 4vw, 3.4rem); margin: 0 0 14px; }
.contact-intro p { color: var(--cocoa-soft); }
.prefer-email { display: flex; align-items: center; gap: 12px; margin-top: 24px; padding: 16px 18px; background: var(--blush); border-radius: var(--radius); color: var(--cocoa); }
.prefer-email .icon { color: var(--coral); }
.contact-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: clamp(22px, 3.2vw, 38px); box-shadow: 0 10px 30px rgba(59,34,22,.06); }
.contact-form label { display: block; font-weight: 500; margin-bottom: 6px; }
.contact-form p { margin: 0 0 18px; }
.form-row.two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.contact-form .req { color: var(--coral-dark); }
.contact-form textarea { resize: vertical; min-height: 140px; }
.hp-field { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-note { font-size: .86rem; color: var(--cocoa-soft); margin: 0 !important; }
.contact-notice { padding: 14px 18px; border-radius: var(--radius); margin-bottom: 22px; font-weight: 500; }
.contact-notice.is-ok { background: #e9f5ec; color: #25613a; border: 1px solid #bfe0c9; }
.contact-notice.is-bad { background: #fdeaea; color: #8a2f3c; border: 1px solid #f1c4c8; }

.contact-help { background: var(--blush); padding: 68px 0; }
.contact-help h2, .contact-faq h2, .contact-cta h2 { font-size: clamp(2.2rem, 4vw, 3.2rem); margin: 0 0 10px; }
.help-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; list-style: none; margin: 0; padding: 0; }
.help-steps li { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 26px 24px; display: flex; flex-direction: column; gap: 6px; }
.help-steps .num { width: 40px; height: 40px; border-radius: 50%; background: var(--coral); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 500; margin-bottom: 8px; }
.help-steps li span:last-child { color: var(--cocoa-soft); }

.contact-faq { padding: 68px 0; }
.narrow-wrap { max-width: 900px; }
.faq-list { margin-top: 28px; display: grid; gap: 12px; }
.faq-item { background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.faq-item summary { cursor: pointer; list-style: none; padding: 18px 56px 18px 22px; font-weight: 500; position: relative; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font-size: 1.5rem; color: var(--coral); line-height: 1; }
.faq-item[open] summary::after { content: "\2212"; }
.faq-item p { margin: 0; padding: 0 22px 20px; color: var(--cocoa-soft); }

.contact-cta { background: linear-gradient(100deg, #fbeee8, #f6e4dc); padding: 64px 0; }

@media (max-width: 900px) {
	.contact-grid { grid-template-columns: 1fr; }
	.help-steps { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.form-row.two { grid-template-columns: 1fr; }
}

/* ---------- No italics in the shop (v2.0.1) ----------
   1) Switch off real italics that Astra / WooCommerce apply to some shop text.
   2) Stop browsers from faking italics (the script fonts have no italic version).
   3) Use the upright Jost font for shop headings and product names. The Caveat
      script font is naturally slanted and reads as italic.
   To bring the script headings back in the shop, delete section 3 only. */
body.woocommerce, body.woocommerce-page, .woocommerce, .ast-woocommerce-container {
	font-synthesis-style: none;
}
body.woocommerce em, body.woocommerce i:not(.icon), body.woocommerce cite, body.woocommerce address,
body.woocommerce dfn, body.woocommerce var, body.woocommerce blockquote, body.woocommerce q,
body.woocommerce-page em, body.woocommerce-page i:not(.icon), body.woocommerce-page cite, body.woocommerce-page address,
body.woocommerce-page dfn, body.woocommerce-page var, body.woocommerce-page blockquote, body.woocommerce-page q,
.woocommerce em, .woocommerce cite, .woocommerce address, .woocommerce blockquote,
.woocommerce .woocommerce-product-details__short-description, .woocommerce .woocommerce-noreviews,
.woocommerce .woocommerce-info, .woocommerce .woocommerce-message, .woocommerce .product_meta,
.woocommerce .woocommerce-Price-amount, .woocommerce .woocommerce-breadcrumb, .woocommerce .cc-loop-badge,
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering, .woocommerce-page .entry-content {
	font-style: normal !important;
}
body.woocommerce h1, body.woocommerce h2, body.woocommerce h3, body.woocommerce h4,
body.woocommerce-page h1, body.woocommerce-page h2, body.woocommerce-page h3, body.woocommerce-page h4,
body .woocommerce ul.products li.product .woocommerce-loop-product__title,
body .woocommerce div.product .product_title,
body .woocommerce .related.products > h2, body .woocommerce .upsells.products > h2 {
	font-family: var(--font-sans);
	font-style: normal !important;
	font-weight: 500;
	letter-spacing: .01em;
}
body .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.25rem; line-height: 1.3; }
body .woocommerce div.product .product_title { font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.2; }
