/*
Theme Name: Pidcock Family
Theme URI: https://pidcockfamily.com
Author: Pidcock Family
Description: A bright, warm custom theme for the Pidcock family site — built by hand for this family, no add-ons, no advertising. Ships with a light and a dark color scheme and a switcher in the header.
Version: 1.3.0
License: GPL-2.0-or-later
Text Domain: pidcock-family
*/

/* ---------- Color schemes ---------- */
:root,
[data-theme="light"] {
  --bg: #fff8ec;
  --bg-soft: #ffefc9;
  --surface: #ffffff;
  --ink: #2d1e12;
  --ink-soft: #6b543f;
  --accent: #e8590c;
  --accent-2: #0ca678;
  --accent-3: #1971c2;
  --line: #f0dcbb;
  --header-bg: #fff3d6;
  --shadow: 0 2px 14px rgba(120, 72, 20, 0.10);
  --toggle-track: #ffd8a8;
}

[data-theme="dark"] {
  --bg: #16130f;
  --bg-soft: #221c15;
  --surface: #241e17;
  --ink: #f5e9d5;
  --ink-soft: #c9b193;
  --accent: #ffa94d;
  --accent-2: #3ddc97;
  --accent-3: #74c0fc;
  --line: #3d3222;
  --header-bg: #1d1812;
  --shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
  --toggle-track: #4a3a22;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  font-size: 18px;
  line-height: 1.6;
  transition: background 0.25s ease, color 0.25s ease;
}

a { color: var(--accent-3); }
a:hover { color: var(--accent); }

.site-header {
  background: var(--header-bg);
  border-bottom: 3px solid var(--accent);
  position: sticky;
  top: 0;
  z-index: 50;
}
.site-header .wrap {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0.7rem 1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.site-title {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--accent);
  text-decoration: none;
  letter-spacing: 0.2px;
}
.site-nav { margin-left: auto; }
.site-nav ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; gap: 1.1rem; flex-wrap: wrap;
}
.site-nav a {
  color: var(--ink);
  text-decoration: none;
  font-weight: 600;
}
.site-nav a:hover { color: var(--accent); }

/* Light/dark switcher */
.theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: var(--toggle-track);
  border: 2px solid var(--accent);
  color: var(--ink);
  border-radius: 999px;
  padding: 0.3rem 0.8rem;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
}
.theme-toggle:hover { filter: brightness(1.05); }

.site-main {
  max-width: 1080px;
  margin: 0 auto;
  padding: 1.6rem 1rem 3rem;
}
.card, article.post, article.page {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 1.4rem 1.6rem;
  margin-bottom: 1.4rem;
}
h1, h2, h3 { color: var(--ink); line-height: 1.25; }
h1.entry-title { color: var(--accent); margin-top: 0; }

.site-footer {
  border-top: 3px solid var(--accent-2);
  background: var(--bg-soft);
  color: var(--ink-soft);
  text-align: center;
  padding: 1.4rem 1rem 2rem;
  font-size: 0.95rem;
}

img { max-width: 100%; height: auto; border-radius: 10px; }
input, textarea, select, button { font: inherit; }
input[type="text"], input[type="email"], input[type="password"], textarea, select {
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0.5rem 0.7rem;
}
button, input[type="submit"] {
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 0.55rem 1.1rem;
  font-weight: 700;
  cursor: pointer;
}
button:hover, input[type="submit"]:hover { filter: brightness(1.08); }

/* Front page */
.pf-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:1.4rem 1.6rem;margin-bottom:1.4rem}
.pf-button{display:inline-block;background:var(--accent);color:#fff!important;padding:.55rem 1.1rem;border-radius:999px;font-weight:700;margin:.2rem .3rem .2rem 0}
.pf-button:hover{background:var(--accent-2);text-decoration:none}
.pf-activity-mini{list-style:none;padding:0;margin:0}
.pf-activity-mini li{padding:.6rem 0;border-bottom:1px solid var(--line)}
.pf-activity-mini li:last-child{border-bottom:0}
.pf-activity-mini-head{display:flex;align-items:center;gap:.5rem}
.pf-activity-mini-head img{border-radius:50%}
.pf-activity-mini-body{margin:.35rem 0 0 2.6rem}

/* Events (Pidcock Family Events plugin) */
.pf-event-when{font-weight:700;color:var(--accent)}
.pf-event-where{color:var(--ink-soft)}
.pf-event-archive{list-style:none;padding:0;margin:0}
.pf-event-archive li{padding:.8rem 0;border-bottom:1px solid var(--line)}
.pf-event-archive li:last-child{border-bottom:0}
.pf-cal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.6rem}
.pf-cal-title{font-weight:800;font-size:1.15rem}
.pf-cal-nav{font-weight:700;text-decoration:none}
.pf-cal-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.pf-cal-grid th{padding:.35rem;font-size:.85rem;color:var(--ink-soft);text-align:left}
.pf-cal-grid td{border:1px solid var(--line);vertical-align:top;height:5.2rem;padding:.3rem .4rem;background:var(--surface)}
.pf-cal-grid td.pf-cal-empty{background:var(--bg-soft);opacity:.55}
.pf-cal-grid td.pf-cal-today{outline:2px solid var(--accent-2);outline-offset:-2px}
.pf-cal-date{font-weight:800;font-size:.85rem;color:var(--ink-soft)}
.pf-cal-event{display:block;font-size:.82rem;line-height:1.3;margin-top:.2rem;text-decoration:none;color:var(--accent-3)}
.pf-cal-event:hover{color:var(--accent);text-decoration:underline}
.pf-cal-time{font-weight:700}
.pf-upcoming{list-style:none;padding:0;margin:0}
.pf-upcoming li{padding:.55rem 0;border-bottom:1px solid var(--line)}
.pf-upcoming li:last-child{border-bottom:0}
.pf-upcoming-date{font-weight:800;color:var(--accent);margin-right:.4rem}
.pf-upcoming-title{font-weight:700}
.pf-upcoming-meta{display:block;color:var(--ink-soft);font-size:.9rem;margin-left:0}
.pf-rsvp{border-top:2px solid var(--line);margin-top:1.2rem;padding-top:1rem}
.pf-attendees{list-style:none;padding:0;margin:.2rem 0 1rem}
.pf-attendees li{display:inline-block;background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;padding:.15rem .7rem;margin:.15rem .25rem .15rem 0;font-size:.92rem}
input[type="date"],input[type="time"]{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem}

/* Footer copyright */
.site-copyright{margin:.9rem 0 0;font-weight:600;color:var(--ink-soft)}

/* Log Out button (logged-in users, in the header) */
.pf-logout-button{display:inline-flex;align-items:center;min-height:44px;background:var(--accent);color:#fff!important;text-decoration:none;border-radius:999px;padding:.45rem 1rem;font-weight:700;font-size:.95rem}
.pf-logout-button:hover{background:var(--accent-2)}

/* ---------- Mobile first polish ----------
   Most family will use this on their phones: big thumb targets,
   nothing that needs two hands or a mouse, no sideways scrolling. */
img,table,iframe,video{max-width:100%}
input,textarea,select{max-width:100%}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}
.site-nav a{display:inline-flex;align-items:center;min-height:44px;padding:.2rem .15rem}
.theme-toggle{min-height:44px}
@media (max-width:720px){
  body{font-size:17px}
  .site-header .wrap{padding:.55rem .7rem;gap:.5rem .7rem}
  .site-title{font-size:1.3rem}
  .site-nav{order:3;flex:1 1 100%;margin-left:0}
  .site-nav ul{gap:.2rem .9rem}
  .site-main{padding:1rem .65rem 2.2rem}
  .card,article.post,article.page,.pf-card{padding:1rem 1rem;margin-bottom:1rem;border-radius:12px}
  h1{font-size:1.55rem} h2{font-size:1.3rem} h3{font-size:1.12rem}
  .pf-button{display:inline-flex;align-items:center;min-height:48px;padding:.6rem 1.15rem;margin:.25rem .35rem .25rem 0}
  button,input[type="submit"]{min-height:48px;padding:.65rem 1.2rem}
  input[type="text"],input[type="email"],input[type="password"],input[type="date"],input[type="time"],textarea,select{font-size:16px;padding:.65rem .75rem;width:100%}
  /* Calendar on a small screen: shorter cells, tighter type, still readable */
  .pf-cal-grid th{padding:.2rem;font-size:.72rem}
  .pf-cal-grid td{height:3.4rem;padding:.18rem .22rem}
  .pf-cal-date{font-size:.75rem}
  .pf-cal-event{font-size:.7rem;line-height:1.25}
  .pf-cal-time{display:block}
  .pf-cal-event{overflow-wrap:anywhere}
  .pf-cal-grid td{overflow:hidden}
  .pf-cal-head{flex-wrap:wrap}
  .pf-attendees li{padding:.35rem .8rem}
  .site-footer{padding:1.1rem .8rem 1.6rem;font-size:.9rem}
}
@media (max-width:380px){
  .pf-cal-grid td{height:3rem}
  .pf-cal-event{font-size:.64rem}
}

/* Join (invited registration) form */
.pf-join-form label{display:block;font-weight:600;margin:.9rem 0 .3rem}
.pf-join-form input[type="text"],.pf-join-form input[type="email"],.pf-join-form input[type="password"]{width:100%}
.pf-join-note{color:var(--ink-soft)}
.pf-form-errors{background:var(--bg-soft);border:1px solid var(--accent);border-radius:10px;padding:.7rem 1rem;margin-bottom:1rem}
