/* Orange View Church of Christ — shared styles for devotional pages */

  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
    --ink:       #060f1c;
    --navy:      #0c1d35;
    --navy-mid:  #162c4a;
    --gold:      #c8882c;
    --gold-lt:   #e6a83c;
    --gold-pale: #f2d08a;
    --cream:     #f0e9db;
    --parchment: #faf6ef;
    --white:     #ffffff;
    --muted:     #6b7a8f;
    --serif:     'Cormorant Garamond', Georgia, serif;
    --caps:      'Cinzel', serif;
    --sans:      'Nunito', sans-serif;
  }

  html { scroll-behavior: smooth; }
  body { font-family: var(--sans); background: var(--parchment); color: var(--ink); line-height: 1.65; overflow-x: hidden; }

  /* ─── NAV ─── */
  nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 200;
    padding: 0 3rem; height: 70px;
    display: flex; align-items: center; justify-content: space-between;
    transition: background 0.5s, box-shadow 0.5s;
  }
  nav.scrolled { background: rgba(6,15,28,0.96); backdrop-filter: blur(12px); box-shadow: 0 1px 0 rgba(255,255,255,0.06); }
  .nav-logo { font-family: var(--caps); font-size: 0.95rem; font-weight: 500; letter-spacing: 0.12em; color: var(--cream); text-decoration: none; white-space: nowrap; }
  .nav-links { display: flex; gap: 2.5rem; list-style: none; align-items: center; }
  .nav-links a { font-family: var(--caps); font-size: 0.62rem; font-weight: 500; letter-spacing: 0.18em; color: rgba(240,233,219,0.75); text-decoration: none; transition: color 0.2s; }
  .nav-links a:hover { color: var(--gold-lt); }
  .nav-links .active a { color: var(--gold-lt); }
  .nav-give-btn a { background: var(--gold) !important; color: var(--white) !important; padding: 0.42rem 1.1rem; border-radius: 1px; transition: background 0.2s !important; }
  .nav-give-btn a:hover { background: var(--gold-lt) !important; }
  .hamburger { display: none; background: none; border: none; cursor: pointer; padding: 6px; flex-direction: column; gap: 5px; }
  .hamburger span { display: block; width: 22px; height: 1.5px; background: var(--cream); border-radius: 1px; transition: 0.3s; }

  /* ─── PAGE HERO ─── */
  .page-hero {
    min-height: 58vh;
    background:
      linear-gradient(to bottom, rgba(6,15,28,0.60) 0%, rgba(6,15,28,0.78) 60%, rgba(6,15,28,0.95) 100%),
      url('images/hero-bible-study.jpg') center 30% / cover no-repeat;
    background-color: var(--ink);
    display: flex; align-items: center; justify-content: center;
    text-align: center; padding: 9rem 2rem 5rem; position: relative; overflow: hidden;
  }
  .page-hero-grid {
    position: absolute; inset: 0; pointer-events: none;
    background-image:
      linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 1px);
    background-size: 70px 70px;
  }
  .page-hero-inner { position: relative; z-index: 1; max-width: 700px; }
  .page-eyebrow {
    font-family: var(--caps); font-size: 0.62rem; letter-spacing: 0.3em; color: var(--gold-lt);
    margin-bottom: 1.5rem;
    display: flex; align-items: center; justify-content: center; gap: 1rem;
    opacity: 0; animation: fadeUp 0.8s 0.3s forwards;
  }
  .page-eyebrow::before, .page-eyebrow::after { content: ''; display: inline-block; width: 36px; height: 0.5px; background: var(--gold); opacity: 0.55; }
  .page-hero h1 {
    font-family: var(--serif); font-size: clamp(2.5rem, 6vw, 5.5rem); font-weight: 300;
    color: var(--cream); line-height: 1.05; margin-bottom: 1.5rem;
    opacity: 0; animation: fadeUp 0.9s 0.5s forwards;
  }
  .page-hero h1 em { font-style: italic; color: var(--gold-pale); }
  .page-ornament {
    display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem;
    opacity: 0; animation: fadeUp 0.9s 0.7s forwards;
  }
  .page-ornament svg { width: 160px; height: 14px; }
  .page-hero-sub {
    font-family: var(--serif); font-size: 1.1rem; font-style: italic;
    color: rgba(240,233,219,0.5); line-height: 1.6;
    opacity: 0; animation: fadeUp 0.9s 0.85s forwards;
  }

  @keyframes fadeUp { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:none} }
  @keyframes fadeIn { from{opacity:0} to{opacity:1} }

  /* ─── REVEAL ─── */
  .reveal { opacity:0; transform:translateY(24px); transition:opacity 0.72s ease, transform 0.72s ease; }
  .reveal.in { opacity:1; transform:none; }
  .delay-1 { transition-delay:0.12s; }
  .delay-2 { transition-delay:0.24s; }
  .delay-3 { transition-delay:0.36s; }

  /* ─── BUTTONS ─── */
  .btn-gold  { font-family:var(--caps); font-size:0.63rem; font-weight:500; letter-spacing:0.18em; background:var(--gold); color:var(--white); padding:0.9rem 2.5rem; text-decoration:none; border-radius:1px; transition:background 0.2s, transform 0.2s, box-shadow 0.2s; display:inline-block; }
  .btn-gold:hover  { background:var(--gold-lt); transform:translateY(-2px); box-shadow:0 6px 20px rgba(200,136,44,0.35); }
  .btn-ghost { font-family:var(--caps); font-size:0.63rem; font-weight:500; letter-spacing:0.18em; border:1px solid rgba(6,15,28,0.25); color:var(--navy); padding:0.9rem 2.5rem; text-decoration:none; border-radius:1px; transition:border-color 0.2s, background 0.2s, transform 0.2s; display:inline-block; }
  .btn-ghost:hover { border-color:var(--navy); background:rgba(6,15,28,0.05); transform:translateY(-2px); }
  .btn-ghost-lt { font-family:var(--caps); font-size:0.63rem; font-weight:500; letter-spacing:0.18em; border:1px solid rgba(240,233,219,0.3); color:var(--cream); padding:0.9rem 2.5rem; text-decoration:none; border-radius:1px; transition:border-color 0.2s, background 0.2s, transform 0.2s; display:inline-block; }
  .btn-ghost-lt:hover { border-color:rgba(240,233,219,0.75); background:rgba(255,255,255,0.05); transform:translateY(-2px); }

  /* ─── SECTION COMMONS ─── */
  .section-label { font-family:var(--caps); font-size:0.6rem; letter-spacing:0.28em; color:var(--gold); margin-bottom:0.75rem; display:block; }
  .section-title { font-family:var(--serif); font-size:clamp(2rem,4vw,3.25rem); font-weight:400; line-height:1.1; margin-bottom:0.9rem; }
  .section-body  { font-size:0.93rem; color:var(--muted); line-height:1.85; }

  .inner { max-width:1100px; margin:0 auto; }

  /* ─── WELCOME ─── */
  .welcome-section { background:var(--parchment); padding:6rem 2.5rem; text-align:center; }
  .welcome-section .section-title { color:var(--navy); max-width:640px; margin:0 auto 1.25rem; }
  .welcome-section .section-body  { max-width:620px; margin:0 auto; font-size:1rem; line-height:2; }
  .welcome-verse {
    font-family:var(--serif); font-size:clamp(1.2rem,2vw,1.5rem); font-style:italic;
    font-weight:300; color:var(--navy); line-height:1.5; margin:2.5rem auto 0.5rem;
    max-width:560px; padding:0 2rem; position:relative;
  }
  .welcome-verse::before { content:'\201C'; position:absolute; top:-0.8rem; left:0.5rem; font-size:4rem; color:var(--gold); opacity:0.35; font-family:var(--serif); line-height:1; }
  .welcome-ref { font-family:var(--caps); font-size:0.6rem; letter-spacing:0.18em; color:var(--muted); margin-top:0.5rem; }

  /* ─── TIMES BAND ─── */
  .times-band { background:var(--navy); padding:0; }
  .times-grid { display:grid; grid-template-columns:repeat(3,1fr); }
  .time-card {
    padding:3rem 2rem; text-align:center;
    border-right:1px solid rgba(255,255,255,0.06);
    position:relative; overflow:hidden;
    transition:background 0.25s;
  }
  .time-card:last-child { border-right:none; }
  .time-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform 0.32s ease; }
  .time-card:hover::after { transform:scaleX(1); }
  .time-card:hover { background:rgba(255,255,255,0.04); }
  .time-icon { width:28px; height:28px; stroke:var(--gold); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; margin:0 auto 1rem; display:block; }
  .time-label { font-family:var(--caps); font-size:0.6rem; letter-spacing:0.22em; color:rgba(240,233,219,0.45); margin-bottom:0.5rem; }
  .time-name  { font-family:var(--serif); font-size:1.05rem; font-weight:400; color:var(--cream); margin-bottom:0.35rem; }
  .time-hour  { font-family:var(--serif); font-size:2.25rem; font-weight:300; color:var(--gold-lt); line-height:1; margin-bottom:0.25rem; }
  .time-note  { font-size:0.72rem; color:rgba(240,233,219,0.38); line-height:1.5; }

  /* ─── SUNDAY FLOW ─── */
  .flow-section { background:var(--cream); padding:6rem 2.5rem; }
  .flow-inner { max-width:900px; margin:0 auto; }
  .flow-section .section-title { color:var(--navy); }
  .flow-section .section-body  { max-width:560px; margin-bottom:3.5rem; }

  .flow-steps { display:flex; flex-direction:column; gap:0; }
  .flow-step {
    display:grid; grid-template-columns:64px 1fr;
    gap:0 2rem; padding:2rem 0;
    border-bottom:1px solid rgba(0,0,0,0.07);
    position:relative;
  }
  .flow-step:last-child { border-bottom:none; }
  .flow-num {
    font-family:var(--serif); font-size:3.5rem; font-weight:300;
    color:rgba(200,136,44,0.18); line-height:1; text-align:right;
    padding-top:0.1rem;
    transition:color 0.3s;
  }
  .flow-step:hover .flow-num { color:rgba(200,136,44,0.4); }
  .flow-content h3 { font-family:var(--serif); font-size:1.4rem; font-weight:400; color:var(--navy); margin-bottom:0.35rem; }
  .flow-time  { font-family:var(--caps); font-size:0.58rem; letter-spacing:0.18em; color:var(--gold); margin-bottom:0.5rem; display:block; }
  .flow-content p { font-size:0.88rem; color:var(--muted); line-height:1.8; }

  /* Worship elements (sub-items under worship step) */
  .worship-items { display:flex; flex-wrap:wrap; gap:0.6rem; margin-top:1rem; }
  .worship-item {
    display:inline-flex; align-items:center; gap:0.45rem;
    background:var(--parchment); border:1px solid rgba(0,0,0,0.08);
    border-radius:2px; padding:0.35rem 0.9rem;
    font-family:var(--caps); font-size:0.56rem; letter-spacing:0.12em; color:var(--navy-mid);
  }
  .worship-item svg { width:12px; height:12px; stroke:var(--gold); fill:none; stroke-width:2; stroke-linecap:round; flex-shrink:0; }

  /* ─── DISTINCTIVES ─── */
  .dist-section { background:var(--parchment); padding:6rem 2.5rem; }
  .dist-section .section-title { color:var(--navy); }
  .dist-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(17.5rem,1fr)); gap:1.5rem; margin-top:3rem; }
  .dist-card {
    background:var(--white); border:1px solid rgba(0,0,0,0.07); border-radius:2px;
    padding:2rem; position:relative; overflow:hidden;
    transition:box-shadow 0.25s, transform 0.25s;
  }
  .dist-card:hover { box-shadow:0 8px 28px rgba(6,15,28,0.09); transform:translateY(-3px); }
  .dist-card::before { content:''; position:absolute; top:0; left:0; width:3px; height:100%; background:var(--gold); }
  .dist-icon { width:28px; height:28px; stroke:var(--gold); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; margin-bottom:1rem; }
  .dist-card h3 { font-family:var(--serif); font-size:1.25rem; font-weight:400; color:var(--navy); margin-bottom:0.6rem; }
  .dist-card p  { font-size:0.85rem; color:var(--muted); line-height:1.8; }

  /* ─── FAQ ─── */
  .faq-section { background:var(--navy); padding:6rem 2.5rem; }
  .faq-section .section-label { color:var(--gold-lt); }
  .faq-section .section-title { color:var(--cream); }
  .faq-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(20rem,1fr)); gap:1.25rem; margin-top:3rem; }
  .faq-card {
    background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.07);
    border-radius:2px; padding:1.75rem;
    transition:background 0.25s;
    cursor:pointer;
  }
  .faq-card:hover { background:rgba(255,255,255,0.07); }
  .faq-q {
    font-family:var(--serif); font-size:1.15rem; font-weight:400; color:var(--cream);
    display:flex; justify-content:space-between; align-items:flex-start; gap:1rem;
    margin-bottom:0;
  }
  .faq-q svg { width:16px; height:16px; stroke:var(--gold); fill:none; stroke-width:2; stroke-linecap:round; flex-shrink:0; margin-top:4px; transition:transform 0.3s; }
  .faq-card.open .faq-q svg { transform:rotate(45deg); }
  .faq-a {
    font-size:0.85rem; color:rgba(240,233,219,0.58); line-height:1.8;
    margin-top:1rem; padding-top:1rem;
    border-top:1px solid rgba(255,255,255,0.06);
    display:none;
  }
  .faq-card.open .faq-a { display:block; }

  /* ─── VISIT CTA ─── */
  /* ─── FIND US / MAP ─── */
  .findus-section { background:var(--navy); padding:6rem 2.5rem; }
  .findus-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
  .findus-info .section-label { color:var(--gold-lt); }
  .findus-info .section-title { color:var(--cream); }
  .findus-addr { font-family:var(--serif); font-size:1.65rem; font-weight:400; color:var(--cream); line-height:1.35; margin-bottom:0.4rem; }
  .findus-addr span { display:block; font-size:1.2rem; color:rgba(240,233,219,0.6); }
  .findus-row { display:flex; gap:0.9rem; align-items:flex-start; margin-top:1.5rem; }
  .findus-icon { width:18px; height:18px; stroke:var(--gold); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; margin-top:3px; }
  .findus-row p { font-size:0.87rem; color:rgba(240,233,219,0.62); line-height:1.6; }
  .findus-row strong { color:var(--cream); font-weight:600; display:block; }
  .findus-row a { color:inherit; text-decoration:none; }
  .findus-row a:hover { color:var(--gold-lt); }
  .findus-actions { display:flex; gap:1rem; margin-top:2.25rem; flex-wrap:wrap; }
  .findus-map iframe { width:100%; height:360px; border:0; border-radius:2px; display:block;
    filter:grayscale(0.5) contrast(1.05) brightness(0.9); transition:filter 0.3s; }
  .findus-map iframe:hover { filter:grayscale(0.1) contrast(1.05) brightness(1); }
  @media (max-width:900px){ .findus-inner{grid-template-columns:1fr; gap:2.5rem;} .findus-map{order:-1;} }

  .visit-cta { background:var(--gold); padding:5.5rem 2.5rem; position:relative; overflow:hidden; text-align:center; }
  .visit-cta::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(45deg,transparent,transparent 28px,rgba(0,0,0,0.035) 28px,rgba(0,0,0,0.035) 29px); }
  .visit-cta-inner { position:relative; z-index:1; max-width:640px; margin:0 auto; }
  .cta-frame { border:1px solid rgba(255,255,255,0.28); padding:3.5rem 3rem; position:relative; }
  .cta-frame::before, .cta-frame::after { content:''; position:absolute; width:20px; height:20px; border-color:rgba(255,255,255,0.5); border-style:solid; }
  .cta-frame::before { top:-4px; left:-4px; border-width:2px 0 0 2px; }
  .cta-frame::after  { bottom:-4px; right:-4px; border-width:0 2px 2px 0; }
  .visit-cta h2 { font-family:var(--serif); font-size:clamp(1.9rem,4vw,3rem); font-weight:300; color:var(--white); margin-bottom:0.75rem; line-height:1.15; }
  .visit-cta p  { font-size:0.9rem; color:rgba(255,255,255,0.8); line-height:1.85; margin-bottom:2rem; }
  .cta-details  { font-family:var(--caps); font-size:0.62rem; letter-spacing:0.18em; color:rgba(255,255,255,0.65); margin-top:1.5rem; line-height:2; }
  .cta-details a { color:rgba(255,255,255,0.85); text-decoration:none; }
  .cta-details a:hover { color:var(--white); }
  .cta-buttons  { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
  .btn-white { font-family:var(--caps); font-size:0.63rem; letter-spacing:0.18em; background:var(--white); color:var(--gold); padding:0.9rem 2.5rem; border-radius:1px; text-decoration:none; display:inline-block; transition:opacity 0.2s, transform 0.2s; }
  .btn-white:hover { opacity:0.88; transform:translateY(-2px); }

  /* ─── FOOTER ─── */
  footer { background:var(--navy); border-top:1px solid rgba(255,255,255,0.05); padding:3rem 2rem 2rem; text-align:center; color:rgba(240,233,219,0.32); font-size:0.78rem; }
  .footer-logo { font-family:var(--caps); font-size:0.82rem; letter-spacing:0.18em; color:rgba(240,233,219,0.5); display:block; margin-bottom:1.4rem; }
  .footer-nav  { display:flex; justify-content:center; gap:2.5rem; flex-wrap:wrap; list-style:none; margin-bottom:2rem; }
  .footer-nav a { font-family:var(--caps); font-size:0.58rem; letter-spacing:0.16em; color:rgba(240,233,219,0.38); text-decoration:none; transition:color 0.2s; }
  .footer-nav a:hover { color:var(--gold-lt); }
  .footer-rule { width:40px; height:0.5px; background:rgba(200,136,44,0.35); margin:0 auto 1.5rem; }
  footer a { color:rgba(200,166,90,0.65); text-decoration:none; }
  footer a:hover { color:var(--gold-lt); }

  /* ─── RESPONSIVE ─── */
  @media (max-width:800px) {
    .times-grid { grid-template-columns:1fr; }
    .time-card  { border-right:none; border-bottom:1px solid rgba(255,255,255,0.06); }
    .time-card:last-child { border-bottom:none; }
    .flow-step  { grid-template-columns:40px 1fr; gap:0 1.25rem; }
    .flow-num   { font-size:2.5rem; }
    .cta-frame  { padding:2rem 1.5rem; }
  }
  @media (max-width:700px) {
    nav { padding:0 1.5rem; }
    .nav-links { display:none; flex-direction:column; position:fixed; top:70px; left:0; right:0; bottom:0; background:rgba(6,15,28,0.97); padding:3rem 2rem; gap:2rem; align-items:center; justify-content:flex-start; }
    .nav-links.open { display:flex; }
    .hamburger { display:flex; }
    .dist-grid  { grid-template-columns:1fr; }
  }

  /* ═══════════ TEXT SIZE CONTROL ═══════════ */
  .fs-widget {
    position: fixed; right: 18px; bottom: 18px; z-index: 400;
    display: flex; align-items: center; gap: 6px;
    padding: 7px 10px 7px 6px; border-radius: 999px;
    background: rgba(6,15,28,0.94);
    border: 1px solid rgba(200,136,44,0.42);
    box-shadow: 0 6px 22px rgba(0,0,0,0.34);
    backdrop-filter: blur(8px);
  }
  .fs-widget-title {
    font-family: 'Cinzel', serif; font-size: 8px; line-height: 1.4;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: rgba(240,233,219,0.55); padding: 0 4px 0 8px; white-space: nowrap;
  }
  .fs-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; border-radius: 50%; padding: 0;
    border: 1px solid rgba(255,255,255,0.16); background: transparent;
    color: #f0e9db; cursor: pointer; font-family: 'Cinzel', serif;
    line-height: 1; letter-spacing: 0;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
  }
  .fs-btn:hover { background: rgba(200,136,44,0.18); border-color: #c8882c; color: #e6a83c; }
  .fs-btn:focus-visible { outline: 2px solid #e6a83c; outline-offset: 2px; }
  .fs-btn[disabled] { opacity: 0.3; cursor: default; }
  .fs-btn[disabled]:hover { background: transparent; border-color: rgba(255,255,255,0.16); color: #f0e9db; }
  #fs-dec   { font-size: 12px; }
  #fs-reset { font-size: 14px; }
  #fs-inc   { font-size: 18px; }
  .fs-widget.is-active #fs-reset { border-color: #c8882c; color: #e6a83c; }
  @media (max-width:700px) {
    .fs-widget { right: 10px; bottom: 10px; padding: 6px; gap: 5px; }
    .fs-widget-title { display: none; }
    .fs-btn { width: 32px; height: 32px; }
  }
  @media print { .fs-widget { display: none !important; } }

  /* The root font-size is scaled by the text-size widget below. The nav bar
     lives in a fixed 70px strip, so its type is pinned in px so it can't
     overflow the bar at the larger settings. */
  nav#main-nav                 { padding: 0 48px; }
  nav#main-nav .nav-logo       { font-size: 15.2px; }
  nav#main-nav .nav-links      { gap: 40px; }
  nav#main-nav .nav-links a    { font-size: 9.92px; }
  nav#main-nav .nav-give-btn a { padding: 6.72px 17.6px; }
  @media (max-width:700px) {
    nav#main-nav            { padding: 0 24px; }
    nav#main-nav .nav-links { padding: 48px 32px; gap: 32px; }
  }
  
  /* ═══════════ DEVOTIONALS ═══════════ */
  .intro-section { background:var(--parchment); padding:5.5rem 2.5rem 3.5rem; text-align:center; }
  .intro-section .inner { max-width:720px; }
  .intro-lead { font-family:var(--serif); font-size:clamp(1.3rem,2.4vw,1.7rem); font-weight:300; line-height:1.6; color:var(--navy); }

  .devo-section { background:var(--parchment); padding:1rem 2rem 5rem; }
  .devo-inner { max-width:46rem; margin:0 auto; }

  .devo-card {
    background:var(--white); border:1px solid rgba(6,15,28,0.1);
    border-top:3px solid var(--gold); border-radius:2px;
    padding:3.25rem 3rem; box-shadow:0 14px 40px rgba(6,15,28,0.07);
  }
  .devo-tag { font-family:var(--caps); font-size:0.58rem; letter-spacing:0.24em; color:var(--gold); margin-bottom:1rem; display:block; }
  .devo-date { font-family:var(--caps); font-size:0.58rem; letter-spacing:0.2em; color:var(--muted); margin-bottom:0.7rem; display:block; }
  .devo-title { font-family:var(--serif); font-size:clamp(1.8rem,3.4vw,2.5rem); font-weight:400; line-height:1.18; color:var(--ink); margin-bottom:1.2rem; }

  .devo-ref {
    font-family:var(--caps); font-size:0.62rem; letter-spacing:0.16em;
    color:var(--gold); padding:0.55rem 0; border-top:1px solid rgba(200,136,44,0.28);
    border-bottom:1px solid rgba(200,136,44,0.28); display:inline-block; margin-bottom:1.8rem;
  }
  .devo-scripture {
    font-family:var(--serif); font-size:1.18rem; font-style:italic; font-weight:400;
    line-height:1.75; color:#162c4a;
    border-left:2px solid var(--gold); padding:0.3rem 0 0.3rem 1.5rem; margin-bottom:0.6rem;
  }
  .devo-trans { font-size:0.68rem; color:var(--muted); margin-bottom:2rem; letter-spacing:0.04em; }
  .devo-body p { font-size:1rem; line-height:1.95; color:#243347; margin-bottom:1.15rem; }
  .devo-body p:last-child { margin-bottom:0; }

  .devo-block { margin-top:2.5rem; padding-top:2rem; border-top:1px solid rgba(6,15,28,0.09); }
  .devo-block-h { font-family:var(--caps); font-size:0.6rem; letter-spacing:0.2em; color:var(--gold); margin-bottom:1rem; }
  .devo-questions { list-style:none; }
  .devo-questions li { position:relative; padding-left:1.6rem; margin-bottom:0.85rem; font-size:0.95rem; line-height:1.8; color:#243347; }
  .devo-questions li::before { content:''; position:absolute; left:0; top:0.72em; width:6px; height:6px; border:1px solid var(--gold); border-radius:50%; }
  .devo-prayer { font-family:var(--serif); font-size:1.08rem; font-style:italic; line-height:1.85; color:#243347; }

  .devo-readmore { margin-top:2.5rem; text-align:center; }

  /* prev / next */
  .devo-pager { max-width:46rem; margin:2.5rem auto 0; display:flex; gap:1rem; justify-content:space-between; }
  .devo-pager a {
    flex:1; text-decoration:none; border:1px solid rgba(6,15,28,0.14); border-radius:2px;
    padding:1.1rem 1.3rem; background:var(--white); transition:border-color 0.2s, transform 0.2s;
    display:block; min-width:0;
  }
  .devo-pager a:hover { border-color:var(--gold); transform:translateY(-2px); }
  .devo-pager .pg-dir { font-family:var(--caps); font-size:0.54rem; letter-spacing:0.2em; color:var(--gold); display:block; margin-bottom:0.4rem; }
  .devo-pager .pg-title { font-family:var(--serif); font-size:1rem; color:var(--ink); line-height:1.35; display:block; }
  .devo-pager .next { text-align:right; }
  .devo-pager .spacer { flex:1; }
  @media (max-width:620px) { .devo-pager { flex-direction:column; } .devo-pager .next { text-align:left; } }

  /* archive */
  .arch-section { background:var(--cream); padding:5rem 2rem 6rem; }
  .arch-inner { max-width:46rem; margin:0 auto; }
  .arch-head { text-align:center; margin-bottom:2.5rem; }
  .arch-search { position:relative; margin-bottom:1.25rem; }
  .arch-search input {
    width:100%; font-family:var(--sans); font-size:0.92rem; color:var(--ink);
    background:var(--white); border:1px solid rgba(6,15,28,0.14); border-radius:2px;
    padding:0.95rem 1.1rem 0.95rem 2.8rem; outline:none; transition:border-color 0.2s;
  }
  .arch-search input:focus { border-color:var(--gold); }
  .arch-search input::placeholder { color:rgba(6,15,28,0.32); }
  .arch-search svg { position:absolute; left:1rem; top:50%; transform:translateY(-50%); width:15px; height:15px; stroke:var(--muted); fill:none; stroke-width:1.7; }
  .arch-count { font-size:0.74rem; color:var(--muted); margin-bottom:1.5rem; letter-spacing:0.04em; }

  .arch-list { list-style:none; border-top:1px solid rgba(6,15,28,0.1); }
  .arch-item { border-bottom:1px solid rgba(6,15,28,0.1); }
  .arch-item[hidden] { display:none; }
  .arch-item a { display:block; padding:1.3rem 2rem 1.3rem 0; text-decoration:none; position:relative; transition:padding-left 0.2s; }
  .arch-item a:hover { padding-left:0.5rem; }
  .arch-item a:hover .arch-title { color:var(--gold); }
  .arch-date { font-family:var(--caps); font-size:0.55rem; letter-spacing:0.2em; color:var(--gold); display:block; margin-bottom:0.35rem; }
  .arch-title { font-family:var(--serif); font-size:1.25rem; font-weight:400; color:var(--ink); line-height:1.3; display:block; transition:color 0.2s; }
  .arch-ref { font-size:0.78rem; color:var(--muted); margin-top:0.25rem; display:block; }
  .arch-arrow { position:absolute; right:0.25rem; top:50%; transform:translateY(-50%); width:14px; height:14px; stroke:rgba(6,15,28,0.25); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .arch-empty { text-align:center; padding:3rem 1rem; color:var(--muted); font-size:0.9rem; }
  .arch-more { text-align:center; margin-top:2.5rem; }

  /* daily email signup */
  .sub-section { background:var(--navy); padding:5rem 2rem; }
  .sub-inner { max-width:46rem; margin:0 auto; text-align:center; }
  .sub-inner .section-label { color:var(--gold); }
  .sub-inner h2 { font-family:var(--serif); font-size:clamp(1.8rem,3.2vw,2.5rem); font-weight:400; color:var(--cream); margin-bottom:0.9rem; line-height:1.15; }
  .sub-inner p.sub-lead { font-size:0.92rem; color:rgba(240,233,219,0.6); line-height:1.8; max-width:34rem; margin:0 auto 2.25rem; }
  .sub-form { display:flex; gap:0.75rem; justify-content:center; flex-wrap:wrap; max-width:32rem; margin:0 auto; }
  .sub-form input[type=email], .sub-form input[type=text] {
    flex:1 1 16rem; min-width:0; font-family:var(--sans); font-size:0.95rem; color:var(--cream);
    background:rgba(255,255,255,0.06); border:1px solid rgba(240,233,219,0.25);
    border-radius:2px; padding:0.9rem 1.1rem; outline:none; transition:border-color 0.2s, background 0.2s;
  }
  .sub-form input::placeholder { color:rgba(240,233,219,0.38); }
  .sub-form input:focus { border-color:var(--gold); background:rgba(255,255,255,0.1); }
  .sub-form button {
    font-family:var(--caps); font-size:0.62rem; font-weight:500; letter-spacing:0.18em;
    background:var(--gold); color:var(--white); border:0; border-radius:1px;
    padding:0.95rem 2.2rem; cursor:pointer; transition:background 0.2s, transform 0.2s;
  }
  .sub-form button:hover { background:var(--gold-lt); transform:translateY(-1px); }
  .sub-note { font-size:0.76rem; color:rgba(240,233,219,0.4); margin-top:1.5rem; line-height:1.7; }
  .sub-note a { color:var(--gold-pale); }
  @media (max-width:560px) { .sub-form { flex-direction:column; } .sub-form button { width:100%; } }
  @media print { .sub-section { display:none !important; } }

  /* app promo */
  .app-promo { background:var(--navy); padding:6rem 2.5rem; }
  .app-promo-inner { max-width:940px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
  .app-promo .section-title { color:var(--cream); }
  .app-promo .section-body { color:rgba(240,233,219,0.6); }
  .app-promo-why { list-style:none; margin-top:2rem; }
  .app-promo-why li { position:relative; padding-left:1.7rem; margin-bottom:0.9rem; font-size:0.88rem; color:rgba(240,233,219,0.72); line-height:1.7; }
  .app-promo-why svg { position:absolute; left:0; top:0.32em; width:14px; height:14px; stroke:var(--gold); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  .app-badges { display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:2.5rem; }
  .app-store-btn {
    display:inline-flex; align-items:center; gap:0.7rem; text-decoration:none;
    border:1px solid rgba(240,233,219,0.28); border-radius:2px; padding:0.75rem 1.4rem;
    transition:border-color 0.2s, background 0.2s;
  }
  .app-store-btn:hover { border-color:var(--gold); background:rgba(200,136,44,0.1); }
  .app-store-btn svg { width:22px; height:22px; fill:var(--cream); }
  .app-store-btn span { display:block; line-height:1.25; }
  .app-store-sm { font-size:0.56rem; letter-spacing:0.12em; font-family:var(--caps); color:rgba(240,233,219,0.5); }
  .app-store-lg { font-family:var(--serif); font-size:1.05rem; color:var(--cream); }
  .app-visual { display:flex; align-items:center; justify-content:center; }
  .app-phone {
    width:min(15rem,100%); aspect-ratio:9/17; border-radius:1.8rem;
    border:1px solid rgba(200,136,44,0.35); background:linear-gradient(160deg,#0f2440,#081522);
    box-shadow:0 24px 60px rgba(0,0,0,0.4); padding:2.2rem 1.5rem;
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:0.9rem;
  }
  .app-phone-mark { width:44px; height:44px; }
  .app-phone-t { font-family:var(--serif); font-size:1.15rem; color:var(--cream); line-height:1.3; }
  .app-phone-s { font-family:var(--caps); font-size:0.5rem; letter-spacing:0.18em; color:rgba(240,233,219,0.4); line-height:1.8; }
  .app-phone-rule { width:28px; height:1px; background:rgba(200,136,44,0.5); }
  @media (max-width:860px) { .app-promo-inner { grid-template-columns:1fr; gap:3rem; } .app-visual { order:-1; } }
  @media (max-width:700px) {
    .devo-card { padding:2.25rem 1.5rem; }
    .devo-section { padding:1rem 1.1rem 3.5rem; }
    .arch-section { padding:3.5rem 1.1rem 4.5rem; }
  }

  @media print {
    nav, footer, .fs-widget, .page-hero, .intro-section, .app-promo,
    .arch-section, .visit-cta, .devo-pager, .devo-readmore { display:none !important; }
    body { background:#fff; }
    .devo-card { box-shadow:none; border:0; padding:0; }
    .devo-section { background:#fff; padding:0; }
    a[href]::after { content:''; }
  }
