
:root{
  --bg:#F6E3DE;         /* blush background */
  --panel:#FFEDEA;      /* soft rose panel */
  --text:#2E4A3B;       /* deep sage text */
  --accent:#6C8F7B;     /* sage green */
  --accent2:#C6A247;    /* warm golden accent */
  --pink:#E7A7A2;       /* rosy pink */
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial}
a{color:var(--accent2);text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:24px}
.header{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
.brand{display:flex;gap:12px;align-items:center}
.brand h1{margin:0;font-size:1.5rem;letter-spacing:.5px}
.tagline{opacity:.8;font-size:.9rem}
.nav a{margin-left:16px}
.hero{background:linear-gradient(135deg,var(--accent),var(--pink)), url('') center/cover; border:1px solid #e8cfc8; padding:28px;border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.hero h2{margin:0 0 8px;font-size:1.8rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin-top:22px}
.card{perspective:1000px}
.card-inner{position:relative;width:100%;transform-style:preserve-3d;transition:transform .6s;cursor:pointer}
.card.flip .card-inner{transform:rotateY(180deg)}
.card-face{background:var(--panel);border:1px solid #e8cfc8;border-radius:16px;overflow:hidden;min-height:380px;position:relative;box-shadow:0 6px 20px rgba(0,0,0,.2)}
.card-face.front{backface-visibility:hidden}
.card-face.back{position:absolute;inset:0;transform:rotateY(180deg);backface-visibility:hidden;padding:16px}
.card img{width:100%;height:160px;object-fit:cover;display:block}
.card-content{padding:14px}
.card h3{margin:6px 0 8px;font-size:1.1rem}
.card p{opacity:.9;font-size:.95rem;min-height:40px}
.controls{display:grid;gap:8px;margin-top:10px}
select,input[type=number]{width:100%;padding:10px;border-radius:10px;border:1px solid #d9bdb7;background:#fff7f6;color:var(--text)}
.btn{display:inline-block;padding:10px 14px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--pink));color:#1f2a24;border:none;font-weight:700}
.btn.secondary{background:linear-gradient(135deg,var(--pink),var(--accent));color:var(--text)}
.nav-actions{ display:flex; gap:10px; align-items:center; }
.nav-actions .btn{ padding:8px 12px; border-radius:10px; }
.footer{opacity:.8;margin-top:28px;font-size:.9rem}
.cart-bar{position:relative;top:0;z-index:10;background:rgba(255,237,234,.85);backdrop-filter:blur(8px);border-bottom:1px solid #222}
.cart-wrap{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 0}
.cart-items{font-size:.95rem}
/* Cart panel = short, scrollable, column layout */
.cart-panel{
  position: fixed;
  right: 16px;
  bottom: 16px;
  background: var(--panel);
  border: 1px solid #e8cfc8;
  padding: 10px 12px;
  border-radius: 14px;
  width: 300px;
  height: min(70vh, 460px);      /* ✅ keep it shorter */
  display: flex;                  /* ✅ column layout */
  flex-direction: column;
  overflow: auto;                 /* ✅ panel itself can scroll if needed */
  box-shadow: 0 8px 22px rgba(0,0,0,.22);
  -webkit-overflow-scrolling: touch;
}

/* Title stays fixed height */
.cart-panel h4{ margin: 0 0 6px; flex: 0 0 auto; }

/* List takes the remaining space and scrolls */
.cart-list{
  flex: 1 1 auto;                 /* ✅ grow to fill available height */
  min-height: 80px;
  overflow-y: auto;               /* ✅ internal scroll */
  border-top: 1px solid #e8cfc8;
  border-bottom: 1px solid #e8cfc8;
  margin: 8px 0;
  padding: 8px 0;
  -webkit-overflow-scrolling: touch;
}

/* Totals + form don’t try to expand */
.totals{ flex: 0 0 auto; display: grid; gap: 4px; }
.controls{ flex: 0 0 auto; display: grid; gap: 6px; }

/* Tighter inputs so everything fits */
input, select{ padding: 8px 10px; font-size: .9rem; border-radius: 8px; }
.btn{ padding: 8px 14px; border-radius: 8px; font-size: .9rem; }
.cart-line{display:grid;grid-template-columns:1fr auto;gap:10px;margin:6px 0}
.totals{display:grid;gap:4px;margin:8px 0}
label{font-size:.9rem;opacity:.9}
input[type=text], input[type=email]{width:100%;padding:10px;border-radius:10px;border:1px solid #d9bdb7;background:#fff7f6;color:var(--text)}
hr{border:0;border-top:1px solid #2a2a2a;margin:12px 0}
.small{font-size:.85rem;opacity:.85}
.success{color:#7bf59b}
.error{color:#ff7a7a}
