/*
Theme Name: June Moon
Theme URI: https://junemoon.in
Author: June Moon
Description: Editorial WooCommerce storefront theme for hand block printed home textiles and apparel. Includes a full-width front page with hero collage, shoppable reels, Instagram grid, product carousels, reviews and blog diary.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: junemoon
Tags: e-commerce, woocommerce, one-column, custom-menu, featured-images, blog
*/

/* June Moon — hand block print storefront theme */
@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Jost:wght@300;400;500&display=swap');

:root{
  --brand:#a4185c;
  --brand-dark:#8a1450;
  --brand-soft:#fdf2f6;
  --cream:#f8f5ef;
  --ink:#3a3340;
  --ink-soft:#7c7583;
  --line:#e8dfe4;
  --bg:#ffffff;
  --wrap:1400px;
}
*{box-sizing:border-box;margin:0;padding:0}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
body{font-family:'Jost',system-ui,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
h1,h2,h3,.display{font-family:'Marcellus',Georgia,serif;font-weight:400}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 16px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:#fff;font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:12px 34px;transition:opacity .2s;border:0;cursor:pointer}
.btn:hover{opacity:.85}
.btn-outline{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--brand);color:var(--brand);background:none;font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:12px 34px;transition:.2s;cursor:pointer}
.btn-outline:hover{background:var(--brand);color:#fff}
.center{text-align:center}
.mt40{margin-top:40px}

/* topbar + header */
.topbar{background:var(--brand);color:#fff;font-size:11px;letter-spacing:.09em}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:8px;padding-bottom:8px}
.topbar .mid{margin:0 auto;text-align:center}
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;gap:24px;padding-top:16px;padding-bottom:16px}
.brandmark{font-family:'Marcellus',serif;font-size:24px;letter-spacing:.3em;color:var(--brand)}
.mainnav{margin:0 auto;display:flex;gap:24px;flex-wrap:wrap}
.mainnav a,.mainnav li a{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink)}
.mainnav a:hover{color:var(--brand)}
.mainnav ul{display:flex;gap:24px;list-style:none}
.icons{display:flex;gap:16px;align-items:center;margin-left:auto;color:var(--ink)}
.icons svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.4}
.cart-dot{position:relative}
.cart-dot span{position:absolute;top:-8px;right:-8px;width:16px;height:16px;border-radius:50%;background:var(--brand);color:#fff;font-size:9px;display:grid;place-items:center}
.menu-toggle{display:none;background:none;border:0;font-size:20px;color:var(--ink);cursor:pointer}

/* hero */
.hero{display:grid;grid-template-columns:.55fr .45fr;gap:4px;max-width:1600px;margin:0 auto;padding:4px 4px 0}
.hero-collage{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.hero-collage img{aspect-ratio:1/1;width:100%;object-fit:cover}
.hero-main{position:relative}
.hero-main>img{width:100%;height:100%;min-height:320px;object-fit:cover}
.hero-copy{position:absolute;left:0;right:0;bottom:0;padding:40px 24px;text-align:center;background:linear-gradient(to top,rgba(0,0,0,.5),transparent)}
.hero-copy h1{font-size:clamp(26px,3.2vw,44px);letter-spacing:.12em;color:#fff}
.hero-copy p{margin-top:8px;font-size:11px;letter-spacing:.2em;color:rgba(255,255,255,.82)}
.hero-copy .btn{margin-top:20px}

/* marquee */
.marquee{overflow:hidden;background:var(--brand);color:#fff;padding:9px 0}
.marquee-track{display:inline-flex;white-space:nowrap;animation:mq 30s linear infinite}
.marquee-track span{padding:0 32px;font-size:11px;letter-spacing:.25em}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* sections */
section{padding:56px 0}
.section-title{font-family:'Marcellus',serif;font-size:clamp(18px,2.2vw,26px);letter-spacing:.18em;text-transform:uppercase;text-align:center}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:32px}
.card figure{overflow:hidden;background:var(--brand-soft);position:relative}
.card img{aspect-ratio:4/5;width:100%;object-fit:cover;transition:transform .7s}
.card:hover img{transform:scale(1.05)}
.badge{position:absolute;left:12px;top:12px;background:var(--brand);color:#fff;font-size:9px;letter-spacing:.18em;padding:4px 8px;text-transform:uppercase}
.card h3{font-family:'Jost',sans-serif;font-size:12px;font-weight:400;letter-spacing:.03em;margin-top:12px;line-height:1.6}
.price{margin-top:4px;font-size:12px;display:flex;gap:8px}
.price del{color:var(--ink-soft)}

/* reels */
.reels{display:flex;gap:16px;overflow-x:auto;margin-top:32px;padding-bottom:16px}
.reel{position:relative;flex:0 0 19%;min-width:180px}
.reel img{aspect-ratio:2/3;width:100%;object-fit:cover}
.reel .play{position:absolute;inset:0;display:grid;place-items:center}
.reel .play i{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.86);display:grid;place-items:center;color:var(--brand);font-style:normal;font-size:14px}

/* instagram */
.ig-handle{text-align:center;font-family:'Marcellus',serif;font-size:19px;letter-spacing:.2em;color:var(--brand)}
.ig-sub{text-align:center;font-size:11px;letter-spacing:.18em;color:var(--ink-soft);margin-top:4px}
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:24px}
.ig-grid img{aspect-ratio:1/1;width:100%;object-fit:cover;transition:transform .5s}
.ig-grid a:hover img{transform:scale(1.05)}

/* split blocks */
.split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.split h2{font-size:30px;color:var(--brand)}
.split p{margin-top:18px;font-size:13px;line-height:2;color:var(--ink-soft);max-width:520px}
.split .btn,.split .btn-outline{margin-top:26px}
.collage-a{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.collage-a img{width:100%;object-fit:cover;aspect-ratio:3/4}
.collage-a img:first-child{grid-column:span 2;aspect-ratio:4/3}
.collage-b{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.collage-b img{width:100%;aspect-ratio:3/4;object-fit:cover}
.collage-b img:last-child{margin-top:32px}
.soft-bg{background:var(--brand-soft)}
.cream-bg{background:var(--cream)}

/* reviews */
.eyebrow{font-size:11px;letter-spacing:.2em;color:var(--brand)}
.reviews-head h2{font-size:30px;margin-top:8px}
.reviews{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:32px}
.review{border:1px solid var(--line);padding:20px}
.stars{color:var(--brand);letter-spacing:2px;font-size:12px;margin-top:10px}
.review blockquote{font-size:12px;line-height:1.75;color:var(--ink-soft);margin-top:12px}
.review figcaption{display:flex;gap:12px;align-items:center;margin-top:16px;font-size:11px}
.review figcaption img{width:40px;height:40px;object-fit:cover}
.review figcaption b{font-weight:500;display:block}
.review figcaption em{font-style:normal;color:var(--ink-soft)}

/* story */
.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center;max-width:1100px;margin:0 auto}
.story img{aspect-ratio:4/5;width:100%;object-fit:cover}
.story h2{font-size:30px;margin-top:8px}
.story p{margin-top:18px;font-size:13px;line-height:2;color:var(--ink-soft)}
.sign{margin-top:24px;font-family:'Marcellus',serif;font-size:18px;color:var(--brand)}

/* diary */
.diary{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px}
.diary img{aspect-ratio:4/3;width:100%;object-fit:cover}
.diary h3{font-size:19px;margin-top:16px}
.diary p{font-size:12px;line-height:1.7;color:var(--ink-soft);margin-top:8px}
.readmore{display:inline-block;margin-top:12px;font-size:11px;letter-spacing:.18em;color:var(--brand)}

/* footer */
.site-footer{background:var(--cream)}
.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr) 1.4fr;gap:40px;padding:56px 16px}
.site-footer h3{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-family:'Jost',sans-serif;font-weight:500}
.site-footer ul{list-style:none;margin-top:16px;display:grid;gap:8px}
.site-footer li a{font-size:12px;color:var(--ink-soft)}
.site-footer li a:hover{color:var(--brand)}
.footer-about p{font-size:12px;line-height:1.8;color:var(--ink-soft);margin-top:16px;max-width:300px}
.socials{display:flex;gap:12px;margin-top:20px;color:var(--brand);font-size:13px}
.newsletter form{display:flex;margin-top:16px}
.newsletter input{flex:1;border:1px solid var(--line);padding:10px 12px;font-size:12px;font-family:inherit;background:#fff}
.newsletter input:focus{outline:none;border-color:var(--brand)}
.newsletter .btn{padding:10px 18px}
.copyright{border-top:1px solid var(--line);text-align:center;font-size:11px;color:var(--ink-soft);padding:18px 0}

/* responsive */
@media(max-width:1024px){
  .mainnav{display:none}
  .menu-toggle{display:block}
  .hero{grid-template-columns:1fr}
  .grid4,.reviews{grid-template-columns:repeat(2,1fr)}
  .split,.story,.diary{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .ig-grid{grid-template-columns:repeat(4,1fr)}
  .reel{flex:0 0 45%}
}
@media(max-width:600px){
  .topbar .wrap>span.side{display:none}
  .grid4,.reviews,.footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid{gap:24px}
  .diary{grid-template-columns:1fr}
  section{padding:36px 0}
}
