/*
Theme Name: CairnGifts
Theme URI: https://cairgifts.stillwaters.cz
Author: Stillwaters
Description: A quiet, material-led block theme for CairnGifts in County Meath.
Version: 0.1.0
Requires at least: 6.7
Requires PHP: 8.2
Text Domain: cairngifts
*/

:root {
  --cg-charcoal: #1d1b18;
  --cg-oak: #30261f;
  --cg-moss: #4f5945;
  --cg-sage: #b9c2a6;
  --cg-blush: #d8b8ad;
  --cg-oatmeal: #eee5d6;
  --cg-cream: #fbf8f1;
  --cg-rule: rgba(48, 38, 31, 0.22);
  --cg-shadow: 0 18px 45px rgba(48, 38, 31, 0.12);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
a, button, input, select, textarea { transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease, opacity 200ms ease; }
a, button, select, input[type="button"], input[type="submit"], input[type="reset"] { cursor: pointer; }
a:hover { color: var(--cg-moss); }
:where(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--cg-moss); outline-offset: 3px; }

.cg-site-header { position: relative; z-index: 20; border-bottom: 1px solid var(--cg-rule); background: var(--cg-cream); }
.cg-header-inner { min-height: 78px; }
.cg-site-title a { text-decoration: none; }
.cg-site-title { margin: 0; font-family: Baskerville, "Iowan Old Style", Georgia, serif; font-size: 1.75rem; font-weight: 400; }
.cg-site-header .wp-block-navigation-item__content { text-decoration: none; text-transform: uppercase; }
.cg-site-header .wp-block-navigation-item:last-child { padding-left: 1rem; border-left: 1px solid var(--cg-rule); }

.cg-hero {
  position: relative;
  display: flex;
  min-height: 68vh;
  max-height: 44rem;
  align-items: center;
  overflow: hidden;
  background-color: #d7c6ae;
  background-image: url('/wp-content/plugins/cairngifts-core/assets/products/cairngifts-workbench-hero.png');
  background-position: center;
  background-size: cover;
  isolation: isolate;
}
.cg-hero::before { position: absolute; z-index: -1; inset: 0 42% 0 0; background: rgba(238, 229, 214, 0.92); content: ""; }
.cg-hero-copy { width: min(47rem, 54%); padding: 4rem 0; }
.cg-eyebrow { margin-bottom: 1rem; color: var(--cg-moss); font-size: 0.78rem; font-weight: 700; text-transform: uppercase; }
.cg-hero h1 { max-width: 9ch; margin: 0; color: var(--cg-charcoal); font-size: 4.8rem; }
.cg-hero-intro { max-width: 36rem; margin: 1.4rem 0 0; color: var(--cg-oak); font-family: Baskerville, "Iowan Old Style", Georgia, serif; font-size: 1.45rem; line-height: 1.45; }
.cg-button-row { margin-top: 2rem; }
.wp-element-button, .button, button, input[type="submit"] { border: 1px solid var(--cg-oak); border-radius: 2px !important; font-size: 0.82rem !important; font-weight: 700 !important; text-transform: uppercase; }
.wp-block-button.is-style-outline .wp-block-button__link { color: var(--cg-oak); background: rgba(251, 248, 241, 0.6); }
.wp-element-button:hover, .button:hover, button:hover, input[type="submit"]:hover { color: var(--cg-cream) !important; border-color: var(--cg-moss) !important; background: var(--cg-moss) !important; }

.cg-section { padding-top: 6rem; padding-bottom: 6rem; }
.cg-section-heading { gap: 2rem; margin-bottom: 2.5rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--cg-rule); }
.cg-section-heading h2 { margin: 0; font-size: 2.75rem; }
.cg-section-link { margin: 0; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; }
.cg-section-link a { text-underline-offset: 0.3rem; }
.cg-section-note { max-width: 40rem; margin: -1rem 0 2.5rem; color: #51483f; }

.cg-material-band { padding: 3.5rem 0; border-top: 1px solid rgba(48, 38, 31, 0.16); border-bottom: 1px solid rgba(48, 38, 31, 0.16); background: var(--cg-sage); }
.cg-material-band h2 { max-width: 17ch; margin: 0; font-size: 2.5rem; }
.cg-material-band p { max-width: 37rem; margin: 0; }
.cg-craft-section { background: var(--cg-cream); }
.cg-craft-grid { gap: 5rem; }
.cg-craft-copy { align-self: center; }
.cg-craft-copy h2 { margin-top: 0; font-size: 3rem; }
.cg-craft-image img { width: 100%; aspect-ratio: 1; object-fit: cover; box-shadow: var(--cg-shadow); }
.cg-detail-list { margin-top: 2rem; padding: 1.4rem 0 0; border-top: 1px solid var(--cg-rule); }
.cg-detail-list p { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; margin: 0.75rem 0; font-size: 0.9rem; }
.cg-detail-list strong { color: var(--cg-moss); font-size: 0.75rem; text-transform: uppercase; }

.cg-journal-grid { gap: 2rem; }
.cg-journal-card { min-height: 15rem; padding: 1.6rem 0; border-top: 3px solid var(--cg-oak); }
.cg-journal-card .wp-block-post-date { color: var(--cg-moss); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }
.cg-journal-card h3 { margin: 1.5rem 0 0.8rem; font-size: 1.85rem; }
.cg-journal-card h3 a { text-decoration: none; }
.cg-journal-card .wp-block-post-excerpt__more-link { font-size: 0.78rem; font-weight: 700; text-underline-offset: 0.3rem; text-transform: uppercase; }

.cg-service-strip { padding: 2.5rem 0; color: var(--cg-cream); background: var(--cg-oak); }
.cg-service-strip .wp-block-column { padding-right: 2rem; border-right: 1px solid rgba(251, 248, 241, 0.2); }
.cg-service-strip .wp-block-column:last-child { border-right: 0; }
.cg-service-strip h3 { margin: 0 0 0.4rem; font-family: "Avenir Next", Avenir, sans-serif; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }
.cg-service-strip p { margin: 0; color: #ddd2c4; font-size: 0.88rem; }

.cg-content-main { padding-top: 5rem; padding-bottom: 7rem; }
.cg-page-header { margin-bottom: 3rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--cg-rule); }
.cg-page-header h1 { margin: 0; font-size: 3.8rem; }
.cg-post-meta { color: var(--cg-moss); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; }
.cg-post-content > * + * { margin-top: 1.5rem; }
.cg-post-content h2 { margin-top: 3rem; }
.cg-pagination { margin-top: 4rem; padding-top: 1.5rem; border-top: 1px solid var(--cg-rule); }

.cg-site-footer { padding: 4.5rem 0 2rem; color: #eee5d6; background: var(--cg-charcoal); }
.cg-site-footer a { color: #fbf8f1; }
.cg-footer-title { margin: 0; color: var(--cg-cream); font-size: 2.4rem; }
.cg-footer-copy { max-width: 35rem; color: #cec2b4; }
.cg-footer-links { font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.cg-footer-bottom { margin-top: 4rem; padding-top: 1.2rem; border-top: 1px solid rgba(251, 248, 241, 0.2); color: #aa9e91; font-size: 0.75rem; }

.woocommerce .woocommerce-breadcrumb { margin-bottom: 2rem; color: var(--cg-moss); font-size: 0.78rem; text-transform: uppercase; }
.woocommerce .woocommerce-breadcrumb a { color: var(--cg-moss); }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 1.4rem; margin: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding: 0 0 1.2rem; border-bottom: 1px solid var(--cg-rule); }
.woocommerce ul.products li.product a img { width: 100%; margin: 0 0 1.2rem; aspect-ratio: 1; border-radius: 0; object-fit: cover; background: var(--cg-cream); transition: filter 220ms ease; }
.woocommerce ul.products li.product:hover a img { filter: contrast(1.04); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0; color: var(--cg-charcoal); font-family: Baskerville, "Iowan Old Style", Georgia, serif; font-size: 1.45rem; font-weight: 400; line-height: 1.2; }
.woocommerce ul.products li.product .price { color: var(--cg-moss); font-size: 0.9rem; font-weight: 700; }
.woocommerce ul.products li.product .button { display: block; float: none; box-sizing: border-box; width: 100%; margin-top: 1rem; text-align: center; }
.wc-block-grid__products { margin-right: 0; margin-left: 0; }
.cg-sample-badge { position: absolute; z-index: 2; top: 0.7rem; left: 0.7rem; padding: 0.35rem 0.55rem; color: var(--cg-oak); background: var(--cg-oatmeal); font-size: 0.65rem; font-weight: 700; text-transform: uppercase; }
.cg-product-note, .cg-shop-notice, .cg-checkout-note { padding: 1rem 1.2rem; border-left: 4px solid var(--cg-moss); background: rgba(185, 194, 166, 0.32); font-size: 0.9rem; }
.cg-shop-notice { margin-bottom: 2rem; }
.woocommerce div.product { padding: 4rem 0 6rem; }
.woocommerce div.product div.images img { background: var(--cg-cream); }
.woocommerce div.product .product_title { font-size: 3.3rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--cg-moss); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius: 0; background: transparent; }
.woocommerce table.shop_table { border: 1px solid var(--cg-rule); border-radius: 0; background: var(--cg-cream); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container--default .select2-selection--single { min-height: 48px; border: 1px solid rgba(48, 38, 31, 0.42); border-radius: 2px; background: var(--cg-cream); }
.woocommerce-checkout #payment { border-radius: 2px; background: var(--cg-cream); }
.woocommerce-message, .woocommerce-info { border-top-color: var(--cg-moss); background: var(--cg-cream); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--cg-moss); }

@keyframes cg-reveal {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.cg-hero-copy { animation: cg-reveal 560ms ease-out both; }
.home .woocommerce ul.products li.product { animation: cg-reveal 520ms ease-out both; }
.home .woocommerce ul.products li.product:nth-child(2) { animation-delay: 70ms; }
.home .woocommerce ul.products li.product:nth-child(3) { animation-delay: 140ms; }
.home .woocommerce ul.products li.product:nth-child(4) { animation-delay: 210ms; }

@media (max-width: 1024px) {
  .cg-hero::before { right: 35%; }
  .cg-hero-copy { width: 62%; }
  .cg-hero h1 { font-size: 4rem; }
  .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cg-craft-grid { gap: 3rem; }
}

@media (max-width: 767px) {
  .cg-header-inner { min-height: 68px; }
  .cg-site-header .wp-block-navigation-item:last-child { padding-left: 0; border-left: 0; }
  .cg-hero { min-height: 68vh; max-height: none; background-position: 64% center; }
  .cg-hero::before { right: 0; background: rgba(238, 229, 214, 0.86); }
  .cg-hero-copy { width: 100%; padding: 3rem 0; }
  .cg-hero h1 { font-size: 3.35rem; }
  .cg-hero-intro { max-width: 24rem; font-size: 1.2rem; }
  .cg-section { padding-top: 4rem; padding-bottom: 4rem; }
  .cg-section-heading { align-items: flex-start !important; }
  .cg-section-heading h2, .cg-material-band h2 { font-size: 2.2rem; }
  .cg-material-band .wp-block-group { align-items: flex-start !important; }
  .cg-craft-grid { gap: 2.5rem; }
  .cg-craft-copy h2 { font-size: 2.5rem; }
  .cg-detail-list p { grid-template-columns: 1fr; gap: 0.2rem; }
  .cg-service-strip .wp-block-columns { gap: 1.7rem; }
  .cg-service-strip .wp-block-column { padding-right: 0; padding-bottom: 1.2rem; border-right: 0; border-bottom: 1px solid rgba(251, 248, 241, 0.2); }
  .cg-service-strip .wp-block-column:last-child { padding-bottom: 0; border-bottom: 0; }
  .cg-page-header h1 { font-size: 3rem; }
  .woocommerce ul.products { grid-template-columns: 1fr; gap: 2rem; }
  .woocommerce div.product .product_title { font-size: 2.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-delay: 0ms !important; transition-duration: 0.01ms !important; }
}