/*
Theme Name: Quirky Foodster
Theme URI: https://quirkyfoodster.example
Author: Quirky Foodster
Description: A rustic, hand-pressed cookbook aesthetic for the Quirky Foodster food blog — recipe archive, ingredient-match meal planner, and a members' pantry planner.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: quirky-foodster
*/

:root{
  --wood-dark:#241811;
  --wood-mid:#3c2a1b;
  --wood-warm:#5a3d24;
  --paper:#e7d5ab;
  --paper-edge:#c9ac78;
  --ink:#4a3018;
  --ink-strong:#3a2410;
  --highlight: rgba(255,247,222,0.75);
  --shadow-deep: rgba(40,24,10,0.55);
  --brass:#a9793e;
  --brass-light:#d8b877;
  --accent:#7a2f1a;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  color:var(--ink-strong);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(90,61,36,0.25), transparent 60%),
    linear-gradient(160deg, var(--wood-mid) 0%, var(--wood-dark) 70%);
  min-height:100vh;
}
img{max-width:100%; display:block;}
a{color:var(--accent); text-decoration:none;}
a:hover{text-decoration:underline;}

/* ---------- shared engraved / debossed text utility ---------- */
.engraved{
  color:var(--ink-strong);
  text-shadow:
    -1px -1px 1px rgba(70,45,20,0.55),
    1px 1px 1px var(--highlight);
}
.engraved-label{
  font-style:italic;
  font-weight:500;
  letter-spacing:0.28em;
  text-transform:uppercase;
  font-size:0.95rem;
  opacity:0.8;
}

/* ---------- shared paper panel ---------- */
.paper-panel{
  position:relative;
  background-image:url('assets/img/Page.png');
  background-size:100% 100%;
  background-repeat:no-repeat;
  border-radius:6px;
  box-shadow:0 20px 55px var(--shadow-deep);
}
.paper-panel-inner{ position:relative; z-index:2; padding:2.4rem 2.6rem; }

/* ---------- site chrome ---------- */
.qf-header{
  display:flex;
  align-items:center;
  padding:1.1rem 3vw;
  background:linear-gradient(180deg, rgba(0,0,0,0.35), transparent);
}
.qf-crest-link{
  opacity:0.92;
  transition:opacity .2s ease, transform .2s ease;
}
.qf-crest-link:hover{ opacity:1; transform:translateY(-1px); }
.qf-crest-link img{ height:52px; width:auto; }
.qf-nav{ display:flex; gap:1.6rem; align-items:center; flex-wrap:wrap; }
.qf-nav a{
  font-size:1.05rem;
  letter-spacing:0.06em;
  color:var(--brass-light);
  text-transform:uppercase;
  font-weight:500;
}
.qf-nav a:hover{ color:#fff; text-decoration:none; }
.qf-nav .qf-cta{
  border:1px solid rgba(216,184,119,0.6);
  padding:0.35rem 0.9rem;
  border-radius:3px;
}

.qf-main{ max-width:1180px; margin:0 auto; padding:2.4rem 5vw 5rem; }

.qf-footer{
  text-align:center;
  padding:2.4rem 1rem 3rem;
  color:var(--brass-light);
  font-style:italic;
  opacity:0.75;
}

/* ---------- recipe archive grid ---------- */
.qf-archive-title{
  text-align:center;
  font-family:'Playfair Display', serif;
  font-size:2.4rem;
  margin-bottom:0.3rem;
}
.qf-archive-sub{
  text-align:center;
  color:var(--ink);
  opacity:0.75;
  font-style:italic;
  margin-bottom:2.4rem;
}
.qf-course-filters{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:0.6rem;
  margin:1.4rem 0 2.6rem;
}
.qf-course-filters a{
  padding:0.35rem 0.9rem;
  border:1px solid rgba(74,48,24,0.35);
  border-radius:3px;
  color:var(--ink-strong);
  font-size:0.95rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
}
.qf-course-filters a.is-active,
.qf-course-filters a:hover{
  background:var(--wood-dark);
  color:var(--brass-light);
  text-decoration:none;
}

.qf-ingredient-search{
  display:flex;
  gap:0.6rem;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  margin:1.4rem 0 1.6rem;
}
.qf-ingredient-search input[type="text"]{
  flex:1;
  min-width:220px;
  max-width:420px;
  padding:0.55rem 0.9rem;
  border-radius:3px;
  border:1px solid var(--paper-edge);
  background:rgba(255,251,240,0.7);
  font-family:'Cormorant Garamond', serif;
  font-size:1.05rem;
  color:var(--ink-strong);
}
.qf-search-clear{
  font-size:0.9rem;
  color:var(--accent);
  text-decoration:underline;
}

.qf-page-shell{ max-width:1100px; margin:0 auto; }

.qf-recipe-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:1.6rem;
}
.qf-recipe-card{
  position:relative;
  background:rgba(255,251,240,0.55);
  border:1px solid rgba(74,48,24,0.25);
  border-radius:5px;
  overflow:hidden;
  box-shadow:0 6px 16px rgba(40,24,10,0.18);
  transition:transform .3s ease, box-shadow .3s ease;
  display:block;
}
.qf-recipe-card:hover{ transform:translateY(-4px); box-shadow:0 12px 26px rgba(40,24,10,0.28); text-decoration:none; }
.qf-recipe-card-thumb{
  height:150px;
  background-size:cover;
  background-position:center;
  border-bottom:1px solid rgba(74,48,24,0.25);
}
.qf-recipe-card-thumb.is-placeholder{
  display:flex; align-items:center; justify-content:center;
  font-size:2.2rem;
}
.qf-recipe-card-body{ padding:1.1rem 1.2rem 1.3rem; }
.qf-recipe-card-course{
  font-size:0.78rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink);
  opacity:0.7;
}
.qf-recipe-card-title{
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.25rem;
  color:var(--ink-strong);
  margin:0.25rem 0 0.4rem;
}
.qf-recipe-card-meta{
  font-size:0.85rem;
  color:var(--ink);
  opacity:0.75;
}

/* ---------- single recipe ---------- */
.qf-recipe-single{ max-width:820px; margin:0 auto; }
.qf-recipe-hero{
  text-align:center;
  padding:3rem 2.5rem 2rem;
}
.qf-recipe-hero-title{
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:2.6rem;
  margin:0 0 0.6rem;
}
.qf-recipe-stats{
  display:flex; justify-content:center; gap:2.2rem;
  margin-top:1.2rem;
  flex-wrap:wrap;
}
.qf-recipe-stat{ text-align:center; }
.qf-recipe-stat-num{ font-family:'Playfair Display', serif; font-size:1.3rem; font-weight:700; }
.qf-recipe-stat-label{ font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; opacity:0.65; }

.qf-recipe-columns{
  display:grid;
  grid-template-columns:1fr 1.6fr;
  gap:0;
}
.qf-recipe-ingredients, .qf-recipe-steps{ padding:0 2.5rem 2.8rem; }
.qf-recipe-columns h3{
  font-family:'Playfair Display', serif;
  font-size:1.3rem;
  border-bottom:1px dotted rgba(74,48,24,0.4);
  padding-bottom:0.5rem;
  margin-bottom:1rem;
}
.qf-recipe-ingredients ul{ list-style:none; margin:0; padding:0; }
.qf-recipe-ingredients li{
  padding:0.4rem 0;
  border-bottom:1px dotted rgba(74,48,24,0.2);
  font-size:1.05rem;
}
.qf-recipe-steps ol{ padding-left:1.2rem; }
.qf-recipe-steps li{ margin-bottom:0.9rem; font-size:1.08rem; line-height:1.5; }

@media (max-width:680px){
  .qf-recipe-columns{ grid-template-columns:1fr; }
}

/* ---------- meal planner ---------- */
.qf-planner-form{
  max-width:640px;
  margin:0 auto 2.6rem;
  text-align:center;
}
.qf-planner-form textarea{
  width:100%;
  min-height:90px;
  font-family:'Cormorant Garamond', serif;
  font-size:1.15rem;
  padding:0.9rem 1rem;
  border-radius:4px;
  border:1px solid var(--paper-edge);
  background:rgba(231,213,171,0.92);
  color:var(--ink-strong);
  resize:vertical;
}
.qf-planner-form .qf-hint{
  font-size:0.9rem;
  color:var(--brass-light);
  opacity:0.75;
  margin:0.5rem 0 1.2rem;
  font-style:italic;
}
.qf-time-filters{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:0.55rem;
  margin:0 0 1.4rem;
}
.qf-time-pill{
  background:rgba(231,213,171,0.5);
  border:1px solid rgba(74,48,24,0.35);
  border-radius:20px;
  padding:0.4rem 0.95rem;
  font-family:'Cormorant Garamond', serif;
  font-size:0.95rem;
  color:var(--ink-strong);
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease;
}
.qf-time-pill span{
  display:block;
  font-size:0.72rem;
  opacity:0.65;
  font-style:italic;
}
.qf-time-pill:hover{ background:rgba(231,213,171,0.85); }
.qf-time-pill.is-active{
  background:var(--wood-dark);
  border-color:var(--wood-dark);
  color:var(--brass-light);
}
.qf-time-pill.is-active span{ opacity:0.8; }

.qf-btn{
  background:var(--wood-dark);
  color:var(--brass-light);
  border:1px solid rgba(216,184,119,0.6);
  padding:0.65rem 1.6rem;
  border-radius:3px;
  font-family:'Cormorant Garamond', serif;
  font-size:1.05rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .2s ease;
}
.qf-btn:hover{ background:#3a2612; }
.qf-planner-results{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px,1fr));
  gap:1.6rem;
}
.qf-match-badge{
  display:inline-block;
  font-size:0.78rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--accent);
  border:1px solid rgba(122,47,26,0.35);
  border-radius:20px;
  padding:0.15rem 0.6rem;
  margin-top:0.4rem;
}
.qf-empty-state{
  text-align:center;
  color:var(--brass-light);
  font-style:italic;
  opacity:0.75;
  padding:2rem 0;
}

/* ---------- pantry / members ---------- */
.qf-pantry-layout{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:0;
}
@media (max-width:780px){ .qf-pantry-layout{ grid-template-columns:1fr; } }
.qf-page-section{
  padding:0 1.6rem;
}
.qf-pantry-layout .qf-page-section:first-child{ padding-left:0; border-right:1px dotted rgba(74,48,24,0.3); }
.qf-pantry-layout .qf-page-section:last-child{ padding-right:0; }
@media (max-width:780px){
  .qf-pantry-layout .qf-page-section:first-child{ border-right:none; border-bottom:1px dotted rgba(74,48,24,0.3); padding:0 0 1.6rem; margin-bottom:1.6rem; }
  .qf-pantry-layout .qf-page-section:last-child{ padding:0; }
}

.qf-pantry-list{ list-style:none; margin:0 0 1.2rem; padding:0; }
.qf-pantry-list li{
  display:flex; align-items:center; justify-content:space-between;
  padding:0.4rem 0;
  border-bottom:1px dotted rgba(74,48,24,0.25);
  font-size:1.05rem;
}
.qf-pantry-list button{
  background:none; border:none; color:var(--accent); cursor:pointer;
  font-family:'Cormorant Garamond', serif; font-size:0.95rem;
}
.qf-pantry-add{ display:flex; gap:0.6rem; margin-top:0.8rem; }
.qf-pantry-add input{
  flex:1;
  padding:0.55rem 0.8rem;
  border-radius:3px;
  border:1px solid var(--paper-edge);
  background:rgba(231,213,171,0.92);
  font-family:'Cormorant Garamond', serif;
  font-size:1.05rem;
}

.qf-week-rhythm{ margin-bottom:1.2rem; }
.qf-rhythm-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.6rem;
  padding:0.35rem 0;
  border-bottom:1px dotted rgba(74,48,24,0.2);
  flex-wrap:wrap;
}
.qf-rhythm-day{
  font-size:0.98rem;
  font-weight:600;
  min-width:5.5rem;
}
.qf-rhythm-pills{ display:flex; gap:0.4rem; flex-wrap:wrap; }
.qf-rhythm-pill{
  background:rgba(231,213,171,0.5);
  border:1px solid rgba(74,48,24,0.3);
  border-radius:16px;
  padding:0.25rem 0.7rem;
  font-family:'Cormorant Garamond', serif;
  font-size:0.85rem;
  color:var(--ink-strong);
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease;
}
.qf-rhythm-pill:hover{ background:rgba(231,213,171,0.85); }
.qf-rhythm-pill.is-active{
  background:var(--wood-dark);
  border-color:var(--wood-dark);
  color:var(--brass-light);
}

.qf-week-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px,1fr));
  gap:1rem;
}
.qf-week-day{
  border:1px dotted rgba(74,48,24,0.3);
  border-radius:4px;
  padding:0.8rem 0.9rem;
}
.qf-week-day h4{
  margin:0 0 0.4rem;
  font-family:'Playfair Display', serif;
  font-size:1rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
}
.qf-week-day .qf-course-tag{
  font-size:0.72rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  opacity:0.6;
}
.qf-week-day .qf-meal-name{
  font-size:1.05rem;
  font-weight:600;
}
.qf-week-day .qf-meal-none{ opacity:0.5; font-style:italic; }

/* ---------- login / register ---------- */
.qf-auth-box{ max-width:420px; margin:0 auto; }
.qf-auth-box form p{ margin-bottom:1rem; }
.qf-auth-box label{ display:block; margin-bottom:0.3rem; font-size:0.95rem; }
.qf-auth-box input[type="text"],
.qf-auth-box input[type="password"],
.qf-auth-box input[type="email"]{
  width:100%;
  padding:0.6rem 0.8rem;
  border-radius:3px;
  border:1px solid var(--paper-edge);
  background:rgba(231,213,171,0.92);
  font-family:'Cormorant Garamond', serif;
  font-size:1.05rem;
}

/* ---------- front page book ---------- */
.qf-stage{
  position:relative;
  width:min(88vw, 480px);
  height:min(80vh, 690px);
  perspective:2400px;
  margin:5vh auto 0;
}
.qf-hint{
  position:absolute; left:50%; bottom:-3.2rem; transform:translateX(-50%);
  font-family:'Caveat', cursive; font-size:1.6rem; color:var(--brass-light);
  opacity:0.85; white-space:nowrap; animation:qfPulse 2.4s ease-in-out infinite;
}
@keyframes qfPulse{
  0%,100%{opacity:.55; transform:translateX(-50%) translateY(0);}
  50%{opacity:1; transform:translateX(-50%) translateY(-4px);}
}
.qf-book{
  position:relative; width:100%; height:100%;
  transform-style:preserve-3d;
  transition:transform 1.1s cubic-bezier(.62,.06,.22,1);
  cursor:pointer;
}
.qf-spread{
  position:absolute; inset:0; border-radius:6px 10px 10px 6px; overflow:hidden;
  box-shadow:0 30px 70px var(--shadow-deep), 0 0 0 1px rgba(0,0,0,0.35);
  background:var(--paper-edge);
}
.qf-page-texture{
  position:absolute; inset:0;
  background-image:url('assets/img/Page.png');
  background-size:100% 100%;
}
.qf-page-content{
  position:relative; z-index:2; height:100%;
  display:flex; flex-direction:column; align-items:center;
  padding:8.5% 11% 6%;
  opacity:0; transform:translateY(10px);
  transition:opacity .9s ease .35s, transform .9s ease .35s;
  overflow-y:auto;
}
.qf-book.is-open .qf-page-content{ opacity:1; transform:translateY(0); }
.qf-crest{ width:62%; max-width:230px; margin-bottom:0.2rem; }
.qf-toc-list{ list-style:none; margin:0; padding:0; width:100%; max-width:340px; }
.qf-toc-list li{ opacity:0; transform:translateY(6px); transition:opacity .6s ease, transform .6s ease; }
.qf-book.is-open .qf-toc-list li{ opacity:1; transform:translateY(0); }
.qf-toc-item{
  display:flex; align-items:baseline; width:100%;
  padding:0.5rem 0.1rem; font-family:'Cormorant Garamond', serif;
}
.qf-toc-item:hover{ text-decoration:none; }
.qf-toc-num{ font-size:0.95rem; font-weight:500; opacity:0.75; width:1.6rem; flex:none; }
.qf-toc-name{
  font-size:1.32rem; font-weight:600; letter-spacing:0.03em;
  white-space:nowrap; transition:letter-spacing .35s ease, color .35s ease;
}
.qf-toc-leader{ flex:1; margin:0 0.6rem; border-bottom:1.5px dotted rgba(74,48,24,0.45); transform:translateY(-4px); }
.qf-toc-item:hover .qf-toc-name{ letter-spacing:0.09em; color:var(--accent); }
.qf-toc-divider{ width:70%; max-width:220px; height:1px; margin:0.65rem auto 0.55rem; background:linear-gradient(90deg, transparent, rgba(74,48,24,0.35), transparent); }
.qf-cover-face{
  position:absolute; inset:0; transform-origin:left center; transform-style:preserve-3d;
  backface-visibility:hidden; border-radius:6px 10px 10px 6px;
  box-shadow:0 26px 60px var(--shadow-deep), 0 0 0 1px rgba(0,0,0,0.3);
  background-image:url('assets/img/Rustic.png'); background-size:100% 100%;
  transition:transform 1.1s cubic-bezier(.62,.06,.22,1), box-shadow 1.1s ease;
}
.qf-book.is-open .qf-cover-face{ transform:rotateY(-152deg); box-shadow:-10px 20px 40px var(--shadow-deep); }
.qf-spine-shadow{ position:absolute; left:0; top:0; bottom:0; width:10%; background:linear-gradient(90deg, rgba(0,0,0,0.45), transparent); z-index:3; border-radius:6px 0 0 6px; }

.qf-book.is-open-instant,
.qf-book.is-open-instant .qf-cover-face,
.qf-book.is-open-instant .qf-page-content,
.qf-book.is-open-instant .qf-toc-list li{
  transition-duration:0.01ms !important;
}

@media (prefers-reduced-motion: reduce){
  .qf-book, .qf-cover-face, .qf-page-content, .qf-toc-list li{
    transition-duration:0.01ms !important; animation:none !important;
  }
}
