/* Shiloh Full Gospel Missionary Baptist Church
   Navy + white, Newsreader headlines, Schibsted Grotesk text. No italics anywhere. */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 140px; }
body { margin: 0; background: #F8FAFD; color: #0E1A33; font-family: 'Schibsted Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
em, i, cite, blockquote, address { font-style: normal; }
img { max-width: 100%; }
a { color: #14254F; }
a:hover { color: #0B1631; }
:focus-visible { outline: 3px solid #3A64C8; outline-offset: 3px; border-radius: 4px; }

.skip-link { position: absolute; left: 16px; top: -60px; z-index: 100; background: #14254F; color: #F8FAFD; padding: 12px 18px; border-radius: 999px; font-weight: 650; text-decoration: none; transition: top .2s cubic-bezier(.25,1,.5,1); }
.skip-link:focus { top: 12px; color: #F8FAFD; }

/* ---------- Motion: crisp, short, one direction ---------- */
@keyframes rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.rise { animation: rise .5s cubic-bezier(.25,1,.5,1) both; }
.d1 { animation-delay: .08s; } .d2 { animation-delay: .16s; } .d3 { animation-delay: .24s; } .d4 { animation-delay: .32s; }
.js .reveal { opacity: 0; transform: translateY(16px); }
.js .reveal.in { opacity: 1; transform: none; transition: opacity .5s cubic-bezier(.25,1,.5,1), transform .5s cubic-bezier(.25,1,.5,1); transition-delay: var(--d, 0s); }

.lift { transition: transform .16s cubic-bezier(.25,1,.5,1), background-color .16s cubic-bezier(.25,1,.5,1), color .16s; }
.lift:hover { transform: translateY(-1px); }
.zoom { overflow: hidden; }
.zoom img { transition: transform .6s cubic-bezier(.25,1,.5,1); }
.zoom:hover img { transform: scale(1.03); }
.mrow { transition: background-color .2s cubic-bezier(.25,1,.5,1); }
.mrow:hover { background: #E8EDF7; }
.mrow .arw { transition: transform .2s cubic-bezier(.25,1,.5,1); }
.mrow:hover .arw { transform: translateX(4px); }
.card { transition: box-shadow .2s cubic-bezier(.25,1,.5,1), transform .2s cubic-bezier(.25,1,.5,1); }
.card:hover { box-shadow: 0 1px 2px rgba(11,22,49,.06), 0 12px 32px -12px rgba(11,22,49,.18); transform: translateY(-2px); }
.chip { transition: background-color .16s cubic-bezier(.25,1,.5,1), color .16s; }
.chip:hover { background: #14254F; color: #F8FAFD; }

details summary { list-style: none; cursor: pointer; }
details summary::-webkit-details-marker { display: none; }
details .pm { transition: transform .2s cubic-bezier(.25,1,.5,1); display: inline-block; }
details[open] .pm { transform: rotate(45deg); }
summary:focus-visible { outline: 3px solid #3A64C8; outline-offset: 4px; border-radius: 6px; }

/* ---------- Header ---------- */
.site-header { transition: box-shadow .2s cubic-bezier(.25,1,.5,1); }
.site-header.scrolled { box-shadow: 0 1px 2px rgba(11,22,49,.06), 0 12px 32px -12px rgba(11,22,49,.18); }
.site-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 30px; font-size: 16px; line-height: 20px; font-weight: 600; }
.site-nav a[aria-current="page"] { color: #25418B !important; box-shadow: inset 0 -2px 0 #3A64C8; }
.site-nav a:not([style*="border-radius"]):hover { color: #25418B !important; }
.nav-toggle { display: none; align-items: center; gap: 10px; min-height: 44px; padding: 10px 16px; border: 1.5px solid #14254F; border-radius: 999px; background: transparent; color: #14254F; font: 650 15px/20px 'Schibsted Grotesk', system-ui, sans-serif; cursor: pointer; }
.nav-toggle-bars, .nav-toggle-bars::before, .nav-toggle-bars::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s cubic-bezier(.25,1,.5,1), opacity .2s; }
.nav-toggle-bars { position: relative; }
.nav-toggle-bars::before, .nav-toggle-bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle-bars::before { top: -6px; }
.nav-toggle-bars::after { top: 6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1080px) {
  .nav-toggle { display: inline-flex; }
  .js .site-nav { display: none; width: 100%; flex-direction: column; align-items: stretch; gap: 0; padding: 8px 0 12px; border-top: 1px solid #DCE3EF; }
  .js .site-nav.open { display: flex; animation: rise .3s cubic-bezier(.25,1,.5,1) both; }
  .site-nav a { padding: 14px 4px !important; font-size: 18px; border-bottom: 1px solid #DCE3EF; }
  .site-nav a[style*="border-radius"] { justify-content: center; margin-top: 14px; border-bottom: 0; padding: 15px 24px !important; }
  .site-nav a[aria-current="page"] { box-shadow: none; }
}

/* ---------- Map ---------- */
.map-frame { position: relative; height: 380px; border-radius: 14px; overflow: hidden; border: 1px solid #CBD5E5; background: #DCE3EF; }
.map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Forms ---------- */
input, textarea, select { font: inherit; color: #0E1A33; transition: border-color .16s, box-shadow .16s; }
input:focus, textarea:focus, select:focus { outline: none; border-color: #14254F !important; box-shadow: 0 0 0 3px rgba(58,100,200,.35); }
input[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: #B42318 !important; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { margin: 0; font-size: 15px; line-height: 22px; font-weight: 600; min-height: 0; }
.form-status:empty { display: none; }
.form-status.ok { color: #1F6B3A; }
form[id="prayer"] .form-status.ok { color: #BFE8CC; }
.form-status.err { color: #B42318; }
form[id="prayer"] .form-status.err { color: #FFD3CE; }
button[type="submit"][disabled] { opacity: .6; cursor: progress; }

/* ---------- Phone and tablet ---------- */
@media (max-width: 760px) {
  .hide-sm { display: none; }
  main > section[style*="padding: 1"]:not([aria-labelledby="hero-h"]) { padding-top: 72px !important; padding-bottom: 72px !important; }
  main > section > div[style*="padding: 1"] { padding-top: 72px !important; padding-bottom: 72px !important; }
  main > section[aria-labelledby="hero-h"] > div { padding-top: 96px !important; padding-bottom: 168px !important; }
  section[aria-label="Service times"] > div > div { border-left: 0 !important; border-top: 1px solid #DCE3EF; padding: 22px 24px !important; }
  section[aria-label="Service times"] > div > div:first-child { border-top: 0; }
  section[aria-label="Service times"] > div > div:last-child { border-radius: 0 0 14px 14px !important; }
  form[style*="padding: 40px"] { padding: 28px 22px !important; }
  div[style*="padding: 56px"] { padding: 32px 24px !important; }
  div[style*="padding: 88px 56px"] { padding: 56px 24px !important; }
  footer > div { padding-top: 64px !important; }
  .map-frame { height: 300px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rise, .js .site-nav.open { animation: none; }
  .js .reveal, .js .reveal.in { opacity: 1; transform: none; transition: none; }
  .lift:hover, .zoom:hover img, .mrow:hover .arw, .card:hover { transform: none; }
}

@media print {
  .site-header, footer, .nav-toggle, .map-frame { display: none !important; }
}

/* Mobile readability: larger body paragraphs on phones only (desktop unchanged).
   Inline sizes are mapped up one step; headings, eyebrows, buttons and names are untouched. */
@media (max-width: 760px) {
  main p[style*="font-size: 14px"] { font-size: 15px !important; line-height: 22px !important; }
  main p[style*="font-size: 15px"] { font-size: 17px !important; line-height: 26px !important; }
  main p[style*="font-size: 16px"] { font-size: 18px !important; line-height: 28px !important; }
  main p[style*="font-size: 17px"] { font-size: 18px !important; line-height: 29px !important; }
  main p[style*="font-size: 18px"]:not([style*="font-weight: 6"]):not([style*="font-weight: 7"]) { font-size: 19px !important; line-height: 30px !important; }
  main p[style*="font-size: 19px"] { font-size: 20px !important; line-height: 31px !important; }
  main li[style*="font-size: 16px"], main li[style*="font-size: 17px"] { font-size: 18px !important; line-height: 28px !important; }
  main a > span[style*="font-size: 16px"] { font-size: 17px !important; line-height: 26px !important; }
  footer p[style*="font-size: 16px"] { font-size: 17px !important; line-height: 26px !important; }
  .pa-p { font-size: 18px !important; line-height: 29px !important; }
}

/* Bishop Edwards memorial seal: small accent beside the heading */
@media (max-width: 760px) {
  .memorial-head { gap: 16px !important; }
  .memorial-head > img { width: 64px !important; height: 64px !important; }
}
