/*
Theme Name: Newton Abbey
Theme URI: https://www.newtonosb.org
Author: St. Paul's Abbey
Description: A quiet, modern, minimal theme for St. Paul's Abbey, Newton NJ — limestone ground, ink text, pine-green accent. Built to replace the Enfold layout while keeping WordPress content, menus, newsletters, donations and events intact.
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: newtonabbey
*/

/* ============================================================
   Design tokens
   ============================================================ */
:root {
  --ground:      #F5F2EA;
  --ground-2:    #EDE9DD;
  --ink:         #26231F;
  --muted:       #6E675C;
  --pine:        #2F5233;
  --pine-deep:   #24402A;
  --gold:        #A07E3C;
  --line:        #E0DACB;
  --card:        #FBF9F3;
  --footer-bg:   #21261F;
  --footer-ink:  #D9D4C6;
  --footer-mut:  #9A9C8C;
  --hero-ink:    #F4F1E7;
  --shadow:      0 1px 2px rgba(38,35,31,.05), 0 8px 28px rgba(38,35,31,.07);
  --maxw: 1080px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --ground:#191714; --ground-2:#201D19; --ink:#E9E4D9; --muted:#A29A8C;
    --pine:#8FAE8B; --pine-deep:#A8C2A4; --gold:#C2A05F; --line:#2E2A24;
    --card:#201E1A; --footer-bg:#131511; --footer-ink:#D9D4C6; --footer-mut:#8B8D7E;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 28px rgba(0,0,0,.35);
  }
}

/* ============================================================
   Base
   ============================================================ */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}*,*::before,*::after{animation:none!important;transition:none!important;}}
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:'Iowan Old Style','Palatino Linotype','Book Antiqua',Palatino,Georgia,serif;
  font-size:1.0625rem; line-height:1.75; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block;}
a{color:var(--pine); text-underline-offset:3px;}
a:hover{color:var(--pine-deep);}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
.wrap{max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(20px,4vw,32px);}
.sans{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;}
.skip-link{position:absolute; left:-999px;}
.skip-link:focus{left:1rem; top:1rem; z-index:100; background:var(--card); padding:.6rem 1rem; border:1px solid var(--line);}

h1,h2,h3,h4{font-weight:500; line-height:1.15; text-wrap:balance; margin:0; font-family:inherit;}
h2{font-size:clamp(1.75rem,3.4vw,2.35rem); letter-spacing:-0.01em;}
h3{font-size:1.2rem;}
p{margin:0;}

.eyebrow{font-family:'Segoe UI',system-ui,sans-serif; font-size:.72rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.2em; color:var(--gold);}
.lede{font-size:1.2rem; line-height:1.7; color:var(--muted); max-width:62ch;}

a.btn{display:inline-block; font-family:'Segoe UI',system-ui,sans-serif; font-size:.82rem;
  font-weight:600; letter-spacing:.05em; text-decoration:none; border-radius:2px;
  padding:.55rem 1.15rem; background:var(--pine); color:var(--ground); border:1px solid var(--pine);
  transition:background .15s ease;}
a.btn:hover{background:var(--pine-deep); border-color:var(--pine-deep); color:var(--ground);}
a.btn.ghost{background:transparent; color:var(--pine);}
a.btn.ghost:hover{background:color-mix(in srgb, var(--pine) 10%, transparent);}
@media (prefers-color-scheme: dark){a.btn,a.btn:hover{color:#131511;}}

/* ============================================================
   Header / nav (wp_nav_menu, one-level dropdowns)
   ============================================================ */
.site-head{position:sticky; top:0; z-index:40;
  background:color-mix(in srgb, var(--ground) 90%, transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; gap:1.5rem; min-height:66px;}
.brand{font-size:1.06rem; letter-spacing:.02em; color:var(--ink); text-decoration:none;
  display:flex; align-items:baseline; gap:.55rem; margin-right:auto; white-space:nowrap;}
.brand .cross{color:var(--gold); font-size:.9em;}
.brand small{font-family:'Segoe UI',system-ui,sans-serif; font-size:.62rem; text-transform:uppercase;
  letter-spacing:.18em; color:var(--muted);}

.primary-nav{display:flex; align-items:center;}
.primary-nav ul{list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:1.35rem;}
.primary-nav li{position:relative;}
.primary-nav a{font-family:'Segoe UI',system-ui,sans-serif; font-size:.82rem; font-weight:500;
  letter-spacing:.05em; color:var(--ink); text-decoration:none; padding:.35rem 0;
  border-bottom:1px solid transparent; white-space:nowrap; display:inline-block;}
.primary-nav a:hover, .primary-nav .current-menu-item>a, .primary-nav .current_page_item>a{border-bottom-color:var(--gold);}
/* submenus */
.primary-nav ul.sub-menu, .primary-nav ul.children{
  position:absolute; top:100%; left:-.9rem; z-index:50;
  flex-direction:column; align-items:stretch; gap:0; min-width:210px;
  background:var(--card); border:1px solid var(--line); border-radius:2px;
  box-shadow:var(--shadow); padding:.4rem 0;
  opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .14s ease, transform .14s ease;}
.primary-nav li:hover>ul.sub-menu, .primary-nav li:focus-within>ul.sub-menu{opacity:1; visibility:visible; transform:none;}
.primary-nav ul.sub-menu a{padding:.5rem .9rem; border:0; display:block;}
.primary-nav ul.sub-menu a:hover{background:var(--ground-2);}
.primary-nav .menu-item-has-children>a::after{content:" ▾"; color:var(--muted); font-size:.85em;}
.nav-donate{margin-left:.4rem;}

.nav-toggle{display:none; background:none; border:1px solid var(--line); border-radius:2px;
  color:var(--ink); font-size:1.15rem; line-height:1; padding:.4rem .6rem; cursor:pointer;}
@media (max-width: 900px){
  .nav-toggle{display:block;}
  .primary-nav{position:absolute; top:100%; left:0; right:0; display:none;
    background:var(--ground); border-bottom:1px solid var(--line); max-height:80vh; overflow-y:auto;}
  .primary-nav.open{display:block;}
  .primary-nav ul{flex-direction:column; align-items:stretch; gap:0; padding:.4rem clamp(20px,4vw,32px) 1rem;}
  .primary-nav li{border-bottom:1px solid var(--line);}
  .primary-nav a{padding:.75rem 0;}
  .primary-nav ul.sub-menu, .primary-nav ul.children{
    position:static; opacity:1; visibility:visible; transform:none; box-shadow:none;
    border:0; background:transparent; padding:0 0 .4rem 1rem; min-width:0;}
  .primary-nav ul.sub-menu a{padding:.5rem 0;}
}

/* ============================================================
   Hero (front page) + page hero
   ============================================================ */
.hero{position:relative; min-height:min(86vh,720px); display:flex; align-items:flex-end;
  color:var(--hero-ink); isolation:isolate;}
.hero img.bg{position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover;}
.hero::after{content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(20,22,17,.18) 0%, rgba(20,22,17,.08) 40%, rgba(20,22,17,.72) 100%);}
.hero .wrap{width:100%; padding-block:clamp(3rem,7vw,5rem);}
.hero h1,.hero p.sub,.hero .eyebrow{text-shadow:0 1px 14px rgba(15,17,13,.45);}
.hero .eyebrow{color:#D8C08A;}
.hero h1{font-size:clamp(2.4rem,6vw,4.1rem); max-width:18ch; margin-top:.6rem;}
.hero p.sub{margin-top:1.1rem; max-width:52ch; font-size:1.1rem; line-height:1.65; color:#E9E3D2;}
.hero .actions{display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.8rem;}
.hero a.btn.ghost{color:var(--hero-ink); border-color:rgba(244,241,231,.55);}
.hero a.btn.ghost:hover{background:rgba(244,241,231,.12);}

.page-hero{border-bottom:1px solid var(--line); background:var(--ground-2);}
.page-hero .wrap{padding-block:clamp(2.6rem,6vw,4.2rem);}
.page-hero h1{font-size:clamp(2rem,4.5vw,3rem); margin-top:.4rem;}
.page-hero .crumbs{font-family:'Segoe UI',system-ui,sans-serif; font-size:.75rem; letter-spacing:.04em; color:var(--muted);}
.page-hero .crumbs a{color:var(--muted);}

/* ============================================================
   Sections / layout primitives
   ============================================================ */
.section{padding-block:clamp(3rem,7vw,5.5rem);}
.section + .section{border-top:1px solid var(--line);}
.section-head{max-width:62ch; margin-bottom:clamp(1.6rem,4vw,2.6rem);}
.section-head h2{margin-top:.5rem;}
.section-head .lede{margin-top:.85rem;}
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center;}
.split figure{margin:0;}
.split img{border-radius:2px; box-shadow:var(--shadow);}
.split figcaption{font-family:'Segoe UI',system-ui,sans-serif; font-size:.75rem; color:var(--muted); margin-top:.6rem;}
@media (max-width:760px){.split{grid-template-columns:1fr;}}
.prose{max-width:65ch; display:grid; gap:1rem;}
.prose strong{color:var(--pine-deep); font-weight:600;}

.quote{border-left:3px solid var(--gold); padding:.4rem 0 .4rem 1.6rem; max-width:58ch;}
.quote p{font-size:1.35rem; line-height:1.55; font-style:italic;}
.quote cite{display:block; margin-top:.8rem; font-style:normal; font-family:'Segoe UI',system-ui,sans-serif;
  font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);}

/* horarium */
.horarium{max-width:620px;}
.horarium .row{display:grid; grid-template-columns:96px 20px 1fr; gap:.9rem; align-items:baseline; padding-block:.7rem;}
.horarium .row + .row{border-top:1px solid var(--line);}
.horarium .t{font-family:'Segoe UI',system-ui,sans-serif; font-variant-numeric:tabular-nums;
  font-size:.85rem; font-weight:600; color:var(--muted); text-align:right; white-space:nowrap;}
.horarium .dot{color:var(--gold); text-align:center; font-size:.7rem;}
.horarium .o{font-size:1.02rem;}
.horarium .o em{font-style:italic; color:var(--muted); font-size:.9rem; margin-left:.45rem;}

/* cards */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;}
@media (max-width:860px){.cards{grid-template-columns:1fr;}}
.card{background:var(--card); border:1px solid var(--line); border-radius:2px; overflow:hidden;
  display:flex; flex-direction:column; text-decoration:none; color:var(--ink);
  transition:transform .18s ease, box-shadow .18s ease;}
.card:hover{transform:translateY(-3px); box-shadow:var(--shadow); color:var(--ink);}
.card img{height:190px; width:100%; object-fit:cover;}
.card .pad{padding:1.3rem 1.4rem 1.5rem; display:grid; gap:.5rem;}
.card h3{color:var(--pine-deep);}
.card p{color:var(--muted); font-size:.95rem; line-height:1.6;}
.card .more{font-family:'Segoe UI',system-ui,sans-serif; font-size:.78rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--gold); margin-top:.3rem;}

/* timeline */
.timeline{position:relative; max-width:680px;}
.timeline .ev{display:grid; grid-template-columns:96px 1fr; gap:1.4rem; padding-block:1.05rem;
  border-left:1px solid var(--line); padding-left:1.4rem; margin-left:.3rem; position:relative;}
.timeline .ev::before{content:""; position:absolute; left:-4px; top:1.75rem; width:7px; height:7px;
  border-radius:50%; background:var(--gold);}
.timeline .yr{font-family:'Segoe UI',system-ui,sans-serif; font-variant-numeric:tabular-nums;
  font-weight:700; color:var(--pine); font-size:1rem; padding-top:.1rem;}
.timeline .ev p{color:var(--ink);} .timeline .ev p em{color:var(--muted);}
@media (max-width:560px){.timeline .ev{grid-template-columns:1fr; gap:.2rem;}}

/* info grid */
.info-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.4rem;}
.info-grid .cell{background:var(--card); border:1px solid var(--line); border-radius:2px;
  padding:1.4rem 1.5rem; display:grid; gap:.4rem; align-content:start;}
.info-grid h3{font-size:.8rem; font-family:'Segoe UI',system-ui,sans-serif; text-transform:uppercase;
  letter-spacing:.14em; color:var(--gold); font-weight:600;}
.info-grid p, .info-grid a{font-size:1rem;}

/* news / post lists */
.news-list{display:grid; gap:0; max-width:760px;}
.news-list a{display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:baseline;
  padding-block:1rem; text-decoration:none; color:var(--ink); border-top:1px solid var(--line);}
.news-list a:last-child{border-bottom:1px solid var(--line);}
.news-list a:hover h3{color:var(--pine);}
.news-list .date{font-family:'Segoe UI',system-ui,sans-serif; font-size:.78rem; color:var(--muted);
  white-space:nowrap; font-variant-numeric:tabular-nums;}

/* ============================================================
   Post/page content (the_content) — WordPress output
   ============================================================ */
.entry{padding-block:clamp(2.4rem,6vw,4rem);}
.entry-content{max-width:70ch; margin-inline:auto;}
.entry-content > * + *{margin-top:1.15rem;}
.entry-content h2{margin-top:2.2rem;}
.entry-content h3{margin-top:1.8rem;}
.entry-content ul,.entry-content ol{padding-left:1.3rem; display:grid; gap:.4rem;}
.entry-content img{border-radius:2px;}
.entry-content figure{margin:1.8rem 0;}
.entry-content figcaption{font-family:'Segoe UI',system-ui,sans-serif; font-size:.78rem; color:var(--muted); margin-top:.5rem; text-align:center;}
.entry-content a{text-decoration:underline;}
.entry-content blockquote{border-left:3px solid var(--gold); padding-left:1.4rem; font-style:italic; color:var(--muted);}
.entry-content hr{border:0; border-top:1px solid var(--line); margin:2.2rem 0;}
.entry-content table{width:100%; border-collapse:collapse; font-size:.95rem;}
.entry-content th,.entry-content td{border:1px solid var(--line); padding:.5rem .7rem; text-align:left;}
.entry-meta{font-family:'Segoe UI',system-ui,sans-serif; font-size:.8rem; letter-spacing:.04em;
  color:var(--muted); margin-bottom:.6rem;}
.table-scroll{overflow-x:auto;}

/* WordPress alignment + caption utilities */
.alignleft{float:left; margin:.4rem 1.6rem 1rem 0;}
.alignright{float:right; margin:.4rem 0 1rem 1.6rem;}
.aligncenter{margin-inline:auto;}
.alignwide{width:min(100%,1180px); margin-inline:calc((70ch - 100%)/2);}
.wp-caption{max-width:100%;} .wp-caption-text,.wp-element-caption{font-family:'Segoe UI',system-ui,sans-serif;
  font-size:.78rem; color:var(--muted); text-align:center; margin-top:.5rem;}
.screen-reader-text{position:absolute; left:-999px;}
.sticky,.gallery-caption{}
.post-thumb{margin-bottom:1.8rem;}
.post-thumb img{width:100%; max-height:440px; object-fit:cover; border-radius:2px;}

/* pagination */
.pagination{display:flex; gap:.6rem; flex-wrap:wrap; margin-top:2.4rem; font-family:'Segoe UI',system-ui,sans-serif; font-size:.85rem;}
.pagination .page-numbers{padding:.4rem .75rem; border:1px solid var(--line); border-radius:2px; text-decoration:none; color:var(--ink);}
.pagination .page-numbers.current{background:var(--pine); color:var(--ground); border-color:var(--pine);}

/* ============================================================
   Footer
   ============================================================ */
.site-foot{background:var(--footer-bg); color:var(--footer-ink); margin-top:clamp(3rem,7vw,5rem);}
.site-foot .wrap{padding-block:clamp(2.6rem,6vw,4rem);}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(1.6rem,4vw,3rem);}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr;}}
.site-foot h3{font-family:'Segoe UI',system-ui,sans-serif; font-size:.72rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--footer-mut); font-weight:600; margin-bottom:.9rem;}
.site-foot p,.site-foot li{color:var(--footer-ink); font-size:.95rem; line-height:1.8;}
.site-foot ul{list-style:none; margin:0; padding:0;}
.site-foot a{color:var(--footer-ink); text-decoration:none; border-bottom:1px solid rgba(217,212,198,.25);}
.site-foot a:hover{color:#fff; border-bottom-color:var(--gold);}
.foot-brand{font-size:1.15rem; margin-bottom:.6rem;} .foot-brand .cross{color:var(--gold);}
.foot-note{border-top:1px solid rgba(217,212,198,.14); margin-top:clamp(1.8rem,4vw,2.6rem); padding-top:1.2rem;
  display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; justify-content:space-between;
  font-family:'Segoe UI',system-ui,sans-serif; font-size:.76rem; color:var(--footer-mut);}
