/* ==========================================================
   Rosina Designs — compiled stylesheet
   Source partials are in /assets/scss if you want to rebuild
   this file with Sass. This compiled file works as-is.
   ========================================================== */
:root{
  --ivory:#f6f1e9;
  --ivory-deep:#efe7d8;
  --ink:#2a2521;
  --wine:#732638;
  --wine-deep:#521a27;
  --gold:#b5893f;
  --blush:#d9bfae;
  --line:rgba(42,37,33,0.14);
}
*{box-sizing:border-box;}
body{
  background:var(--ivory);
  color:var(--ink);
  font-family:'Jost', sans-serif;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,.serif{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
}
a{color:inherit; text-decoration:none;}
a:hover{color:var(--wine);}
img{max-width:100%; display:block;}
.btn{border-radius:0;}

/* ---------- stitched divider motif ---------- */
.stitch{
  height:1px;
  background-image: repeating-linear-gradient(90deg, var(--ink) 0 6px, transparent 6px 12px);
  opacity:.35;
}
.stitch.wine{background-image: repeating-linear-gradient(90deg, var(--wine) 0 6px, transparent 6px 12px); opacity:.5;}

/* ---------- top bar & nav ---------- */
.topbar{position:sticky; top:0; z-index:100; background:rgba(246,241,233,0.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.brand-name{font-family:'Cormorant Garamond', serif; font-size:1.4rem; letter-spacing:.05em; line-height:1.15;}
.brand-name .sub{font-family:'Jost', sans-serif; font-size:.55rem; letter-spacing:.3em; text-transform:uppercase; color:var(--wine); margin-top:2px;}
.mainnav{display:flex; gap:30px; flex-wrap:wrap;}
.mainnav li{list-style:none;}
.mainnav a{font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); opacity:.75; padding-bottom:4px; position:relative; display:inline-block;}
.mainnav a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--wine); transition:width .3s ease;}
.mainnav a:hover, .mainnav a.active{opacity:1; color:var(--ink);}
.mainnav a:hover::after, .mainnav a.active::after{width:100%;}
.dropdown-menu{border-radius:0; border-color:var(--line);}
.dropdown-item:active{background:var(--wine);}
@media (max-width:991px){
  .mainnav{flex-direction:column; gap:14px; padding:20px 0;}
}

/* ---------- sewing header animation ---------- */
.stitch-header{position:relative; width:100%; height:300px; overflow:hidden; background:#1a1512;}
.stitch-header .header-photo{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.85) contrast(1.05); animation:ken-burns 22s ease-in-out infinite alternate;}
@keyframes ken-burns{0%{transform:scale(1.06) translate(0,0);} 100%{transform:scale(1.16) translate(-1.5%,-1%);}}
.stitch-header .header-veil{position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,15,12,.62) 0%, rgba(20,15,12,.32) 45%, rgba(20,15,12,.72) 100%);}
.stitch-header .header-text{position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; pointer-events:none; padding:0 20px;}
.stitch-header .header-text .eyebrow{color:var(--blush); opacity:.9; margin-bottom:12px; font-size:.7rem; letter-spacing:.28em; text-transform:uppercase; display:block;}
.stitch-header .header-text h2{color:var(--ivory); font-size:clamp(1.6rem,3.2vw,2.6rem);}
.stitch-header svg.stitch-svg{position:absolute; inset:0; width:100%; height:100%; z-index:2;}
.seam-path{fill:none; stroke:var(--gold); stroke-width:2; stroke-linecap:round; stroke-dasharray:9 10; stroke-dashoffset:1000; animation:sew-line 5.5s linear infinite; opacity:.9;}
.seam-path.ghost{stroke:var(--ivory); opacity:.16; stroke-dasharray:none; animation:none;}
@keyframes sew-line{0%{stroke-dashoffset:1000;} 100%{stroke-dashoffset:0;}}
.needle-rig{animation:needle-travel 5.5s linear infinite;}
@keyframes needle-travel{0%{transform:translate(0,0);} 100%{transform:translate(1080px,0);}}
.needle{animation:needle-bob .55s ease-in-out infinite; transform-origin:center;}
@keyframes needle-bob{0%,100%{transform:translateY(-13px) rotate(-38deg);} 50%{transform:translateY(9px) rotate(-38deg);}}
@media (max-width:900px){.stitch-header{height:220px;}}

/* ---------- eyebrow / section heads ---------- */
.eyebrow{font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--wine); display:block; margin-bottom:18px;}
.section-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:40px;}
.section-head p{opacity:.65; max-width:380px; line-height:1.7; font-size:.92rem;}

/* ---------- buttons ---------- */
.btn-wine{background:var(--wine); border-color:var(--wine); color:var(--ivory); letter-spacing:.16em; text-transform:uppercase; font-size:.75rem; padding:13px 28px;}
.btn-wine:hover{background:var(--wine-deep); border-color:var(--wine-deep); color:var(--ivory);}
.btn-outline-ink{border:1px solid var(--ink); color:var(--ink); letter-spacing:.16em; text-transform:uppercase; font-size:.75rem; padding:13px 28px; background:transparent;}
.btn-outline-ink:hover{background:var(--ink); color:var(--ivory);}

/* ---------- hero ---------- */
.hero{padding:90px 0 70px;}
.hero h1{font-size:clamp(2.2rem,5vw,3.8rem); line-height:1.08; margin-bottom:22px;}
.hero h1 em{color:var(--wine); font-style:normal;}
.hero p.lede{max-width:480px; opacity:.8; line-height:1.8; margin-bottom:30px;}
.hero-frame{aspect-ratio:3/4; border:1px solid var(--line); overflow:hidden; position:relative; background:var(--ivory-deep);}
.hero-frame::before{content:''; position:absolute; inset:14px; border:1px dashed rgba(115,38,56,.4); pointer-events:none; z-index:2;}
.hero-frame img{width:100%; height:100%; object-fit:cover;}

/* ---------- collection & piece cards ---------- */
.collection-card{position:relative; overflow:hidden; border:1px solid var(--line); background:var(--ivory-deep); display:block;}
.collection-card .imgbox{aspect-ratio:3/4; overflow:hidden; background:#e7ddcc;}
.collection-card img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.collection-card:hover img{transform:scale(1.06);}
.collection-card .cap{padding:18px 20px;}
.collection-card .cap .tag{font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--wine);}
.collection-card .cap h4{font-size:1.3rem; margin-top:6px;}
.piece-card{border:1px solid var(--line); background:var(--ivory-deep);}
.piece-card .imgbox{aspect-ratio:3/4; overflow:hidden; background:#e7ddcc;}
.piece-card img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.piece-card:hover img{transform:scale(1.05);}
.piece-card .cap{padding:14px 16px;}
.piece-card .cap h5{font-size:1.05rem; margin-top:2px;}
.empty-note{padding:60px 20px; text-align:center; border:1px dashed var(--line); opacity:.6; font-size:.9rem;}

/* ---------- about ---------- */
.about-frame{aspect-ratio:4/5; border:1px solid var(--line); overflow:hidden; background:var(--ivory-deep);}
.about-frame img{width:100%; height:100%; object-fit:cover;}
.quote-block{font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.5rem; line-height:1.5; text-align:center; max-width:760px; margin:0 auto; padding:60px 0; color:var(--wine-deep);}
.value h3{color:var(--wine); font-size:1.4rem;}
.value p{opacity:.75; line-height:1.7; font-size:.92rem;}

/* ---------- forms ---------- */
.form-panel{border:1px solid var(--line); background:var(--ivory-deep); padding:40px;}
.form-label{font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; opacity:.65;}
.form-control, .form-select{border-radius:0; border-color:var(--line); background:transparent; padding:11px 14px;}
.form-control:focus, .form-select:focus{border-color:var(--wine); box-shadow:none;}
textarea.form-control{min-height:120px;}

/* ---------- WhatsApp ---------- */
.wa-btn{display:inline-flex; align-items:center; gap:10px; background:#25D366; color:#0d1f13 !important; padding:13px 26px; font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; border:none;}
.wa-btn:hover{filter:brightness(1.07); color:#0d1f13 !important;}
.wa-float{position:fixed; right:22px; bottom:22px; z-index:200; width:58px; height:58px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,.25); animation:wa-pulse 2.4s ease-in-out infinite;}
.wa-float svg{width:28px; height:28px;}
@keyframes wa-pulse{0%,100%{box-shadow:0 10px 30px rgba(0,0,0,.25),0 0 0 0 rgba(37,211,102,.5);} 50%{box-shadow:0 10px 30px rgba(0,0,0,.25),0 0 0 10px rgba(37,211,102,0);}}

/* ---------- flash / alerts ---------- */
.flash{border:1px solid var(--line); padding:16px 20px; margin-bottom:24px; font-size:.9rem;}
.flash.success{border-color:#2f6e46; background:#eef7f0; color:#2f6e46;}
.flash.error{border-color:var(--wine); background:#fbeeee; color:var(--wine-deep);}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line); padding-top:20px; margin-top:40px;}
.footer-head{font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--wine); margin-bottom:14px;}
.footer-links a{display:block; font-size:.85rem; opacity:.7; margin-bottom:8px;}
.footer-links a:hover{opacity:1;}
.copyright{font-size:.72rem; opacity:.5;}
.social-links a{display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border:1px solid var(--line); margin-right:8px; font-size:.65rem; letter-spacing:.05em;}
.social-links a:hover{border-color:var(--wine); color:var(--wine);}

/* ================= ADMIN ================= */
body.admin-body{background:var(--ivory-deep);}
.admin-shell{display:flex; min-height:100vh;}
.admin-sidebar{width:230px; background:var(--ink); color:var(--ivory); flex-shrink:0;}
.admin-sidebar .brand{padding:26px 22px; font-family:'Cormorant Garamond',serif; font-size:1.3rem; border-bottom:1px solid rgba(255,255,255,.1);}
.admin-sidebar nav a{display:block; padding:13px 22px; color:var(--ivory); opacity:.7; font-size:.85rem; letter-spacing:.03em;}
.admin-sidebar nav a:hover, .admin-sidebar nav a.active{opacity:1; background:rgba(255,255,255,.06); color:var(--gold);}
.admin-main{flex:1; padding:36px 40px;}
.admin-topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:30px;}
.admin-card{background:#fff; border:1px solid var(--line); padding:26px;}
.stat-box{background:#fff; border:1px solid var(--line); padding:24px; text-align:center;}
.stat-box h3{font-size:2.2rem; color:var(--wine); margin-bottom:4px;}
.stat-box span{font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; opacity:.6;}
.table thead th{font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; opacity:.6; border-bottom:2px solid var(--line);}
.thumb-sm{width:56px; height:56px; object-fit:cover; border:1px solid var(--line);}
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--ivory-deep);}
.login-card{background:#fff; border:1px solid var(--line); padding:46px 40px; width:100%; max-width:420px;}
