@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600..800&display=swap');
:root{font-family:'Figtree',Arial,sans-serif;color:#15171a;background:#faf8f4;--studio-accent:#0f452e}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:3px solid #ce7616;outline-offset:2px}html{scroll-behavior:smooth}img{max-width:100%;display:block}button{border:1px solid #d6ddd7;border-radius:7px;padding:9px 13px;background:#fff;color:#243c32}input,select,textarea{width:100%;background:#fff;border:1px solid #cdd6cf;border-radius:6px;padding:11px;color:#26392f}textarea{resize:vertical;line-height:1.55}label{font-size:13px;font-weight:600;display:block;margin:14px 0 6px}h1,h2,h3,p{margin-top:0}button.primary,.primary-link{background:#275e4d;color:#fff;border-color:#275e4d}.primary-link{padding:11px 18px;border-radius:6px;display:inline-flex;gap:10px;align-items:center}.loading{padding:100px;text-align:center}.app-header{height:78px;background:#fff;border-bottom:1px solid #e0e4de;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;gap:24px}.studio-brand{display:flex;gap:10px;align-items:center;font-weight:700;font-size:21px;letter-spacing:-.04em}.studio-brand span{background:#275e4d;color:#fff;border-radius:9px;width:35px;height:35px;display:grid;place-items:center}.app-header nav{display:flex;gap:25px;font-size:14px}.app-header nav a.active{color:#275e4d;border-bottom:2px solid;padding-bottom:7px}.local-tag{font-size:11px;text-transform:uppercase;letter-spacing:.12em;background:#edf2eb;padding:8px 12px;border-radius:20px;color:#456447}.studio-wrap{max-width:1390px;margin:auto;padding:50px 4vw 80px}.intro-row{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:36px}.studio-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:#587267;font-weight:700;margin:0 0 15px}.intro-row h1,.pricing-intro h1{font-family:'Fraunces',serif;font-size:clamp(38px,4vw,60px);font-weight:400;letter-spacing:-.045em;margin:0 0 16px}.intro-row p,.subtle{color:#66746d;line-height:1.7;max-width:660px}.filter-bar{display:flex;gap:8px;margin-bottom:25px;flex-wrap:wrap}.filter-bar button.active{background:#243c32;color:#fff}.count-pill{margin-left:auto;align-self:center;font-size:12px;color:#66746d}.design-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.design-card{background:#fff;border:1px solid #dce3da;border-radius:12px;overflow:hidden;box-shadow:0 7px 25px #18332407}.design-thumbnail{height:230px;position:relative;overflow:hidden;background:#e7ebe3;border-bottom:1px solid #e1e6dc}.design-thumbnail iframe{width:1200px;height:900px;transform:scale(.34);transform-origin:top left;border:0;pointer-events:none}.thumb-overlay{position:absolute;inset:0;z-index:1}.card-info{padding:24px}.card-topline{display:flex;justify-content:space-between;align-items:center}.author-pill{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:#f2f3ef;padding:5px 8px;border-radius:4px}.swatches{display:flex;gap:4px}.swatches i{width:11px;height:11px;border-radius:50%}.card-info h2{font-size:20px;letter-spacing:-.025em;margin:12px 0 7px}.card-info p{font-size:13px;color:#65756b;line-height:1.6;margin-bottom:5px}.card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:22px;font-size:13px}.small-note{font-size:12px;color:#6f7d74;margin-top:26px;line-height:1.7}.preview-toolbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 22px;background:#fff;border-bottom:1px solid #d3ddd4;font-size:12px;color:#3b5144}.preview-toolbar .left,.preview-toolbar .right{display:flex;align-items:center;gap:16px}.preview-toolbar strong{font-weight:600}.preview-toolbar a.edit-link{background:#275e4d;color:#fff;padding:8px 13px;border-radius:5px}.preview-toolbar .draft-dot{width:6px;height:6px;background:#a46927;border-radius:50%;display:inline-block;margin-right:5px}.site{--paper:#faf7ee;--ink:#233d30;--muted:#636d61;--accent:#3e5e47;--line:#d7d9ca;--display:'Fraunces',serif;--body:'DM Sans',sans-serif;--radius:4px;background:var(--paper);color:var(--ink);font:16px/1.65 var(--body);min-height:100vh;overflow:clip}.site a{color:inherit}.site-header{max-width:1440px;margin:auto;padding:32px min(6vw,86.4px);display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{display:flex;gap:12px;align-items:center;font-size:21px;font-weight:600;white-space:normal}.brand-symbol{font-size:25px}.site-nav{display:flex;gap:26px;font-size:13px}.site-main{max-width:1440px;margin:auto;padding:0 min(6vw,86.4px)}.block{padding:72px 0;scroll-margin-top:90px}.block-hero{padding-top:45px}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;align-items:center}.site h1{font:500 clamp(55px,6vw,96px)/1.03 var(--display);letter-spacing:-.04em;margin:14px 0 30px;text-wrap:balance}.eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);margin:0 0 15px}.hero-body{font-size:17px;line-height:1.8;color:var(--muted);max-width:510px;margin-bottom:30px}.hero-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;gap:18px;align-items:center;padding:14px 20px;border-radius:var(--radius);background:var(--accent);color:var(--paper)!important;font-size:13px;font-weight:600}.quiet-link{font-size:12px;display:flex;gap:14px}.hero-art{min-width:0}.art-window{height:400px;background:#d9dec9;position:relative;overflow:hidden}.art-orbit{width:180px;height:180px;border-radius:50%;background:#abb99a;margin:60px auto}.art-caption{font-size:9px;letter-spacing:.05em;margin:13px 0 0;color:var(--muted)}.hero-image{width:100%;height:430px;object-fit:cover}.hero-meta{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:24px 0;margin-top:46px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.site h2{font:500 clamp(32px,3.8vw,55px)/1.13 var(--display);letter-spacing:-.035em;margin:0 0 25px;text-wrap:balance}.site h3{font:500 24px/1.25 var(--display);margin:0 0 14px}.about-grid,.content-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:8vw}.prose{max-width:680px;color:var(--muted);line-height:1.9}.text-link{display:inline-flex;font-size:12px;gap:15px;border-bottom:1px solid var(--line);padding:5px 0}.sermon-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.sermon-visual{height:190px;background:#e2e6d9;position:relative;overflow:hidden}.sermon-number{position:absolute;font:72px var(--display);top:20px;left:25px;opacity:.6}.video-link{position:absolute;bottom:18px;left:20px;display:flex;align-items:center;gap:10px;background:var(--paper);color:var(--ink);font-size:11px;border:0;border-radius:30px;padding:8px 14px}.sermon-content{padding:22px 0}.sermon-content p{font-size:12px;color:var(--muted)}.sermon-visual iframe{width:100%;height:100%;border:0}.channel-panel{border:1px solid var(--line);padding:40px}.note-card{padding:24px;border:1px solid var(--line)}.block-notes .content-grid{gap:24px}.block-booking,.block-contact{margin-top:20px}.gallery-image{margin:0}.gallery-image img{width:100%;max-height:600px;object-fit:cover}.gallery-image figcaption{font-size:12px}.empty-block,.disabled-note{padding:20px;border:1px dashed var(--line);font-size:13px;color:var(--muted)}.site-footer{padding:45px min(6vw,86.4px);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;max-width:1440px;margin:auto;font:500 20px var(--display)}.site-footer small,.site-footer p{font:11px/1.7 var(--body);color:var(--muted)}.site-footer div{text-align:right}.editor-topbar{height:65px;display:flex;align-items:center;justify-content:space-between;padding:10px 22px;gap:15px;background:#fff;border-bottom:1px solid #d8ded6;position:sticky;top:0;z-index:50}.editor-topbar .editor-title{font-size:13px}.save-status{font-size:11px;color:#637b6d}.editor-actions{display:flex;gap:8px;align-items:center}.editor-shell{display:grid;grid-template-columns:230px minmax(0,1fr) 290px;height:calc(100vh - 65px)}.sections-panel,.settings-panel{background:#fff;overflow:auto;padding:22px 15px}.sections-panel{border-right:1px solid #dce1d9}.settings-panel{border-left:1px solid #dce1d9}.panel-title{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#68776d;display:flex;justify-content:space-between;margin:0 0 17px}.section-row{padding:11px 9px;border:1px solid transparent;border-radius:6px;margin-bottom:6px;cursor:pointer}.section-row.active{background:#edf3ed;border-color:#bccfbf}.section-row .row-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600}.section-row .row-controls{display:flex;gap:5px;margin-top:8px}.section-row .row-controls button{font-size:10px;padding:3px 7px}.section-row .visibility{font-size:9px;color:#657368;text-transform:uppercase}.section-row.off{opacity:.65}.editor-canvas{overflow:auto;background:#e5e9e2;padding:20px}.canvas-toolbar{display:flex;justify-content:center;gap:7px;margin-bottom:16px}.canvas-toolbar button{font-size:11px}.canvas-toolbar button.active{background:#263d32;color:#fff}.canvas-frame{width:100%;background:#fff;box-shadow:0 3px 30px #213b2114;margin:auto;transition:width .2s}.canvas-frame.mobile{width:390px;max-width:100%}.canvas-frame iframe{width:100%;height:calc(100vh - 160px);border:0;display:block}.settings-panel h2{font-size:18px}.field-hint{font-size:11px;line-height:1.6;color:#6a786f}.settings-panel label{margin-top:20px}.settings-panel input,.settings-panel textarea,.settings-panel select{font-size:12px}.settings-panel textarea{min-height:90px}.item-editor{margin-top:20px;border-top:1px solid #d8ded6;padding-top:10px}.item-editor h3{font-size:12px}.source-note{padding:14px;background:#f2f5ef;font-size:11px;line-height:1.7;margin-top:24px}.source-note a{text-decoration:underline}.image-input{font-size:11px!important;padding:8px}.danger{color:#934124;background:#fff8f4}.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.library-block{padding:25px;border:1px solid #d7dfd4;background:#fff;border-radius:9px}.library-block .icon{width:45px;height:45px;background:#edf2e7;display:grid;place-items:center;margin-bottom:22px;font-size:23px}.library-block h2{font-size:17px}.library-block p{font-size:13px;color:#677568;line-height:1.65}.library-block small{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#65765e}.pricing-intro{text-align:center;max-width:740px;margin:0 auto 45px}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.price-card{padding:34px;background:#fff;border:1px solid #dce2d9;border-radius:10px}.price-card.featured{border:2px solid #275e4d}.price{font-size:42px;letter-spacing:-.06em;margin:20px 0}.price small{font-size:13px;letter-spacing:0;color:#69766c}.price-card ul{padding-left:20px;font-size:14px;line-height:2.2;color:#556b5c}.price-card h2{font-size:21px}.price-card p{font-size:13px;line-height:1.65;color:#69766c}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(80px);background:#203e31;color:#fff;padding:13px 22px;border-radius:8px;font-size:13px;z-index:100;opacity:0;transition:.2s;max-width:90vw}#toast.show{opacity:1;transform:translateX(-50%)}.error-state{margin:60px auto;max-width:600px;padding:40px;background:#fff;border:1px solid #e4bba9;border-radius:12px}.error-state p{line-height:1.7}.source-drawer{margin-top:35px;padding:22px;background:#fff;border:1px solid #d6dfd2;border-radius:8px;font-size:13px;line-height:1.7}.source-drawer summary{cursor:pointer;font-weight:600}.source-drawer a{text-decoration:underline}.theme-picker{margin:14px 0 24px}.editor-mobile-toggle{display:none}@media(max-width:1100px){.design-grid{grid-template-columns:repeat(2,1fr)}.editor-shell{grid-template-columns:190px minmax(0,1fr) 260px}.editor-canvas{padding:10px}.site h1{font-size:64px}}@media(max-width:760px){.app-header{height:auto;min-height:72px;padding:16px 20px;flex-wrap:wrap}.app-header nav{gap:18px;font-size:12px}.local-tag{display:none}.intro-row{display:block}.design-grid,.library-grid,.pricing-grid{grid-template-columns:1fr}.studio-wrap{padding:35px 20px}.design-thumbnail iframe{transform:scale(.33)}.preview-toolbar{padding:9px 12px;align-items:flex-start}.preview-toolbar .left{gap:8px;flex-wrap:wrap}.preview-toolbar strong{font-size:10px}.preview-toolbar .design-label{display:none}.site-header{padding:24px 6vw;flex-wrap:wrap;gap:16px}.site-nav{gap:20px;font-size:11px}.site-main{padding:0 6vw}.hero-grid,.about-grid,.content-grid{grid-template-columns:1fr;gap:30px}.hero-body{font-size:15px}.block{padding:45px 0}.hero-meta{gap:12px;font-size:10px}.sermon-list{grid-template-columns:1fr}.site-footer{flex-direction:column;padding:32px 6vw}.site-footer div{text-align:left}.editor-topbar{height:auto;min-height:75px;flex-wrap:wrap;padding:12px}.editor-actions{flex-wrap:wrap}.editor-title{max-width:230px}.editor-shell{display:flex;flex-wrap:wrap;height:auto}.sections-panel{width:42%;height:500px;padding:18px 10px}.settings-panel{width:58%;height:500px;padding:18px 12px;order:1}.editor-canvas{order:2;width:100%;padding:14px}.canvas-frame iframe{height:750px}.editor-actions button{font-size:11px;padding:7px 10px}.source-note{font-size:10px}.preview-toolbar .right{gap:8px}.wordmark{font-size:21px}.hero-image{height:320px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* W5 T3: Pastor Nest operator chrome (gallery, library). Brand tokens as hex (W5b palette, no brown): ink #15171a, muted #4a5057, line #e4dfd6, evergreen #0f452e, deep #0b3324, amber #ce7616, amber tint #fdf0de, paper #faf8f4. */
body:has(> #app > .app-header){background:#faf8f4}
.app-header{height:72px;background:#fff;border-bottom:1px solid #e4dfd6;padding:0 max(24px,4vw);position:sticky;top:0;z-index:30}
.studio-brand{gap:10px;font:700 21px/1 'Bricolage Grotesque','Figtree',sans-serif;letter-spacing:-.02em;color:#15171a;min-height:44px}
.studio-brand span{background:none;color:#15171a;border-radius:0;width:auto;height:auto;display:inline}
.pn-mark{color:#ce7616;flex:none}
.app-header nav{gap:4px;font-size:14px}
.app-header nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:8px;color:#4a5057;transition:background .15s,color .15s}
.app-header nav a:hover{background:#faf8f4;color:#15171a}
.app-header nav a.active{color:#15171a;font-weight:600;border-bottom:0;padding-bottom:0;background:#faf8f4;box-shadow:inset 0 -2px 0 #ce7616}
.local-tag{background:#fdf0de;color:#0f452e;text-transform:none;letter-spacing:0;font-weight:600;font-size:12px;padding:8px 14px}
button.primary,.primary-link{background:#15171a;border-color:#15171a;color:#fff}
.primary-link{min-height:44px;padding:0 18px;border-radius:8px;font-weight:600;transition:background .15s}
.primary-link:hover,button.primary:hover{background:#0f452e;border-color:#0f452e}
.studio-wrap .studio-eyebrow{color:#0f452e;letter-spacing:.12em}
.intro-row h1,.collection-divider h2{font-family:'Bricolage Grotesque','Figtree',sans-serif;font-weight:700;letter-spacing:-.03em;color:#15171a;text-wrap:balance}
.intro-row h1{font-size:clamp(36px,4.2vw,58px);line-height:1.04}
.intro-row p,.subtle{color:#4a5057}
.operator-note{max-width:340px;flex:none;background:#fff;border:1px solid #e4dfd6;border-radius:12px;padding:18px 20px}
.operator-note strong{display:block;font-size:14px;color:#15171a;margin-bottom:6px}
.operator-note p{margin:0;font-size:14px;line-height:1.6;color:#4a5057}
.filter-bar .author-pill,.card-topline .author-pill{background:#fdf0de;color:#0f452e}
.count-pill{color:#4a5057}
.design-card{border-color:#e4dfd6;box-shadow:0 1px 2px #15171a0f,0 12px 32px #15171a0a}
.card-info h2{color:#15171a}.card-info p{color:#4a5057}
.card-actions{gap:12px;flex-wrap:wrap}
.card-actions>a:not(.primary-link){display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid #15171a;border-radius:8px;color:#15171a;font-weight:500;transition:background .15s}
.card-actions>a:not(.primary-link):hover{background:#faf8f4}
.sample-badge{background:#fdf0de;color:#0f452e}
.small-note{color:#4a5057}
.source-drawer{border-color:#e4dfd6}
.library-block{border-color:#e4dfd6}
.library-block .icon{background:#fdf0de;color:#0f452e;border-radius:10px}
.library-block small{color:#4a5057}
.library-block h2{color:#15171a}
.app-header :focus-visible,.studio-wrap :focus-visible{outline:3px solid #0f452e;outline-offset:3px}
@media(max-width:760px){.app-header{position:static;height:auto;padding:12px 16px;gap:8px 16px}.app-header nav{width:100%;order:3;margin:0 -14px;font-size:14px}.app-header nav a{padding:0 12px}.local-tag{display:inline-block;font-size:12px;padding:6px 10px}.operator-note{max-width:none;margin-top:20px}.card-actions>a{flex:1 1 auto;justify-content:center}}

/* W5b A1: one brand in operator chrome and the preview bar. Evergreen primary, amber focus ring, 12px floor, 44px targets. */
button.primary,.primary-link{background:#0f452e;border-color:#0f452e;color:#fff}
.primary-link:hover,button.primary:hover{background:#0b3324;border-color:#0b3324}
.app-header :focus-visible,.studio-wrap :focus-visible{outline:3px solid #ce7616;outline-offset:2px}
.studio-eyebrow,.studio-wrap .studio-eyebrow{font-size:13px;letter-spacing:.04em;color:#0f452e}
.author-pill{font-size:12px}
.local-tag{color:#15171a}
.source-drawer{overflow-x:auto;max-width:100%}
.preview-toolbar{font-family:'Figtree',Arial,sans-serif;font-size:13px;color:#15171a;border-bottom-color:#e4dfd6;padding-block:6px}
.preview-toolbar .left>a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;color:#15171a;text-decoration:none;font-weight:600}
.preview-toolbar strong{font-size:13px}
.preview-toolbar .draft-dot{background:#ce7616}
.preview-toolbar select{width:auto;min-height:44px;font-size:14px;padding:0 10px;border-color:#d6d0c6;color:#15171a}
.preview-toolbar a.edit-link{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:8px;background:#0f452e;color:#fff;font-weight:600;text-decoration:none}
.preview-toolbar a.edit-link:hover{background:#0b3324}
.library-block small{font-size:12px;letter-spacing:.04em}
@media(max-width:760px){.preview-toolbar strong{font-size:12px}.preview-toolbar a.edit-link{white-space:nowrap;padding:0 14px;font-size:14px}}
#app .fictional-banner{font:500 12px/1.5 'Figtree',Arial,sans-serif;letter-spacing:.02em;color:#3d4248}
/* W5b A1: published-site phone menu for every theme (render-v2 adds the button; bindSiteNav wires it). */
.site .site-menu-toggle{display:none}
@media(max-width:760px){
 .site .site-header .site-nav{display:none!important}
 .site .site-header .site-menu-toggle{display:inline-flex!important;align-items:center;justify-content:center;gap:10px;flex:none;min-height:44px;min-width:44px;margin:0 0 0 auto;padding:0 16px;border:1px solid var(--line,#d6d0c6);border-radius:999px;background:var(--paper,#fff);color:var(--ink,#15171a);font:600 15px/1 var(--body,'Figtree'),sans-serif;letter-spacing:0;text-transform:none;cursor:pointer;position:relative;z-index:61;box-shadow:none;transform:none}
 .site .site-menu-icon{position:relative;display:block;width:16px;height:2px;background:currentColor;border-radius:2px;transition:background .2s}
 .site .site-menu-icon::before,.site .site-menu-icon::after{content:'';position:absolute;left:0;width:16px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s cubic-bezier(.22,1,.36,1)}
 .site .site-menu-icon::before{top:-5px}.site .site-menu-icon::after{top:5px}
 .site .site-menu-toggle.is-open .site-menu-icon{background:transparent}
 .site .site-menu-toggle.is-open .site-menu-icon::before{transform:translateY(5px) rotate(45deg)}
 .site .site-menu-toggle.is-open .site-menu-icon::after{transform:translateY(-5px) rotate(-45deg)}
 .site .site-header .site-nav.is-open{display:flex!important;position:fixed!important;inset:0!important;z-index:60!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;flex-wrap:nowrap!important;gap:0!important;width:auto!important;height:auto!important;max-width:none!important;margin:0!important;padding:var(--site-menu-top,96px) 24px 40px!important;background:var(--paper,#fff)!important;border:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important;overflow-y:auto!important;opacity:1!important;visibility:visible!important}
 .site .site-header .site-nav.is-open a{display:flex!important;align-items:center;min-height:56px;width:auto!important;margin:0!important;padding:0 4px!important;border:0!important;border-bottom:1px solid var(--line,#e4dfd6)!important;border-radius:0!important;background:none!important;color:var(--ink,#15171a)!important;font:500 22px/1.2 var(--display,inherit)!important;letter-spacing:-.01em!important;text-transform:none!important;text-decoration:none!important;white-space:normal!important;opacity:1!important}
 .site .site-header .site-nav.is-open a.current{font-weight:700!important;text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:6px!important}
 html.site-menu-locked,html.site-menu-locked body{overflow:hidden}
}
@media(prefers-reduced-motion:reduce){.site .site-menu-icon,.site .site-menu-icon::before,.site .site-menu-icon::after{transition:none}}
/* W8 visit and posts sections: defaults for every design. Only theme tokens (--ink, --paper, --muted, --accent,
   --line, --display, --body, --radius), so each template's colours and type carry through; themes may restyle. */
.pn-visit{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:start}
.pn-visit>*{min-width:0}
.pn-visit .section-heading{margin-bottom:24px}
.pn-visit .section-heading h2{margin-bottom:14px}
.pn-visit-address{display:flex;flex-direction:column;gap:4px;margin:0 0 22px;font:inherit;font-style:normal;line-height:1.55;color:var(--ink)}
.pn-visit-address strong{font:500 clamp(20px,1.8vw,24px)/1.25 var(--display);letter-spacing:-.01em}
.pn-visit-address span{color:var(--muted);overflow-wrap:anywhere}
.pn-visit-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin:0 0 30px}
.pn-visit-actions .button{min-height:44px;gap:10px}
.pn-visit-map{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius,4px);background-color:var(--paper);background-image:linear-gradient(#0000000a,#0000000a)}
.pn-visit-frame{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;border:0}
.pn-visit-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px;padding:clamp(20px,3vw,32px)}
.pn-visit-fallback .pn-visit-pin{color:var(--accent)}
.pn-visit-fallback .pn-visit-address{margin:0}
.pn-visit-fallback small{font-size:14px;color:var(--muted)}
.pn-visit-times h3{margin:0 0 6px;font:600 13px/1.4 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pn-visit-times ul{list-style:none;margin:0;padding:0}
.pn-visit-times li{display:grid;grid-template-columns:minmax(0,8.5em) minmax(0,6em) minmax(0,1fr);gap:4px 16px;align-items:baseline;margin:0;padding:14px 0;border-bottom:1px solid var(--line)}
.pn-visit-day{font-weight:600;color:var(--ink)}
.pn-visit-time{font-variant-numeric:tabular-nums;color:var(--ink)}
.pn-visit-what{display:flex;flex-direction:column;gap:2px;color:var(--ink)}
.pn-visit-what small{font-size:14px;line-height:1.5;color:var(--muted)}
.pn-visit--wide{grid-template-columns:minmax(0,1fr)}
.pn-visit--wide .pn-visit-info{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:0 clamp(28px,4vw,64px);align-items:end}
.pn-visit--wide .pn-visit-info>.section-heading{grid-row:span 2}
.pn-visit--wide .pn-visit-map{aspect-ratio:21/8}
.pn-visit--wide .pn-visit-times ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));column-gap:clamp(24px,3vw,48px)}
.pn-visit--nomap{grid-template-columns:minmax(0,1fr)}
.pn-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:clamp(16px,2vw,24px);margin:0;padding:0}
.pn-post{display:flex;flex-direction:column;gap:14px;min-width:0;margin:0;padding:22px;border:1px solid var(--line);border-radius:var(--radius,4px);background:var(--paper);color:var(--ink)}
.pn-post-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;font:600 14px/1.4 var(--body);color:var(--ink)}
.pn-post-head .social-icon{width:18px;height:18px;color:var(--accent)}
.pn-post-head time{margin-left:auto;font-weight:500;color:var(--muted)}
.pn-post-image{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;border-radius:calc(var(--radius,4px)*.6)}
.pn-post-text{margin:0;font-size:16px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere;text-wrap:pretty}
.pn-post-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:auto;font-weight:600;color:var(--accent)!important;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.pn-post-link:hover{text-decoration-thickness:2px}
.pn-posts--list{grid-template-columns:minmax(0,1fr);max-width:820px}
.pn-posts--list .pn-post{display:grid;grid-template-columns:minmax(0,1fr) 180px;grid-template-areas:'head image' 'text image' 'link image';align-items:start;column-gap:24px}
.pn-posts--list .pn-post-head{grid-area:head}.pn-posts--list .pn-post-text{grid-area:text}.pn-posts--list .pn-post-link{grid-area:link}
.pn-posts--list .pn-post-image{grid-area:image}
.pn-posts--list .pn-post:not(:has(.pn-post-image)){grid-template-columns:minmax(0,1fr)}
.block:is(.tone-dark,.tone-accent) .pn-post{background:transparent}
.block:is(.tone-dark,.tone-accent) .pn-post-link{color:inherit!important}
@media(max-width:760px){
 .pn-visit,.pn-visit--wide .pn-visit-info{grid-template-columns:minmax(0,1fr)}
 .pn-visit--wide .pn-visit-map{aspect-ratio:4/3}
 .pn-visit-times li{grid-template-columns:minmax(0,1fr) auto;padding:12px 0}
 .pn-visit-what{grid-column:1/-1}
 .pn-posts--list .pn-post{grid-template-columns:minmax(0,1fr);grid-template-areas:'head' 'image' 'text' 'link'}
}

/* W8-F1 shared layout fixes for every design. Theme tokens only (--ink, --paper, --muted, --accent, --line,
   --display, --body, --radius); hex fallbacks, no color-mix (L0 gate). */
/* Explore tiles: a short line about each page and an arrow; no orphan tile. 5 tiles: one row of five at
   desktop, three and two on tablets; one column on phones. */
.site .block.block-pathways .pathway-grid[data-count]{display:grid;grid-template-columns:repeat(var(--pn-tiles,3),minmax(0,1fr));align-items:stretch}
.site .block.block-pathways .pathway-grid[data-gapped]{border:0}
.site .block.block-pathways .pathway-grid[data-count="1"]{--pn-tiles:1}
.site .block.block-pathways .pathway-grid[data-count="2"],.site .block.block-pathways .pathway-grid[data-count="4"]{--pn-tiles:2}
.site .block.block-pathways .pathway-grid[data-count="3"]{--pn-tiles:3}
.site .block.block-pathways .pathway{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px;min-width:0;height:auto}
.site .block.block-pathways .pathway h3{margin:0}
.site .block.block-pathways .pathway p{display:block;margin:0;max-width:40ch;line-height:1.5;overflow-wrap:anywhere;text-wrap:pretty}
.site .block.block-pathways .pathway-arrow{display:inline-flex;align-items:center;margin-top:auto;padding-top:8px;line-height:1}
.site .block.block-pathways .pathway-arrow svg{display:block;width:22px;height:22px;transition:transform .2s cubic-bezier(.22,1,.36,1)}
.site .block.block-pathways .pathway:is(:hover,:focus-visible) .pathway-arrow svg{transform:translateX(4px)}
@media(min-width:1101px){
 .site .block.block-pathways .pathway-grid[data-count="4"]{--pn-tiles:4}
 .site .block.block-pathways .pathway-grid[data-count="5"]{--pn-tiles:5}
}
@media(min-width:761px) and (max-width:1100px){
 .site .block.block-pathways .pathway-grid[data-count="5"]{--pn-tiles:6}
 .site .block.block-pathways .pathway-grid[data-count="5"]>.pathway{grid-column:span 2}
 .site .block.block-pathways .pathway-grid[data-count="5"]>.pathway:nth-child(n+4){grid-column:span 3}
}
@media(max-width:760px){.site .block.block-pathways .pathway-grid[data-count]{--pn-tiles:1}.site .block.block-pathways .pathway p{max-width:none}}
@media(prefers-reduced-motion:reduce){.site .block.block-pathways .pathway-arrow svg{transition:none}}

/* Short lists (render-v2 fitLists sets data-fit only when the design gives a list of 1 to 3 items more columns
   than items): 1 = one featured item, 2 = two halves, 3 = three thirds. */
.site [data-fit]{display:grid!important;grid-auto-flow:row!important;grid-template-columns:repeat(var(--pn-fit),minmax(0,1fr))!important;grid-auto-columns:auto!important;columns:auto!important}
.site [data-fit="1"]{--pn-fit:1}.site [data-fit="2"]{--pn-fit:2}.site [data-fit="3"]{--pn-fit:3}
.site [data-fit]>*{min-width:0;grid-column:auto!important}
.site [data-fit-rail]{overflow:visible!important;margin-right:0!important;padding-right:0!important;scroll-snap-type:none!important}
.site [data-fit-rail]>*{width:auto!important;max-width:none!important;flex:none!important}
.site :has(+ [data-fit-rail]):has(> button){display:none!important}
/* A carousel whose items all fit hides its arrows (both disabled). */
.site .block :is(div,nav):has(> button:disabled):not(:has(> button:enabled)):has(+ [data-count]){display:none!important}
.site .sermon-list[data-fit="1"]>.sermon-card{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,56px);align-items:center}
.site .sermon-list[data-fit="1"] .sermon-visual{height:auto;aspect-ratio:16/9}
.site .sermon-list[data-fit="1"] .sermon-thumb{width:100%;height:100%;object-fit:cover}
.site :is(.article-grid,.ministry-grid)[data-fit="1"]>article:has(> img){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(24px,4vw,56px);align-content:center}
.site :is(.article-grid,.ministry-grid)[data-fit="1"]>article>img{grid-column:1;grid-row:1/span 8;width:100%;height:100%;min-height:280px;max-height:520px;object-fit:cover}
.site :is(.article-grid,.ministry-grid)[data-fit="1"]>article:has(> img)>:not(img){grid-column:2}
.site :is(.article-grid,.ministry-grid,.resource-grid,.channel-grid,.podcast-list,.pn-posts,.pn-ch-posts,.quote-grid)[data-fit="1"]>:not(:has(> img)){max-width:780px}
/* Three books in thirds: the cover sits above the words so each column keeps a readable measure. */
.site .book-grid[data-fit="3"]>.book-card{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-content:start;gap:20px}
.site .ministry-gallery[data-fit="1"] img{width:100%;max-height:72vh;object-fit:cover}

/* Visit, wide layout: a time is day and time on one line with what happens under it, so it reads in a
   narrow column; campuses sit side by side, each with its own single-column list. */
.pn-visit--wide .pn-visit-times li{grid-template-columns:minmax(0,max-content) minmax(0,1fr);column-gap:14px}
.pn-visit--wide .pn-visit-times .pn-visit-what{grid-column:1/-1}
@media(min-width:761px){
 .pn-visit--wide .pn-visit-campuses{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:0 clamp(24px,3vw,48px);align-items:start}
 .pn-visit--wide .pn-visit-times--campuses ul{grid-template-columns:minmax(0,1fr)}
 .pn-visit--wide .pn-visit-campus+.pn-visit-campus{margin-top:0}
}

/* Invitations form: the whole "Dates are flexible" label is the tap target. */

/* Visit, several campuses: times grouped by place, each with its address and a directions link. */
.pn-visit-campus+.pn-visit-campus{margin-top:26px}
.pn-visit-campus-head{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 0 2px}
.pn-visit-place{margin:0;font:500 clamp(18px,1.6vw,22px)/1.3 var(--display);letter-spacing:-.01em;color:var(--ink)}
.pn-visit-campus-address{margin:0;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.pn-visit-campus-directions{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;color:var(--accent)!important;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.pn-visit-campus-directions:hover{text-decoration-thickness:2px}
.block:is(.tone-dark,.tone-accent) .pn-visit-campus-directions{color:inherit!important}

/* Tablet header (761 to 1100 px): when the page links would wrap, render-v2 adds .is-nav-collapsed and the
   header uses the phone Menu button (same panel as the phone rules above). */
@media(min-width:761px){
 .site .site-header.is-nav-collapsed{flex-wrap:nowrap}
 .site .site-header.is-nav-collapsed .site-nav{display:none!important}
 .site .site-header.is-nav-collapsed .site-menu-toggle{display:inline-flex!important;align-items:center;justify-content:center;gap:10px;flex:none;min-height:44px;min-width:44px;margin:0 0 0 auto;padding:0 16px;border:1px solid var(--line,#d6d0c6);border-radius:999px;background:var(--paper,#fff);color:var(--ink,#15171a);font:600 15px/1 var(--body,'Figtree'),sans-serif;letter-spacing:0;text-transform:none;cursor:pointer;position:relative;z-index:61;box-shadow:none;transform:none}
 .site .site-header.is-nav-collapsed .site-menu-icon{position:relative;display:block;width:16px;height:2px;background:currentColor;border-radius:2px;transition:background .2s}
 .site .site-header.is-nav-collapsed .site-menu-icon::before,.site .site-header.is-nav-collapsed .site-menu-icon::after{content:'';position:absolute;left:0;width:16px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s cubic-bezier(.22,1,.36,1)}
 .site .site-header.is-nav-collapsed .site-menu-icon::before{top:-5px}.site .site-header.is-nav-collapsed .site-menu-icon::after{top:5px}
 .site .site-header.is-nav-collapsed .site-menu-toggle.is-open .site-menu-icon{background:transparent}
 .site .site-header.is-nav-collapsed .site-menu-toggle.is-open .site-menu-icon::before{transform:translateY(5px) rotate(45deg)}
 .site .site-header.is-nav-collapsed .site-menu-toggle.is-open .site-menu-icon::after{transform:translateY(-5px) rotate(-45deg)}
 .site .site-header.is-nav-collapsed .site-nav.is-open{display:flex!important;position:fixed!important;inset:0!important;z-index:60!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;flex-wrap:nowrap!important;gap:0!important;width:auto!important;height:auto!important;max-width:none!important;margin:0!important;padding:var(--site-menu-top,96px) max(24px,6vw) 40px!important;background:var(--paper,#fff)!important;border:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important;overflow-y:auto!important;opacity:1!important;visibility:visible!important}
 .site .site-header.is-nav-collapsed .site-nav.is-open a{display:flex!important;align-items:center;min-height:56px;width:auto!important;margin:0!important;padding:0 4px!important;border:0!important;border-bottom:1px solid var(--line,#e4dfd6)!important;border-radius:0!important;background:none!important;color:var(--ink,#15171a)!important;font:500 24px/1.2 var(--display,inherit)!important;letter-spacing:-.01em!important;text-transform:none!important;text-decoration:none!important;white-space:normal!important;opacity:1!important}
 .site .site-header.is-nav-collapsed .site-nav.is-open a.current{font-weight:700!important;text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:6px!important}
 /* As on phones (W5b A2 in astra.css): the panel starts at the top with the site name and Close in one row. */
 .site .site-header.is-nav-collapsed .site-nav.is-open{padding:16px max(24px,6vw) 40px!important;-webkit-mask-image:none!important;mask-image:none!important}
 .site .site-header.is-nav-collapsed .site-nav.is-open::before{content:attr(data-menu-title)!important;display:block!important;flex:none!important;min-height:44px;margin:0 0 8px!important;padding:0 140px 12px 4px!important;border-bottom:1px solid var(--line,#e4dfd6)!important;color:var(--ink,#15171a)!important;font:600 20px/44px var(--display,inherit)!important;letter-spacing:-.01em!important;text-transform:none!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;position:static!important;width:auto!important;height:auto!important;background:none!important;opacity:1!important;transform:none!important}
 .site .site-header.is-nav-collapsed .site-menu-toggle.is-open{position:fixed!important;top:16px!important;right:max(24px,6vw)!important;left:auto!important;bottom:auto!important;margin:0!important;z-index:61!important}
 html.site-menu-locked .site .site-header.is-nav-collapsed{z-index:70!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transform:none!important;filter:none!important;contain:none!important}
}
@media(prefers-reduced-motion:reduce){.site .site-header.is-nav-collapsed .site-menu-icon,.site .site-header.is-nav-collapsed .site-menu-icon::before,.site .site-header.is-nav-collapsed .site-menu-icon::after{transition:none}}
/* W8-F6: a coloured footer that stays in the 1440 px frame paints its colour out to both screen edges on wider screens; its content stays in the frame. */
.site>.site-footer{position:relative;isolation:isolate}
.site:not(.theme-claude-almanac)>.site-footer::after{content:"";position:absolute;z-index:-2;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);background-color:inherit;pointer-events:none}
/* W8-F6: footer page and channel links are 44 px tap targets on phones in every design */
@media(max-width:760px){.site .site-footer :is(.footer-pages,.footer-socials) a{min-height:44px;display:inline-flex;align-items:center}}
/* W8-F6: a dark last section running straight into a dark footer gets a hairline, so the page end still reads as two parts. Saltbush (wave) and Almanac (ornament rule) draw their own. */
.site:not(.theme-claude-saltbush,.theme-claude-almanac) .site-main:has(>.block.tone-dark:last-child)+.site-footer.tone-dark{border-top:1px solid #ffffff2e}
