/*
Theme Name: Sweet Treats Luxe
Theme URI: https://example.com/sweet-treats-luxe
Author: Cursor Assistant
Description: Luxury cake boutique theme inspired by Sweet Treats Online design.
Version: 1.0.0
Text Domain: sweet-treats-luxe
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600;700&family=Inter:wght@300;400;500&family=Pinyon+Script&display=swap');

:root {
  --background: #fafafa;
  --foreground: #332a22;
  --card: #fcfaf7;
  --muted: #ece5dc;
  --muted-foreground: #75685b;
  --border: #ddd2c5;
  --gold: #b79b52;
  --gradient-gold: linear-gradient(135deg, #c8aa61, #9c7d3f);
  --shadow-elegant: 0 30px 60px -20px rgba(91, 65, 27, 0.18);
  --shadow-soft: 0 10px 30px -12px rgba(91, 65, 27, 0.12);
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--background) !important; color: var(--foreground); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, h5 { margin: 0; font-family: 'Cormorant Garamond', serif; font-weight: 400; letter-spacing: -0.01em; }
.container { width: min(1200px, 92%); margin: 0 auto; }
.font-script { font-family: 'Pinyon Script', cursive; }
.tracking-luxury { letter-spacing: .3em; text-transform: uppercase; }
.text-gold { color: var(--gold); }
.btn { display: inline-block; border: 1px solid var(--foreground); padding: .78rem 2rem; text-transform: uppercase; letter-spacing: .24em; font-size: .68rem; transition: all .25s ease; }
.btn-dark { background: var(--foreground); color: var(--background); }
.btn-dark:hover { opacity: .88; }
.btn-outline:hover { background: var(--foreground); color: var(--background); }
.site-header { position: absolute; inset: 0 0 auto; z-index: 20; }
.site-header-inner { padding: 1.3rem 0; display: flex; justify-content: space-between; align-items: center; }
.site-logo img { height: 84px; width: auto; }
.main-nav ul {
  display: flex;
  gap: 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.main-nav li { margin: 0; padding: 0; }
.main-nav a { font-size: .68rem; display: inline-block; }
.main-nav a:hover, .main-nav .current-menu-item > a { color: var(--gold); }
.menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border: 1px solid var(--border);
  background: #fff;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}
.menu-toggle span {
  display: block;
  width: 18px;
  height: 1px;
  background: var(--foreground);
}
.mobile-nav {
  display: none;
  background: rgba(250, 250, 250, .98);
  border-top: 1px solid var(--border);
}
.mobile-nav ul {
  margin: 0;
  padding: 1rem 0 1.25rem;
  list-style: none;
}
.mobile-nav li {
  margin: 0;
  padding: 0;
}
.mobile-nav a {
  display: block;
  font-size: .72rem;
  padding: .55rem 0;
}
.hero { min-height: 95vh; display: grid; align-items: center; position: relative; overflow: hidden; }
.hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(250,250,250,.92), rgba(250,250,250,1)); }
.hero-grid { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3rem; padding: 8.5rem 0 4rem; }
.hero-title { font-size: clamp(2.8rem, 6vw, 5.4rem); line-height: 1.05; margin: .8rem 0 1rem; }
.hero-title .font-script { display: block; font-size: clamp(3.2rem, 7vw, 6.5rem); line-height: 1; margin-top: .4rem; }
.hero-image { box-shadow: var(--shadow-elegant); width: 100%; height: 640px; object-fit: cover; }
.section { padding: 5rem 0; }
.section.center { text-align: center; }
.section-title { font-size: clamp(2rem, 4vw, 4rem); margin-bottom: .8rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
.cake-card img { width: 100%; height: 460px; object-fit: cover; }
.cake-card h3 { font-size: 2rem; margin-top: .4rem; }
.cake-card .meta { color: var(--muted-foreground); font-style: italic; font-size: .95rem; }
.cta { background: var(--foreground); color: var(--background); text-align: center; padding: 5rem 2rem; position: relative; overflow: hidden; }
.cta::before { content: ''; position: absolute; inset: 0; background: var(--gradient-gold); opacity: .2; }
.cta > * { position: relative; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce .price { color: var(--gold) !important; font-weight: 400 !important; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .single_add_to_cart_button.button.alt { border-radius: 0 !important; background: var(--foreground) !important; color: var(--background) !important; text-transform: uppercase; letter-spacing: .2em; font-size: .65rem; padding: .85rem 1.5rem !important; }

/* WooCommerce variation (size) styling to match theme */
.woocommerce div.product form.cart .variations {
  margin-bottom: 1.2rem;
}
.woocommerce div.product form.cart .variations label {
  font-size: .72rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--foreground);
}
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
  padding: .25rem .35rem .25rem 0;
}
.woocommerce div.product form.cart .variations select,
.woocommerce-page div.product form.cart .variations select {
  width: 100%;
  max-width: 320px;
  height: 2.5rem;
  border: 1px solid var(--border);
  border-radius: 0;
  background-color: #fff;
  color: var(--foreground);
  font-size: .95rem;
  font-family: 'Inter', sans-serif;
  padding: 0 .75rem;
  box-shadow: none;
}
.woocommerce div.product form.cart .variations select:focus,
.woocommerce-page div.product form.cart .variations select:focus {
  outline: none;
  border-color: var(--gold);
}
.woocommerce div.product form.cart .reset_variations {
  font-size: .7rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
.site-footer { margin-top: 4rem; border-top: 1px solid var(--border); background: rgba(233, 226, 216, 0.55); }
.footer-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; padding: 4rem 0; }
.footer-bottom { border-top: 1px solid var(--border); padding: 1.2rem 0; font-size: .78rem; color: #75685b; }
.footer-signature-wrap { display: inline-flex; align-items: center; gap: .6rem; }
.footer-ig-link { display: inline-flex; align-items: center; justify-content: center; color: var(--gold); }
.footer-ig-link svg { width: 17px; height: 17px; fill: currentColor; }
.footer-ig-link:hover { opacity: .8; }

/* Hide embedded map on Contact Us page */
.page-template-page-contact iframe[src*="google.com/maps"],
.page-template-page-contact iframe[src*="maps.google"],
.page-template-page-contact .wp-block-embed-google-map,
.page-template-page-contact .wp-block-jetpack-map {
  display: none !important;
}

/* Owner-managed gallery styling (Gutenberg Gallery block) */
.owner-gallery-content .wp-block-gallery {
  margin: 0;
  gap: 1.5rem;
}
.owner-gallery-content .wp-block-image img,
.owner-gallery-content .wp-block-gallery img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  box-shadow: var(--shadow-soft);
}
.owner-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
.owner-gallery-item {
  margin: 0;
}
.owner-gallery-item img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  box-shadow: var(--shadow-soft);
}
.owner-gallery-item figcaption {
  padding-top: .75rem;
}
.owner-gallery-item h3 {
  font-size: 2rem;
}
@media (max-width: 992px) { .hero-grid, .grid-3, .woocommerce ul.products, .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 992px) { .owner-gallery-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 768px) {
  .hero-grid, .grid-3, .woocommerce ul.products, .footer-grid, .owner-gallery-grid { grid-template-columns: 1fr; }
  .main-nav { display: none; }
  .menu-toggle { display: inline-flex; }
  .mobile-nav.is-open { display: block; }
  .hero-image { height: 460px; }
}
