/*
Theme Name: Minella
Theme URI: https://minella.example
Author: Minella / Claude Code
Description: Custom theme for the Minella Jewelry website. Implements the "Minella Blog" design from the Claude Design handoff. Colors, fonts, posts and categories are all editable through the WordPress admin.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: minella
*/

/* ===== Design tokens (Minella brand) =====
   Editable here or overridden per-element in the admin. */
:root {
  --mn-blue:        #5BAED4;
  --mn-blueberry:   #0080B0;
  --mn-coffee:      #472F29;
  --mn-cream:       #FEF1E1;
  --mn-sky-top:     #E6F1F5;
  --mn-family-blue: #DCEBF5;
  --mn-pink:        #FE7FC6;
  --mn-rose:        #D14FA0;
  --mn-olive:       #929431;
  --mn-grape:       #9B7EDE;
  --mn-orange:      #FF7A1A;
  --mn-gold:        #B8893B;
  --mn-muted:       #6B544D;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--mn-cream);
  font-family: 'Poppins', sans-serif;
  color: var(--mn-coffee);
}
a { color: var(--mn-blue); text-decoration: none; }
a:hover { color: #3f93ba; }
img { max-width: 100%; }
::selection { background: var(--mn-pink); color: #fff; }

/* ===== Animations ===== */
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes twinkle { 0%,100% { opacity: .25; transform: scale(.75) rotate(0deg); } 50% { opacity: 1; transform: scale(1.2) rotate(25deg); } }
.twk { display: inline-block; animation: twinkle 3.4s ease-in-out infinite; }

/* ===== Typographic accents ===== */
.goldline { font-family: 'Cormorant Garamond', serif; font-style: italic; color: var(--mn-gold); }

/* ===== Form fields (contact form etc.) ===== */
.fld {
  width: 100%;
  display: block;
  font-family: 'Poppins', sans-serif;
  font-size: 13.5px;
  color: var(--mn-coffee);
  background: #FBF6EF;
  border: 1.5px solid rgba(71,47,41,0.12);
  border-radius: 14px;
  padding: 13px 16px;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.fld::placeholder { color: #a89a92; opacity: 1; }
.fld:hover { border-color: rgba(71,47,41,0.2); }
.fld:focus { border-color: var(--mn-blue); background: #fff; box-shadow: 0 0 0 3px rgba(91,174,212,0.16); }
textarea.fld { line-height: 1.6; }
select.fld { cursor: pointer; padding-right: 38px; }

/* ===== Post cards ===== */
.postcard { transition: transform .45s cubic-bezier(.2,.7,.3,1), box-shadow .45s ease; }
.postcard:hover { transform: translateY(-8px); box-shadow: 0 24px 46px rgba(71,47,41,0.14); }
.postcard:hover .postcard-img { transform: scale(1.05); }
.postcard-img { transition: transform .5s ease; }

/* ===== Header dropdowns ===== */
.prodmenu:hover .prodmenu-drop { opacity: 1 !important; visibility: visible !important; transform: translateY(0) !important; }

/* ===== Buttons ===== */
.mn-btn-outline { transition: all .25s ease; }
.mn-btn-outline:hover { background: var(--mn-coffee); color: var(--mn-cream); }
.mn-social-btn { transition: all .25s ease; }
.mn-social-btn:hover { background: var(--mn-blue); transform: translateY(-3px); box-shadow: 0 10px 20px rgba(71,47,41,0.18); }

/* ===== Category filter active state handled inline / via JS ===== */
.mn-cat-btn { transition: all .2s ease; }

/* ===== Responsive nav ===== */
.hamburger { display: none; }
@media (max-width: 980px) {
  .desktop-nav { display: none !important; }
  .hamburger { display: flex !important; }
}

/* Hidden state used by the load-more + filter JS */
.mn-hidden { display: none !important; }

/* Featured post stacks on smaller screens */
@media (max-width: 820px) {
  .mn-featured-grid { grid-template-columns: 1fr !important; gap: 30px !important; }
}

/* ============================================================
   Shared components for Home / About / Collections / Contact
   ============================================================ */
@keyframes floatSoft { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes floatY { 0%,100% { transform: translateY(0) rotate(var(--r,0deg)); } 50% { transform: translateY(-14px) rotate(var(--r,0deg)); } }

.paw-eyebrow::before { content: "🐾"; margin-right: 7px; font-size: 0.9em; opacity: .8; }

/* Reusable pill buttons with hover lift */
.mn-btn { transition: all .25s ease; display: inline-block; }
.mn-btn:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(71,47,41,0.18); }
.mn-btn-pink:hover   { background: #ea5fb0; color: #fff; }
.mn-btn-blue:hover   { background: #3f93ba; color: #fff; }
.mn-btn-coffee:hover { background: #5BAED4; color: #fff; }

/* Collection / gallery cards */
.colcard { transition: transform .4s cubic-bezier(.2,.7,.3,1), box-shadow .4s ease; }
.colcard:hover { transform: translateY(-8px); box-shadow: 0 18px 34px rgba(53,86,120,0.18); }
.colcard:hover .colcard-arrow { opacity: 1; transform: translateX(0); }
.colcard-arrow { opacity: 0; transform: translateX(-6px); transition: all .35s ease; }

/* Horizontal gallery */
.gallery-track { scrollbar-width: none; -ms-overflow-style: none; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-track.dragging { cursor: grabbing; scroll-snap-type: none; }
@media (max-width: 640px) {
  .gallery-track [data-gitem] { flex-basis: 78vw !important; height: 380px !important; }
  .gallery-track { padding-left: 11vw !important; padding-right: 11vw !important; }
}

/* ===== WooCommerce — single product ===== */
.mn-pdp-addtocart form.cart { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.mn-pdp-addtocart .quantity { display: none; }
.mn-pdp-addtocart .single_add_to_cart_button,
.mn-pdp-addtocart .button {
  width: 100%; background: #FE7FC6 !important; color: #fff !important; border: none !important;
  padding: 15px 20px !important; border-radius: 8px !important; font-size: 12px !important;
  font-weight: 600 !important; letter-spacing: 0.8px !important; text-transform: uppercase !important;
  font-family: 'Poppins', sans-serif !important; cursor: pointer; transition: all .25s ease; box-shadow: none !important;
  text-align: center;
}
.mn-pdp-addtocart .single_add_to_cart_button:hover { background: #ea5fb0 !important; }
.mn-pdp-addtocart .stock { font-size: 12.5px; color: #93817a; margin: 10px 0 0; }
.mn-pdp-addtocart .stock.out-of-stock { color: #b4413c; font-weight: 600; }
.mn-pdp-buynow {
  flex: 1; display: flex; align-items: center; justify-content: center; border: 1.5px solid #472F29; color: #472F29;
  border-radius: 8px; padding: 15px 20px; font-size: 12px; font-weight: 600; letter-spacing: 0.8px;
  text-transform: uppercase; font-family: 'Poppins', sans-serif; text-decoration: none; transition: all .25s ease;
}
.mn-pdp-buynow:hover { background: #472F29; color: #fff; }
.mn-pdp-thumb { transition: border-color .2s ease; }

/* Accordion (Description / Shipping / Reviews) */
.mn-acc { border-bottom: 1px solid rgba(71,47,41,0.14); }
.mn-acc summary {
  display: flex; align-items: center; justify-content: space-between; padding: 16px 0; cursor: pointer;
  font-size: 11.5px; letter-spacing: 1px; font-weight: 700; color: #472F29; text-transform: uppercase;
  list-style: none; font-family: 'Poppins', sans-serif;
}
.mn-acc summary::-webkit-details-marker { display: none; }
.mn-acc summary::after { content: '+'; font-size: 16px; font-weight: 400; color: #93817a; }
.mn-acc[open] summary::after { content: '\2212'; }
.mn-acc-body { font-size: 13.5px; line-height: 1.8; color: #5a463f; padding-bottom: 20px; }
.mn-acc-body p { margin: 0 0 10px; }
.mn-acc-body ul, .mn-acc-body ol { margin: 0 0 10px; padding-left: 20px; }

/* WooCommerce native review list/form, restyled to match */
#reviews .commentlist { list-style: none; margin: 0 0 20px; padding: 0; }
#reviews .comment { border-bottom: 1px solid rgba(71,47,41,0.1); padding: 16px 0; }
#reviews .comment_container { display: flex; gap: 12px; }
#reviews .avatar { border-radius: 50%; width: 40px; height: 40px; flex-shrink: 0; }
#reviews .woocommerce-review__author { font-weight: 600; color: #472F29; font-size: 13px; }
#reviews .woocommerce-review__dash { display: none; }
#reviews .woocommerce-review__published-date { color: #93817a; font-size: 11.5px; }
#reviews .star-rating { color: #B8893B; font-size: 13px; }
#reviews .comment-text p { color: #5a463f; font-size: 13px; line-height: 1.7; }
#reviews #review_form_wrapper .comment-form input[type="text"],
#reviews #review_form_wrapper .comment-form input[type="email"],
#reviews #review_form_wrapper .comment-form textarea {
  width: 100%; border: 1.5px solid rgba(71,47,41,0.18); border-radius: 10px; padding: 10px 14px;
  font-family: 'Poppins', sans-serif; font-size: 13px; color: #472F29; margin-top: 6px;
}
#reviews #review_form_wrapper .comment-form-rating select { display: none; }
#reviews #respond .form-submit input {
  background: #472F29 !important; color: #fff !important; border: none !important; border-radius: 8px !important;
  padding: 12px 24px !important; font-size: 12px !important; font-weight: 600 !important; text-transform: uppercase;
  letter-spacing: 0.6px; cursor: pointer; font-family: 'Poppins', sans-serif; margin-top: 10px;
}
#reviews p.stars a { color: #B8893B; }
.woocommerce-message, .woocommerce-error, .woocommerce-info {
  max-width: 1136px; margin: 24px auto !important; border-radius: 14px !important; border-top: 3px solid #5BAED4 !important;
  background: #fff !important; color: #472F29 !important; font-family: 'Poppins', sans-serif; font-size: 13.5px;
  padding: 16px 20px !important; list-style: none !important;
}
.woocommerce-message::before, .woocommerce-error::before, .woocommerce-info::before { display: none !important; }
.woocommerce-message a.button, .woocommerce-message .button {
  background: #472F29 !important; color: #fff !important; border-radius: 20px !important; padding: 8px 18px !important;
  font-size: 11.5px !important; font-weight: 600 !important; text-transform: uppercase;
}

/* ===== WooCommerce — shop / category archive ===== */
.mn-shop-card { transition: transform .3s cubic-bezier(.2,.7,.3,1); }
.mn-shop-card:hover { transform: translateY(-6px); }
.mn-shop-card:hover img { transform: scale(1.06); }
.mn-shop-card img { transition: transform .4s ease; }
.mn-shop-card .button,
.mn-shop-card .added_to_cart {
  display: inline-block; background: #FE7FC6 !important; color: #fff !important; border: none !important;
  padding: 9px 20px !important; border-radius: 22px !important; font-size: 11.5px !important; font-weight: 600 !important;
  letter-spacing: 0.5px !important; text-transform: uppercase !important; font-family: 'Poppins', sans-serif !important;
  text-decoration: none !important; cursor: pointer; transition: all .25s ease; box-shadow: none !important;
}
.mn-shop-card .button:hover { background: #ea5fb0 !important; }
.mn-shop-bar select {
  border: 1.5px solid rgba(71,47,41,0.2); border-radius: 20px; padding: 8px 16px; font-size: 12px;
  font-family: 'Poppins', sans-serif; color: #472F29; background: #fff;
}
.woocommerce-pagination ul { display: flex; gap: 8px; justify-content: center; list-style: none; padding: 0; margin: 0; }
.woocommerce-pagination .page-numbers {
  display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%;
  border: 1.5px solid rgba(71,47,41,0.18); color: #472F29; font-size: 12.5px; font-weight: 600; text-decoration: none;
}
.woocommerce-pagination .page-numbers.current,
.woocommerce-pagination .page-numbers:hover { background: #5BAED4; border-color: #5BAED4; color: #fff; }

/* Hero image slider */
.mn-hs-arrow { transition: background .25s ease, transform .25s ease; }
.mn-hs-arrow:hover { background: #fff !important; transform: translateY(-50%) scale(1.08); }
.mn-hs-dot { transition: background .25s ease, width .25s ease; cursor: pointer; padding: 0; border: none; height: 8px; border-radius: 4px; }
.mn-hs-dot:hover { background: rgba(255,255,255,0.75) !important; }
@media (max-width: 640px) {
  .mn-hero-slider { height: 380px !important; }
  .mn-hs-slide-copy { padding: 26px 24px !important; }
}

/* Craft steps reveal-on-scroll */
.mn-craft { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
.mn-craft.mn-in { opacity: 1; transform: translateY(0); }
.mn-craft .mn-craft-circle { transform: scale(.6); transition: transform .35s ease, box-shadow .35s ease; }
.mn-craft.mn-in .mn-craft-circle { transform: scale(1); }
.mn-craft .mn-craft-circle:hover { transform: scale(1.08); box-shadow: 0 10px 22px rgba(53,55,66,0.14); }

/* Generic two-column stacks on mobile */
@media (max-width: 860px) {
  .mn-2col { grid-template-columns: 1fr !important; gap: 40px !important; }
  .mn-ig-grid { grid-template-columns: repeat(3,1fr) !important; }
  .mn-footer-cols { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 560px) {
  .mn-craft-grid { grid-template-columns: repeat(2,1fr) !important; }
}

/* ===== About / The World of Minella ===== */
@keyframes driftX { 0%,100% { transform: translateX(0); } 50% { transform: translateX(30px); } }
@keyframes glowPulse { 0%,100% { opacity: .5; } 50% { opacity: .9; } }
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.3,1); }
.reveal.in { opacity: 1; transform: none; }
.famcard { transition: transform .5s cubic-bezier(.2,.7,.3,1), box-shadow .5s ease; }
.famcard:hover { transform: translateY(-14px); box-shadow: 0 30px 60px rgba(71,47,41,.18); }
.famcard:hover .fam-char { animation: floatY 1.4s ease-in-out infinite; }
.famcard:hover .fam-spark { opacity: 1; }
.fam-spark { opacity: 0; transition: opacity .4s ease; }
.friendcard:hover .friend-char { animation: floatY 1.6s ease-in-out infinite; }
.maploc { transition: transform .3s ease; }
.maploc:hover { transform: scale(1.12) translate(-45%,-45%); z-index: 5; }
.maploc:hover .maploc-tip { opacity: 1; visibility: visible; transform: translate(-50%, -8px); }
.maploc-tip { opacity: 0; visibility: hidden; transition: all .3s ease; }
.collink:hover .collink-img { transform: rotate(-4deg) scale(1.05); }
@media (max-width: 860px) {
  .mn-about-2col { grid-template-columns: 1fr !important; gap: 40px !important; }
}

/* ===== Create builder ===== */
@keyframes spinY { from { transform: rotateY(0deg); } to { transform: rotateY(360deg); } }
.opt { cursor: pointer; transition: transform .25s ease, box-shadow .25s ease, border-color .2s ease; }
.opt:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(71,47,41,0.12); }
.bl { display: inline-block; transition: transform .2s cubic-bezier(.34,1.7,.5,1), color .2s ease; }
.bl:hover { transform: translateY(-14px) scale(1.15); color: #5BAED4; }
.prog-row { display: flex; align-items: center; gap: 6px; margin-bottom: 32px; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; }
.prog-row::-webkit-scrollbar { height: 0; }
.chip { transition: all .2s ease; }
@media (max-width: 980px) {
  .builder-grid { grid-template-columns: 1fr !important; }
  .preview-panel { position: static !important; }
}
@media (max-width: 640px) {
  .create-builder { padding: 26px 16px 32px !important; }
  .create-builder .step-panel { padding: 22px 16px !important; border-radius: 18px !important; }
  .create-builder .opt { padding: 22px 10px !important; }
  .create-builder .opt-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .prog-row .prog-label { display: none; }
  .prog-row { gap: 4px; }
}
