/* The Lonely Mums Club — site styles
   Palette pulled from the brand: red #D8403C, pink #F7AAC1 / #FBDCE4,
   cream #FDF0EC on page bg #F3E4E0, dark maroon text #3D1218 / #7A4048 */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300..900&family=Sacramento&family=Nunito:wght@400;600;700;800&display=swap');

/* Real brand display face — licensed by the client. Fraunces (via the Google Fonts
   import above) stays wired in as the fallback in case these local files ever go
   missing, so the site never breaks, just looks slightly different. */
@font-face{
  font-family:'TAN Songbird';
  src: url('../assets/fonts/TANSONGBIRD.woff2') format('woff2'),
       url('../assets/fonts/TANSONGBIRD.ttf') format('truetype');
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}

:root{
  --red:#D8403C;
  --red-dark:#B02F2C;
  --maroon:#3D1218;
  --maroon-2:#5A1D26;
  --brown:#7A4048;
  --brown-2:#8A2C2C;
  --pink:#F7AAC1;
  --pink-light:#FBDCE4;
  --cream:#FDF0EC;
  --bg:#F3E4E0;
  --line:#F3D4CE;
  --green:#3F7A55;
  --shadow: 0 20px 50px rgba(61,18,24,0.16);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Nunito',sans-serif;
  background:var(--bg);
  color:var(--maroon);
  line-height:1.5;
}
a{color:var(--red); text-decoration:none;}
a:hover{color:var(--red-dark);}
img{max-width:100%; display:block;}
button{font-family:inherit; cursor:pointer;}

.script{font-family:'Sacramento',cursive; color:var(--red); line-height:1;}
.display{font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; color:var(--maroon); line-height:1.35;}

.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}

/* ---------- Header ---------- */
.site-header{
  background:var(--cream);
  border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:50;
}
.site-header .bar{
  display:flex; align-items:center; gap:28px;
  padding:14px 24px; max-width:1180px; margin:0 auto;
  flex-wrap:wrap;
}
.brand{display:flex; align-items:center; gap:14px; text-decoration:none;}
.brand img{width:48px; height:48px; border-radius:12px; object-fit:cover;}
.brand .wordmark{line-height:1;}
.brand .wordmark .the{font-family:'Sacramento',cursive; font-size:20px; color:var(--red); display:block;}
.brand .wordmark .name{font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; font-size:19px; color:var(--maroon);}
.brand .wordmark .name .club{font-family:'Sacramento',cursive; font-size:22px; color:var(--red);}

nav.main-nav{display:flex; gap:22px; font-weight:700; font-size:14.5px; flex-wrap:wrap;}
nav.main-nav a{color:var(--maroon);}
nav.main-nav a.active{color:var(--red);}

.header-actions{margin-left:auto; display:flex; align-items:center; gap:14px;}
.header-actions a{font-weight:700; font-size:14px; color:var(--maroon); display:flex; align-items:center; gap:6px;}
.cart-count{background:var(--red); color:#fff; font-size:11px; font-weight:800; border-radius:99px; padding:2px 7px; margin-left:2px;}

.mobile-toggle{display:none; background:none; border:none; font-size:22px; color:var(--maroon);}
.mobile-tabbar{display:none;}

@media (max-width:900px){
  nav.main-nav{ display:none; width:100%; order:3; flex-direction:column; gap:2px; padding-top:10px; border-top:1px solid var(--line); margin-top:10px;}
  nav.main-nav.open{display:flex;}
  nav.main-nav a{padding:8px 4px;}
  .mobile-toggle{display:block; margin-left:auto;}
  .header-actions{margin-left:0;}
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border-radius:99px; font-weight:800; border:none; text-align:center;
  padding:13px 24px; font-size:15px; transition:transform .05s ease;
}
.btn:active{transform:scale(0.98);}
.btn-primary{background:var(--red); color:var(--cream);}
.btn-primary:hover{background:var(--red-dark); color:var(--cream);}
.btn-display{font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto;}
.btn-outline{background:transparent; border:2px solid var(--pink); color:var(--maroon);}
.btn-outline:hover{border-color:var(--red); color:var(--red);}
.btn-dark{background:var(--maroon); color:var(--cream);}
.btn-dark:hover{background:#2a0c11; color:var(--cream);}
.btn-sm{padding:9px 16px; font-size:13px;}
.btn-block{width:100%;}
.btn[disabled]{opacity:.5; cursor:not-allowed;}

/* ---------- Hero ---------- */
.hero{background:var(--red); padding:56px 0 48px;}
.hero .grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:44px; align-items:center;}
.hero .eyebrow{font-family:'Sacramento',cursive; font-size:36px; color:var(--pink);}
.hero h1{font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; font-size:40px; color:var(--cream); line-height:1.3; margin:10px 0 0;}
.hero p{font-size:17px; color:#FBDCE4; margin-top:18px; max-width:460px;}
.hero .actions{display:flex; gap:14px; margin-top:26px; flex-wrap:wrap;}
.hero-photo{background:var(--pink); border-radius:18px; min-height:300px; display:flex; align-items:center; justify-content:center; overflow:hidden;}
.hero-photo img{width:100%; height:100%; object-fit:cover;}
@media (max-width:820px){ .hero .grid{grid-template-columns:1fr;} .hero h1{font-size:38px;} }

.trust-strip{background:var(--pink-light); padding:14px 0; text-align:center;}
.trust-strip .wrap{display:flex; gap:32px; justify-content:center; flex-wrap:wrap; font-weight:700; font-size:14px; color:var(--brown-2);}

/* ---------- Cards ---------- */
.section{padding:48px 0;}
.section-head{display:flex; align-items:baseline; gap:16px; flex-wrap:wrap;}
.section-head h2{font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; font-size:30px; margin:0;}
.section-head .tag{font-family:'Sacramento',cursive; color:var(--red); font-size:22px;}
.section-head .more{margin-left:auto; font-weight:800; font-size:14px;}

.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:24px;}
@media (max-width:900px){ .card-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .card-grid{grid-template-columns:1fr;} }

.card{background:#fff; border-radius:16px; overflow:hidden; border:1px solid var(--line); display:flex; flex-direction:column;}
.card .photo{height:130px; display:flex; align-items:center; justify-content:center; color:var(--brown-2); font-size:13px; font-weight:700; text-align:center;}
.card .body{padding:18px; display:flex; flex-direction:column; gap:8px; flex:1;}
.pill{background:var(--pink-light); color:var(--red-dark); font-size:11px; font-weight:800; padding:4px 10px; border-radius:99px; text-transform:uppercase; letter-spacing:.5px; display:inline-block; width:fit-content;}
.card .title{font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; font-size:20px;}
.card .meta{font-size:13.5px; color:var(--brown); line-height:1.45;}
.card .row{display:flex; align-items:center; gap:10px; margin-top:auto;}
.card .price{font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; font-size:19px; color:var(--red);}
.card .row .btn{margin-left:auto;}

/* ---------- Panels ---------- */
.panel{background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px;}
.panel-dark{background:var(--maroon); border-radius:18px; padding:30px; color:var(--cream);}
.panel-pink{background:var(--pink); border-radius:18px; padding:30px; color:var(--maroon);}

/* ---------- Forms ---------- */
label{font-size:12.5px; font-weight:800; color:var(--brown-2); text-transform:uppercase; letter-spacing:.4px; display:block; margin-bottom:6px;}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],select,textarea{
  width:100%; padding:12px 14px; border-radius:12px; border:1px solid var(--line);
  font-family:inherit; font-size:15px; color:var(--maroon); background:#fff;
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--pink); border-color:var(--red);}
.field{margin-bottom:16px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media (max-width:560px){ .field-row{grid-template-columns:1fr;} }

/* ---------- Footer ---------- */
.site-footer{background:var(--maroon); color:#E9C6CC; padding:44px 0 28px; margin-top:60px;}
.site-footer .wrap{display:flex; flex-wrap:wrap; gap:40px; justify-content:space-between;}
.site-footer h4{color:var(--cream); font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; font-size:16px; margin:0 0 12px;}
.site-footer a{color:#E9C6CC;}
.site-footer a:hover{color:#fff;}
.site-footer .bottom{margin-top:30px; padding-top:20px; border-top:1px solid #5A1D26; font-size:12.5px; text-align:center; color:#C99BA3;}

/* ---------- Toast ---------- */
#toast{position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--maroon); color:var(--cream); padding:14px 22px; border-radius:99px; font-weight:700; font-size:14px; box-shadow:var(--shadow); opacity:0; pointer-events:none; transition:all .25s ease; z-index:200;}
#toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* ---------- Misc page shells ---------- */
.page-head{padding:36px 0 8px;}
.page-head .tag{font-family:'Sacramento',cursive; color:var(--red); font-size:26px; display:block;}
.page-head h1{font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; font-size:32px; line-height:1.35; margin:8px 0 0;}
.page-head p{color:var(--brown); max-width:620px;}

.chip{background:#fff; color:var(--maroon); padding:8px 14px; border-radius:99px; font-weight:700; font-size:13px; border:1px solid var(--line); cursor:pointer;}
.chip.active{background:var(--red); color:#fff; border-color:var(--red);}
.chip-row{display:flex; gap:10px; flex-wrap:wrap; margin:18px 0;}

table{width:100%; border-collapse:collapse; font-size:14px;}
th{text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--brown-2); padding:8px 10px; border-bottom:2px solid var(--line);}
td{padding:10px; border-bottom:1px solid var(--line); vertical-align:middle;}

.badge-ok{color:var(--green); font-weight:800; font-size:12px;}
.badge-pending{color:var(--brown); font-weight:800; font-size:12px;}

.empty{text-align:center; padding:60px 20px; color:var(--brown);}
.empty .display{font-size:24px; margin-bottom:8px;}

@media print{
  .site-header, .site-footer, .no-print{display:none !important;}
  body{background:#fff;}
}

/* ---------- Admin shell ---------- */
.admin-shell{ display:grid; grid-template-columns:212px 1fr; min-height:100vh; background:#fff; }
@media (max-width:820px){ .admin-shell{ grid-template-columns:1fr; } .admin-sidebar{ display:flex; overflow-x:auto; } }
.admin-sidebar{ background:var(--maroon); padding:24px 18px; display:flex; flex-direction:column; gap:6px; }
.admin-sidebar .brand-line{ font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; font-size:17px; color:var(--cream); margin-bottom:14px; }
.admin-sidebar a, .admin-sidebar button.side-link{ color:#E9C6CC; font-weight:700; font-size:14px; padding:10px 14px; border-radius:10px; text-decoration:none; text-align:left; background:none; border:none; font-family:inherit; cursor:pointer; }
.admin-sidebar a.active, .admin-sidebar button.side-link.active{ background:var(--red); color:#fff; }
.admin-sidebar .tip{ margin-top:auto; background:var(--maroon-2); border-radius:12px; padding:14px; font-size:12px; color:var(--pink); }
.admin-sidebar .tip b{ color:var(--cream); }
.admin-main{ padding:28px 30px; background:#fff; }
.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:20px; }
@media (max-width:820px){ .stat-grid{ grid-template-columns:repeat(2,1fr); } }
.stat-tile{ background:var(--cream); border-radius:14px; padding:18px; }
.stat-tile .label{ font-size:12px; font-weight:800; color:var(--red-dark); text-transform:uppercase; }
.stat-tile .value{ font-family:'TAN Songbird','Fraunces',serif; font-weight:700; font-optical-sizing:auto; font-size:28px; margin-top:2px; }
.stat-tile .delta{ font-size:12px; color:var(--green); font-weight:700; margin-top:2px; }
.bar-row{ margin-bottom:14px; }
.bar-track{ height:10px; background:var(--pink-light); border-radius:99px; margin-top:6px; }
.bar-fill{ height:10px; background:var(--red); border-radius:99px; }
.avatar{ width:30px; height:30px; border-radius:99px; background:var(--pink); color:var(--red-dark); font-weight:800; font-size:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.attendee-row{ display:flex; align-items:center; gap:10px; border-radius:11px; padding:10px 12px; background:#F4FAF6; }
.attendee-row.pending{ background:var(--cream); }

/* ---------- Added for the live site ---------- */
.split-2{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
@media (max-width:820px){ .split-2{ grid-template-columns:1fr; } }
.mini-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:20px; }
.mini-tile{ border-radius:12px; height:88px; display:flex; align-items:flex-end; padding:8px; font-size:11px; font-weight:700; color:#7A4048; }
.mini-tile span{ background:rgba(253,240,236,.92); border-radius:6px; padding:2px 6px; }
.dl-row{ background:#FDF0EC; border-radius:12px; padding:12px 16px; font-weight:700; color:#3D1218; font-size:14px; display:flex; align-items:center; gap:10px; }
.dl-row span{ margin-left:auto; color:#D8403C; white-space:nowrap; }
.newsletter-form{ margin-left:auto; display:flex; gap:10px; flex-wrap:wrap; }
.newsletter-form input{ width:260px; max-width:100%; }
.card .photo img{ height:130px; }
.notice{ background:var(--pink-light); color:var(--brown-2); border-radius:12px; padding:12px 14px; font-size:13.5px; font-weight:700; }
.notice.error{ background:#FDE2E0; color:#B02F2C; }
.test-banner{ background:#3D1218; color:#F7AAC1; text-align:center; font-size:12.5px; font-weight:800; padding:6px 10px; }
.btn.loading{ opacity:.7; pointer-events:none; }
.date-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-top:10px; text-align:center; }
.date-grid .dow{ font-size:11px; font-weight:800; color:var(--brown); padding:4px 0; }
.date-grid .day{ border-radius:10px; padding:9px 0; font-size:13px; font-weight:700; color:#C9A9AE; }
.date-grid .day.avail{ background:var(--pink-light); color:var(--red-dark); cursor:pointer; }
.date-grid .day.full{ background:#F1E4E1; color:#B9A0A4; text-decoration:line-through; }
.date-grid .day.sel{ background:var(--red); color:#fff; }
.cal-head{ display:flex; align-items:center; margin-top:12px; font-weight:800; }
.cal-head button{ background:none; border:none; color:var(--red); font-size:20px; font-weight:900; padding:0 8px; }
.cal-head span{ flex:1; text-align:center; }
.qr-box{ display:inline-block; background:#FDF0EC; padding:8px; border-radius:10px; line-height:0; }
.qr-box img, .qr-box canvas{ display:block; }
.hero-photo{ max-height:440px; }
.stat-tile .value{ margin-top:8px; line-height:1.15; }

/* ---------- Mobile polish ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:3px solid var(--pink);
  outline-offset:3px;
}
[id]{ scroll-margin-top:150px; }

@media (max-width:620px){
  body{ padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  .wrap{ padding-left:20px; padding-right:20px; }

  .site-header{ box-shadow:0 4px 18px rgba(61,18,24,.08); }
  .site-header .bar{ min-height:64px; padding:8px 16px; gap:8px; flex-wrap:nowrap; position:relative; }
  .brand{ gap:10px; }
  .brand img{ width:44px; height:44px; }
  .brand .wordmark .the{ display:none; }
  .brand .wordmark .name{ font-size:17px; white-space:nowrap; }
  .brand .wordmark .name .club{ font-size:19px; }
  .header-actions{ margin-left:auto; gap:4px; }
  .header-actions .tickets-link{ display:none; }
  .header-actions .basket-link{ display:none; }
  .mobile-toggle{ display:flex; width:44px; height:44px; margin-left:0; align-items:center; justify-content:center; border-radius:50%; }
  .mobile-toggle[aria-expanded="true"]{ background:var(--pink-light); }
  nav.main-nav{
    display:none; position:absolute; top:calc(100% + 1px); left:12px; right:12px; width:auto;
    margin:0; padding:10px; gap:2px; border:1px solid var(--line); border-radius:0 0 16px 16px;
    background:var(--cream); box-shadow:0 18px 30px rgba(61,18,24,.16);
  }
  nav.main-nav.open{ display:flex; }
  nav.main-nav .mobile-primary{ display:none; }
  nav.main-nav a{ min-height:48px; padding:12px 14px; border-radius:10px; display:flex; align-items:center; }
  nav.main-nav a:active{ background:var(--pink-light); }

  .mobile-tabbar{
    position:fixed; z-index:100; left:0; right:0; bottom:0;
    display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
    min-height:76px; padding:7px 6px calc(7px + env(safe-area-inset-bottom));
    background:rgba(253,240,236,.97); border-top:1px solid var(--line);
    box-shadow:0 -8px 24px rgba(61,18,24,.10); backdrop-filter:blur(12px);
  }
  .mobile-tab{
    position:relative; min-width:0; min-height:58px; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:3px; border-radius:14px;
    color:var(--brown); font-size:10px; font-weight:800; line-height:1;
  }
  .mobile-tab svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
  .mobile-tab .mobile-cart-count{
    position:absolute; top:4px; left:calc(50% + 8px); min-width:17px; height:17px;
    display:flex; align-items:center; justify-content:center; padding:0 5px;
    color:#fff; background:var(--red); border:2px solid var(--cream); font-size:9px;
  }
  .mobile-tab.active{ color:var(--red-dark); background:var(--pink-light); }
  .mobile-tab:active{ transform:scale(.96); }
  .mobile-tab:focus-visible{ outline-offset:-2px; }

  .hero{ padding:40px 0 36px; }
  .hero .grid{ gap:28px; }
  .hero .eyebrow{ font-size:32px; }
  .hero h1{ font-size:36px; line-height:1.24; }
  .hero p{ font-size:16px; }
  .hero-photo{ min-height:230px; }

  .section{ padding:36px 0; }
  .section-head{ gap:8px 12px; }
  .section-head h2{ font-size:27px; }
  .section-head .more{ width:100%; margin-left:0; min-height:44px; display:flex; align-items:center; }

  .page-head{ padding:28px 20px 8px; }
  .page-head h1{ font-size:30px; line-height:1.28; margin-left:4px; overflow-wrap:break-word; }
  .page-head p{ margin-bottom:12px; }

  .btn, .btn-sm, .chip{ min-height:44px; }
  .chip{ display:inline-flex; align-items:center; justify-content:center; }
  .card .row{ flex-wrap:wrap; }
  .card .row .btn{ min-width:44px; }
  .panel, .panel-dark, .panel-pink{ padding:16px; }

  .newsletter-form{ width:100%; margin-left:0; }
  .newsletter-form input{ flex:1; min-width:180px; }
  #lookup{ flex-direction:column; max-width:none !important; }
  #lookup input, #lookup button{ width:100%; min-width:0 !important; }

  .site-footer{ margin-top:40px; padding:36px 0 24px; }
  .site-footer .wrap{ gap:30px; }
  .site-footer a{ min-height:44px; display:flex; align-items:center; }
  #footer-newsletter{ width:100%; }
  #footer-newsletter input{ min-width:0; flex:1; }

  .cal-head button{ min-width:44px; min-height:44px; padding:0 !important; }
  .date-grid{ gap:3px; }
  .date-grid .day{ min-height:40px; padding:0; display:flex; align-items:center; justify-content:center; }
  .time-opt{ min-height:48px; }
  .pay-choice label{ min-height:44px; align-items:center; }
  .pay-choice input{ width:20px; height:20px; margin:0; flex:0 0 auto; }
  .stepper{ min-height:44px; padding:0 6px !important; gap:2px !important; }
  .stepper button{ width:44px !important; height:44px; padding:0; }

  .cart-grid{ grid-template-columns:minmax(0,1fr) !important; gap:18px !important; min-width:0; }
  .cart-grid > .panel{ min-width:0; padding:16px; }
  .cart-line{
    display:grid !important;
    grid-template-columns:56px minmax(74px,1fr) auto 44px;
    grid-template-rows:auto auto;
    gap:8px 10px !important;
    align-items:center;
  }
  .cart-line > :nth-child(1){ grid-column:1; grid-row:1 / 3; }
  .cart-line > :nth-child(2){ grid-column:2 / 5; grid-row:1; min-width:0; }
  .cart-line > :nth-child(3){ grid-column:2; grid-row:2; justify-self:start; min-height:44px; padding:0 4px; gap:0; }
  .cart-line > :nth-child(3) button{ width:40px; height:42px; padding:0; }
  .cart-line > :nth-child(4){ grid-column:3; grid-row:2; width:auto !important; white-space:nowrap; }
  .cart-line > :nth-child(5){ grid-column:4; grid-row:2; width:44px; height:44px; padding:0; }

  #toast{ width:calc(100% - 32px); max-width:420px; text-align:center; bottom:16px; }
}

@media (max-width:360px){
  .wrap{ padding-left:16px; padding-right:16px; }
  .site-header .bar{ padding-left:12px; padding-right:10px; }
  .brand{ gap:7px; }
  .brand img{ width:40px; height:40px; }
  .brand .wordmark .name{ font-size:15px; }
  .brand .wordmark .name .club{ display:none; }
  .page-head{ padding-left:18px; padding-right:16px; }
  .page-head h1{ font-size:28px; margin-left:3px; }
  .panel, .panel-dark, .panel-pink{ padding:14px; }
  .date-grid{ gap:2px; }
  .date-grid .day{ min-height:38px; }
  .cart-line{ grid-template-columns:52px minmax(68px,1fr) auto 40px; gap:8px !important; }
  .cart-line .swatch{ width:52px; height:52px; }
  .cart-line > :nth-child(5){ width:40px; }
}


/* Event photos - box hugs the flyer, whole poster visible */
.card .photo{ height:auto; background:var(--cream); overflow:hidden; }
.card .photo img{ width:100%; height:auto !important; object-fit:contain !important; }
.big-photo{ height:auto !important; max-width:460px; background:var(--cream); }
.big-photo img{ width:100%; height:auto !important; object-fit:contain !important; }
