/*
Theme Name: Kylie's Creations
Theme URI: https://kylies-creations.au
Description: Snow Globe & Tumbler Creations — custom WordPress theme
Author: Kylie
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kylies-creations
*/

/* ============================================================
   DESIGN TOKENS
============================================================ */
:root{
  --deep-purple:#5B2D91;
  --royal-purple:#7B4BC4;
  --lilac:#C9A8E8;
  --mist:#F6F0FC;
  --white:#FFFFFF;
  --ink:#3A2456;
  --sparkle:#B07FE8;
}

/* ============================================================
   RESET & BASE
============================================================ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Jost',sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  font-weight:300;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.script{font-family:'Great Vibes',cursive;font-weight:400}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.35em;
  font-size:.75rem;
  font-weight:500;
  color:var(--royal-purple);
}
.eyebrow::before,.eyebrow::after{content:"—";margin:0 .6em;color:var(--lilac)}

/* ============================================================
   NAV
============================================================ */
nav, .site-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;justify-content:space-between;align-items:center;
  padding:1rem 6vw;
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(123,75,196,.12);
}
.site-nav .brand{font-family:'Great Vibes',cursive;font-size:1.7rem;color:var(--deep-purple);text-decoration:none}
.site-nav .nav-menu{display:flex;gap:2.2rem;list-style:none;align-items:center}
.site-nav .nav-menu a{
  text-decoration:none;color:var(--ink);
  font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;font-weight:400;
}
.site-nav .nav-menu a:hover{color:var(--royal-purple)}
.site-nav .nav-menu a:focus-visible{outline:2px solid var(--royal-purple);outline-offset:4px}
.nav-cta,.site-nav .nav-menu .nav-cta > a{
  background:var(--deep-purple) !important;color:#fff !important;
  padding:.55rem 1.4rem;border-radius:999px;font-weight:500;
  text-decoration:none;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;
}
.nav-cta:hover,.site-nav .nav-menu .nav-cta > a:hover{background:var(--royal-purple) !important}
.menu-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--deep-purple);cursor:pointer}

/* ============================================================
   HERO / GLOBE
============================================================ */
.shop-hero{
  min-height:70vh;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;
  background:
    radial-gradient(ellipse 70% 55% at 50% 42%, #EBDDFA 0%, var(--mist) 55%, #fff 100%);
  position:relative;
  overflow:hidden;
  padding:8rem 6vw 4rem;
}
.globe{
  position:relative;
  width:min(280px,65vw);height:min(280px,65vw);
  border-radius:50%;
  background:
    radial-gradient(circle at 32% 28%, rgba(255,255,255,.95) 0%, rgba(255,255,255,0) 34%),
    radial-gradient(circle at 50% 60%, rgba(201,168,232,.45) 0%, rgba(123,75,196,.28) 70%, rgba(91,45,145,.35) 100%);
  border:2px solid rgba(255,255,255,.9);
  box-shadow:
    inset 0 0 55px rgba(176,127,232,.4),
    0 24px 60px -18px rgba(91,45,145,.35);
  cursor:pointer;
  margin-bottom:.5rem;
}
.globe::after{
  content:"";
  position:absolute;bottom:-28px;left:50%;transform:translateX(-50%);
  width:56%;height:34px;border-radius:10px 10px 22px 22px;
  background:linear-gradient(180deg,var(--royal-purple),var(--deep-purple));
  box-shadow:0 14px 26px -10px rgba(91,45,145,.5);
}
.globe .word{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-family:'Great Vibes',cursive;
  font-size:clamp(3rem,11vw,4.6rem);
  color:var(--deep-purple);
  text-shadow:0 2px 14px rgba(255,255,255,.9);
  user-select:none;
}
.flake{
  position:absolute;top:-8%;
  color:#fff;
  text-shadow:0 0 6px rgba(176,127,232,.9);
  animation:fall linear infinite;
  pointer-events:none;
}
@keyframes fall{
  0%{transform:translateY(0) rotate(0deg);opacity:0}
  8%{opacity:1}
  100%{transform:translateY(320px) rotate(200deg);opacity:0}
}
.shop-hero h1{
  font-size:clamp(1rem,2.2vw,1.35rem);
  letter-spacing:.42em;text-transform:uppercase;font-weight:500;
  color:var(--deep-purple);
  margin-top:3rem;
}
.shop-hero .tagline{
  max-width:34rem;margin-top:.9rem;color:#6A5486;font-size:1.05rem;
}
.shake-hint{margin-top:.8rem;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sparkle)}
.hero-actions{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap;justify-content:center}

/* ============================================================
   BUTTONS
============================================================ */
.btn{
  display:inline-block;text-decoration:none;border-radius:999px;
  padding:.85rem 2.2rem;font-weight:500;letter-spacing:.06em;font-size:.95rem;
  transition:transform .18s ease, box-shadow .18s ease;
  font-family:'Jost',sans-serif;cursor:pointer;border:none;
}
.btn:focus-visible{outline:2px solid var(--deep-purple);outline-offset:3px}
.btn-primary{
  background:linear-gradient(120deg,var(--deep-purple),var(--royal-purple));
  color:#fff !important;
  box-shadow:0 10px 26px -10px rgba(91,45,145,.55);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px -12px rgba(91,45,145,.6)}
.btn-ghost{border:1.5px solid var(--lilac) !important;color:var(--deep-purple) !important;background:transparent}
.btn-ghost:hover{background:var(--mist) !important}

/* ============================================================
   SECTIONS
============================================================ */
section{padding:5.5rem 6vw}
.section-head{text-align:center;max-width:38rem;margin:0 auto 3.2rem}
.section-head h2{
  font-family:'Great Vibes',cursive;font-size:clamp(2.6rem,5vw,3.4rem);
  color:var(--deep-purple);font-weight:400;margin-top:.4rem;
}
.section-head p{color:#6A5486;margin-top:.6rem}

/* ============================================================
   PRODUCT CARDS (shared by static cards & WooCommerce)
============================================================ */
#shop{background:linear-gradient(180deg,#fff 0%,var(--mist) 100%)}
.grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1.8rem;max-width:1100px;margin:0 auto;
}
.card{
  background:#fff;border-radius:20px;overflow:hidden;
  border:1px solid rgba(123,75,196,.14);
  box-shadow:0 12px 30px -18px rgba(91,45,145,.25);
  transition:transform .2s ease, box-shadow .2s ease;
  display:flex;flex-direction:column;
}
.card:hover{transform:translateY(-5px);box-shadow:0 22px 44px -18px rgba(91,45,145,.35)}
.card-img{
  height:190px;
  display:flex;align-items:center;justify-content:center;
  font-size:3.4rem;
  background:radial-gradient(circle at 50% 30%,#EFE3FB 0%,#DCC6F2 100%);
}
.card-body{padding:1.4rem 1.5rem 1.7rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.card-body h3{font-weight:500;font-size:1.08rem;letter-spacing:.02em}
.card-body p{font-size:.92rem;color:#6A5486;flex:1}
.price{color:var(--deep-purple);font-weight:600;font-size:1.05rem}
.card .btn{margin-top:.8rem;text-align:center;padding:.65rem 1.4rem;font-size:.88rem}

/* ============================================================
   CUSTOM ORDERS
============================================================ */
.split{
  display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;
  max-width:1050px;margin:0 auto;
}
.split .art{
  aspect-ratio:1;border-radius:24px;
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,.75) 0%, transparent 40%),
    linear-gradient(150deg,#D9C2F3 0%,var(--royal-purple) 100%);
  display:flex;align-items:center;justify-content:center;
  font-family:'Great Vibes',cursive;font-size:2.4rem;color:#fff;
  text-shadow:0 2px 10px rgba(58,36,86,.4);
  box-shadow:0 24px 50px -20px rgba(91,45,145,.45);
  padding:2rem;text-align:center;
}
.steps{list-style:none;display:flex;flex-direction:column;gap:1.5rem;margin-top:1.8rem}
.steps li{display:flex;gap:1.1rem;align-items:flex-start}
.steps .dot{
  flex-shrink:0;width:38px;height:38px;border-radius:50%;
  background:var(--mist);border:1.5px solid var(--lilac);
  display:flex;align-items:center;justify-content:center;
  color:var(--deep-purple);font-weight:600;font-size:.9rem;
}
.steps h4{font-weight:500;font-size:1rem}
.steps p{font-size:.92rem;color:#6A5486}

/* ============================================================
   CONTACT FORM
============================================================ */
#contact{background:linear-gradient(180deg,var(--mist) 0%,#EDE0FB 100%)}
.contact-wrap{max-width:680px;margin:0 auto}
.contact-form{
  background:#fff;border-radius:24px;
  border:1px solid rgba(123,75,196,.16);
  box-shadow:0 20px 50px -20px rgba(91,45,145,.22);
  padding:2.8rem 3rem;margin-top:2.4rem;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.form-group{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.2rem}
.form-group label{
  font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:500;color:var(--deep-purple);
}
.form-group input,
.form-group select,
.form-group textarea{
  font-family:'Jost',sans-serif;font-size:.95rem;font-weight:300;
  color:var(--ink);
  border:1.5px solid rgba(123,75,196,.28);
  border-radius:12px;
  padding:.75rem 1rem;
  background:#fff;
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease;
  width:100%;
  appearance:none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  border-color:var(--royal-purple);
  box-shadow:0 0 0 3px rgba(123,75,196,.14);
}
.form-group textarea{resize:vertical;min-height:130px}
.form-group select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237B4BC4' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  padding-right:2.4rem;
}
.form-submit{width:100%;margin-top:.6rem;font-size:1rem;padding:.95rem}
.form-note{font-size:.8rem;color:#9B7FC4;text-align:center;margin-top:1rem}
.form-note a{color:var(--royal-purple)}
#form-success{display:none;text-align:center;padding:2.4rem 1.5rem;color:var(--deep-purple)}
#form-success .check{font-size:2.4rem;margin-bottom:.8rem}
#form-success h3{font-family:'Great Vibes',cursive;font-size:2rem;font-weight:400}
#form-success p{color:#6A5486;font-size:.95rem;margin-top:.5rem}

/* ============================================================
   FOOTER
============================================================ */
.site-footer{
  background:linear-gradient(150deg,var(--deep-purple),#432066);
  color:#E9DCF8;text-align:center;
  padding:3.5rem 6vw 2.5rem;
}
.site-footer .script{font-size:2.6rem;color:#fff}
.site-footer p{max-width:30rem;margin:1rem auto 0;font-size:.95rem;color:#CBB3E8}
.socials{display:flex;gap:1.4rem;justify-content:center;margin-top:1.8rem}
.socials a{
  color:#fff;text-decoration:none;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px;
}
.socials a:hover{border-color:#fff}
.fineprint{margin-top:3rem;font-size:.75rem;color:#9B7FC4}

/* ============================================================
   WOOCOMMERCE OVERRIDES
============================================================ */

/* --- Product grid --- */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important;
  gap:1.8rem !important;
  max-width:1100px;
  margin:0 auto !important;
  list-style:none;padding:0;
  float:none !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  background:#fff;border-radius:20px;overflow:hidden;
  border:1px solid rgba(123,75,196,.14);
  box-shadow:0 12px 30px -18px rgba(91,45,145,.25);
  transition:transform .2s ease, box-shadow .2s ease;
  display:flex !important;flex-direction:column;
  width:auto !important;float:none !important;
  margin:0 !important;
  padding:0 !important;
}
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover{
  transform:translateY(-5px);
  box-shadow:0 22px 44px -18px rgba(91,45,145,.35);
}

/* Product image */
.woocommerce ul.products li.product a img{
  width:100% !important;
  height:190px !important;
  object-fit:cover;
  border-radius:0;
  display:block;
}
.woocommerce ul.products li.product .woocommerce-loop-product__link{
  display:flex;flex-direction:column;flex:1;text-decoration:none;color:inherit;
}
/* Placeholder when no image */
.woocommerce ul.products li.product .woocommerce-placeholder{
  height:190px;
  background:radial-gradient(circle at 50% 30%,#EFE3FB 0%,#DCC6F2 100%);
}

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:'Jost',sans-serif !important;
  font-weight:500 !important;
  font-size:1.08rem !important;
  letter-spacing:.02em;
  color:var(--ink) !important;
  padding:1.2rem 1.5rem .3rem !important;
  margin:0 !important;
}

/* Price */
.woocommerce ul.products li.product .price{
  color:var(--deep-purple) !important;
  font-weight:600;font-size:1.05rem;
  padding:0 1.5rem .5rem;display:block;
}
.woocommerce ul.products li.product .price ins{
  text-decoration:none;
}

/* Add to cart button */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  display:block !important;
  margin:auto 1.5rem 1.5rem !important;
  text-align:center;text-decoration:none;
  border-radius:999px !important;
  padding:.65rem 1.4rem !important;
  font-weight:500 !important;font-size:.88rem !important;
  letter-spacing:.06em;
  background:linear-gradient(120deg,var(--deep-purple),var(--royal-purple)) !important;
  color:#fff !important;
  box-shadow:0 10px 26px -10px rgba(91,45,145,.55);
  transition:transform .18s ease, box-shadow .18s ease;
  border:none !important;
  font-family:'Jost',sans-serif !important;
}
.woocommerce ul.products li.product .button:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 32px -12px rgba(91,45,145,.6);
  background:linear-gradient(120deg,var(--royal-purple),var(--deep-purple)) !important;
  color:#fff !important;
}

/* --- Single product page --- */
.woocommerce div.product .product_title{
  font-family:'Great Vibes',cursive !important;
  font-size:clamp(2.2rem,4vw,3rem) !important;
  color:var(--deep-purple);font-weight:400 !important;
  line-height:1.2;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--deep-purple) !important;
  font-size:1.4rem;font-weight:600;
}
.woocommerce div.product .single_add_to_cart_button.button{
  background:linear-gradient(120deg,var(--deep-purple),var(--royal-purple)) !important;
  border:none !important;border-radius:999px !important;
  font-family:'Jost',sans-serif !important;
  font-weight:500 !important;
  padding:.85rem 2.4rem !important;
  font-size:.95rem !important;
  letter-spacing:.06em !important;
  box-shadow:0 10px 26px -10px rgba(91,45,145,.55);
  transition:transform .18s ease,box-shadow .18s ease;
}
.woocommerce div.product .single_add_to_cart_button.button:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 32px -12px rgba(91,45,145,.6);
}

/* --- Cart & Checkout --- */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce{
  max-width:1100px;margin:0 auto;
  padding:3rem 6vw;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit{
  background:linear-gradient(120deg,var(--deep-purple),var(--royal-purple)) !important;
  color:#fff !important;
  border-radius:999px !important;
  border:none !important;
  font-family:'Jost',sans-serif !important;
  font-weight:500 !important;
  padding:.75rem 1.8rem !important;
  font-size:.9rem !important;
  letter-spacing:.06em;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover{
  background:linear-gradient(120deg,var(--royal-purple),var(--deep-purple)) !important;
  color:#fff !important;
}

/* Checkout fields */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  border:1.5px solid rgba(123,75,196,.28) !important;
  border-radius:12px !important;
  font-family:'Jost',sans-serif !important;
  font-weight:300 !important;
  padding:.75rem 1rem !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
  border-color:var(--royal-purple) !important;
  box-shadow:0 0 0 3px rgba(123,75,196,.14) !important;
  outline:none !important;
}

/* Order page headings */
.woocommerce h2, .woocommerce h3{
  color:var(--deep-purple);
  font-weight:500;
}

/* Breadcrumbs */
.woocommerce-breadcrumb{
  color:#6A5486;font-size:.85rem;
  padding:1.5rem 6vw .5rem;
  max-width:1300px;margin:0 auto;
}
.woocommerce-breadcrumb a{color:var(--royal-purple);text-decoration:none}

/* Notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  border-top-color:var(--royal-purple) !important;
}

/* Sale badge */
.woocommerce span.onsale{
  background:var(--deep-purple) !important;
  border-radius:999px !important;
  font-family:'Jost',sans-serif !important;
  font-weight:500 !important;
  min-height:auto !important;
  min-width:auto !important;
  padding:.3rem .8rem !important;
  line-height:1.4 !important;
}

/* Shop page wrapper */
.wc-shop-wrap{
  padding:3rem 6vw 5rem;
}
.woocommerce-products-header{
  text-align:center;max-width:38rem;margin:0 auto 3rem;
}
.woocommerce-products-header .woocommerce-products-header__title{
  font-family:'Great Vibes',cursive;
  font-size:clamp(2.6rem,5vw,3.4rem);
  color:var(--deep-purple);font-weight:400;
  margin-top:.4rem;
}

/* Ordering/result-count bar */
.woocommerce .woocommerce-ordering select{
  border:1.5px solid rgba(123,75,196,.28);
  border-radius:12px;
  font-family:'Jost',sans-serif;
  padding:.5rem 2.2rem .5rem .9rem;
  color:var(--ink);
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237B4BC4' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .8rem center;
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media (prefers-reduced-motion: reduce){
  .flake{animation:none;display:none}
  .card:hover,.btn-primary:hover,
  .woocommerce ul.products li.product:hover{transform:none}
  html{scroll-behavior:auto}
}
@media (max-width:760px){
  .site-nav .nav-menu{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;background:#fff;
    border-bottom:1px solid rgba(123,75,196,.15);
    display:none;padding:1rem 0;
  }
  .site-nav .nav-menu.open{display:flex}
  .site-nav .nav-menu li{padding:.7rem 6vw;width:100%;text-align:center}
  .menu-toggle{display:block}
  .split{grid-template-columns:1fr;gap:2.5rem}
  section{padding:4rem 6vw}
  .form-row{grid-template-columns:1fr}
  .contact-form{padding:2rem 1.5rem}
}
